2017-09-21 19:39:36 +0000 2017-09-21 19:39:36 +0000
79
79

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

当试图安装一个微软签名的ClickOnce应用程序时,出现一个错误,说明 “您的管理员已经阻止了这个应用程序,因为它可能对您的计算机构成安全风险 "和 "您的安全设置不允许在您的计算机上安装这个应用程序"。

作为设置上述策略的管理员,我实在想不通,为什么只对一个用户进行阻止,而不是对基于相同映像的其他用户进行阻止,以及为什么对其他用户有效,而其他用户应该享有与收到以下消息的用户相同的权限。请注意,对遇到错误的用户和没有收到错误的用户应用了完全相同的域组策略。

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

什么本地策略或设置会允许或拒绝该应用程序?

答案 (2)

108
108
108
2017-09-22 12:00:59 +0000

这是由 “ClickOnce Trust Prompt Behavior "引起的。 https://msdn.microsoft.com/en-us/library/ee308453.aspx

要调整这个问题,只需更改注册表中的值,就可以安装应用程序了。

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

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

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

找到以下注册表键:

\HKEY/LOCAL/MACHINE/SOFTWARE/MICROSOFT/.NETFramework/Security/TrustManager/PromptingLevel

如果该键不存在,创建它。

如果下列子键还不存在,则将其添加为字符串值,相关值如下表所示。

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

或者你可以直接删除 "TrustManager "这个键本身,一切都能正常工作。


4
4
4
2019-10-03 12:46:33 +0000

下面是一个可以更新值的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 'Enabled'

只需复制/粘贴上面的代码,在 “高阶 "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 'Enabled'
```。