bestlong 怕失憶論壇

 

 

搜索
bestlong 怕失憶論壇 論壇 MS Windows 改變 Windows 服務的啟動順序
查看: 7224|回復: 0
go

改變 Windows 服務的啟動順序 [複製鏈接]

Rank: 9Rank: 9Rank: 9

1#
發表於 2006-6-20 23:43 |只看該作者 |倒序瀏覽 |打印
改變 Windows 服務的啟動順序

要改變 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包中的工具)來改變服務的加載順序。這裡就不一一細說了。
我是雪龍
http://blog.bestlong.idv.tw
http://www.bestlong.idv.tw
‹ 上一主題|下一主題

Archiver|怕失憶論壇

GMT+8, 2024-4-20 17:56 , Processed in 0.019590 second(s), 10 queries .

Powered by Discuz! X1.5

© 2001-2010 Comsenz Inc.