V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cevincheung
V2EX  ›  Windows

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

  •  
  •   cevincheung · 2016-05-25 07:45:46 +08:00 · 3119 次点击
    这是一个创建于 3109 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    12 条回复    2016-05-26 02:14:13 +08:00
    tcp
        1
    tcp  
       2016-05-25 08:20:34 +08:00 via iPhone
    runas
    cevincheung
        2
    cevincheung  
    OP
       2016-05-25 08:26:56 +08:00
    @tcp 要输密码。怎么能直接弹出 uac
    tcp
        3
    tcp  
       2016-05-25 08:30:21 +08:00 via iPhone
    @cevincheung 批处理的属性里面勾上 管理员权限
    cevincheung
        4
    cevincheung  
    OP
       2016-05-25 08:32:11 +08:00
    @tcp 额。这也算是一条路。

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

    est
        9
    est  
       2016-05-25 09:39:23 +08:00
    就按照 @takwai 的思路,用批处理生成一个这样的快捷方式,然后调用这个快捷方式。
    acess
        10
    acess  
       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
    acess
        11
    acess  
       2016-05-25 16:44:45 +08:00   ❤️ 1
    如果勾选 psexec 属性里的“使用管理员身份运行”,-h 参数就有效了。这样使用时,每次调用 psexec 都会弹出 UAC 提示框。
    mfaner
        12
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4159 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:24 · PVG 13:24 · LAX 21:24 · JFK 00:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.