使用Powershell禁用UAC

13

我想使用Powershell禁用 UAC (即设置为最低级别)。因此我运行以下命令:

Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLUA -Value 0

我也尝试了在结尾添加 -Force

这段代码的意图是将UAC设置为最低,但同时阻止内置的Windows应用程序(包括Edge)运行,返回一个错误,指出该应用程序无法使用内置管理员帐户运行(尽管它是使用已禁用UAC的用户帐户运行的)。

因此,如果有人知道为什么会发生这种情况以及如何解决,那就太好了。如果没有,如果有另一种可以运行以禁用UAC的PowerShell命令,那也值得一试。


1
相关 - Ansgar Wiechers
所以你不是在问如何禁用UAC,而是在问为什么当UAC被禁用时Edge无法工作? - Matt
@Matt,为什么当通过PowerShell命令行禁用UAC时,Edge不起作用。通过GUI禁用一切都正常,但我需要自动化在大量计算机上远程运行。 - Sam
谢谢@AnsgarWiechers提供的链接 - 这使我更清楚地了解了正在发生的事情。 实际上,我的Powershell行将UAC设置为0(我的编号),而GUI最低设置为1(这是我所需要的)。 - Sam
2个回答

17

看起来这就解决了问题:

Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0

重启后Edge仍在运行,令人恼火的UAC提示也消失了,所以我想这是一个胜利。


0

这是一个特定于Windows 10和Windows 8的问题。您不能在机器上拥有最小/无UAC并成为本地管理员。这实际上影响到的不仅仅是Edge,还包括所有现代应用程序,如计算器等。由于将浏览器作为管理员运行实际上是一件非常糟糕和不安全的事情,因此进行了更改以解决安全风险。请查看this文章获取更多信息。

通过GPO,如果启用“管理员批准模式”,则可以在没有UAC的情况下启动应用程序,但这也带来了一些缺点。

在我的公司中,我们将其放入特定OU的GPO中,并将所有Win10 / Win8设备放入其中,以便管理员批准尽可能少地影响设备。

您会注意到它在GUI禁用时起作用,因为您无法完全通过GUI禁用UAC,唯一的方法是使用注册表键。因此,即使您认为通过GUI禁用它,您也没有完全禁用它。


谢谢Nick。根据我对这篇文章及其评论的理解,通过Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name FilterAdministratorToken -Value 1可以启用管理员批准模式,但不幸的是,这似乎对我的问题没有产生作用。您提到的缺点是什么? - Sam
对不起,我不应该说“缺点”。相反,它只是超级烦人。如果启用了它,您将被提示输入凭据以进行任何需要提升权限的操作,即使您已经作为本地管理员登录。因此,您可以轻松打开 Edge 和计算器等应用程序,但是像 regedit、certmgr、gpedit 等则需要您输入凭据。 - Nick
1
感谢您的澄清。这并不理想 - 禁用UAC的主要目的是避免所有提示。我认为我只需要设计一条PowerShell命令行,将级别设置为“低”/“从不通知”,如此处所述:https://gallery.technet.microsoft.com/scriptcenter/How-to-switch-UAC-level-0ac3ea11 - Sam

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