ClickOnce-Anwendung kann aufgrund der Sicherheitseinstellungen nicht installiert werden (Windows 10)

70

Beim Versuch, eine von Microsoft signierte ClickOnce-Anwendung zu installieren, wird der Fehler "Ihr Administrator hat diese Anwendung blockiert, da dies möglicherweise ein Sicherheitsrisiko für Ihren Computer darstellt" und "Aufgrund Ihrer Sicherheitseinstellungen kann diese Anwendung nicht auf Ihrem Computer installiert werden" angezeigt. .

Wie der Administrator, der diese Richtlinien festgelegt hätte, nicht für mein ganzes Leben herausfinden kann, warum dies nur für einen Benutzer und nicht für andere Benutzer blockiert wird, deren PCs auf demselben Image basieren, und warum dies für andere Benutzer funktionieren sollte Sie haben die gleichen Berechtigungen wie der Benutzer, der die folgende Nachricht empfängt. Beachten Sie, dass auf diesen Benutzer, bei dem der Fehler auftritt, und auf Benutzer, die den Fehler nicht erhalten, genau dieselben Domänengruppenrichtlinien angewendet werden.

Imgur

Auch der Versuch, die Anwendung "als Administrator" auszuführen, löst das Problem nicht. In den Ereignisprotokollen werden keine Fehler angezeigt, und ansonsten kann ich keine Protokolle zur Diagnose des Problems finden.

Welche lokalen Richtlinien oder Einstellungen erlauben oder verweigern diese Anwendung?

Beems
quelle
Es erfordert eine Internet- oder Intranetzone (vollständige Vertrauenswürdigkeit für die CD-ROM-Installation) gemäß msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
Diese Warnung tritt auf dem Computer eines einzelnen Benutzers auf, oder gibt es mehrere Benutzer auf mehreren Computern, bei denen dieses Problem auftritt?
Ramhound
In der ursprünglichen Frage habe ich, wenn auch möglicherweise nicht ganz klar, festgestellt, dass sie für "nur einen Benutzer" gesperrt wurde.
Beems
Dies scheint ein großes Problem zu sein (34.438 Aufrufe). Wie kann ich verhindern, dass dies auf dem Computer einer anderen Person passiert, wenn ich Entwickler bin? Dieses Problem ergab sich aus dem Erstellen von Programmen in Visual Studio und dem Versuch, die Setup.exe für mein Programm auszuführen.
Daniel
@ Daniel Wenn Ihre Anwendung keine Eskalation erfordert, können Sie versuchen, den Registrierungswert unter HKCU stattdessen auf: HKCU\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Internetto Enabled(Vollständige Offenlegung: Ich habe dies nicht getestet) festzulegen . Andernfalls können Sie versuchen, einen eskalierbaren Prozess einzuschließen, der ihn unter HKLM
Beems

Antworten:

94

Dies wird durch das "ClickOnce Trust Prompt-Verhalten" verursacht: https://msdn.microsoft.com/en-us/library/ee308453.aspx

Um dies anzupassen, ändern Sie einfach die Werte in der Registrierung und Sie sollten in der Lage sein, die Anwendung zu installieren.

So aktivieren Sie die Eingabeaufforderung von ClickOnce Trust mithilfe des Registrierungseditors Öffnen Sie den Registrierungseditor:

Klicken Sie auf Start und dann auf Ausführen.

Geben Sie in das Feld Öffnen regedit32 und klicken Sie dann auf OK.

Suchen Sie den folgenden Registrierungsschlüssel:

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

Wenn der Schlüssel nicht vorhanden ist, erstellen Sie ihn.

Fügen Sie die folgenden Unterschlüssel als Zeichenfolgenwert hinzu, sofern sie noch nicht vorhanden sind. Die zugehörigen Werte sind in der folgenden Tabelle aufgeführt.

Tabellenbild

Auf meinem Computer wurden die Werte auf "Deaktiviert" gesetzt und ich habe keine Ahnung, welche Anwendung das getan hat. Ich habe die Werte auf Standard geändert und jetzt funktioniert alles wieder wie es sollte.

Oder Sie löschen einfach den Schlüssel "TrustManager" selbst und alles funktioniert auch.


Thomas Sturzenegger
quelle
14
Danke, das war in der Tat das Problem. Ich wechselte "HKLM\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Internet"zu Enabledund es funktioniert jetzt wie vorgesehen.
Beems
1
Ich möchte erwähnen, dass die Standardoption für alle außer nicht vertrauenswürdigen Sites "Aktiviert" ist.
Hooch
3
In meinem Fall muss ich umsteigen \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevelaufEnabled
MaciejLisCK
2
Es gibt verschiedene Einträge für verschiedene Zonen, z. B. Internet, LocalIntranet, MyComputer, TrustedSites, UntrustedSites. Wählen Sie das für Ihr Szenario geeignete aus und ändern Sie den Wert in Enabled.
Smwikipedia
4
Wie zum Teufel soll ein normaler Benutzer das tun? OK, ich meine, wenn jemand nicht dumm ist, kann er googeln und diese Antwort finden und es tun. Aber Sie wissen, was ich meine, was für ein Schmerz im Arsch. Wenn Windows nicht das beste Betriebssystem für Produktivität wäre, würde ich diesen Mist (und den erzwungenen Neustart mit automatischer Aktualisierung) nicht
ertragen
2

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, nur den obigen Code zu kopieren / einzufügen (Rechtsklick als Administrator ausführen).

Und wenn Sie einige Fehler bekommen, liegt das wahrscheinlich daran, dass der Pfad nicht existiert. Führen Sie dann diese 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'
Aleksandar Pavić
quelle