Ir al contenido
- CIM (Common Information Model) es un estándar abierto creado por la organización DMTF orientado a proveer una definición común para el intercambio de información entre sistemas, redes, aplicaciones y servicios.
- WMI (Windows Management Instrumentation) es la implementación de Microsoft de CIM, con la que se proveen métodos para consultar y modificar la configuración de una máquina Windows.
- CIM vs WMI
- La respuesta simple es que puede usar los cmdlets de Instrumental de administración de Windows (WMI) o del Modelo de información común (CIM), pero existen algunas ventajas significativas al usar los cmdlets de CIM más nuevos.
- CIM es un estándar abierto de Distributed Management Task Force (DMTF), con la última versión introducida en enero de 2016. CIM proporciona una definición común de información de gestión para sistemas, redes, aplicaciones y servicios, y permite extensiones de proveedores. WMI es la implementación de Microsoft de CIM para la plataforma Windows.
- Get-WmiObject es uno de los cmdlets originales de PowerShell. (Como prueba rápida, ¿cuántos de los 137 cmdlets originales puede nombrar?). Se mejoró en PowerShell 2.0 cuando se introdujeron los otros cmdlets de WMI. En PowerShell 1.0, Get-WmiObject era el único cmdlet con la opción de acceder a otro sistema.
- El gran inconveniente de los cmdlets de WMI es que utilizan DCOM para acceder a máquinas remotas. DCOM no es compatible con firewall, puede ser bloqueado por equipos de red y da algunos errores misteriosos cuando las cosas van mal.
- Los cmdlets CIM aparecieron en PowerShell 3.0 como parte de la nueva API para trabajar con clases CIM, que se basa más en estándares.
- La diferencia entre los cmdlets de WMI y los cmdlets de CIM es que los cmdlets de CIM usan WSMAN (un tipo de comunicación de servicio web) y WMI utiliza DCOM para conectarse a máquinas remotas. La mayoría de los sistemas modernos de Windows son compatibles con WSMan, pero si necesita ponerse en contacto con servidores más antiguos, es posible que solo respondan a DCOM, por lo que Get-CimInstance puede fallar.
- Invoke-WmiMethod tiene la peculiaridad de que si proporciona los parámetros del método en el orden especificado por la documentación de WMI, a veces obtendrá un mensaje de error.
- Invoke-CimMethod requiere una tabla hash de pares clave-valor donde Invoke-WmiMethod solo toma los valores de los parámetros. Invoke-CimMethod requiere escribir un poco más.