无法使用来自 linux 子系统的 azure CLI 在 Azure VM 上执行 "custom script extension"

Unable to execute "custom script extension" on Azure VM using azure CLI from linux sub system

我正在为我的项目开发 post-deployment Pester 验证脚本。我需要使用 Azure CLI 将 pester 脚本作为自定义脚本扩展推送到 VM。

以下是我执行的命令:

az vm extension set --resource-group SomeRG--vm-name SimpleVM --name 
customScript --publisher Microsoft.Azure.Extensions --settings '{"fileUris": 
["https://github.com/myname/DSCConfig/blob/master/pester.ps1"], 
"commandToExecute":"powershell -ExecutionPolicy Unrestricted -File 
pester.ps1"}'  --version 2.0

执行完上面的命令后,Linux界面出现以下错误:

Deployment failed. Correlation ID: 8ba16fc0-fea6-4650-bb0a-2b73c9613dfe. Handler 'Microsoft.Azure.Extensions.customScript' has reported failure for VM Extension 'customScript' with terminal error code '1007' and error message: 'Install failed for the plugin (name: Microsoft.Azure.Extensions.customScript, version 2.0.6) with exception The specified executable is not a valid application for this OS platform.'

并且在检查 VM 上的扩展时看到状态为 "Transitioning ",详细信息为插件安装失败(名称:Microsoft.Azure.Extensions.customScript,版本 2.0.6),异常指定的可执行文件不是此 OS 平台的有效应用程序)

或者我尝试与其他发布商合作:Microsoft.Compute 和 Microsoft.OSTCExtensions

不幸的是,none 成功了。这两天一直卡在这一步。任何帮助深表感谢。

我认为您可能使用了错误的自定义脚本扩展(我认为您使用的是 Linux 虚拟机)。我认为您应该使用名为 "CustomScriptExtension" 的发布者 "Microsoft.Compute" 并将版本设置为“1.9”,如记录 here.

具体来说,试试这个命令:

az vm extension set --resource-group SomeRG--vm-name SimpleVM --name CustomScriptExtension --publisher Microsoft.Compute --settings '{"fileUris": ["https://github.com/myname/DSCConfig/blob/master/pester.ps1"], "commandToExecute":"powershell -ExecutionPolicy Unrestricted -File pester.ps1"}' --version 1.9