将 Move-AzureRmResource 用于不同租户的不同订阅

Using Move-AzureRmResource to different subscription with different tenants

我正在尝试将一些 Azure 资源从一个订阅转移到另一个订阅。我有一个 Microsoft 帐户,它是源订阅和目标订阅的共同管理员。

I 运行 Powershell 并使用以下命令登录:

Add-AzureRmAccount -TenantId "source tenant GUID"

那我用

Move-AzureRmResource -ResourceId "id of the resource" -DestinationResourceGroupName "xxx" -SubscriptionId "target subscription GUID"

我收到这个错误:

Move-AzureRmResource : LinkedAuthorizationFailed : The client has permission to perform 
action 'Microsoft.Resources/subscriptions/resourceGroups/write' on scope '/subscriptions/
xxx/resourceGroups/dotnetportal', however the linked subscription 'target subscription GUID' is not in 
current tenant 'source tenant GUID'.

分享一些代码给大家参考:

Get-AzureRMResource -ResourceName **** -ResourceGroupName **** | 
        Move-AzureRMResource -DestinationResourceGroupName *** -DestinationSubscriptionId **** -Force

无法重现您的问题,也没有找到官方 material,但根据错误消息 however the linked subscription 'target subscription GUID' is not in current tenant 'source tenant GUID',我认为不允许在属于不同租户的订阅之间移动资源。 Microsoft Azure 应该将功能限制在同一租户内。

Azure PowerShell 模块 Move-AzureRmResource cmdlet 允许您将资源移动到不同的资源组或订阅,但它要求订阅位于同一租户中。

检查您是否有链接订阅的最佳方法是首先使用 UI。

  1. 登录到您的源 Azure 订阅。
  2. 浏览 > 资源组和 select 包含 VM 的资源组。
  3. 在资源组边栏选项卡中,select从菜单中移出。
  4. 检查您是否可以看到链接的订阅。

将资源组从一个订阅复制或移动到另一个订阅的一个很好的解决方法,请参阅:https://blogs.msdn.microsoft.com/azuregov/2016/12/09/copying-azure-resource-groups-between-different-azure-subscriptions-or-environments/