2014-08-28 154 views
0

我正在尝试开发一个简单的脚本,可以运行第二个脚本作为机器的本地管理员。作为第一个剧本,我目前正在努力:使用RUNAS使用本地管理员帐户运行具有提升权限的第二批处理文件

set name=%computername% 
runas /noprofile /user:%name%\Administrator "cmd.exe /c %cd%bg2.2.bat"  

当我运行该脚本,它似乎永远不会运行第二个脚本,它位于同一目录中。第二个脚本仅用于复制文件。

del "C:\Windows\obh_logo.bmp" 
copy "%cd%obh_logo.bmp C:\Windows\obh_logo.bmp" 

当第一个脚本运行提示我输入管理员密码作为预期,一旦我进入它,第二个命令提示符似乎闪烁屏幕然后消失的。它永远不会运行第二个脚本。什么似乎是这不起作用的原因?

回答

0

%cd%可能不会地步,你想这样做,(只是测试它,当然命令之前调用的变量被替换,并实际上指向第一个脚本目录,但问题在仍然存在第二个脚本)
runas将您正在启动的cmd.exe实例的工作目录更改为C:\ Windows \ system32。
将其替换为%~dp0,它产生当前批处理文件的驱动器和路径。

但是!您的脚本不会运行第二个提升的文件,只是在Administrator帐户下,这是不一样的。手动确认始终是必需的,请参阅here以了解在脚本中请求提升的可能方式。

我现在假设缺少的权利是实际问题,请在第二个脚本中添加一条pause语句来观看它,或者使用cmd /k来调用它,以便控制台不关闭。

相关问题