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

各位大佬,问个命令行问题

  •  
  •   Gizmo · 2021-12-16 20:20:43 +08:00 via Android · 2758 次点击
    这是一个创建于 1072 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经打开了 powershell 或 cmd 的情况下,可以提升到管理员权限(像右键选择以管理员打开 powepowershell 或 cmd )吗?

    可以的话是什么命令?

    谢谢

    14 条回复    2021-12-22 00:55:28 +08:00
    monkey110
        1
    monkey110  
       2021-12-16 20:29:59 +08:00
    runas /user:administrator "cmd"
    codergrowing
        2
    codergrowing  
       2021-12-16 20:45:48 +08:00
    Windows 上也有一个 sudo 的工具,可以实现类似*nix 系统上的效果。
    http://blog.lukesampson.com/sudo-for-windows

    ```
    # first download scoop
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

    # enable powershell, if you haven't already
    set-executionpolicy unrestricted -s cu -f

    scoop install sudo
    ```
    ncepuzs
        3
    ncepuzs  
       2021-12-16 20:50:14 +08:00
    同 #2
    flynaj
        4
    flynaj  
       2021-12-16 23:55:27 +08:00 via Android
    runas /user:administrator
    flynaj
        5
    flynaj  
       2021-12-16 23:55:46 +08:00 via Android
    就是 1 楼这个
    ysc3839
        6
    ysc3839  
       2021-12-17 00:52:55 +08:00
    一楼的是用密码登录的方案,不是弹出 UAC 授权提示。

    弹出 UAC 授权提示的原理之一是调用 ShellExecute ,把 Operation 参数设置成 "runas"。https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew#runas

    PowerShell 可以用 Start-Process -Verb RunAs ,也可以直接调用 ShellExecute API 。

    cmd 不能直接调用 Win32 API ,间接的方案可以利用 mshta.exe 通过 URL 执行 VBScript 或 JScript ,创建 "Shell.Application" 对象,然后调用其中的 ShellExecute ,传入 "runas"。

    mshta vbscript:CreateObject("Shell.Application").ShellExecute("","","","runas",1)(window.close)
    ysc3839
        7
    ysc3839  
       2021-12-17 00:54:46 +08:00
    刚刚回复时触发关键词被拒绝访问了,最后没有发完。完整命令如下:
    mshta vbscript:CreateObject("Shell.Application").ShellExecute("程序名称","","","runas",1)(window.close)
    Tumblr
        8
    Tumblr  
       2021-12-17 08:44:51 +08:00
    1. 在原进程上不可以提升为管理员,只能重新启一个进程。
    2. 用 PowerShell 的 Start-Proces 加-Verb RunAs 参数(推荐后者)。

    另外,对 @codergrowing #2 提到的 sudo 的内容好奇,怎奈没找到代码,不知道有人在用没,是否可以分享一下。
    chengyiqun
        10
    chengyiqun  
       2021-12-17 09:09:49 +08:00
    @Tumblr 我自己就在用 scoop 里的 sudo. 非常方便.
    不过我更习惯这样
    ![image.png]( https://s2.loli.net/2021/12/17/zBoPpdrR7yiAkJq.png)

    参考 github 上的 windowsterminal-shell
    Tumblr
        11
    Tumblr  
       2021-12-17 09:48:52 +08:00
    @ragnaroks #9 多谢!原来也是个变相的 start-process -verb runas ,然后隐藏窗口了。
    @chengyiqun #10 这个确实也方便,不过在 Windows 11 里又是个 challenge 😌
    xingchen23
        12
    xingchen23  
       2021-12-17 11:33:40 +08:00
    没安 scoop 个人用的是 gsudo 不知道满不满足楼主需求
    Shilion
        13
    Shilion  
       2021-12-19 14:14:00 +08:00
    ungrown
        14
    ungrown  
       2021-12-22 00:55:28 +08:00
    用 elevate (其实类似的工具还挺多的)
    http://code.kliu.org/misc/elevate/
    https://github.com/PaoJiao/elevate
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1125 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.