PowerShell同一ネットワーク内のコンピュータ名とIPアドレスの一覧を取得する

powershell コンピュータ
powershell
Windows10やUbuntu22.04は標準でmDNSが機能しているおかげでIPアドレスからコンピュータ名を調べることが出来ます。
Windows10はmDNSでファイル共有が楽に構築出来るようになっていた話
インターネットルーターを入れ替えでDHCPで割り当てられるローカルIPアドレスが変更になりました。 複数PCがあるのでファイル共有をしているのですが、DHCPとファイル共有などのサーバーサービスは相性が良くないです。 せっかくDHCPでIP...

IPアドレスが、192.168.1.1~254に対し「Test-NetConnection」でPCの存在を確認。
PowerShellでネットワークの疎通を確認するコマンド「Test-NetConnection」
ネットワーク上のPCと通信が出来るか確認する方法として、外部コマンドのPING.EXEやTRACERT.EXEを使って確認することが出来ます。 PowerShellでは「Test-NetConnection」というコマンド(コマンドレット)...

疎通が確認されたアドレスに対し「Resolve-DnsName」でコンピューター名を取得します。
PowerShellで名前解決をするコマンド「Resolve-Dnsname」
PowerShellの「Resolve-Dnsname」コマンド(コマンドレット)を使うことで外部コマンドのnslookup.exe同じようにIPアドレスとコンピュータ名(FQDN)を相互に引き合うことが出来ます。 例:IPアドレス=>コン...
@(1..254) | ? { Test-NetConnection 192.168.1.$_ -InformationLevel Quiet 3> Out-Null } | % { "192.168.1.${_}`t" + (Resolve-Dnsname 192.168.1.$_).NameHost }

mDNSに対応していない機器については名前が空欄になると思います。(エラーも出ますが無視します。)

結果をExcelで使いたい場合は、コマンドの末尾に| Set-Clipboardをつなげて実行してください。
実行後結果がクリップボードにコピーされた状態になっていますので、そのままExcelのワークシートの適当なセルを選択し貼り付けてください。各項目の値がセルにおさまるようにタブ区切りにしてあります。

コメント