AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 520570
Accepted
Andrew J. Brehm
Andrew J. Brehm
Asked: 2013-07-04 07:43:03 +0800 CST2013-07-04 07:43:03 +0800 CST 2013-07-04 07:43:03 +0800 CST

如何使用 PowerCLI 触发警报?

  • 772

在 VM 主机上的 vSphere Client 中,警报选项卡中有一个已触发警报的视图。

如何使用 PowerCLI 获取这些警报?

vmware-vsphere
  • 3 3 个回答
  • 12049 Views

3 个回答

  • Voted
  1. johnshen64
    2013-07-04T07:58:00+08:002013-07-04T07:58:00+08:00

    这就是我使用的。

    $esx = Get-VMHost $vmhost | Get-View
    foreach($triggered in $esx.TriggeredAlarmState){
      $alarmDef = Get-View -Id $triggered.Alarm
      Write-Host $alarmDef.Info.Name
    }
    
    • 4
  2. Best Answer
    Doug Cowie
    2013-11-13T16:42:38+08:002013-11-13T16:42:38+08:00

    为了找到所有具有警报状态 =“红色”的 vmhost,我对此进行了扩展。

    #
    # Find all hosts with triggered alarms in "Red" state
    #
    $esx_all = Get-VMHost | Get-View
    $Report=@()
    foreach ($esx in $esx_all){
        foreach($triggered in $esx.TriggeredAlarmState){
            If ($triggered.OverallStatus -like "red" ){
                $lineitem={} | Select Name, AlarmInfo
                $alarmDef = Get-View -Id $triggered.Alarm
                $lineitem.Name = $esx.Name
                $lineitem.AlarmInfo = $alarmDef.Info.Name
                $Report+=$lineitem
            } 
        }
    }
    $Report |Sort Name | export-csv "c:\temp\ESX-Host-Red-Alarms.csv" -notypeinformation -useculture
    Invoke-item "c:\temp\ESX-Host-Red-Alarms.csv"
    
    • 4
  3. Jeff Schaller
    2021-12-07T10:41:26+08:002021-12-07T10:41:26+08:00

    为了扩展johnshen64的 PowerCLI答案,我发现 Luc Dekens在 community.vmware.com 上的帖子非常有帮助:

    foreach($dc in (Get-Datacenter | where {$_.ExtensionData.triggeredAlarmState})){
        $dc.ExtensionData.triggeredAlarmState |
        Select @{N="Entity";E={Get-View $_.Entity | Select -ExpandProperty Name}},
            @{N="Alarm";E={Get-View $_.Alarm | Select -ExpandProperty Info | Select -ExpandProperty Name}},Time,OverallStatus,
            @{N='vCenter';E={$dc.Uid.Split('@:')[1]}}
    }
    

    ...我最终使用了它的变体:

    foreach ($toplevel in    @(Get-VDSwitch    | Where-Object { $_.ExtensionData.TriggeredAlarmState.count -gt 0 }) +
                             @(Get-Datacenter  | Where-Object { $_.ExtensionData.TriggeredAlarmState.count -gt 0 })) {
        foreach ($alarm in $toplevel.ExtensionData.TriggeredAlarmState) {
            $localt = [System.TimeZoneInfo]::ConvertTime($alarm.time, [System.TimeZoneInfo]::Local)
            $entity = Get-View $alarm.Entity
            $alarmview = Get-View $alarm.Alarm
            Write-Output ("Alarm: At top-level entity $($toplevel.Name), $($entity.Name) went " +
                            "$($alarm.OverallStatus) at $($localt) for $($alarmview.Info.Name)")
        }
    }
    

    这个想法是遍历警报可以汇总到的每个顶级实体。我通过反复试验发现Get-VDSwitch并Get-Datacenter涵盖了我需要的内容。另一个棘手的部分是要意识到警报中的 Entity 和 Alarm 对象是对实际对象的引用,因此要获取有关实际项目的详细信息,您必须使用Get-View.

    • 0

相关问题

  • MSSQL 2000 + VMWare

  • 使用自定义进行 VMware 克隆后 IIS 6 SSL 中断

  • Performance Manager - 什么计数器?

  • 一键打开VMware Server 2.0控制台

  • 如何在 VMWare 中复制映像?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve