Tareas de WMI: conexión al servicio WMI

Para obtener datos de WMI, ya sea en el equipo local o desde un equipo remoto, debe conectarse al servicio WMI mediante la conexión a un espacio de nombres específico. En la mayoría de los casos, use la conexión de moniker abreviada o la conexión de localizador. Para ver otros ejemplos, consulte TechNet ScriptCenter en https://www.microsoft.com/technet.

Las conexiones remotas requieren una configuración adecuada para Firewall de Windows y DCOM. Para más información, consulte Conexión a WMI en un equipo remoto y Conexión a través del Firewall de Windows. A partir de Windows Vista, el control de cuentas de usuario (UAC) puede afectar al acceso WMI. Para más información, consulte Control de cuentas de usuario y WMI.

Los ejemplos de script que se muestran en este tema obtienen datos solo del equipo local. Para más información sobre cómo usar el script para obtener datos de equipos remotos, consulte Conexión a WMI en un equipo remoto.

En el procedimiento siguiente se describe cómo ejecutar un script.

Para ejecutar un script

  1. Copie el código y guárdelo en un archivo con una extensión.vbs, como filename.vbs. Asegúrese de que el editor de texto no agregue una extensión.txt al archivo.
  2. Abra un símbolo del sistema y navegue hasta el directorio donde haya almacenado el archivo.
  3. Escriba cscript filename.vbs en el símbolo del sistema.
  4. Si no puede acceder a un registro de eventos, compruebe si se ejecuta desde un símbolo del sistema con privilegios elevados. Algunos registros de eventos, como el registro de eventos de seguridad, pueden estar protegidos mediante controles de acceso de usuario (UAC).

Nota

De forma predeterminada, cscript muestra la salida de un script en la ventana del símbolo del sistema. Dado que los scripts de WMI pueden generar un número elevado de salidas, es posible que le interese redirigir la salida a un archivo. Escriba cscript filename.vbs > outfile.txt en el símbolo del sistema para redirigir la salida del script filename.vbs a outfile.txt.

La tabla siguiente contiene ejemplos de script que se pueden usar para obtener varios tipos de datos del equipo local.

Cómo... Clases o métodos WMI
... conectarse a un equipo remoto mediante WMI Especifique una de las siguientes opciones como parte de la cadena de conexión del moniker:
  • Un nombre de equipo NetBIOS, como "atl-dc-01"
  • Un nombre de dominio completo, como "atl-dc-01.fabrikam.com"
  • Una dirección IPv4, como "192.168.1.1"
  • A partir de Windows Vista, puede especificar una dirección IPv6 si el equipo de destino y el equipo desde el que realiza la conexión ejecutan IPv6.
Para más información, consulte Conexión a WMI en un equipo remoto y Compatibilidad con IPv6 e IPv4 en WMI.
VB
strComputer = "atl-dc-01"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
strComputer = "atl-dc-01"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" | format-list -Property Name
... ejecutar un script WMI con credenciales alternativas

Use el método SWbemLocator.ConnectServer o IWbemLocator::ConnectServer en C++ e incluya el nombre de usuario y la contraseña adecuados. No se pueden cambiar las credenciales al conectarse al equipo local. Para más información, consulte Creación de un script WMI y Conexión a WMI en un equipo remoto.

VB
strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer (strComputer, "root\cimv2", "fabrikam\administrator", "password")
Set colProcessList = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
$StrComputer = "atl-dc-01"
$strCredentials = "FABRIKAM\administrator"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" -credential $strCredentials `
   -Impersonation Impersonate | format-list -Property Name

Tareas de WMI para scripts y aplicaciones

Ejemplos de aplicaciones de C++ de WMI

TechNet ScriptCenter

`