是否可以要求 Powershell 在 Windows 终端而不是新窗口中启动进程

use*_*291 4 powershell elevated-privileges windows-terminal

如果我在 Windows 终端 PowerShell 选项卡中运行:

start-process Powershell -Verb runas
Run Code Online (Sandbox Code Playgroud)

它将创建一个新窗口。有没有办法在 Windows 终端中创建选项卡?

mkl*_*nt0 7

您必须使用 Windows 终端 CLIwt.exe作为 的目标可执行文件Start-Process,并将 PowerShell CLI(powershell.exe对于 Windows PowerShell,pwsh.exe对于 PowerShell (Core) 7+)作为其参数传递给它;例如,与powershell.exe

Start-Process -Verb RunAs wt.exe powershell.exe
Run Code Online (Sandbox Code Playgroud)

请注意,如果使用 PowerShell 作为默认wt.exeWindows 终端配置文件,则根本不需要指定参数。

如果您有为 PowerShell 定义的 Windows 终端配置文件(至少对于 Windows PowerShell,默认情况下应该是这样),您可以通过选项按名称GUID-p请求它。配置文件名称必须完整指定,并具有定义的确切大小写(否则将被忽略并使用默认配置文件);例如:

Start-Process -Verb RunAs wt.exe '-p "Windows PowerShell"'
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 一个提升的 Windows 终端进程总是在新窗口中打开。

  • 如果至少有一个这样的进程已经存在,您可以请求在该窗口中以选项卡形式-w 0打开其他提升的进程,并将其作为第一个选项;例如:

    Start-Process -Verb RunAs wt.exe '-w 0 -p "Windows PowerShell"'
    
    Run Code Online (Sandbox Code Playgroud)