ネットワーク シェル (netsh) は、Windows および Windows Server システム上のネットワーク コンポーネントとサーバーの役割を構成、管理、監視するための、汎用的で包括的なコマンド ライン ユーティリティです。
netsh
を使用すると、ネットワーク設定の表示と変更、タスクの自動化、ローカルまたはリモートでのネットワークの問題のトラブルシューティングを行うことができます。
多くのシナリオでは、netsh コマンドは、ネットワーク サーバーの役割と機能を管理するための Microsoft 管理コンソール (MMC) スナップインと同等の機能を提供します。 これにより、管理者は、グラフィカル MMC インターフェイスを使用するか、コマンドラインオートメーションを使用して、構成タスクと管理タスクを実行できます。
たとえば、NPS MMC スナップインまたは netsh nps
コンテキストの netsh コマンドを使用して、ネットワーク ポリシー サーバー (NPS) を構成できます。 さらに、WINDOWS Server では MMC スナップインとして使用できない、IPv6、ネットワーク ブリッジ、リモート プロシージャ コール (RPC) などのネットワーク テクノロジ用の netsh コマンドがあります。
Important
netsh
ではなく、Windows PowerShell を使用して Windows と Windows Server のネットワーク テクノロジを管理することをお勧めします。
構文の例
netsh [-a <Aliasfile>] [-c <Context>] [-r <RemoteMachine>] [-u <DomainName>\<Username>] [-p <Password> | *] [Command> | -f <ScriptFile>]
次のパラメーターは省略可能です。
Parameter | Description |
---|---|
-a | エイリアス ファイルの実行後に netsh シェルに戻る必要があることを指定します。 エイリアス ファイルは、1 つ以上の netsh コマンドを含むテキスト ファイルです。 |
-c | 指定した netsh コンテキストを入力します。 コンテキストは、特定の機能に関連する使用可能なコマンドの特定のセットを表します。 |
-r | リモート コンピューター上で、そのコンピューター名、完全修飾ドメイン名 (FQDN)、または IP アドレスを使用してコマンドを実行することを指定します。 リモート レジストリ サービスは、リモート コンピューター上で実行されている必要があります。 実行されていない場合は、"ネットワーク パスが見つかりません" というエラー メッセージが表示されます。 -r 指定した後に別のコマンドを指定した場合、netsh はリモート コンピューターでコマンドを実行し、コマンド プロンプトに戻ります。 別のコマンドを使用せずに -r を指定すると、netsh がリモート モードで開きます。 このプロセスは、netsh コマンド シェルで set machine を使用するのと似ています。
-r を使用する場合は、netsh の現在のインスタンスにのみターゲット コンピューターを設定します。 |
-u |
DomainName\Username 形式を使用して、特定のユーザー アカウントで netsh コマンドを実行することを指定します。 |
-p | ユーザー アカウントのパスワードを指定することを指定します。
* 使用する場合は、パスワードを安全に入力することを指定します。 |
Command | これは、実行する netsh コマンドです。 |
-f | 指定したスクリプト ファイルからコマンドを実行した後に netsh を終了することを指定します。 |
文字列値に文字間のスペースが含まれている場合は、文字列値を引用符で囲む必要があります。 たとえば、-r "contoso remote device"
のようにします。 終了して netsh
再入力すると、ターゲット コンピューターがローカル コンピューターとしてリセットされます。 リモート コンピューターで netsh コマンドを実行するには、WINS に格納されているコンピューター名、UNC 名、DNS サーバーによって解決されるインターネット名、または IP アドレスを指定します。
Note
netsh netsh firewall
パラメーターを使用して別のコンピューターでリモートで–r
コマンドなど、特定の netsh コマンドを使用するには、リモート コンピューターでリモート レジストリ サービスが実行されている必要があります。 このサービスが実行されていない場合は、ネットワーク通信エラー メッセージが表示されることがあります。
netsh コマンドの実行
netsh
コマンドの実行は、管理者特権のコマンド プロンプトまたは PowerShell ウィンドウを使用して実行できます。 インストールされているネットワーク コンポーネントに応じて、使用するコマンドを含むコンテキストに変更できます。
たとえば、「 netsh
」と入力すると、ネットワーク シェルに直接取り込まれます。 ここで、 dhcp
入力して Enter キーを押すと、 dhcpclient
コマンドのコンテキスト メニューが表示されます。
コマンド コンテキスト
netsh は、ダイナミックリンク ライブラリ (DLL) ファイルを使って、他のオペレーティング システムのコンポーネントと相互に作用します。 各 netsh ヘルパー DLL には、 コンテキストと呼ばれる広範な機能セットが用意されています。これは、ネットワーク サーバーの役割または機能に固有のコマンドのグループです。 これらのコンテキストにより、1 つ以上のサービス、ユーティリティ、またはプロトコルの構成と監視のサポートが提供されるため、netsh の機能が拡張されます。
たとえば、dhcpmon.dll は、DHCP サーバーの構成と管理に必要なコンテキストとコマンドのセットを netsh に提供します。
>
配置では、どのコンテキストまたはサブコンテキストにいるかを把握できます。 netsh コンテキストの一覧を取得するには、 netsh ?
または netsh help
を実行し、 Enter キーを 押して使用可能なコマンドのいずれかを指定します。
出力例を次に示します。
The following commands are available:
Commands in this context:
.. - Goes up one context level.
? - Displays a list of commands.
abort - Discards changes made while in offline mode.
add - Adds a configuration entry to a list of entries.
advfirewall - Changes to the 'netsh advfirewall' context.
alias - Adds an alias.
branchcache - Changes to the 'netsh branchcache' context.
bridge - Changes to the 'netsh bridge' context.
bye - Exits the program.
commit - Commits changes made while in offline mode.
delete - Deletes a configuration entry from a list of entries.
dhcpclient - Changes to the 'netsh dhcpclient' context.
dnsclient - Changes to the 'netsh dnsclient' context.
dump - Displays a configuration script.
exec - Runs a script file.
exit - Exits the program.
firewall - Changes to the 'netsh firewall' context.
help - Displays a list of commands.
http - Changes to the 'netsh http' context.
interface - Changes to the 'netsh interface' context.
ipsec - Changes to the 'netsh ipsec' context.
ipsecdosprotection - Changes to the 'netsh ipsecdosprotection' context.
lan - Changes to the 'netsh lan' context.
namespace - Changes to the 'netsh namespace' context.
netio - Changes to the 'netsh netio' context.
offline - Sets the current mode to offline.
online - Sets the current mode to online.
popd - Pops a context from the stack.
pushd - Pushes current context on stack.
quit - Exits the program.
ras - Changes to the 'netsh ras' context.
rpc - Changes to the 'netsh rpc' context.
set - Updates configuration settings.
show - Displays information.
trace - Changes to the 'netsh trace' context.
unalias - Deletes an alias.
wfp - Changes to the 'netsh wfp' context.
winhttp - Changes to the 'netsh winhttp' context.
winsock - Changes to the 'netsh winsock' context.
The following sub-contexts are available:
advfirewall branchcache bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace netio nlm ras rpc trace wcn wfp winhttp winsock wlan
To view help for a command, type the command, followed by a space, and then type ?.
コマンド サブコンテキスト
コンテキストには、 コマンドとサブコンテキストと呼ばれる入れ子になったコンテキストの両方が含まれる場合もあります。 たとえば、 インターフェイス コンテキストには、特定のネットワーク インターフェイス設定を管理できる ipv4 や ipv6 などのサブコンテキストが含まれています。 例えば次が挙げられます。
netsh> interface help
The following commands are available:
Commands in this context:
6to4 - Changes to the 'netsh interface 6to4' context.
? - Displays a list of commands.
dump - Displays a configuration script.
fl48 - Changes to the 'netsh interface fl48' context.
fl68 - Changes to the 'netsh interface fl68' context.
help - Displays a list of commands.
httpstunnel - Changes to the 'netsh interface httpstunnel' context.
ipv4 - Changes to the 'netsh interface ipv4' context.
ipv6 - Changes to the 'netsh interface ipv6' context.
isatap - Changes to the 'netsh interface isatap' context.
portproxy - Changes to the 'netsh interface portproxy' context.
set - Sets configuration information.
show - Displays information.
tcp - Changes to the 'netsh interface tcp' context.
teredo - Changes to the 'netsh interface teredo' context.
udp - Changes to the 'netsh interface udp' context.
The following sub-contexts are available:
6to4 fl48 fl68 httpstunnel ipv4 ipv6 isatap portproxy tcp teredo udp
To view help for a command, type the command, followed by a space, and then
type ?.
現在のコンテキストから変更せずに別のコンテキストでタスクを実行するには、netsh シェルで使用するコマンドのコンテキスト パスを入力します。 たとえば、"NetLAN1" の静的 IPv4 アドレスを追加し、サブネット マスクとゲートウェイの両方を指定するには、次のように入力します。
netsh interface ipv4 set address "NetLAN1" static <IP_Address> <Subnet_Mask> <Gateway>
表記規則
次の書式設定の凡例を使用すると、コマンドを対話形式で、バッチ ファイルまたはスクリプトで実行するときに、正しいコマンド構文を解釈して使用できます。
- 斜体のテキストは、コマンドを入力するときに指定する必要がある情報です。 たとえば、コマンドに -UserName という名前のパラメーターがある場合、実際のユーザー名を入力する必要があります。
- 太字のテキストは、コマンドを入力するときに示されているとおりに入力する必要がある情報です。
- テキストの後に省略記号 ... が続くパラメーターは、コマンド ラインで複数回繰り返すことができます。
- 角かっこ [ ] の 間にあるテキストは、省略可能な項目です。
- 中かっこ { } の間に、パイプで区切られた選択肢を含むテキストには、
{enable|disable}
など、1 つだけを選択する必要がある選択肢のセットが用意されています。 - Courier フォントで書式設定されたテキストは、コードまたはプログラムの出力です。
netsh コマンドの文字列値
文字列値が必要とされるパラメーターが含まれるコマンドが存在します。 文字列値に文字間のスペースが含まれている場合は、文字列値を二重引用符で囲む必要があります。
DHCP へのinterface
の文字列値を使用して IPv4 ネットワークの パラメーターを設定する場合は、文字列値を二重引用符で囲みます。 例えば次が挙げられます。
netsh interface ipv4> set address name="Wireless Network Connection" dhcp
または、ネットワーク インターフェイスの場合は、それに関連付けられている名前の代わりにインデックス番号を使うことができます。 例えば次が挙げられます。
netsh interface ipv4> set address name=15 dhcp
インターフェイス サブコンテキストで接続されているインターフェイスの名前またはインデックスを見つけるには、インターフェイスの種類を選択し、show interfaces
を入力して詳細情報を表示します。 例えば次が挙げられます。
netsh interface> ipv4 show interfaces
netsh interface> ipv6 show interfaces
インターフェイス サブコンテキストにいない場合は、いずれかのインターフェイスに対して 完全な コマンドを実行できます。 例えば次が挙げられます。
netsh interface ipv4 show interfaces
netsh interface ipv6 show interfaces
バッチ ファイルでの netsh の使用
バッチ ファイルは、Windows コマンド プロンプト (CMD) によって実行される一連のコマンドを含むプレーン テキスト ファイルです。 バッチ ファイルには、 .bat
または .cmd
拡張子があります。 これらは、ユーザーの介入なしに、反復的なタスクの自動化、システム構成の管理、一連のコマンドの実行に使用されます。 バッチ ファイルは、複数のコマンド ライン命令を含むタスクに特に便利です。
バッチ スクリプトは、次のシナリオで役立ちます。
一括ネットワーク構成: 複数のコンピューターのネットワーク設定を構成する必要がある場合、バッチ ファイルはセットアップを自動化することでプロセスを効率化できます。 一括構成は、エンタープライズ環境や、複数のマシンを管理する IT プロフェッショナルに役立ちます。
ネットワーク再構成: 異なるネットワーク環境間を切り替えるユーザーは、バッチ ファイルを使用して、手動操作なしで IP アドレスや DNS サーバーなどの設定をすばやく変更できます。
バックアップと復元の設定: 変更を行う前にネットワーク設定をバックアップするバッチ スクリプトを作成し、必要に応じて別のスクリプトを作成して復元できます。
バッチ ファイルの例を次に示します。 "rem" で始まる行は、コマンドが実行するアクションをユーザーに知らせるコメントです。
@echo off
echo Configuring network settings...
REM Set the IP address, subnet mask, and default gateway
netsh interface ip set address name="Ethernet" static 192.168.1.100 255.255.255.0 192.168.1.1
REM Set the DNS server address
netsh interface ip set dns name="Ethernet" static 8.8.8.8
REM Add a secondary DNS server
netsh interface ip add dns name="Ethernet" 8.8.4.4 index=2
REM Enable the firewall
netsh advfirewall set allprofiles state on
echo Network settings configured successfully.
pause
このスクリプトが実行する内容の簡単な説明を次に示します。
- "Ethernet" という名前のネットワーク インターフェイスの静的 IP アドレス、サブネット マスク、および既定のゲートウェイを設定します。
- 使用するプライマリ DNS サーバーを構成します。
- セカンダリ (フォールバック) DNS サーバーを追加します。
- すべてのプロファイルに対して、セキュリティが強化された Windows ファイアウォールを有効にします。