WMI 를 이용 하여 시스템 패 치 검 측 분석 실현


WMI 는 Windows 2000/XP 관리 시스템 의 핵심 이다.다른 Win 32 운영 체제 에 대해 WMI 는 유용 한 플러그 인 입 니 다.WMI 는 CIMOM 기반,CIMOM 즉 공공 정보 모델 대상 관리자(Common Information Model Object Manager)로 운영 체제 구성 단원 을 설명 하 는 대상 데이터베이스 로 MMC 와 스 크 립 트 프로그램 에 액세스 운영 체제 구성 단원 의 공공 인 터 페 이 스 를 제공한다.윈도 관리 규범(WMI)은 신축 가능 한 시스템 관리 구조 로 통 일 된 표준 기반 의 확장 가능 한 대상 인 터 페 이 스 를 사용한다.나 는 WMI 를 처음 이해 할 때 항상 WMI 를'윈도 관리 인터페이스(Interface)'라 고 생각 했다.
      WMI 를 어떻게 활용 해 패 치 를 만 드 는 지 에 대한 검사 과정 을 자세히 알 아 보 겠 습 니 다.그림 1 은 전체 검 측 과정의 흐름 도이 다.

그림 1.WMI 를 이용 하여 패 치 검 측 을 실현 하 는 절차 도
       첫 번 째 단 계 는 검사 할 패 치 번 호 를 설정 합 니 다.우 리 는 마이크로소프트 의 모든 패 치 에 표준 번호(예 를 들 어 KB 828741)가 있다 는 것 을 알 고 있다.최신 패 치 에 대해 우 리 는 마이크로소프트 사이트 에서 얻 을 수 있다.그리고 사용자 가 설치 하 기 를 원 하 는 패 치 번 호 를 배열 에 넣 습 니 다.Windows 운영 체제 에 따라 검색 패 치 번 호 를 설정 해 야 합 니 다.현재 윈도 시스템 의 사용 상황 을 토대 로 윈도 2000/2003/XP 만 검 측 합 니 다.그림 1.WMI 를 이용 하여 패 치 검 측 을 실현 하 는 절차 도 첫 번 째 단 계 는 검 측 할 패 치 번 호 를 설정 합 니 다.우 리 는 마이크로소프트 의 모든 패 치 에 표준 번호(예 를 들 어 KB 828741)가 있다 는 것 을 알 고 있다.최신 패 치 에 대해 우 리 는 마이크로소프트 사이트 에서 얻 을 수 있다.그리고 사용자 가 설치 하 기 를 원 하 는 패 치 번 호 를 배열 에 넣 습 니 다.Windows 운영 체제 에 따라 검색 패 치 번 호 를 설정 해 야 합 니 다.현재 윈도 시스템 사용 상황 을 토대 로 윈도 2000/2003/XP 만 검 측 합 니 다.'windows 2000 arrFixedWIN2K=Array("KB 840315","KB 870669","KB 828741","KB 835732","KB 840987","KB 841356","KB 885835","KB 885836","KB 842526","KB 841872","KB 841873","KB 889293")'windows 2003 시스템 arrFixedWIN2K 3=Array("KB 834707","KB 840374","KB 867801","KB 833987","KB 873376","KB 885835","KB 885836")'windows xp SP1 arrFixedXP1=Array("KB 840987","KB 833987","KB 839645","KB 840315","KB 841873","KB 873376","KB 841356","KB 889293","KB 885835","KB 885836")'windows xp SP2 arrFixedXP2=Array('KB 834707','KB 885835','KB 885836')두 번 째 단 계 는 WMI 대상 을 만 들 고 대상 호스트 와 연결 을 만 듭 니 다.Dim obbxWMIService//WMI 대상 Dim strComputer="."//주 소 는 현재 호스트 Set obbxWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\\"&strComputer&"\root\cimv 2")먼저 두 개의 변 수 를 정의 합 니 다.obbwMIService 와 strComputer 는 첫 번 째 로 우리 가 만 들 서비스 포 지 셔 닝 대상 이 고 두 번 째 는 대상 호스트 IP 주소 입 니 다(현재 호스트 라면".").세 번 째 문장 은 대상 호스트 에 연 결 된 서비스 대상 을 만 들 고 이름 공간 파 라미 터 를'root\\cimv 2'로 정의 합 니 다.이 이름 공간 에는 우리 가 다음 에 사용 할 시스템 정보 가 있다.Socket:자세 한 코드 는 CD 에 첨부 된 Check 를 보십시오.patch.txt,파일 확장자 txt 를 VBS 로 변경 합 니 다.Windows 에서 더 블 클릭 으로 실행 할 수 있 습 니 다.현재 시스템 에서 패 치 되 지 않 은 것 이 감지 되면 알림 창 이 나타 납 니 다.그렇지 않 으 면 없습니다.세 번 째 단 계 는 현재 사용자 운영 체제 정 보 를 읽 고 패 치 를 설치 하 는 상황 입 니 다.이름 공간"root/cimv 2"에서 인 스 턴 스"Win 32Operating System 은 우리 에 게 현재 운영 체제 정 보 를 상세 하 게 제공 합 니 다."우 리 는 Wql(sql for WMI)을 사용 하여 이 인 스 턴 스 를 읽 습 니 다.SQL 문법 에 익숙 한 친 구 는 한눈 에 무엇 을 하고 있 는 지 알 수 있 습 니 다."호스트 시스템 정보 먼저 판단:OS,SP 패 치 버 전 상황'시스템 정보 가 져 오기 Dim objectOSInfo//운영 체제 정보 가 져 오기 Dim intOSver,intOStype,intCurrentSP/현재 시스템 버 전,유형,서비스 팩 번호 설정 objectOSInfo=osvcRemote.ExecQuery("Select ServicePackMajorVersion,Version,OSType FROM Win 32운영 체제")For Each colOSInfo In objectOSInfo intCurrentSP=colOSInfo.Service PackMajorVersion'sp 안전 패 치 버 전 intOSver=colOSInfo.Version'운영 체제 버 전 번호 intOStype=colOSInfo.OSType'운영 체제 유형 Next Socket:어떤 이름 공간 을 연결 하고 어떤 대상 을 얻 을 지 어떻게 알 수 있 습 니까?'WMI 기술 지침 서[3]에는 자주 사용 하 는 대상 이 많이 분류 되 어 있다.애석 하 게 도 그것 은 상응하는 전자 책 이 없 으 니,너 는 서점 에 가서 그것 을 찾 을 수 밖 에 없다.WMiTools 에서 WMI CIM Studio 라 는 도구 의 검색 기능 을 사용 하면 원 하 는 대상 을 쉽게 찾 을 수 있 습 니 다.대상 을 찾 으 면 WMI CIM Studio 는 속성 과 방법 을 표시 한 다음 MSDN 에서 구체 적 인 도움말 을 찾 을 수 있 습 니 다.네 번 째 단 계 는 현재 시스템 에 설 치 된 패 치 정 보 를 가 져 옵 니 다."root\\cimv 2"에서 인 스 턴 스"Win 32QuickFixEngineering 의"HotFixID"속성 은 현재 시스템 에 설 치 된 패 치 정 보 를 저장 합 니 다.'************************************************************************대상 호스트 에 설 치 된 패 치 목록 을 읽 고 문자열 strFixed List'************************************Dim colQFE,object QFE Dim strHotFixID,strFixed List,strFind,strNoFixed Set colQFE=osvcRemote.ExecQuery("SELECT HotFixID FROM Win 32QuickFix Engineering")네 번 째 단 계 는 읽 은 사용자 패 치 번 호 를 배열 변수 에 저장 한 다음 에 우리 가'첫 번 째'로 정의 한 해당 배열 과 일치 시 켜 현재 시스템 에 설치 되 지 않 은 패 치 번 호 를 찾 습 니 다.이 부분의 실현 은 비교적 간단 하 니 뒤의 코드 를 참고 하 세 요.다섯 번 째 단 계 는 최종 검사 결 과 를 보 여 줍 니 다.이로써 전체 패 치 검사 과정 이 끝나 고 이 스 크 립 트 파일 을 클릭 하여 실행 하면 패 치 검 사 를 완료 할 수 있 습 니 다.특히 이미 기업 에 Acitve Directory 도 메 인 을 구축 한 네트워크 관리자 에 게 이 스 크 립 트 를 도 메 인 컨트롤 러 의 그룹 정책 에 추가 하면 도 메 인 에 로그 인 한 모든 사용자 에 게 패 치 검 사 를 실시 하여 사용자 에 게 최신 패 치 정 보 를 알려 주 고 사용자 가 최신 패 치 를 설치 하지 않 았 다 고 고민 하지 않 아 도 되 며 기업 내부 네트워크 안전 관 리 를 크게 향상 시 켰 다.

좋은 웹페이지 즐겨찾기