Модуль PowerShell Az: экспорт и импорт в автономном режиме

Мне нужно переместить модуль PowerShell Az с одной машины на другую в автономном режиме (обе машины имеют одинаковые версии Windows (10 Pro 1809), .net, powershell (5.1) и т. д.)

Я не могу использовать ни частные репозитории PowerShellGet, ни установщик MSI

Я запускаю Save-Module -Name Az -Path 'C:\Users\kag\Documents\ps_modules' -RequiredVersion 3.7.0 -Force на машине-доноре, и он дает мне экспортировано более 50 каталогов: введите здесь описание изображения

Я копирую все на принимающую машину и запускаю:

Get-ChildItem "C:\Users\kag\Documents\ps_modules\*" -Recurse | Unblock-File
Import-Module -name "C:\Users\kag\Documents\ps_modules\Az" -Verbose

..но получаю ошибки для всех зависимостей:

введите здесь описание изображения

Есть идеи, как правильно перевести модуль Az в автономный режим?


person kagarlickij    schedule 29.07.2020    source источник
comment
Является ли C:\Users\kag\Documents\ps_modules одним из путей к модулям, указанным при вводе $env:PSModulePath.split(';')?   -  person Theo    schedule 29.07.2020
comment
@ Тео, нет, не могли бы вы посоветовать, как добавить собственный путь к $env:PSModulePath?   -  person kagarlickij    schedule 29.07.2020
comment
Посмотрите здесь   -  person Theo    schedule 29.07.2020
comment
Это помогло, пожалуйста, добавьте свой ответ в качестве ответа   -  person kagarlickij    schedule 29.07.2020
comment
Спасибо, что дали мне знать. Я разместил это как ответ сейчас.   -  person Theo    schedule 29.07.2020


Ответы (1)


Вот мои комментарии в качестве ответа:

Похоже, что путь, по которому вы сохранили модуль в C:\Users\kag\Documents\ps_modules, не является одним из путей модулей, известных PowerShell.

Вы можете проверить, какие пути используются PowerShell для поиска ваших модулей, набрав

$env:PSModulePath.split(';')

в консоли.


Ниже приведена выдержка из блога Стефана Стрейнджера.

Вы можете добавить временный путь, доступный только для текущего сеанса:

$env:PSModulePath = $env:PSModulePath + ";C:\Users\kag\Documents\ps_modules"

Чтобы сделать это постоянным, вы можете либо добавить указанную выше строку в свой профиль PowerShell, либо вручную добавить ее в реестр:

$CurrentValue = [Environment]::GetEnvironmentVariable("PSModulePath", "User")
[Environment]::SetEnvironmentVariable("PSModulePath", $CurrentValue + ";C:\Users\kag\Documents\ps_modules", "User")

используйте User, чтобы сохранить этот путь только для текущего пользователя. Используйте Machine, чтобы этот путь был доступен для всех пользователей

person Theo    schedule 29.07.2020