- HOME
- Post in | and so on/윈도우서비스
- Post at | 2013. 2. 28. 14:30 | by 밀크빵.
- View comment
4. Admin 권한으로 실행되는 프로그램에 대한 정리
- Admin 권한으로 실행되는 프로그램에 대한 정리
1. 계정에 관리자 권한을 부여 한다는 것이(Admin 권한으로 프로그램을 실행한다는 것이) 사용자 계정 컨트롤 경고 창 조차 발생하지 않도록 하는 것 인줄 잘못 알았다.... ㅡㅡㅋ
1. 계정별 설치 확인
A. 관리자 계정 – 사용자 계정 컨트롤의 값이 “항상 알림”일 때
i. OpenSCManager() 함수 사용시 액세스 거부 되어 설치 불가능
B. 사용자 계정
i. 관리자 계정과 같이 SCM 접근 불가로 설치 불가능
2. 계정에 관리자 권한 부여
A. 프로그램에 관리자 권한 부여 이유
i. 일반 프로그램의 경우 사용자가 프로그램을 실행하였을 때 UAC의 값에 따라 서비스가 실패되는 경우가 발생
ii. UAC 확인 창을 명시적으로 띄워 관리자 권한으로 프로그램을 실행 할 경우에 사용자가 권한을 허용할 경우 서비스 설치 가능해짐
B. Manifest파일 이용 방법과, 직접 코딩하여 관리자 권한을 부여하는 방법이 있음
C. 관리자 계정을 부여하지 않았을 경우 사용자가 수동으로 관리자 권한을 부여 하는 법
i. UAC 기능을 중지
1. 제어판 – 사용자 계정 및 가족 보호 – 사용자 계정
2. 사용자 계정 컨트롤 설정 변경의 값을 항상 알리지 않음으로 설정
ii. 실행 파일의 오른쪽 버튼 클릭 후 관리자 권한으로 이 프로그램 실행
iii. 실행 파일의 속성의 호환성 탭에서 관리자 권한으로 이 프로그램 실행 체크
3. Manifest파일 이용하는 방법과 직접 코딩으로 관리자 권한을 부여 하였을 때 장단점
A. Manifest 파일 이용
i. 장점 : 구현 용이, 코드 수정 없이 변경 가능
ii. 단점 : UAC 실행 수준의 값 만이 가능
B. 직접 코딩 이용
i. 장점 : 다양한 제어 가능
ii. 단점 : 코딩 부담
4. 직접 코딩으로 계정에 권한 부여
A. 사용자 계정에 권한을 할당하는 함수 생성
i. 권한에 SeServiceLogonRight 값 적용하여 권한 부여
1. 서비스로서 로그인
B. 프로세스에 권한을 할당하는 함수 생성
i. OpenProcessToken()
1. 프로세스의 Access Token을 가져옴
ii. LookupPrivilegeValue()
1. Access Token의 Privilege 목록에 권한이 있는지 살펴 봄
iii. AdjustTokenPrivilege()
1. 권한 활성화
5. Manifest 파일 이용하여 권한을 할당
A. Manifest 파일을 생성 (ex) add.manifest)
B. 프로젝트 파일에 생성한 Manifest 파일 포함
C. 프로젝트 속성 – 매니페스트 도구 – 추가 매니페스트 파일
i. 생성한 manifest 파일 이름으로 값 설정 (ex) $(ProjectDir)add.manifest
D. 프로젝트 속성 – 링커 – 매니페스트 파일 – UAC 실행 수준
i. requireAdministrator로 값 설정
E. 프로그램 실행 할 경우
F. UAC 확인 창을 명시적으로 확인 가능
'and so on > 윈도우서비스' 카테고리의 다른 글
5. 드라이버의 설치 및 확인 방법 (0) | 2013.03.11 |
---|---|
서비스 프로그램에서 ShellExecute 사용법 (0) | 2013.03.08 |
3. 드라이버 서비스 설치 (0) | 2013.02.28 |
2. 서비스 디버깅 (0) | 2013.02.28 |
1. 윈도우 서비스 프로그램 생성 (0) | 2013.02.28 |