我创建了VM,该VM需要从Azure File Storage下载一些文件。我正在寻找一种自动化的方法,并且正在尝试Azure VM Run命令脚本。第一步CmdKey一切正常,但下一步是: 净使用Z:\ my123storageaccount.file.core.windows.net \ databases / u:AZURE \ my123storageaccount sskhgkghgkuytiytru ... ==
失败: enter image description here
当我登录到该VM并在PowerShell窗口中运行该命令时,它可以正常工作。
可能有用的一件事是错误中的存储帐户名正在修剪我的第一个字母。例如,如果在错误中将其称为MyStorageAccount,则表示yStorageAccount.file.core.windows.net
任何帮助
答案 0 :(得分:0)
您可以像这样复制文件。可以使用Azure门户中共享的上下文菜单中的“连接”,从Azure复制powershell命令。如果这不起作用,则可能是连接问题或与SMB有关
<select>
答案 1 :(得分:0)
更新
在我这边,我可以使用Azure VM运行命令脚本从Azure文件存储中下载一些文件。
主要步骤如下:
从我的存储帐户-文件-连接复制脚本。
将脚本粘贴到Azure虚拟机运行命令-RunPowerShellScript-PowerShellScript。
根据此doc,运行命令需要具有Microsoft.Compute/virtualMachines/runCommand/action
权限,而Contributor角色和更高级别的角色具有该权限。请检查这一边。
此外,登录到Azure VM时,请检查Azure VM代理,从任务管理器中查找进程名称WindowsAzureGuestAgent.exe。
答案 2 :(得分:0)
答案 3 :(得分:0)
对我来说,问题在于,根据Azure docs,“脚本在Windows上作为系统运行。”因此,当您以普通用户身份登录时,该用户没有保存的凭据,也无法查看已安装的驱动器内容。
要解决此问题,可以使用psexec
(来自PSTools
package)以常规用户身份运行。例如:
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...==
注意:由于voodoo black magic,您必须以psexec.exe \\your-ip
的形式使用,而不是仅以psexec.exe
的身份作为系统用户,否则可能会惹恼Billy Goates。