使用RUNAS使用本地管理员帐户运行具有提升权限的第二个批处理文件

时间:2014-08-28 18:32:34

标签: windows batch-file 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"

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

1 个答案:

答案 0 :(得分:0)

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

但是!您的脚本不会运行第二个提升的文件,只是在管理员帐户下,这是不一样的。手动确认始终是必要的,有关在脚本中请求提升的可能方法,请参阅here

我现在假设缺少权限是实际问题,在第二个脚本中添加pause语句进行观看,或者使用cmd /k进行调用,以便控制台不会关闭。< / p>