我正在使用Azure CLI 2.0从PowerShell管理存储帐户。我有一个SAS令牌(我存储在变量中),我想在命令中使用它。下面是我正在运行的脚本:
$sasToken = 'st=2017-11-13T10%3A55%3A06Z&se=2017-11-13T11%3A27%3A06Z&sp=w&spr=https&sv=2017-04-17&sr=c&sig=%2BA6LDTwHes6JdxEAHXSvbYc70y30OcznjMVSyFbCXog%3D'
az storage blob upload `
--account-name mystorageaccount `
--container-name mycontainer `
--file c:\temp\file.txt `
--name file.txt `
--sas-token $sasToken
字符串
当我运行它时,我得到这个错误:
The specified resource does not exist.
'se' is not recognized as an internal or external command,
operable program or batch file.
'sp' is not recognized as an internal or external command,
operable program or batch file.
'spr' is not recognized as an internal or external command,
operable program or batch file.
'sv' is not recognized as an internal or external command,
operable program or batch file.
'sr' is not recognized as an internal or external command,
operable program or batch file.
'sig' is not recognized as an internal or external command,
operable program or batch file.
型
在我看来,PowerShell每次看到&符号时都会截断SAS令牌,而Azure CLI不会将其作为同一字符串的所有部分。
有没有办法强制PowerShell使用SAS令牌按原样调用Azure CLI?
4条答案
按热度按时间3pmvbmvn1#
尝试将SAS令牌 Package 在第二组引号中:
第一个月
因此CLI命令看起来像这样:
--sas-token "st=2017-11-13T10%3A55%3A06Z&se=2017-11-13T11%3A27%3A06Z&sp=w&spr=https&sv=2017-04-17&sr=c&sig=%2BA6LDTwHes6JdxEAHXSvbYc70y30OcznjMVSyFbCXog%3D"
个ar7v8xwq2#
今天早上我遇到了这个问题,并解决了SAS Uri存储在变量中的问题:
字符串
基于Microsoft devblogs
ql3eal8s3#
如果您从Azure CLI获取SAS密钥,请注意,如果您使用“-o json”运行它,您将获得SAS密钥值的输出。您可以直接将其分配给变量,它可以由Azure CLI使用而不会出现问题(至少,我可以将其放置在AKV secret中)
这是我写的函数,作为我ps1代码的一部分来获取该变量:
字符串
ctehm74n4#
对于那些偶然发现同样问题的人,我能够用下面的一行来解决它:
字符串
适用于Windows和Linux上的PSCore。