Las tareas de WMI para la administración de escritorio pueden ejercer el control y obtener datos de un escritorio remoto o de un equipo local. Por ejemplo, puede determinar si el protector de pantalla de un equipo local requiere una contraseña. WMI también le ofrece la capacidad de apagar un equipo remoto. Para obtener otros ejemplos, consulte TechNet ScriptCenter en https://www.microsoft.com/technet.
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
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.
Abra una ventana del símbolo del sistema y vaya al directorio donde guardó el archivo.
Escriba nombredearchivo.vbs de cscript en el símbolo del sistema.
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 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 generar 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 de filename.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 puedo...
Clases o métodos WMI
... determinar si un equipo remoto se ha arrancado en modo seguro con estado de red?
Use la clase Win32_ComputerSystem y compruebe el valor de la propiedad primaryOwnerName de.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSettings = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
For Each objComputer in colSettings
Wscript.Echo "System Name: " & objComputer.Name
Wscript.Echo "Registered owner: " & objComputer.PrimaryOwnerName
Next
... determinar si un protector de pantalla del equipo requiere una contraseña?
Utilice la clase Win32_Desktop y compruebe el valor de la propiedad ScreenSaverSecure.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Desktop")
For Each objItem in colItems
Wscript.Echo "Screen Saver Secure: " & objItem.ScreenSaverSecure
Next
... compruebe que se ha establecido una pantalla de equipo para 800 píxeles en 600 píxeles?
Use la clase Win32_DesktopMonitor y compruebe los valores de las propiedades ScreenHeight y ScreenWidth.
VB
strComputer = "."
Set objWMIService = GetObject(_
"winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DesktopMonitor")
For Each objItem in colItems
Wscript.Echo "Screen Height: " & objItem.ScreenHeight
Wscript.Echo "Screen Width: " & objItem.ScreenWidth
Next
PowerShell
<# Get desktop information #>
$computer = "." $desktops = Get-WmiObject -Class Win32_DesktopMonitor $hostname = nombre de host
<# Mostrar detalles del escritorio #> "Hay {0} Escritorios en {1} de la siguiente manera: " -f $desktops. Count, $hostname "" $i=1 # recuento de escritorios en este sistema
strComputer = "atl-dc-01"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
ObjOperatingSystem.Shutdown(1)
Next