Get-AzRecoveryServicesBackupItem:无法验证参数 'Container' 的参数。参数为 null 或空

Get-AzRecoveryServicesBackupItem : Cannot validate argument on parameter 'Container'. The argument is null or empty

我正在研究 Back up a virtual machine in Azure with PowerShell. But while running runbook from Start a backup job 部分 MS Azure 团队的官方教程,我收到如下所示的错误。 问题:我在这里可能遗漏了什么,如何解决这个问题?

以下行 运行 没问题:

PS C:\Users\myUserName> $vault = Get-AzRecoveryServicesVault -ResourceGroupName "rg-cs-ansible1" -Name "myRecoveryServicesVault"
>> $backupcontainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "myVM" -VaultId $vault.ID

但是当我 运行 以下行时,我得到如下所示的错误。

PS C:\Users\myUserName> $item = Get-AzRecoveryServicesBackupItem -Container $backupcontainer -WorkloadType AzureVM -VaultId $vault.ID

错误

Get-AzRecoveryServicesBackupItem : Cannot validate argument on parameter 'Container'. The argument is null or empty.
Provide an argument that is not null or empty, and then try the command again.
At line:2 char:16
+     -Container $backupcontainer `
+                ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-AzRecoveryServicesBackupItem], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Azure.Commands.RecoveryServices.Backup.Cmdlet
   s.GetAzureRmRecoveryServicesBackupItem

根据我的测试,您的命令在我这边运行良好。我可以用这个命令用错误的虚拟机名称重现你的问题,即使你的虚拟机名称错误,它也不会给出错误,但是 $backupcontainer 将为空,它会导致下一个命令出错。

$backupcontainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "myVM" -VaultId $vault.ID

因此,在您的情况下,请确保 myVM 是用于 -FriendlyName 参数的正确 VM 名称。