Når du forsøker å installere et Microsoft-signert ClickOnce-program, vises en feilmelding som sier "Administratoren din har blokkert dette programmet fordi det potensielt utgjør en sikkerhetsrisiko for datamaskinen din" og "Sikkerhetsinnstillingene dine tillater ikke at dette programmet installeres på datamaskinen din".
Som administratoren som skulle ha angitt disse retningslinjene, kan jeg ikke skjønne hvorfor dette blokkeres for én bruker og ikke for andre brukere som har PC-er basert på samme image, og hvorfor det fungerer for andre brukere som burde ha de samme rettighetene som brukeren som mottar følgende melding. Legg merke til at nøyaktig de samme domenegruppepolicyene brukes på denne brukeren som opplever feilen, og på brukere som ikke opplever feilen.
Selv om jeg prøver å kjøre applikasjonen "som administrator", løser det ikke problemet. Hendelsesloggene viser ingen feil, og jeg finner ellers ingen logger som kan hjelpe meg med å diagnostisere problemet.
Hvilke lokale retningslinjer eller innstillinger kan tillate eller nekte denne applikasjonen?
Dette skyldes "ClickOnce Trust Prompt Behavior": https://msdn.microsoft.com/en-us/library/ee308453.aspx.
For å justere dette er det bare å endre verdiene i registeret, så skal du kunne installere programmet.
Slik aktiverer du ClickOnce Trust Prompt ved hjelp av registerredigeringsprogrammet Åpne Registerredigeringsprogrammet:
Klikk på Start, og klikk deretter på Kjør.
Skriv inn regedit32 i Åpne-boksen, og klikk deretter på OK. Klikk deretter på OK; Finn følgende registernøkkel:
\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT.NETFramework\Security\TrustManager\PromptingLevel
Hvis nøkkelen ikke finnes, opprett den. Legg til følgende undernøkler Legg til følgende undernøkler som String Value, hvis de ikke allerede hvis de ikke allerede finnes, med de tilhørende verdiene som vises i tabellen nedenfor.
På min datamaskin var verdiene satt til "Disabled" og jeg har ingen anelse om hvilket program som gjorde det. Jeg endret verdiene til standardverdier, og nå fungerer alt som det skal igjen.
Du kan også bare slette selve nøkkelen "TrustManager", så fungerer alt som det skal.
Her er et powershell-skript som oppdaterer verdiene:
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'
Det er bare å kopiere og lime inn koden ovenfor i powershell (høyreklikk på Kjør som administrator).
Og hvis du får noen feil, er det sannsynligvis fordi banen ikke finnes, så kjør disse kommandoene
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'