首页 > 解决方案 > Get-AzRecoveryServicesBackupItem:无法验证参数“容器”上的参数。参数为 null 或为空

问题描述

我正在编写来自 MS Azure 团队的官方教程,内容是使用 PowerShell 在 Azure 中备份虚拟机。但是在从启动备份作业部分运行 runbook 时,我收到如下所示的错误。问题:我可能在这里遗漏了什么,以及如何解决这个问题?

以下行运行良好:

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

标签: azurepowershellazure-powershell

解决方案


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

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

在此处输入图像描述

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


推荐阅读