سؤال

I'm trying to write a batch script that will do a RunAs for any given windows service (using explorer.exe to test) for any given user that can be input at time of running. What I currently have is this.

set /p Var1="Domain = "

set /p Var2="Username = "

set /p Var3="Service to open= "

RunAs /user:%Var1%\%Var2% "%Var3%" /seperate

On command line, this seems to work ok (with coded values instead of variables) but in a batch file it just seems to repeat itself, without opening what it's been specified (it doesn't even prompt for a password, so I can only presume its not even trying). Any idea why it's looping and what I can do to stop it?

Cheers

هل كانت مفيدة؟

المحلول

Hi @Gary Barnett i created something similar to this awhile back.

Here is an example;

@ECHO OFF
set /P Domainn=Enter Domain Name: 
set /P Usern=Enter Username: 
set userunas=runas /user:%domainn%\%usern% "

:optionmenu
CLS
ECHO 1 - Control.exe
ECHO 2 - MSinfo32.exe
ECHO 3 - Explorer.exe    
ECHO q - Quit
ECHO.
set /P optionnum=Enter command number: 
GOTO option%optionnum%

:option1
%userunas%control.exe
goto optionmenu

:option2
%userunas% %commonprogramfiles%\micros~1\MSInfo\msinfo32.exe"
goto optionmenu

:option3
%userunas%explorer.exe
goto optionmenu

:optionq
EXIT

Note: You must run the batch file as Administrator (right-click -> Run as Administrator) or it wont work.

نصائح أخرى

/seperate is not a switch from RUNAS. So,

RUNAS /USER:"%Var1%\%Var2%" "%Var3%"

should go fine. If /seperate is a parameter to %Var3% program, use:

RUNAS /USER:"%Var1%\%Var2%" "%Var3% /seperate"

You may also add PAUSE at end of script so you can check results, while "debugging".

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top