我最近注意到,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 執行此操作。