VBScript - Acceder a variables del sistema (ExpandEnvironmentStrings)
Written by lopezatienza on 1 Marzo 2010 – 14:10 -Hola a todos.
En este artículo voy a hablar del acceso a variables del sistema desde VBScript, usando para ello un objeto de tipo WScript.Shell, y accediendo a su método ExpandEnvironmentStrings().
Un ejemplo sencillo para obtener el nombre de usuario actual sería:
Set WshShell = CreateObject("WScript.Shell")
'Get Local User
Dim localuser
localuser = WshShell.ExpandEnvironmentStrings("%USERNAME%")
Wscript.Echo "Username: " & localuser
A continuación os muestro las variables del sistema a las que podemos acceder:
| Variable | Description | Example |
|---|---|---|
| COMMONPROGRAMFILES | Ubicación de la carpeta common program files | C:\Program Files\Common Files |
| COMPUTERNAME | Nombre del equipo | ROUTER |
| 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 | \Users\toNy |
| LOGONSERVER | Nombre del servidor que validó al usuario | \\ROUTER |
| NUMBER_OF_PROCESSORS | Numero de CPUs del equipo | 4 |
| OS | Nombre del S.O. | Window_NT |
| PATH | Rutas en que busca por defecto | C:\Windows\System32; C:\Windows; C:\Windows\System32\Wbem |
| PATHEXT | Extensiones que reconoce como de ejecutables | .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS |
| PROCESSOR_ARCHITECTURE | Arquitectura de los procesadores | AMD64 |
| SYSTEMDRIVE | Disco de sistema | C: |
| SYSTEMROOT | Raíz de la instalación de Windows | C:\Windows |
| USERDOMAIN | Dominio del usuario | ROUTER |
| USERNAME | Nombre del usuario | toNy |
| USERPROFILE | Ruta del perfil de usuario | C:\Users\toNy |
Os dejo un script donde se muestran todas estas variables.
Un saludo.
Descargar script
pass: lopezatienza.es
Tags: VBScript
Posted in VBScript |

Marzo 2nd, 2010 at 11:45
¿Se podría conseguir por ejemplo el nombre del equipo con ASP.NET?
Marzo 2nd, 2010 at 19:28
Hola ulysess.
Buscando en un código que tenía en Visual C#, creo que funcionaba de la siguiente manera:
System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostByName(Request.UserHostAddress);
Pruebalo y me cuentas.
Un saludo.
Abril 14th, 2010 at 16:17
Con eso último solo muestra la IP y no el nombre del equipo. Para mostrar el nombre del equipo se puede hacer así:
string ip = Request.ServerVariables[”REMOTE_HOST”];//obtener la ip del cliente.
System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostByAddress(ip);//obtiene el nombre por la IP.
string nombreEquipo = hostEntry.HostName;
Abril 15th, 2010 at 7:47
Hola C#ristian.
Ya te digo que ni tan siquiera lo había probado
Gracias por aclararnos la duda.
Un saludo.