1

紳士に私の元の質問の90%に答えてもらいました。つまり、以下のスクリプトを実行しているデバイスをポーリングできるようになりました。最終的な目標は、サポートするネットワーク上のすべてのデスクトップ/サーバーで静的またはDHCPのIPタイプを取得することです。バッチファイルに入力するサーバーのリストがあり、ネットワーク上の他のデバイスを1つの場所から実際にポーリングするためのコードを探しています。

表示する出力:

デバイス名:IPアドレス:MACアドレス:タイプ:  
Marvell Yukon 88E8001 / 8003/8010PCIギガビットイーサネットコントローラーNULL00:00:F3:44:C6:00 DHCP
Generic Marvell Yukon88E8056ベースのイーサネットコントローラー192.168.1.10200:00:F3:44:D0:00 DHCP
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();

txtLaunch.Text = ("Name\tIP Address\tMAC Address\tType" +"\r\n");

foreach (ManagementObject objMO in objMOC)
{
    StringBuilder builder = new StringBuilder();

    object o = objMO.GetPropertyValue("IPAddress");
    object m = objMO.GetPropertyValue("MACAddress");

    if (o != null || m != null)
    {
        builder.Append(objMO["Description"].ToString());
        builder.Append("\t");
            if (o != null)
               builder.Append(((string[])(objMO["IPAddress"]))[0].ToString());
            else
               builder.Append("NULL");
        builder.Append("\t");
        builder.Append(m.ToString());
        builder.Append("\t");
        builder.Append(Convert.ToBoolean(objMO["DHCPEnabled"]) ? "DHCP" : "Static");
        builder.Append("\r\n");
    }

    txtLaunch.Text = txtLaunch.Text + (builder.ToString());  

私はここで推奨事項を受け入れています。

4

2 に答える 2

1

リモートマシンで管理クラスをインスタンス化する必要があります。

このリンク:リモートWMIは、必要なコードを提供します。各マシンをループして、必要な情報を取得するだけです。

接続しようとしている各マシンの管理者権限が必要になります。これを縮小できる場合もありますが、トラブルシューティングには役立ちます。

PowerShellを調べるだけでなく、WinRMを使用するとこの作業がはるかに簡単になります。

于 2010-03-30T19:23:40.080 に答える
0

一部のマシンが 64 ビットで、システムも . 32 ビット システムを検索するためですね。それは言う:「SELECT * FROM Win32_OperatingSystem」

于 2013-05-16T11:50:37.187 に答える