佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 利用WMI實現(xiàn)系統(tǒng)補丁檢測分析

利用WMI實現(xiàn)系統(tǒng)補丁檢測分析

熱門標簽:美圖手機 銀行業(yè)務(wù) 服務(wù)器配置 呼叫中心市場需求 智能手機 鐵路電話系統(tǒng) 網(wǎng)站文章發(fā)布 檢查注冊表項

WMI是Windows 2000/XP管理系統(tǒng)的核心;對于其它的Win32操作系統(tǒng),WMI是一個有用的插件。WMI以CIMOM為基礎(chǔ),CIMOM即公共信息模型對象管理器 (Common Information Model Object Manager),是一個描述操作系統(tǒng)構(gòu)成單元的對象數(shù)據(jù)庫,為MMC和腳本程序提供了一個訪問操作系統(tǒng)構(gòu)成單元的公共接口。Windows 管理規(guī)范 (WMI) 是可伸縮的系統(tǒng)管理結(jié)構(gòu),它采用一個統(tǒng)一的、基于標準的、可擴展的面向?qū)ο蠼涌?。我在剛開始理解WMI的時候,總以為WMI是“Windows管理接口(Interface)”。

      下面我們就詳細來了解如何利用WMI實現(xiàn)補丁的檢測過程。圖1是整個檢測過程的流程圖。

1.利用WMI實現(xiàn)補丁檢測之流程圖

       第一步,設(shè)置需要檢測的補丁號。我們知道,微軟的每個補丁都會有一個標準的編號(如KB828741),對于最新的補丁,我們可以從微軟的網(wǎng)站上獲得。然后,將希望用戶安裝的補丁號放到一個數(shù)組里。根據(jù)不同Windows操作系統(tǒng)我們需要設(shè)置不同檢測補丁號?;诋?dāng)前Windows系統(tǒng)使用情況,我只對Windows 2000/2003/XP進行檢測。
圖1.利用WMI實現(xiàn)補丁檢測之流程圖
第一步,設(shè)置需要檢測的補丁號。我們知道,微軟的每個補丁都會有一個標準的編號(如KB828741),對于最新的補丁,我們可以從微軟的網(wǎng)站上獲得。然后,將希望用戶安裝的補丁號放到一個數(shù)組里。根據(jù)不同Windows操作系統(tǒng)我們需要設(shè)置不同檢測補丁號。基于當(dāng)前Windows系統(tǒng)使用情況,我只對Windows 2000/2003/XP進行檢測。
‘ 對于windows 2000
arrFixed_WIN2K=Array("KB840315","KB870669","KB828741","KB835732",
"KB840987","KB841356","KB885835","KB885836",
"KB842526","KB841872","KB841873","KB889293")
'對windows 2003系統(tǒng)
arrFixed_WIN2K3=Array("KB834707","KB840374","KB867801","KB833987",
"KB873376","KB885835","KB885836")
'對于windows xp SP1
arrFixed_XP1=Array("KB840987","KB833987","KB839645","KB840315","KB841873","
KB873376","KB841356","KB889293","KB885835","KB885836")
'對于windows xp SP2
arrFixed_XP2=Array("KB834707","KB885835","KB885836")
第二步,創(chuàng)建WMI對象,并和目標主機建立連接。
Dim objWMIService // WMI對象
Dim strComputer = “.” // 地址為當(dāng)前主機
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" strComputer "\root\cimv2")
首先,定義兩個變量objWMIService和strComputer,第一個為我們要創(chuàng)建的服務(wù)定位對象,第二個為目標主機IP地址(如果為當(dāng)前主機者為“.”)。第三句創(chuàng)建一個連接到目標主機的服務(wù)對象,定義名字空間參數(shù)為“root\cimv2”。在這個名字空間里有我們接下來要用的系統(tǒng)信息。
Socket:詳細代碼請看光盤附送的Check_patch.txt,更改文件擴展名txt為VBS,在Windows下可雙擊運行,如果當(dāng)前系統(tǒng)檢測出未打補丁,則出現(xiàn)提示窗口,否則無。
第三步,讀取當(dāng)前用戶操作系統(tǒng)信息,及其安裝補丁的情況。在名字空間“root/cimv2”下,實例“Win32_OperatingSystem”為我們提供了詳細的當(dāng)前操作系統(tǒng)信息。我們采用Wql(sql for WMI)來讀取該實例,熟悉SQL語法的朋友一看就知道是在做什么了。
' 先判斷主機系統(tǒng)信息:OS,SP補丁版本情況
' 獲取系統(tǒng)信息
Dim objOSInfo // 獲取操作系統(tǒng)信息
Dim intOSver,intOStype,intCurrentSP // 當(dāng)前系統(tǒng)版本,類型,Service Pack號
Set objOSInfo = osvcRemote.ExecQuery("Select ServicePackMajorVersion,Version,OSType FROM Win32_OperatingSystem")
For Each colOSInfo In objOSInfo
intCurrentSP = colOSInfo.ServicePackMajorVersion ‘sp安全補丁版本
intOSver = colOSInfo.Version ‘操作系統(tǒng)版本號
intOStype = colOSInfo.OSType ‘操作系統(tǒng)類型
Next
Socket:如何知道要連接哪個名字空間,獲得哪些對象呢?《WMI技術(shù)指南》[3]中分類列出了大量常用的對象??上鼪]有相應(yīng)的電子書,你只有到書店里找它了。你也可以用WMITools里WMI CIM Studio這個工具的搜索功能,很容易就能找想要的對象。找到對象后,WMI CIM Studio能列出其屬性和方法,然后到MSDN里找具體的幫助。
第四步,獲取當(dāng)前系統(tǒng)已經(jīng)安裝的補丁信息。在“root\cimv2”下,實例“Win32_QuickFixEngineering”下的“HotFixID”屬性存放了當(dāng)前系統(tǒng)所安裝的補丁信息。
'*******************************************************************
'*讀取目標主機已安裝補丁列表到字符串strFixedList
'*******************************************************************
Dim colQFE, objQFE
Dim strHotFixID, strFixedList, strFind, strNoFixed
Set colQFE = osvcRemote.ExecQuery("SELECT HotFixID FROM Win32_QuickFixEngineering")
第四步,將讀取的用戶補丁號存到一數(shù)組變量,然后與我們在“第一步“定義的相應(yīng)數(shù)組進行匹配,找出當(dāng)前系統(tǒng)未安裝的補丁號。這部分的實現(xiàn)比較簡單,請參考后面的代碼。
第五步,顯示最后檢測結(jié)果。
至此,整個補丁檢測過程結(jié)束,只要將本腳本文件進行點擊運行,就可以完成補丁的檢查。特別是對于已經(jīng)在企業(yè)中建立起Acitve Directory域的網(wǎng)絡(luò)管理員來說,只要將此腳本添加到域控制器的組策略里,對每個登陸到域的用戶進行補丁檢測,提示用戶最新補丁信息,再也不用為用戶沒有安裝最新補丁而苦惱了,大大提高了企業(yè)內(nèi)部網(wǎng)絡(luò)安全管理。

標簽:樂山 新疆 滄州 河南 紅河 沈陽 長治 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標題《利用WMI實現(xiàn)系統(tǒng)補丁檢測分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    宣武区| 康马县| 塔河县| 从江县| 四川省| 辽宁省| 五河县| 河曲县| 新邵县| 苏尼特左旗| 元朗区| 章丘市| 巴林左旗| 共和县| 永顺县| 浦东新区| 新沂市| 宁远县| 平乐县| 靖远县| 盱眙县| 昌图县| 泰兴市| 额济纳旗| 高阳县| 酒泉市| 安岳县| 扶沟县| 日照市| 五河县| 吐鲁番市| 如东县| 射洪县| 海淀区| 江永县| 民丰县| 景德镇市| 景东| 石家庄市| 荆门市| 高青县|