azure运行命令脚本以装载文件存储

azure运行命令脚本以装载文件存储,azure,virtual-machine,file-storage,runcommand,Azure,Virtual Machine,File Storage,Runcommand,我已经创建了VM,它需要从Azure文件存储下载一些文件。我正在寻找一种自动化的方法,我正在尝试Azure VM运行命令脚本 第一步CmdKey工作正常,但下一步是: net use Z: \\my123storageaccount.file.core.windows.net\databases /u:AZURE\my123storageaccount sskhgkghgkuytiytru...== 这是失败的 当我登录到该VM并在PowerShell窗口中运行该命令时,它可以正常工作,没有任

我已经创建了VM,它需要从Azure文件存储下载一些文件。我正在寻找一种自动化的方法,我正在尝试Azure VM运行命令脚本

第一步CmdKey工作正常,但下一步是:

net use Z: \\my123storageaccount.file.core.windows.net\databases /u:AZURE\my123storageaccount sskhgkghgkuytiytru...==
这是失败的

当我登录到该VM并在PowerShell窗口中运行该命令时,它可以正常工作,没有任何错误

有一件事可能会有所帮助,那就是错误中的存储帐户名是修剪我的第一个字母。例如,如果在错误中称为MyStorageAccount,则表示为yStorageAccount.file.core.windows.net


任何帮助都可以复制这样的文件。可以使用Azure门户中共享的上下文菜单中的“连接”从Azure复制powershell命令。如果这不起作用,可能是连接问题,也可能是SMB相关问题

$buildSource = 'M:\build\'

$acctKey = ConvertTo-SecureString -String "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList 
"Azure\wserverBuild", $acctKey
New-PSDrive -Name M -PSProvider FileSystem -Root "\\wserverBuild.file.core.windows.net\build" -Credential $credential -Persist

Copy-Item  'M:\build\' -Destination 'C:build' -Recurse
更新

在我这方面,我可以使用Azure VM运行命令脚本从Azure文件存储下载一些文件

主要步骤如下:

  • 从我的存储帐户文件复制脚本连接

  • 将脚本粘贴到Azure虚拟机运行命令RunPowerShellScript PowerShellScript

根据这一点,运行命令需要
Microsoft.Compute/virtualMachines/runCommand/action
权限,参与者角色和更高级别的角色拥有该权限。请在这边检查一下

此外,在登录Azure VM时检查Azure VM代理,从任务管理器中查找进程名WindowsAzureGuestAgent.exe


参考资料:

如果转到存储帐户->文件,则可以复制映射驱动器所需的powershell命令


对于我来说,问题在于,根据“脚本在Windows上作为系统运行”。因此,当您作为普通用户登录时,该用户没有保存凭据,并且无法查看装载的驱动器内容

要解决此问题,您可以使用
psexec
(从)作为常规用户运行。例如:

psexec.exe \\your-ip -u your-user -p your-pass cmdkey /add:...
psexec.exe \\your-ip -u your-user -p your-pass net use Z: \my123storageaccount.file.core.windows.net\databases /u:AZURE\my123storageaccount sskhgkghgkuytiytru...==

注意:由于以下原因,您必须使用
psexec.exe\\your ip
的形式,而不仅仅是作为系统用户使用
psexec.exe
,否则会有打乱Billy Goates的风险。

失败的错误是什么?您的情况如何?这个问题已经解决了吗?在这种情况下是否有任何更新?根据文档,“脚本在Windows上作为系统运行”。也许您登录使用这些文件的用户具有相同的凭据。嗨,Tim,我正在使用这个新的PSDrive-名称M-PSProvider FileSystem-Root”\\mystorageaccount.file.core.Windows.net\databases-Credential$Credential New PSDrive:路径中存在非法字符。您的代码中可能存在虚假字符。如果您使用门户中的剪切粘贴方法,它应该可以工作。我从存储帐户中找到了脚本,如果我将RDP发送到VM,它就可以工作,但在运行命令脚本中尝试时它不工作。我也使用门户中的此脚本,您可以共享您的运行命令脚本吗?@MohsenKokabi有任何更新吗?你能重新启动你的虚拟机或更新你这边的虚拟机代理吗?谢谢Nancy,是的,这是我得到命令的地方,当我RDP到虚拟机时它会工作,但是如果我在运行命令脚本中尝试它,它会出错。