从 Windows 终端内以提升的权限打开 Windows 终端

ang*_*son 25 windows-terminal

这里有很多问题询问如何从powershell提升权限,几乎所有人都推荐这个命令:

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

(或用于 Powershell Core 的 pwsh.exe)

这是有效的,在通过 UAC 块验证访问后,它会打开一个具有提升权限的新 Powershell 窗口。

但是,当我使用 Powershell 时,我在 Windows 终端(Windows 10 的新终端应用程序)中执行此操作,我想打开一个具有提升权限的新 Windows 终端实例,而不仅仅是一个 Powershell 窗口。

所以我尝试了这些命令:

Start-Process -Verb RunAs wt
Start-Process -Verb RunAs wt.exe
Start-Process -Verb RunAs (Get-Command wt)
Start-Process -Verb RunAs "C:\Users\lasse\AppData\Local\Microsoft\WindowsApps\wt.exe"
Run Code Online (Sandbox Code Playgroud)

他们都失败了:

启动进程:由于错误,无法运行此命令:系统无法访问该文件..

我假设这与我的配置文件中可执行文件所在的位置有关,但是如果我右键单击任务栏上的 Windows 终端图标并选择以管理员身份运行它,它会打开得很好。这就是我想要复制的。

那么有没有办法让我修改我在上面尝试过的命令,或者更改一些可以使其工作的访问设置?

对于我的特定实例,我只是想让弹出管理终端更简单,我不需要提升任意命令的方法,然后我会很乐意使用我已经在这里展示的命令。

ape*_*ena 23

目前,如果wt.exe没有解决方法,您将无法从命令行打开提升的会话。解决方法包括使用gsudo,使用任务计划程序(我测试了这个并且它有效,但您需要使用 wt.exe 的完整路径,您可以跳过快捷方式创建步骤)或者如果您可以使用键盘快捷键,最简单的方法; 使用键盘快捷键从任务栏以管理员身份运行 Windows 终端。

对于您的用例:

对于我的特定实例,我只是想让弹出管理终端更简单,我不需要提升任意命令的方法,然后我会很乐意使用我已经在这里展示的命令。

最简单的方法将起作用:

将 Windows 终端固定为任务栏上的第一项。然后按 Win+Ctrl+Shift+1 以管理员身份打开它。

如果您确实必须从 Windows 终端内的命令行启动 Windows 终端,请在任务计划程序中创建一个任务:

  1. 为任务命名,选中“以最高权限运行”。
  2. 选择“操作”选项卡,单击“新建”,选择“启动程序”作为操作。将完整路径wt.exe放在“程序/脚本字段”中。单击确定。再次单击确定。
  3. 单击“条件”选项卡,取消选中“仅当计算机使用交流电源时才启动任务”。
  4. 单击“设置”选项卡,确保选中“允许按需运行任务”并取消选中“如果运行时间超过则停止任务”。
  5. 最后,在您的 shell (Powershell) 中,通过运行以下命令启动提升的 Windows 终端会话:schtasks /run /TN "TASK_NAME"其中 TASK_NAME 是您在步骤 1 中为任务指定的名称。

  • 固定到任务栏是一个很好的解决方法,适合我的用例。如果您有 PowerToys,另一个选择是: 1. Alt + Space,键入 Terminal,2. 选择以管理员身份运行(或 Ctrl + Shift + Enter) - https://github.com/microsoft/PowerToys - https://github .com/microsoft/winget-cli (3认同)

小智 14

在最近的版本中,这个问题似乎已得到解决。它现在可以工作了,完全按照您最初尝试但失败的方式进行 ( Start-Process -verb RunAs wt)。我建议现在使用最新版本再次尝试(至少是 Windows Terminal,也许还有 PowerShell)。

不再需要解决方法!

  • 我正在运行 Windows Terminal Preview v1.6.10412.0 和 Windows Terminal stable v1.5.10411.0 ,并且在尝试运行“Start-Process -Verb RunAs wt”时仍然收到“系统无法访问该文件” “对他们中的任何一个。因此,我只需执行常规过程,右键单击固定的任务栏项目,右键单击跳转列表中的“Windows 终端”,然后选择“以管理员身份运行”。它很笨拙,但它有效,所以...... (2认同)

DK_*_*DK_ 11

尝试这个:

powershell "Start-Process -Verb RunAs cmd.exe '/c start wt.exe'"
Run Code Online (Sandbox Code Playgroud)

另请查看这些链接:

WT.exe 命令行参数:https ://docs.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs = windows

关于在资源管理器的上下文菜单中添加打开 Windows 终端命令提示符的文章(包括管理员):https : //dkcool.tailnet.net/2020/07/add-open-windows-terminal-command-prompt-to-the-explorer -context-menu-in-windows-10/

关于在资源管理器的上下文菜单中添加 Open Admin Command Prompt 的文章:https : //dkcool.tailnet.net/2019/05/add-open-admin-command-prompt-to-the-explorer-context-menu-in-视窗-10/

  • 如果您想使用某个配置文件,请使用 `powershell "Start-Process -Verb RunAs cmd.exe '/c start wt.exe -p ""<<您的配置文件的名称>>""'"` 有效 (2认同)

kra*_*mfs 6

不是直接的答案,但如果您有PowerToys,则另一种选择是:

  1. Alt + Space,输入终端,
  2. 选择以管理员身份运行(或 Ctrl + Shift + Enter)

您可以使用WinGet安装 PowerToys

  • 有趣的是,我的它对我的系统中的内容有相当好的索引。我在某处保存了一个云配置文件,只需输入“cloud”就可以找到它。我输入 ubuntu,它找到了 Multipass 提供的正在运行的 k3s-master,所以我有使用它的经验。 (2认同)

小智 5

Windows Terminal 具有在预览中自动以管理员身份运行的功能;现在不需要解决方法。