Назад | Перейти на главную страницу

Как использовать PowerShell DSC для поддержки работы служб на Windows Server?

Недавно я заметил, что наши виртуальные машины 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, если не используете этап сценария или список служб.