使用Start-Process以管理员模式重启.cmd为何不调用默认终端?
问题原因解析
当你用Start-Process -Verb RunAs(代码里的saps是它的别名)启动.cmd文件时,触发的是系统的权限提升启动流程,这个流程和普通启动逻辑完全不同:
- 无
-Verb RunAs的普通启动:Windows Terminal的默认终端设置会生效,系统会把cmd.exe的启动请求重定向到Windows Terminal里——这是因为默认终端的替换逻辑是拦截普通的CreateProcess调用。 - 带
-Verb RunAs的管理员启动:系统会直接调用.cmd文件在注册表中注册的管理员级默认打开程序。目前.cmd文件的默认关联还是传统的cmd.exe,而且这个权限提升启动流程不会被Windows Terminal的默认终端设置拦截。Windows Terminal的默认终端替换仅对非提升权限的进程启动请求生效,权限提升场景下会直接走系统原生的Shell关联逻辑,所以会弹出旧版命令提示符窗口。
内容的提问来源于stack exchange,提问作者Max Sandberg
相关产品推荐
相关产品推荐

