如何解决Powershell 脚本继续要求我使用 Select-AzureSubscription 尽管我已经调用了它
我有一个 Azure Runbook,我试图在其中取消分配 VM。当我运行 Runbook 时出现错误
Stop-AzureVM : No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to
set the default subscription.
我在脚本中使用了以下内容。
Add-AzureRmAccount
Select-AzureRMSubscription
调用select后,打印出来
PSComputerName : localhost
PSSourceJobInstanceId :
Account :
Environment :
Subscription :
Tenant :
使用正确的订阅和租户信息,因此选择似乎工作正常,但由于某种原因我仍然无法使用 Stop-AzureVM
cmdlet。
有什么想法吗?
解决方法
命令 Stop-AzureVM
是 Azure 服务管理 PowerShell 命令。它仅可用于停止 Azure 经典 VM。但命令 Add-AzureRmAccount
是 Azure 资源管理 PowerShell 命令。运行该命令后,我们就可以管理 Azure 资源管理资源了。详情请参阅here和here。
因此对于 Azure ARM VM,请使用命令 Stop-AzureRmVM
来停止它。同时,关于如何停止Azure经典VM,请参考以下步骤
$ConnectionAssetName = "AzureClassicRunAsConnection"
# Get the connection
$Conn = Get-AutomationConnection -Name $ConnectionAssetName
# Authenticate to Azure with certificate
$CertificateAssetName = $Conn.CertificateAssetName
$AzureCert = Get-AutomationCertificate -Name $CertificateAssetName
Set-AzureSubscription -SubscriptionName $Conn.SubscriptionName -SubscriptionId $Conn.SubscriptionID -Certificate $AzureCert
Select-AzureSubscription -SubscriptionId $Conn.SubscriptionID
#stop VM
Stop-AzureVM -ServiceName "ContosoService01" -Name "MyVM" -Force
另外,关于如何检查虚拟机是否经典,请参考blog
,尝试运行以下:
Get-Module AzureRm.Profile -ListAvailable
当模块有多个实例时,可能会出现此问题。如果有多个实例,删除旧模块并保留新模块。
删除旧模块:Uninstall-Module -Name AzureRm.Profile -RequiredVersion 4.6.0#(olderversion if you have any)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。