比如一个启动服务的命令net start httpd等像 linux 的 sudo 。
|      1tcp      2016-05-25 08:20:34 +08:00 via iPhone runas | 
|  |      2cevincheung OP @tcp 要输密码。怎么能直接弹出 uac | 
|      3tcp      2016-05-25 08:30:21 +08:00 via iPhone @cevincheung 批处理的属性里面勾上 管理员权限 | 
|  |      4cevincheung OP | 
|  |      5mxalbert1996      2016-05-25 08:34:20 +08:00 via Android @tcp 以管理员用户运行和以管理员权限运行是不一样的 如果楼主是想以管理员权限运行,那么这个问题用 bat 是无解的,但是可以用 PowerShell 脚本解决。 | 
|  |      6cevincheung OP @tcp 刚撸了一下,批处理 win10 没的兼容性选项。 | 
|      7tcp      2016-05-25 08:40:26 +08:00 via iPhone powershell -c start -verb runas abc.exe | 
|  |      8takwai      2016-05-25 09:24:04 +08:00 | 
|  |      10acess      2016-05-25 16:34:49 +08:00  1 关注 telnet 登录提权问题跟这个问题的核心差不多吧。 试了 psexec -h 参数, Win10 下无效。 (参考: http://forum.sysinternals.com/how-does-psexec-run-with-elevated-privileges_topic27580.html ) | 
|  |      11acess      2016-05-25 16:44:45 +08:00  1 如果勾选 psexec 属性里的“使用管理员身份运行”,-h 参数就有效了。这样使用时,每次调用 psexec 都会弹出 UAC 提示框。 | 
|      12mfaner      2016-05-26 02:14:13 +08:00 之前写的,用一个需要管理员权限的命令检测是否有权限,没有就写个 vbs , vbs 以管理员权限回来重新运行批处理脚本。 @echo off bcdedit >nul && goto main >%temp%\getadmin.vbs echo Set UAC = CreateObject^("Shell.Application"^) >>%temp%\getadmin.vbs echo UAC.ShellExecute "%~s0", "", "", "runas", 1 start wscript %temp%\getadmin.vbs exit /b :main bcdedit pause |