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 でこれを行うことはできません。

関連情報