域內批量分發註冊表設置

轉自05年黑防

我想很多網管朋友都遇到過這樣一種情況,就是需要在域內所有的機器上更改某項註冊表設置,但如果一臺一臺地去修改,那實在是一件效率不高又累人的事情,我就曾遇到過這種情況,直到我自定義安全模板之後。因爲通過自定義安全模板,我就可以在整個域範圍內使用組策略分發註冊表設置,再也不必到桌面進行操作了。

    安全模板是組策略的一個組成部分,這裏的安全模板表現於組策略窗口下的“計算機配置/Windows設置/安全設置/本地策略/安全選項”,雖然說是安全相關的選項,實際上它可以容納各種註冊表設置,而並非一定要是安全相關的設置,我這裏的實際情況就不是安全相關的設置。

    安全模板主要由Sceregvl.inf文件控制,它位於%windir%\inf目錄下,圖1是這個文件的一部分: 


域內批量分發註冊表設置

圖1


    這個文件初看起來很複雜,實際上很簡單,它由[version]、[Register Registry Values]和[Strings]三個小節組成,很像INI文件的結構。其中[version]指明此文件的版本,而[Register Registry Values]是我們主要關注的部分,它是註冊表鍵路徑及相關設置,而[Strings]是[Register Registry Values]小節中變量的賦值區,下面我們來看看[Register Registry Values]中每個條目的組成,包括四個字段(如圖2所示):

域內批量分發註冊表設置

圖2


1, 註冊表的路徑,形如

MACHINE\System\CurrentControlSet\Control\Lsa\AuditBaseObjects,對應於HKLM\System\CurrentControlSet\Control\Lsa\AuditBaseObjects,
2, 註冊表值的類型,有五種類型,
1——REG_SZ,字符串值
2——REG_EXPAND_SZ---擴展字符串值  
3——REG_BINARY
4——REG_DWORD
7——REG_MULTI_SZ
3,在安全模板中的顯示名稱,可以使用變量,如果使用變量,請用%%包含起來,並在[Strings]小節中賦值;
4, 顯示值的類型:
0 -Boolean
1 -Number
2 -String
3-Choices
4 -Multivalued
5-Bitmask

    如果這裏是Choices或者Bitmask,那麼這些可選值應該被列出來,格式爲“值|顯示的字符串”,這些可選值之間用逗號分隔,例如:0|%RA0%,1|%RA1%,2|%RA2%

    好了,我們知道了安全模板文件的組成,這下我們就可以自定義了,下面就以我的實際例子來講解。

    我們公司有個管理軟件客戶端,在Windows 2000/xp中需要修改註冊表值和配置環境變量才能使用,開始時我自制了兩個註冊表文件,安裝時手工導入即可,後來發現這樣還是不方便,於是就想到了利用組策略,因爲組策略很多設置都是修改註冊表,所以註冊表相關的就可以考慮組策略,當然後來就想到了自定義安全模板,實際上我這裏的註冊表設置與安全是無關的,但仍然可以在安全模板進行定義。下面將說說從自定義安全模板到在域相關OU中分發策略的大致步驟。

    步驟一:根據要求修改Sceregvl.inf文件
我在域控制器的Sceregvl.inf 文件中[Register Registry Values]小節尾部加上了下面的部分:

; 自定義設置部分
; 修改環境變量
MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\sybase,1,"C配置sybase",2
MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\DSQUERY,1,"C配置DSQUERY",2
MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\include,2,"C配置INCLUDE",2
MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\lib,2,"C配置LIB",2
MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\path,2,"C配置PATH",2
; 創建與win98兼容的IP相關配置
MACHINE\SYSTEM\currentCONTROLSET\SERVICES\CLASS\NETTRANS\0000\ipaddress,1,"c配置IP地址",2
MACHINE\SYSTEM\currentCONTROLSET\SERVICES\CLASS\NETTRANS\0000\ipmask,1,"c配置子網掩碼",2

    其中每個條目第3部分的C字頭是爲了便於在安全模板中進行識別,這樣一眼就可以看出是自定義設置。

    步驟2:完成了對Sceregvl.inf的修改,還需要在計算機中登記這些新的入口(也就是新添的自定義設置),在修改此文件的計算機上運行下面的命令(通常都是在DC上):

    Regsvr32 %windir%\system32\scecli.dll
注意每次修改完Sceregvl.inf文件後都需要這樣註冊,註冊完之後,在這臺計算機上打開任何一個組策略編輯窗口,你就將會看到上面的自定義條目(如圖3所示):

域內批量分發註冊表設置

圖3


    步驟3:在相應域或OU的組策略窗口中給上面的自定義條目賦值,雙擊條目,在彈出窗口中賦值或選擇即可,如圖4所示。

域內批量分發註冊表設置


圖4


    注意對於REG_EXPAND_SZ類型的賦值,請用雙引號(””)把他們引起來,比如我這裏爲PATH環境變量賦值就必須把它引起來,不然它只會應用第一個分號前的值。編輯完之後,你可以在一臺客戶機上使用Gpupdate /target:computer(XP支持)命令來刷新組策略,然後到註冊表中檢查是否已成功應用了修改,如果成功了,那祝賀你,如果有不如意的地方,那就再仔細檢查一下上面幾個步驟。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章