Tareas WMI: conectarse al servicio WMI

Para obtener datos de WMI, en el equipo local o desde un equipo remoto, debe conectarse al servicio WMI mediante la conexión a un espacio de nombresespecífico. En la mayoría de los casos, puede usar la conexión de moniker abreviada o la conexión del localizador . Para ver otros ejemplos, vea el ScriptCenter de TechNet 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, vea conectarse a WMI en un equipo remoto y conectarse a través de Firewall de Windows. A partir de Windows Vista, el control de cuentas de usuario (UAC) puede afectar al acceso a WMI. Para obtener más información, vea control de cuentas de usuario y WMI.

Los ejemplos de scripts que se muestran en este tema obtienen datos solo del equipo local. Para obtener más información acerca de 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 la 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 navegue hasta el directorio en el que guardó el archivo.
  3. Escriba cscript filename.vbs en el símbolo del sistema.
  4. Si no puede obtener acceso a un registro de eventos, compruebe si 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 de WMI pueden generar grandes cantidades de resultados, 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 de filename.vbs a outfile.txt.

En la tabla siguiente se enumeran ejemplos de scripts que se pueden usar para obtener distintos 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 como parte de la cadena de conexión de 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 está realizando la conexión ejecutan IPv6.
Para obtener más información, vea conectarse 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 de WMI en 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

ScriptCenter de TechNet

`