Модуль импорта в Invoke-Command - PullRequest
3 голосов
/ 17 марта 2019

Я пытаюсь автоматизировать настройку контроллера домена с DHCP-сервером в среде Hyper-V. Что-то идет не так, когда я пытаюсь установить сервер DHCP. На самом деле, когда я пытаюсь импортировать модуль PowerShell DhcpServer.

Это соответствующий код, где DC1 - имя виртуальной машины:

$Cred = Get-Credential

[scriptblock]$Scriptblock = {
    Write-Host "Install DHCP feature & management tools"
    Install-WindowsFeature dhcp -IncludeManagementTools

    Write-Host "Import DhcpServer module"
    Import-Module DhcpServer # Error happens here
}

$Session = New-PSSession -VMName "DC1" -Credential $Cred
Invoke-Command -Session $Session -ScriptBlock $Scriptblock 

Это установит роль DHCP-сервера на виртуальную машину с помощью powershell direct. Однако инструкция Import-Module завершается с ошибкой:

Cannot find the Windows PowerShell data file 'DhcpServerMigration.psd1' in directory 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DhcpServer\en\', or in any parent culture 
directories.
    + CategoryInfo          : ObjectNotFound: (C:\Windows\syst...rMigration.psd1:String) [Import-LocalizedData], PSInvalidOperationException
    + FullyQualifiedErrorId : ImportLocalizedData,Microsoft.PowerShell.Commands.ImportLocalizedData
    + PSComputerName        : DC1

Я хотел бы отметить, что файл существует в C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DhcpServer\en\DhcpServerMigration.psd1 Также, когда я пытаюсь импортировать модуль с абсолютным путем, я получаю ту же ошибку.

Когда я выполняю шаги вручную, выполнив следующие шаги:

$Cred = Get-Credential
$Session = New-PSSession -VMName "DC1" -Credential $Cred
Enter-PSSession $Session
Install-WindowsFeature dhcp -IncludeManagementTools
Import-Module DhcpServer

Все работает, это стенограмма:

PS C:\_repo\> $Session = New-PSSession -VMName "DC1" -Credential $Cred
PS C:\_repo\> Enter-PSSession $session
[DC1]: PS C:\Users\administrator\Documents> Install-WindowsFeature dhcp -IncludeManagementTools

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
True    No             Success        {DHCP Server, Remote Server Administration...

[DC1]: PS C:\Users\administrator\Documents> Import-Module DhcpServer

Чего мне не хватает? Почему первый вариант - с invoke-command терпит неудачу? Оба варианта используют powershell direct.

Обновление после предложений @FSCKur:

Первоначальной установкой был хост с культурой en-US и виртуальный компьютер с культурой nl-BE. Как продемонстрировано, Import-Module терпит неудачу.

Я создал новый виртуальный компьютер с en-US культурой. Теперь Import-Module работает как положено.

Обновленный вопрос: почему же сбой Import-Module происходит, если культура между хостом и виртуальным компьютером отличается при использовании с командлетом Invoke-Command?

...