尝试安装 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'