如何获取Azure中资源的资源组?

0qx6xfy6  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(191)

我在Azure的资源组中有资源,但它不允许我移动该资源,因为它所在的资源组不是托管资源组,即使它已被移动。
我已经尝试在Powershell az资源列表中运行该命令,但似乎看不到该资源的托管资源组。
是否有一个命令可以在Powershell中运行,它将给予资源的当前资源组和资源的托管资源组?

vi4fp9gy

vi4fp9gy1#

根据共享的信息,我了解到您希望了解

  • 托管资源组(在移动操作之前已在其中创建资源组)。
  • 当前资源组(资源当前所在的位置)。

我们没有任何直接的cmdlet来提取此信息。
您可以使用活动日志查看资源移动操作,并使用以下cmdlet提取已移动资源的信息和相应的目标资源组名称

Get-AzActivityLog -StartTime (get-date).AddDays(-90) -EndTime (get-date)| Where-Object {$_.Authorization.Action -like "Microsoft.Resources/subscriptions/resourceGroups/moveresources/action" -and $_.OperationName -like "Move Resource Group Resources" -and  $_.EventName -like "Begin request" } | Select -ExpandProperty Properties

供您参考的屏幕截图示例:

注意:使用Get-AzActivityLogcmdlet,您只能提取最近90天的日志。

06odsfpq

06odsfpq2#

是否有Powershell命令可以给予资源的当前资源组?
是的,它是Get-AzureRmResource命令:

$resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"

$resource = Get-AzureRmResource -ResourceId $resourceId
$resourceGroupName = $resource.ResourceGroupName

幸运的是,有一种替代方法可以避免指定您试图查找的“ResourceGroupName”,即指定ResourceType。

$resourceGroupName = Get-AzureRmResource -ResourceName {resourceName} -ResourceType {resourceType} | Select-Object -ExpandProperty ResourceGroupName

还要注意文档中的-ExpandProperties参数,以包括资源属性。

相关问题