我将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上运行。 关于powershell - DSC配置不断重启,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36535306/