首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过去24小时的警报(但日期时间采用Unix时间-我的脚本确实会转换为正常日期时间)

过去24小时的警报(但日期时间采用Unix时间-我的脚本确实会转换为正常日期时间)
EN

Stack Overflow用户
提问于 2021-09-13 16:06:13
回答 1查看 42关注 0票数 1

我正在利用Nutanix来获取最后24小时未解决的警报,并将其输出到PowerShell报告。警报创建日期时间采用Unix时间,因此我必须将其转换为正常的日期时间格式。我遇到的问题是将输出限制为最近24小时的警报。现在它显示了从8/31到现在的所有警报。到目前为止,我有以下几点:

代码语言:javascript
复制
$MyNTNXCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ntnxuserid, (Get-Content $NTNXCredPassPath | ConvertTo-SecureString )
$NTNXClusterList = import-csv -Path C:\path_to_list_of_clusters\ntnxclusters_list.csv

$NTNXAlertArray = @()
foreach($NTNXAlertCluster in $NTNXClusterList){

    $NTNXCluster = $NTNXAlertCluster.Name
    Connect-NutanixCluster -Server $NTNXCluster -UserName $MyNTNXCredential.UserName -Password $MyNTNXCredential.Password -AcceptInvalidSSLCerts -ForcedConnection

    $GetNTNXAlert = Get-NTNXAlert | where resolved -NE "True" | select alertTitle, message, severity, categories, impact, resolved, createdTimeStampInUsecs, lastOccurrenceTimeStampInUsecs
    foreach($alert in $GetNTNXAlert){ 
  
        $Days = 1     
        $NTNXAlertTitle = $alert.alertTitle
        $NTNXAlertMessage = $Alert.message
        $NTNXAlertSeverity = $Alert.severity
        $NTNXAlertCategories = $Alert.categories
        $NTNXAlertImpact = $Alert.impact
        $NTNXAlertResolved = $Alert.resolved
        $NTNXAlertCreated = $Alert.createdTimeStampInUsecs
        $NTNXLastOccurance= $Alert.lastOccurrenceTimeStampInUsecs

        $myTimeZone=[System.TimeZoneInfo]::FindSystemTimeZoneById("Central Standard Time")
        $NTNXCreatedDateTime = (New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0).AddSeconds([math]::Floor($NTNXAlertCreated/1000000))
        $NTNXLastOccuranceDateTime = (New-Object -Type DateTime -ArgumentList 1970, 1, 1, 0, 0, 0, 0).AddSeconds([math]::Floor($NTNXLastOccurance/1000000))
        
        $NTNXAlertArray += [PSCUSTOMOBJECT]@{
            "Nutanix Cluster" = $NTNXCluster
            "Nutanix Alert Title" = $NTNXAlertTitle
            "Nutanix Alert Message" = $NTNXAlertMessage
            "Nutanix Alert Severity" = $NTNXAlertSeverity
            "Nutanix Alert Category" = $NTNXAlertCategories
            "Nutanix Alert Impact" = $NTNXAlertImpact
            "Nutanix Alert Resolved" = $NTNXAlertResolved
            "Nutanix Alert Created" = $NTNXCreatedDateTime
            "Nutanix Alert Last Occurred" = $NTNXLastOccuranceDateTime
        }
    }
}
$NTNXAlertHTML = $NTNXAlertArray | ConvertTo-HTML -Fragment -PreContent "<h3>NTNX Alerts</h3>"

我已经在网上做了一些搜索,但让我感到困惑的是unix时间,以及如何添加仅过滤过去2小时内事件的功能。任何人都有任何关于我如何处理这个问题的想法。我可能用错误的方式看待这件事。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-13 16:12:54

由于您已经在使用整洁的DateTime对象,因此可以很容易地对其进行过滤。例如,在最后一行中插入筛选器:

代码语言:javascript
复制
$NTNXAlertHTML = $NTNXAlertArray | Where-Object {$_."Nutanix Alert Created" -gt (Get-Date).AddHours(-24)} | ConvertTo-HTML -Fragment -PreContent "<h3>NTNX Alerts</h3>"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69165886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档