Вход

Запуск служб через скрипт
июл 27
Запуск служб через скрипт

Достаточно часто бывают ситуации, когда из-за остановленной службы не работает критически важный сервис. По хорошему необходимо однажды отследив такую проблему открыть логи и найти корневую причину возникновения ошибки. Но в моём случае или не хватает времени, или нет ресурсов, или нет средств. Так как в идеале надо не только анализировать логи, но и настроить систему мониторинга, с возможностью исправления ситуации в автоматическом режиме.

В итоге решил сделать скрипт, который запускается по расписанию через "Планировщика Задач" и стартует все остановленные службы, которые должны запускать автоматически. И так сначала сам скрипт

$e = Get-Service
foreach ($s in $e)
{
if (($s.Status -eq "Stopped") -and ($s.StartType -match "Automatic"))
{
Write-Host $s.DisplayName
$s.Start()
Start-Sleep -s 2
}
}

После написания и отладки скрипта столкнулся с другими проблемами:

  1. Запуск неподписанного скрипта из единого хранилища в сети - невозможен в автоматическом режиме
  2. В сетевом пути присутствуют пробелы

В результате в "Планировщике Задач" необходимо указать следущие параметры запуска:

Action: Start a program
Program: powershell
Add arguments: -executionpolicy bypass "& '\\путь\пусть с пробелами\StartAutomaticServices.ps1'"

Далее настраиваем расписание для запуска в рамках SLA. Это конечно не отменяет задачу по поиску корневой причины. Но нет ничего более постоянного, чем временное решение.

Заметки

Нет заметок для этой записи.