【问题标题】:How do I resolve "Cannot invoke the SendConfigurationApply method." when performing Start-DscConfiguration?如何解决“无法调用 SendConfigurationApply 方法”。执行 Start-DscConfiguration 时?
【发布时间】:2014-11-10 16:37:35
【问题描述】:

另一种不太具体地表达问题的方式:在目标机器上“重置”DSC 进程的正确方法是什么?

我创建了一个我现在正在迭代的 DSC 配置,并且我正在添加我弄错的新包配置。我确定如果忘记在 Package 块中向 MSI 安装程序提供 /quiet 参数,我可能会导致 Start-DscConfiguration cmdlet“挂起”。

在此“挂起”开始时,我停止本地计算机上的 DSC 配置操作并尝试更正配置问题(通过在我的示例中添加 /quiet 参数)然后我重新启动 DSC 操作。现在我在操作过程中看到远程机器的以下内容:

Cannot invoke the SendConfigurationApply method. The PerformRequiredConfigurationChecks method is in progress and must return before SendConfigurationApply can be invoked.
    + CategoryInfo          : NotSpecified: (root/Microsoft/...gurationManager:String) [], CimException
    + FullyQualifiedErrorId : MI RESULT 1
    + PSComputerName        : REMOTEMACHINE20

不幸的是,访问正在配置的远程 PC 我看到了类似的错误消息,并且重新启动 PC 似乎无法纠正错误。

我在网上看到了一些关于这个问题的帖子,到目前为止我发现的三个建议:

  1. “稍等片刻,它会自行解决”,这对我不起作用(也许我不耐烦......)。不是一个站得住脚的长期解决方案。
  2. “删除所有本地 .mof 文件并重试”,这对我也不起作用。
  3. Stop all processes with 'wmi' in the name and restart the winrm service on the target machine(s). 这让我畅通无阻,但我希望有更好的方法来做到这一点。 (如果我在接下来的几天内没有听到更好的方法,我会用这个程序自己回答这个问题以获得所需的结果)。

【问题讨论】:

  • 我遇到了同样的问题,解决方案 3 是我发现的对我也有效的解决方案。其他人都没有。

标签: powershell powershell-4.0 dsc


【解决方案1】:

我发现以下方法可以很好地重置 DSC。请注意,这将删除本地配置,因此您需要重新应用 machinename.meta.mof 文件。

#Remove all mof files (pending,current,backup,MetaConfig.mof,caches,etc)
rm C:\windows\system32\Configuration\*.mof*
#Kill the LCM/DSC processes
gps wmi* | ? {$_.modules.ModuleName -like "*DSC*"} | stop-process -force

此时您已准备好使用Set-DscLocalConfigurationManager 配置并使用Update-DscConfiguration -Wait -Verbose -CimSession machinename 更新的干净系统

到目前为止,唯一没有解决的问题是 $env:psmodulepath 损坏或缺少一致性/重启检查的计划任务。 更新:根据this item on connect,在 WMF 5.0 2 月预览版中删除了一致性/重启计划任务。

【讨论】:

  • 谢谢,在拔掉我的头发 2 小时后,您的回答终于让 DSC 再次工作。
  • 删除所有 MOF 文件的替代方法是使用 Remove-DscConfigurationDocument -Stage Pending -Force。这将删除正在进行的挂起配置。此外,我必须在删除之前终止所有进程,因为它不允许我在不终止进程的情况下删除文档。
【解决方案2】:

您也可以尝试使用 -Force 选项执行 start-dscconfiguration 命令

Start-DscConfiguration -Force ...

【讨论】:

  • 自从我发布这个原始问题以来,我在DSC上做了很多学习。这确实是这个问题的正确答案。 -Force 开关何时出现? (没关系,但最好把它放在这里供后代使用)。
猜你喜欢
  • 1970-01-01
  • 2020-07-19
  • 2021-10-10
  • 2018-06-01
  • 2012-08-31
  • 2017-04-29
  • 2017-07-03
  • 2012-06-11
相关资源
最近更新 更多