【问题标题】:DSC Configuration Keeps RestartingDSC 配置不断重启
【发布时间】:2016-04-10 20:40:06
【问题描述】:

我的 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 的输出,但我无法充分理解输出的含义,无法判断重启循环发生在哪里。

如何进一步调试?

【问题讨论】:

    标签: powershell windows-server-2012 dsc powershell-5.0


    【解决方案1】:

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

    1. RebootNodeIfNeeded 设置为true,将ActionAfterReboot 设置为StopConfiguration。这样,当机器在重新启动后启动时 DSC 不会自动应用配置。然后,您可以从 powershell 控制台运行:Start-DscConfiguration -UseExisting -wait -verbose 以捕获详细消息。最后执行的资源是请求重新启动的资源。

    2. 运行Get-DscConfigurationStatus cmdlet 以获取上次配置运行的状态。如果 DSC 中已在运行其他内容,则此 cmdlet 将失败。它将为您提供处于所需状态而不处于所需状态的资源列表。它还将为操作提供 JobId。搜索%windir%\system32\Configuration\ConfigurationStatus\{JobId}*.json。此 json 文件包含配置运行的详细消息。这仅适用于 WMF 5.0 RTM。

    3. 获取 xDSCDiagnostics 模块并使用此博客中的信息进行故障排除。 https://blogs.msdn.microsoft.com/powershell/2014/02/11/dsc-diagnostics-module-analyze-dsc-logs-instantly-now/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2021-01-20
      • 2020-09-01
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多