azure - 如何使用 powershell “解析” Azure 资源 ID 对象
问题描述
我目前正在尝试从 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"})。资源 ID
类型名称: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/ 开头。
任何指导将不胜感激。谢谢!
解决方案
如果您只想从中提取 VM 名称和 groupName resourceID
,请尝试以下代码:
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
推荐阅读
- python - 具有多个键的熊猫数据框到 json
- twilio - WhatsAPP - 通过 Twilio 集成 MS Teams
- neural-network - 如何修复 pytorch 神经网络中不正确的通道大小?
- nginx - 让我们加密,而不是将一个 URL 重定向到 https
- python - 无法使用 Beautifulsoup 从 span 获取文本
- react-native - 为什么这个 reducer 不更新状态?
- javascript - 如何在另一个函数中使用来自 1 个函数的变量 - javascript
- firebase - Flutter 中的 Firestore“未定义名称”错误
- python - Pandas:如何在列中展开列表并使用 start_number 和 end_number 给出列表中的标签?
- r - 如何替换数据框中一组列和单行的值?