Beim Versuch, eine von Microsoft signierte ClickOnce-Anwendung zu installieren, erscheint die Fehlermeldung "Ihr Administrator hat diese Anwendung blockiert, da sie möglicherweise ein Sicherheitsrisiko für Ihren Computer darstellt" und "Ihre Sicherheitseinstellungen lassen die Installation dieser Anwendung auf Ihrem Computer nicht zu".
Als Administrator, der diese Richtlinien festgelegt hat, kann ich beim besten Willen nicht herausfinden, warum diese Anwendung nur für einen Benutzer blockiert wird und nicht für andere Benutzer, deren PCs auf demselben Image basieren, und warum sie für andere Benutzer funktioniert, die dieselben Berechtigungen haben sollten wie der Benutzer, der die folgende Meldung erhält. Beachten Sie, dass für diesen Benutzer, bei dem der Fehler auftritt, genau dieselben Domänengruppenrichtlinien gelten wie für Benutzer, bei denen der Fehler nicht auftritt.
Auch der Versuch, die Anwendung "als Administrator" auszuführen, löst das Problem nicht. In den Ereignisprotokollen werden keine Fehler angezeigt, und ich kann auch sonst keine Protokolle finden, die bei der Diagnose des Problems helfen.
Welche lokalen Richtlinien oder Einstellungen würden diese Anwendung zulassen oder verbieten?
Dies wird durch das "ClickOnce Trust Prompt Behavior" verursacht: https://msdn.microsoft.com/en-us/library/ee308453.aspx
Um dies zu ändern, ändern Sie einfach die Werte in der Registrierung und Sie sollten in der Lage sein, die Anwendung zu installieren.
So aktivieren Sie die ClickOnce-Vertrauensabfrage mithilfe des Registrierungseditors Öffnen Sie
den Registrierungseditor:
Klicken Sie auf Start und dann auf Ausführen.
Geben Sie im Feld Öffnen den Befehl regedit32 ein, und klicken Sie auf OK.
Suchen Sie den folgenden Registrierungsschlüssel:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT.NETFramework\Security\TrustManager\PromptingLevel
Wenn der Schlüssel nicht existiert, erstellen Sie ihn.
Fügen Sie die folgenden Unterschlüssel als String Value hinzu, wenn sie nicht bereits existieren, mit den in der folgenden Tabelle aufgeführten zugehörigen Werten.
Auf meinem Computer waren die Werte auf "Deaktiviert" gesetzt, und ich habe keine Ahnung, welche Anwendung das getan hat. Ich habe die Werte auf Standardwerte geändert, und jetzt funktioniert alles wieder wie es sollte.
Sie können auch einfach den Schlüssel "TrustManager" selbst löschen und alles funktioniert wieder.
Hier ist ein Powershell-Skript, das die Werte aktualisiert:
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'
Es reicht aus, den obigen Code zu kopieren und einzufügen, und zwar in der erweiterten Powershell (Rechtsklick auf Als Administrator ausführen).
Wenn Sie eine Fehlermeldung erhalten, liegt es wahrscheinlich daran, dass der Pfad nicht existiert, führen Sie folgende Befehle aus
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'