web-dev-qa-db-ja.com

Windowsでバッチコマンドを使用して特定のイーサネットカードを無効にする

私がやりたいのは、接続名(別名:「ネットワーク接続」ウィンドウに表示されるもの、またはnetshコマンドで使用するもの)に基づいてNICを無効にすることです)。

有効化/無効化はdevconを使用して実行できることは知っていますが、devconは物理的なNIC(例:PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&282B82B8&0&08F0)、関連付けられている接続の名前ではありません(例:「ローカルエリア接続2」)。

したがって、基本的には、接続名をデバイスのハードウェアIDにマップするための何かが必要です。

devcon listclass Net

次に、devconを介して無効化を行うことができます。

それを行う方法についてのアイデアはありますか?それを行うためのよりスマートでシンプルな方法はありますか?

4
Antonio

[〜#〜] xp [〜#〜](LAN有線)

ここで、NetConnectionStatus = 2はactive(接続された)ネットワークインターフェイスを取得し、「more + 1」はヘッダー行をスキップします。

C:\>wmic.exe nic where "NetConnectionStatus=2" get PNPDeviceID |more +1
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&1F7DBC9F&1&30F0

次に、文字列(略して最初のアンパサンドまで)を devcon にフィードして、インターネット接続を無効にしてから有効にします。

C:\>devcon.exe disable PCI\VEN_10EC
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&1F7DBC9F&1&30F0: Disabled
1 device(s) disabled.

C:\>devcon.exe enable PCI\VEN_10EC
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&1F7DBC9F&1&30F0: Enabled
1 device(s) enabled.

wmic出力は広いので、メモ帳でワードラップをオフにすると、このように1.txtを見ると、かなり明確です:

C:\>wmic.exe nic > 1.txt

C:\>1.txt


Windows 7Wifi接続(devcon.exeを使用しない別のアプローチ)

これは私のために働いた:

C:\>wmic.exe nic where "NetConnectionStatus=2" get Index |more +1
12
C:\>wmic.exe path win32_networkadapter where index=12 call disable
C:\>wmic.exe path win32_networkadapter where index=12 call enable
2
gseattle

Local Area Connectionという名前の接続、つまりそのデバイスを無効にするには:

netsh interface set interface "Local Area Connection" DISABLE

これを確認するには:

netsh interface show interface

これにより、デバイスマネージャーを使用して確認できるネットワークデバイスが無効になります。

1
Oskar Duveborn

まだ行っていない場合は、この男の 研究 を確実にチェックしてください。

0
blank3

これが始まりですwmicを使用すると、devconにフィードできるものが得られます。

wmic:root\cli>nic where(NetConnectionID="Local Area Connection") get PNPDeviceID
PNPDeviceID
PCI\VEN_8086&DEV_10BD&SUBSYS_10FD1734&REV_02\3&33FD14CA&0&C8

したがって、ローカルエリア接続デバイスIDを見つけるシェルスクリプトは次のようになります。

wmic nic where(NetConnectionID="Local Area Connection") get PNPDeviceID | find "PCI\"  

デバイスIDが部分的に一致するdevconを使用できます。これは、70のAsus Eee BoxB203でWLANを無効にするために使用したコマンドです。

devcon disable PCI\VEN_1814*DEV_0781  

(*は、スクリプトでアンパサンドをエスケープする代わりに使用されます)

0
nray