求问Windows中等效于sudo su的终端会话提权命令
实现VS Code内置终端全会话提权(类似Linux
sudo su)的方案 先给你说清楚核心限制:Windows的进程权限是启动时就固定的,不像Linux那样能在现有shell里直接升级整个会话的权限——原生的runas只能单独启动一个高权限进程,没法把当前普通用户的终端会话直接转成管理员级别。不过针对你用VS Code右键打开项目、不想每次都弹UAC的场景,有几个实用的解决办法:
1. 用gsudo完美模拟sudo su体验
这是我最推荐的方案,gsudo是专门给Windows做的开源sudo替代工具,能直接在当前VS Code终端里启动管理员级别的shell,和Linux的sudo su效果一模一样:
- 先装
gsudo:可以用Chocolatey包管理器(choco install gsudo),或者去它的GitHub仓库下载安装包直接装。 - 在VS Code内置终端里输这条命令,确认UAC后整个会话就变成管理员权限了:
要是用的是PowerShell,也可以直接输gsudo sugsudo powershell,后续所有命令都不用再单独提权,完全符合你的需求。
2. 改右键“Open With Code”的启动权限
你说常通过右键菜单打开项目,不想每次手动开VS Code都弹UAC,但又希望此时的终端有管理员权限。可以改注册表实现这个需求:
- 按
Win+R输regedit打开注册表编辑器。 - 找到目录右键的VS Code项:
HKEY_CLASSES_ROOT\Directory\shell\VSCode\command(如果是文件右键,就找HKEY_CLASSES_ROOT\*\shell\VSCode\command)。 - 双击右侧的
(默认)值,把原命令改成用gsudo启动(前提是已经装了gsudo,这样不用每次输密码):
要是不想装第三方工具,也可以用系统自带的"C:\Path\To\gsudo.exe" "C:\Users\<你的用户名>\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%1"runas,不过每次都要输管理员密码:runas /user:你的管理员账户 "C:\Users\<你的用户名>\AppData\Local\Programs\Microsoft VS Code\Code.exe" "%1"
这样,只有右键打开项目时VS Code才会以管理员身份启动(弹一次UAC),平时手动开VS Code还是普通权限,不会弹UAC,完美适配你的使用习惯。
3. 原生工具临时提权的折中方案
如果不想装任何第三方工具,也可以用这条命令在VS Code终端里启动一个管理员级别的会话,不过会新开一个外部窗口:
- 启动管理员Cmd:
start /min cmd /k runas /user:Administrator cmd - 启动管理员PowerShell:
Start-Process powershell -Verb RunAs
虽然体验不如gsudo在当前终端里好,但胜在不用额外装东西,应急用也可以。
内容的提问来源于stack exchange,提问作者Menas
相关产品推荐
相关产品推荐

