Я пытаюсь автоматизировать настройку контроллера домена с 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?