2016-03-23 9 views
1

誰かが、powershellでtest-connectionコマンドレットを使用してDNSのワイルドカードエントリをpingするための既知の回避策があるかどうかを確認しようとしています。ワイルドカードをサポートするテスト接続ですか?回避策?

私はDNSデータベースを削除しようとしていて、BINDサーバーからリストをエクスポートしています。何かが応答するかどうかを600 +マシンにpingするだけです。私は自分の簡単なスクリプトを作ったが、このフォーラムで少し上手く機能するものも見つけた。スクリプトは機能しますが、コマンドレットのヘルプファイルでは、-computernameパラメータがワイルドカードをサポートしていないことを示しています。私が使用しているコードは、以下で、一種の厄介ですが、私はちょうど迅速な何かを必要とし、それが動作しますが、私は参考のために、以下のことを含めました:

Get-Content -path C:\Work\testy.txt | ForEach-Object { Test-Connection -ComputerName $_ -Count 1 -AsJob } | Get-Job | Receive-Job -Wait | Select-Object @{Name='ComputerName';Expression={$_.Address}},@{Name='Reachable';Expression={if ($_.StatusCode -eq 0) { $true } else { $false }}} |out-file -FilePath c:\work\TEST.txt 
+0

それはワイルドカードの記録なので、あなたはどのラベルにも置き換えることができます。 '' * .domain.tld '-replace' \ * '、' wildcard'' –

+0

@ MathiasR.Jessenは実際のレコードとして存在する場合、何か他のものをpingしているので、_any_ labelではありません。しかし、あなたは前に使用されていない可能性が非常に低いものを選択することができます.. – briantist

+0

おかげでみんな。私はそれを試して、それがどのように動作するか見てみましょう。 –

答えて

1

pointed out by briantistとして、任意の非既存のレコード名がします行う。あなたのレコード名で*を置換するGUIDを生成することがありました:

"subdomain.domain.tld","*.domain.tld" |ForEach-Object { 
    Test-Connection -ComputerName $($_ -replace '\*',"$([guid]::NewGuid())") 
} 

それは「到達可能」かではないのかどうかについてあなたの式は、同様に簡略化することができます。

@{Name='Reachable'; Expression={[bool]($_.StatusCode -eq 0)}} 
+0

ありがとう、完璧に働いた! –

関連する問題