如何匹配 Powershell Azure VM 中的对象
How to match objects in Powershell Azure VMs
我目前正在尝试匹配 powershell 中的对象,但输出为空白,我不确定为什么。任何指导将不胜感激。我正在尝试将 $resourceIDs 与 Get-AzVM 命令匹配。 resourceIDs 和 get-AzVM.ID 的示例输出如下
/subscriptions/00/resourcegroups/rg-vm1/providers/microsoft.compute/virtualmachines/az-vm1
这是我 运行 得到空白输出的代码。将上面的字符串与下面的 Get-AzVM 命令匹配是可行的,但是当我使用变量执行此操作时,输出为空白。
$resourceIDs =((Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" | Where-Object {$_.PolicyDefinitionReferenceId -eq "azure backup should be enabled for virtual machines_1"} | Where-Object {$_.SubscriptionId -eq ""}).resourceID)
Get-AzVM | Where-Object{$_.Id -match $resourceIDs}
编辑:传递 Get-AzVM | Where-Object{$_.Id -eq $resourceIDs[0]}
有效,现在我将不得不弄清楚如何遍历所有 $resourceIDs
编辑:Get-AzVM | Where-Object{$_.Id -in $resourceIDs}
非常感谢大家!
您可以使用 Foreach 循环,
$resourceIDs =((Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" | Where-Object {$_.PolicyDefinitionReferenceId -eq "azure backup should be enabled for virtual machines_1"} | Where-Object {$_.SubscriptionId -eq ""}).resourceID)
foreach ( $id in $resourceIDs)
{
Get-AzVM | Where-Object{$_.Id -in $id}
}
我目前正在尝试匹配 powershell 中的对象,但输出为空白,我不确定为什么。任何指导将不胜感激。我正在尝试将 $resourceIDs 与 Get-AzVM 命令匹配。 resourceIDs 和 get-AzVM.ID 的示例输出如下
/subscriptions/00/resourcegroups/rg-vm1/providers/microsoft.compute/virtualmachines/az-vm1
这是我 运行 得到空白输出的代码。将上面的字符串与下面的 Get-AzVM 命令匹配是可行的,但是当我使用变量执行此操作时,输出为空白。
$resourceIDs =((Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" | Where-Object {$_.PolicyDefinitionReferenceId -eq "azure backup should be enabled for virtual machines_1"} | Where-Object {$_.SubscriptionId -eq ""}).resourceID)
Get-AzVM | Where-Object{$_.Id -match $resourceIDs}
编辑:传递 Get-AzVM | Where-Object{$_.Id -eq $resourceIDs[0]}
有效,现在我将不得不弄清楚如何遍历所有 $resourceIDs
编辑:Get-AzVM | Where-Object{$_.Id -in $resourceIDs}
非常感谢大家!
您可以使用 Foreach 循环,
$resourceIDs =((Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'" | Where-Object {$_.PolicyDefinitionReferenceId -eq "azure backup should be enabled for virtual machines_1"} | Where-Object {$_.SubscriptionId -eq ""}).resourceID)
foreach ( $id in $resourceIDs)
{
Get-AzVM | Where-Object{$_.Id -in $id}
}