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 localizador . Para obtener otros ejemplos, consulte TechNet ScriptCenter en https://www.microsoft.com/technet.

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

Los ejemplos de script que se muestran en este tema solo obtienen datos del equipo local. Para obtener 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 agrega una extensión .txt al archivo.
  2. Abra una ventana del símbolo del sistema y vaya al directorio donde guardó 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 está ejecutando desde un símbolo del sistema con privilegios elevados. Algunos registros de eventos, como el registro de eventos de seguridad, pueden estar protegidos por 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 WMI pueden producir grandes cantidades de salida, es posible que desee redirigir la salida a un archivo. Escriba cscript filename.vbs outfile.txt> en el símbolo del sistema para redirigir la salida del script defilename.vbs a outfile.txt.

En la tabla siguiente se enumeran 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 obtener 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
... ¿Ejecuta 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 obtener más información, vea Crear un script WMI y conectarse 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

`