【问题标题】:RunAs Prompt for credentialsRunAs 提示输入凭据
【发布时间】:2013-09-10 10:41:44
【问题描述】:

我正在尝试编写一个批处理脚本,该脚本将为任何给定的 Windows 服务(使用 explorer.exe 进行测试)为任何可以在运行时输入的给定用户执行 RunAs。我目前拥有的是这个。

set /p Var1="Domain = "

set /p Var2="Username = "

set /p Var3="Service to open= "

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

在命令行上,这似乎可以正常工作(使用编码值而不是变量),但在批处理文件中它似乎只是重复自身,没有打开指定的内容(它甚至不提示输入密码,所以我只能假设它甚至没有尝试)。知道它为什么会循环以及我能做些什么来阻止它吗?

干杯

【问题讨论】:

  • 是否出现任何错误?我认为您的问题可能是由于您没有将变量括在引号中(如果它们的值有空格,那么这是您的问题)

标签: batch-file cmd runas


【解决方案1】:

嗨@Gary Barnett,我不久前创造了类似的东西。

这是一个例子;

@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

注意:您必须以管理员身份运行批处理文件(右键单击 -> 以管理员身份运行),否则它将不起作用。

【讨论】:

    【解决方案2】:

    /seperate 不是来自RUNAS 的开关。所以,

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

    应该没问题。如果/seperate%Var3% 程序的参数,请使用:

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

    您还可以在脚本末尾添加PAUSE,以便在“调试”时检查结果。

    【讨论】:

      猜你喜欢
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 2016-04-25
      • 2018-02-14
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多