web-dev-qa-db-ja.com

ホスト名のリストをpingし、結果をPowerShellのcsvに出力します

Pingを実行してホスト名がアップかダウンかを確認する必要があるホスト名の大きなリストがあります。スクリプティングはあまり得意ではありませんが、これをうまく理解することができました。

$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
  }
}

これにより、必要なものが得られますが、これらの結果をcsvファイルに書き出す必要があり、その方法がわかりません。

助けてください!

3
Harry Singh

代わりに次のコードを使用して(書き込みホストの呼び出しをCSV形式に変更しただけです)、「PowerShell.exe script.ps> output.csv」で実行できます。hnames.txtを含むフォルダーから実行する必要があります。 、または単に「hnames.txt」を完全なパスに変更します。

$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"
  }
}

追伸 Out-File Cmdlet を使用してCSVファイルを作成することもできます

7
Erez breiman

私はPowershellの完全な初心者なので、PCのリストのアップ/ダウンステータスをすばやく簡単にチェックする方法が必要だったので、これを学習タスクとして取り入れました。これらの微調整は、画面とtxtファイルにきれいに出力するために必要でした

$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

私はこのようにします。コンピューターのリストと-asjobの使用は非常にうまく機能します。ホストが稼働している場合、Responsetimeプロパティはnull以外になります。

$names = Get-content hnames.txt
test-connection $names -asjob -count 1 | recieve-job -wait -auto
0
js2010
    $Output= @()
    $names = Get-Content ".\input\Servers.txt"
    foreach ($name in $names){
      if (Test-Connection -Delay 15 -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
       $Output+= "$name,up"
       Write-Host "$Name,up" -ForegroundColor Green
      }
      else{
        $Output+= "$name,down"
        Write-Host "$Name,down" -ForegroundColor Red
      }
    }
    $Output | Out-file ".\output\result.csv"

これは少しクリーナーであり、元の前景オプションが含まれていますが、ところで、「遅延」スイッチは無視されているようです-PB

0
Patrick Burwell