Nie można zainstalować aplikacji ClickOnce z powodu ustawień zabezpieczeń (Windows 10)

70

Podczas próby zainstalowania podpisanej przez Microsoft aplikacji ClickOnce pojawia się błąd informujący: „Administrator zablokował tę aplikację, ponieważ potencjalnie stanowi zagrożenie dla bezpieczeństwa komputera” oraz „Twoje ustawienia zabezpieczeń nie pozwalają na zainstalowanie tej aplikacji na komputerze” .

Jako administrator, który ustaliłby wspomniane zasady, nie mogę przez całe życie dowiedzieć się, dlaczego jest to blokowane tylko dla jednego użytkownika, a nie dla innych użytkowników, których komputery są oparte na tym samym obrazie i dlaczego działa dla innych użytkowników, którzy powinni być korzystający z tych samych uprawnień, co użytkownik otrzymujący następujący komunikat. Pamiętaj, że dokładnie takie same zasady grupy domen są stosowane do tego użytkownika, który doświadcza błędu, i do użytkowników, którzy nie otrzymują błędu.

Imgur

Nawet próba uruchomienia aplikacji „jako administrator” nie rozwiązuje problemu. Dzienniki zdarzeń nie zawierają błędów i nie mogę znaleźć żadnych dzienników, które mogłyby pomóc w zdiagnozowaniu problemu.

Jakie lokalne zasady lub ustawienia zezwalają na tę aplikację lub ją odmawiają?

Beems
źródło
Wymaga Strefy Internetowej lub Intranetowej (pełne zaufanie do instalacji CD-ROM) zgodnie z msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
To ostrzeżenie występuje na komputerze jednego użytkownika, czy masz wielu użytkowników na wielu komputerach i masz ten problem?
Ramhound,
W pierwotnym pytaniu zauważyłem, choć być może nie dość wyraźnie, że został on zablokowany dla „tylko jednego użytkownika”.
Beems
To wydaje się dużym problemem (34 438 wyświetleń). Jak mogę temu zapobiec na komputerze innej osoby, jeśli jestem programistą? Ten problem powstał w wyniku tworzenia programów w programie Visual Studio i próby uruchomienia pliku Setup.exe dla mojego programu.
Daniel
@Daniel Jeśli twoja aplikacja nie wymaga eskalacji, możesz spróbować ustawić wartość rejestru w HKCU zamiast: HKCU\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Internetna Enabled(pełne ujawnienie: nie testowałem tego). W przeciwnym razie, jeśli to nie zadziała, możesz spróbować dołączyć proces umożliwiający eskalację, który ustawi go pod HKLM
Beems

Odpowiedzi:

94

Jest to spowodowane „Zachowaniem monitu zaufania ClickOnce”: https://msdn.microsoft.com/en-us/library/ee308453.aspx

Aby to zmienić, po prostu zmień wartości w Rejestrze, aby móc zainstalować aplikację.

Aby włączyć monit zaufania ClickOnce za pomocą edytora rejestru Otwórz edytor rejestru:

Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.

W polu Otwórz wpisz regedit32, a następnie kliknij przycisk OK.

Znajdź następujący klucz rejestru:

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

Jeśli klucz nie istnieje, utwórz go.

Dodaj następujące podklucze jako Wartość ciągu, jeśli jeszcze nie istnieją, wraz z powiązanymi wartościami pokazanymi w poniższej tabeli.

Obraz w tabeli

Na moim komputerze wartości zostały ustawione na „Wyłączone” i nie mam pojęcia, która aplikacja to zrobiła. Zmieniłem wartości na domyślne i teraz wszystko działa ponownie tak, jak powinno.

Możesz też po prostu usunąć sam klucz „TrustManager” i wszystko również działa.


Thomas Sturzenegger
źródło
14
Dzięki, to rzeczywiście był problem. Zmieniłem "HKLM\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Internet"się Enabledi działa jako przeznaczone-teraz.
Beems
1
Chciałbym wspomnieć, że domyślną opcją jest „Włączone” dla wszystkich witryn oprócz niezaufanych.
Hooch
3
W moim przypadku muszę zmienić \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevelnaEnabled
MaciejLisCK
2
Istnieją różne wpisy dla różnych stref, takich jak Internet, LocalIntranet, MyComputer, TrustedSites, UntrustedSites. Wybierz ten, który pasuje do Twojego scenariusza i zmień jego wartość na Enabled.
smwikipedia
4
jak, do diabła, powinien to zrobić zwykły użytkownik? ok cóż mam na myśli, że jeśli ktoś nie jest głupi, może google znaleźć tę odpowiedź i zrobić to ... ale wiesz, co mam na myśli, co za ból w dupie. Gdyby Windows nie był najlepszym systemem operacyjnym pod względem produktywności, nie dałbym rady z tym badziewiem (i automatycznym aktualizowaniem wymuszonym ponownym uruchomieniem)
Mikey
2

Oto skrypt PowerShell, który zaktualizuje wartości:

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'

Wystarczy skopiować / wkleić powyższy kod w „podwyższonym” programie PowerShell (kliknij prawym przyciskiem myszy jako administrator).

A jeśli wystąpią jakieś błędy, to prawdopodobnie dlatego, że ścieżka nie istnieje, uruchom te polecenia

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ć
źródło