Windows 11 的 Insider Preview 版本现在有一个“sudo”命令。 现在,即使从普通的控制台会话中,也可以运行需要管理员权限的命令。
Introducing Sudo for Windows! - Windows Command Line
https://devblogs.microsoft.com/commandline/introducing-sudo-for-windows/
在使用“sudo”命令之前,您需要在“面向开发人员”页面上设置启用“启用 sudo”。 此外,在设置页面上,您可以从三种模式中选择 sudo 执行方法:“In a new window”、“With input disabled”和“Inline”。
在初始状态下,它处于“In a new window”模式。例如下图所示,执行“sudo netstat-ab”命令时,将显示“Launched netstat in a new window.(在新窗口中运行了netstat命令)”。
然后,将打开一个具有管理员权限的新控制台窗口并执行该过程。 环境变量保持不变。
在“With input disabled”模式下,进程在输入 sudo 命令的窗口中运行,但不接受用户的输入,因此当需要第一个命令以外的输入时,不能使用它。
在“inline”模式下,行为上与 Linux 等操作系统上的“sudo”命令最相似,其在输入 sudo 命令的窗口中运行提权进程,其 stdinput、stdoutput 和 stderror 均与当前窗口相连。这意味着新的提权进程可以接收输入,并将输出发送到当前窗口。
使用 sudo 从命令行运行提权进程时,将出现一个 UAC 对话框,要求用户确认提升权限。用户确认提升后,将根据用户选择的三种模式中选择的选项提升流程。
在“With input disabled”和“Inline”两种模式中,没有管理员权限,在内部执行一个新的 sudo进程,并且原始的未提升的sudo.exe将与新的提升的进程建立RPC连接,输入和输出是重定向的。 这样,您就好像在没有管理员权限的情况下在控制台窗口中运行提升的进程一样。
微软致力于面向Windows的sudo的开源化,今后几个月打算共享详细的信息。 还指出,并且正在 GitHub 存储库中征求有关 sudo for Windows 的反馈。