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:
Posted in VBScript |

4 Comments to “VBScript - Acceder a variables del sistema (ExpandEnvironmentStrings)”

  1. ulysess Says:

    ¿Se podría conseguir por ejemplo el nombre del equipo con ASP.NET?

  2. lopezatienza Says:

    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.

  3. C#ristian Says:

    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;

  4. lopezatienza Says:

    Hola C#ristian.

    Ya te digo que ni tan siquiera lo había probado :P

    Gracias por aclararnos la duda.

    Un saludo.

Leave a Comment

RSS