В 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"
.....

Когда я запускаю этот код, я получаю следующую ошибку в журналах:

[ошибка] Невозможно привязать параметр «Параметр». Невозможно преобразовать значение «valueofthevariable» типа «System.String» в тип «System.Collections.Hashtable».

Как правильно передать значение в качестве параметра? Спасибо!

1
Dresse 25 Мар 2019 в 20:30

1 ответ

Лучший ответ

После еще нескольких поисков в Интернете я обнаружил свою ошибку:

В команде Powershell Invoke-AzVMRunCommand я использовал строку в качестве типа ввода для параметра, это должна быть хеш-таблица. Я изменил эту команду на следующую:

Invoke-AzVMRunCommand -ResourceGroupName xxx-Name xxx -CommandId 'RunPowerShellScript' -ScriptPath $env:SYSTEM_DEFAULTWORKINGDIRECTORY/_alias/xxx.ps1 -Parameter @{xxx = $env:xxx} -Verbose
2
Dresse 25 Мар 2019 в 18:27