web-dev-qa-db-ja.com

PowerShell DSCを使用してWindowsServer上のサービスを実行し続ける方法は?

最近、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
Yavor

スクリプトステップまたはサービスのリストを使用しない限り、PowerShellDSCでこれを行うことはできません。

0
4c74356b41