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'