我今晚正在重新编写现有的服务器运行状况检查脚本以将其值存储在哈希表中,并且该部分工作正常。但是,我希望结果转到一个 CSV 文件,并且该文件仅填充有我已将它们标记为需要操作的服务器。目前,这些正在生成事件 ID 7011,或通过Test-Connection
.
这是代码:
$CheckServer = @{}
$Servers = (Get-Content $Dir\Test.txt)
foreach ($Server in $Servers) {
$CheckServer.EventID7011 = Get-Eventlog -LogName System -ComputerName $Server -Newest 1 |
Where-Object {$_.EventId -eq 7011} | select Message
if ($CheckServer.EventID -ne $Null) {
$CheckServer.Server = "$Server"
$CheckServer.ActionReq = "Yes"
}
$CheckServer.Ping = Test-Connection -ComputerName $Server -Count 1 -Quiet
if (! $CheckServer.Ping) {
$CheckServer.Server = "$Server"
$CheckServer.ActionReq ="Yes"
$CheckServer.Ping = "Offline"
} else {
$CheckServer.Server = "$Server"
$CheckServer.ActionReq = "No"
$CheckServer.Ping = "Online"
}
New-Object -TypeName PSObject -Property $CheckServer |
Export-Csv "ScanResults.csv" -NoTypeInformation -Append
}
最后我需要正确的代码,就目前而言,脚本可以很好地收集/存储哈希表数组中的数据$CheckServer
,但我只想选择那些需要操作的服务器。所以,如果我正在扫描 100 台服务器,其中 2 台处于 ping 失败状态,我只想要那些被选中并发送到Export-Csv
.