我正在尝试在 azure 自动化帐户 Runbook 测试窗格中执行 powershell 脚本。在我的 powershell 脚本中,我导入模块,使用托管标识连接自动化帐户,然后尝试使用 cmdlet“Get-AzRecoveryServicesVault”获取特定订阅的恢复服务保管库属性
Powershell 脚本:
Import-Module Az.Accounts
Import-Module Az.Resources
Import-Module Az.Compute
Import-Module Az.Automation
Import-Module Az.Storage
Import-Module Az.KeyVault
Import-Module Az.RecoveryServices
Connect-AzAccount -Identity
$context = Get-AzContext -ListAvailable
write-output "context" $context
Set-AzContext -Subscription "<<subscriptionID>>"
$vaultName = ""
$vaultResourcegroup = ""
$containerCtx = Get-AzRecoveryServicesVault -Name $vaultName -ResourceGroupName $vaultResourcegroup
write-output "containerCtx" $containerCtx
根据上面的代码,这应该显示恢复服务保管库属性,因为我需要一个VaultId来获取容器列表。以下是我收到的错误。
错误:
发生一个或多个错误。
不确定这是否与托管身份的权限有关? azurepowershellpowershell-cmdlet azure-automation
即使我一开始也遇到同样的错误:
然后将后台操作员角色授予恢复服务库的自动自动化帐户的托管身份:
后来我也在脚本中使用了该版本,它对我有用,如下所示(稍微修改了你的脚本):
Import-Module -Name Az.RecoveryServices -RequiredVersion 7.2
Connect-AzAccount -Identity
$vaultName = "stackdemo"
$vaultResourcegroup = "rgname"
$containerCtx = Get-AzRecoveryServicesVault -Name $vaultName -ResourceGroupName $vaultResourcegroup
Write-output "containerCtx" $containerCtx
Output: