我正在尝试在 Windows 8.1 上使用 Windows Azure PowerShell 模块。我已经下载并安装了 Azure 模块,在启动时我可以运行并使用“Windows Azure PowerShell”,这是一个仅加载 Azure 的 PS。当我打开一个简单的 PS 窗口并执行 Import-Module Azure 时,它会失败,并显示:
import-module : The specified module 'Azure' was not loaded because no valid module file was found in any module directory.
我怀疑这与 powershell 版本或 64\32 位版本有关。
有人有这方面的经验吗?
答案1
Windows Azure SDK 二进制文件和相关的 PowerShell cmdlet 都是 32 位的,这就是“Windows Azure Powershell”快捷方式始终启动 32 位 shell 的原因。
您可以通过引用模块清单的文件系统路径将 Azure 模块导入到现有的 PowerShell 会话中:
Import-Module "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1"
[更新] 在最新的 Azure 中,使用
Import-Module "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1"
要仅通过名称访问模块,您需要将其位置包含在PSModulePath
环境变量中(对于开发人员来说,这里的细节非常详细):
$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")
$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\"
$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";"
[Environment]::SetEnvironmentVariable("PSModulePath",$newPSModulePath)
这是你的 powershell 的简写表达式
$env:PSModulePath += ";C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\"
Import-Module Azure # <-- Now you can do this!
您可以将以上内容包含在您的 PowerShell 配置文件中
答案2
如果刚刚安装了 Azure PowerShell SDK,请先重启计算机。安装后需要重启,否则会引发此异常。
答案3
在 Windows 10 中,路径已更改。请参阅下面的正确版本:
$oldPSModulePath = [Environment]::GetEnvironmentVariable("PSModulePath")
$azureModulePath = "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement"
$newPSModulePath = $oldPSModulePath,$azureModulePath -join ";"
答案4
还可以尝试以管理员身份运行安装程序,方法是右键单击安装程序可执行文件并选择以管理员身份运行。完成后,重新启动。您也可以按上述方法运行导入,但对于较新的安装程序,您不需要这样做。