2016-04-10 96 views
1

我有我的LocalConfigurationManager設置如下:DSC配置不斷重新啓動

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

然後我通過

Start-DscConfiguration -Path .\RDS -Verbose -Wait 

揭開序幕DSC配置此配置設置,涉及一大堆的遠程應用服務器步驟和幾次重新啓動。其中一次重新啓動發生在一個又一個循環中。當重啓發生時,我可以進入系統足夠長的時間以便在DSC重新啓動系統之前運行一兩個快速命令。我怎麼知道配置中哪些特定的資源正在被DSC佔用。

如果我運行

Remove-DSCConfiguration -Stage Pending,Current,Previous 

的重啓停止......但後來我似乎失去對存在問題正在發生的所有信息。

我可以捕獲Get-DSCConfiguration的輸出,但是我無法弄清楚輸出是否足以說明重啓循環發生的位置。

我該如何進一步調試呢?

回答

4

有很多方法來解決這個問題:

  1. 設置RebootNodeIfNeeded爲true,ActionAfterRebootStopConfiguration。這種方式在重啓後機器啓動時,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/