win 批处理中怎么能直接弹出 uac 方便继续执行和面的操作

2016 年 5 月 25 日
 cevincheung

比如一个启动服务的命令net start httpd等像 linux 的 sudo 。

4066 次点击
所在节点    Windows
12 条回复
tcp
2016 年 5 月 25 日
runas
cevincheung
2016 年 5 月 25 日
@tcp 要输密码。怎么能直接弹出 uac
tcp
2016 年 5 月 25 日
@cevincheung 批处理的属性里面勾上 管理员权限
cevincheung
2016 年 5 月 25 日
@tcp 额。这也算是一条路。

还是不死心。- -# cmd 里就没命令?
mxalbert1996
2016 年 5 月 25 日
@tcp 以管理员用户运行和以管理员权限运行是不一样的
如果楼主是想以管理员权限运行,那么这个问题用 bat 是无解的,但是可以用 PowerShell 脚本解决。
cevincheung
2016 年 5 月 25 日
@tcp 刚撸了一下,批处理 win10 没的兼容性选项。
tcp
2016 年 5 月 25 日
powershell -c start -verb runas abc.exe
6mN361AJx04in471
2016 年 5 月 25 日
win10 就对批处理创建个快捷方式。

est
2016 年 5 月 25 日
就按照 @takwai 的思路,用批处理生成一个这样的快捷方式,然后调用这个快捷方式。
acess
2016 年 5 月 25 日
关注
telnet 登录提权问题跟这个问题的核心差不多吧。
试了 psexec -h 参数, Win10 下无效。
(参考: http://forum.sysinternals.com/how-does-psexec-run-with-elevated-privileges_topic27580.html )
acess
2016 年 5 月 25 日
如果勾选 psexec 属性里的“使用管理员身份运行”,-h 参数就有效了。这样使用时,每次调用 psexec 都会弹出 UAC 提示框。
mfaner
2016 年 5 月 26 日
之前写的,用一个需要管理员权限的命令检测是否有权限,没有就写个 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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/281061

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX