如何使用PowerShell DSC保持Windows Server上的服務運作?

如何使用PowerShell DSC保持Windows Server上的服務運作?

我最近注意到,Azure 上的 Windows Server 2016 VM 有時在重新啟動系統後無法啟動某些服務(例如 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
                }
        }

答案1

除非使用腳本步驟或服務列表,否則無法使用 powershell dsc 執行此操作。

相關內容