Microsoftは、WindowsクライアントおよびサーバーOSの新バージョンをリリースするにつれ、システム管理と自動化のために開発されたフレームワークであるPowerShell(PS)への注力を強化し続けています。コマンドレットと呼ばれるコマンドのリストは絶えず拡張されており、PSはWindowsのほぼすべての設定を構成できるよう支援します。
PSには膨大な数のコマンドレットがありますが、幸いなことに、そのほとんどは機能や管理するサービスに基づいてグループ化されています。この記事では、ネットワークベースの設定の管理に関連するコマンドレットはすべて、PowerShellの基本フレームワーク内にあります。
参照: 採用キット: ネットワーク管理者 (Tech Pro Research)
コマンドレットの詳細に進む前に、すべてのコマンドレットが利用可能であり、完全にサポートされていることを確認するために満たす必要があるいくつかの要件があります。
- Windows Vista(またはそれ以降)がインストールされたPC
- Windows Management Framework 3.0(またはそれ以降)
- スイッチド ネットワーク (ほとんどのコマンドレットが適切に機能するために必要)
- ブロードバンド インターネット アクセス (オプションですが推奨)
1. ローカルまたはリモートでデバイスをpingする
Test-NetConnection -ComputerName “ホスト名またはIP”
Test-NetConnectionコマンドレットは、LANおよびWAN上のネットワーク接続をテストするための様々な方法を提供します。上記のようにコマンドを入力すると、コンピューターはpingを実行し、ローカルデバイスと対象のコンピューターまたはドメイン間のネットワーク接続の有無を確認します。
2. ポートまたはサービスに基づいて接続を確認する
Test-NetConnection “ホスト名” -ポート番号
Test-NetConnectionコマンドレットのもう一つの特徴は、ポート番号を指定してローカルデバイスとターゲットホスト間の接続をテストできることです。これは、デバイスとそれらが通信するポート間のサービスをテストするのに非常に便利です。
3. トレースルート通信
Test-NetConnection “ホスト名” -traceroute
トレースルートを実行することで、パケットが送信元から宛先に到達するまでに何ホップ(またはステップ)を経由する必要があるかを判断することは重要なツールです。これにより、パケットの送信先、そしてさらに重要な点として、送信が成功したかどうかを確認できます。送信に失敗した場合、トレースルートはパケットがパス上のどこで失敗したかを示します。
参照: PowerShell で時間を節約する IT プロフェッショナル向けガイド (TechRepublic の無料 PDF)
4. IP構成の詳細を取得する
Get-NetIPConfiguration
ipconfig コマンドと同様に、Get-NetIPConfiguration コマンドレットは、コンピューターのネットワークアダプターに設定されているネットワーク構成の全体像を提供します。IP アドレス、DNS アドレス、ゲートウェイ アドレスが表示され、アダプター名順に並べ替えられます。
5. DNSルックアップを実行する
Resolve-DnsName -Name “ホスト名”
ネットワークのバックボーンはDNSサービスと言えるでしょう。DNSサービスがなければ、ユーザーはすべてのウェブサイトやサービスのIPアドレスを把握しなければなりません。しかし、接続の問題が発生すると、IP関連のエラーを除外した後でも、DNSが原因であることが判明することがよくあります。「-server」スイッチに続けてDNSサーバーのIPアドレスを指定すると、IT部門は特定のサーバーに対してDNS解決要求を実行し、解決が正しく機能していることを確認できます。
参照: Windows 管理者の PowerShell スクリプト キット (Tech Pro Research)
6. 現在のTCP接続を表示する
Get-NetTCPConnection
従来のnetstatコマンドレットと同様に、Get-NetTCPConnectionコマンドレットを使用すると、デバイスとの間で現在確立されているTCP接続、および開いている接続やリッスン中の接続を表示できます。これにより、IPアドレスやポート、特に特定のネットワークサービスにバインドされているポートに関連する問題のトラブルシューティングに役立ちます。
7. DNS情報の表示と設定
Get-DnsClient
Set-DnsClientServer アドレス
このコマンドレットを使用すると、デバイスのDNSクライアント情報を確認できます。デバイスが複数のアダプタに設定されているアドレス解決を実行するために使用しているDNSサーバーが表示されます。Set-DnsClientServerAddressコマンドレットを使用すると、指定したDNSサーバーをネットワーク構成に追加できます。
8. DNSキャッシュをフラッシュする
クリア-DnsClientCache
DNSキャッシュは、頻繁に使用されるDNS解決レコードをデバイス上にローカルに保存しておくことで、レコードが要求されるたびにルックアップを実行する代わりに、そのレコードを読み取ることを可能にします。これにより、すでに高速な解決プロセスがさらに高速化されます。古いレコード、または更新されていないレコードが存在する場合、ネットワークパフォーマンスの低下、サービス拒否、あるいは誤ったレコードを悪用してユーザーリクエストを誤ったサーバー/サービスに誘導するセキュリティ問題につながる可能性があります。
9. DHCPリースの解放と更新
Invoke-Command -ComputerName -ScriptBlock {ipconfig /release}
Invoke-Command -ComputerName -ScriptBlock {ipconfig /renew}
PowerShellにはネットワーク設定を管理するためのコマンドレットが多数含まれていますが、DHCPリースの解放/更新を直接行う方法はありません。まず別のコマンドレットを参照し、その結果を2つ目または3つ目のコマンドレットにパイプしてDHCP設定を変更する必要があります。ただし、Invoke-Commandを利用することで、ipconfigコマンドを呼び出すことで、リモート(またはスクリプト経由)から解放や更新を実行できます。
10. ネットワークアダプタを無効にしたり有効にしたりする
Disable-NetAdapter -Name “アダプタ名”
Enable-NetAdapter -Name “アダプタ名”
最後に、デバイス上のネットワークアダプターを無効化/有効化するためのコマンドレットをご紹介します。上記のコマンドレットほど高度なネットワーク問題のトラブルシューティング方法ではありませんが、ITプロフェッショナルなら誰でもそう言うでしょうが、ネットワーク関連の問題を解決するには、電源をオフにしてからオンにするだけで済む場合もあります。
他のオプションはありますか?
ネットワークのトラブルシューティング作業で最も効果があった PowerShell コマンドレットはどれでしょうか?ぜひ、以下のディスカッションで TechRepublic のメンバーとあなたの経験やアドバイスを共有してください。