it-swarm.com.de

Pingen Sie eine Liste mit Hostnamen an und geben Sie die Ergebnisse in eine CSV-Datei in Powershell aus

Ich habe eine große Liste von Hostnamen, die ich pingen muss, um zu sehen, ob sie oben oder unten sind. Ich bin nicht wirklich gut beim Scripting, aber ich habe so viel herausgefunden:

$names = Get-content "hnames.txt"

foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
    Write-Host "$name is up" -ForegroundColor Green
  }
  else{
    Write-Host "$name is down" -ForegroundColor Red
  }
}

Das bringt mir, was ich brauche, aber ich muss jetzt diese Ergebnisse in eine CSV-Datei schreiben und habe keine Ahnung, wie ich das tun soll.

Bitte helfen Sie!

3
Harry Singh

Sie können stattdessen den folgenden Code verwenden (ich habe die write-Host-Aufrufe einfach in die CSV-Formatierung geändert) und ihn mit "PowerShell.exe script.ps> output.csv" Ausführen. Beachten Sie, dass Sie ihn aus dem Ordner ausführen müssen das enthält hnames.txt, oder ändern Sie einfach die "hnames.txt" in einen vollständigen Pfad.

$names = Get-content "hnames.txt"

foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
    Write-Host "$name,up"
  }
  else{
    Write-Host "$name,down"
  }
}

P.S. Sie können auch das Out-File-Cmdlet verwenden, um die CSV-Datei zu erstellen

7
Erez breiman

Ich bin ein absoluter Neuling bei Powershell, daher nahm ich dies als Lernaufgabe an, da ich eine schnelle und einfache Möglichkeit brauchte, eine Liste der PCs auf den Up-/Down-Status zu überprüfen. Diese Anpassungen waren erforderlich, um eine saubere Ausgabe auf dem Bildschirm und in einer TXT-Datei zu ermöglichen

$Output= @()
$names = Get-content "hnames.txt"
foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
   $Output+= "$name,up"
   Write-Host "$Name,up"
  }
  else{
    $Output+= "$name,down"
    Write-Host "$Name,down"
  }
}
$Output | Out-file "C:\support\result.csv"
1
Mitch