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

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

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

Связанный контент