You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.0 KiB
Plaintext
95 lines
3.0 KiB
Plaintext
|
|
|
|
'Start of Script
|
|
'v1.2 March 2001
|
|
'Jeffery Hicks
|
|
'jhicks@quilogy.com http://www.quilogy.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)
|
|
bResult = False
|
|
i = 0
|
|
Do
|
|
Wscript.Sleep 100 'need to give time for window to open.
|
|
if WshShell.AppActivate(WinPath) Then'make sure we grab the right window to send password to
|
|
Wscript.Sleep 100 'need to give time for window to open.
|
|
bResult = True
|
|
|
|
End If
|
|
i = i+1
|
|
If i > 10 Then
|
|
Wscript.quit
|
|
End If
|
|
Loop Until bResult = True
|
|
WshShell.SendKeys sPass 'send the password to the waiting window.
|
|
|
|
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 quilogy\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF &" cscript vbrunas.vbs quilogy\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
|