コンピューターのリストにpingを実行し、結果をテーブルに出力する簡単なスクリプトを作成しようとしていました。私はこれを行うことになりました、それはうまくいきます:
Get-ADComputer -searchbase "OU=Materials,OU=MMC Computers,OU=REI,DC=REIDOMAIN,DC=LOCAL" -filter * | select -expand name | % {
$output = New-Object PSObject
$output | Add-Member NoteProperty "Computer name"($_)
$output | Add-Member NoteProperty "Ping result"("$($(Test-Connection $_ -count 1 -quiet).ToString())")
write $output }
ただし、最初の2回の試行がうまくいかなかった理由を理解して、後で同じ間違いをしないようにしたいと思います。はい、どうぞ:
スクリプト1:以下の編集を参照してください
Get-ADComputer -searchbase "OU=Materials,OU=MMC Computers,OU=REI,DC=REIDOMAIN,DC=LOCAL" -filter * |
select -expand name | % { $computer = $_; $obj = "" |
select @{Name="Computer";Expression="$computer"},`
@{Name="Pingable";Expression="$($(Test-Connection $computer -count 1 -quiet).ToString())"}
$obj }
出力1:
Computer Pingable
-----— -----—
注:このスクリプトは、テーブルヘッダーの下に、pingを実行しているコンピューターごとに1行の空白行を実際に出力します。
スクリプト2:
$table = @{Expression={$_};Label="Computer"},@{Expression={"$($(Test-Connection $_ -count 1 -quiet).ToString())"};Label="Pingable"}
Get-ADComputer -searchbase "OU=Materials,OU=MMC Computers,OU=REI,DC=REIDOMAIN,DC=LOCAL" -filter * | select -expand name | format-table $table
出力2:
mickeymouse
goofy
minnie
pluto
frank
これはテーブルを出力することすらありません...1行に1つのコンピューター名を出力するだけです。
誰かがこれらの2つの試みで何が悪いのかを説明できれば幸いです。ありがとう!
編集:スクリプト1を機能させました。
Get-ADComputer -searchbase "OU=Materials,OU=MMC Computers,OU=REI,DC=REIDOMAIN,DC=LOCAL" -filter * |
select @{Name="Computer";Expression={$_.Name}},@{Name="Pingable";Expression={"$($(Test-Connection $_.Name -count 1 -quiet).ToString())"}};
スクリプト2についてはまだ興味があります