天天看點

玩轉SCVMM中的更新基線,實作虛拟平台基礎伺服器更新檔自動更新

需要重新開機還需要可以在指定的時間窗重新開機,最好還能監控重新開機狀态,還有如果是Hyper-v主控端,最好能先儲存虛拟機,或者最好能確定把Hyper-v群集中的高可用虛拟機線上遷移到其他機器上再重新開機,因為一般伺服器有SCOM監控,是以在更新更新檔之前最好能置于維護狀态,更新成功後再取消維護狀态,顯然這樣的要求隻是用WSUS本身沒有辦法完成這個目标。

我測試了windows server 2012 下的群集感覺更新(cluster aware update),也還算好用吧,但是這個隻是針對群集的,而且隻能是windows server 2012 系統或者以後OS上的群集,另外這個隻能把群集節點置于維護狀态,不能在SCOM中置于維護狀态。

我後面通過這些連結

<a href="http://blogs.technet.com/b/scvmm/archive/2011/10/28/vmm-2012-update-management-getting-started-with-sample-baselines.aspx">http://blogs.technet.com/b/scvmm/archive/2011/10/28/vmm-2012-update-management-getting-started-with-sample-baselines.aspx</a>

<a href="http://blogs.technet.com/b/scvmm/archive/2011/11/01/automating-update-server-synchronization-in-vmm-2012-part-2-of-5.aspx">http://blogs.technet.com/b/scvmm/archive/2011/11/01/automating-update-server-synchronization-in-vmm-2012-part-2-of-5.aspx</a>

<a href="http://gallery.technet.microsoft.com/scriptcenter/Automating-UpdatePatch-136388b1">http://gallery.technet.microsoft.com/scriptcenter/Automating-UpdatePatch-136388b1</a>

也了解到SCVMM可以對基礎架構中的實體伺服器進行更新檔更新,但是SCVMM中的更新基線示例預設是空的,必須往更新基線中手動添加所需要的更新,這一點有點麻煩,我一般在WSUS中自動審批一些安全更新和重要更新檔,然後手動審批一部分必須更新,SCVMM中應當同步審批的更新檔到更新基線就好了,可以複用之前WSUS中的工作成果。

是以我需要找尋一個方法能夠自動更新已經審批的更新檔到更新基線中,我搜尋了下網際網路,找到這篇blog

<a href="http://blogs.technet.com/b/phillipgibson/archive/2013/08/05/automating-the-update-of-baselines-in-system-center-virtual-machine-manager.aspx">http://blogs.technet.com/b/phillipgibson/archive/2013/08/05/automating-the-update-of-baselines-in-system-center-virtual-machine-manager.aspx</a>

他的腳本給我提供了一個想法和思路,是以我開始以此為起點,來寫個适合我自己的腳本。

首先我需要找到一個方法來過濾出我需要的更新檔更新(已經審批過的、适合windows server 2008及R2 到windows server 2012 及R2的新的前200?個更新檔)

使用compare-object 來對比是否基線中已包含了第一步中過濾出的更新檔清單。原作者使用if then ,代碼不夠簡潔。

增加其他還沒有想好的内容。 

OK,我看到之前腳本作者使用Get-SCUpdate來擷取和過濾更新,我需要知道get-scupdate 可以使用哪些參數

<a href="http://yoke88.blog.51cto.com/attachment/201311/13/973273_1384326953NmBQ.png"></a>

僅有上面參數是否無法滿足我的過濾需求,我得看看get-scupdate 傳回的對象含有哪些屬性,這樣我們使用where 進行過濾。我看到很多IS開頭的屬性,以及products,UpdateType,updateClassification等參數可以使用。

<a href="http://yoke88.blog.51cto.com/attachment/201311/13/973273_1384326954aNpL.png"></a>

下面的過濾是我需要的結果。

<a href="http://yoke88.blog.51cto.com/attachment/201311/13/973273_1384326955GEcH.png"></a>

下面是我自己的腳本:

Ok ,使用了以上SCVMM的更新基線,更新基線符合性掃描,更新基線符合性修複之後,發現此種更新方式也存在一定的局限性,SCVMM 中隻能配置一個WSUS伺服器,如果你的SCVMM管理了多個網絡,而且使用了不止一台WSUS,這個時候SCVMM無法使用更新基線來掃描和修複位于其他網絡(但存在下遊或者其他WSUS)上Hyper-v基礎結構主機。

本文轉自 yoke88 51CTO部落格,原文連結:http://blog.51cto.com/yoke88/1324432

繼續閱讀