Другой способ сформулировать вопрос менее конкретно: как правильно «сбросить» процессы DSC на целевой машине?
Я создал конфигурацию DSC, над которой сейчас работаю, и добавляю новую конфигурацию пакета, в которой ошибся. Я определил, что, забыв указать аргумент /quiet для установщика MSI в блоке Package, я могу вызвать «зависание» командлета 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. на целевой машине(ах). Это разблокировало меня, но я надеюсь, что есть лучший способ сделать это. (Если я не узнаю о лучшем методе в ближайшие несколько дней, я сам отвечу на этот вопрос с помощью этой процедуры, чтобы получить требуемые результаты).