天天看點

Computer Browser 詳解

最近一個同僚反映訪問共享磁盤非常的慢,但是以前不會。我的第一個反應是服務出了問題,因為我們計算機在訪問網絡盤時會記錄下裡面的清單,在下次訪問時便不再讀取,這樣一來會提高用戶訪問速度!而用戶反映慢,通常就是這個服務出了問題。。。經過檢查server.workstation都已啟動,果然不錯computer browser被關閉,並且起動不了!

以下是我在網上找到的相關內容:

windows的computer browser服務維護着一個網絡資源的清單,其中包括基于windows的域、工作組和計算機,還有其他支援netbios協定的網絡裝置,“網路上的芳鄰”顯示的内容正是來源于此。在基于windows 2000的網絡中,活動目錄(active directory,ad)取代了computer browser服務。但是,如果網絡由win2k和win nt混合構成,且包含非win2k的域控制器,或者網絡上某些用戶端不支援ad,computer browser服務仍是必不可少的。

  在運作computer browser的環境中,ip網絡的域的主浏覽器與網段的主浏覽器互動,借助netbios名稱解析和幾個特殊的netbios名稱,裝配出成員機器和裝置的清單。要順利解決computer browser服務運作中出現的問題,就必須掌握必要的工具,熟悉應當采用怎樣的步驟來檢測故障。

一、診斷工具

  微軟提供了兩個專門用來監視和檢測浏覽服務的工具:browser monitor(即browmon.exe),和browser status(browstat.exe)。應當注意的是,在多協定網絡中,這兩個工具都隻報告本地機器支援的協定的浏覽清單。

  browmon是一個gui工具,win nt 4.0和win 2k的資源工具包都提供了這個工具。browmon針對每一個要求監視的域,顯示出各個協定的浏覽子系統的狀态,如圖一所示。輕按兩下一種協定顯示出圖二的詳細資訊,包括主、後備浏覽器的名稱和每一個浏覽器上域、伺服器的清單。

Computer Browser 詳解

圖一

Computer Browser 詳解

圖二

  browmon能夠按照使用者指定的間隔自動重新整理浏覽清單,利用browmon可以快速找出域的主浏覽器和後備浏覽器。

  browstat比browmon還要強大,除了顯示浏覽清單之外,它還能夠強制執行選舉和複位主浏覽器。nt 4.0資源工具包提供了browstat的一個早期版本,win 2k資源工具包提供了browstat的一個更新版本。兩個版本的故障檢測能力基本相同,但win 2k的版本用起來友善一些。nt 4.0提供的browstat要求在每一個指令中提供協定名稱。協定名稱可以通過net config rdr指令獲得。例如,假設在一台win 2k pro機器上執行net config rdr指令的結果如圖三所示,如果要用nt 4.0版本的browstat顯示出後備浏覽器清單,應當執行:browstat gb netbt_tcpip_{4c8ba126-9bf4-476d-8bdb-3bb8548347b3}。(其中gb即為getblist,它是browstat的一個子指令,用來提取後備浏覽器的清單)。

Computer Browser 詳解

圖三:

  win2k版的browstat有一個dumpnet子指令,能夠顯示出協定名稱并分别賦予一位數字的協定編号,所有browstat其他子指令中的協定名稱都可以用這個協定編号替代。例如,假設browstat dumpnet指令賦予上述協定的編号是1,則提取後備浏覽器清單時,隻需執行browstat gb 1就可以了,如圖四。

Computer Browser 詳解

圖四

二、配置要點

  為了減少computer browser服務運作中可能出現的問題,建議按照如下規則進行配置。

  ㈠對于所有擁有一個以上擴充卡和ip位址的機器,把hkey_local_machine\system\currentcontrolset\services browser\parameters\maintainserverlist注冊子鍵設定成no,使得該機器不會獲得任何浏覽器角色(包括主浏覽器、後備浏覽器)。

  ㈡确定每一個網段中的哪些機器是主浏覽器。在每一個網段中,選取一到二台伺服器,把它的hkey_local_machine\system\currentcontrolset\services\browser\parameters\isdomainmaster注冊子鍵設定成true。如果網段隻有一台伺服器,選取一到二台工作站作為浏覽器,以防伺服器關機。注意浏覽器選舉的決策過程:隻有當網段中不存在伺服器時,才會根據isdomainmaster=true讓工作站赢得浏覽器選舉。

  ㈢確定每一個網段的主浏覽器能夠找到域的主浏覽器——即,能夠解析domain_name<1bh> netbios名稱。網段主浏覽器可以通過wins系統或ad找到域的主浏覽器。如果既沒有wins也沒有ad,則應當為網段中每一個潛在的浏覽器配置lmhosts檔案。

  假設域的netbios名稱是mydomain,pdc的netbios名稱是dc1,ip位址是192.168.0.1,lmhosts檔案的内容如下所示:

192.168.0.1 "mydomain x1b" #pre

192.168.0.1 dc1 #pre #dom:mydomain

  第一行内容顯式地配置了domain_name<1bh> netbios名稱解析方式。注意,域名(包含從第16個字元開始的十六進制值,中間用空格補足位數)必須用引号包圍。第二行表示dc1是mydomain的dc,并要求生成一個mydomain<1ch>的組紀錄。準備好lmhosts檔案後,執行nbtstat -r裝入lmhosts檔案,執行nbtstat -r顯示驗證修改結果。

三、排除故障

  

  是否能夠成功地浏覽網絡資源,依賴于一系列windows基本網絡子系統是否能夠正确協作,是以也不存在放之四海而皆準的故障解決方案,具體的解決步驟應當根據症狀表現确定,而且往往還依賴于對網絡結構有一個正确、全面的了解。

  盡管無法給出通用的解決方案,但我們可以讨論一種典型的情形:客戶機的浏覽清單中缺少一台或者多台計算機,或者缺少某個廣播域的所有計算機。在排除故障過程中,一種行之有效的辦法是按照系統的處理過程,逐漸檢查,直至找到故障點所在。是以,檢查過程應當從丢失的計算機所在的廣播域開始,最後到客戶機廣播域上的不完整浏覽清單。

  下面的檢查過程假定已經對丢失的計算機進行了最基本的檢查,包括它是否正在運作,網絡連接配接是否有效。這個過程可以找出那個地方出了問題,确定了故障點之後就可以确定哪些項目必須進一步檢查。在排除浏覽故障的過程中,應注意故障的原因可能是名稱解析失敗,可能是由于一台或者多台計算機的hkey_local_machine\system\currentcontrolset\services\lanmanserver\parameters\hidden注冊子鍵設定成了1,可能是由于網段的主浏覽器無法接收到成員機器的通告,還可能是由于主浏覽器和丢失的機器沒有運作共同的傳輸協定。

  檢查操作最好在網段主浏覽器所在廣播域内的機器上進行,避免路由或wins伺服器可能對檢查過程産生的影響。下面的檢查步驟說明假定使用的是win2k版的browstat,協定編号2,域名mydomain,pdc的名稱是dc1,網段主浏覽器server1,後備浏覽器是backup1。

  ⑴ 尋找丢失計算機的網段主浏覽器,執行:browstat status。browstat顯示出網段主、後備浏覽器的名稱以及摘要的浏覽清單。browstat把domain_name<1dh> netbios名稱解析成網段主浏覽器的位址。網段主浏覽器赢得選舉之後,它的computer browser服務把domain_name<1dh>名稱注冊到netbios,但不注冊到wins,確定廣播名稱解析會把該名稱解析成本地網段主浏覽器的ip位址。

如果browstat不能找到網段主浏覽器,檢查網段上是否至少有一台機器有作為浏覽器的資格。然後,用下面的兩種方法之一強制執行浏覽器選舉:其一,在丢失計算機的網段中,停止并重新啟動dc(或一台hkey_local_machine\system\currentcontrolset\services\brows-er\parameters\isdomainmaster注冊鍵設定成true的機器)的computer browser服務;其二,執行:browstat elect 2 mydomain。

  ⑵ 檢查網段主浏覽器浏覽清單的完整性,執行:browstat view 2 \\server1。browstat将從指令行指定的伺服器提取浏覽清單。浏覽清單提供了每一個機器的服務代碼:mbr表示主浏覽器,pbr表示可能的浏覽器,bbr表示後備浏覽器。

如果浏覽清單隻包含本地網段的機器,很可能網段主浏覽器不能連接配接到域的主浏覽器(即pdc),而這又可能是由于路由或其他網絡連接配接問題,或名稱解析失敗。要确定網段的主浏覽器是否能夠獲得pdc的名稱,可以在網段主浏覽器所在的機器上執行:browstat getpdc 2 mydomain。這個指令在指定傳輸端口上發出一個domain_name<1bh>的netbios名稱解析請求。如果請求成功,它将傳回pdc的名稱。

如果browstat getpdc指令不能傳回pdc的名稱,首先必須解決名稱解析問題。處理這方面的問題已經超出了本文的範圍,但請參見關于wins的詳細說明:[url]http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/tcpip/part2/tcpch07.asp[/url]。

為了提取對方的浏覽清單,域的主浏覽器和網段主浏覽器必須能夠解析對方的computer_name<00h>名稱。為此,可以從網段主浏覽器映射一個驅動器到域的主浏覽器,驗證兩台機器能夠解析對方的computer_name<00h>名稱。

如果本地網段主浏覽器的清單缺少某台機器,可以用一個browstat子指令強制本地網段的所有機器宣告自身:browstat forceannounce 2 mydomain。強制執行宣告之後,一定要等待一段時間,以便浏覽清單傳播到其他機器。

  ⑶ 檢查域主浏覽器的浏覽清單的完整性,執行:browstat view 2 \\dc1。(注意dc1是域的主浏覽器pdc的名稱)。如果丢失的機器在它本地的網段浏覽器的清單中可見,但在域主浏覽器的清單中不可見,則應當檢查步驟2的名稱解析問題。

  ⑷ 确定客戶網段的主浏覽器,檢查其浏覽清單。如果域的主浏覽器的浏覽清單是完整的,則問題在客戶機廣播域或者客戶機與域主浏覽器通信過程中。按照步驟1和2的說明,确定客戶機所在網段的主浏覽器,檢查其浏覽清單。如果客戶網段主浏覽器的浏覽清單不完整,按照步驟2的說明檢查名稱解析問題;如果清單完整,問題可能在網段的後備浏覽器。

  ⑸ 确定客戶網段的後備浏覽器,檢查它們的浏覽清單。由于客戶機可以從網段内的任意浏覽器擷取其浏覽清單,後備浏覽器如果存在問題,也可能導緻客戶機的浏覽清單不完整。注意在同一個網段内,從主浏覽器傳播浏覽清單的變化到後備浏覽器,可能需要消耗多達12分鐘的時間。

利用browmon或browstat可以确定客戶機廣播域内的哪些機器是後備浏覽器,然後比較後備浏覽器目前的浏覽清單。在browmon中,圖示中不帶紅點的浏覽器屬于後備浏覽器。或者,執行browstat的子指令browstat status,列出本地網段的每一個傳輸端口的後備浏覽器。然後,對于每一個後備浏覽器,執行browstat view 2 \\backup1檢查各個浏覽清單的完整性。如果後備浏覽器的浏覽清單不完整,通過映射一個從後備浏覽器到網段主浏覽器的驅動器,檢查其解析segment_master_browser<00h>名稱的能力。

  從某種意義上來說,排除computer browser系統的故障是一種對綜合技能的測驗,需要對windows網絡子系統的全面了解。然而,隻要經常實踐,深入了解windows網絡的運作機制,再加上适當的工具,要診斷和排除computer browser故障應該不是什麼難事。

繼續閱讀