我目前有一个脚本可以 ping 服务器列表并检查每台服务器上运行的服务的状态。我想写信给 log.csv。
我想显示哪些计算机处于脱机状态并显示哪些服务处于已停止状态。
如何使用 PSCustumObject 获取计算机或机器名称?CSV 输出只有一行表示离线,但它没有在其前面列出计算机名称。
$serviceList = Get-Content C:\services.txt
$results = Get-Content C:\servers.txt | ForEach-Object {
if (Test-Connection -ComputerName $_ -BufferSize 16 -Count 1 -EA 0 -Quiet) {
foreach ($service in $serviceList) {
if ($s=get-service -computer $_ -name $service -ErrorAction SilentlyContinue)
{
$s | select MachineName, ServiceName, Status, StartType
} else {
# "$_ - Service '$service' does not exist."
}
}
} else {
$status = Write-Output "Offline"
}
[pscustomobject][ordered]@{
Machine = $_
Status = $status
}
}
$results | Export-CSV C:\log.csv -notypeinformation -Append