WMI es una recomendación de la industria para desarrollar una tecnología estandarizada para acceder a información de gestión en entornos empresariales. Esta información incluye el estado de la memoria del sistema, una lista de aplicaciones cliente instaladas actualmente y otros datos sobre el estado del cliente.
WMI es una arquitectura de administración de sistemas escalable que utiliza una interfaz unificada, basada en estándares y extensible orientada a objetos. Proporciona un método estándar para interactuar con la información del administrador del sistema y la API WMI subyacente, utilizado principalmente por desarrolladores de aplicaciones de administración del sistema y administradores de sistemas para acceder y operar la información de administración del sistema.
WMI se puede utilizar para generar herramientas para organizar y administrar la información del sistema, lo que permite a los administradores del sistema monitorear las actividades del sistema más de cerca.
WMI proporciona un amplio conjunto de servicios de administración de sistemas integrados en el sistema operativo Microsoft Windows y ahora lo utilizan una gran cantidad de aplicaciones, servicios y dispositivos para brindar capacidades de administración integrales para operaciones de tecnología de la información y organizaciones de soporte de productos. El uso de sistemas de gestión basados en WMI brinda un entorno informático más confiable y una mayor confiabilidad del sistema, ahorrando así gastos empresariales.
La gran cantidad de especificaciones proporcionadas por WMI implementan las siguientes tareas de administración para muchas aplicaciones de alto nivel, como Microsoft Exchange, Microsoft SQL Server y Microsoft Internet Information Services (IIS).
1. Supervisar el rendimiento de la aplicación
2. Detectar cuellos de botella o fallos
3. Administrar y configurar aplicaciones
4. Consultar datos de la aplicación (mediante consultas y recorridos relacionales de objetos)
5. Realice operaciones de gestión locales o remotas sin problemas
A continuación utilizamos un ejemplo para ilustrar las potentes funciones de WMI. Tomando vb6 como columna:
Referencia "Biblioteca Microsoft WMI Scripting V1.1"
El código es el siguiente:
Option ExplicitDim WithEvents Sink As SWbemSinkDim j As Integer' function: use componentes wmi para obtener información de la computadora. Cada pequeña función se escribe por separado para que todos puedan verificarla. sConducir como StringDim sValue As StringDim dblSize As DoubleDim Obj As Variant Dim lIndex As Long Set owMInameSpace = GetObject("winmgmts:") 'Obtener información de la unidad en caso de error Reanudar NextSet ObjSet = owMInameSpace.InstancesOf("Win32_DiskDrive") para cada objeto en ObjSet List5. .Subtítulo & " - " & BytesToMegabytes(Obj.Size) & " GB"Next 'Obtener información detallada de cada unidad en caso de error Ir a ErrorHandler'Set oWMInameSpace = GetObject("winmgmts:")Set oLogicalDiskSet = oWMInameSpace.InstancesOf("Win32_LogicalDisk")Para cada oLogicalDisk en oLogicalDiskSet en caso de error Reanudar siguiente sDrive = oLogicalDisk.deviceid ListView1.ListItems.Add , , sDrive lIndex = ListView1.ListItems.Count sValue = oLogicalDisk.Description & "" ListView1.ListItems(lIndex).SubItems(1) = sValue sValue = oLogicalDisk.FileSystem & "" ListView1.ListItems(lIndex).SubItems(2) = sValue sValue = oLogicalDisk.VolumeName & "" ListView1.ListItems(lIndex).SubItems(3) = sValue sValue = oLogicalDisk.VolumeSerialNumber & "" ListView1.ListItems(lIndex).SubItems (4) = sValue sValue = oLogicalDisk.Size & "" If IsNumeric(sValue) ThendblSize = BytesToMegabytes(CDbl(sValue))sValue = CStr(dblSize) & " MB" Fin si ListView1.ListItems(lIndex).SubItems(5) = sValueNext CleanUp: Establecer oLogicalDisk = NothingSet oLogicalDiskSet = NothingSet oWMInameSpace = NothingExit Sub ErrorHandler:MsgBox "" & Err.Description GoTo CleanUp End Sub Private Sub Command1_Click()Descargar MeEnd Sub Private Function BytesToMegabytes(Bytes como doble) Como doble Dim dblAns como doble dblAns = (Bytes / 1024) / 1024 Bytes A Megabytes = Formato(dblAns, "###,###,##0.00")Finalizar función Subcomando privado2_Click()Dim oWMINameSpace como SWbemServicesDim SystemEstablecer como VariantDim System como VariantDim ObjEstablecer como VariantDim Obj como variante Establecer owMINameSpace = GetObject("winmgmts:" )'Sistema operativo Establecer SystemSet = owMINameSpace.InstancesOf("Win32_OperatingSystem") para cada sistema en SystemSet List1.AddItem System.Caption List1.AddItem System.Manufacturer List1.AddItem System.BuildType & "" 'Parece que List1.AddItem System.Version List1.AddItem no se puede tomar en Win9x System.SerialNumberNext'cpuSet ObjSet = owMINameSpace.InstancesOf("Win32_Processor") para cada objeto en ObjSet List2.AddItem Obj.Caption List2.AddItem Obj.currentclockspeed & " Mhz"Next End Sub Private Sub Command3_Click()Dim oWMINameSpace As SWbemServicesDim ObjSet As VariantDim Obj As VariantDim Adapter As Variant 'Conjunto de memoria oWMINameSpace = GetObject("winmgmts:")Set ObjSet = oWMINameSpace.InstancesOf("Win32_PhysicalMemory")Atenúe i como cadena para cada objeto en ObjSet List3.AddItem BytesToMegabytes(Obj.capacity) & " MB" & " Chip"Siguiente 'Tarjeta de red Conjunto de fregadero = Nuevo adaptador de conjunto SWbemSink = GetObject("winmgmts:")Adapter.InstancesOfAsync Sink, "Win32_NetworkAdapter" End Sub Private Sub Form_Load()j = 0End Sub Private Sub Sink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet) Adaptador atenuado como Variante'Obtener toda la información del adaptador Set Adapter = GetObject("winmgmts:Win32_NetworkAdapterConfiguration=" & j & "") List4.AddItem Adapter.Description Si IsNull(Adapter.MACAddress) Then List4.AddItem "Sin dirección MAC" List4.AddItem " " De lo contrario List4.AddItem "Mac:" y Adapter.MACAddress List4.AddItem ""Fin si j = j + 1End Sub
Este artículo se presenta aquí. Para obtener más información, puede consultar este artículo: http://technet.microsoft.com/en-us/library/ee198932.aspx.