0

我正在尝试构建一个脚本来自动化/简化实施 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 获取策略,因为它已经过时

提前感谢大家!

4

1 回答 1

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)

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

于 2018-02-06T13:34:49.233 回答