Windowsで疎通チェックによく利用されるTest-NetConnection
コマンドレットが含まれているNetTCPIP
モジュールですが。
個人的にはTest-NetConnection
以外にもルーティング設定するコマンドレットなども利用するため、普段利用しているコマンドに着目して紹介します。
今回試している環境
- Windows 11 23H2
- PowerShell 7.5.0-preview.2
NetTCPIPモジュールに含まれているコマンドレットを確認してみる。
Get-Command -module NetTCPIP
提供されるコマンドレットを確認すると下記となっていました。
CommandType Name Version Source
----------- ---- ------- ------
Function Find-NetRoute 1.0.0.0 NetTCPIP
Function Get-NetCompartment 1.0.0.0 NetTCPIP
Function Get-NetIPAddress 1.0.0.0 NetTCPIP
Function Get-NetIPConfiguration 1.0.0.0 NetTCPIP
Function Get-NetIPInterface 1.0.0.0 NetTCPIP
Function Get-NetIPv4Protocol 1.0.0.0 NetTCPIP
Function Get-NetIPv6Protocol 1.0.0.0 NetTCPIP
Function Get-NetNeighbor 1.0.0.0 NetTCPIP
Function Get-NetOffloadGlobalSetting 1.0.0.0 NetTCPIP
Function Get-NetPrefixPolicy 1.0.0.0 NetTCPIP
Function Get-NetRoute 1.0.0.0 NetTCPIP
Function Get-NetTCPConnection 1.0.0.0 NetTCPIP
Function Get-NetTCPSetting 1.0.0.0 NetTCPIP
Function Get-NetTransportFilter 1.0.0.0 NetTCPIP
Function Get-NetUDPEndpoint 1.0.0.0 NetTCPIP
Function Get-NetUDPSetting 1.0.0.0 NetTCPIP
Function New-NetIPAddress 1.0.0.0 NetTCPIP
Function New-NetNeighbor 1.0.0.0 NetTCPIP
Function New-NetRoute 1.0.0.0 NetTCPIP
Function New-NetTransportFilter 1.0.0.0 NetTCPIP
Function Remove-NetIPAddress 1.0.0.0 NetTCPIP
Function Remove-NetNeighbor 1.0.0.0 NetTCPIP
Function Remove-NetRoute 1.0.0.0 NetTCPIP
Function Remove-NetTransportFilter 1.0.0.0 NetTCPIP
Function Set-NetIPAddress 1.0.0.0 NetTCPIP
Function Set-NetIPInterface 1.0.0.0 NetTCPIP
Function Set-NetIPv4Protocol 1.0.0.0 NetTCPIP
Function Set-NetIPv6Protocol 1.0.0.0 NetTCPIP
Function Set-NetNeighbor 1.0.0.0 NetTCPIP
Function Set-NetOffloadGlobalSetting 1.0.0.0 NetTCPIP
Function Set-NetRoute 1.0.0.0 NetTCPIP
Function Set-NetTCPSetting 1.0.0.0 NetTCPIP
Function Set-NetUDPSetting 1.0.0.0 NetTCPIP
Function Test-NetConnection 1.0.0.0 NetTCPIP
この中で個人的に利用する機会が多いコマンドレットを紹介します。
Test-NetConnection
多分、NetTCPIPモジュールで一番利用されるコマンドレットなのでは? と個人的に思っていますが。
Test-NetConnection -ComputerName microsoft.com -port 443
上記のように実行すれば、microsoft.comに対して tcp 443が疎通できるか確認することができます。
他にもオプションを指定しないで実行すると。
Test-NetConnection
マイクロソフトが提供している internetbeacon.msedge.net
にpingで疎通できるか確認したり。
Portオプションがなければ、ComputerNameに対してpingで疎通できるか確認したり。
-TraceRouteオプションでTracertしたり。
ドキュメント読むと色々と機能があります。
Get-NetRoute
こちらのコマンドレットでコンピューターのルート情報を取得できます。
# ルート情報を取得
Get-NetRoute
# 固定ルートのみ取得
Get-NetRoute -PolicyStore PersistentStore
New-NetRoute
# PolicyStoreを指定しないとActiveStoreに登録されるので、コンピューターが再起動すると追加したルーティング情報は消える。
New-NetRoute -DestinationPrefix "192.168.0.0/16" -InterfaceIndex 16 -NextHop 192.168.0.1
# 固定ルートに追加する場合はPolicyStoreでPersistentStoreを指定する
New-NetRoute -DestinationPrefix "192.168.0.0/16" -InterfaceIndex 16 -NextHop 192.168.0.1 -PolicyStore PersistentStore
Remove-NetRoute
こちらのコマンドレットではルートの削除を行います。
# 個人的にはGet-NetRouteで削除対象のルートを取得してそれをRemove-NetRouteに渡して削除する方法を利用しています。
Get-NetRoute -DestinationPrefix "192.168.0.0/16" -NextHop 192.168.0.1 -PolicyStore PersistentStore | Remove-NetRoute
Get-NetTCPConnection
tcpのコネクション情報を取得できます。
netstatみたいな感じですが、netstatと違い、こちらはTCPだけになります。
# TCPのコネクションを取得
Get-NetTCPConnection
Get-NetIPAddress
ネットワークインターフェースな情報が確認できる
Get-NetIPAddress
# AddressFamilyオプションを指定するとIpv4だったりIPv6のみ取得できる。
Get-NetIPAddress -AddressFamily IPv4
Get-NetIPAddress -AddressFamily IPv6
総評
Test-NetConnectionについても、パラメータの指定方法によっては、pingで疎通確認できたり、tracertみたいな事ができたりします。
またルーティング情報を追加、変更、削除する場合もNetTCPIPモジュールにはコマンドレットが用意されているため便利に利用できます。