Поставщик PowerShell xWebAdministration не существует в пути к модулю PowerShell и не зарегистрирован в качестве поставщика WMI.

Я сделал этот очень простой скрипт DSC. Что в основном создает веб-приложение на веб-сайте по умолчанию.

Configuration ConfigureWebApp
{
  param ($MachineName)
  Import-DscResource -Module xWebAdministration
  Node $MachineName
  {
    xWebApplication NewWebApplication 
    { 
      Name = "MyApp"
      Website = "Default Web Site" 
      WebAppPool =  "DefaultAppPool" 
      PhysicalPath = "C:\Inetpub\wwwroot\MyApp"
      Ensure = "Present"       
    } 
  }
}

cd "C:\Dsc\scripts"
ConfigureWebApp -MachineName "WIN-KPURIN2B87H"

Когда я запускаю сгенерированный файл MOF, он выдает следующую ошибку.

Поставщик PowerShell xWebAdministration не существует в пути к модулю PowerShell и не зарегистрирован в качестве поставщика WMI. + CategoryInfo: InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId: ModuleNameNotFound + PSComputerName: WIN-KPURIN2B87H

Если я запускаю Get-Module -ListAvailable , там будет указан xWebAdministration. Я проверил, что $env:PSModulePath включает "C:\Program Files\WindowsPowerShell\Modules"

Странно то, что этот сценарий DSC является частью более крупного сценария, который объединяет множество других сценариев DSC, которые устанавливают и настраивают IIS для этого приложения. И вроде нормально проходят.

Я использую Windows Server 2012 R2. И это не сервер PULL или PUSH. Я создаю и запускаю файл MOF локально. Есть ли у кого-нибудь предложения о том, что мне здесь не хватает? У меня есть ощущение, что это как-то связано с пользовательским контекстом, в котором выполняются эти сценарии, но просто не могу точно определить причину.

Включая выпуск "tree "C:\Program Files\WindowsPowerShell\Modules\xWebAdministration" /F "

Folder PATH listing
Volume serial number is 80FD-C8E9
C:\PROGRAM FILES\WINDOWSPOWERSHELL\MODULES\XWEBADMINISTRATION
³   TechNetDocumentation-xWebAdministration.docx
³   TechNetDocumentation_xWebAdministration.html
³   xWebAdministration.psd1
³   
ÃÄÄÄDSCResources
³   ÃÄÄÄMSFT_xIisModule
³   ³       MSFT_xIisModule.psm1
³   ³       MSFT_xIisModule.schema.mof
³   ³       xIisModuleDesigner.ps1
³   ³       
³   ÃÄÄÄMSFT_xWebApplication
³   ³       MSFT_xWebApplication.psm1
³   ³       MSFT_xWebApplication.schema.mof
³   ³       
³   ÃÄÄÄMSFT_xWebAppPool
³   ³       MSFT_xWebAppPool.psm1
³   ³       MSFT_xWebAppPool.schema.mof
³   ³       
³   ÃÄÄÄMSFT_xWebConfigKeyValue
³   ³       MSFT_xWebConfigKeyValue.psm1
³   ³       MSFT_xWebConfigKeyValue.schema.mof
³   ³       
³   ÃÄÄÄMSFT_xWebDeploy
³   ³       MSFT_xWebdeploy.psm1
³   ³       MSFT_xWebdeploy.schema.mof
³   ³       
³   ÃÄÄÄMSFT_xWebsite
³   ³       MSFT_xWebsite.psm1
³   ³       MSFT_xWebsite.schema.mof
³   ³       
³   ÀÄÄÄMSFT_xWebVirtualDirectory
³           MSFT_xWebVirtualDirectory.psm1
³           MSFT_xWebVirtualDirectory.schema.mof
³           
ÀÄÄÄExamples
        BakeryWebsite.zip
        README.md
        Sample_xWebsite_ConfigurationData.psd1
        Sample_xWebsite_NewWebsite.ps1
        Sample_xWebsite_NewWebsiteFromConfigurationData.ps1
        Sample_xWebsite_RemoveDefault.ps1

person JackLock    schedule 17.06.2015    source источник
comment
Не могли бы вы опубликовать вывод tree "C:\Program Files\WindowsPowerShell\Modules\xWebAdministration" /F на целевом узле? Возможно, структура каталогов не совсем правильная.   -  person briantist    schedule 18.06.2015
comment
Только что увидел вашу правку. Локальный запуск MOF-файла невозможен, если вы не используете PUSH (то есть вы будете использовать Start-DscConfiguration), поэтому, пожалуйста, объясните более подробно, как вы применяете конфигурацию.   -  person briantist    schedule 18.06.2015
comment
@briantist Я все еще изучаю DSC, поэтому я не совсем знаком с терминологией DSC. Но я хочу сказать, что как только я сгенерирую файл MOF. Я использую Start-DscConfiguration .\ConfigureWebApp -Verbose -Force -Wait для запуска этого файла MOF. Я также включил вывод, который вы просили.   -  person JackLock    schedule 18.06.2015
comment
Хорошо, так что просто для ясности, то, что вы делаете, это режим Push. Не существует такого понятия, как сервер Push, но если бы вы использовали режим Pull, вам потребовался бы сервер Pull. Вывод tree выглядит хорошо. Интересно, может быть, вы не разблокировали ZIP-файл перед его распаковкой? Если это так, то все файлы будут иметь пометку сети. Вы можете попробовать это очень быстро: gci 'C:\Program Files\WindowsPowerShell\Modules\xWebAdministration' | % { Unblock-File $_.FullName }   -  person briantist    schedule 18.06.2015
comment
Я сталкивался с этим несколько раз при тестировании своих сценариев DSC, но так и не смог точно определить причину этого. В конце концов я обнаружил, что старое «выключить/включить снова работает», поэтому теперь у меня есть 2 высокоуровневых сценария DSC.. 1 под названием NodePrep.ps1, который устанавливает reskit и выполняет перезагрузку, а другой применяет оставшуюся конфигурацию. Не идеально, но пока нормально. Мне будет интересно, если вы найдете ответ!   -  person sburgess123    schedule 18.06.2015
comment
@briantist Я попробовал предложенное вами решение. Но я не помог мне. Я обнаружил, что из-за других вещей, сделанных другими сценариями DSC, системе необходимо перезагрузиться. Поэтому я добавил проверку, требуется ли перезагрузка с использованием ресурса xPendingReboot, и это сработало. Спасибо за вашу помощь.   -  person JackLock    schedule 19.06.2015
comment
@JackLock, не могли бы вы опубликовать свое решение в качестве ответа, чтобы вопрос показывал ответ?   -  person TravisEz13    schedule 30.05.2016