느린 로그온이 발생하는 경우(Part 2)
원문주소 : So you have a slow logon…? (Part 2)
http://blogs.technet.com/askds/archive/2009/09/24/so-you-have-a-slow-logon-part-2.aspx
밥 드레이커(Bob Drake)입니다. 느린 로그온 시리즈의 두번째 부분에 오신 것을 환영합니다. 이 부분에서는 느린 로그온 문제를 확인하는 것을 도와주는 몇 가지 간단한 문제해결 기술을 다루도록 하겠습니다.
어디에서 느린 현상이 발생하는지 구분하는 것은 어렵지 않습니다...
l 전원 버튼을 누르고 로그온 화면이 나타날 때까지 느린가?
l 로그온 화면까지 빠르고 데스크탑이 나타날 때까지 느린가?
l 모두 사용자이고, 관리자가 아닌가?
l 위의 사항 모두
문제해결을 위해서는 위의 질문에 답해야 합니다. 파워버튼을 누르고 로그온 화면에 도달하지 못하는 경우부터 시작하겠습니다(느린 부팅은 느린 로그온이 아닙니다). 만약 처음 부팅을 시작하고 로그온 화면에 도달하기 전에 느린 현상이 발생하면, 일반적으로 운영체제 자체에 문제가 있던지, 설치된 응용 프로그램에 있던지, 아니면 둘 모두에 있을 수 있습니다. KB 325376처럼 시작, 종료, 로그온, 로그오프시에 상태 메시지를 표시하는 것은 문제해결을 위해 좋은 방법입니다. 이렇게하면 부팅/로그온 프로세스 중에 자세한 정보를 받을 수 있습니다.
정책 위치(XP와 2003)
추가적인 메시지 표시(XP와 2003)

정책 위치(Windows 7, Windows 2008)
추가적인 메시지 보기(Windows 7, Windows 2008)


처음으로 확인해야 할 것은 "클린 부팅(Windows XP/2003)(Vista/2008/Win7)" 될 때 지연이 발생하는지 여부입니다. MSCONFIG를 통해 로딩될 때 선택적으로 모든 타사 서비스와 응용 프로그램을 중지할 수 있습니다. 머신에서 응용 프로그램이 필요해서 문제가 생길 수 있는데, 이 단계는 운영체제가 이슈가 되거나 운영체제에 설치된 응용 프로그램이 이슈가 되는 것을 알기 위해 필수적입니다. 다음에 방법이 있습니다.
1. 시작을 클릭하고 실행에서 "MSCONFIG"를 입력합니다.
2. "서비스" 탭을 선택하고 "Hide all Microsoft Services"를 체크하고 "Disable All"을 클릭합니다.
참고 : "Hide all Microsoft Services"를 클릭할 때 시스템에 설치된 응용 프로그램을 볼 수 있습니다. 때때로 머신에 더 많은 문제를 야기하는(드라이브 암호화 소프트웨어같은) 중요한 부팅/로그온 프로세스가 있습니다. 그런 응용 프로그램은 검토하고 중지할 필요가 있습니다.
"Startup" 탭을 선택하고 "Disable All"을 다시 한번 클릭합니다. 모든 타사의 응용 프로그램을 중지하는 것은 더 큰 이슈를 야기할 수 있는데, 시작시 F8을 누르고 "Last Known Good"이나 "Safe mode"를 통해 "msconfig"에서 변경사항을 되돌려 놓을 수 있습니다.
3. 타사 서비스가 중지되면 재부팅이 필요하다는 메시지가 표시되고 재부팅을 해야 합니다. 다른 창이 화면에서 나타나면, "OK"를 클릭하세요.
4. 부팅 시간이 같은지 아닌지 테스트합니다.
타사 서비스를 중지하면 컴퓨터가 부팅되고 로그온하는게 빠르거나 정상적입니까? 답이 '네'라면 지연을 만드는 소프트웨어를 찾은 것입니다. 어떤 것이 더 많이 걸리는지 찾으려면 빠른 방법은 서비스의 반을 시작하고(시작할 수 있는 서비스 목록을 확인하세요) 지연이 발생하는지 보는 것입니다. 그렇지 않으면, 남은 절반의 서비스를 시작해서 이슈가 반복될 때까지 시도합니다. 어떤 것이 문제인지 확인하면, 그 응용 프로그램이나 구성요소의 업데이트를 시도합니다. 만약 특정 응용 프로그램이 이슈가 된다고 생각되면 확인 차원에서 간단히 그것을 중지시키는 것이 빠른 접근 방법입니다. 원인을 밝혀내는 동안 재부팅을 여러번해야 합니다. 지연을 초래하는 응용 프로그램을 발견하면, 다시 시작해서 지연이 발생하는지 확인합니다. 문제가 되는 응용 프로그램을 확인하면 벤더를 부르고 문제가 발생한 이유를 확인한 다음 해결책을 얻습니다. 때때로 그런 충돌을 해결하는 업데이트나 핫픽스가 있습니다.
참고 : 일부 안티바이러스 응용 프로그램은 MSCONFIG에서 중지해도 그 서비스를 필터 수준 드라이버를 로드합니다. 느린 로그온의 원인이 되는 것이 안티바이러스라는 것을 발견하는 방법은 테스트하는 동안 제거하는 것입니다.
여전히 느리다면?
여전히 부팅이 느리다면 클라이언트의 DNS 구성을 살펴봅니다. 다른 하드웨어(스위치, 라우터같은) 사이에 있는 DNS 서버는 문제의 원인이 될 수 있습니다. 네트워크의 한 부분이 문제가 되고 다른 부분은 그렇지 않다면, 네트워크 이슈를 발견할 기회입니다. 네트워크와 DNS 형태의 이슈를 발견하는 좋은 방법은 NetMon같은 패킷 캡쳐 응용 프로그램을 사용하여 네트워크를 추적하는 것입니다. 어려운 점은 머신이 시작할 때 추적을 캡쳐하는 것입니다. 같은 허브나 스위치에 있는(포트 미러링) 다른 컴퓨터를 통해 모니터링 할 수 있습니다. 네트워크 캡쳐 유틸리티를 시작하고 다른 IP 주소를 필터링합니다.
이 추적에서 볼 수 있는 것은 다음과 같습니다.
l 올바른 DNS 응답(쿼리한 쿼리 응답인가?)
l 지연되거나 응답하지 않는 응답(DNS 서버에서 도메인 컨트롤러까지 모두)
l Kerberos 실패
l SMB 실패
l 다양한 TCP 리셋이나 재전송
l 이슈가 발생하는 특정 도메인 컨트롤러의 일치(도메인 컨트롤러 자체에서 발생하는 가능한 이슈)
네트워크에 관련된 이슈가 있다면 특이점을 봐야합니다.
만약 위의 방법으로 모든 타사 소프트웨어를 중지하고도 부팅 지연이 발생하면, 다음 단계는 머신에 어떤 정책이 적용되는지 확인하는 것입니다. 그룹 정책의 문제를 해결하는 좋은 시작점은 기술 문서입니다.
대부분의 환경에서 다양한 정책이 적용되는데, 이슈가 되는 것을 어떻게 찾아낼까요? 가장 빠른 방법은 Active Directory 사용자 및 컴퓨터 스냅인에서 "TEST" OU를 새로 만들고 OU에 정책 상속을 막는 것입니다. 그렇게 하고, 문제가 되는 컴퓨터를 그 OU에 옮깁니다. 어떤 정책도 "enforced" 또는 "no override" 되지 않게 합니다. 그러한 설정을 가진 정책이 있으면, 상속이 차단된 OU에 여전히 적용됩니다.
컴퓨터를 옮기기 전에 다음 명령어를 통해 어떤 그룹 정책 객체가 링크되었는지 확인해야 한다.
"gp.txt"를 열 때 다음과 같은 정책을 볼 수 있습니다.

머신에 적용되는 "Default Domain Policy"와 "Local Group Policy"를 봐야합니다.
적용된 정책이 확인되면 새로 만든 테스트 OU에 옮기면 됩니다. OU를 만드는 단계와 상속을 막는 단계는 다음과 같습니다.
1. "Test" OU를 만들고 컴퓨터를 그곳으로 옮깁니다.
2. 그룹 정책 관리 콘솔을 열고 TEST OU에 상속을 차단합니다.

참고 : 상속을 차단하면 OU 아이콘이 파란색 느낌표로 바뀝니다.
3. 상속을 차단하고 컴퓨터를 테스트 OU로 옮기고, 이전 정책을 없애기 위해 컴퓨터를 두 번정도 재부팅합니다.
강제하지 않으면 모든 정책이 제거될 때까지 시간이 걸립니다. 적어도 이 시간에 정책의 일부가 남아있게 됩니다. 테스트를 다시 해야합니다...
컴퓨터가 빠르게 부팅되면 지연의 원인이 되는 것이 그룹정책입니다(또는 그룹정책의 조합입니다)어떤 정책이 문제를 야기하는지 찾으려면 한번에 하나씩 링크를 하고 지연이 발생하는지 재부팅을 해야합니다. 이것은 그림처럼 "Link an Existing GPO"를 선택하여 할 수 있습니다. 감사를 통해 정책을 확인하면, 어떤 정책이 지연의 원인이 되는지 알 수 있습니다.
그래도 느리다면...!?!
위의 단계를 다 진행하고 모든 소프트웨어나 정책을 중지해도 부팅이 느려진 원인을 찾을 수 없다면 다음 단계는 디버그 로깅입니다. 사용하는 시스템에 따라 로깅을 시작하는 방법이 조금 다릅니다.
2000, XP, 2003에서는 다음 문서를 통해 로깅을 시작할 수 있습니다. "How to enable user environment debug logging in retail builds of Windows" http://support.microsoft.com/default.aspx/kb/221833. 운좋게도 제 동료 중에 한 명이 이미 결과물을 해석하는 블로그를 썼습니다(두 부분에서 찾을 수 있습니다. 1절과 2절) Vista, 2008 그리고 Windows 7에서는 마이크로소프트는 "Event Tracing"이라고 불리는 것으로 디버그 로깅 포맷을 변경했습니다. 기본적으로 결과 데이터는 KB문서의 결과물과 같지만 2진 출력물에서 변환된 것입니다. 소스 코드를 포함하고 있기 때문에 변환하는데 마이크로소프트의 도움이 필요할 것입니다(프로필없이 정책 부분을 보려면 gpsvcdebug 로깅을 사용하세요).
다른 훌륭한 도구는 "Autoruns"입니다. 이 유틸리티는 시스템이 시작하거나 로그인되는 동안 실행되도록 구성하는 프로그램을 보여줍니다. 이 도구의 가장 훌륭한 기능 중 하나는 "Hide Microsoft Entries"입니다.
또한 사용자별로 autoruns을 선택할 수 있도록 합니다.

Autoruns는 다른 응용 프로그램에서는 일반적으로 볼 수 없는 아이템을 찾을 것입니다.
정리하면, 대부분의 경우의 경우에 느린 부팅이나 느린 로그온은 응용 프로그램 충돌이나 그룹정책의 제약 또는 구성 이슈로 발생합니다. 위의 문제해결방법과 약간의 노력으로 느린 로그온 문제가 발생하는 곳과 원인을 찾아서 최소의 시간으로 해결할 수 있을 것입니다.
- Bob ‘Quasi-Manager’ Drake