0

現在、次の方法を使用してハードウェア情報 (ネットワーク アダプター、プロセッサ、hdd) を取得しています。

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor");
ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:""");

私のアプリはデスクトップ、クライアントサーバーです(アプリとデータベースはサーバーにインストールされています)。このメソッドは、クライアントの情報を取得します。LAN 上のノードのハードウェア情報を取得する方法はありますか? サーバーのハードウェア情報を取得したいですか?

4

2 に答える 2

0

これは、リモート ホストにクエリを実行するために使用するサブルーチンです (ここでは、リモート コンピューターで既に WMI を構成していると想定しています)。

    public string getWMI(string[] parameters)
    {
        string ip = parameters[0];
        string username = parameters[1];
        string password = parameters[2];
        string query = parameters[3];
        string result = "";
        ConnectionOptions options = new ConnectionOptions();
        ManagementScope scope;
        options.Username = username;
        options.Password = password;
        try
        {
            scope = new ManagementScope("\\\\" + ip + "\\root\\cimv2", options);
            scope.Connect();
            if (scope.IsConnected)
            {
                ObjectQuery q = new ObjectQuery(query);
                ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, q);
                ManagementObjectCollection objCol = searcher.Get();
                foreach (ManagementObject mgtObject in objCol)
                {
                    result = result + mgtObject.GetText(TextFormat.CimDtd20);
                }
            }
            else
            {
            }
        }
        catch (Exception e)
        {
            writeLogFile("WMI Error: " + e.Message);
            writeLog("WMI Error: " + e.Message);
        }
        return result;
    }

そのサブルーチンでは、「select * from Win32_ComputerSystem」などの直接クエリを使用しますが、ManagementClassも使用できます。

于 2012-06-06T10:20:34.710 に答える
0

サーバーのハードウェア情報を取得したいですか?

WMI は、次の場合に限り、別のサーバーを指すことができます。

  • eserver は WMI を公開します
  • ファイアウォールはそれをブロックしません。
  • ユーザー アカウントには、他のサーバーに対する権限があります。

そのように単純です。

于 2012-06-06T09:37:53.923 に答える