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

Powershell 以管理员身份运行-注册表设置?,powershell,registry,Powershell,Registry,PowerShell(和其他程序)提供了“以管理员身份运行”的功能。是否有一个注册表,我们可以在其中更改设置,使其成为默认设置?因此,无需右键单击并“以管理员身份运行”?我不知道注册表设置,但您可以执行以下操作: 右键单击PowerShell 选择快捷方式选项卡 单击Advanced按钮 选择以管理员身份运行 这将告诉快捷方式始终以管理员身份运行。大多数快捷方式都可以这样做。这样做的一大好处是能够创建两个快捷方式,一个在管理员模式下,另一个在非管理员模式下。禁用UAC(控制面板→ 用户帐户→ 更

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

我不知道注册表设置,但您可以执行以下操作:

  • 右键单击
    PowerShell
  • 选择
    快捷方式
    选项卡
  • 单击
    Advanced
    按钮
  • 选择
    以管理员身份运行
  • 这将告诉快捷方式始终以管理员身份运行。大多数快捷方式都可以这样做。这样做的一大好处是能够创建两个快捷方式,一个在管理员模式下,另一个在非管理员模式下。

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

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

    UAC的唯一目的是允许用户成为Administrators组的成员,而无需始终以管理员权限运行。登录时,他们会收到两个安全令牌,一个(非活动)具有管理员权限,另一个(活动)具有正常用户权限。这样,用户需要有意识地决定激活程序的管理员令牌,并以管理员权限运行它


    现在,如果您允许shell(即设计用于运行任意命令的程序)始终以管理员权限运行,则将删除此保护。从那时起,在用户上下文中运行的任何东西都可以使用管理员权限运行任意代码。对于这样的配置,任何关于安全性的进一步思考都只是自欺欺人,因此您也可以停止打扰。

    最初提出问题的读者使用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
    

    一些提示:我知道这个方法,并且每天都使用它,但我请求通过注册表设置来实现。问题是如何以管理员的身份运行PowerShell,而不是“以管理员的身份运行一切”-1.没有回答所问的问题。如果可以的话,我会给你另一个-1,一般来说是错误的建议-删除所有安全性作为特定限制问题的答案是错误的解决方案。@KenWhite“PowerShell以管理员身份运行”和“其他所有以管理员身份运行”之间没有区别。一旦您拥有一个以管理员权限运行的shell,整个系统就完全开放了。习惯这个事实。整个UAC的胡言乱语只是一大堆废话,阻碍了那些喜欢通过练习LUA来实现视觉安全的人。请提供线索。@zespri问题本质上是如何在每次启动PowerShell进程时自动提升它们。如果PowerShell进程是自动提升的,那么有什么可以阻止您将
    &“C:\path\to\malistic.exe”
    放入PowerShell脚本以使其自动提升?但是,在用户上下文中运行的任何程序都不能以管理员权限运行任意代码,它仅限于您选择在PowerShell中启动的任何程序。因此,您仍然有意识地决定a)运行始终提升的powershell,b)在此提升会话中启动恶意软件。我猜我不明白的是,从通过提升powershell运行的所有东西都可以访问整个系统这一显而易见的事实到结论,UAC停止对所有其他不是通过提升powershell Session启动的东西有效到Ansgars point,供未来的人查看此线程,powershell功能非常强大,可以从任何.NET应用程序或控制台启动,而现在用户永远不会知道,它将以静默方式启动,并允许用户执行任何操作。有了UAC,至少用户会知道有什么东西试图以提升的权限启动powershell,并能够阻止它。