要改變Windows服務的啟動順序,只要修改Windows的注冊表就可 以了。任何Windows服務的注冊信息可以在注冊表的HKEY_LOCAL_MACHINE/
SYSTEM/CurrentControlSet/Services/<Service Name>/鍵下找到。下面就介紹幾個與服務啟動順序相關的服務的值:
Group值:一個REG_SZ類型的值。它用來描述服務屬于那一個服務組。如果服務沒有這一項,那么它不屬于任何一個服務組,系統則會默認的將其在所有的服務啟動后加載。
Tag值:一個REG_DWord類型的值。它用來描述服務的標識。每一個在服務組中的服務都會被分配一個唯一的標識。注冊表通過對服務組的服務標識的排列來安排,同一服務組中的個服務的加載先后順序。
那么,如何改變服務的啟動順序,現在就被分為了兩個步驟,一是:改變服務組的啟動順序。二是:改變服務組中各服務的啟動順序。
先來介紹第一步:注冊表的HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ServiceGroupOrder鍵的List值中保存了表示服務組啟動順序的信息。每一個服務組都是一個字符串,通過字符串在值中排列的先后位置表示服務組被加載的先后順序。要想改變服務組的加載順序,只要改變它們的位置就可以了。方法:用Regedit32.exe(不是,Regedit.exe,因為,在這里雙擊List值后,只能看到十六進制的數據,不便于修改。)打開該值,這是一個字符編輯環境,改變里面的組的先后順序,然后確定改動。服務組的啟動順序就搞定了。
第二步:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/GroupOrderList鍵下有各服務組中各服務啟動順序的信息。每個服務組信息都被保存為了一個REG_BINARY類型的值,如:Pointer Port 服務組的值為030000000200000001000000030000000。下面為了方便觀察,我們把它處理為03000000 02000000 01000000 030000000 它表示Pointer Port 服務組有三個服務,TAG值為2的服務先加載,然后是TAG值為1的服務,最后是TAG值為3的服務加載(信息解讀的順序是從左到右)。要改變服務在組中的加載順序,只要編輯這個二進制串就可以了。
另外,我們還可以通過ChangeServiceConfig API或者sc.exe程序(Windows 2000 Resource Kit包中的工具)來改變服務的加載順序。這里就不一一細說了。
新聞熱點
疑難解答