我需要在Azure环境中定期备份一套VM.我认为对此明显的解决方案是使用PowerShell自动化该过程,因此编写了一个脚本来做到这一点.我希望这个按计划运行,无需人工干预即可无人值守.但是,我遇到的问题是每隔几天我就会收到错误:
Your Windows Azure credential in the Windows PowerShell session has expired. Please use Add-AzureAccount to login again.
Run Code Online (Sandbox Code Playgroud)
这意味着我必须重新运行Add-AzureAccount并通过关联的弹出窗口重新登录,一切都有效.显然这并不好,否定了实现这种自动化的好处.
有什么办法可以阻止这些凭据到期吗?
谢谢
是的,通过使用证书身份验证.使用的缺点之一Add-AzureAccount是凭证不时到期.您可以再次运行Add-AzureAccount,但在这种情况下,证书身份验证最适合您.
首先,使用Remove-AzureAccountcmdlet 删除您在PowerShell中注册的当前帐户.就像是:
Remove-AzureAccount -Name name@account.onmicrosoft.com
Run Code Online (Sandbox Code Playgroud)
这不会从Azure中删除您的帐户,只会删除您在PowerShell控制台中使用的引用(从您使用时开始Add-AzureAccount).然后你跑
Get-AzurePublishSettingsFile
Run Code Online (Sandbox Code Playgroud)
这将打开一个浏览器窗口,要求您对您的帐户进行身份验证,然后您将下载以.publishsettings结尾的文件
然后,在Azure PowerShell中运行
Import-AzurePublishSettingsFile -PublishSettingsFile <path_to_file>
Run Code Online (Sandbox Code Playgroud)
它将从publishsettings文件导入证书,允许您不使用而执行脚本Add-AzureAccount.
Set-AzureSubscription -SubscriptionName <name_of_subscription>如果您碰巧有多个订阅,您可能还需要使用.
此外,以下MSDN博客正如我上面所述描述了该过程.http://blogs.technet.com/b/ricardma/archive/2014/07/04/managing-azure-subscriptions-in-powershell.aspx
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |