稍后在不知道其位置的情况下使用 Array 对象

Using Array objects later on without knowing it's position

我正在 运行 下面的代码行循环遍历我所有的 Azure 订阅,保存所有订阅数组中的虚拟机。我能否以某种方式根据虚拟机名称查询该数组中的数据,以便它显示所有可用数据?需要将特定的 vm 数据保存在变量上,以便我以后可以使用和解析它。

 $VM = @()
    $AllSubscriptions = Get-AzSubscription
    foreach ($Subscription in $AllSubscriptions) {
        write-host "Count of subscriptions to loop:" $AllSubscriptions.length
        Set-AzContext $Subscription.Id | Out-Null
        Write-Host "Checking subscription $($Subscription.Name) for vm details"
        $VM += Get-AzVM -Status 
    }

    $VM

$vm 结果格式

尝试了以下命令但对我不起作用:

$vm -like '*server01*'

这只显示了虚拟机名称,没有其他信息可用

$vm.name -like '*server01*'

这个显示正确的信息,但是位置可以改变,可以有多个虚拟机被查询。所以也许以某种方式将“6”放入变量..?

$vm[6]

试试下面的方法,它会按名称过滤对象并输出整个对象。

$vm | Where-Object {$_.name -like '*nalle45*'} | Select *