本文逐步说明如何在资源组或订阅之间移动 Windows VM。 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便。
Important
不可在此时移动托管磁盘。
在移动过程中将创建新的资源 ID。 移动 VM 后,需要更新工具和脚本以使用新的资源 ID。
使用门户将 VM 移到其他订阅
可以使用门户将 VM 及其关联的资源移到其他订阅。
- 打开 Azure 门户。
-
单击“浏览” > “虚拟机”,然后从列表中选择要移动的 VM。
-
在“基本功能”部分,单击订阅名称旁边的“更改订阅”铅笔图标。 此时将打开“移动资源”边栏选项卡。
本文逐步说明如何在资源组或订阅之间移动 Windows VM。 如果最初在个人订阅中创建了 VM,现在想要将其移到公司的订阅以继续工作,则在订阅之间移动 VM 可能很方便。
Important
不可在此时移动托管磁盘。
在移动过程中将创建新的资源 ID。 移动 VM 后,需要更新工具和脚本以使用新的资源 ID。
使用门户将 VM 移到其他订阅
可以使用门户将 VM 及其关联的资源移到其他订阅。
- 打开 Azure 门户。
-
单击“浏览” > “虚拟机”,然后从列表中选择要移动的 VM。
-
在“基本功能”部分,单击订阅名称旁边的“更改订阅”铅笔图标。 此时将打开“移动资源”边栏选项卡。
- 选择要移动的每个资源。 大多数情况下,应移动列出的所有可选资源。
- 选择要将 VM 移到的 订阅 。
- 选择一个现有资源组,或者键入名称以创建新的资源组。
- 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”。
使用门户将 VM 移到其他资源组
可以使用门户将 VM 及其关联的资源移到其他资源组。
- 打开 Azure 门户。
- 单击“浏览” > “资源组”,然后选择包含 VM 的资源组。
-
从“资源组”边栏选项卡上的菜单中选择“移动”。
-
在“移动资源”边栏选项卡中,选择要移动的资源,然后键入现有资源组名称,或选择创建新资源组。 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”
使用 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 确认要删除资源。
后续步骤
可以在资源组和订阅之间移动许多不同类型的资源。 有关详细信息,请参阅将资源移到新资源组或订阅。
- 选择要移动的每个资源。 大多数情况下,应移动列出的所有可选资源。
- 选择要将 VM 移到的 订阅 。
- 选择一个现有资源组,或者键入名称以创建新的资源组。
- 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”。
使用门户将 VM 移到其他资源组
可以使用门户将 VM 及其关联的资源移到其他资源组。
- 打开 Azure 门户。
- 单击“浏览” > “资源组”,然后选择包含 VM 的资源组。
-
从“资源组”边栏选项卡上的菜单中选择“移动”。
-
在“移动资源”边栏选项卡中,选择要移动的资源,然后键入现有资源组名称,或选择创建新资源组。 完成后,选择你了解将创建新的资源 ID 并且移动后需要将这些资源 ID 用于 VM,然后单击“确定”
使用 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