由于安全设置,无法安装 ClickOnce 应用程序(Windows 10)

由于安全设置,无法安装 ClickOnce 应用程序(Windows 10)

尝试安装 Microsoft 签名的 ClickOnce 应用程序时,出现一条错误,指出“您的管理员已阻止此应用程序,因为它可能对您的计算机造成安全风险”和“您的安全设置不允许将此应用程序安装在您的计算机上”。

作为制定上述策略的管理员,我无论如何也想不通为什么只对一个用户阻止了该操作,而对其他使用相同映像的 PC 的用户却没有阻止,为什么其他用户也能使用相同的操作,而这些用户应该享有与收到以下消息的用户相同的权限。请注意,对遇到错误的用户和未收到错误的用户应用了完全相同的域组策略。

图片

即使尝试“以管理员身份”运行该应用程序也无法解决问题。事件日志未显示任何错误,我找不到任何日志来帮助诊断问题。

哪些本地策略或设置会允许或拒绝该申请?

答案1

这是由“ClickOnce 信任提示行为”引起的:https://msdn.microsoft.com/en-us/library/ee308453.aspx

要调整这一点,只需更改注册表中的值,然后您就可以安装该应用程序。

使用注册表编辑器启用 ClickOnce 信任提示打开注册表编辑器:

单击“开始”,然后单击“运行”。

在打开框中,键入 regedit,然后单击确定。

查找以下注册表项:

\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel

如果该密钥不存在,则创建它。

如果以下子项尚不存在,请将其添加为字符串值,并根据下表显示相关值。

表格图像

在我的电脑上,这些值被设置为“已禁用”,我不知道是哪个应用程序设置的。我将这些值更改为默认值,现在一切都恢复正常了。

或者您可以直接删除键“TrustManager”本身,一切照旧。


答案2

以下是将更新值的 powershell 脚本:

Set-Itemproperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'Internet' -value 'Enabled'
Set-Itemproperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'LocalIntranet' -value 'Enabled'
Set-Itemproperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'MyComputer' -value 'Enabled'
Set-Itemproperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'TrustedSites' -value 'Enabled'
Set-Itemproperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'UntrustedSites' -value 'Disabled'

只需在“提升的”powershell 中复制/粘贴上述代码就足够了(右键单击以管理员身份运行)。

如果出现一些错误,可能是因为路径不存在,然后运行此命令

New-Item "HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel" -force | Out-Null
New-ItemProperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'Internet' -value 'Enabled'
New-ItemProperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'LocalIntranet' -value 'Enabled'
New-ItemProperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'MyComputer' -value 'Enabled'
New-ItemProperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'TrustedSites' -value 'Enabled'
New-ItemProperty -path 'HKLM:\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel' -Name 'UntrustedSites' -value 'Disabled'

相关内容