|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Остановка и запуск службы |
|
|
[решено] Остановка и запуск службы
|
Ветеран Сообщения: 753 |
Профиль | Отправить PM | Цитировать Добрый день !
Подскажите плз, какими командами можно останавливать и запускать службу ? |
|
------- Отправлено: 19:23, 02-03-2011 |
Ветеран Сообщения: 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 $oSWbemObjectEx.State = "Running" Then ConsoleWrite("Service [" & $sServiceName & "] running." & @CRLF) ; ; Place your code here ; Else ConsoleWrite("Service [" & $sServiceName & "] not running." & @CRLF) EndIf Exit(0) P.S. Вы опять поменяли техзадание. Цитата SharkyEXE:
|
|
Отправлено: 01:51, 25-12-2017 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Предыдущий расширенный код работает как надо , проверено лично Цитата Iska:
Чем же wbem 100,1% лучше wmic или Powershell или стандартной родной комманде sc query или старому Net start, что можно верить только wbem ? Я уважаю Ваш труд , я вообще не понимаю , как Вы это делаете , но просто по одной проверке никакого вывода сделать нельзя А вот когда 5ть способов проверки мне отвечают , что служба работает - вопросов нет А у меня вот есть уверенность , что после проверки sc query "{название службы}" | find "RUNNING" можно запускать мой скрипт И еще есть у меня уверенность , что после проверки PowerShell ( Get-Service -name '{название службы}' ) можно запускать мой скрипт ... Эх , что ж мне так все тяжело даётся то... PS. А можете хоть написать , как из остальных 4х способов отловить слово RUNNING , сделать из нее переменную и сравнивать |
||
Последний раз редактировалось SharkyEXE, 25-12-2017 в 02:25. Отправлено: 01:57, 25-12-2017 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
|
|
Отправлено: 02:24, 25-12-2017 | #23 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Это Вы меня простите , что просто мне хочется один раз и на всю жизнь , чтобы больше к этому не возвращаться А пока буду пользоваться Вашей расширенной версией , хотя , попробую потупить , может быть как-то где-то у меня поулчиться все-таки остальные 4ре способа проверки прикрутить Просто обидно , почему меня не понимают , хотя я не программист , но чего-то в моих хотелках и пожеланиях есть тоже правильное Еще раз спасибо! |
Отправлено: 02:29, 25-12-2017 | #24 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
И еще : а можете , пожалуйста , написать мне команду применительно к Вашему примеру , чтобы мне сделать Служба = Отключено , просто в конце рыботы моего скрипта мне требуется сделать службу Отключено , мне служба больше не нужна , чтобы работала Чтобы было так Цитата:
|
|
Отправлено: 09:12, 25-12-2017 | #25 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Зачем отключать? Правильным будет запоминать исходное состояние службы и её состояние StartMode и возвращать их после отработки Вашего кода.
|
Отправлено: 09:56, 25-12-2017 | #26 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Эта служба wscsvc у меня уже 3-4 года отключена и усе стабильно , ни единого глюка , синего экрана , зависания и прочего по причине отключения службы Поэтому запуск службы wscsvc нужен только для моего скрипта , даже если служба wscsvc до запуска моего скрипта была как Автоматичекси + Рабоатет , после отработки моего скрипта эта служба мне больше никогда в жизни не потребуется , я уверен на все 100,1% , потому что 3-4 года эта служба у меня Отключена и я доволен - меньше работающих служб = быстрее работает компьютер Поэтому я Вас очень прошу , сделайте тогда: Отключить Службу Запомнить это состояние Сделать службу вручную Запустить службу Отработка моего скрипта Вернуть состояние службы Отключено после отработки моего скрипта |
|
Отправлено: 12:33, 25-12-2017 | #27 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Время идет , проблема стоит , мне хочется решения моей проблемы , написал самостоятельно по Вашему примеру Остановка и Отключить службу , все работает , только после Остановка и Отключение службы скрипт выполняется , похоже там таймер чего-то проверяет Скрытый текст
StopAndDisabledService("wscsvc") AutoItSetOption("MustDeclareVars", 1) Func StopAndDisabledService($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 $oSWbemObjectEx.StopService() $oSWbemObjectEx.ChangeStartMode("Disabled") Sleep(100) $iTimer = $iTimer + 100 Until $iTimer > 60 * 100 * 10 EndFunc Повторюсь , время идет , проблема стоит , мне хочется решения моей проблемы Спасибо. |
Отправлено: 09:41, 26-12-2017 | #28 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Iska
Пожалуйста , очистите Ваш почтовый ящик , а то я Вам не могу напистаь сообщение Спасибо. |
Отправлено: 21:29, 27-12-2017 | #29 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата SharkyEXE:
Цитата 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 $oSWbemObjectEx.StopService() = 0 Then ConsoleWrite("Service [" & $sServiceName & "] stopped successfully." & @CRLF) If Not $oSWbemObjectEx.ChangeStartMode("Disabled") = 0 Then ConsoleWrite("Can't change start mode of service [" & $sServiceName & "] to [Disabled]." & @CRLF) EndIf 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 |
||
Отправлено: 07:28, 28-12-2017 | #30 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Остановка службы. | 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 |
|