【问题标题】:Using Array objects later on without knowing it's position稍后在不知道其位置的情况下使用 Array 对象
【发布时间】:2022-01-22 18:01:38
【问题描述】:

我正在运行以下代码行来循环遍历我的所有 Azure 订阅,从而将所有订阅中的 vms 保存到数组中。我可以根据 vm 名称以某种方式从该数组中查询数据,以便显示所有可用数据吗?需要将特定的 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 *
  • 成功了!谢谢你的帮助!

标签: arrays powershell foreach


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2018-11-28
    • 2022-10-05
    • 1970-01-01
    • 2021-07-04
    • 2017-07-28
    相关资源
    最近更新 更多