c# - management - wmi windows 10
Cómo leer la colección ManagementObject en WMI usando C# (3)
Eche un vistazo a su consulta de WMI:
SELECT * FROM Win32_OperatingSystem
Significa "obtener todas las instancias de la clase Win32_OperatingSystem
e incluir todas las propiedades de la clase". Esta es una pista de que los Win32_OperatingSystem
ManagementObject
resultantes son envolturas sobre la clase WMI Win32_OperatingSystem
. Consulte la Win32_OperatingSystem la Win32_OperatingSystem para saber qué propiedades tiene, qué significan y para decidir cuáles necesita usar en su código.
Si necesita recorrer todas las propiedades disponibles sin codificar de forma rígida sus nombres, use la Properties
Propiedades como lo sugirió Giorgi . Aquí hay un ejemplo:
foreach (ManagementObject mo in osDetailsCollection)
{
foreach (PropertyData prop in mo.Properties)
{
Console.WriteLine("{0}: {1}", prop.Name, prop.Value);
}
}
Encontré un código en la red y he estado tratando de obtener más información sobre mo [] .
Estoy tratando de obtener toda la información contenida en ManagementObjectCollection.
Como el parámetro en mo está buscando un valor de cadena que no sé, ¿cómo puedo obtener todos los valores sin conocer sus valores de parámetros? O si quiero obtener todos los valores del indexador relacionados con mo en ManagementObjectCollection
ManagementObjectSearcher objOSDetails = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
ManagementObjectCollection osDetailsCollection = objOSDetails.Get();
foreach( ManagementObject mo in osDetailsCollection )
{
_osName = mo["name"].ToString();// what other fields are there other than name
_osVesion = mo["version"].ToString();
_loginName = mo["csname"].ToString();
}
Puede recorrer todas las propiedades usando Properties
Use la documentación primero para saber lo que significa la propiedad. Experimenta con la herramienta WMI Code Creator .