如何以管理员身份执行.exe文件或在命令行中的批处理文件中以管理员身份运行

时间:2013-07-31 21:40:05

标签: batch-file cmd exe runas

我有一个医疗程序,需要安装服务器共享中的多个程序。我制作了一个批处理文件来逐个获取程序并在Windows网络中添加共享位置时安装它们然后删除网络驱动器。我还需要一个副本到剪贴板方法,因为在其中一个安装程序中粘贴图像的目录没有自动化。
这是我到目前为止所拥有的......

保持每个程序都可以作为管理员运行而不是管理员CMD

@echo OFF

    COLOR 2

    echo TURN ON UAC TURN OFF UAC REBOOT THEN PRESS ENTER           
    pause

    net use z: \\SERVER01\mdcs\auto_update\_CSInstaller 

    echo OSDetect will now install
    set PATH=\\SERVER01\mdcs\auto_update\_CSInstaller      
    start OSDetect.exe
    pause

    echo OSDetect install attempt 2
    set PATH=\\SERVER01\mdcs\auto_update\_CSInstaller     
    start OSDetect.exe
    pause


    echo COPY THIS DIRECTORY THEN PRESS ENTER
    echo 
    echo \\Server01\oms\pwimage
    pause

    echo do not restart after wsetup installs

    echo wsetup will now install
    set PATH=\\SERVER01\oms\image\pwimage\WSetupDir
    start wsetup.exe
    pause

    echo Setup-3d-Module will now install
    set PATH=\\SERVER01\oms\image\pwimage\WSetupDir\Tools
    start Setup-3D-Module.exe 
    pause

    net use z: \Delete

2 个答案:

答案 0 :(得分:0)

使用Batch中的PowerShell或VBScript提升权限(通过ShellExecute)。

请注意, runas 动词为undocumented(未正式支持)。

PowerShell方法

PowerShell -Command (New-Object -com 'Shell.Application').ShellExecute('program.exe', '', '', 'runas')

VBScript方法

set "VB=%Temp%\Admin.vbs"
> "%VB%" echo Set UAC = CreateObject^("Shell.Application"^)
>> "%VB%" echo UAC.ShellExecute "program.exe", "", "", "runas"
if exist "%VB%" "%VB%"

答案 1 :(得分:0)

可以尝试'elevate.exe',它是第三方工具,可以在MIT许可下自由使用和分发。

只需创建一个这样的启动器脚本:

  

提升yourbatchfile.bat

然后执行的所有命令都将由管理员执行。
你可以从这里得到:http://jpassing.com/2007/12/08/launch-elevated-processes-from-the-command-line/