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

2016-05-25 07:45:46 +08:00
 cevincheung

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

3024 次点击
所在节点    Windows
12 条回复
tcp
2016-05-25 08:20:34 +08:00
runas
cevincheung
2016-05-25 08:26:56 +08:00
@tcp 要输密码。怎么能直接弹出 uac
tcp
2016-05-25 08:30:21 +08:00
@cevincheung 批处理的属性里面勾上 管理员权限
cevincheung
2016-05-25 08:32:11 +08:00
@tcp 额。这也算是一条路。

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

est
2016-05-25 09:39:23 +08:00
就按照 @takwai 的思路,用批处理生成一个这样的快捷方式,然后调用这个快捷方式。
acess
2016-05-25 16:34:49 +08:00
关注
telnet 登录提权问题跟这个问题的核心差不多吧。
试了 psexec -h 参数, Win10 下无效。
(参考: http://forum.sysinternals.com/how-does-psexec-run-with-elevated-privileges_topic27580.html
acess
2016-05-25 16:44:45 +08:00
如果勾选 psexec 属性里的“使用管理员身份运行”,-h 参数就有效了。这样使用时,每次调用 psexec 都会弹出 UAC 提示框。
mfaner
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

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

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

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

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

© 2021 V2EX