Как разрешить "Невозможно вызвать метод SendConfigurationApply". при выполнении Start-DscConfiguration?

Другой способ рассказать вопрос менее конкретно: Каков правильный способ "reset" процессов DSC на целевой машине?

Я создал конфигурацию DSC, которую я сейчас выполняю, и добавляю новую конфигурацию пакета, которую я неправильно понял. Я решил, что, забыв предоставить аргумент /quiet установщику MSI в блоке пакета, я могу заставить командлет Start-DscConfiguration "повесить".

В начале этого "зависания" я останавливаю операцию настройки 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

К сожалению, при настройке удаленного ПК я вижу аналогичное сообщение об ошибке, и перезагрузка ПК, похоже, не исправляет ошибку.

Я видел несколько сообщений в Интернете относительно этой проблемы, и три, которые я нашел до сих пор, предлагают:

  • "Подождите немного, и он решит себя", что не сработало для меня (может быть, я нетерпелив...). Не долговременное решение.
  • "Удалите все локальные файлы .mof и повторите попытку", который тоже не работал у меня.
  • Остановить все процессы с помощью "wmi" в имени и перезапустить службу winrm на целевых компьютерах. Это позволило мне разблокировать, но я надеюсь есть лучший способ сделать это. (Если в ближайшие дни я не получу лучшего метода, я сам отвечу на эту процедуру, чтобы получить требуемые результаты).

Ответ 1

Вы также можете попробовать выполнить команду start-dscconfiguration с параметром -Force

Start-DscConfiguration -Force ...

Ответ 2

Я нашел следующие работы довольно хорошо для reset 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 или отсутствующие запланированные задачи для проверок Consistency/Reboot. Обновление: В соответствии с этот пункт при подключении запланированные задачи для согласования/перезагрузки были удалены в предварительном просмотре WMF 5.0 февраля.