윈도우 시작 시 자동 시작 프로그램
일단, 아래 링크에서 ‘Autoruns’를 설치한다. (MS에서 제공하는 거니까 괜찮다)
http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
Autoruns를 실행해보면 아래 그림과 같이 내컴퓨터에서 자동 실행되고 있는 모든 프로그램을 보여준다.
이 프로그램을 봐도, 인터넷을 뒤져봐도, 내가 아는 한,….
윈도우 시작할 때 프로그램을 자동으로 시작하는 방법에는 4가지가 존재한다. (더 있다면 제보좀..)
1. 시작 프로그램에 등록하는 방법
2. Registry의 Run에 등록하는 방법
3. 스케줄러에 등록하는 방법 (Windows Vista부터 지원)
4. 서비스에 등록하는 방법
분류로 놓고 보면 4가지인데, 위 그림의 ‘Autoruns’에서 보듯이 많~…..은 경로가 있다.
(각각의 자세한 위치는 아래에 작성)
다양한 경로가 존재하는 이유는 계정별(사용자 권한, 관리자 권한), 시스템별(32bit / 64bit)로 존재하기 때문이다.
Windows Vista부터 보안을 이유로 UAC(User Access Control : 사용자 계정 컨트롤)를 도입한 이후로 ‘관리자 권한’이라는 개념이 생겼다.
이 관리자 권한 때문에 윈도우의 registry 및 시스템 폴더 구조는 ‘사용자’와 ‘관리자’ 구조로 나뉘었다.
그리고 이런 구조가 나를 피곤하게 만들고, 이 글을 쓰게 하는 이유이다.
즉, ‘사용자’ 권한으로는 ‘관리자’ 권한이 필요한 행동을 할 수가 없다는 것이다.
다시 말하자면, ‘사용자 권한의 레지스트리 혹은 폴더’에서는 ‘관리자 권한의 프로그램’을 실행할 수 없다. HKCU\Software\Microsoft\Windows\CurrentVersion\Run 에 ‘관리자 권한 프로그램’을 등록해도 아무런 팝업이나 알람 없이 조용히 무시된다.
당연히 사용자 권한(asInvoker) 프로그램은 어디에나 등록해도 자동실행이 아주 잘 된다.
참고로, 나는 Visual Studio C++로 작업 중인데, [프로젝트 속성 > 링커 > 매니페스트 파일] > UAC 실행 수준을 ‘asInvoker’로 설정하고 컴파일 하면 사용자 권한 프로그램으로 만들어 지며, ‘requireAdministrator’로 세팅하고 컴파일 하면 관리자 권한 프로그램으로 만들어 진다.
대신 HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run에 등록하면 정말 실행한 건지 팝업(prompt)을 뜨면서 실행할 수 있다.
팝업이 싫으면 3번의 방법을 이용해야 한다.
그런데 Wow6432Node는 64bit 시스템에만 존재하니까,
Windows 7 32bit컴퓨터에는 ‘HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run’에 등록하면 되겠지’라는 생각을 갖고 했더니, 실행이 안된다. (역시 조용히 무시됨)
그럼 방법이 없느냐?
3번의 방법(스케줄러에 등록)을 사용하면 관리자 권한의 프로그램을 실행할 수 있다.
그러나 스케줄러에 등록하여 서비스를 해본 결과 자동 실행이 잘 안되는 경우가 종종 있었다. 모든 원인을 다 파악할 수 없었지만, 스케줄러가 비활성화되어 있는 경우도 있더라…
4.번(서비스에 등록)은 테스트 결과 ‘관리자 권한’도 잘 동작하는 것으로 확인되었으나, 작업 과정이 좀 복잡한 것 같다. 실제 해보진 않아서 패쓰~
그래서!!!
아직 나이스하고 완벽한 방법은 없다라는 결론을 내리면서, 이 글을 작성한다. ㅠ
아무튼,
자동 실행 하기 위한 각각의 위치를 살펴보면,
1. 시작 프로그램에 등록
사용자 : C:\Users\del4u\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
관리자 : C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
2. Registry의 Run에 등록하는 방법
사용자 : HKCU\Software\Microsoft\Windows\CurrentVersion\Run
관리자 32bit : HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
관리자 64bit : HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
‘Autoruns’ 프로그램에 보면 이외에도 많이 있지만,
모든 경우를 테스트를 못해봤기도 하고, 위의 3가지가 대표적으로 사용된다.
3. 스케줄러에 등록하는 방법 (Windows Vista부터 지원)
관리자 권한 : 내컴퓨터 > 관리 > 작업스케줄러
4. 서비스에 등록하는 방법 (구글링 해 보세요 ㅠ)
관리자 권한 : 내컴퓨터 > 관리 > 서비스에서 서비스되고 있는 목록 확인
HKLM\System\CurrentControlSet\Services
자동실행을 위한 결론,
Windows XP에서는 어떤 방법이든 큰 문제가 없다.
Windows Vista, 7, 8은 64bit에서만 ‘관리자’권한 프로그램이 자동실행 된다. (단 팝업이 뜬다)
32bit에서는 자동실행이 안된다.
팝업이 싫거나 32bit에서도 ‘관리자’권한 프로그램이 실행되도록 하려면, ‘작업 스케줄러’를 이용한다. 단, 이것도 100% 확신은 할 수 없다.
이상 끝
워드 파일 :