PowerShell Az 模块:离线导出和导入

PowerShell Az module: export and import offline

我需要将 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 在“donor”机器上,它给了我 50 多个导出的目录:

我将所有内容复制到“接收方”机器并 运行ning:

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

..但所有依赖项都出现错误:

关于如何正确地离线移动 Az 模块有什么想法吗?

这里是我的评论作为答案:

您在 C:\Users\kag\Documents\ps_modules 中保存模块的路径似乎不是 PowerShell 知道的模块路径之一。

您可以通过键入

来测试 PowerShell 使用哪些路径来查找您的模块
$env:PSModulePath.split(';')

在控制台中。


以下摘自Stefan Stranger's Blog

您可以添加仅对当前会话可用的临时路径:

$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")

使用“用户”只为当前用户存储此路径。使用“机器”让所有用户都可以使用该路径