从混合工作程序运行AZ模块的CommandNotFoundException

时间:2019-03-31 05:37:05

标签: azure powershell

我在Azure自动化帐户Runbook上配置了混合工作程序VM,并且尝试从那里调用一些Pester脚本(混合工作程序VM中保留有invoke-pester命令的ps1文件)作为提升的会话(使用start-处理cd c:\Users\<Your name>\AppData\Local\Android\Sdk\tools emulator.exe -list-avds emulator.exe -avd emulator-name or emulator-Id动词,它在VM中调用ps1)。但是,当我这样做时,sterer脚本会给出此异常。

  

CommandNotFoundException:找到了“ New-AzStorageContext”命令

     

在模块“ Az.Storage”中,但无法加载该模块。对于   更多

     

信息,运行“导入模块Az.Storage”。

我正在导入Invoke pester命令之前的AZ模块(Az是最新的1.6.0,Powershell和.net都是最新版本)。尽管如此,它什么也没做。我试图在Hybrid worker VM中编辑Allusers / AllHosts配置文件(添加了Import-Module AZ)并运行了运行手册。一次解决了该问题,然后我又收到了该问题(它删除了我添加的Import-Module AZ,并在windowspowershell V1.0目录中对其进行了重置),原因是奇怪的-runas重置了自身

预期:自动导入AZ模块 实际:不会自动导入可用区模块

2 个答案:

答案 0 :(得分:0)

最近,一个VSTS Windows代理混合工作程序发生了相同的事情,其中​​一些人安装了一个新版本的模块az.keyvaults,但由于出现相同的错误而失败,我在此路径中找到了有问题的模块:

C:\ Windows \ System32 \ config \ systemprofile \ Documents \ WindowsPowerShell,在我删除az.keyvaults模块之后,它又开始工作了。

答案 1 :(得分:0)

我遇到了类似的问题。 Az 模块已安装在 VM 上,但混合工作器返回错误 The term 'Connect-AzAccount' is not recognized as the name of a cmdlet, function, script file, or operable program.

然后我发现了问题。我像这样安装了 Az 模块:

Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force

请参阅 -Scope 参数。 Az 模块仅为我安装。您必须将其更改为 AllUsers,您的混合工作器才能工作。

Install-Module -Name Az -Scope AllUsers -Repository PSGallery -Force