DSC 配置不断重启
DSC Configuration Keeps Restarting
我的 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
设置为真,将 ActionAfterReboot
设置为 StopConfiguration
。这样,当机器在重启后启动时,DSC 不会自动应用配置。然后,您可以从 powershell 控制台 运行: Start-DscConfiguration -UseExisting -wait -verbose
捕获详细消息。最后执行的资源是请求重新启动的资源。
运行 Get-DscConfigurationStatus
cmdlet 获取上次配置的状态 运行。如果 DSC 中已经有其他内容 运行ning,则此 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/
我的 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
设置为真,将ActionAfterReboot
设置为StopConfiguration
。这样,当机器在重启后启动时,DSC 不会自动应用配置。然后,您可以从 powershell 控制台 运行:Start-DscConfiguration -UseExisting -wait -verbose
捕获详细消息。最后执行的资源是请求重新启动的资源。运行
Get-DscConfigurationStatus
cmdlet 获取上次配置的状态 运行。如果 DSC 中已经有其他内容 运行ning,则此 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/