将保护容器与复制策略相关联 - 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 模块将在未来某个日期被弃用
我正在尝试为 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 模块将在未来某个日期被弃用