Azure 运行命令错误:字符串缺少终止符:“

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

我正在尝试通过门户中的运行命令映射 Azure 存储帐户文件共享:

$storageAccountKey = 'key'
$storageAccountName = 'account'
$securePass = $storageAccountKey | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $storageAccountName,$securePass

New-PSDrive -Credential $creds -Name Z -PSProvider FileSystem -Root '\\account.file.core.windows.net\files01' > $null

我收到 missing terminator 错误:

At C:\Packages\Plugins\Microsoft.CPlat.Core.RunCommandWindows\1.1.18\Downloads\script9.ps1:6 char:15
+ files01"
+        ~
The string is missing the terminator: ".
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

我在路径中使用单引号、双引号、转义斜杠运行命令...我摸不着头脑试图找出问题所在。我使用的命令是否适用于未运行该脚本的 PS 版本?

代码从 VS Code 复制到浏览器中。除非 VS Code 以奇怪的方式编码文本,否则我认为我复制的只是简单的纯文本。

我在虚拟机本地运行相同的代码(在 PS 7.4 中)并且成功了。我确实必须从同一存储帐户中删除所有其他映射共享,否则会抛出有关

multiple connections to a server or shared resource...
的错误。这可能是某种晦涩、迂回的方式的问题吗?

azure azure-storage azure-powershell azureportal
1个回答
0
投票

Azure 运行命令错误:字符串缺少终止符:“

检查 Run Command 使用的 PowerShell 版本:

$PSVersionTable | Out-String | Write-Host

在我的环境中显示为 5.1

Name                           Value                                                                                   
----                           -----                                                                                   
PSVersion                      5.1.22621.4391                                                                          
PSEdition                      Desktop                                                                                 
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                 
BuildVersion                   10.0.22621.4391                                                                         
CLRVersion                     4.0.30319.42000                                                                         
WSManStackVersion              3.0                                                                                     
PSRemotingProtocolVersion      2.3                                                                                     
SerializationVersion           1.1.0.1

enter image description here

您可以使用以下脚本,通过门户中的运行命令映射 Azure 存储帐户文件共享。

脚本:

$storageAccountName = 'venkat326123'
$storageAccountKey = 'zzzz'
$shareName = 'share1'
$securePass = $storageAccountKey | ConvertTo-SecureString -AsPlainText -Force
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $storageAccountName,$securePass

New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\$storageAccountName.file.core.windows.net\$shareName" -Credential $creds

输出:

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Z                                      FileSystem    \\venkat326123.file.core.windows...

enter image description here

参考:

windows S2022网络使用无法接受Azure存储密钥,因为它以斜线和sshd限制开头 - Stack Overflow,作者:Buzz Moschetti

© www.soinside.com 2019 - 2024. All rights reserved.