Compartir a través de


about_WMI_Cmdlets

Descripción breve

Proporciona información adicional sobre Instrumental de administración de Windows (WMI) y Windows PowerShell.

Descripción larga

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 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 corren a cargo del Grupo de trabajo de administración distribuida (DMTF). Puede usar WMI para administrar equipos locales y remotos. Por ejemplo, puede usar WMI para hacer lo siguiente:

  • Inicie un proceso en un equipo remoto.
  • Reinicie un equipo de forma remota.
  • Obtenga una lista de las aplicaciones instaladas en un equipo local o remoto.
  • Consulte 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 a través de un conjunto de cmdlets que están disponibles en Windows PowerShell de forma predeterminada. Puede usar estos cmdlets para completar las tareas de un extremo a otro necesarias para administrar equipos locales y remotos.

Se incluyen los siguientes cmdlets de WMI.

Cmdlet Descripción
Get-WmiObject Obtiene instancias de clases o información de WMI.
acerca de las clases disponibles.
Invoke-WmiMethod Llama a los métodos de WMI.
Register-WmiEvent Se suscribe a un evento WMI.
Remove-WmiObject Elimina las clases y instancias de WMI.
Set-WmiInstance Crea o modifica instancias de clases WMI.

COMANDOS DE EJEMPLO

El siguiente comando muestra la información del BIOS para el equipo local.

C:\PS> get-wmiobject win32_bios | format-list *

El siguiente comando muestra información sobre el servicio WinRM para tres equipos remotos.

$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03

El siguiente comando más complejo sale de todas las instancias de un programa.

C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
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, es la funcionalidad de comunicación remota que hace que WMI sea una herramienta administrativa eficaz. WMI usa el modelo de objetos de componente distribuido (DCOM) de Microsoft para conectarse a sistemas y administrarlos. Es posible que tenga que configurar algunos sistemas para permitir 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 TIPOS WMI

Windows PowerShell incluye aceleradores de tipos WMI. Estos aceleradores de tipos WMI (métodos abreviados) permiten un acceso más directo a objetos WMI que un enfoque de acelerador que no de tipo permitiría.

Los siguientes aceleradores de tipos se admiten con WMI:

[WMISEARCHER] - Acceso directo para buscar objetos WMI.

[WMICLASS] : acceso directo para acceder a las propiedades y métodos estáticos de una clase.

[WMI] : un acceso directo para obtener una sola instancia de una clase.

[WMISEARCHER] es un acelerador de tipos para managementObjectSearcher. Puede tomar un constructor de cadena para crear un buscador en el que pueda realizar una acción GET().

Por ejemplo:

PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

count  __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 tipos para ManagementClass. Tiene un constructor de cadena que toma una ruta de acceso WMI local o absoluta a una clase WMI y devuelve un objeto 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 tipos para ManagementObject. Tiene un constructor de cadena que toma una ruta de acceso WMI local o absoluta a una instancia de WMI y devuelve un objeto 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

Los siguientes problemas son los problemas más comunes que pueden producirse al intentar conectarse a un equipo remoto.

Problema 1: El equipo remoto no está en línea.

Si un equipo está sin conexión, no podrá conectarse a él mediante WMI. Puede aparecer el siguiente mensaje de error:

Remote server machine does not exist or is unavailable

Si recibe este mensaje de error, compruebe que 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 usar WMI de forma remota, debe tener derechos de administrador local en el equipo remoto. Si no lo hace, se denegará el acceso a ese equipo.

Para comprobar la seguridad del espacio de nombres:

  1. Haga clic en Inicio, haga clic con el botón derecho en Mi equipo y, a continuación, haga clic en Administrar.
  2. En Administración de equipos, expanda Servicios y aplicaciones, haga clic con el botón derecho en Control WMI y, a continuación, haga clic en Propiedades.
  3. En el cuadro de diálogo Propiedades de Control WMIP , haga clic en la pestaña Seguridad .

Problema 3: Un firewall bloquea el acceso al equipo remoto.

WMI usa los protocolos DCOM (Distributed COM) y RPC (llamada a procedimiento remoto) para atravesar la red. De forma predeterminada, muchos firewalls bloquean el tráfico DCOM y RPC. Si el firewall bloquea estos protocolos, se producirá un error en la conexión. Por ejemplo, Firewall de Windows en Microsoft Windows XP Service Pack 2 está configurado para bloquear automáticamente todo el tráfico de red no solicitado, incluido DCOM y WMI. En su configuración predeterminada, Firewall de Windows rechaza una solicitud WMI entrante y recibe el siguiente mensaje de error:

Remote server machine does not exist or is unavailable

Consulte también