- 締切済み
どうして、Windows server 2008の場合、下記のコードを
どうして、Windows server 2008の場合、下記のコードを利用してローカルPCのIPAddress、IPSubnetなどの情報を取得することができませんか。 _mosNetworkAdapterConfiguration = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_NetworkAdapterConfiguration"); // ********************************************************* // -- インターネットプロトコルTCPIPの詳細 // ********************************************************* _clsXML.WriteXMLStartElement("インターネットプロトコルTCPIPの詳細"); foreach (ManagementObject obj in _mosNetworkAdapterConfiguration.Get()) { _clsXML.WriteXMLStartElement("DHCPの使用"); _clsXML.WriteXMLAttributes("DHCPEnabled", Tools.ConvertNullToString(obj["DHCPEnabled"])); _clsXML.WriteXMLEndElement(); // DHCPの使用 Console.WriteLine("IPAddress..."); if (obj["IPAddress"] == null) { Console.WriteLine("NULL"); _clsXML.WriteXMLStartElement("IPアドレス"); _clsXML.WriteXMLEndElement(); // IPアドレス } else { arr = (string[])(obj["IPAddress"]); foreach (string arrValue in arr) { Console.WriteLine("###" + arrValue + "###"); _clsXML.WriteXMLStartElement("IPアドレス"); _clsXML.WriteXMLAttributes("IPAddress", arrValue); _clsXML.WriteXMLEndElement(); // IPアドレス } } Console.WriteLine("IPSubnet..."); if (obj["IPSubnet"] == null) { Console.WriteLine("NULL"); _clsXML.WriteXMLStartElement("IPサブネットマスク"); _clsXML.WriteXMLEndElement(); // IPサブネットマスク } else { arr = (string[])(obj["IPSubnet"]); foreach (string arrValue in arr) { Console.WriteLine("###" + arrValue + "###"); _clsXML.WriteXMLStartElement("サブネットマスク"); _clsXML.WriteXMLAttributes("IPSubnet", arrValue); _clsXML.WriteXMLEndElement(); // IPサブネットマスク } } ...
- みんなの回答 (2)
- 専門家の回答
みんなの回答
UACでブロックされているのではないかと思われます。 素性の良くない方法でアクセスしているのではないでしょうか。 wmiで取得するようにコードを改良したほうがよさそうです。
変数の初期化関連が記述されていないのでこのコードのみでは実行できません。 なにか別のDLLかコードが必要なスクリプトのようです。 スクリプトの冒頭に Option Explicit を追加して実行してみてください。 不完全なコードであれば、問題の行がわかるはずです。
補足
すみません、ソースが長くて一部分しか書いていません。 今のツール(makeDesignSheet.exe)はWin2000、XP、2003などの下で正しく実行できますが。Windows server 2008の下ではシステム情報を取得することができません。添付ファイルを見てください。