윈도우를 구동할시에는 윈도우가 자동적으로 로드를 하여 구동을 시키는 프로그램들이 있는데, 이를 (자동)시작프로그램 이라고 합니다.


보통, 시작표시줄 -> 모든 프로그램 -> 시작 프로그램 에 해당 프로그램의 바로가기 아이콘을 넣어두면 자동으로 시작하게 되며, 윈도우에 대해 잘 아시는 유저라면 레지스트리에 해당 프로그램의 경로 및 명령프롬프트를 작성하여 자동실행을 시킬 수도 있다는 것을 아실겁니다.


이런 레지스트리 경로로 설정하여 시작프로그램을 처리하는 레지스트리 경로에는 몇몇 다른 경로가 존재하며, 각각의 경로마다 로드되어지는 순서가 다르게 됩니다.


편의상 자동적으로 시작되어져야 하는 프로그램 중 가장 먼저 자동으로 실행되게 해야 하거나, 나중에 실행되어 져야 하는 등 순차적인 실행이 필요한 경우나, 로그인 전에 자동시작 되어야 하는 프로그램을 설정하여야 하는 경우 또는 이런 시작 순서의 차이로 인해 부팅 후 윈도우를 시작하는데 딜레이가 생기거나 해당 어플리케이션의 문제가 생기는 경우도 있는데, 이러한 위의 예를 든 경우 아래의 정보가 유용하게 사용되어 질수 있을 듯 합니다.

또한 추가적으로 아래의 자동시작 프로그램의 레지스트리 경로를 알고 있다면 악성 프로그램 등의 시작 프로그램이 어느 경로로 설치되어 있는지 등도 부가적으로 확인할 수가 있으며, 윈도우를 관리하는데 편리하게 사용할 수도 있을 듯 합니다.

 




이제 차례대로 알아본다면,


1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce


2. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices


<로그인>


3. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce


4. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run


5. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run


6. All Users Startup folder : Documents and Settings\All Users\Start Menu\Programs\Startup folder


7. Startup folder : Documents and Settings\user\Start Menu\Programs\Startup folder

                            NT 경우 : path is Profiles\user\Start Menu\Programs\Startup


8. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce


의 레지스트리 경로 순서대로 시작프로그램들이 순차적으로 로드 되며, 각 키 안에서의 우선순위는 먼저 설치된 프로그램 순입니다. (오른쪽 창의 데이터순서)


* 시스템구성 유틸리티(msconfig) 안에서 실행되는 시작프로그램은 4,5,6,7번과 같습니다.

   1,2,3,8번을 제외하고 msconfig 내의 시작프로그램순서는 프로그램이 로드되는 순과 같습니다.


* HKEY_LOCAL_MACHINE\...\RunOnce 레지스트리 키에 있는 실행프로그램들의 실행순서는 정해져있지 않고,

  동시에 로드되게 됩니다.


* RunServicesOnce 키와 RunServices 키는 사용자가 로그온 하기 전에 로드됩니다.(일부 백신프로그램 등의 경우

  에는 이 경로에 해당 시작프로그램 경로를 작성하기도 합니다. 로그인 전에 자동실행 시킬 어플리케이션이 있다면

  여기에 경로및 데이터를 작성하시면 됩니다.)


* 만일 다른 프로그램에 종속되어 실행되는 시작프로그램이 있다면, 종속되어진 시작 프로그램은 선행된 시작프로그

  램이 완전히 끝날 때 까지 대기하게 되며, 이것을 제외하고는 위에 나열된 순으로 로드됩니다.


* 안전 모드에서 시작할 경우 Run 키가 모두 무시됩니다. RunOnce 키의 경우 값의 이름 앞에 별표(*)를 붙여 안전

  모드에서도 관련된 경로의  프로그램을 실행시킬 수도 있습니다.


* 물론, 윈도우즈는 프로그램을 배치 프로세싱 하는 것이 아니고 멀티 프로세싱을 하기 때문에 프로그램의 로드를

  시작하는 순서는 정할 수 있어도 프로그램의 크기에 따라 최종 로드 시간이 서로 다르고 또 그 당시의 CPU 상황

  과 디스크의 단편화 등등... 편차가 무척 많기 때문에 로드가 끝나는 순서는 충분히 달라 질수 있습니다.


위의 각 키별 시작 레지스트리를 조작할 경우에는 큰 문제가 생기지는 않으나, 다른 경로의 레지스트리들을 사용자 임의로 처리할 경우 윈도우에 심각한 문제가 생길수도 있으므로 조심해야 할 듯 합니다.


다소 난이도가 있는 팁이지만, 필요하신 분도 있을 듯해서 한번 올려봅니다.



추가로 한가지 더...


간혹 시작프로그램에서 지우고픈 것이 잇어서, 시작레지의 RUN에서 목록을 지워도 이게 레지스트리를 다시 실행 할 때 마다 등록 되는 놈들이 있습니다. (일부 악성코드, 에드웨어 등등을 수동으로 잡을 경우)


그 것은 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg]

여기에 등록이 되어 있기 때문에 레지스트리 실행 할 때마다 해당 값을 복구 합니다... 



http://cafe.naver.com/xpiapc.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=107

블로그 이미지

란마12

,