Остановка и запуск службы
Добрый день !
Подскажите плз, какими командами можно останавливать и запускать службу ? |
Цитата:
Код:
Run(@ComSpec & ' /C Net Start Service', '', @SW_HIDE) |
RunWait(@ComSpec & ' /C Net Stop NameService', @SW_HIDE)
RunWait(@ComSpec & ' /C Net Start NameService', @SW_HIDE) |
Всем здравствуйте.
Пожалуйста , помогите мне , пожалуйста. Есть служба wscsvc ( Центр обеспечения безопасности ) Хочется запускать службу wscsvc с интервалом 1 секунда , пока состояние службы wscsvc не станет как Работает Как только состояние службы wscsvc станет Работает - завершить работу скрипта Реализации хочется чем проще тем лучше - хотелось при помощи sc query "wscsvc" |
Цитата:
|
Iska
Здравствуйте. Может быть не так выразился , мне требуется , чтобы служба была 100,1% запущена и это было проверено , можно не одним способом ( sc query "wscsvc" , может еще есть какие-то методы , я был бы очень благодарен ). Только после 100,1% запущенной службы wscsvc я буду делать следующие шаги Просто если служба wscsvc не запущена , а отчиталось , что служба wscsvc запущена - дальше мне нет смысла ничего делать , без запущенной на самом деле службы wscsvc далее ничего не поулчится А то как в жизни , можно отчитаться , что все выполнено , все запущено , а на самом деле палец о палец ничего не сделано , ничего не запущено |
SharkyEXE,
|
Казбек
Здравствуйте. 1) Если Вы про это ( на примере службы Winmgmt = Инструментарий управления Windows ): https://cloud.mail.ru/public/FsMR/S2o85Cs8n https://cloud.mail.ru/public/JZdi/8PzUyVVWj https://cloud.mail.ru/public/8wtE/e1GrtvxsS то мне из всего этого бардака=барахла , хочется только статусы , только три слова STOPPED RUNNING PAUSED 2) Только после 100,1% что запущена служба wscsvc , только после 100,1% работает служба wscsvc , повторюсь , проверенной на предмет что 100,1% запущена , проверенной на предмет что 100,1% работает , не одним способом ( sc query "wscsvc" , может еще есть какие-то методы , я был бы очень благодарен ) , я буду делать нижеследующие действия Скрытый текст
Код:
Opt ( "WinTitleMatchMode", 2 ) |
Цитата:
Код:
sc query "ServiceName" | find "RUNNING" Цитата:
Код:
net start | find "Service Name" Код:
Get-Service -name 'ServiceName' Код:
call wmic /locale:ms_409 service where (name="wsearch") get state /value | findstr State=Running |
Казбек
Тема про AUTOIT , можете мне , пожалуйста , все Ваши способы в один файл test.au3 на языке AUTOIT написать ? Спасибо. |
SharkyEXE, одно слово: Wbem.
Скрытый текст
Код:
AutoItSetOption("MustDeclareVars", 1) |
Iska
Просьба 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" Код:
net start | find "Service Name" Код:
Get-Service -name 'ServiceName' Код:
call wmic /locale:ms_409 service where (name="wsearch") get state /value | findstr State=Running 6) то далее пойдут строки моего скрипта 7) иначе - запуск службы Вашим способом и далее снова 5ть проверок Если по короче - если 5ть проверок дают служба как запущена , если 5ть проверок дают служба как работает - то далее пойдут строки моего скрипта Иначе - запуск службы Вашим способом и далее снова 5ть проверок Один раз работка и на свю жизнь , зато 200% уверенность , что служба работает , что служба запущена |
Цитата:
Скрытый текст
Цитата:
Цитата:
Цитата:
Цитата:
Но дело даже не в том. В данном конкретном случае было бы странно ожидать иного: Вы приостанавливаете работу той самой службы, которая как раз и отвечает за работоспособность Wbem. Цитата:
|
Iska
Здравствуйте. 1) Ваш скрипт , если служба Приостановлена - никогда не запустит такую службу 2) Почему привел пример с Приостановкой службы Winmgmt - потому что служба wscsvc не Приостанавливается Приведу другой пример с Приостановкой службы LanmanWorkstation = Рабочая станция https://cloud.mail.ru/public/CUtx/C5ymz7zA3 Если по короче , куда-то в Ваш скрипт мне бы хотелось , что Вы добавили типа таких строк Код:
If $oSWbemObjectEx.StartMode <> "Paused" Then А мне 5ти проверок хватит , это же не сложно для тех , кто понимает , как написать , однако это большая помощь тем , кто обращается за помощью. Я никого и никогда не считал , не считаю и не буду считать, когда я обращаюсь за помощью , никакой феей и прочим , мне просто хочется помощи без надсмешек над тем , кто мне хочет помочь Спасибо. |
Цитата:
Цитата:
Код:
C:\Мои проекты\0139>wmic.exe service where "Name = 'wscsvc'" get AcceptPause Цитата:
Но мы так и не определились с конечной целью. Что в итоге Вам нужно — получить работающую службу из любого состояния? А если она вообще — disabled, отключена? |
Цитата:
Цитата:
Цитата:
PS. Пожалуйста , я Вас очень прошу , реализуйте все это тынц на Autoit , вряд ли еще есть какие-то способы , разве что на vbs или с привлечением дополнительно подключаемых au3 сервисов , типа #include Services.au3 , но 5ть способов уже за глаза , тем более все 5ть способов , в том числе и Ваш - все штатными средствами Windows , что еще гарантирует надежность Спасибо. |
Цитата:
Примерно так: Скрытый текст
Код:
AutoItSetOption("MustDeclareVars", 1) |
Цитата:
|
SharkyEXE, более чем достаточно одного-единственного способа, чтобы иметь уверенность, что служба работает. Я про другое: невозможно гарантировать, что службу удастся перевести в состояние «Работает».
|
Iska
Опять Вы меня не понимаете , извините меня , пожалуйста. Если 5ть способов ( 4ре этих + 1 Ваш ) возвращают что служба работает - тут ничего не поделаешь , что верить можно 100% 1) Мне не требуется 5тью способами перевести службу из Остановлено -> в Работает 2) Мне не требуется 5тью способами перевести службу из Приостановлено -> в Работает 3) Мне не требуется 5тью способами перевести службу из Отключена -> в Ручную -> в Работает Мне хочется 5ть способов проверки , что служба работает и не более Мне хочется , чтобы все 5ть способов проверки , что служба работает , мне возвращали одно и тоже - RUNNING , после чего я буду запускать мой скрипт То есть Ваш скрипт - основной , а дополнительно мне бы хотелось прикрутить тынц Итого : отрабатывает Ваш код + дополнительно 4ре способа возвращают RUNNING - после чего работает мой скрипт Что здесь плохого-то? |
SharkyEXE, я Вас вполне понимаю. Повторю: я не стану писать пять способов проверки того, что служба работает, если один-единственный способ уже даёт равнозначный гарантированный результат.
Скрытый текст
Код:
AutoItSetOption("MustDeclareVars", 1) P.S. Вы опять поменяли техзадание. Цитата:
|
Цитата:
Предыдущий расширенный код работает как надо , проверено лично Цитата:
Чем же wbem 100,1% лучше wmic или Powershell или стандартной родной комманде sc query или старому Net start, что можно верить только wbem ? Я уважаю Ваш труд , я вообще не понимаю , как Вы это делаете , но просто по одной проверке никакого вывода сделать нельзя А вот когда 5ть способов проверки мне отвечают , что служба работает - вопросов нет А у меня вот есть уверенность , что после проверки sc query "{название службы}" | find "RUNNING" можно запускать мой скрипт И еще есть у меня уверенность , что после проверки PowerShell ( Get-Service -name '{название службы}' ) можно запускать мой скрипт ... Эх , что ж мне так все тяжело даётся то... PS. А можете хоть написать , как из остальных 4х способов отловить слово RUNNING , сделать из нее переменную и сравнивать Код:
If $Check1 = RUNNING Then |
Цитата:
|
Iska
Это Вы меня простите , что просто мне хочется один раз и на всю жизнь , чтобы больше к этому не возвращаться А пока буду пользоваться Вашей расширенной версией , хотя , попробую потупить , может быть как-то где-то у меня поулчиться все-таки остальные 4ре способа проверки прикрутить Просто обидно , почему меня не понимают , хотя я не программист , но чего-то в моих хотелках и пожеланиях есть тоже правильное Еще раз спасибо! |
Iska
И еще : а можете , пожалуйста , написать мне команду применительно к Вашему примеру , чтобы мне сделать Служба = Отключено , просто в конце рыботы моего скрипта мне требуется сделать службу Отключено , мне служба больше не нужна , чтобы работала Чтобы было так Цитата:
|
Зачем отключать? Правильным будет запоминать исходное состояние службы и её состояние StartMode и возвращать их после отработки Вашего кода.
|
Цитата:
Эта служба wscsvc у меня уже 3-4 года отключена и усе стабильно , ни единого глюка , синего экрана , зависания и прочего по причине отключения службы Поэтому запуск службы wscsvc нужен только для моего скрипта , даже если служба wscsvc до запуска моего скрипта была как Автоматичекси + Рабоатет , после отработки моего скрипта эта служба мне больше никогда в жизни не потребуется , я уверен на все 100,1% , потому что 3-4 года эта служба у меня Отключена и я доволен - меньше работающих служб = быстрее работает компьютер Поэтому я Вас очень прошу , сделайте тогда: Отключить Службу Запомнить это состояние Сделать службу вручную Запустить службу Отработка моего скрипта Вернуть состояние службы Отключено после отработки моего скрипта |
Iska
Время идет , проблема стоит , мне хочется решения моей проблемы , написал самостоятельно по Вашему примеру Остановка и Отключить службу , все работает , только после Остановка и Отключение службы скрипт выполняется , похоже там таймер чего-то проверяет Скрытый текст
Код:
StopAndDisabledService("wscsvc") Повторюсь , время идет , проблема стоит , мне хочется решения моей проблемы Спасибо. |
Iska
Пожалуйста , очистите Ваш почтовый ящик , а то я Вам не могу напистаь сообщение Спасибо. |
Цитата:
Цитата:
Не проверялось: Скрытый текст
Код:
AutoItSetOption("MustDeclareVars", 1) |
Цитата:
А вот можно вторую версию Код:
1. Запустить службу. 1) Может не остановиться служба 2) Тогда режим запуска службы не станет отключено 3) Тогда после перезагрузки ПК служба будет запускаться А во второй версии: 1) Сразу после отработки моего кода служба Отключается 2) Скорее всего успешно , тогда будет остановка службы 3) Самое главное , после перезагрузки служба будет отключена Спасибо. |
Цитата:
Скрытый текст
Код:
AutoItSetOption("MustDeclareVars", 1) |
Iska
Здравствуйте. В последней версии хочется понять, распространяется или нет Таймер для Отключить службу и Остановить службу после отработки моего скрипта Код:
If Not $oSWbemObjectEx.ChangeStartMode("Disabled") = 0 Then Спасибо. |
Цитата:
Цитата:
Во-первых, не «Запуск службы и Смена типа службы перед отработкой»: в задачи функции RunService() входит запуск службы и возврат булевого значения — True, в случае, если сие удалось, и False — если не удалось. Во-вторых, таймер отрабатывает только для случаев: Код:
Case "Start Pending" Цитата:
|
Iska
Здравствуйте. 1) Скрипт этот 2) Я про что - а разве когда Служба Работает и Служба надо Остановить после отработки моего скрипта, разве не надо после команды Остановить подождать - процесс смены одного состояния на другое 3) Я про что - а разве когда Тип запуска службы Вручную или Тип запуска службы Автоматически и ее надо Тип запуска службы Отключить после отработки моего скрипта, разве не надо после команды Отключить подождать - процесс смены одного состояния на другое |
Цитата:
Цитата:
|
Цитата:
Просто как я понял для запуска службы, подождать используется А почему для остановки подождать не нужно использовать? |
Цитата:
2. Предположим, она никогда не сделается «Остановить». Будем ждать вечно? Цитата:
|
Iska
А можете простой пример работы Вашего таймера написать, типа Служба Остановлена, или служба Отключена и как работает Таймер? |
Пример в коде чем не устраивает?
|
Iska
Да нет, Вы поймите меня, пожалуйста, правильно, Вы используете Таймер для - остановка, запуск, возобновить, пауза службы, правильно? А почему Таймер не требуется использовать после того, как мой скрипт закончит работу? |
Цитата:
|
Iska
Здравствуйте. 1) Вы извините меня, пожалуйста, лично я так и не понял, почему для запуска службы Вы используете таймер Цитата:
Я не программист, чтобы это понять, но я точно уверен, что если служба запускается с таймером, точно также служба и должна останавливаться, с таймером, неужели это не логичное моё мнение? 2) Возвращаясь к моей просьбе к Вам Сделайте, пожалуйста, корерктный цикл Do Until + таймер в моей просьбе к Вам |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Время: 22:05. |
Время: 22:05.
© OSzone.net 2001-