[решено] Остановка и запуск службы
-
Казбек
Re: [решено] Остановка и запуск службы
SharkyEXE,
Чем вас не устраивает возврат результата проверки состояния службы консольной утилиты SC.exe?Какая ваша конечная цель, зачем вам знать состояние этой службы и что вы хотите делать потом?
Чем вас не устраивает возврат результата проверки состояния службы консольной утилиты SC.exe?Какая ваша конечная цель, зачем вам знать состояние этой службы и что вы хотите делать потом?
-
SharkyEXE
Re: [решено] Остановка и запуск службы
Iska
Просьба 1
1) Для расширенной работы ( чтобы больше к этому вопросу лично мне не возвращаться ) вместо
Local $sServiceName = "wscsvc"
прописал
Local $sServiceName = "Winmgmt"
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
3) Запускаю Ваш код
4) Ни ответа , ни привета
5) Пожалуйста , просьба добавить строки на предмет статуса службы Приостановлено = PAUSED
Просьба 2
А можете , пожалуйста , это все
Я про что - это все
1) если
Код:
2) если
Код:
3) если
Код:
4) если
Код:
5) если (
6) то далее пойдут строки
7) иначе - запуск службы
Если по короче - если 5ть проверок дают служба как запущена , если 5ть проверок дают служба как работает - то далее пойдут строки
Иначе - запуск службы
Один раз работка и на свю жизнь , зато 200% уверенность , что служба работает , что служба запущена
Просьба 1
1) Для расширенной работы ( чтобы больше к этому вопросу лично мне не возвращаться ) вместо
Local $sServiceName = "wscsvc"
прописал
Local $sServiceName = "Winmgmt"
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
3) Запускаю Ваш код
4) Ни ответа , ни привета
5) Пожалуйста , просьба добавить строки на предмет статуса службы Приостановлено = PAUSED
https://cloud.mail.ru/public/FsMR/S2o85Cs8n
Просьба 2
А можете , пожалуйста , это все
[решено] Остановка и запуск службы
облагородить на язык AutoitЯ про что - это все
[решено] Остановка и запуск службы
+ [решено] Остановка и запуск службы
помещаем в один autoit файл и делаем глобальную проверку:1) если
Код:
Код: Выделить всё
sc query "ServiceName" | find "RUNNING"2) если
Код:
Код: Выделить всё
net start | find "Service Name"3) если
Код:
Код: Выделить всё
Get-Service -name 'ServiceName'4) если
Код:
Код: Выделить всё
call wmic /locale:ms_409 service where (name="wsearch") get state /value | findstr State=Running
if %ErrorLevel% EQU 0 (
echo Running
) else (
echo Not running
)5) если (
[решено] Остановка и запуск службы
)6) то далее пойдут строки
[решено] Остановка и запуск службы
7) иначе - запуск службы
[решено] Остановка и запуск службы
и далее снова 5ть проверокЕсли по короче - если 5ть проверок дают служба как запущена , если 5ть проверок дают служба как работает - то далее пойдут строки
[решено] Остановка и запуск службы
Иначе - запуск службы
[решено] Остановка и запуск службы
и далее снова 5ть проверокОдин раз работка и на свю жизнь , зато 200% уверенность , что служба работает , что служба запущена
-
Казбек
Re: [решено] Остановка и запуск службы
Цитата SharkyEXE:
1) Для расширенной работы ( чтобы больше к этому вопросу лично мне не возвращаться ) вместо
Local $sServiceName = "wscsvc"
прописал
Local $sServiceName = "Winmgmt"
У меня, видимо, совсем плохо с глазами стало, поскольку с утра было так:
Скрытый текст
[spoiler]Цитата SharkyEXE:[/spoiler]
Есть служба wscsvc ( Центр обеспечения безопасности )
Хочется запускать службу wscsvc с интервалом 1 секунда , пока состояние службы wscsvc не станет как Работает
Как только состояние службы wscsvc станет Работает - завершить работу скрипта
Реализации хочется чем проще тем лучше - хотелось при помощи sc query "wscsvc"
Определитесь.
Цитата SharkyEXE:
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
3) Запускаю Ваш код
4) Ни ответа , ни привета
SharkyEXE, есть существенная разница между понятиями запустить службу (StartService) и возобновить её работу (ResumeService). Ранее Вы писали:
Цитата SharkyEXE:
Хочется запускать службу wscsvc
Теперь пишете про:
Цитата SharkyEXE:
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
это разные вещи, которые делаются разными методами Wbem. Определитесь.
Но дело даже не в том. В данном конкретном случае было бы странно ожидать иного: Вы приостанавливаете работу той самой службы, которая как раз и отвечает за работоспособность Wbem.
Цитата SharkyEXE:
Если по короче - если 5ть проверок дают служба как запущена , если 5ть проверок дают служба как работает…
Я, конечно, не могу Вам запретить заниматься … в извращённой форме. Но в роли известной феи я выступать не хочу.
1) Для расширенной работы ( чтобы больше к этому вопросу лично мне не возвращаться ) вместо
Local $sServiceName = "wscsvc"
прописал
Local $sServiceName = "Winmgmt"
[решено] Остановка и запуск службы
У меня, видимо, совсем плохо с глазами стало, поскольку с утра было так:
Скрытый текст
[spoiler]Цитата SharkyEXE:[/spoiler]
Есть служба wscsvc ( Центр обеспечения безопасности )
Хочется запускать службу wscsvc с интервалом 1 секунда , пока состояние службы wscsvc не станет как Работает
Как только состояние службы wscsvc станет Работает - завершить работу скрипта
Реализации хочется чем проще тем лучше - хотелось при помощи sc query "wscsvc"
[решено] Остановка и запуск службы
Определитесь.
Цитата SharkyEXE:
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
3) Запускаю Ваш код
4) Ни ответа , ни привета
[решено] Остановка и запуск службы
SharkyEXE, есть существенная разница между понятиями запустить службу (StartService) и возобновить её работу (ResumeService). Ранее Вы писали:
Цитата SharkyEXE:
Хочется запускать службу wscsvc
[решено] Остановка и запуск службы
Теперь пишете про:
Цитата SharkyEXE:
2) Делаю Приостановка службы Winmgmt = Инструментарий управления Windows
[решено] Остановка и запуск службы
это разные вещи, которые делаются разными методами Wbem. Определитесь.
Но дело даже не в том. В данном конкретном случае было бы странно ожидать иного: Вы приостанавливаете работу той самой службы, которая как раз и отвечает за работоспособность Wbem.
Цитата SharkyEXE:
Если по короче - если 5ть проверок дают служба как запущена , если 5ть проверок дают служба как работает…
[решено] Остановка и запуск службы
Я, конечно, не могу Вам запретить заниматься … в извращённой форме. Но в роли известной феи я выступать не хочу.
-
SharkyEXE
Re: [решено] Остановка и запуск службы
Казбек
Тема про AUTOIT , можете мне , пожалуйста , все Ваши способы в один файл test.au3 на языке AUTOIT написать ?
Спасибо.
Тема про AUTOIT , можете мне , пожалуйста , все Ваши способы в один файл test.au3 на языке AUTOIT написать ?
Спасибо.
-
SharkyEXE
Re: [решено] Остановка и запуск службы
Цитата SharkyEXE:
1) Ваш скрипт , если служба Приостановлена - никогда не запустит такую службу
Именно так. Поскольку об этом не было разговора в ТЗ.
Цитата SharkyEXE:
2) Почему привел пример с Приостановкой службы Winmgmt - потому что служба wscsvc не Приостанавливается
Именно так:
Код:
Выбранный Вами пример оказался неудачным, но ладно, разобрались.
Цитата SharkyEXE:
3) А я просто попросил при Вашем желании свести все в один файл , этот файл останется на всю жизнь для всех , кому нужно - тот и будет для себя использовать любую из 5ти проверок
Хватит и одной.
Но мы так и не определились с конечной целью. Что в итоге Вам нужно — получить работающую службу из любого состояния? А если она вообще — disabled, отключена?
1) Ваш скрипт , если служба Приостановлена - никогда не запустит такую службу
[решено] Остановка и запуск службы
Именно так. Поскольку об этом не было разговора в ТЗ.
Цитата SharkyEXE:
2) Почему привел пример с Приостановкой службы Winmgmt - потому что служба wscsvc не Приостанавливается
[решено] Остановка и запуск службы
Именно так:
Код:
Код: Выделить всё
C:\Мои проекты\0139>wmic.exe service where "Name = 'wscsvc'" get AcceptPause
AcceptPause
FALSEВыбранный Вами пример оказался неудачным, но ладно, разобрались.
Цитата SharkyEXE:
3) А я просто попросил при Вашем желании свести все в один файл , этот файл останется на всю жизнь для всех , кому нужно - тот и будет для себя использовать любую из 5ти проверок
[решено] Остановка и запуск службы
Хватит и одной.
Но мы так и не определились с конечной целью. Что в итоге Вам нужно — получить работающую службу из любого состояния? А если она вообще — disabled, отключена?
-
Iska
Re: [решено] Остановка и запуск службы
Цитата Iska:
Именно так. Поскольку об этом не было разговора в ТЗ
Я виноват , признаю , что от качественно написать , что хочется , будет и результат
Цитата Iska:
Что в итоге Вам нужно — получить работающую службу из любого состояния?
Ага. Только , повторюсь , на самом деле работающую службу , а не чего-то где-то отчиталось , что служба работает , что служба запущена , а на самом деле служба не успела запуститься , служба еще не работает , а мой скрипт уже пошел работаь , вот поэтому и 5ть проверок мне хочется , точнее мне 5ть проверок - это 100,1% гарантия работы моего скрипта , другим людям - выбор , какой им из 5ти примеров проверки запуска службы использовать , что плохого , что не только для меня , но и для других ученье
Цитата Iska:
А если она вообще — disabled, отключена?
Согласен , возможно и такое. Тогда службу перевести в Ручной запуск ( только не Автоматически ) и далее запуск
PS. Пожалуйста , я Вас очень прошу , реализуйте все это
Спасибо.
Именно так. Поскольку об этом не было разговора в ТЗ
[решено] Остановка и запуск службы
Я виноват , признаю , что от качественно написать , что хочется , будет и результат
Цитата Iska:
Что в итоге Вам нужно — получить работающую службу из любого состояния?
[решено] Остановка и запуск службы
Ага. Только , повторюсь , на самом деле работающую службу , а не чего-то где-то отчиталось , что служба работает , что служба запущена , а на самом деле служба не успела запуститься , служба еще не работает , а мой скрипт уже пошел работаь , вот поэтому и 5ть проверок мне хочется , точнее мне 5ть проверок - это 100,1% гарантия работы моего скрипта , другим людям - выбор , какой им из 5ти примеров проверки запуска службы использовать , что плохого , что не только для меня , но и для других ученье
Цитата Iska:
А если она вообще — disabled, отключена?
[решено] Остановка и запуск службы
Согласен , возможно и такое. Тогда службу перевести в Ручной запуск ( только не Автоматически ) и далее запуск
PS. Пожалуйста , я Вас очень прошу , реализуйте все это
[решено] Остановка и запуск службы
на Autoit , вряд ли еще есть какие-то способы , разве что на vbs или с привлечением дополнительно подключаемых au3 сервисов , типа #include Services.au3 , но 5ть способов уже за глаза , тем более все 5ть способов , в том числе и Ваш - все штатными средствами Windows , что еще гарантирует надежностьСпасибо.
-
SharkyEXE
Re: [решено] Остановка и запуск службы
Цитата SharkyEXE:
Только , повторюсь , на самом деле работающую службу
SharkyEXE, нет никаких способов гарантированно получить работающую службу. По многим причинам.
Примерно так:
Скрытый текст
[spoiler]Код: [/spoiler]
Только , повторюсь , на самом деле работающую службу
[решено] Остановка и запуск службы
SharkyEXE, нет никаких способов гарантированно получить работающую службу. По многим причинам.
Примерно так:
Скрытый текст
[spoiler]Код: [/spoiler]
Код: Выделить всё
AutoItSetOption("MustDeclareVars", 1)
If RunService("wscsvc") Then
ConsoleWrite("Service running." & @CRLF)
;
; Place your code here
;
Else
ConsoleWrite("Service not running." & @CRLF)
EndIf
Exit(0)
Func RunService($sServiceName)
Local $oSWbemLocator = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemServicesEx = $oSWbemLocator.ConnectServer(".", "root\cimv2")
Local $oSWbemObjectEx = $oSWbemServicesEx.Get("Win32_Service.Name='" & $sServiceName & "'")
Local $iTimer = 0
Local $bDone = False
Do
Switch $oSWbemObjectEx.State
Case "Running"
ConsoleWrite("Service [" & $sServiceName & "] already running." & @CRLF)
Return True
Case "Stopped"
If $oSWbemObjectEx.StartMode = "Disabled" Then
If Not $oSWbemObjectEx.ChangeStartMode("Manual") = 0 Then
ConsoleWrite("Can't change start mode of service [" & $sServiceName & "] to [Manual]." & @CRLF)
Return False
EndIf
EndIf
If $oSWbemObjectEx.StartService() = 0 Then
ConsoleWrite("Service [" & $sServiceName & "] start successfully." & @CRLF)
Return True
Else
ConsoleWrite("Can't start service [" & $sServiceName & "]." & @CRLF)
Return False
EndIf
Case "Paused"
If $oSWbemObjectEx.ResumeService() = 0 Then
ConsoleWrite("Service [" & $sServiceName & "] resume successfully." & @CRLF)
Return True
Else
ConsoleWrite("Can't resume service [" & $sServiceName & "]." & @CRLF)
Return False
EndIf
Case "Unknown"
ConsoleWrite("Service [" & $sServiceName & "] is unknown state." & @CRLF)
Return False
Case "Start Pending"
Case "Stop Pending"
Case "Continue Pending"
Case "Pause Pending"
EndSwitch
Sleep(100)
$iTimer = $iTimer + 100
Until $iTimer > 60 * 100 * 10
ConsoleWrite("Timer out for pending operation for service [" & $sServiceName & "]." & @CRLF)
Return False
EndFunc-
Iska
Re: [решено] Остановка и запуск службы
Цитата Iska:
нет никаких способов гарантированно получить работающую службу
Есть! Если получены 5ть ответов , что служба запущена , что служба работает , разными штатными средствами Windows , разными языками, без привлечения сторонних , неизвестно каких утилит и программ , то вероятность 100,1% , что служба работает , что служба запущена
нет никаких способов гарантированно получить работающую службу
[решено] Остановка и запуск службы
Есть! Если получены 5ть ответов , что служба запущена , что служба работает , разными штатными средствами Windows , разными языками, без привлечения сторонних , неизвестно каких утилит и программ , то вероятность 100,1% , что служба работает , что служба запущена

-
SharkyEXE
Re: [решено] Остановка и запуск службы
SharkyEXE, более чем достаточно одного-единственного способа, чтобы иметь уверенность, что служба работает. Я про другое: невозможно гарантировать, что службу удастся перевести в состояние «Работает».
-
Iska
Re: [решено] Остановка и запуск службы
Iska
Опять Вы меня не понимаете , извините меня , пожалуйста.
Если 5ть способов (
1) Мне не требуется 5тью способами перевести службу из Остановлено -> в Работает
2) Мне не требуется 5тью способами перевести службу из Приостановлено -> в Работает
3) Мне не требуется 5тью способами перевести службу из Отключена -> в Ручную -> в Работает
Мне хочется 5ть способов проверки , что служба работает и не более
Мне хочется , чтобы все 5ть способов проверки , что служба работает , мне возвращали одно и тоже - RUNNING , после чего я буду запускать мой скрипт
То есть Ваш скрипт - основной , а дополнительно мне бы хотелось прикрутить
Итого : отрабатывает Ваш код + дополнительно
Что здесь плохого-то?
Опять Вы меня не понимаете , извините меня , пожалуйста.
Если 5ть способов (
[решено] Остановка и запуск службы
+ 1 Ваш ) возвращают что служба работает - тут ничего не поделаешь , что верить можно 100%1) Мне не требуется 5тью способами перевести службу из Остановлено -> в Работает
2) Мне не требуется 5тью способами перевести службу из Приостановлено -> в Работает
3) Мне не требуется 5тью способами перевести службу из Отключена -> в Ручную -> в Работает
Мне хочется 5ть способов проверки , что служба работает и не более
Мне хочется , чтобы все 5ть способов проверки , что служба работает , мне возвращали одно и тоже - RUNNING , после чего я буду запускать мой скрипт
То есть Ваш скрипт - основной , а дополнительно мне бы хотелось прикрутить
[решено] Остановка и запуск службы
Итого : отрабатывает Ваш код + дополнительно
[решено] Остановка и запуск службы
возвращают RUNNING - после чего работает мой скриптЧто здесь плохого-то?