try { ManagementScope sc = new ManagementScope(@"\\" + Environment.MachineName + @"\root\cimv2"); ObjectQuery query = new ObjectQuery("Select * from Win32_DiskDrive"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(sc, query); ManagementObjectCollection result = searcher.Get(); String Datos = ""; String DriveLetter = "N/A"; foreach (ManagementObject obj in result) { ObjectQuery query2 = new ObjectQuery( "ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + obj["DeviceID"].ToString() + "'} where AssocClass = Win32_DiskDriveToDiskPartition"); ManagementObjectSearcher searcher2 = new ManagementObjectSearcher(sc, query2); ManagementObjectCollection result2 = searcher2.Get(); foreach (ManagementObject obj2 in result2) { query3 = new ObjectQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + obj2["DeviceID"].ToString() + "'} where AssocClass = Win32_LogicalDiskToPartition"); ManagementObjectSearcher searcher3 = new ManagementObjectSearcher(sc, query3); ManagementObjectCollection result3 = searcher3.Get(); foreach (ManagementObject obj3 in result3) { DriveLetter = obj3["DeviceID"].ToString(); } } if (obj["InterfaceType"] != null) { String InterfaceType=obj["InterfaceType"].ToString(); if (InterfaceType == "USB") { if (obj["Description"] != null) Datos += "Description:\t" + obj["Description"].ToString() + "\n"; if (obj["DeviceID"] != null) Datos += "DeviceID:\t" + obj["DeviceID"].ToString() + "\n"; if (obj["PNPDeviceID"] != null) Datos += "PNPDeviceID:\t" + obj["PNPDeviceID"].ToString() + "\n"; if (obj["Caption"] != null) Datos += "Caption:\t" + obj["Caption"].ToString() + "\n"; if (obj["Status"] != null) Datos += "Status:\t" + obj["Status"].ToString() + "\n"; if (obj["InterfaceType"] != null) Datos += "InterfaceType:\t" + obj["InterfaceType"].ToString() + "\n"; if (DriveLetter != null) Datos += "DriveLetter:\t" + DriveLetter.ToString() + "\n"; Datos += "\n"; } } } if (Datos!="") eventLogSimple.WriteEntry(Datos, EventLogEntryType.Warning); } catch (Exception ex) { eventLogSimple.WriteEntry(ex.Message ,EventLogEntryType.Error); }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)