私がやりたいのは、接続名(別名:「ネットワーク接続」ウィンドウに表示されるもの、またはnetshコマンドで使用するもの)に基づいてNICを無効にすることです)。
有効化/無効化はdevconを使用して実行できることは知っていますが、devconは物理的なNIC(例:PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\4&282B82B8&0&08F0
)、関連付けられている接続の名前ではありません(例:「ローカルエリア接続2」)。
したがって、基本的には、接続名をデバイスのハードウェアIDにマップするための何かが必要です。
devcon listclass Net
次に、devconを介して無効化を行うことができます。
それを行う方法についてのアイデアはありますか?それを行うためのよりスマートでシンプルな方法はありますか?
[〜#〜] 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
Local Area Connectionという名前の接続、つまりそのデバイスを無効にするには:
netsh interface set interface "Local Area Connection" DISABLE
これを確認するには:
netsh interface show interface
これにより、デバイスマネージャーを使用して確認できるネットワークデバイスが無効になります。
まだ行っていない場合は、この男の 研究 を確実にチェックしてください。
これが始まりです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
(*は、スクリプトでアンパサンドをエスケープする代わりに使用されます)