VBScript: acceso a variables de sistema y ejecución de otros programas
Acceso a variables de sistema
VBScript proporciona acceso a las variables de sistema mediante el método ExpandEnvironmentStrings() de los objetos de tipo WScript.Shell.La manera de obtener el valor de una variable es:
'Obtener una variable de tipo "WScript.shell"
set ws=createobject("WScript.shell")
'Obtener el valor de la variable de sistema que nos interese
'mediante la función ExpandEnvironmentStrings()
variable=ws.ExpandEnvironmentStrings("COMPUTERNAME")
'Ahora ya podemos hacer lo que sea con ese valor
Variable | Descripción | Ejemplo |
COMMONPROGRAMFILES | Ubicación de la carpeta common program files | C:\Program files\Common Files |
COMPUTERNAME | Nombre del equipo | PC2 |
COMSPEC | Ruta completa hasta el actual cmd.exe | C:\Windows\system32\cmd.exe |
HOMEDRIVE | Disco en que está el perfil del usuario que ejecuta el script | C: |
HOMEPATH | Ubicación de la raíz | \ |
LOGONSERVER | Nombre del servidor que validó al usuario | \\DC1 |
NUMBER_OF_PROCESSORS | Numero de CPUs del equipo | |
OS | Nombre del S.O. | Window_NT |
PATH | Rutas en que busca por defecto | |
PATHEXT | Extensiones que reconoce como de ejecutables | .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS; |
PROCESSOR_ARCHITECTURE | Arquitectura de los procesadores | X86 |
SYSTEMDRIVE | Disco de sistema | C: |
SYSTEMROOT | Raíz de la instalación de Windows | C:\WINNT |
USERDOMAIN | Dominio del usuario | LASALLE |
USERNAME | Nombre del usuario | Steve Ballmer |
USERPROFILE | Ruta del perfil de usuario | D:\Documents and Settings\Steve Ballmer |
Ejecución de otros programas desde VBScript
Para ejecutar una aplicación en WSH hay que crear una instancia de WScript.Shell, y entonces usar run(). Por ejemplo, para hacer un script que añada un usuario que pasamos por parámetro a nuestro script altas.vbs:
dim oshell set oshell=createobject("WScript.shell") oshell.run "dsadd user "& Chr(34) & "cn=jana montana,cn=users,dc=lasalle,dc=local"& Chr(34) & " -pwd P@@ssw0rd" |
y en la OU users del dominio en cuestión aparecería el nombre de usuario en cuestión.
Chr(34) es la forma de escribir unas comillas que van dirigidas al parámetro de run() y no al VBScript. Lo que queremos que ejecute en realidad el script cuando lo llamamos como altas.vbs "jana montana" es:
dsadd user "cn=jana montana,cn=users,dc=lasalle,dc=local" -pwd P@@ssw0rd |
ya que sin las comillas, dsadd dará un error al detectar un espacio entre jana y montana.
También podemos usar variables de sistema al llamar a run(). El siguiente ejemplo se encarga de abrir con el notepad el fichero que pasemos por parámetro:
dim oshell set oshell=createobject("WScript.shell") oshell.run "%SystemRoot%\system32\notepad "& wscript.arguments(0) |
Parámetros adicionales para la función run():
Hasta ahora hemos tomado un objeto de tipo WScript.shell y hemos ejecutado run() pasándole como único argumento el nombre o ruta completa del programa que queríamos ejecutar. El método run() admite no obstante dos parámetros más, uno para controlar el comportamiento de la ventana en que se ejecutará el programa al que llamamos, y otro para controlar si el script debe esperar a que finalice el programa que acabamos de lanzar, o si puede seguir con la siguiente instrucción mientras se va ejecutando el programa que hemos lanzado.
winStyle puede tomar valores entre 0 y 10. En el siguiente artículo de microsoft hay una descripción muy extensa: http://technet.microsoft.com/en-us/library/ee156605.aspx
Integer | Window Style Description |
---|---|
0 | Hides the window and activates another window. |
1 | Activates and displays a window. If the window is minimized or |
2 | Activates the window and displays it as a minimized window. |
3 | Activates the window and displays it as a maximized window. |
4 | Displays a window in its most recent size and position. The active window remains active. |
5 | Activates the window and displays it in its current size and position. |
6 | Minimizes the specified window and activates the next top-level |
7 | Displays the window as a minimized window. The active window remains active. |
8 | Displays the window in its current state. The active window remains active. |
9 | Activates and displays the window. If the window is minimized or |
10 | Sets the show-state based on the state of the program that started the application. |
No comments:
Post a Comment