gpt4 book ai didi

azure - 如何使用 powershell "parse"Azure 资源 id 对象

转载 作者:行者123 更新时间:2023-12-05 04:52:29 24 4
gpt4 key购买 nike

我目前正在尝试从 Azure 策略中提取数据以实现某些自动化:

(Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" | Where-Object {$.PolicyDefinitionReferenceId -eq "azure backup should be enabled for virtual machines_1"} | Where-Object {$.SubscriptionId -eq "0000"}).ResourceId

类型名称:System.String

输出示例

/subscriptions/00/resourcegroups/rg-test/providers/microsoft.compute/virtualmachines/vm-test

/subscriptions/00/resourcegroups/rg-test2/providers/microsoft.compute/virtualmachines/vm-test2

我对如何将资源组名称和虚拟机名称仅拉入变量数组感到困惑。资源组名称始终以/resourcegroups/开头,VM 名称始终以/virtualmachines/开头。

任何指导将不胜感激。谢谢!

最佳答案

如果您只想从 resourceID 中提取虚拟机名称和 groupName,只需尝试以下代码:

function parseGroupAndName{
param (
[string]$resourceID
)
$array = $resourceID.Split('/')
$indexG = 0..($array.Length -1) | where {$array[$_] -eq 'resourcegroups'}
$indexV = 0..($array.Length -1) | where {$array[$_] -eq 'virtualmachines'}
$result = $array.get($indexG+1),$array.get($indexV+1)
return $result
}

$resourceID = '/subscriptions/00/resourcegroups/rg-test/providers/microsoft.compute/virtualmachines/vm-test'

parseGroupAndName -resourceID $resourceID

结果: enter image description here

关于azure - 如何使用 powershell "parse"Azure 资源 id 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66483909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com