我将LocalConfigurationManager设置如下:

[DSCLocalConfigurationManager()]
Configuration LCMConfig
{
    Node localhost
    {
        Settings
        {
            RebootNodeIfNeeded = $true
            ActionAfterReboot = 'ContinueConfiguration'
            AllowModuleOverwrite = $true
            DebugMode = 'All'
        }
    }
}
LCMConfig
Set-DscLocalConfigurationManager -Path .\LCMConfig -Verbose -Force

然后,我通过启动DSC配置
Start-DscConfiguration -Path .\RDS -Verbose -Wait

此配置设置了RemoteApp服务器,该服务器涉及整个步骤和几次重新启动。这些重启之一是一次又一次地循环进行。重新启动时,我可以进入系统足够长的时间,以便在DSC再次重新启动系统之前运行一两个快速命令。我如何知道DSC卡在配置中的哪个特定资源。

如果我跑步
Remove-DSCConfiguration -Stage Pending,Current,Previous

重新启动停止...但是随后我似乎丢失了所有关于发生问题的位置的信息。

我可以捕获Get-DSCConfiguration的输出,但是我对输出的理解不足以告诉重启循环在哪里发生。

我该如何进一步调试呢?

最佳答案

有很多方法可以解决此问题:

  • RebootNodeIfNeeded设置为true,将ActionAfterReboot设置为StopConfiguration。这样,当计算机在重新启动后启动时,DSC不会自动应用配置。然后,您可以在Powershell控制台中运行:Start-DscConfiguration -UseExisting -wait -verbose以捕获详细消息。最后执行的资源是请求重新启动的资源。
  • 运行Get-DscConfigurationStatus cmdlet以获取上次配置运行的状态。如果DSC中已在运行其他命令,则此cmdlet将失败。它将为您提供处于所需状态而非所需状态的资源列表。它还将为该操作提供JobId。搜索%windir%\system32\Configuration\ConfigurationStatus\{JobId}*.json。此json文件包含配置运行的详细消息。这仅在WMF 5.0 RTM上运行。
  • 获取xDSCDiagnostics模块,并使用此博客中的信息进行故障排除。 https://blogs.msdn.microsoft.com/powershell/2014/02/11/dsc-diagnostics-module-analyze-dsc-logs-instantly-now/
  • 关于powershell - DSC配置不断重启,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36535306/

    10-15 20:02