以管理员身份运行 - 注册表设置?

3

PowerShell(以及其他程序)提供了“以管理员身份运行”的功能。是否有一个注册表项可以更改设置,使其成为默认选项?因此,不需要右键单击并选择“以管理员身份运行”?


一些提示:http://www.sevenforums.com/tutorials/11841-run-administrator.html - CB.
3个回答

5
我不知道是否有注册表设置,但您可以按照以下步骤操作:
  1. 右键单击 PowerShell
  2. 选择 快捷方式 选项卡
  3. 点击 高级 按钮
  4. 选择 以管理员身份运行
这将告诉快捷方式始终以管理员身份运行。大多数快捷方式都可以这样做。这样做的一个重要好处是能够创建两个快捷方式,一个以管理员模式运行,另一个以非管理员模式运行。

1
我知道这种方法,而且每天都在使用,但我请求通过注册表设置来完成。 - Guy Thomas

2
读者最初提出这个问题时,使用PowerShell进行了研究。正如您所看到的,它在\Directory\shell下添加了一个名为“runas”的文件夹。
new-Item Registry::HKEY_CLASSES_ROOT\Directory\shell\runas -Force

new-ItemProperty Registry::HKEY_CLASSES_ROOT\Directory\shell\runas -Name "(default)" -Value "Open Command Prompt as Admin" -Type string -Force

new-ItemProperty Registry::HKEY_CLASSES_ROOT\Directory\shell\runas -Name "Icon"  -Value "C:\\Windows\\System32\\imageres.dll,-78" -Type string -Force

new-Item Registry::HKEY_CLASSES_ROOT\Directory\shell\runas\command -Force

new-ItemProperty Registry::HKEY_CLASSES_ROOT\Directory\shell\runas\command -Name "(default)" -Value 'cmd.exe /k pushd %L' -type string -Force

-6

禁用UAC(控制面板→用户帐户→更改用户帐户控制设置)。

编辑:显然有些人没有完全理解OP的请求的含义。

UAC的唯一目的是允许用户成为管理员组的成员,而不必一直以管理员权限运行。登录时,他们会收到两个安全令牌,一个(非活动状态)具有管理员权限,另一个(活动状态)具有普通用户权限。这样,用户需要做出有意识的决定才能激活管理员令牌并使其以管理员权限运行。

现在,如果您启用了一个shell(即一个设计用于运行任意命令的程序)以管理员权限始终运行,那么您就取消了此保护。从那时起,任何在用户上下文中运行的任何东西都可以以管理员权限运行任意代码。有了这样的配置,任何关于安全性的进一步考虑都将是纯粹的自我欺骗,因此您可以停止烦恼。


3
问题是如何以管理员身份运行PowerShell,而不是“使所有东西都以管理员身份运行”。-1分是因为您没有回答所提出的问题。如果可以的话,我会再给您-1分,因为将删除所有安全性作为特定限制问题的答案是错误的解决方案。 - Ken White
2
@KenWhite,“PowerShell 以管理员身份运行”和“其他所有东西也以管理员身份运行”之间没有区别。一旦您使用管理员权限运行 shell,整个系统就会完全开放。习惯这个事实吧。整个 UAC 胡言乱语只是一大堆垃圾,妨碍了那些更喜欢通过实践 LUA 实现实际安全性的人们。请明白这一点。 - Ansgar Wiechers
2
@zespri 问题本质上是如何在每次启动时自动提升PowerShell进程。如果PowerShell进程可以自动提升,那么你为什么不能将& "C:\path\to\malicious.exe"放入PowerShell脚本中以实现自动提升呢? - Ansgar Wiechers
2
但是,仍然不是“在用户上下文中运行的任何内容”可以“以管理员特权运行任意代码”,它仅限于您选择在PowerShell中启动的内容。因此,您仍然需要有意识地做出决定:a)始终以提升权限运行PowerShell;b)在此提升的会话中启动恶意软件。我猜我不理解的是从显而易见的事实跳到结论,即UAC对“未通过提升的PowerShell会话启动的所有其他内容”不再有效。 - Andrew Savinykh
2
针对 Ansgars 的观点,对于将来查看此线程的人而言,PowerShell 是非常强大的,可以从任何 .NET 应用程序或控制台启动,并且现在用户永远不会知道它被静默启动,并获得执行任何操作的权限。使用 UAC,至少用户会知道有某些东西正在尝试以提升的权限启动 PowerShell 并能够停止它。 - Brian Deragon
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接