Powershell “我如何解决?”;无法调用SendConfigurationApply方法;执行启动DSC配置时? 另一种表达问题的方式不太具体:在目标机器上“重置”DSC进程的正确方式是什么?

Powershell “我如何解决?”;无法调用SendConfigurationApply方法;执行启动DSC配置时? 另一种表达问题的方式不太具体:在目标机器上“重置”DSC进程的正确方式是什么?,powershell,powershell-4.0,dsc,Powershell,Powershell 4.0,Dsc,我已经创建了一个DSC配置,我现在正在迭代它,我正在添加一个新的包配置,但我弄错了。我确定,如果忘记向包块中的MSI安装程序提供/quiet参数,可能会导致Start-DscConfiguration cmdlet“挂起” 在“挂起”开始时,我停止本地计算机上的DSC配置操作,并尝试纠正配置问题(通过在示例中添加/quiet参数),然后重新启动DSC操作。现在,在操作过程中,我看到了我的远程机器的以下情况: Cannot invoke the SendConfigurationApply met

我已经创建了一个DSC配置,我现在正在迭代它,我正在添加一个新的包配置,但我弄错了。我确定,如果忘记向包块中的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似乎无法纠正错误

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

  • “只要等一会儿,它就会自行解决”,这对我来说不起作用(也许我不耐烦了…)。这不是一个站得住脚的长期解决方案
  • “删除所有本地.mof文件,然后再试一次”,这对我也不起作用
  • 这让我畅通无阻,但我希望有更好的方法来做到这一点。(如果我在接下来的几天里没有听到更好的方法,我会用这个程序自己回答,以获得所需的结果)

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

    Start-DscConfiguration -Force ...
    

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

    Start-DscConfiguration -Force ...
    

    我发现以下方法可以很好地重置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损坏或缺少一致性/重新启动检查的计划任务更新:根据计划,WMF 5.0 2月预览版中删除了一致性/重新启动任务。

    我发现以下方法可以很好地重置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损坏或缺少一致性/重新启动检查的计划任务更新:根据计划,WMF 5.0 2月预览版中删除了一致性/重新启动任务。

    我也遇到了同样的问题,解决方案3也是我找到的一个对我同样有效的解决方案。其他人都没有。我有同样的问题,我找到的解决方案3也对我有效。其他人都没有。自从我发布这个原始问题以来,我在DSC上做了很多学习。这确实是这个问题的正确答案。强制开关什么时候出现的?(没关系,但如果能在这里为子孙后代留下这个问题,那就太好了)。自从我发布这个原始问题以来,我对DSC做了很多学习。这确实是这个问题的正确答案。强制开关什么时候出现的?(没关系,但能在这里为子孙后代保留它会很好)。谢谢,在我花了两个小时的时间整理了我的头发后,你的回答终于让DSC重新工作了。删除所有MOF文件的另一种方法是使用Remove DscConfigurationDocument-Stage Pending-Force。这将删除正在进行的挂起配置。另外,我必须在删除之前先杀死所有进程,因为它不允许我在不杀死进程的情况下删除文档。谢谢,在我花了2个小时的时间后,您的回答终于让DSC重新工作。删除所有MOF文件的另一种方法是使用remove DscConfigurationDocument-Stage Pending-Force。这将删除正在进行的挂起配置。此外,我必须在删除之前杀死所有进程,因为它不允许我在不杀死进程的情况下删除文档。