Powershell

如何使用 PowerShell DSC 保持 Windows Server 上的服務執行?

  • September 5, 2018

我最近注意到 Azure 上的 Windows Server 2016 VM 在重新啟動系統後有時無法啟動它們的某些服務(例如 ADFS、遠端桌面代理等),即使它們設置為自動並且我已經設置了恢復選項以在出現故障時重新啟動服務。即使重新啟動後經過很長時間也會發生這種情況,因此無需等待。當我去手動啟動服務時,它工作正常。

我想做的是使用 PowerShell DSC 來確保啟動類型設置為 Automatic / Automatic Delayed 的每個服務始終在執行。我發現以下部落格文章解釋瞭如何為單個服務執行此操作,但我將如何為啟動設置為自動的任何服務執行此操作?

我在這裡找到了另一個有用的文章,但它是一個正常的 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 執行此操作。

引用自:https://serverfault.com/questions/929576