Что нового

[Массивы] Создание массива для остановки/запуска служб/процессов

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
Есть такой скрипт:
Код:
#RequireAdmin
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=Gamer kill services & processes.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Add_Constants=n
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

$sServiceName = '"afcdpsrv"'
$sServiceName1 = '"AcrSch2Svc"'
$sServiceName2 = '"Adguard Service"'
$sServiceName3 = '"AGSService"'
$sServiceName4 = '"anti_ransomware_service"'
$sServiceName5 = '"gs-server"'
$sServiceName6 = '"mmsminisrv"'
$sServiceName7 = '"PSI_SVC_2"'

$ServiceName = _Service_Stop($sServiceName)

Run(@ComSpec & ' /C sc stop ' & $sServiceName)

Func _Service_Start($sService, $Computer = ".")
  Local $objWMI = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
  If Not(IsObj($objWMI)) Then Return SetError(-2)
  Local $strQuery = "Select * from Win32_Service Where State = 'Stopped' And " & _
      "Mame Like '"& $sService & "'"
  Local $colItems = $objWMI.ExecQuery($strQuery)
  If Not(IsObj($colItems)) Then Return SetError(-2)

  For $objItem in $colItems
    Return $objItem.StartService($objItem.Name)
  Next
  Return SetError(-1)
EndFunc   ;==> _Service_Start()

Func _Service_Stop($sService, $Computer = ".")
  Local $objWMI = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
  If Not(IsObj($objWMI)) Then Return SetError(-2)
  Local $strQuery = "Select * from Win32_Service Where State = 'Running' And " & _
      "name like '"& $sService &"'"
  Local $colItems = $objWMI.ExecQuery($strQuery)
  If Not(IsObj($colItems)) Then Return SetError(-2)

  For $objItem In $colItems
    Return $objItem.StopService($objItem.Name)
  Next
  Return SetError(-1)
EndFunc  ;==> _Service_Stop()


Служб и процессов много, поэтому для каждой/-го создавать переменную и строку для cmd не логично, поэтому просьба помочь создать массив.

ПС. Запуск будет происходить точно таких же служб и процессов, которые были завершены.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
Global $aSvcNames[] = ['"afcdpsrv"','"AcrSch2Svc"','"Adguard Service"','"AGSService"', _
                       '"anti_ransomware_service"','"gs-server"','"mmsminisrv"','"PSI_SVC_2"']

For $Name In $aSvcNames
  _Service_Stop($Name)
Next

Func _Service_Stop($sService, $Computer = ".")
  ConsoleWrite($sService & @CRLF)
EndFunc
 
Автор
BlagoYar

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
InnI
а как цикл для завершения процессов (не служб)?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Точно так же. Создаёте массив имён процессов, делаете цикл с функцией
Код:
ProcessClose()
или через taskkill - как вам удобнее.
 
Автор
BlagoYar

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
InnI
БлагоДарствую!
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
БлагоѨръ [?]

[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Автор
BlagoYar

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
Garrett
Так и хотел сделать, просто немного невнимательно глянул и показалось, что написано "Нажмите для отмеНЫ темы ...", а не отметки. А то, что написано "Тема не решена" - подумал, что наоборот, если я нажму, что получится отмечена, как не решённая.
 
A

Alofa

Гость
OffTopic:
БлагоѨръ сказал(а):
... написано "Тема не решена" - подумал, что наоборот, если я нажму, что получится отмечена, как не решённая.
Ага, есть такая нелогичность.
 
Автор
BlagoYar

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
Alofa [?]
Ага, есть такая нелогичность.
Ну да. Почему ещё и убедило немного то, что когда я выбрал "Лучший ответ", то тема автоматически считается решённой
 
Верх