Detección de perfiles DMTF a través del recorrido de asociación
Un componente clave de la infraestructura de Instrumental de administración de Windows (WMI) es un modelo orientado a objetos de las entidades administrables en un sistema. El modelo se ajusta a un estándar mantenido por el Grupo de tareas de administración de escritorio (DMTF) y se conoce como Common Information Model (CIM). Algunas clases del modelo, como CIM_DataFile o Win32_Process, corresponden directamente a entidades administrables. Otras clases del modelo, como Win32_SystemServices, representan relaciones entre entidades administrables. Estas clases de modelado de relaciones se conocen como clases association.
Con el lenguaje de consulta específico de WMI, WQL, puede recuperar instancias de clases que representan entidades administrables o instancias de clases Association. Pero WQL es específico de la implementación. Solo funciona con la implementación de Windows del estándar DMTF (WMI). Además, la sintaxis WQL para recuperar clases association es bastante complicada.
La infraestructura de Administración remota de Windows (WinRM) proporciona una excelente manera de aprovechar la funcionalidad de WMI. Las versiones anteriores de WinRM tenían que usar WQL para recuperar instancias de clases association. WinRM 2.0 incluye una nueva característica conocida como detección de perfiles DMTF a través del recorrido de asociación. El recorrido de asociación permite a un usuario de WinRM recuperar instancias de clases association mediante un mecanismo de filtrado estándar, el dialecto AssociationFilter, definido en la especificación de enlace CIM de DMTF. Para obtener más información sobre el recorrido de asociación, consulte la especificación de enlace CIM de WS-Management (https://www.dmtf.org/standards/wsman).
La utilidad winrm proporciona un mecanismo sencillo para recorrer la asociación adecuada y recuperar un perfil de dispositivo.
La utilidad winrm ahora admite un dialecto para la solicitud de asociación. El URI o el alias se pueden especificar mediante la utilidad winrm.
Alias | URI |
---|---|
correlación | https://www.dmtf.org/sites/default/files/standards/documents/DSP0227_1.0.0.pdf |
La utilidad winrm puede recuperar instancias de clase de asociación WMI de una instancia de origen determinada. El siguiente comando muestra cómo usar la utilidad winrm para recuperar instancias de Win32_Service clases de asociación. El modificador "-associations" debe usarse para devolver clases de asociación.
winrm enumerate wmicimv2/* -dialect:association -associations -filter:{object=win32_service?name=winrm;resultclassname=win32_dependentservice;role=dependent}
El siguiente fragmento de código basado en texto es la salida del comando anterior:
Win32_DependentService
Antecedent
Address = https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters
ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
SelectorSet
Selector: Name = RpcSs
Dependent
Address = https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters
ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
SelectorSet
Selector: Name = WinRM
TypeOfDependency = null
Win32_DependentService
Antecedent
Address = https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters
ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_SystemDriver
SelectorSet
Selector: Name = HTTP
Dependent
Address = https://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters
ResourceURI = http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
SelectorSet
Selector: Name = WinRM
TypeOfDependency = null
La utilidad winrm puede recuperar instancias de clase WMI asociadas a una instancia de origen determinada. El siguiente comando muestra cómo usar la utilidad winrm para recuperar instancias de Win32_Service clases asociadas.
winrm enumerate wmicimv2/* -dialect:association -filter:{object=win32_service?name=winrm;associationclassname=win32_dependentservice;resultclassname=win32_service;resultrole=antecedent;role=dependent}
El siguiente fragmento de código basado en texto es la salida del comando anterior:
Win32_Service
AcceptPause = false
AcceptStop = false
Caption = Remote Procedure Call (RPC)
CheckPoint = 0
CreationClassName = Win32_Service
Description = The RPCSS service is the Service Control Manager for COM and DCOM servers. It performs object activations requests, object exporter resolutions and distributed garbage collection for COM and DCOM servers. If this service is stopped or disabled, programs using COM or DCOM will not function properly. It is strongly recommended that you have the RPCSS service running DesktopInteract = false
DisplayName = Remote Procedure Call (RPC)
ErrorControl = Normal
ExitCode = 0
InstallDate = null
Name = RpcSs
PathName = C:\Windows\system32\svchost.exe -k rpcss
ProcessId = 716
ServiceSpecificExitCode = 0
ServiceType = Share Process
Started = true
StartMode = Auto
StartName = NT AUTHORITY\NetworkService
State = Running
Status = OK
SystemCreationClassName = Win32_ComputerSystem
SystemName = myComputer
TagId = 0
WaitHint = 0