2012-03-06 225 views
1

我需要以管理员身份运行安装脚本。我试过几件事情,但他们没有工作使用runas命令运行脚本

runas /user:Administrator install.bat 

外壳要求输入密码,然后打开一个新的shell窗口,并关闭它马上不执行脚本

runas /user:Administrator "call install.bat" 

外壳询问输入密码,然后因错误而失败

Unable to run - call install.bat 
2: The system cannot find the file specified 

我不明白的是,如果我运行命令call install.bat没有runas部分,脚本运行。它需要管理员凭证但是预期的命令失败。

我有2个问题:

  • 如何运行脚本使用runas命令管理员?
  • 你能解释一下为什么下面的调用是不工作:runas /user:Administrator "call install.bat"

回答

2

使用cmd.exe这是您的车辆来解释.cmd.bat文件。

runas /user:Administrator "cmd.exe /K install.bat" 

runas /user:Administrator "cmd.exe /C install.bat" 

检查cmd.exe /?/K/C

注意:/C更可能是你想要的。您的评论后

侧面说明:runas/env选项:

/env    to use current environment instead of user's. 
+0

问题是它创建一个新的shell窗口,并清理当前环境(工作目录,自定义环境变量) – Sydney 2012-03-06 16:46:27

+0

@Sydney:就这样,这是要走的路。在准备好环境之后,你总是可以编写一个包装脚本来调用'install.bat'。除此之外还有'runas/env' ......但你甚至没有在你的问题中指出这个边界条件。 – 0xC0000022L 2012-03-06 16:48:57

+0

'/ env'解决了这个问题。 – Sydney 2012-03-07 13:13:00

0

批处理文件将被解释(CMD)执行。为了在特权模式下运行脚本,您需要具有提升特权的cmd。尝试使用cmd而不是呼叫。