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

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

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

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


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

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


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

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

 

Забанен


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

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


YuS_2, имелось в виду, что pwsh исповедует приведение к булеву типу в стиле JavaScript, однако при этом статус может быть нулевыми или просто пустым значением (даже если в действительности это не так).
К слову, Busla уже не первый раз берется утверждать вещи нелепые и далёкие от истины.

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



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

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


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата greg zakharov:
имелось в виду, что pwsh исповедует приведение к булеву типу »
это да, для powershell нет разницы, булево для него: $false -eq 0, а всё, что не ноль, то $true ... и да, приводит он это всё автоматом, специально обозначать не требуется.

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


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


Ветеран


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

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


Цитата greg zakharov:
если кто-то начинает гнать, дескать, так делать не нужно или нечто в этом роде, значит он ни черта не смыслит в PowerShell »
всё ровно наоборот: то, что вы наваяли понимает от силы человек пять на форуме
это дешёвые понты: накорябать такое решение, которое топикстартер заведомо не поймёт

Цитата YuS_2:
у статусов сервисов существует конкретное [int32] значение свойства, которое можно подсмотреть по: »
конкретные int - это magic numbers, статусы служб - это enum с читаемыми названиями. Это "ж-ж-ж" - неспроста! А чтобы люди понимали, что происходит в коде без внешних подсказок.

Цитата greg zakharov:
Busla уже не первый раз берется утверждать вещи нелепые и далёкие от истины »
отличный ход - ведь моя просьба конкретизировать будет призывом к офтопику, и "личными разборками", которые модераторы поудаляют

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


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Busla:
конкретные int - это magic numbers »
Если уж на то пошло, то это никакие не magic numbers, а вполне себе конкретное перечисление констант:
SERVICE_STOPPED - 0x00000001
SERVICE_START_PENDING - 0x00000002
SERVICE_STOP_PENDING - 0x00000003
SERVICE_RUNNING - 0x00000004
SERVICE_CONTINUE_PENDING - 0x00000005
SERVICE_PAUSE_PENDING - 0x00000006
SERVICE_PAUSED - 0x00000007
где:
Цитата:
An enumeration is a set of named constants whose underlying type is any integral type. If no underlying type is explicitly declared, Int32 is used. Enum is the base class for all enumerations in the .NET Framework.
то бишь, используемые в powershell со вполне себе [int32] значениями:
Код: Выделить весь код
(gsv).status|gm
- это к моей ссылке, опубликованной выше:
Цитата:
TypeName: System.ServiceProcess.ServiceControllerStatus
и для пущей убедительности:
Код: Выделить весь код
gsv|? status -eq 4
В любом случае, это никакая не:
Цитата Busla:
имитация тернарного оператора »
а вполне себе, верное использование предоставленного инструмента.

ЗЫ А вообще, я за то, чтобы при появлении такого утверждения:
Цитата Busla:
это пример, как не надо писать на PowerShell »
за ним сразу же следовал бы пример того, как надо писать... и речь, конечно же, не только о powershell.
Цитата Busla:
моя просьба конкретизировать будет призывом к офтопику, и "личными разборками", которые модераторы поудаляют »
Если аргументация не будет выглядеть кратенькими и голыми аксиомами, а будет включать в себя конкретные доказательства, причем безо всякого перехода на личности, то и модераторам незачем будет удалять поучительные дискуссии, даже если она немного свалится в оффтоп. Имхо.

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


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


Забанен


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

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


Busla, если латеральная лямбда "дешёвые понты", которые по-вашему могут разуметь лишь горстка избранных форума (к слову, не названных), что же тогда в вашем представлении обобщенные делегаты? Видимо в них вовсе нет нужды, ибо "дешёвые понты". Или рефлексия. Тоже "понты".
О, сослаться на модераторов ещё какой "хороший ход"! Цепляться за форум, точнее за сомнительно заработанную репутацию - вот истинная причина вашего словоблудия. Если не влом, поищите на форуме свои каки, в которых вы утверждаете полную чушь, в то время как прочие дают адекватные ответы.

Отправлено: 22:39, 11-06-2019 | #15


Старожил


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

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


@greg zakharov простите вы не смотрели если в агрументе несуществеющий сервис то ответ неправильный

HTML код: Выделить весь код
$service_name = 'zzz'; .({Write-Warning ('service {0} running' -f $service_name)},{Write-Warning ('service{0} stopped' -f $service_name)})[(Get-Service $service_name ).Status -eq 1] Get-Service : Cannot find any service with service name 'zzz'.At line:1 char:149+ ... e {0} stopped' -f $service_name)})[(Ge.... WARNING: service zzz running


Отправлено: 07:42, 15-06-2019 | #16


Забанен


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

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


Serguei Kouzmine, все верно. Речи же не было о несуществующем сервисе, так? В противном случае, при Get-Service обращенным в $null и (-ErrorAction 0), породить исключение индекса. Если нужен пример:
Код: Выделить весь код
$service = 'foo'
.({if(!$$){throw};'возможно запущен'},{'остановлен'})[($$=gsv $service -ea 0).Status -eq 1]

Последний раз редактировалось greg zakharov, 15-06-2019 в 20:18.


Отправлено: 13:39, 15-06-2019 | #17



Компьютерный форум 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




 
Переход