powershell - PowerShell 上的提升/Sudo

标签 powershell console sudo elevated-privileges

我发现了一些 PowerShell 提升/sudo 函数,但它们似乎都不能很好地工作(以“与在每个 Unix 和 Linux 发行版上一样直观和无缝”的方式)。它们大多是多余的,因为它们不能很好地工作。如果有人在 PowerShell 上拥有无缝工作的 elevate/sudo,他们就会知道。

我见过的函数的问题是:

• 它们只能通过调用 powershell.exe 的另一个实例来处理外部脚本。即如果你想做一些像 sudo gcisudo Get-ChildItem 这样简单的事情,这将产生一个错误,因为这些方法似乎不喜欢调用别名或 Cmdlet (出于某种原因!)。

• 您不能将现有的控制台 session 无缝地提升到管理员,这似乎需要提升/sudo 功能打开一个全新的控制台(似乎很麻烦,必须白白打开一个新的控制台!)?

有人使用可靠的 elevate/sudo 吗?我不希望它是完美的,如果有充分的技术原因导致上面的事情不起作用(可能与 PowerShell 主机本身的能力不足有关)那么那很好,但它会很好知道我们可以在 PowerShell 中使用功能提升/sudo 走多远。令人遗憾的是,虽然 PowerShell 比 bash 先进得多(而且它的对象操作功能也击败了 Python 和 Perl imo),但有时它似乎是 Unix 领域中一些最简单的功能,比如 sudo,击败了什么在 PowerShell 中是可能的 - 我很乐意看到这些空白被填补,以便 PowerShell 可以显示出与 Unix 一样的能力(甚至更多!)进行更改。

最佳答案

当然,盒子里没有什么 native 的东西,所以,当谈论 sudo 与 Windows 的东西时,苹果/橘子比较。

安全边界/功能只是不同,众所周知,Windows(以及 PowerShell)中的 sudo 等价物是 RunAs,它将弹出 Windows UAC,没有绕过它,没有关闭 UAC(不要这样做this) 或设置 AppCompat 垫片。

所以,当你说函数时,你是说你已经厌倦了这些:

Find-Module -Name '*sudo*' | 
Select Name, Version, Type, Description

# Results
<#
Name   Version Type   Description                                                                            
----   ------- ----   -----------                                                                            
Sudo   2.1.0   Module Use functionality similar to sudo in PowerShell. GitHub: https://github.com/pldmgg/Sudo
PSSudo 1.4.0   Module Function for executing programs with adminstrative privileges 
#>

这类问题在这里出现了很多,并且已经回答了好几次。那么,您是说,您尝试了以下操作?

How to sudo on powershell on Windows

Start-Process -Verb RunAs powershell.exe -Args "-executionpolicy bypass -command Set-Location \`"$PWD\`"; .\install.ps1"

Sudo !! equivalent in PowerShell

runas /user:domain\administrator $^

Is there any 'sudo' command for Windows?

doskey sudo= runas /user:Administrator "cmd /k cd \"%cd%\" & $*"

runas /noprofile /user:Administrator cmd 

另请参阅:

Support sudo #3232

5 Windows Alternatives to the Linux sudo Command

关于powershell - PowerShell 上的提升/Sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59502935/

相关文章:

windows - 无需 AD 搜索即可获得计算机组成员资格

python-2.7 - Pycharm 在控制台中运行代码时不显示局部变量

linux - 使用打开的文件更改 Vim 中的文件权限

c - 使用 sudo 启动程序

c++ - 如何打印到 Win32 应用程序中的调试输出窗口?

ubuntu - 使用 sudo 为 puppetlabs-apache 模块运行 puppet 代理

json - 在Powershell中用不同的值查找和替换JSON中的值的所有实例

powershell - 检索具有双文件扩展名的 $_.Extension

powershell - 连接格式化列表

javascript - 在node.js中执行退出时不显示控制台警告