如何使用 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 执行此操作。

相关内容