글을 업데이트 합니다. 최근 관련 Patch가 나왔습니다. 설치하세요.
http://support.microsoft.com/kb/932494/ko 해당 hotfix를 설치하시면 됩니다. (sankim님 감사합니다...^^) 최근에 제가 svchost.exe가 cpu를 점유하는 현상을 발견했습니다. 해당 svchost는 wuauctl.exe(윈도우즈 업데이트 서비스)를 호스팅하는 실행 파일이였습니다. (process explorer 를 통해 확인) 해당 문제점을 Fix 하기 위해서 C:\WINDOWS\SoftwareDistribution\DataStore\DataStore.edb 를 eseutil 을 이용하는 방법이 있지만 간단하게 해당 파일과 로그를 삭제하는 방법도 있긴 합니다. 다음 글은 제가 해당 문제점을 발견하고 Fix 한 내역입니다...^________^ [원인]
문제 Data 파일 : Datastore.edb ( Installer , Window Update , WSUS , SMS ITMU , MBSA , WMI , WSH Host Script 기반 Update 검색 프로그램 류에서 모두 사용중 ) 즉 Software Distribution 의 EDB를 사용하는 모든 프로그램들이 동일 장애를 발생시켰을 것으로 추정 됨 더불어 말씀 드리자면 해당 edb가 깨진 원인을 알 수 없으나, 과거 Msxml 관련 업데이트 장애로 인해 자꾸 업데이트를 진행했던 부분이 의심 스럽습니다. 해당 유저들이 특정 16진수 문자열 값으로 된 폴더들이 지속적으로 생성 되고 있는지 확인 부탁드리겠습니다. [해결 방법] - Windows Update 관련 DLL 재 등록 1. 시작-> 실행 2. "REGSVR32 WUAPI.DLL" 실행 3. "DllRegisterServer in WUAPI.DLL 성공" 메시지 출력 4. 시작-> 실행을 누르고 다음 항목을 실행 REGSVR32 WUAUENG.DLL REGSVR32 WUAUENG1.DLL REGSVR32 ATL.DLL REGSVR32 WUCLTUI.DLL REGSVR32 WUPS.DLL REGSVR32 WUPS2.DLL REGSVR32 WUWEB.DLL - 재 부팅을 실행 1. 시작->실행을 누르시고 " cmd"를 입력합니다. cmd 창이 열리면 다음을 입력 net stop WuAuServ 2. C:\windows\SoftwareDistribution 폴더 이름 변경 Ex) SoftwareDistribution에서 SoftwareDistribution_ 으로 변경 - 재 부팅 한 후 경과를 관찰 [분석 내역] 1. 입출력되는 DLL의 EXPORT 내용의 분석 2. Register 되는 항목 분석 3. Microsoft EDB Database ( 업데이트및 패치의 적용사항이 저장되는 윈도우상의 내장 DB)의 변동 내용 분석 4. Window Update Loging 기능 활성 화로 업데이트 과정 로그 생성및 분석 ---> 관련 키값 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace (gives extensive tracing in WindowsUpdate.log) Flags REG_DWORD 7 Level REG_DWORD 4 [분석 결과]
2. SvcHost가 90-100%의 사용율을 보일때 Svchost에 연관된 Dll에서 IN/EXPort 되는 내용 없었고 RegMonitor 프로그램상에서 레지스트리상에 등록되는 항목이 없음을 확인 3. 1번과 2번을 미루어 본 결과 해당 Software Update가 사용하는 EDB의 손상이 주원인이 될 것으로 추정 |