NSIS와 최근에 UAC와의 상호 작용과 관련된 문제가 발생했지만이를 설명하기가 어려울뿐만 아니라 앞으로이를 방지하는 방법을 알지 못합니다.NSIS가 IIS 시스템 파일의 소유권을 가져옴
NsisIIS 플러그인을 사용하여 IIS 가상 디렉터리를 만들고 제거하는 설치 관리자가 있습니다. 설치 프로그램이 내 Windows 7 워크 스테이션에서 제대로 작동하는 것처럼 보였습니다. 설치 관리자가 Windows 2008 R2 서버에서 실행될 때 제대로 설치되었지만 제거 프로그램이 모든 가상 디렉터리를 제거하고 IIS를 사용할 수 없게되었습니다. 내가 기본 웹 사이트를 제거하고 다시 추가해야한다는 요지까지.
나는 결국 C:\Windows\System32\inetsrv\config
아래의 모든 IIS 구성 파일에 자물쇠 아이콘이 있다는 것을 발견했습니다.
그러나 모든 파일은 파일의 소유자로 SYSTEM
을 나열, 이것은 사용자 계정이 파일의 소유권을 취한 뜻을 나타 내기 위해 보인다. 설치 프로그램을 실행하지 않은 다른 서버를 확인했는데 이 아니라에 IIS 파일에 잠금 아이콘이 적용되어 있지 않습니다.
NSIS 설치 프로그램이 생성하는 다른 파일에도 동일한 자물쇠 아이콘이 나타납니다. 예를 들어, 설치자가 완료된 후에 자물쇠 아이콘과 함께 나타나는 NSIS ReplaceInFile을 사용하여 처리되는 Web.Config.tpl
파일이 있습니다.
다른 사용자 계정에 파일에 대한 액세스 권한을 명시 적으로 부여하면 잠금 아이콘이 사라집니다.
나는 2008 R2 서버의 로컬 관리자 계정으로 설치 프로그램을 실행, 그래서는 UAC 프롬프트를하지 않습니다.
- 어떻게 이런 일이 않았다 : 여기 세 가지 질문은이 사건에서 유래 한
install.nsi
파일RequestExecutionLevel admin Section "Application" APP_SECTION SectionIn RO Call InstallApp SectionEnd Section "un.Uninstaller Section" Delete "$PROGRAMFILES\${PROGRAMFILESDIR}\Uninstall.exe" Call un.InstallApp SectionEnd Function InstallApp File /oname=Web.Config Web.Config.tpl !insertmacro ReplaceInFile Web.Config %CONNECTION_STRING% $CONNECTION_STRING FunctionEnd Function un.InstallApp ReadRegStr $0 HKLM "Software\${REGKEY}" "VirtualDir" NsisIIS::DeleteVDir "$0" Pop $0 FunctionEnd
에서 관련 코드는?
- 다시 설치되지 않도록 설치 프로그램을 어떻게 해결할 수 있습니까?
- IIS 구성 파일의 사용 권한을 어떻게 복구 할 수 있습니까?
UAC 플러그인 사용 여부에 대한 의견이 여기에 도움이 될 수 있습니까? – Lucas
@ 루카스 : 도움이 안된다. UAC 플러그인은 당신에게 더 적은 권한을 주지만, 더 이상은 system32에 쓸 수 없다. – Anders