C #: получить информацию о компьютере в домене - PullRequest
7 голосов
/ 09 июня 2009

Какие классы мне следует использовать в C #, чтобы получить информацию об определенном компьютере в моей сети? (Например, кто вошел в систему на этом компьютере, какая операционная система запущена на этом компьютере, какие порты открыты и т. Д.)

Ответы [ 4 ]

9 голосов
/ 09 июня 2009

Оформить заказ System.Management и System.Management.ManagementClass . Оба используются для доступа к WMI, то есть как получить информацию, о которой идет речь.

Редактировать: Обновлено с примером для доступа к WMI с удаленного компьютера:

ConnectionOptions options;
options = new ConnectionOptions();

options.Username = userID;
options.Password = password;
options.EnablePrivileges = true;
options.Impersonation = ImpersonationLevel.Impersonate;

ManagementScope scope;
scope = new ManagementScope("\\\\" + ipAddress + "\\root\\cimv2", options);
scope.Connect();

String queryString = "SELECT PercentProcessorTime, PercentInterruptTime, InterruptsPersec FROM Win32_PerfFormattedData_PerfOS_Processor";

ObjectQuery query;
query = new ObjectQuery(queryString);

ManagementObjectSearcher objOS = new ManagementObjectSearcher(scope, query);

DataTable dt = new DataTable();
dt.Columns.Add("PercentProcessorTime");
dt.Columns.Add("PercentInterruptTime");
dt.Columns.Add("InterruptsPersec");

foreach (ManagementObject MO in objOS.Get())
{
    DataRow dr = dt.NewRow();
    dr["PercentProcessorTime"] = MO["PercentProcessorTime"];
    dr["PercentInterruptTime"] = MO["PercentInterruptTime"];
    dr["InterruptsPersec"] = MO["InterruptsPersec"];

    dt.Rows.Add(dr);
}

Примечание. ИД пользователя, пароль и ipAddress должны быть определены в соответствии с вашей средой.

3 голосов
/ 09 июня 2009

Вот пример использования его в поле about. В MSDN есть все, что вы можете сделать.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Management;

namespace About_box
{
    public partial class About : Form
    {
        public About()
        {
            InitializeComponent();
            FormLoad();
        }

        public void FormLoad()
        {
            SystemInfo si;
            SystemInfo.GetSystemInfo(out si);

            txtboxApplication.Text = si.AppName;
            txtboxVersion.Text = si.AppVersion;
            txtBoxComputerName.Text = si.MachineName;
            txtBoxMemory.Text = Convert.ToString((si.TotalRam / 1073741824)
                + " GigaBytes");
            txtBoxProcessor.Text = si.ProcessorName;
            txtBoxOperatingSystem.Text = si.OperatingSystem;
            txtBoxOSVersion.Text = si.OperatingSystemVersion;
            txtBoxManufacturer.Text = si.Manufacturer;
            txtBoxModel.Text = si.Model;
        }


    }
}
2 голосов
/ 09 июня 2009

Библиотека WMI и вот пример VB.net . Не должно быть трудно преобразовать это в C #

2 голосов
/ 09 июня 2009

Загляните в библиотеку WMI.

...