C# 获取Windows Server的硬件信息
目前,我使用以下方法获取硬件信息(网络适配器、处理器、硬盘) 我的应用程序是桌面,客户端服务器(应用程序和数据库安装在服务器上)。 此方法为客户端获取信息。有没有办法获取局域网上某个节点的硬件信息?我想获取服务器的硬件信息 我想获取服务器的硬件信息 WMI可以连接到另一台服务器,只要:C# 获取Windows Server的硬件信息,c#,.net,windows,wmi,hardware,C#,.net,Windows,Wmi,Hardware,目前,我使用以下方法获取硬件信息(网络适配器、处理器、硬盘) 我的应用程序是桌面,客户端服务器(应用程序和数据库安装在服务器上)。 此方法为客户端获取信息。有没有办法获取局域网上某个节点的硬件信息?我想获取服务器的硬件信息 我想获取服务器的硬件信息 WMI可以连接到另一台服务器,只要: eserver公开WMI 火墙不能阻挡它 您的用户帐户拥有其他服务器上的权限 很简单。这是我用来查询远程主机的子例程(这里我假设我已经在远程计算机上配置了WMI): 在该子例程中,我使用了直接查询,例如“从W
- eserver公开WMI
- 火墙不能阻挡它
- 您的用户帐户拥有其他服务器上的权限
很简单。这是我用来查询远程主机的子例程(这里我假设我已经在远程计算机上配置了WMI):
在该子例程中,我使用了直接查询,例如“从Win32_ComputerSystem中选择*”,但您也可以使用ManagementClass。您可以使用System.Management和System.Environment命名空间。“计算机系统硬件”类别将表示硬件相关对象的类分组在一起。看看这个[post][1][1]:你可能会得到答案:如何公开WMI?如果防火墙被阻止,如何以编程方式获取?
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectSearcher mbs = new ManagementObjectSearcher("Select * From Win32_processor");
ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:""");
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;
}