Wie verwende ich PowerShell DSC, um Dienste auf einem Windows Server am Laufen zu halten?

Wie verwende ich PowerShell DSC, um Dienste auf einem Windows Server am Laufen zu halten?

Mir ist vor Kurzem aufgefallen, dass unsere Windows Server 2016-VMs auf Azure nach dem Neustart des Systems manchmal einige ihrer Dienste nicht starten können (z. B. ADFS, Remote Desktop Broker und andere), obwohl sie auf Automatisch eingestellt sind und ich die Wiederherstellungsoptionen so eingestellt habe, dass der Dienst im Fehlerfall neu gestartet wird. Dies geschieht auch, wenn seit dem Neustart viel Zeit vergangen ist, sodass man nicht warten muss. Wenn ich den Dienst manuell starte, funktioniert er einwandfrei.

Ich möchte PowerShell DSC verwenden, um sicherzustellen, dass alle Dienste, deren Starttyp auf Automatisch / Automatisch verzögert eingestellt ist, immer ausgeführt werden. Ich habe Folgendes gefundenBlogeintragDarin wird erklärt, wie dies für einen einzelnen Dienst geht, aber wie gehe ich bei JEDEM Dienst vor, bei dem der Start auf „Automatisch“ eingestellt ist?

Ich habe einen weiteren nützlichen Beitrag gefundenHieraber es ist ein normales PowerShell-Skript und ich möchte es stattdessen mit DSC machen.

Danke schön.


Update: Ich habe die folgende DSC-Skriptressource verwendet:

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
                }
        }

Antwort1

Sie können das mit Powershell DSC nicht tun, es sei denn, Sie verwenden einen Skriptschritt oder eine Liste von Diensten.

verwandte Informationen