No se puede instalar la aplicación ClickOnce debido a la configuración de seguridad (Windows 10)

70

Al intentar instalar una aplicación ClickOnce firmada por Microsoft, aparece un error que dice "Su administrador ha bloqueado esta aplicación porque potencialmente representa un riesgo de seguridad para su computadora" y "Su configuración de seguridad no permite que esta aplicación se instale en su computadora" .

Como administrador que habría establecido dichas políticas, por mi vida no puedo entender por qué esto se está bloqueando para un solo usuario y no para otros usuarios cuyas PC se basan en la misma imagen y por qué funciona para otros usuarios que deberían disfrutando de los mismos privilegios que el usuario que recibe el siguiente mensaje. Tenga en cuenta que se aplican exactamente las mismas políticas de grupo de dominio a este usuario que está experimentando el error y a los usuarios que no lo reciben.

Imgur

Incluso intentar ejecutar la aplicación "como administrador" no resuelve el problema. Los registros de eventos no muestran errores, y de lo contrario no puedo encontrar ningún registro para ayudar a diagnosticar el problema.

¿Qué políticas o configuraciones locales permitirían o denegarían esta aplicación?

Beems
fuente
Requiere Internet o Intranet Zone (Full Trust para la instalación de CD-ROM) de acuerdo con msdn.microsoft.com/en-us/library/142dbbz4(v=vs.90).aspx
Esta advertencia ocurre en la máquina de un solo usuario o si hay varios usuarios en varias máquinas, ¿tiene este problema?
Ramhound
Noté, aunque posiblemente no del todo claro, en la pregunta original que estaba siendo bloqueado para 'solo un usuario'.
Beems
Esto parece un gran problema (34,438 visitas). ¿Cómo puedo evitar que esto suceda en la computadora de otra persona si soy desarrollador? Este problema surgió al crear programas en Visual Studio e intentar ejecutar Setup.exe para mi programa.
Daniel
@Daniel Si su aplicación no requiere escalación, puede intentar establecer el valor del registro en HKCU en su lugar: HKCU\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Interneta Enabled(Divulgación completa: no he probado esto). De lo contrario, si eso no funciona, puede intentar incluir un proceso escalable que lo establecerá bajo HKLM
Beems

Respuestas:

94

Esto es causado por el "comportamiento de solicitud de confianza ClickOnce": https://msdn.microsoft.com/en-us/library/ee308453.aspx

Para ajustar esto, simplemente cambie los valores en el Registro y debería poder instalar la aplicación.

Para habilitar el indicador de confianza ClickOnce mediante el editor de registro Abra el editor de registro:

Haga clic en Inicio y luego en Ejecutar.

En el cuadro Abrir, escriba regedit32 y luego haga clic en Aceptar.

Encuentra la siguiente clave de registro:

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

Si la clave no existe, créela.

Agregue las siguientes subclaves como valor de cadena, si aún no existen, con los valores asociados que se muestran en la siguiente tabla.

Imagen de tabla

En mi computadora, los valores se establecieron en "Deshabilitado" y no tengo idea de qué aplicación hizo eso. Cambié los valores por defecto y ahora todo vuelve a funcionar como debería.

O simplemente puede eliminar la clave "TrustManager" y todo está funcionando también.


Thomas Sturzenegger
fuente
14
Gracias, este fue realmente el problema. He cambiado "HKLM\SOFTWARE\MICROSOFT\.NETFramework\Security\TrustManager\PromptingLevel\Internet"a Enabledy funciona como intencionadas ahora.
Beems
1
Me gustaría mencionar que la opción predeterminada es "Habilitada" para todos los sitios excepto para los que no son de confianza.
Hooch
3
En mi caso, necesito cambiar \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevelaEnabled
MaciejLisCK
2
Hay diferentes entradas para diferentes zonas, como Internet, LocalIntranet, MyComputer, TrustedSites, UntrustedSites. Elija el que se ajuste a su escenario y cambie su valor a Enabled.
smwikipedia
44
¿Cómo demonios se supone que un usuario normal debe hacer esto? ok bueno, quiero decir que si alguien no es estúpido, pueden buscar en Google y encontrar esta respuesta y hacerlo ... pero ya sabes a qué me refiero, qué dolor de cabeza. Si Windows no fuera el mejor sistema operativo para la productividad, no aguantaría esta basura (y el reinicio forzado de actualización automática)
Mikey
2

Aquí hay un script de PowerShell que actualizará los valores:

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 suficiente con copiar / pegar el código anterior, en powershell "elevado" (haga clic con el botón derecho en ejecutar como administrador).

Y si obtiene algunos errores, probablemente sea porque la ruta no existe, ejecute estos comandos

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ć
fuente