Mike
Fri Feb 18 17:34:13 CST 2005
'VBRUNAS.VBS
'v1.3 March 2003
'Jeffery Hicks
'jhicks@jdhitsolutions.com
http://www.jdhitsolutions.com
'USAGE: cscript|wscript VBRUNAS.VBS Username Password Command
'DESC: A RUNAS replacement to take password at a command prompt.
'NOTES: This is meant to be used for local access. If you want to run a
command
'across the network as another user, you must add the /NETONLY switch to
the RUNAS
'command.
'
*********************************************************************************
' * THIS PROGRAM IS OFFERED AS IS AND MAY BE FREELY MODIFIED OR ALTERED
AS *
' * NECESSARY TO MEET YOUR NEEDS. THE AUTHOR MAKES NO GUARANTEES OR
WARRANTIES, *
' * EXPRESS, IMPLIED OR OF ANY OTHER KIND TO THIS CODE OR ANY USER
MODIFICATIONS. *
' * DO NOT USE IN A PRODUCTION ENVIRONMENT UNTIL YOU HAVE TESTED IN A
SECURED LAB *
' * ENVIRONMENT. USE AT YOUR OWN RISK.
*
'
*********************************************************************************
On Error Resume Next
dim WshShell,oArgs,FSO
set oArgs=wscript.Arguments
if InStr(oArgs(0),"?")<>0 then
wscript.echo VBCRLF & "? HELP ?" & VBCRLF
Usage
end if
if oArgs.Count <3 then
wscript.echo VBCRLF & "! Usage Error !" & VBCRLF
Usage
end if
sUser=oArgs(0)
sPass=oArgs(1)&VBCRLF
sCmd=oArgs(2)
set WshShell = CreateObject("WScript.Shell")
set WshEnv = WshShell.Environment("Process")
WinPath = WshEnv("SystemRoot")&"\System32\runas.exe"
set FSO = CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(winpath) then
'wscript.echo winpath & " " & "verified"
else
wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " &
winpath &"." & VBCRLF & "You must be running Windows 2000 for this
script to work."
set WshShell=Nothing
set WshEnv=Nothing
set oArgs=Nothing
set FSO=Nothing
wscript.quit
end if
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34),
2, FALSE)
'new code from Nick Staff (nstaff@angelsin.com) to loop until window opens.
Do until WshShell.AppActivate (WinPath)
Wscript.Sleep 5
WshShell.AppActivate (WinPath)
loop
WshShell.SendKeys sPass
set WshShell=Nothing
set oArgs=Nothing
set WshEnv=Nothing
set FSO=Nothing
wscript.quit
'************************
'* Usage Subroutine *
'************************
Sub Usage()
On Error Resume Next
msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" &
VBCRLF & VBCRLF & "You should use the full path where necessary and put
long file names or commands" & VBCRLF & "with parameters in quotes" &
VBCRLF & VBCRLF &"For example:" & VBCRLF &" cscript vbrunas.vbs
jdhitsolutions\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF
&" cscript vbrunas.vbs jdhitsolutions\jhicks luckydog " & CHR(34)
&"e:\program files\scripts\admin.vbs 1stParameter 2ndParameter" &
CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript vbrunas.vbs /?|-? will
display this message."
wscript.echo msg
wscript.quit
end sub
JCO wrote:
> Wondering if anyone could help me out with the following:
>
> On NT, W2K and XP client machines I need a way to run an exe, through the
> login script, with admin priveleges. I've looked into "runas" and "su",
> however, they're not the best options as I run into problems with
> compatability with NT or the fact that one has to insert the password when
> prompted. I've also looked into "Admin Script Editor" and its packager
> which lets one create and .exe to be run with alterante credentials.
>
> Anyone know if this is possible through VBScript using impersonation?
>
> Any enlightment into this matter would be appreciated.
>
> Thanks!
> JCOliveira
>
>