Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт на отключение служб

Ответить
Настройки темы
CMD/BAT - Скрипт на отключение служб

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день, уважаемые системные администраторы.
Стоит задача, автоматизировать процесс.
Отключение определенной службы, проверка (завершила ли работу служба или нет, если нет то "алярм")
И после перезагрузка.
Загвоздка в том, как организоваться проверку отключилась ли служба или нет.
Буду рад любым идеями.
Спасибо.

Отправлено: 07:19, 10-06-2019

 

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как застопить службу я разобрался.
Самое интересно как организовать проверку остановлена ли служба?

Отправлено: 08:42, 10-06-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

mwz mwz вне форума

Аватара для mwz

Ушел из жизни


Сообщения: 8595
Благодарности: 2127

Профиль | Сайт | Отправить PM | Цитировать


Цитата Welcome_to_the_jungl:
как организовать проверку остановлена ли служба? »
Запустите в окне cmd команду
sc /?
и после вывода основной справки нажмите Y чтобы увидеть дополнительную справку для команды с параметром query, т.е. для
sc query

-------
Mikhail Zhilin

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:40, 10-06-2019 | #3


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


По типу остановки службы можно условно разделить на две группы: напрямую и через реестр. В первом случае служба может быть остановлена с помощью командлета Stop-Service, во-втором - путем поиска одноименного со службой ключа реестра в разделе HKLM\SYSTEM\CurrentControlSet\Services, однако стоит учитывать, что изменения в таком случае вступят в силу только после перезагрузки системы, а потому проверка на "отключенность" должна производиться также через реестр. В противном случае достаточно воспользоваться командлетом Get-Service:
Код: Выделить весь код
.({Write-Warning 'служба по-пержнему выполняется'},{Restart-Computer})[(Get-Service имя_сервиса).Status -eq 1]
В данном примере осуществляется проверка на запущенность службы, если она остановлена, компьютер будет перезагружен, если выполняется - выводится предупреждение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:43, 10-06-2019 | #4


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
sc query "spooler" | findstr /i state | findstr /i STOPPED && (
@echo "остановлена") || (
@echo " находиться в каком-то другом состоянии"
)

Последний раз редактировалось Elven, 10-06-2019 в 10:23.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:02, 10-06-2019 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за ответы.

greg zakharov,


Цитата:
.({Write-Warning 'служба по-пержнему выполняется'},{Restart-Computer})[(Get-Service имя_сервиса).Status -eq 1]
Спасибо большое, это код из повер шела?
Что означает -eq 1?

Спасибо.

Отправлено: 09:30, 11-06-2019 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Цитата Welcome_to_the_jungl:
Что означает -eq 1 »
"-eq" это оператор сравнения, ну а "1" это то значение с которым сравнивается.

Отправлено: 10:14, 11-06-2019 | #7


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата Welcome_to_the_jungl:
Спасибо большое, это код из повер шела? »
да, это пример, как не надо писать на PowerShell - имитация тернарного оператора
Код: Выделить весь код
операнд1 -eq операнд2
сравнивает операнды и возвращает bool
bool неявно преобразуется в int
по этому индексу берётся блок кода из массива
оператор контекста точка его исполняет

Отправлено: 11:34, 11-06-2019 | #8


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата Busla:
это пример, как не надо писать на PowerShell
Аргументируйте, иначе подобные высказывания можно расценить лишь как пустой треп. Почему? Во-первых, -eq 1 - неспроста; есть ряд ситуаций, когда свойство Status может быть равным нулю, да и просто полагаться на "встроенное" приведение к булеву типу неразумно. Во-вторых, что касается синтаксиса: будь то if или switch, - в любом из этих случаев приходится иметь дело со скриптблоками; разница с приведенным выше примером лишь в том, что создается массив анонимных скриптблоков, ну может чуть более расходуется при этом памяти. Однако, по сути это - латеральная лямбда с возможностью отложенного исполнения, и если кто-то начинает гнать, дескать, так делать не нужно или нечто в этом роде, значит он ни черта не смыслит в PowerShell.

Отправлено: 12:18, 11-06-2019 | #9


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Во-первых, -eq 1 - неспроста; »
Это "ж-ж-ж" - неспроста!
Цитата greg zakharov:
просто полагаться на "встроенное" приведение к булеву типу неразумно. »
А у статусов, если не ошибаюсь и нет булева типа...
Цитата greg zakharov:
Однако, по сути это - латеральная лямбда с возможностью отложенного исполнения, и если кто-то начинает гнать »
Григорий, не матерись!
Можно ведь просто сказать, что у статусов сервисов существует конкретное [int32] значение свойства, которое можно подсмотреть по:
Код: Выделить весь код
(gsv).status.value__
и тип такого значения вполне можно получить тоже, выделив один из элементов ...

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 11-06-2019 в 13:17.


Отправлено: 13:02, 11-06-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Скрипт на отключение служб

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Скрипт на отключение автозапуска Skype Tyamich Скриптовые языки администрирования Windows 5 24-04-2018 14:28
Отключение ненужных служб в Windows 7!^ Warfalomey Хочу все знать 2 05-11-2010 21:42
Службы - [решено] Счамопроизвольное отключение служб optimus_747 Microsoft Windows 2000/XP 3 15-10-2009 16:11
Отключение служб диман Microsoft Windows 2000/XP 11 28-10-2008 10:00
Самовольное отключение служб (???) Pixer Microsoft Windows NT/2000/2003 12 27-08-2007 14:25




 
Переход