我有一个医疗程序,需要安装服务器共享中的多个程序。我制作了一个批处理文件来逐个获取程序并在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
答案 0 :(得分:0)
请注意, 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/