1

我有一个医疗程序,需要在服务器共享中安装多个程序。我制作了一个批处理文件来逐个抓取程序并安装它们,同时在 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
4

2 回答 2

0

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

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

提升 yourbatchfile.bat

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

于 2013-08-01T09:24:51.623 回答
0

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

请注意,runas动词未记录(未正式支持)。

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%"
于 2013-07-31T23:03:56.917 回答