我找到了一些PowerShell提升/ sudo功能,但它们中没有一个能够良好地工作(以“与每个Unix和Linux发行版一样直观和无缝”的方式)。它们大多数是多余的,因为它们不能很好地工作。如果有人在PowerShell上拥有一个无缝运行的elevate / sudo,他们会知道。
我看到的函数存在以下问题:
• 它们仅通过调用powershell.exe的另一个实例来使用外部脚本。例如,如果您想执行像sudo gci
或sudo Get-ChildItem
这样的简单操作,那么会生成错误,因为方法似乎不喜欢调用别名或Cmdlet(由于某种原因!)。
• 您无法无缝地将现有控制台会话提升为管理员,这似乎要求提升/ sudo函数打开一个全新的控制台(为什么要为无意义的内容打开一个新的控制台似乎很麻烦?)
有没有人使用可靠的elevate / sudo?我并不指望它完美无缺,如果有很好的技术原因导致像上面这样的事情不能工作(也许与PowerShell主机本身的限制不够强大有关),那么没关系,但是了解在PowerShell中可以实现多少功能上升/ sudo将会很有好处。尽管PowerShell比bash先进得多(我认为它的对象操作能力远高于Python和Perl),但有时候看起来Unix领域最简单的功能,例如sudo,似乎超出了PowerShell的可能性 - 我希望看到这些差距得到填补,以便证明PowerShell可以像Unix一样强大(甚至更加强大)。
sudo Get-ChildItem
没有意义,因为Get-ChildItem
不是可执行文件(就像在*nix上的ls
一样)。sudo
在每个命令都托管在自己的进程中的环境中运行得很好 - 即PowerShell所做的相反。你的问题类似于问“{perl、python、c、ruby}的sudo
在哪里?” - 这没有意义。 - Mathias R. Jessensudo Get-ChildItem
非常合理:它不会生成运行的进程吗?而且该进程可以在用户或管理员的上下文中运行?你可以假装我想要一个完全匹配,但请看最后一段:“我不奢望它完美...”。请不要纠结于此。在PowerShell上实现sudo类似行为非常吸引人(不仅仅是对我而言)。 - YorSubs