Недавно я заметил, что наши виртуальные машины Windows Server 2016 в Azure иногда не запускают некоторые из своих служб после перезагрузки системы (например, ADFS, Remote Desktop Broker и другие), даже если они настроены на автоматический запуск, и я установил параметры восстановления для перезапуска службы в случае сбоя. Это происходит даже тогда, когда с момента перезагрузки прошло много времени, так что ждать не нужно. Когда я запускаю службу вручную, она работает нормально.
Я хотел бы использовать PowerShell DSC, чтобы гарантировать, что каждая служба, у которой тип запуска установлен на Автоматический / Автоматический отложенный, всегда работает. Я нашел следующееСообщение блогагде объясняется, как это сделать для отдельной службы, но как мне сделать это для ЛЮБОЙ службы, у которой для запуска установлено значение «Автоматически»?
Я нашел еще один полезный постздесьно это обычный скрипт PowerShell, а я бы хотел сделать это с помощью DSC.
Спасибо.
Обновление: я использовал следующий ресурс DSC Script:
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
}
}
решение1
Вы не сможете сделать это с помощью PowerShell dsc, если не используете шаг скрипта или список служб.