2014-10-02 4 views
6

Я работаю через книгу DSC с сайта powershell.org и пытаюсь настроить сервер выталкивания, используя код конфигурации, указанный в книге.Powershell DSC: Не удалось загрузить модуль xPSDesiredStateConfiguration

configuration CreatePullServer 
{ 
    param 
    (
     [string[]]$ComputerName = 'localhost' 
    ) 

    Import-DSCResource -ModuleName xPSDesiredStateConfiguration 

    Node $ComputerName 
    { 
     WindowsFeature DSCServiceFeature 
     { 
      Ensure = "Present" 
      Name = "DSC-Service" 
     } 

     xDscWebService PSDSCPullServer 
     { 
      Ensure     = "Present" 
      EndpointName   = "PSDSCPullServer" 
      Port     = 8080 
      PhysicalPath   = "$env:SystemDrive\inetpub\wwwroot\PSDSCPullServer" 
      CertificateThumbPrint = "AllowUnencryptedTraffic" 
      ModulePath    = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Modules" 
      ConfigurationPath  = "$env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration" 
      State     = "Started" 
      DependsOn    = "[WindowsFeature]DSCServiceFeature" 
     } 

     xDscWebService PSDSCComplianceServer 
     { 
      Ensure     = "Present" 
      EndpointName   = "PSDSCComplianceServer" 
      Port     = 9080 
      PhysicalPath   = "$env:SystemDrive\inetpub\wwwroot\PSDSCComplianceServer" 
      CertificateThumbPrint = "AllowUnencryptedTraffic" 
      State     = "Started" 
      IsComplianceServer  = $true 
      DependsOn    = ("[WindowsFeature]DSCServiceFeature","[xDSCWebService]PSDSCPullServer") 
     } 
    } 
} 

CreatePullServer -ComputerName pull1.lab.pri 

При запуске сценария конфигурации, сообщает PowerShell, что он не может загрузить модуль xPSDesiredStateConfiguration.

Импорт-DSCResource -ModuleName xPSDesiredStateConfiguration Невозможно загрузочный модуль 'xPSDesiredStateConfiguration': модуль не найден.

Я подтвердил, что у меня установлен комплект ресурсов DSC, а модуль указан при выполнении команды Get-DSCResource. Может ли кто-нибудь дать мне понять, что я, возможно, сделал неправильно?

Кроме того, я использую Windows 7 64-бит и установили KB2819745 довести до PowerShell версии 4.

+0

- модуль, доступный в вашей системе? Get-Module -ListAvailible – Schwarzie2478

+1

Да, он указан. Хотя ваше предложение действительно привело меня к пути к решению. Я заметил, что когда я запускал команду Get-Module -ListAvailable, он дважды перечислял каталог, содержащий модуль. При попытке решить более раннюю проблему я добавил каталог $ env: ProgramFiles \ WindowsPowerShell \ Modules в переменную среды PSModulePath, поэтому модули были как-то дублированы. Похоже, это вызвало проблему, потому что она работает после того, как я удалил каталог из переменной среды PSModulePath. – Domin

ответ

9

В ответ на комментарий к моему первоначальному вопросу, я проверил, что модуль был быть указан при выполнении Get-Module -ListAvailable , Я заметил, что когда я запустил команду, он дважды перечислял каталог, содержащий модуль . Затем я понял, что, пытаясь решить более раннюю проблему, я добавил каталог $env:ProgramFiles\WindowsPowerShell\Modules в переменную окружения PSModulePath, поэтому модули дублировались и вызывают проблемы. После удаления пути из переменной окружения PSModulePath все работает!

+1

Отлично! Вы также должны принять этот ответ, чтобы вопрос не оставался без ответа. – briantist

+0

@PortlandRunner он автор оригинального вопроса и отвечает на свой вопрос, который поощряется в SO. Пожалуйста, обратите внимание, вы рекомендовали удалить отличный ответ – Devin

Смежные вопросы