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

时间:2018-02-06 11:57:15

标签: azure azure-site-recovery

我正在尝试构建脚本以自动化/简化实施Azure Site Recovery的任务。

这很难,因为所有Microsoft Docs都记录不好,并且cmdlet大部分已过时并标记为已弃用。

现在我可以完成以下步骤:

创建存储加速

创建虚拟网络

创建资源组

创建Vault并导入为FileSettings

创建网站

- 安装提供者和代理

- 创建复制策略

(所有这一切都来自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获取策略,因为已经过时了

先谢谢大家!

1 个答案:

答案 0 :(得分:0)

您无法混合和匹配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模块将在以后的日期弃用