无法在 Azure CLI 中创建包含括号的密码

问题描述 投票:0回答:1

我正在使用 CLI 设置 SQL Server。它按预期工作。

$Group = @("--resource-group", "groupy")
$Name =  @("--name", "servy")
$User =  @("--admin-user", "BigCahoona")
$Pass =  @("--admin-password", "Abcde12345#¤%")

az sql server create $Group $Name $User $Pass

最近,有人建议我出于实际原因,应该使用另一个密码,即包含括号的密码。我根据需要替换了它,这让我有了一个令人惊讶的发现:括号以一种特殊的方式在两个层面上被解释,这也让我感到困惑。

此更改:

$Pass =  @("--admin-password", "Abcde12345()")
会导致创建资源 但是 会产生以下错误。注意!这些不是我输入的命令。这只是计算机在显示创建的资源的 JSON 后给出的打印输出。

C:\source\dev>echo 无法加载 python 可执行文件。
无法加载 python 可执行文件。
C:\source\dev>退出 /b 1

此更改:

$Pass =  @("--admin-password", "Abcde12345()()")
不会创建杰克,只会产生以下错误。

()此时出乎意料。
C:\source\dev>“C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\..\python.exe”-IBm azure.cli
sql server create --resource-group groupy --name servy --admin-user BigCahoona --admin-password Abcde12345()()

我强烈怀疑 CLI 以某种方式将我的新密码视为函数调用,或者可能是要呈现的变量值。然而,我所坚持的是如何解决它(而不是选择一组不同的字符)。一致的观察结果是,右括号后面不允许有任何内容,并且括号内需要一些参数。

我发现资源表明应该以某种方式转义或转义,所以我尝试了不同组合的撇号和引号以及反斜杠和美元符号。这些都没有帮助。我确信由于平凡的审判和恐怖过程,我错过了一些替代方案。

python azure azure-devops azure-cli
1个回答
1
投票

这些似乎有效(至少当我运行时没有错误,值得检查服务器中的最终密码是什么)。它应该是

single quote + double quote
,如此处所示。设置单引号内带双引号的值(一个用于 PowerShell,一个用于命令提示符)。

$Group = @("--resource-group", "rg-shared")
$Name =  @("--name", "servy")
$User =  @("--admin-user", "BigCahoona")
$Pass =  @("--admin-password", '"Abcde12345()()"')
az sql server create $Group $Name $User $Pass

az sql server create --resource-group rg-shared `
                     --name servy `
                     --admin-user BigCahoona `
                     --admin-password '"Abcde12345()()"'
© www.soinside.com 2019 - 2024. All rights reserved.