2016-09-20 2 views
1

Ich bin neu in PowerShell-Skripten und brauche eine Hilfe.Ping mehrere Server und speichern in CSV

Ich habe eine TXT-Datei mit Server IPadd, das folgende Skript ruft die TXT-Datei und zeigen den Server-Status UP/Down in CSVformat. Was ich brauche ist, um die CSV-Datei Ergebnisrolle Basis zu bekommen, wenn ich die Zeile Domain Controller in TXT hinzufügen und die IP-Adresse erwähnen, bekomme ich das Ergebnis Domain Controller - Down und IPAdd mit dem richtigen Status. Auch ich kann IPadd oder hostname entweder erwähnen. Sie benötigen Ihre Hilfe der CSV-Bericht mit Hostnamen, IP-Adresse und Status-mit Titel (Rolle)

Script zu bekommen:

$Servers = Get-Content D:\test\ServerStatus.txt 
$collection = $() 
foreach ($server in $servers) 

{ 
    $status = @{ "ServerName" = $server} 
    if (Test-Connection -Computername $Server -Count 2 -ea 0 -Quiet) 

    { 
     $status["Results"] = "Up" 
    } 
    else 
    { 
     $status["Results"] = "Down" 
    } 

    New-Object -TypeName PSObject -Property $status -OutVariable serverStatus 
    $collection += $serverStatus 

} 
$collection | Export-Csv -LiteralPath d:\ServerStatus.csv -NoTypeInformation 

Antwort

3

Sie müssen initialisieren $collection als Array mit:

$collection = @() 

anstelle von:

$collection = $()