2017-06-06 68 views

回答

0

如果您尝试使用PowerShell命令,你必须记住登录到Azure的执行它们之前使用Get-AzureStorageBlob命令。见the documentation。您需要在远程计算机上登录(即:在脚本块内)。

另一种方法是让azcopy可访问,并通过自动化凭证传递关键信息。

+0

我能够使用基本的PS命令在脚本块内执行文件创建。防爆。新物品。我会尝试使用AzCopy,但可能需要先通过DSC安装它。感谢您的建议,我会放弃它。 – DXH

0

如果您想要这样做,根据我的经验,您需要执行以下步骤。

1.在目标虚拟机上安装Azure PowerShell。

2.在虚拟机上启用Winrm,需要在Windows防火墙和Azure NSG上打开端口5986。您的虚拟机上还需要配置证书。您可以逐步检查此blog,以在Azure VM上启用winrm。

注意:您应该启用winrm在https上侦听,如果您在http上启用它,则无法在Runbook脚本上赢得您的虚拟机。

3.在Runbook中登录到Azure订阅,您可以参考此link

4.使用New-PSSession在Runbook中登录您的虚拟机并执行您的PowerShell cmlet。你可以查看我的answer

+0

我试着启动一个新的PS会话并从那里运行命令。 Azure PS Module安装在目标机器上。将blob大约15GB下载到目标虚拟机。 – DXH

+0

@DXH为什么不在您的目标虚拟机上下载blob?您是否需要自动化每天或每个月下载blob? –

+0

由于我们的客户端与我们的云vnet断开连接,因此需要此解决方案。数据库每天刷新一次。目前,我使用Task Scheduler在虚拟机上本地运行的PS脚本。也许我可以使用Azure Automation来启动存储在本地的PS脚本,但我试图集中所有脚本,以便它不会成为管理多个服务器上的恶梦。另外,凭证是一个问题。每次密码更改时,我都必须在每台服务器上进行更新,我可以通过使用存储帐户密钥来绕过此密码,但它已公开。 – DXH