天天看點

超級DIY Windows XP系統服務配置攻略

 對于經常重裝系統的朋友來說,出于優化系統、減少記憶體占用亦或增強系統安全性能,往往都會修改很多系統服務的啟動類型。将大量無用或者危險的服務關閉,參照許多服務優化的文章來看,大多需要禁用并停止20-30個服務将是一項比較煩瑣的工作,我也是深受其害。然而從Windows XP開始,其自帶的DOS工具中加入了一個sc.exe(Service Control)的檔案,剛好可以對服務的啟動類型以及服務的啟動或者關閉等進行進行操作,再利用DOS的批處理優勢,就可以把上面提到的種種操作進行大幅簡化。

  sc.exe常用功能清單:

  1.更改服務的啟動狀态(這是比較有用的一個功能)

  2.删除服務(除非對自己電腦的軟、硬體所需的服務比較清楚,否則不建議删除任何系統服務,特别是基礎服務)

  3.停止或啟動服務(功能上類似于net stop/start,但速度更快且能停止的服務更多)

  具體的指令格式如下:

  修改服務啟動類型的指令行格式為(特别注意start=後面有一個空格)

  sc config 服務名稱 start= demand(設定服務為手動啟動)

  sc config 服務名稱 start= disabled(設定服務為禁用)

  停止/啟動服務的指令行格式為

  sc stop/start 服務名稱

  注意:平時常接觸的都是服務的顯示名稱,而以上所指是服務名稱,都可以在控制台-> 管理工具-> 服務裡面,輕按兩下對應的服務來查詢。

  先舉例說明一下具體的設定方法:

  如設定遠端系統資料庫服務為手動其格式為

  sc config RemoteRegistry start= demand

  設為禁用的格式為:

  sc config RemoteRegistry start= disabled

  停止服務則格式為:

  sc stop RemoteRegistry

  首先把自己所需設定的服務名稱查到之後,按照上面的格式做成批處理檔案,重裝系統之後隻要運作批處理檔案即可。

  以下是我的設定,以XPSp2為藍本,可比對所用的系統進行增删和修改。注:未加入XPSP2的自動更新、安全中心、防火牆。

  sc config Alerter start= demand

  sc config TrkWks start= demand

  sc config helpsvc start= demand

  sc config PolicyAgent start= demand

  sc config dmserver start= demand

  sc config WmdmPmSn start= demand

  sc config Spooler start= demand

  sc config RemoteRegistry start= demand

  sc config NtmsSvc start= demand

  sc config seclogon start= demand

  sc config Schedule start= demand

  sc config WebClient start= demand

  sc config W32Time start= demand

  sc config WZCSVC start= demand

  sc config ERSvc start= demand

  sc config Themes start= demand

  sc config FastUserSwitchingCompatibility start= disabled

  sc config Messenger start= disabled

  sc config ProtectedStorage start= disabled

  sc config SSDPSRV start= disabled

  sc config TermService start= disabled

  sc config ShellHWDetection start= disabled

  如果需要立即關閉服務也可把以下代碼跟在上面的代碼之後

  sc stop W32Time

  sc stop ShellHWDetection

  sc stop TrkWks

  sc stop helpsvc

  sc stop dmserver

  sc stop PolicyAgent

  sc stop Spooler

  sc stop RemoteRegistry

  sc stop seclogon

  sc stop Schedule

  sc stop WZCSVC

  sc stop ERSvc

  sc stop Themes

  sc stop FastUserSwitchingCompatibility

  sc stop ProtectedStorage

  sc stop SSDPSRV

  sc stop WebClient

  最後把修改好之後的代碼存為services.cmd,在以後進行服務設定時,直接運作事先儲存好的批處理檔案就可以做到事半功倍了。

  看到這裡,使用Win2000的朋友也不必失望,sc.exe這個指令行工具對Win2000同樣适用,可從裝有WinXP或者Win2003的機器裡面拷貝sc.exe檔案,與儲存好的批處理檔案放在一起,然後執行批處理檔案即可。

  對系統資料庫比較熟悉的朋友可能會想到用系統資料庫來設定服務的啟動類型,這也是一種可行的方法,本身卻有着内在不足。原因是服務啟動類型在系統資料庫中對應的鍵值較長且分散,進行整理不友善直覺且易錯漏,是以這種方法比較适用于無人值守的安裝時使用。

  下面是我對服務進行設定時遇到的問題和技巧,僅供參考。

  1.對于系統服務而言,既然存在就有它存在的意義。是以在開始之前最好先了解一下機器使用的軟體和硬體所必須的系統服務,再進行後續操作。比如說辦公一族經常使用列印機,那麼列印機安裝、運作必備服務的延遲列印服務(Spooler)就不能改動其啟動類型或者将其停止。喜歡XP視覺樣式的朋友,主題服務(Themes)也是不能去改動的……由于系統服務衆多,這裡就逐一列出了,可以參看大衆軟體2004年18、19期GZ寫的《用我所用棄我所棄——WindowsXp服務詳解》(針對XPSP1,但由于SP2的服務并無太大的改動,是以有着很強的參考價值)再加上平時的積累,相信一定能把你的服務設定好。

  2.基礎服務盡量不要去改動(主要指在服務屬性裡依存關系中顯示“如果此服務失敗,計算機将重新開機動,此服務不支援恢複操作”這類的服務,注意RPC服務也屬于基礎服務)。一方面是因為它們是底層的服務,另一方面是相當多的服務都依存于這些基礎服務。

  3。有的服務隻能設定其啟動類型,而不能通過sc stop來使之停止,是以兩段代碼所包含的服務不太相同。比如說TermService(終端服務)。将之設為禁用之後,重新開機一次後即變為停止了。

  4.不能忽視服務間存在的依存關系,如果關閉了一個服務的父依存服務,那麼這個服務和他的子依存服務也将不再起作用,最簡單的例子是IIS服務依存于ProtectedStorage服務,如果該服務被改為手動特别是禁止之後,則IIS服務和依存于IIS的相關服務就相應的被禁用了。還有一些服務未标明依存關系,但是卻缺一不可,比如說自動更新以及V5版的WindowsUpdate事實上不當依存于自動更新服務(wuauserv),還依存于智能背景傳輸服務(BITS)。是以把BITS服務禁用之後,WindowsUpdate也将出錯。

  以下是原先在XPSP1時總結的一些服務調整注意事項,現在對SP2進行補充,希望對各位能有所幫助。(寫的比較早了,給出的多數是顯示名稱,服務名稱自己查一下)

Cryptographic Services

  提供三種管理服務: 編錄資料庫服務,它确定 Windows 檔案的簽字; 受保護的根服務,它從此計算機添加和删除受信根證書機構的證書;和密鑰(Key)服務,它幫助注冊此計算機獲驗證書。

  最主要的展現是在安裝驅動程式、DirectX等凡是需要驗證數字簽名時都必須開啟這個東東。如果不開啟将會導緻這些程式不能正常安全的安裝。但還可考慮系統屬性中的硬體标簽裡的驅動程式簽名裡進行修改以使之失效,平時不進行驅動以及DirectX安裝的時候,才可禁用,需要時再行開啟。

  其實在更新SP或者Hotfix的時候,更新檔案裡面同樣有數字簽名,是以Cryptographic Services要開啟

  Terminal Services

  允許多位使用者連接配接并控制一台機器,并且在遠端計算機上顯示桌面和應用程式。這是遠端桌面(包括管理者的遠端桌面)、快速使用者轉換、遠端協助和終端伺服器的基礎結構。

  這裡需要說明一個問題,我們平時隻要沒有以上的應用就可以把它禁用,最明顯的展現就是進入XP的速度可以大大加快(關于這點可以用全新安裝的XP來實驗)。比較明顯的展現就在開啟動界面的滾動條滾動次數大大減少(黑屏的時間不會變化,不會像有的同學說的滾動時間少了,黑屏時間長了)。

  比較有意思的是這個服務一旦禁用的話,在任務管理器的使用者欄裡面将不會再顯示使用者名。其實我覺得無關緊要。

  Protected Storage

  提供對敏感資料(如私鑰)的保護性存儲,以便防止未授權的服務,過程或使用者對其的非法通路。

  這個服務也是說明不夠具體,一般認為與密碼記錄有關。比較常見但于現在很多路由器的登入驗證以及網頁中各種輸入密碼的表單或視窗,設定為自動或者禁用都可以,千萬不能設定為手動,否則就會出現不能登入路由器或者無法輸入網頁中的密碼(具體表現就是出現了找到頁面就是不彈出密碼輸入框,導緻不能正常登入。隻是普通網頁登入的話主要是無法将光标定位于密碼輸入框中。)

  相類似的表現也存在于Win2000下設該服務為手動後安裝IE6Sp1,在重新開機後的更新過程中,進行系統服務安裝時會相當緩慢(我的機器是賽揚4 1.8G可以用掉超過十分鐘時間去等待安裝完成)

  但是先将此服務禁用之後再行安裝IIS的朋友就會發現IIS不能正常開啟,因為這個服務是IIS的依賴服務,如果要用IIS的話,這個服務就隻能設為自動,而不能将它禁用了。

  如果不使用IIS、而且對密碼輸入不太多的使用者可以将此服務關閉以提高安全性。

  Remote Access Connection Manager

  建立網絡連接配接。

  在GZ的文章和微軟的描述中都說這個服務是建立網絡連接配接,依賴于Telephony這個服務,而GZ在論及Telephony時又提到隻有不使用與拔号相關的服務時就可将之關閉,那麼用區域網路或路由器上網的又應該如何設定呢?有待驗證!

  Windows Installer

  這個服務的程序名是msiexec.exe,如果使用到微軟Windows Installer制作的MSI檔案的安裝就會開啟這個服務,GZ提到這個服務是手動啟動,同時也必然是關閉着的,隻有在使用的時候才會自行開啟,而不是說這個服務就不工作了。現在很多軟體都用的是這種安裝檔案格式,比如說ACDSee,VMWare,暴風影音、金山系列的部分軟體等都在使用,它們的擴充名都是.exe的,隻是安裝過程中先解壓為.msi再進行安裝,實際直接使用.msi為擴充名釋出的軟體不多。是以最好不要去禁用,而讓系統自行控制。但有時也會出現問題。比如說有時安裝完軟體後可以發現任務管理器的程序清單中有msiexec.exe的存在,但是不能用任務管理器将其中止,一般可以考慮重新開機或者直接到服務中将其停止即可。

  Portable Media Serial Number

  Retrieves the serial number of any portable music player connected to your computer

  這個服務不是太有用,但是将其關閉比較不友善,很容易,是以我認為可以将之設成禁用,而不必要将它停止,下次系統啟動時會自行關閉這個服務,Terminal Services服務與之相似,直接将之禁用即可。

 Shell Hardware Detection(ShellHWDetection)

  為自動播放硬體事件提供通知

  這個服務在SP1的裡面,啟動類型為自動,而狀态也是啟動。當時由于沒有太多的資料,也沒有描述可以參考,是以一直以為是與某些硬體的檢測有關,而到了 SP2之後,有了具體的描述。可以肯定這既不是硬體的檢測程式,也不是我們平時使用的自動播放功能,故完全可以禁用之,因為這個服務支援的硬體到現在我也沒見過。但是在nlite前期版本中,發現這個服務開始是在服務的移除範圍之例,後來卻被移到實驗項目裡邊去了,可見其與某些硬體存在着依賴關系。是以如果發現自己的外設,如數位相機或者某些随身聽(不是指一般的MP3)出現問題的話,将此服務保持原狀态。

  Event Log(EventLog)

  啟用在事件檢視器檢視基于 Windows 的程式群組件頒發的事件日志消息。無法終止此服務。

  由描述上看,再加上XP本身面向伺服器的特性,可見這個服務是提供系統安全分析基礎服務。但nlite裡這個服務開始做為試驗服務,後來又轉為用紅字注明的可移除服務。因為個人使用者對安全性要求不高,是以很多nlite使用者直接把這個服務給移掉了。出于兩方面考慮,一是這個服務不要在系統安裝之後用改系統資料庫或者用指令行的方式移除,二是用nlite制作的時候去掉此服務,然後安裝系統後未發現系統有相當長時間的啟動延遲,就說明這個服務移除是安全的。做為試驗的時候來移除此服務後,系統啟動時間相當長,後來nlite的作者根據反映做了特定修改之後,這個服務的移除才變得安全。

  綜上,對此服務進行移除的情況,隻适合于使用nlite進行系統安裝從不看日志且移除後無啟動延遲的。

  Logical Disk Manager

  監測和監視新硬碟驅動器并向邏輯磁盤管理器管理服務發送卷的資訊以便配置。如果此服務被終止,動态磁盤狀态和配置資訊會過時。如果此服務被禁用,任何依賴它的服務将無法啟動。

  這個服務平時設為手動即可,當使用到“管理工具-計算機管理-磁盤管理”時會自行啟動,以使我們能對系統中的各個分區或者盤符進行管理,而在平時又可以不占用系統資源。但有時在安裝虛拟光驅或者首次插入一個U盤時,經常會出現裝置驅動加載正常,而在我的電腦裡邊看不到盤符的情況(經過試驗在指令提示符下确實能打得開新的盤符)。遇到這個情況,不妨到“磁盤管理”屬性頁面裡去手動設定一下盤符即可(有時可能還要重新開機一下)。

  最後再補充一點,現在很多路由裝置開始支援UPnP,而XP的ICS/ICF則自帶UPnP的支援,很多BT下載下傳工具現在已經開始支援這一協定,來進行自動端口映像,是以如果采用以上路由器以及Internet共享連接配接(相關軟體沒有進行嘗試,比如WinRoute)上網的朋友,建議不要去更改SSDP Discovery Service以及Universal Plug and Play Device Host這兩個與UPnP密切相關的服務。還有幾個服務在XPSP1裡是預設開啟的,但是到了SP2裡面卻變為禁用的服務,或者在2000裡沒有,而XP 裡新增的服務就要相當注意,這裡可能存在在很大的優化的可能。畢竟架構相同,多出來的服務或許是可以關閉用以加快速度的,而那些SP2裡面改變了啟動類型的服務或許是用于提高安全性吧。比較典型的就是Browser(Computer Browser)這個服務GZ給的說明是與網絡計算機浏覽有關,但是如果注意的話就會發現在2000和XPSP1時這個服務的預設啟動類型是自動,狀态是啟動,到了SP2之後,該服務的啟動類型不變,但是狀态是空,此時仍可浏覽網路上的芳鄰,是以可以嘗試着在XPSP1裡面将之關閉看能否浏覽網路上的芳鄰,如果可行的話,直接關閉就行了。特别注意XPSP2裡增加了一個DComLaunch(DCOM Server Process Launcher)的服務,該服務與AppMgmt(Application Management)、MSIServer(Windows Installer)一起構成InstallShield安裝程式的必需服務,也請不要更改這三個服務的預設啟動類型。

  這篇文章适合于對服務及系統操作比較熟練的使用者實踐。初級使用者可使用專門的服務修改軟體(如系統服務終結者)來進行設定。

繼續閱讀