2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerShellのNetTCPIPモジュールをつかってみる

Posted at

Windowsで疎通チェックによく利用されるTest-NetConnectionコマンドレットが含まれているNetTCPIPモジュールですが。

個人的にはTest-NetConnection以外にもルーティング設定するコマンドレットなども利用するため、普段利用しているコマンドに着目して紹介します。

今回試している環境

  • Windows 11 23H2
  • PowerShell 7.5.0-preview.2

NetTCPIPモジュールに含まれているコマンドレットを確認してみる。

Get-Command -module NetTCPIP

image.png

提供されるコマンドレットを確認すると下記となっていました。

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で疎通できるか確認したり。

image.png

Portオプションがなければ、ComputerNameに対してpingで疎通できるか確認したり。

image.png

-TraceRouteオプションでTracertしたり。

image.png

ドキュメント読むと色々と機能があります。

Get-NetRoute

Get-NetRoute

こちらのコマンドレットでコンピューターのルート情報を取得できます。

# ルート情報を取得
Get-NetRoute

# 固定ルートのみ取得
Get-NetRoute -PolicyStore PersistentStore

New-NetRoute

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

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

Get-NetTCPConnection

tcpのコネクション情報を取得できます。
netstatみたいな感じですが、netstatと違い、こちらはTCPだけになります。

# TCPのコネクションを取得
Get-NetTCPConnection

Get-NetIPAddress

Get-NetIPAddress

ネットワークインターフェースな情報が確認できる

Get-NetIPAddress

# AddressFamilyオプションを指定するとIpv4だったりIPv6のみ取得できる。
Get-NetIPAddress -AddressFamily IPv4

Get-NetIPAddress -AddressFamily IPv6

総評

Test-NetConnectionについても、パラメータの指定方法によっては、pingで疎通確認できたり、tracertみたいな事ができたりします。

またルーティング情報を追加、変更、削除する場合もNetTCPIPモジュールにはコマンドレットが用意されているため便利に利用できます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?