我想编写一个应用程序来监控系统中一个或多个磁盘的状态。
我发现我可以通过WMI "root/wmi“和MSStorageDriver管理一个磁盘,并查询它们的实际值(数据和阈值),到目前为止,它工作得很好:-)
但是,到目前为止,我还没有管理过多个磁盘。我不知道如何根据磁盘获取智能数据
有人能帮我解决这个问题吗?
非常感谢,奎恩
发布于 2017-08-27 17:39:35
我尝试过并成功了,我想分享这个问题的答案。
相应地,
获取S.M.A.R.T数据
示例代码
public string PNPDeviceID
{
set
{
this.m_PNPDeviceID = value;
this.InstanceName = null;
this.QueryObjATAPISmartData = null;
SearcherPnPDeviceId = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSWmi_PnPDeviceId");
foreach (ManagementObject queryObj in SearcherPnPDeviceId.Get())
{
if (queryObj["PNPDeviceID"] != null)
{
if (this.PNPDeviceID.ToUpper() == queryObj.GetPropertyValue("PNPDeviceID").ToString().ToUpper())
{
if (queryObj["InstanceName"] != null)
{
this.InstanceName = queryObj["InstanceName"].ToString();
break;
}
}
}
}
if (this.InstanceName != null)
{
SearcherATAPISmartData = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
foreach (ManagementObject queryObj in SearcherATAPISmartData.Get())
{
if (queryObj["InstanceName"] != null)
{
if (this.InstanceName.ToUpper() != queryObj.GetPropertyValue("InstanceName").ToString().ToUpper())
{
continue;
}
}
this.QueryObjATAPISmartData = queryObj;
break;
}
}}
在此之后,您可以获得QueryObjATAPISmartData的任何属性
问候你,奎恩
https://stackoverflow.com/questions/45681406
复制相似问题