删除服务器并禁用保护

本文介绍了如何从恢复服务保管库中取消注册服务器,以及如何禁用对计算机的 Site Recovery 保护。

取消注册 VMM 服务器

  1. 停止在要删除的 VMM 服务器上复制云中的虚拟机。
  2. 删除在您想要删除的 VMM 服务器上由云使用的任何网络映射。 在 Site Recovery 基础结构>适用于System Center VMM>的网络映射中,右键单击网络映射,然后>删除
  3. 记下 VMM 服务器的 ID。
  4. 取消复制策略与要删除的 VMM 服务器上的云的关联。 在Site Recovery Infrastructure>For System Center VMM>Replication Policies中,双击关联的策略。 右键单击云 >取消关联
  5. 删除 VMM 服务器或主动节点。 在“Site Recovery 基础结构”中,针对“System Center VMM”的“VMM 服务器”,右键单击该服务器,然后选择“删除”。
  6. 如果 VMM 服务器处于“已断开连接”状态,请对 VMM 服务器下载并运行清理脚本。 使用“以管理员身份运行”选项打开 PowerShell,以更改默认 (LocalMachine) 范围的执行策略。 在脚本中,指定要删除的 VMM 服务器的 ID。 脚本会从服务器中删除注册和云配对信息。
  7. 在所有辅助 VMM 服务器上,运行清理脚本。
  8. 在任何其他被动 VMM 群集节点(已安装提供程序)上运行清理脚本。
  9. 手动卸载 VMM 服务器上的提供程序。 如果有一个群集,请从所有节点删除。
  10. 若要将虚拟机复制到 Azure,需要在已删除的云中从 Hyper-V 主机中卸载 Azure 恢复服务代理。

注销 Hyper-V 站点中的 Hyper-V 主机服务器

未由 VMM 托管的 Hyper-V 主机将收集到 Hyper-V 站点中。 在 Hyper-V 站点中删除主机,如下所示:

  1. 禁用位于主机上的 Hyper-V VM 的复制。
  2. 取消关联 Hyper-V 站点的策略。 在“Site Recovery 基础结构”“对于 Hyper-V 站点”>“复制策略”中,右键单击关联的策略。 右键单击站点 >“解除关联”。
  3. 删除 Hyper-V 主机。 在“Site Recovery 基础结构”中的“Hyper-V 站点”和“Hyper-V 主机”上,右键单击服务器,选择“删除”。
  4. 在移除 Hyper-V 站点中的所有主机后,再删除该站点。 在Site Recovery 基础结构>对于Hyper-V 站点>Hyper-V 站点中,右键单击站点>删除。
  5. 如果 Hyper-V 主机处于“已断开连接”状态,请对已删除的每个 Hyper-V 主机运行以下脚本。 该脚本清理服务器的设置,并将其从存储库中取消注册。
        pushd .
        try
        {
            $windowsIdentity=[System.Security.Principal.WindowsIdentity]::GetCurrent()
            $principal=new-object System.Security.Principal.WindowsPrincipal($windowsIdentity)
            $administrators=[System.Security.Principal.WindowsBuiltInRole]::Administrator
            $isAdmin=$principal.IsInRole($administrators)
            if (!$isAdmin)
            {
                "Please run the script as an administrator in elevated mode."
                $choice = Read-Host
                return;
            }

            $error.Clear()
            "This script will remove the old Azure Site Recovery Provider related properties. Do you want to continue (Y/N) ?"
            $choice =  Read-Host

            if (!($choice -eq 'Y' -or $choice -eq 'y'))
            {
            "Stopping cleanup."
            return;
            }

            $serviceName = "dra"
            $service = Get-Service -Name $serviceName
            if ($service.Status -eq "Running")
            {
                "Stopping the Azure Site Recovery service..."
                net stop $serviceName
            }

            $asrHivePath = "HKLM:\SOFTWARE\Microsoft\Azure Site Recovery"
            $registrationPath = $asrHivePath + '\Registration'
            $proxySettingsPath = $asrHivePath + '\ProxySettings'
            $draIdvalue = 'DraID'
            $idMgmtCloudContainerId='IdMgmtCloudContainerId'


            if (Test-Path $asrHivePath)
            {
                if (Test-Path $registrationPath)
                {
                    "Removing registration related registry keys."
                    Remove-Item -Recurse -Path $registrationPath
                }

                if (Test-Path $proxySettingsPath)
                {
                    "Removing proxy settings"
                    Remove-Item -Recurse -Path $proxySettingsPath
                }

                $regNode = Get-ItemProperty -Path $asrHivePath
                if($regNode.DraID -ne $null)
                {
                    "Removing DraId"
                    Remove-ItemProperty -Path $asrHivePath -Name $draIdValue
                }
                if($regNode.IdMgmtCloudContainerId -ne $null)
                {
                    "Removing IdMgmtCloudContainerId"
                    Remove-ItemProperty -Path $asrHivePath -Name $idMgmtCloudContainerId
                }
                "Registry keys removed."
            }

            # First retrieve all the certificates to be deleted
            $ASRcerts = Get-ChildItem -Path cert:\localmachine\my | where-object {$_.friendlyname.startswith('ASR_SRSAUTH_CERT_KEY_CONTAINER') -or $_.friendlyname.startswith('ASR_HYPER_V_HOST_CERT_KEY_CONTAINER')}
            # Open a cert store object
            $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")
            $store.Open('ReadWrite')
            # Delete the certs
            "Removing all related certificates"
            foreach ($cert in $ASRcerts)
            {
                $store.Remove($cert)
            }
        }catch
        {
            [system.exception]
            Write-Host "Error occurred" -ForegroundColor "Red"
            $error[0]
            Write-Host "FAILED" -ForegroundColor "Red"
        }
        popd

禁用对 VMware VM 或物理服务器(VMware 到 Azure)的保护

重要

使用 ASR 保护 VMware 计算机的经典体验已于 2026 年 3 月 30 日停用。 了解详细信息。 切换到 现代化体验 以避免服务中断。

  1. 在“受保护的项”和“复制的项”中,右键单击计算机,然后选择“禁用复制”。
  2. 在“禁用复制”页中,选择下列选项之一:
    • 禁用复制并删除(推荐) - 此选项会从 Azure Site Recovery 中删除已复制的项,并停止该机的复制过程。 此外,还将清理配置服务器上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。 请注意,此选项仅在配置服务器处于连接状态时使用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 配置服务器上的复制配置将不会被清理。

注意

这两个选项都不会从受保护的服务器中卸载移动服务,需要手动卸载。 如果打算使用相同的配置服务器重新保护服务器,可以跳过卸载移动服务这一步。

注意

如果已对 VM 进行了故障转移且该 VM 正在 Azure 中运行,请注意,禁用保护功能不会删除或影响故障转移的 VM。

禁用对 Azure 虚拟机的保护(从 Azure 到 Azure)

  • 在“受保护的项” 和 “复制的项” 中,右键单击计算机,选择“禁用复制”

注意

不会从受保护的服务器中卸载移动服务,需要手动卸载。 如果你打算再次保护服务器,可以跳过卸载移动服务的步骤。

禁用对 Hyper-V 虚拟机的保护(从 Hyper-V 到 Azure)

注意

要在没有 VMM 服务器的情况下将 Hyper-V VM 复制到 Azure,请执行此过程。 正在使用 System Center VMM 到 Azure 方案复制虚拟机时,请按照有关禁用使用 System Center VMM 到 Azure 方案复制的 Hyper-V 虚拟机保护的说明进行操作。

  1. 在“受保护的项”和“复制的项”>中,右键单击计算机 >并选择“禁用复制”。

  2. 在“禁用复制”中,可以选择下列选项:

    • 禁用复制并删除(推荐) - 此选项将从 Azure Site Recovery 中删除所复制的项,并停止该计算机的复制。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不会清理本地虚拟机上的复制配置。

    注意

    如果选择“删除”选项,请运行下面的一组脚本,清理本地 Hyper-V 服务器上的复制设置。

    注意

    如果已对 VM 进行了故障转移并且该 VM 正在 Azure 中运行,请注意,禁用保护不会删除/影响故障转移的 VM。

  3. 在源 Hyper-V 主机服务器上,移除虚拟机的复制。 将 SQLVM1 替换为虚拟机名称,并通过管理 PowerShell 运行以下脚本

    $vmName = "SQLVM1"
    $vm = Get-WmiObject -Namespace "root\virtualization\v2" -Query "Select * From Msvm_ComputerSystem Where ElementName = '$vmName'"
    $replicationService = Get-WmiObject -Namespace "root\virtualization\v2"  -Query "Select * From Msvm_ReplicationService"
    $replicationService.RemoveReplicationRelationship($vm.__PATH)

禁用对使用 System Center VMM 到 Azure 方案复制到 Azure 的 Hyper-V 虚拟机的保护

  1. 受保护的项复制的项中,右键单击该台机器,然后选择禁用复制

  2. 在“禁用复制”中,选择下列选项之一:

    • 禁用复制并删除(推荐) - 此选项会从 Azure Site Recovery 中删除已复制的项,且停止该机器的复制进程。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。

    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不会清理本地虚拟机上的复制配置。

      注意

      如果选择 “删除 ”选项,请运行以下脚本来清理本地 VMM 服务器的复制设置。

  3. 从源 VMM 服务器上的 VMM 控制台使用 PowerShell(需要管理员权限)运行此脚本。 将占位符 SQLVM1 替换为虚拟机名称。

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Set-SCVirtualMachine -VM $vm -ClearDRProtection
    
  4. 上述步骤清理 VMM 服务器上的复制设置。 若要停止运行在 Hyper-V 主机服务器上的虚拟机的复制,请运行以下脚本。 将 SQLVM1 替换为虚拟机的名称,将 host01.contoso.com 替换为 Hyper-V 主机服务器的名称。

    $vmName = "SQLVM1"
    $hostName  = "host01.contoso.com"
    $vm = Get-WmiObject -Namespace "root\virtualization\v2" -Query "Select * From Msvm_ComputerSystem Where ElementName = '$vmName'" -computername $hostName
    $replicationService = Get-WmiObject -Namespace "root\virtualization\v2"  -Query "Select * From Msvm_ReplicationService"  -computername $hostName
    $replicationService.RemoveReplicationRelationship($vm.__PATH)

禁用对通过 System Center VMM 到 VMM 方案复制至辅助 VMM 服务器的 Hyper-V 虚拟机的保护

  1. 受保护的项> 和 复制的项 中,右键单击计算机 >,选择禁用复制

  2. 在“禁用复制”中,选择下列选项之一:

    • 禁用复制并删除(推荐) - 此选项会从 Azure Site Recovery 中移除已复制的项目,并停止该计算机的复制。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不会清理内部虚拟机上的复制配置。 运行下面的一组脚本,清理本地虚拟机上的复制设置。

      注意

      如果选择 “删除 ”选项,请运行以下脚本来清理本地 VMM 服务器的复制设置。

  3. 从源 VMM 服务器上的 VMM 控制台使用 PowerShell(需要管理员权限)运行此脚本。 将占位符 SQLVM1 替换为虚拟机名称。

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Set-SCVirtualMachine -VM $vm -ClearDRProtection
    
  4. 在辅助 VMM 服务器上,运行下面的脚本,清理辅助虚拟机的设置:

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Remove-SCVirtualMachine -VM $vm -Force
    
  5. 在辅助 VMM 服务器上刷新 Hyper-V 主机服务器上的虚拟机,以便在 VMM 控制台中重新检测辅助 VM。

  6. 上述步骤清理 VMM 服务器上的复制设置。 若要停止虚拟机的复制,请在主 VM 和辅助 VM 上运行以下脚本。 将 SQLVM1 替换为虚拟机名称。

    Remove-VMReplication –VMName "SQLVM1"
    

后续步骤