2009-03-18 14 views
3

Win32 GetAdaptersInfo()またはGetAdaptersAddresses()機能で取得した特定のネットワークアダプタがUSB、SmartCardなどのリムーバブルなものであることを確認するにはどうすればよいですか?ネットワークアダプタがWindows上でリムーバブルかどうかを確認する方法

これらの機能のドキュメントには、その情報を取得する手段が含まれていないようですので、何らかの方法でリムーバブルかどうかを調べる各デバイスについてWindowsに質問する必要があると仮定しています。

あなたは何をお勧めしますか?

答えて

2

あなたはそれについて考える場合は、すべてアダプタが取り外し可能な(例えばPCI、USB、仮想、など)です はさえ内蔵NICは通常、BIOSで無効にすることができます。

あなたが本当に知りたいのは、各アダプタの「インターフェイスタイプ」です。 この情報はWin32_NetworkAdapterConfigurationクラスのcaptionプロパティにあります。これを(クラスの他の情報と一緒に)使用して、各デバイスがどのようにマシンに接続されているか、使用中であるかどうかを調べることができます。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery(_ 
    "SELECT Caption, IPEnabled FROM Win32_NetworkAdapterConfiguration",,48) 
For Each objItem in colItems 
    Wscript.Echo objItem.IPEnabled & " " & objItem.Caption 
Next 

はまた、のWin32_NetworkAdapterConfigurationは、TCP/IPがバインドされ、アダプタで有効になっているかどうかを確認することができますようIPEnabledプロパティのために非常に有用です。ここで

出力例はどうもありがとう

False [00000001] 1394 Net Adapter 
False [00000002] RAS Async Adapter 
False [00000003] WAN Miniport (L2TP) 
False [00000004] WAN Miniport (PPTP) 
False [00000005] WAN Miniport (PPPOE) 
False [00000006] Direct Parallel 
False [00000007] WAN Miniport (IP) 
False [00000008] Packet Scheduler Miniport 
True [00000009] Wireless-B PCI Adapter 
False [00000010] Packet Scheduler Miniport 
False [00000011] Cisco AnyConnect VPN Virtual Miniport Adapter for Windows 
False [00000012] Packet Scheduler Miniport 
+0

こんにちはフレイザーは、あります。しかし、これはアダプタが「IPEnabled」であるかどうかを教えてくれているようですが、それがリムーバブルであるかどうかはわかりません。何か不足していますか? –

+0

私の答えの編集を参照してください... – Fraser

+0

ああ、あなたは "PCI"、 "WAN"、 "VPN"などを探しているのですか?これは「安全な」方法ですか? –

関連する問題