劉景云
在Windows的域環(huán)境中,有時(shí)會(huì)出現(xiàn)客戶(hù)機(jī)無(wú)法加入域或者登錄域失敗的情況,如果排除了別的原因,很可能是客戶(hù)機(jī)的時(shí)間和域控的時(shí)間差異較大的緣故。這一點(diǎn)很容易被人忽略,認(rèn)為時(shí)間管理似乎并不重要,實(shí)際情況并非如此,如果域內(nèi)時(shí)間不同步的話(huà),會(huì)造成各種奇怪的問(wèn)題,例如對(duì)于系統(tǒng)日志來(lái)說(shuō),如果記錄的事件時(shí)間異常,對(duì)于問(wèn)題的排查就會(huì)造成不利的影響。
活動(dòng)目錄時(shí)間同步機(jī)制
在域環(huán)境中是利用名為“W32Time”的服務(wù),來(lái)實(shí)現(xiàn)主機(jī)之間的時(shí)間同步的,時(shí)間同步對(duì)于Kerberos認(rèn)證協(xié)議是極為重要的。時(shí)間同步使用的是SNTP簡(jiǎn)單網(wǎng)絡(luò)時(shí)間協(xié)議,林中的根域PDC扮演著基準(zhǔn)時(shí)間服務(wù)器的角色,PDC即模擬主機(jī)角色,是AD DS域服務(wù)定義的操作主機(jī)角色之一,確切地說(shuō)PDC是域范圍內(nèi)操作主機(jī)角色,注意林中的每個(gè)域中只能有一個(gè)PDC角色。在CMD窗口中執(zhí)行“Netdom query FSMO”命令。在返回信息中顯示五種操作主機(jī)所在的域控名稱(chēng)(圖1),可以查看到PDC主機(jī)名稱(chēng)。
當(dāng)然,PDC主機(jī)的功能有很多,例如可以兼容低版本的域控,PDC所在的域控優(yōu)先成為主域?yàn)g覽器,PDC擁有活動(dòng)目錄數(shù)據(jù)庫(kù)優(yōu)先復(fù)制權(quán),防止組策略套用出錯(cuò)等。PDC很重要的功能之一是可以充當(dāng)時(shí)間服務(wù)器,域中所有主機(jī)會(huì)和PDC同步時(shí)間,擁有PDC角色的域控會(huì)成為時(shí)間服務(wù)器。當(dāng)前域中的PDC也會(huì)和林中根域的PDC自動(dòng)對(duì)時(shí),來(lái)保持整個(gè)林中的時(shí)間一致性,即子域中的PDC會(huì)自動(dòng)和父域中的PDC對(duì)時(shí)??梢钥闯?,這實(shí)際上是一種基于域的層次架構(gòu)。對(duì)于根域中的第一臺(tái)PDC來(lái)說(shuō),會(huì)和外網(wǎng)的時(shí)間服務(wù)器進(jìn)行對(duì)時(shí)。在默認(rèn)情況下,域中的客戶(hù)機(jī)每隔1小時(shí)和PDC進(jìn)行一次時(shí)間同步,成員服務(wù)器和PDC的同步周期為100秒。
時(shí)間同步方式
時(shí)間同步服務(wù)和“w32tm”命令息息相關(guān)。在客戶(hù)機(jī)上登錄到域環(huán)境,執(zhí)行“w32tm /monitor”命令,在返回信息中顯示所有的域控信息(圖2),如果存在多臺(tái)域控的話(huà),在對(duì)應(yīng)的“RefID”欄中會(huì)顯示具體的時(shí)間服務(wù)器地址,如果顯示“unknown”“unspecified”等字樣,說(shuō)明對(duì)應(yīng)的DC不是時(shí)間服務(wù)器。對(duì)于擁有PDC角色的域控,以及成員服務(wù)器和客戶(hù)機(jī)來(lái)說(shuō),具體的時(shí)間同步方式要根據(jù)“W32Time”服務(wù)的配置信息而定。執(zhí)行“w32tm /query /configuration”命令,在返回信息中的“[TimeProviders]”欄中的“Type”行顯示了同步類(lèi)型(圖3)。
如果顯示為“Nosync”,說(shuō)明該機(jī)會(huì)使用本地時(shí)間,不會(huì)進(jìn)行同步。如果顯示為“NTP”,說(shuō)明本機(jī)從“NtpServer”行指定的外部時(shí)間服務(wù)器上同步時(shí)間。如果顯示為“NT5DS”,說(shuō)明會(huì)從域中的PDC上同步時(shí)間。如果顯示為“AllSync”,說(shuō)明本機(jī)會(huì)使用以上所有的同步方式。執(zhí)行“w32tm /query /source”命令,在返回信息中顯示當(dāng)前的時(shí)間服務(wù)器名稱(chēng)。如果要查看指定域名中的時(shí)間服務(wù)器,可執(zhí)行“w32tm /monitor /domain:xxx.com”命令,會(huì)顯示該域中PDC主機(jī)的名稱(chēng)及地址信息,其中的“xxx.com”為具體的域名。執(zhí)行“w32tm /tz”命令,顯示本機(jī)的時(shí)區(qū)信息(圖4)。
配置時(shí)間服務(wù)器
執(zhí)行時(shí)間同步操作,可以通過(guò)命令行或者自動(dòng)方式來(lái)實(shí)現(xiàn)。前面講過(guò),PDC主機(jī)擔(dān)當(dāng)著時(shí)間服務(wù)器的作用,實(shí)現(xiàn)域中所有主機(jī)的時(shí)間同步,因此必須保證PDC主機(jī)的時(shí)間是正確的,否則時(shí)間同步將失去意義。在默認(rèn)情況下,PDC主機(jī)與微軟的“time.windows.com”服務(wù)器保持時(shí)間同步。
運(yùn)行“regedit.exe”程序,在注冊(cè)表編輯器中打開(kāi)“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters”分支,在右側(cè)的“NtpServer”鍵值名中可以查看該時(shí)間服務(wù)器地址(圖5)。這里假設(shè)PDC主機(jī)的IP為192.168.1.2,那么在域中主機(jī)上執(zhí)行“net time \\192.168.1.2 /set /y”命令,在彈出的提示信息中輸入“y”鍵,可以讓該機(jī)立刻和PDC主機(jī)之間進(jìn)行時(shí)間同步。
當(dāng)然,也可以實(shí)現(xiàn)時(shí)間自動(dòng)同步操作。登錄到PDC主機(jī)上,在域環(huán)境中,默認(rèn)第一臺(tái)域控承擔(dān)PDC主機(jī)角色。在注冊(cè)表編輯器中打開(kāi)上述分支,將“NtpServer”鍵值名的數(shù)值修改為“dc1.xxx.com”,這里假設(shè)PDC主機(jī)的名稱(chēng)為“dc1.xxx.com”。將右側(cè)的“Type”鍵值名的數(shù)值修改為“NTP”。這樣,就禁止PDC主機(jī)使用外網(wǎng)的時(shí)間服務(wù)器,讓域中的其余主機(jī)可以以PDC主機(jī)的時(shí)鐘作為基準(zhǔn)時(shí)間源。
打開(kāi)“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config”分支,將右側(cè)的“AnnounceFlags”的數(shù)值設(shè)置為10,格式為十進(jìn)制。打開(kāi)“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer”分支(圖6),將右側(cè)的“Enabled”的值設(shè)置為1。在CMD窗口中執(zhí)行“w32tm /query /source”命令,顯示“Local CMOS Clock”字樣,說(shuō)明以上設(shè)置成功(圖7)。
在客戶(hù)端上同步時(shí)間
為了讓客戶(hù)機(jī)在登錄域后,自動(dòng)實(shí)現(xiàn)時(shí)間同步操作,可以以管理員身份登錄域控,打開(kāi)組策略管理器(圖8),在左側(cè)選擇“林→域→域名→Domain Controllers”項(xiàng),在其中的“Default Domain? Controllers Policy”項(xiàng)的右鍵菜單上點(diǎn)擊“編輯”項(xiàng),在編輯窗口左側(cè)選擇“計(jì)算機(jī)配置→策略→管理模板→系統(tǒng)→Windows時(shí)間服務(wù)→時(shí)間提供程序”項(xiàng)(圖9),在右側(cè)窗口雙擊“配置Windows NTP客戶(hù)端”項(xiàng),在其屬性窗口(圖10)中選擇“已啟用”項(xiàng),在“NtpServer”欄中輸入“dc1.xxx.com,0x1”,在“SpecialPollInterval”欄中設(shè)置同步的周期,單位為秒,例如設(shè)置為3600,表示每隔1小時(shí)同步一次。
在右側(cè)雙擊“啟用Windows NTP客戶(hù)端”和“啟用Windows NTP服務(wù)器”項(xiàng),在其屬性窗口中分別選擇“已啟用”項(xiàng)。在客戶(hù)端執(zhí)行“gpupdate /force”命令,刷新組策略,讓上述配置生效。在客戶(hù)機(jī)上執(zhí)行“net stop w32time”和“net start w32time”命令,重啟時(shí)間同步服務(wù),就可以手動(dòng)與PDC主機(jī)之間同步時(shí)間了。如果時(shí)間同步服務(wù)出現(xiàn)問(wèn)題,可以執(zhí)行“net stop w32time”“w32m /unregister”“w32m /register”“net start w32time”等命令,來(lái)修復(fù)該組件。在一般情況下,是允許域控和客戶(hù)機(jī)之間存在時(shí)間差的,但不能超過(guò)5分鐘。
如果業(yè)務(wù)場(chǎng)景對(duì)時(shí)間要求很?chē)?yán)格,可以在域控上打開(kāi)上述組策略編輯器,選擇“計(jì)算機(jī)配置→策略→Windows設(shè)置→安全設(shè)置→賬戶(hù)策略→kerberos策略”項(xiàng),在右側(cè)雙擊“計(jì)算機(jī)時(shí)鐘同步的最大容差”項(xiàng),來(lái)設(shè)置最佳的時(shí)間差(圖11)。對(duì)于很多客戶(hù)端來(lái)說(shuō),可能因?yàn)榉N種原因沒(méi)有激活“Windows Time”服務(wù),為此可以在域控上打開(kāi)默認(rèn)組策略,在編輯器中打開(kāi)“計(jì)算機(jī)配置→策略→Windows設(shè)置→安全設(shè)置→系統(tǒng)服務(wù)”項(xiàng)。
在右側(cè)雙擊“Windows Time”,將其設(shè)置為自動(dòng)啟動(dòng)方式(圖12)。為了防止用戶(hù)隨意更改時(shí)間,可以在上述編輯器中打開(kāi)“計(jì)算機(jī)配置→策略→Windows設(shè)置→安全設(shè)置→本地策略→用戶(hù)權(quán)限分配”項(xiàng),在右側(cè)雙擊“更改系統(tǒng)時(shí)間”項(xiàng),在打開(kāi)窗口中顯示可以更改時(shí)間的賬戶(hù)和組(圖13),建議將其全部刪除,這樣可以保證域中主機(jī)之間的時(shí)間一致性。
使用專(zhuān)用工具,保持時(shí)間同步
使用Network Time System這款軟件,也可以讓內(nèi)網(wǎng)主機(jī)的時(shí)鐘保持一致。在選定的服務(wù)器上運(yùn)行NTS服務(wù)器端程序,在其主界面中點(diǎn)擊“Settings”按鈕,在設(shè)置窗口中(圖14)的“Internal Time Server”面板中選擇“NTSv2 via UDP broadcasting”項(xiàng),表示讓NTS服務(wù)器程序自動(dòng)向內(nèi)網(wǎng)發(fā)送UDP對(duì)時(shí)數(shù)據(jù)包。在“every x”欄中設(shè)置自動(dòng)發(fā)送對(duì)時(shí)UDP數(shù)據(jù)包的周期,默認(rèn)為3分鐘。
應(yīng)該指出,安裝NTS服務(wù)器端程序的主機(jī)應(yīng)該處于聯(lián)網(wǎng)狀態(tài),可以訪(fǎng)問(wèn)Internet,便于其從Internet上的時(shí)間服務(wù)器(也就是時(shí)間源)上取得準(zhǔn)確的時(shí)間。在“External Time Sources”面板中可以添加新的外部時(shí)鐘服務(wù)器,設(shè)置自動(dòng)對(duì)時(shí)間隔等。當(dāng)然,可以在局域網(wǎng)中部署多臺(tái)NTS對(duì)時(shí)服務(wù)器。在客戶(hù)機(jī)上運(yùn)行NTS客戶(hù)端程序,在其管理窗口中點(diǎn)擊“Settings”按鈕,在設(shè)置窗口中打開(kāi)“Scheduling”面板中的“Synchronize time”項(xiàng),在“every x”欄中設(shè)置同步的時(shí)間間隔,默認(rèn)是2分鐘。
這樣,經(jīng)過(guò)預(yù)設(shè)的時(shí)間間隔后,客戶(hù)端即可自動(dòng)和服務(wù)器端的NTS建立網(wǎng)絡(luò)連接,進(jìn)而執(zhí)行時(shí)間同步操作。在“Time Source”面板中選擇“Find server via UDP Boardcasting”項(xiàng),表示允許接受服務(wù)器的UDP廣播信息。如果在服務(wù)器端開(kāi)啟了UDP廣播功能,客戶(hù)端就可以自動(dòng)執(zhí)行對(duì)時(shí)操作。如果存在多臺(tái)NTS服務(wù)器,可以選擇“Custom server list”項(xiàng),點(diǎn)擊“Add”按鈕,輸入NTS服務(wù)器端地址,來(lái)將其添加到服務(wù)器列表中。