|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Остановка и запуск службы |
|
[решено] Остановка и запуск службы
|
Ветеран Сообщения: 753 |
Профиль | Отправить PM | Цитировать Добрый день !
Подскажите плз, какими командами можно останавливать и запускать службу ? |
|
------- Отправлено: 19:23, 02-03-2011 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
А вот можно вторую версию 1. Запустить службу. 2. Если удалось — отрабатывает Ваш код. 3. Режим запуска отключено службу. 4. Если удалось — остановить службу. 1) Может не остановиться служба 2) Тогда режим запуска службы не станет отключено 3) Тогда после перезагрузки ПК служба будет запускаться А во второй версии: 1) Сразу после отработки моего кода служба Отключается 2) Скорее всего успешно , тогда будет остановка службы 3) Самое главное , после перезагрузки служба будет отключена Спасибо. |
|
Отправлено: 11:28, 28-12-2017 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
Скрытый текст
AutoItSetOption("MustDeclareVars", 1) Local $sServiceName = "wscsvc" Local $oSWbemLocator = ObjCreate("WbemScripting.SWbemLocator") Local $oSWbemServicesEx = $oSWbemLocator.ConnectServer(".", "root\cimv2") Local $oSWbemObjectEx = $oSWbemServicesEx.Get("Win32_Service.Name='" & $sServiceName & "'") If RunService() Then ConsoleWrite("Service running." & @CRLF) ; ; Place your code here ; If Not $oSWbemObjectEx.ChangeStartMode("Disabled") = 0 Then ConsoleWrite("Can't change start mode of service [" & $sServiceName & "] to [Disabled]." & @CRLF) EndIf If $oSWbemObjectEx.StopService() = 0 Then ConsoleWrite("Service [" & $sServiceName & "] stopped successfully." & @CRLF) Else ConsoleWrite("Can't stop service [" & $sServiceName & "]." & @CRLF) EndIf Else ConsoleWrite("Service not running." & @CRLF) EndIf Exit(0) Func RunService() 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 |
|
Отправлено: 11:47, 31-12-2017 | #32 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Здравствуйте. В последней версии хочется понять, распространяется или нет Таймер для Отключить службу и Остановить службу после отработки моего скрипта If Not $oSWbemObjectEx.ChangeStartMode("Disabled") = 0 Then ConsoleWrite("Can't change start mode of service [" & $sServiceName & "] to [Disabled]." & @CRLF) EndIf If $oSWbemObjectEx.StopService() = 0 Then ConsoleWrite("Service [" & $sServiceName & "] stopped successfully." & @CRLF) Else ConsoleWrite("Can't stop service [" & $sServiceName & "]." & @CRLF) EndIf Спасибо. |
Последний раз редактировалось SharkyEXE, 03-01-2018 в 14:28. Отправлено: 14:03, 03-01-2018 | #33 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
Цитата SharkyEXE:
Во-первых, не «Запуск службы и Смена типа службы перед отработкой»: в задачи функции RunService() входит запуск службы и возврат булевого значения — True, в случае, если сие удалось, и False — если не удалось. Во-вторых, таймер отрабатывает только для случаев: когда служба находится в процессе смены одного состояния на другое, и нужно подождать, когда служба перейдёт в то или иное стабильное состояние. Цитата SharkyEXE:
|
|||
Отправлено: 14:29, 03-01-2018 | #34 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Здравствуйте. 1) Скрипт этот 2) Я про что - а разве когда Служба Работает и Служба надо Остановить после отработки моего скрипта, разве не надо после команды Остановить подождать - процесс смены одного состояния на другое 3) Я про что - а разве когда Тип запуска службы Вручную или Тип запуска службы Автоматически и ее надо Тип запуска службы Отключить после отработки моего скрипта, разве не надо после команды Отключить подождать - процесс смены одного состояния на другое |
Отправлено: 14:55, 03-01-2018 | #35 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
Цитата SharkyEXE:
|
||
Отправлено: 15:01, 03-01-2018 | #36 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Просто как я понял для запуска службы, подождать используется А почему для остановки подождать не нужно использовать? |
|
Отправлено: 15:07, 03-01-2018 | #37 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:12, 03-01-2018 | #38 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
А можете простой пример работы Вашего таймера написать, типа Служба Остановлена, или служба Отключена и как работает Таймер? |
Отправлено: 15:15, 03-01-2018 | #39 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Пример в коде чем не устраивает?
|
Отправлено: 17:50, 03-01-2018 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Остановка службы. | Just4Fun | Microsoft Windows NT/2000/2003 | 19 | 17-05-2013 14:27 | |
Разное - Частая остановка службы | VbInt | Microsoft Windows Vista | 6 | 18-02-2009 16:21 | |
Службы - Внезапная остановка Службы диспетчера печати | aminiy | Microsoft Windows Vista | 10 | 18-07-2008 17:55 | |
Remote Procedure Call (RPC) непредвиденная остановка службы | ppv | Microsoft Windows NT/2000/2003 | 15 | 15-02-2007 23:58 | |
непредвиденная остановка службы Isass.exe | Trei | ISA Server / Microsoft Forefront TMG | 3 | 24-08-2005 08:27 |
|