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