我为什么要以管理员身份运行每次我使用cmd
或时powershell
?它有什么作用?它是否只是给你比正常cmd
情况下更多的权限以管理员身份运行?
答案1
为什么我应该以行政人员每次我使用
cmd
或powershell
?
你确实不应该。
为什么需要管理员权限?为了更改某些系统设置并访问/编辑某些文件。或者,从字面上理解:执行管理任务。根据定义,这不是您通常在 PC 上执行的操作。
假设您想更改本地网络上计算机的 IP 地址。这需要管理员权限。或者您可能想在 PC 上添加新用户帐户。所以是的,它确实为您提供了更多权限。很多更多的。
另一方面,打开和编辑 Word 文档,然后打印它,不需要管理员权限。甚至有些操作永远不应该用管理员权限执行,比如浏览网页。权限分离是一项关键的安全功能。
当您使用 Windows 图形用户界面时,请求和获取管理员权限(提升的权限)通常很直观,并且会在需要时提示您。在命令行上,情况有所不同。请看这个例子:
C:\Users\Daniel>netsh interface ipv4 set address "Wi-Fi" static 10.0.0.9 255.255.255.0 10.0.0.1
The requested operation requires elevation (Run as administrator).
我无法更改 Wi-Fi 适配器的 IP 地址!操作没有提示提升权限,而是失败了。我必须自己以管理员身份重新启动命令提示符才能真正做到这一点。然后,提升的命令提示符将运行我以提升权限输入的内容,如netsh
本例所示。使用 PowerShell 时,许多操作由 shell 本身执行,而不是像 这样的专用程序,这一点也很重要netsh
。
这就是为什么有时您需要以管理员身份启动 PowerShell 或命令提示符。
经验法则是,除非您确定绝对必要,否则您永远不会以管理员身份运行某些程序。您应该特别警惕下载的软件和复制粘贴的 PowerShell 或命令提示符代码片段。在最坏的情况下,它们可能会破坏您的系统和数据。
答案2
但是,如果应用程序以标准用户身份运行(命令行或 GUI),则以管理员身份运行通常没有任何价值。
如果这样的应用程序需要执行一些需要管理员凭据的操作,通常会有一个按钮可以点击或一个命令行参数来请求管理员凭据。
想到了树大小:标准用户可以做大多数事情,但树大小管理用于高级树大小选项。
如果应用程序无法在标准模式下运行,则您必须以管理员身份运行。
虽然有细微差别,但这些是运行应用程序的三种主要方式
这一切都适用于在命令行或 Power Shell 中运行时。
答案3
是的,简单地说,它只是给予程序更多的权限。
您不应该总是以这种方式运行 cmd 或 PowerShell。程序应仅具有完成合法任务所需的权限。这就是最小特权原则。对用户来说,这样做最明显的原因是安全性:例如,您不希望恶意软件拥有管理员权限。
因此,如果您确实需要使用更多权限从 cmd 或 PowerShell 运行命令(并且您知道这样做是安全的),最好以管理员身份打开一个新窗口执行该命令,并使用标准 cmd 或 PowerShell 执行其他所有操作。但这很烦人,这就是为什么像runAs
和格苏多存在。
答案4
每个对象都带有一个访问控制列表或等效项。ACL 根据操作员的身份确定操作员是否有权对操作数执行某些操作。管理员就是这样一种身份,管理员可以对几乎任何对象执行几乎任何操作。这既危险又有益。
例如,假设用户错误地指定删除 C 盘中的所有文件(包括所有文件夹)。如果用户是普通用户,该任务将很快生成错误,并在造成任何损害之前停止。但如果该过程以管理员身份运行,则很可能会继续删除 C: 盘上的所有文件。替换所有这些文件的成本(假设这是可能的)可能比购买新电脑的成本高得多。