我正在利用Nutanix来获取最后24小时未解决的警报,并将其输出到PowerShell报告。警报创建日期时间采用Unix时间,因此我必须将其转换为正常的日期时间格式。我遇到的问题是将输出限制为最近24小时的警报。现在它显示了从8/31到现在的所有警报。到目前为止,我有以下几点:
$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小时内事件的功能。任何人都有任何关于我如何处理这个问题的想法。我可能用错误的方式看待这件事。任何建议都将不胜感激。
发布于 2021-09-13 16:12:54
由于您已经在使用整洁的DateTime对象,因此可以很容易地对其进行过滤。例如,在最后一行中插入筛选器:
$NTNXAlertHTML = $NTNXAlertArray | Where-Object {$_."Nutanix Alert Created" -gt (Get-Date).AddHours(-24)} | ConvertTo-HTML -Fragment -PreContent "<h3>NTNX Alerts</h3>"https://stackoverflow.com/questions/69165886
复制相似问题