DNS名とping応答あるかを調べるPowerShellスクリプト
「特定のセグメント内でIPアドレスが使われているか、ping応答があるかとりあえずでいいので確認したい」と言われてやっつけで作ったスクリプト。
lookupとping投げて応答結果をまとめる。ただそれだけ。
#DNSname lookup & Ping Check
#Segmentに第3オクテットまで入力させる。例)192.168.1
param(
[parameter(Mandatory=$true)][String]$Segment
)
$ErrorActionPreference = "Stop"
$ScriptFullPath = $MyInvocation.Mycommand.path
$ScriptPath = (Split-Path $ScriptFullPath -Parent)
$LogFileDateTime = (Get-Date -Format "yyyyMMdd-HHmmss")
$i = 1
$LOGFILE = "${ScriptPath}\networkcheck_${LogFileDateTime}.csv"
"IPアドレス,DNS登録,ping応答" | Out-File $LOGFILE
while( $i -lt 256)
{
try{
Write-Host $i
$dnsname = ([System.Net.DNS]::GetHostEntry("${Segment}.${i}")).HostName
$lookupresult = "${Segment}.$i,$dnsname"
}catch [Exception]
{
$lookupresult = "${Segment}.$i,DNS登録なし"
}
try{
Test-Connection "${Segment}.${i}" -count 1
$pinresult = "ping応答あり"
}catch [Exception]
{
$pinresult = "ping応答なし"
}
"$lookupresult,$pinresult" | Out-File $LOGFILE -Append
$i = $i + 1
}
使うこと、あまり無い気はするけど。
ファイルもアップしておくよ。
以上。