Linux sudo 命令的 5 个 Windows 替代方案

如果您曾经使用过Linux或认识使用Linux的人,那么您可能听说过 sudo 命令。该命令是几乎每个Linux发行版的关键组件,它的作用是让您以不同的用户身份运行命令,尤其是 root 用户。在某些Linux发行版上,您可以使用su命令以 root 用户身份登录,但这被认为是高风险的,没有人这样做过。

实际上,它非常危险,以至于在Linux发行版(如Ubuntu )上默认禁用它。相反,如果您想以 root 用户身份运行命令,则必须使用sudo命令。(sudo)那么Windows呢?好吧(Well),不幸的是,大多数人都以管理员(Administrators)身份登录Windows ,这与(Windows)Linux中的 root 用户相同。但是,Microsoft已尝试通过启用(Microsoft)用户帐户控制(User Account Control)  或UAC来减轻以管理员身份登录的危险影响。

这样,即使用户具有管理权限,在该帐户下运行的应用程序也不会继承这些权限,除非用户手动授权。这有助于防止恶意软件和间谍软件感染以管理员(Administrator)身份登录的Windows用户。

因此,虽然Linux用户有 sudo 命令,但Windows用户有什么?Windows用户(Windows)是否(Are)可以使用其他替代方法来运行具有提升权限的命令?是否有适用于Windows的 sudo 命令?在本文中,我将讨论针对Windows用户的 sudo 命令的五种替代方法。

注意:其中一些工具现在已经很老了,因此它们可能适用于也可能不适用于最新版本的 Windows。 (Note: Some of these tools are quite old now, so they may or may not work with the latest versions of Windows. )

Windows Runas 命令

Windows 有runas命令,它与(runas)Linux上的 sudo 直接对应。使用 runas 命令,您可以以不同的用户或管理员的身份执行脚本、程序或命令。runas 命令的完整语法是:

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program

如果要打开管理命令提示符,可以键入以下内容:

runas /noprofile /user:Administrator cmd

runas 命令

/noprofile 不会加载当前用户配置文件。如果您需要访问用户环境变量,您可以删除它。如果要使用具有管理员权限的记事本(Notepad)打开文本文件,可以使用以下命令:

runas /user:Administrator "notepad my_file.txt"

您可以查看 runas 上的Technet 页面(Technet page)以获取有关如何使用它的更多信息。

请注意,在使用 runas 命令时,如果您安装程序或更改设置等,这些更改将针对您正在运行该命令的用户帐户进行。例如,假设您有普通用户用户 X 和管理员用户 Y。如果您登录 X,然后使用管理员(Administrator)凭据执行 runas,则会更改管理员(Administrator)的设置,而不是用户 X。

因此,如果您通过右键单击EXE文件并选择Run as Administrator来安装应用程序,它将被安装到内置的管理员(Administrator)用户配置文件中,而不是您登录的那个。如果您想要像 sudo 这样的真正提升权限而没有配置文件问题,请查看下面的下一个替代方案。

适用于 Windows 的 Sudo – Sourceforge

Sudo for Windows是一个免费程序,您可以安装它,它会给您与Linux for Windows上的 sudo 命令相同的体验。唯一的区别是Sudo for Windows “保留用户的配置文件和创建对象的所有权”(“preserves the user’s profile and ownership of created objects”),正如开发人员所说。如果您想使用提升的权限来安装应用程序或更改用户位置(如My Documents等),这真的很方便。

它会为您提供管理权限,但会将所有更改保留在当前配置文件中,而不是您用于运行命令的帐户中。该程序需要 .NET 2.0 版,您无法单独下载。为了获得 2.0,您必须安装.NET Framework 3.5,其中包括 2.0。

安装Sudo for Windows后,您需要将允许提升权限的用户帐户添加到由名为 S udoers的程序创建的特定组。右键单击我的电脑(My Computer)或这台电脑,然后单击管理(Manage)。然后展开用户和组(Users and Groups)并单击(Groups)。你应该看到一个叫做Sudoers 的(Sudoers)

sudousers

双击Sudoers并单击添加(Add)按钮。

添加成员

在下一个对话框中,单击Advanced按钮,然后单击Find Now。这将列出系统上的所有用户和组。双击(Double-click)要添加的用户。

将用户添加到组

对要添加的用户重复此步骤。然后单击“确定”,您应该会看到上面显示的“成员”列表框中列出的成员(Members)单击确定(Click OK),现在您应该可以使用 sudo GUI和命令了。如果您右键单击某个程序,您将看到Sudo选项。

sudo 右键单击

您还可以打开命令提示符并键入 sudo 以提升权限运行命令。

sudo 命令提示符

总的来说,它非常漂亮并且效果很好。但是,请注意,此特定程序对于通过右键单击或通过命令提示符启动(launching)程序或进程非常有用,但它不适用于运行命令行应用程序。例如,如果您想执行 sudo mkdir “c:Program Files ew”,则使用Sudo for Windows将无法使用。对于该功能,有另一个程序称为相同的东西,但由不同的开发人员。阅读(Read)下文。

适用于 Windows 的 Sudo – 卢克·桑普森

还有另一位开发人员为 Windows(Sudo for Windows)编写了另一个Sudo,它也可以让您执行命令行应用程序。那么让我们回到关于在 C:Program Files 中创建新文件夹的示例。默认情况下你不能真正做到这一点。

powershell mkdir

上面我使用的是PowerShell,但使用命令提示符也会出现同样的错误。但是,一旦您安装了Sudo for Windows,只需将 sudo 这个词添加到命令的前面,它就可以完美运行,没有错误!

要安装它,您需要打开PowerShell,然后按顺序键入以下命令:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

set-executionpolicy unrestricted -s cu -f

scoop install sudo

如果一切正常,您应该在每个命令之后在PowerShell中看到以下输出:

安装瓢sudo

就是这样!现在您可以开始输入命令并在前面添加 sudo。这个程序唯一令人讨厌的地方是UAC窗口仍然会弹出,并且您单击“是”(Yes)以使其工作。即使有那么一点点烦恼,这些好处也是值得的。

提升

Elevate是一个与(Elevate)UAC一起工作的程序,与sudo 的工作方式不同。使用Elevate,它将像 runas 命令一样将执行用户更改为管理员。(Administrator)但是,它对于在命令行或批处理文件中工作很有用。

提升

elevate 的主要目的不是绕过UAC,而是从非提升的 shell 启动处于提升状态的进程,然后即使在命令完成后也照常继续。Elevate对编写脚本很有用,因为您不必担心尝试编写整个右键单击脚本并以管理员(Administrator)进程运行命令提示符。

适用于 Windows 的 Elevation PowerToys

对于那些在命令行上做大量工作或使用脚本和批处理文件的人,Elevation PowerToys for Windows页面有很多有用的工具和脚本。

海拔电动玩具

当试图从命令行提升程序或以管理员身份运行脚本时,创建脚本提升玩具(script elevation power toys)是为了克服UAC令人沮丧的方面。(UAC)

希望(Hopefully)这些工具和程序足以让您感觉自己实际上是在Windows上使用 sudo 。它没有完美的替代品,但有很多选项可以接近。如果您使用其他东西来提升Windows中的程序、命令或脚本,请在评论中告诉我们。享受!



About the author

我是一名免费软件开发人员和 Windows Vista/7 倡导者。我已经写了数百篇关于操作系统相关主题的文章,包括提示和技巧、修复指南和最佳实践。我还通过我的公司 Help Desk Services 提供与办公室相关的咨询服务。我对 Office 365 的工作原理、功能以及如何最有效地使用它们有着深刻的理解。



Related posts