我正在尝试构建脚本以自动化/简化实施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获取策略,因为已经过时了
先谢谢大家!
答案 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模块将在以后的日期弃用