将保护容器与复制策略相关联 - ASR PowerShell - 脚本

Associate Protection Container With Replication Policy - ASR PowerShell - Scripting

我正在尝试为 automating/simplify 实施 Azure Site Recovery 的任务构建脚本。

这很难,因为所有 Microsoft 文档的文档大多都是错误的,而且 cmdlet 大多已过时并标记为已弃用。

到目前为止,我可以完成以下步骤:

-创建存储账户

-创建虚拟网络

-创建资源组

-创建 Vault 并导入 FileSettings

-创建网站

-安装provider和Agent

-创建复制策略

(所有这些由 PowerShell 完成,经过努力工作已经有了新的 cmdlet 和模块)

现在我在将复制策略与保护容器相关联时遇到了一些问题。

我的 Cmdlet 如下:

#Associate Protection Container With Replication Policy 
$PolicyRslt=Get-AzureRmRecoveryServicesAsrPolicy -Name $PolicyName
$AssJob=Start-AzureRmSiteRecoveryPolicyAssociationJob -Policy $PolicyRslt -PrimaryProtectionContainer $Container

我得到错误:

Start-AzureRmSiteRecoveryPolicyAssociationJob : Cannot bind parameter 'Policy'. Cannot convert the "Microsoft.Azure.Commands.RecoveryServices.SiteRecovery.ASRPolicy" value of
type "Microsoft.Azure.Commands.RecoveryServices.SiteRecovery.ASRPolicy" to type "Microsoft.Azure.Commands.SiteRecovery.ASRPolicy".
At line:1 char:63
+ ... t-AzureRmSiteRecoveryPolicyAssociationJob -Policy $PolicyRslt -Primar ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Start-AzureRmSi...yAssociationJob], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Azure.Commands.SiteRecovery.StartAzureSiteRecoveryPolicyAssociationJob

谁能帮帮我?我无法找到将 JOB 与恢复服务模块相关联的方法,也无法通过 Cmdlet Get-AzureRmSiteRecoveryPolicy 获得策略,因为已经过时

提前感谢大家!

您不能混合和匹配来自 AzureRm.RecoveryServices.SiteRecovery 模块和 AzureRm.SiteRecovery 模块的 cmdlet,因为创建的 PowerShell 对象属于不同类型。

坚持使用 AzureRm.RecoveryServices.SiteRecovery 模块中的 cmdlet,您应该没问题。这里有一个参考:https://docs.microsoft.com/en-us/powershell/module/AzureRM.RecoveryServices.SiteRecovery/?view=azurermps-5.2.0

您要查找的 cmdlet 是 New-AzureRmRecoveryServicesAsrProtectionContainerMapping(别名为 New-AsrProtectionContainerMapping)

P.S : AzureRm.SiteRecovery 模块将在未来某个日期被弃用