Недавно я заметил, что наши виртуальные машины Windows Server 2016 в Azure иногда не запускают некоторые из своих служб после перезагрузки системы (например, ADFS, брокер удаленного рабочего стола и другие), даже если для них установлено значение «Автоматически», и я установил параметры восстановления для перезапуска службы в случае сбоя. Это происходит даже тогда, когда с момента перезагрузки прошло много времени, так что это не вопрос ожидания. Когда я запускаю службу вручную, она работает нормально.
Что я хотел бы сделать, так это использовать PowerShell DSC, чтобы гарантировать, что каждая служба, для которой установлен тип запуска Автоматическая / Автоматическая задержка, всегда работает. Я нашел следующее Сообщение блога в котором объясняется, как это сделать для отдельной службы, но как я могу это сделать для ЛЮБОЙ службы, для которой установлен автоматический запуск?
Нашел еще один полезный пост Вот но это обычный сценарий PowerShell, и я бы хотел сделать это с помощью DSC.
Спасибо.
Обновление: я использовал следующий ресурс сценария DSC:
SetScript = {
$service = Get-WmiObject -Class Win32_Service -Filter "startmode = 'auto' AND state != 'running'"
foreach ($svc in $service)
{
Start-Service $svc.Name
}
}
TestScript = {
$service = Get-WmiObject -Class Win32_Service -Filter "startmode = 'auto' AND state != 'running'"
if ($null -eq $service)
{
return $true
}
else
{
return $false
}
}
Вы не можете сделать это с помощью powershell dsc, если не используете этап сценария или список служб.