보안 설정으로 인해 ClickOnce 응용 프로그램을 설치할 수 없음 (Windows 10) 서명 한 ClickOnce 응용

Microsoft에서 서명 한 ClickOnce 응용 프로그램을 설치하려고하면 “컴퓨터에 보안 위험이있을 수 있으므로 관리자가이 응용 프로그램을 차단했습니다.”및 “보안 설정으로 인해이 응용 프로그램을 컴퓨터에 설치할 수 없습니다”라는 오류가 나타납니다. .

이 정책을 설정 한 관리자로서 필자는 일생 동안 PC가 동일한 이미지를 기반으로하는 다른 사용자가 아닌 한 명의 사용자에 대해서만 차단되는 이유와 다른 사용자가 사용해야하는 이유를 파악할 수 없습니다. 다음 메시지를 수신 한 사용자와 동일한 권한을 즐기십시오. 오류가 발생한이 사용자와 오류가없는 사용자에게 정확히 동일한 도메인 그룹 정책이 적용됩니다.

임 구르

“관리자 권한으로”응용 프로그램을 실행해도 문제가 해결되지 않습니다. 이벤트 로그에 오류가 표시되지 않으며 문제 진단에 도움이되는 로그를 찾을 수 없습니다.

이 응용 프로그램을 허용하거나 거부하는 로컬 정책 또는 설정은 무엇입니까?



답변

이것은 “ClickOnce 신뢰 프롬프트 동작”때문입니다. https://msdn.microsoft.com/en-us/library/ee308453.aspx

이를 조정하려면 레지스트리에서 값을 변경하기 만하면 응용 프로그램을 설치할 수 있습니다.

레지스트리 편집기를 사용하여 ClickOnce 신뢰 프롬프트를 활성화하려면 레지스트리 편집기를 엽니 다.

시작을 클릭 한 다음 실행을 클릭하십시오.

열기 상자에 regedit32를 입력 한 다음 확인을 누릅니다.

다음 레지스트리 키를 찾으십시오.

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

키가 없으면 작성하십시오.

다음 하위 키가없는 경우 다음 표에 표시된 관련 값과 함께 문자열 값으로 추가하십시오.

테이블 이미지

내 컴퓨터에서 값이 “사용 안 함”으로 설정되었으며 어떤 응용 프로그램을 수행했는지 전혀 알 수 없습니다. 값을 기본값으로 변경했으며 이제 모든 것이 정상적으로 작동합니다.

또는 “TrustManager”키 자체를 삭제하면 모든 것이 제대로 작동합니다.



답변

다음은 값을 업데이트하는 powershell 스크립트입니다.

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'

“상승 된”powershell에서 위의 코드를 복사 / 붙여 넣기 만하면 충분합니다 (관리자로 마우스 오른쪽 단추 클릭).

그리고 오류가 발생하면 경로가 존재하지 않기 때문일 수 있습니다.이 명령을 실행하십시오.

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'


답변