Mostrando las entradas con la etiqueta Scripting. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Scripting. Mostrar todas las entradas

martes, 26 de agosto de 2008

Path de ejecución en VBS

Bueno, en algunos scripts es necesario saber la ruta donde nuestro script se esta ejecutando, para realizar acciones adicionales en dicha ruta.

A continuación les dejo unos tips para averiguar las rutas de ejecución:

  • Path completo del script:
      path=WScript.ScriptFullName
      wscript.echo path

      Ejemplo del resultado: C:\Users\Desktop\path.vbs
  • Directorio de Ejecución:
    Opción 1:

      AbsPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "")
      wscript.echo abspath

      Ejemplo del resultado: C:\Users\Desktop\


    Opción 2:

      Set wshShell = CreateObject("Wscript.Shell")
      WScript.Echo WshShell.CurrentDirectory

      Ejemplo del resultado: C:\Users\Desktop

    Opción 3:

      Set fso = WScript.CreateObject("Scripting.FileSystemObject")
      wscript.echo fso.GetAbsolutePathName(".")

      Ejemplo del resultado: C:\Users\Desktop



domingo, 3 de agosto de 2008

Contar la cantidad de usuarios logueados en una máquina

Este script es muy útil para validar la cantidad de usuarios que estan logueados en un momento dado sobre un servidor.

Ayuda mucho cuando necesitamso saber la cantidad de usuarios que un servidor de Terminal Server nos esta soportando.

'-------------------- ITPROSBOGOTACOLOMBIA ----------------------
'------------------- EL CHANGO PROGRAMADOR ---------------------
'------------------- CONTAR USUARIO LOGUEADOS ---------------------
strComputer = "."
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSessions = objWMI.ExecQuery ("Select * from Win32_LogonSession Where LogonType = 10")
If colSessions.Count = 0 Then
Wscript.Echo "No interactive users found"
Else
i=0
For Each objSession in colSessions
Set colList = objWMI.ExecQuery("Associators of " & "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " & _
"Where AssocClass=Win32_LoggedOnUser Role=Dependent" )
For Each objItem in colList
i=i+1
Next
Next
End If
Wscript.Echo "Usuarios Logueados: "&i

Script para agregar ruta al path

Este Script esta diseñado para modificar la llave de registro correspondiente al path, lo primero que hace es leer el valor actual y guardarlo en una variable, luego elimina la llave actual y crea una nueva con la modificación requerida

'-------------------- ITPROSBOGOTACOLOMBIA ----------------------
'------------------- EL CHANGO RPROGRAMADOR ---------------------
'-------------------- AGREGAR RUTA AL PATH ---------------------


'leer llave de registro y almacenar en la variable strValue
Const HKEY_LOCAL_MACHINE = &H80000002
'El script se ejecutara en la máquina local
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&strComputer&"\root\default:StdRegProv")
'Llave correspondiente al path
strKeyPath = "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
strValueName = "Path"
'Captura del valor actual
oReg.GetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'Borrar valor de la llave de registr
oReg.DeleteValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName
'Crear path actualizado
addToPath = inputbox ("Ingrese la ruta a agregar al path: ", "El Chango Programador - ITPBC")
oReg.SetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue &";"&addToPath