将 Windows VM 移到其他 Azure 订阅或资源组

时间:2023-03-08 17:52:39

本文逐步说明如何在资源组或订阅之间移动 Windows VM。 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便。

Important

不可在此时移动托管磁盘。

在移动过程中将创建新的资源 ID。 移动 VM 后,需要更新工具和脚本以使用新的资源 ID。

使用门户将 VM 移到其他订阅

可以使用门户将 VM 及其关联的资源移到其他订阅。

  1. 打开 Azure 门户
  2. 单击“浏览” > “虚拟机”,然后从列表中选择要移动的 VM。

    将 Windows VM 移到其他 Azure 订阅或资源组

  3. 在“基本功能”部分,单击订阅名称旁边的“更改订阅”铅笔图标。 此时将打开“移动资源”边栏选项卡。

    将 Windows VM 移到其他 Azure 订阅或资源组

    本文逐步说明如何在资源组或订阅之间移动 Windows VM。 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便。

    Important

    不可在此时移动托管磁盘。

    在移动过程中将创建新的资源 ID。 移动 VM 后,需要更新工具和脚本以使用新的资源 ID。

    使用门户将 VM 移到其他订阅

    可以使用门户将 VM 及其关联的资源移到其他订阅。

    1. 打开 Azure 门户
    2. 单击“浏览” > “虚拟机”,然后从列表中选择要移动的 VM。

      将 Windows VM 移到其他 Azure 订阅或资源组

    3. 在“基本功能”部分,单击订阅名称旁边的“更改订阅”铅笔图标。 此时将打开“移动资源”边栏选项卡。

      将 Windows VM 移到其他 Azure 订阅或资源组

    4. 选择要移动的每个资源。 大多数情况下,应移动列出的所有可选资源。
    5. 选择要将 VM 移到的 订阅 。
    6. 选择一个现有资源组,或者键入名称以创建新的资源组。
    7. 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”。

    使用门户将 VM 移到其他资源组

    可以使用门户将 VM 及其关联的资源移到其他资源组。

    1. 打开 Azure 门户
    2. 单击“浏览” > “资源组”,然后选择包含 VM 的资源组。
    3. 从“资源组”边栏选项卡上的菜单中选择“移动”。

      将 Windows VM 移到其他 Azure 订阅或资源组

    4. 在“移动资源”边栏选项卡中,选择要移动的资源,然后键入现有资源组名称,或选择创建新资源组。 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”

      将 Windows VM 移到其他 Azure 订阅或资源组

    使用 PowerShell 移动 VM

    若要将虚拟机移到其他资源组,需确保同时移动所有依赖资源。 若要使用 Move-AzureRMResource cmdlet,需要资源的名称和类型。 可以通过 Find-AzureRMResource cmdlet 获取这两项信息。

    复制
    Find-AzureRMResource -ResourceGroupNameContains "<sourceResourceGroupName>"

    若要移动 VM,需要移动多个资源。 只需分别创建每个资源的变量,然后列出这些变量即可。 本示例包括 VM 的大多数基本资源,但可以根据需要添加更多资源。

    复制
    $sourceRG = "<sourceResourceGroupName>"
    $destinationRG = "<destinationResourceGroupName>" $vm = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Compute/virtualMachines" -ResourceName "<vmName>"
    $storageAccount = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Storage/storageAccounts" -ResourceName "<storageAccountName>"
    $diagStorageAccount = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Storage/storageAccounts" -ResourceName "<diagnosticStorageAccountName>"
    $vNet = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/virtualNetworks" -ResourceName "<vNetName>"
    $nic = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/networkInterfaces" -ResourceName "<nicName>"
    $ip = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/publicIPAddresses" -ResourceName "<ipName>"
    $nsg = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/networkSecurityGroups" -ResourceName "<nsgName>" Move-AzureRmResource -DestinationResourceGroupName $destinationRG -ResourceId $vm.ResourceId, $storageAccount.ResourceId, $diagStorageAccount.ResourceId, $vNet.ResourceId, $nic.ResourceId, $ip.ResourceId, $nsg.ResourceId

    若要将资源移到其他订阅,请包含 -DestinationSubscriptionId 参数的值。

    复制
    Move-AzureRmResource -DestinationSubscriptionId "<destinationSubscriptionID>" -DestinationResourceGroupName $destinationRG -ResourceId $vm.ResourceId, $storageAccount.ResourceId, $diagStorageAccount.ResourceId, $vNet.ResourceId, $nic.ResourceId, $ip.ResourceId, $nsg.ResourceId

    系统会要求你确认你需要移动指定资源。 请键入 Y 确认要删除资源。

    后续步骤

    可以在资源组和订阅之间移动许多不同类型的资源。 有关详细信息,请参阅将资源移到新资源组或订阅

  4. 选择要移动的每个资源。 大多数情况下,应移动列出的所有可选资源。
  5. 选择要将 VM 移到的 订阅 。
  6. 选择一个现有资源组,或者键入名称以创建新的资源组。
  7. 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”。

使用门户将 VM 移到其他资源组

可以使用门户将 VM 及其关联的资源移到其他资源组。

  1. 打开 Azure 门户
  2. 单击“浏览” > “资源组”,然后选择包含 VM 的资源组。
  3. 从“资源组”边栏选项卡上的菜单中选择“移动”。

    将 Windows VM 移到其他 Azure 订阅或资源组

  4. 在“移动资源”边栏选项卡中,选择要移动的资源,然后键入现有资源组名称,或选择创建新资源组。 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”

    将 Windows VM 移到其他 Azure 订阅或资源组

使用 PowerShell 移动 VM

若要将虚拟机移到其他资源组,需确保同时移动所有依赖资源。 若要使用 Move-AzureRMResource cmdlet,需要资源的名称和类型。 可以通过 Find-AzureRMResource cmdlet 获取这两项信息。

复制
Find-AzureRMResource -ResourceGroupNameContains "<sourceResourceGroupName>"

若要移动 VM,需要移动多个资源。 只需分别创建每个资源的变量,然后列出这些变量即可。 本示例包括 VM 的大多数基本资源,但可以根据需要添加更多资源。

复制
$sourceRG = "<sourceResourceGroupName>"
$destinationRG = "<destinationResourceGroupName>" $vm = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Compute/virtualMachines" -ResourceName "<vmName>"
$storageAccount = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Storage/storageAccounts" -ResourceName "<storageAccountName>"
$diagStorageAccount = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Storage/storageAccounts" -ResourceName "<diagnosticStorageAccountName>"
$vNet = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/virtualNetworks" -ResourceName "<vNetName>"
$nic = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/networkInterfaces" -ResourceName "<nicName>"
$ip = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/publicIPAddresses" -ResourceName "<ipName>"
$nsg = Get-AzureRmResource -ResourceGroupName $sourceRG -ResourceType "Microsoft.Network/networkSecurityGroups" -ResourceName "<nsgName>" Move-AzureRmResource -DestinationResourceGroupName $destinationRG -ResourceId $vm.ResourceId, $storageAccount.ResourceId, $diagStorageAccount.ResourceId, $vNet.ResourceId, $nic.ResourceId, $ip.ResourceId, $nsg.ResourceId

若要将资源移到其他订阅,请包含 -DestinationSubscriptionId 参数的值。

复制
Move-AzureRmResource -DestinationSubscriptionId "<destinationSubscriptionID>" -DestinationResourceGroupName $destinationRG -ResourceId $vm.ResourceId, $storageAccount.ResourceId, $diagStorageAccount.ResourceId, $vNet.ResourceId, $nic.ResourceId, $ip.ResourceId, $nsg.ResourceId

系统会要求你确认你需要移动指定资源。 请键入 Y 确认要删除资源。

后续步骤

可以在资源组和订阅之间移动许多不同类型的资源。 有关详细信息,请参阅将资源移到新资源组或订阅。立即访问http://market.azure.cn