Welche Klassen sollte ich in C# verwenden, um Informationen über einen bestimmten Computer in meinem Netzwerk zu erhalten? (Wie wer an diesem Computer angemeldet ist, welches Betriebssystem auf diesem Computer ausgeführt wird, welche Ports geöffnet sind etc.)C#: Informationen über Computer in Domäne
Antwort
WMI-Bibliothek und hier ist eine VB.net example. Es sollte nicht schwierig sein, es in C#
Schauen Sie in die WMI-Bibliothek.
Zur Kasse System.Management und System.Management.ManagementClass. Beide werden für den Zugriff auf WMI verwendet, um die fraglichen Informationen abzurufen.
Edit: mit Probe Aktualisiert WMI von Remote-Computer zuzugreifen:
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);
}
Hinweis: Benutzer-ID, Passwort und ipAddress alle definiert werden müssen, entsprechend Ihrer Umgebung.
danke für die Links – melculetz
zu konvertieren. Hier ist ein Beispiel für die Verwendung in einer Box über. MSDN hat den Rest der Elemente, die Sie alle können.
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;
}
}
}
Versuchen Sie, diesen Code auf dem Zielcomputer auszuführen? Oder versuchen Sie, dies von Ihrem Computer aus auszuführen und Informationen über einen anderen Computer über das Netzwerk zu erhalten? – Nate
Ich möchte den Code von meinem Computer aus ausführen, um Informationen über einen anderen Computer über das Netzwerk zu erhalten, dessen IP – melculetz
Beispiel für eine Remote-WMI-Abfrage in meiner Antwort. – Nate