現在リンクアップしているインターフェースに適用されている
WindowsFirewallのポリシーを取得したいと考えています。
「ワイヤレス ネットワーク 1」に適用されているポリシーを調べるには
そのインターフェースがリンクアップしているネットワークの場所(ネットワーク カテゴリ)
ドメインかプライベートかパブリックかを知る必要があるのですが
コマンドライン等でこれを取得する方法がわかりません。
現在はvbsにて開発していますが、特にこだわってはいません。
行ったこと:
PowerShell3.0が導入されている環境(Windows8など)においては
Get-NetConnectionProfileにより確認が可能ですが
Windows7 の基本構成ではこのコマンドが使用できません。
Win32_NetworkConguration等その手のものでは
インターフェースに設定されている値を参照できるものの
今現在適用されている状況などについての値は乏しく
プロファイルやネットワークカテゴリを含む値を持った項目がありませんでした。
レジストリのインタフェース設定周り(HKLM\System\Service\TCPIP)と
ネットワークプロファイル(HKLM\Software\WindowsNT\NetworkList)の設定も確認したのですが
それぞれ設定情報自体はあるものの
現在そのインターフェースに対してアクティブになっているネットワークプロファイル
を知ることができず紐づけすることができませんでした。
ncpa.cplで開けばGUI上は、そのインタフェースがどのNerworkCategoryに属するか一目でわかります。
しかしこれをコマンドラインで取得しようとすると方法が浮かびません。
何か良い手法ご存じないでしょうか。
妙案ございましたらご教示頂ければ幸いです。何卒お願い申し上げます。
=== 9/20 1:30 追記 ===
最終的にネットワークアダプタとネットワークカテゴリの紐づけは完全にはできませんでした。
しかし、アダプタのGUIDまでは紐づけができ、IPアドレスの取得は実現できました。
WindowsFirewall周りで使うにはIPアドレスがわかれば十分なので、以下のやり方でいこうと思います。
(PowerShellで書き上げるスキルがなく突如C#になりました)
C#
1// 現在有効なリンクアップ対象を取得 2NetworkListManager networkListMgr = new NetworkListManager(); 3IEnumNetworkConnections netWorks = networkListMgr.GetNetworkConnections(); 4 5// リンクアップ1接続ごとに回す 6foreach (INetworkConnection network in netWorks) 7{ 8 // ① 対象アダプターのGUIDを表示 9 Console.WriteLine(network.GetAdapterId()); 10 // 使用しているネットワークプロファイルを取得 11 INetwork Connection = network.GetNetwork(); 12 // ② 使用しているプロファイル名を表示 13 Console.WriteLine(Connection.GetName()); 14 // ③ 適用されているネットワークカテゴリを表示 15 Console.WriteLine(Connection.GetCategory().ToString()); 16 // アダプターのGUIDを元にレジストリからIPアドレスを取得する 17 Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey( 18 @"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{" + network.GetAdapterId() +"}", false ); 19 if (regkey != null) 20 { 21 String IPAddress = (String)regkey.GetValue("IPAddress"); 22 if (IPAddress == null) IPAddress = (String)regkey.GetValue("DHCPIPAddress"); 23 // ④ IPアドレスを出力する 24 if (IPAddress != null) Console.WriteLine(IPAddress); 25 } 26}
25d921e3-f2ef-2ae1-3f9f-1234430ac421
HogeHogeWifi
NLM_NETWORK_CATEGORY_PUBLIC
192.168.1.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/19 16:25