在Azure Devops中,我试图运行一个Azure Powershell内联脚本块:
Invoke-AzVMRunCommand -ResourceGroupName xxx-Name xxx -CommandId 'RunPowerShellScript' -ScriptPath $env:SYSTEM_DEFAULTWORKINGDIRECTORY/_alias/xxx.ps1 -Parameter $env:xxx -Verbose
如您所见,我正在将参数传递给xxx.ps1脚本。这只是xxx.ps1脚本的一小部分内容:
Param(
[string]$xxx
)
#create AD Group
$ADGroupName = "AD" + $xxx+ "_AD"
.....
运行此代码时,我在日志中收到以下错误:
[错误]无法绑定参数'Parameter'。无法将类型为“ System.String”的“ valueofthevariable”值转换为类型为“ System.Collections.Hashtable”。
如何正确地将值作为参数传递? 谢谢!
答案 0 :(得分:0)
经过更多在线搜索后,我发现了我的错误:
在Powershell命令Invoke-AzVMRunCommand中,我使用字符串作为Parameter的输入类型,它必须是哈希表。 我将该命令更改为以下内容:
Invoke-AzVMRunCommand -ResourceGroupName xxx-Name xxx -CommandId 'RunPowerShellScript' -ScriptPath $env:SYSTEM_DEFAULTWORKINGDIRECTORY/_alias/xxx.ps1 -Parameter @{xxx = $env:xxx} -Verbose