ARM模板自定义脚本扩展,带有空格的参数

时间:2017-07-21 18:52:58

标签: azure arm-template

powershell -File './scripts/myscript.ps1' -Param1 "My Param"

部署自定义脚本扩展所需的语法是什么,该扩展使用包含空格的params来调用PowerShell文件。这些是我迄今为止尝试过的,但没有一个有效。其中每个都与我在ARM模板中一样:

# Failed to being executing the script. Error from the logs on the VM: "VMExtensionProvisioningError"
"[concat('powershell -File InstallVSTSAgent.ps1 -vstsAccount \"', parameters('vstsAccount'), '\"')]"

# Failed in the same way.
"[concat('powershell -File InstallVSTSAgent.ps1 -vstsAccount \\\"', parameters('vstsAccount'), '\\\"')]"

# Ran, but the parameters entering my PowerShell file were wrapped in `ticks`
"[concat('powershell -File InstallVSTSAgent.ps1 -vstsAccount `\"', parameters('vstsAccount'), '`\"')]"

2 个答案:

答案 0 :(得分:1)

创建一个变量来保存引号,然后连接所需的字符串: https://stackoverflow.com/a/37293130/84395

"variables": {
    "singleQuote": "'",
},
...
"[concat('powershell -File InstallVSTSAgent.ps1 -vstsAccount ', variables('singleQuote'), parameters('vstsAccount'), variables('singleQuote'))]"

答案 1 :(得分:1)

逃逸的第一个变种是正确的。要在ARM模板中转义,请使用\