【问题标题】:Powershell - how to read Azure VM status and a certain tag value?Powershell - 如何读取 Azure VM 状态和某个标记值?
【发布时间】:2022-01-23 13:49:36
【问题描述】:

我需要一份关于 VM 状态和特定标签值的报告。 VM状态部分我可以处理,但不知道如何将TAG部分添加到同一个脚本中。

Get-Azvm -Status | 
    Select-Object Name,ResourceGroupName,PowerState | 
        Where-Object Name -in "SOBA-VM1","SO-VM2","debian01"

请帮帮我。

【问题讨论】:

  • 您到底想达到什么目标?即你在寻找什么输出?
  • 嗯,我需要检查:VM Name、VM Status、Resource Group、Tag Name、Tag Value。都在同一个视图中。

标签: powershell azure-devops azure-powershell


【解决方案1】:

所以,最后,为了读取 VM 列表的某个 Tag 值,我使用了以下脚本:

Get-Azvm -Status | 
    Select-Object Name,ResourceGroupName,PowerState,@{Name="running_enddate";Expression={ $_.Tags["running_enddate"] }},@{Name="running_profile";Expression={ $_.Tags["running_profile"] }} | 
        Where-Object {$_.Name -in "VM01","VM02"} | Format-List

【讨论】:

    【解决方案2】:

    如果您能够切换到使用 Azure CLI 而不是 AzPowershell(我会推荐任何一天),那么就可以了:

    az vm get-instance-view --name MY-VM --resource-group MY-RG --query "{name:name, resourceGroup:resourceGroup, state:instanceView.statuses[1].code, tags:tags}" | ConvertFrom-Json
    

    另外,这里是带有 PowerShell 的版本

     Get-Azvm -Status | where-object {$_.Name -in "SOBA-VM1","SO-VM2","debian01"} | select Name,Tags,PowerState,ResourceGroupName
    

    【讨论】:

    • VM 驻留在各种资源组下。 Powershell (Get-Azvm) 似乎更可行。其他想法?
    • 我刚刚添加了pwsh版本
    • 谢谢!如果我还想过滤标签值或名称?
    • 然后只需将其添加到 where-object 子句(或在管道后添加另一个)。这与 Azure Pwsh 无关。只是 PowerShell 语法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    相关资源
    最近更新 更多