TEMA about_WMI_cmdlets DESCRIPCIÓN BREVE Proporciona información adicional sobre Instrumental de administración de Windows (WMI) y Windows PowerShell. DESCRIPCIÓN DETALLADA En este tema se proporciona información sobre la tecnología WMI, los cmdlets de WMI para Windows PowerShell, la comunicación remota basada en WMI, los aceleradores de WMI y la solución de problemas de WMI. También se proporcionan vínculos a información adicional sobre WMI. Acerca de WMI Instrumental de administración de Windows (WMI) es la implementación de Microsoft de Web-Based Enterprise Management (WBEM), que es una iniciativa industrial para desarrollar una tecnología estándar que permita el acceso a información de administración en un entorno empresarial. WMI utiliza la norma de la industria CIM (Modelo de información común) para representar sistemas, aplicaciones, redes, dispositivos y otros componentes administrados. El desarrollo y el mantenimiento de la norma CIM corre a cargo del Grupo de trabajo de administración distribuida (DMTF). Puede utilizar WMI para administrar equipos tanto locales como remotos. Por ejemplo, puede utilizar WMI para realizar las acciones siguientes: -- Iniciar un proceso en un equipo remoto. -- Reiniciar un equipo de forma remota. -- Obtener una lista de las aplicaciones instaladas en un equipo local o remoto. -- Consultar los registros de eventos de Windows en un equipo local o remoto. Cmdlets de WMI para Windows PowerShell Windows PowerShell implementa la funcionalidad de WMI mediante un conjunto de cmdlets que están disponibles en Windows PowerShell de forma predeterminada. Puede utilizar estos cmdlets para completar las tareas de extremo a extremo necesarias para administrar equipos locales y remotos. Se incluyen los cmdlets de WMI siguientes. Cmdlet Descripción ------------------ ---------------------------------------------- Get-WmiObject Obtiene instancias de las clases de WMI o información sobre las clases disponibles. Invoke-WmiMethod Llama a métodos de WMI. Register-WmiEvent Suscribe para un evento de WMI. Remove-WmiObject Elimina instancias y clases de WMI. Set-WmiInstance Crea o modifica instancias de clases de WMI. Comandos de ejemplo El comando siguiente muestra la información del BIOS para el equipo local. C:\PS> get-wmiobject win32_bios | format-list * El comando siguiente muestra información acerca del servicio WinRM para tres equipos remotos. C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03 El comando siguiente, que es más complejo, produce la salida de todas las instancias de un programa. C:\PS> notepad.exe C:\PS> $np = get-wmiobject -query "select * from win32 _process where name='notepad.exe'" C:\PS> $np | remove-wmiobject Comunicación remota basada en WMI Aunque la capacidad de administrar un sistema local a través de WMI es útil, la funcionalidad de comunicación remota es la que hace de WMI una herramienta administrativa eficaz. WMI utiliza el Modelo de objetos componentes distribuido (DCOM) de Microsoft para la conexión con sistemas y la administración de los mismos. Es posible que tenga que configurar algunos sistemas para permitir las conexiones DCOM. La configuración del firewall y los permisos DCOM bloqueados pueden bloquear la capacidad de WMI para administrar sistemas de forma remota. Aceleradores de tipo de WMI Windows PowerShell incluye aceleradores de tipo de WMI. Estos aceleradores (accesos directos) permiten un acceso directo a los objetos de WMI superior al que permitiría un enfoque de aceleradores que no sean de tipo. Los aceleradores de tipo siguientes se admiten con WMI: [WMISEARCHER]: Acceso directo para buscar objetos de WMI. [WMICLASS]: Acceso directo para obtener acceso a los métodos y propiedades estáticos de una clase. [WMI]: Acceso directo para obtener una única instancia de una clase. [WMISEARCHER] es un acelerador de tipo para ManagementObjectSearcher. Puede tomar un constructor de cadena para crear un buscador en el que se pueda realizar a continuación GET(). Por ejemplo: PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000' PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto handlecount __PATH name ----------- ------ ---- 1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" powershell... 1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe 1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe 1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE 1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe 2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe [WMICLASS] es un acelerador de tipo para ManagementClass. Tiene un constructor de cadena que toma una ruta de acceso local o absoluta de WMI a una clase de WMI y devuelve un objeto que está enlazado a esa clase. Por ejemplo: PS> $c = [WMICLASS]"root\cimv2:WIn32_Process" PS> $c |fl * Name : Win32_Process __GENUS : 1 __CLASS : Win32_Process __SUPERCLASS : CIM_Process __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_Process __PROPERTY_COUNT : 45 __DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement} __SERVER : SERVER01 __NAMESPACE : ROOT\cimv2 __PATH : \\SERVER01\ROOT\cimv2:Win32_Process [WMI] es un acelerador de tipo para ManagementObject. Tiene un constructor de cadena que toma una ruta de acceso local o absoluta de WMI a una instancia de WMI y devuelve un objeto que está enlazado a esa instancia. Por ejemplo: PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"' PS> $p.Name OUTLOOK.EXE Solución de problemas de WMI A continuación se enumeran los problemas más comunes que se pueden producir al intentar la conexión con un equipo remoto. Problema 1: El equipo remoto no está en línea. Si un equipo no está en línea, no se podrá establecer conexión con él utilizando WMI. Puede recibir el mensaje de error siguiente: "El equipo del servidor remoto no existe o no está disponible" Si recibe este mensaje de error, compruebe si el equipo está en línea. Intente hacer ping al equipo remoto. Problema 2: No tiene derechos de administrador local en el equipo remoto. Para utilizar WMI de forma remota, debe tener derechos de administrador local en el equipo remoto. Si no los tiene, se denegará el acceso a ese equipo. Para comprobar la seguridad de espacio de nombres: a. Haga clic en Inicio, haga clic con el botón secundario en Mi PC y, a continuación, haga clic en Administrar. b. En Administración del equipo, expanda Servicios y Aplicaciones, haga clic con el botón secundario en Control WMI y, a continuación, haga clic en Propiedades. c. En el cuadro de diálogo Propiedades de Control WMI, haga clic en la ficha Seguridad. Problema 3: Un firewall está bloqueando el acceso al equipo remoto. WMI utiliza los protocolos DCOM (COM distribuido) y RPC (Llamada a procedimiento remoto) para recorrer la red. De forma predeterminada, numerosos firewalls bloquean el tráfico DCOM y RPC. Si su firewall está bloqueando estos protocolos, se producirá un error en la conexión. Por ejemplo, Firewall de Windows en Microsoft Windows XP Service Pack 2 se configura para bloquear automáticamente todo el tráfico de red no solicitado, incluidos DCOM y WMI. En su configuración predeterminada, Firewall de Windows rechaza una solicitud de WMI de entrada y se recibe el mensaje de error siguiente: "El equipo del servidor remoto no existe o no está disponible" Más información sobre WMI Para obtener más información sobre WMI, vea los temas siguientes en MSDN Library (Microsoft Developer Network): "Acerca de WMI" (puede estar en inglés) https://go.microsoft.com/fwlink/?LinkId=142212 "Solución de problemas de WMI" (puede estar en inglés) https://go.microsoft.com/fwlink/?LinkId=142213 Y vea "Secrets of Windows Management Instrumentation - Troubleshooting and Tips" en Script Center de Microsoft TechNet: https://go.microsoft.com/fwlink/?LinkId=142214 VEA TAMBIÉN Versión en pantalla: https://go.microsoft.com/fwlink/?LinkId=142219 Get-WmiObject Invoke-WmiMethod Register-WmiEvent Remove-WmiObject Set-WmiInstance