svchost.exe是nt核心系統(tǒng)的非常重要的進程,對于2000、xp來說,不可或缺。很多病毒、木馬也會調(diào)用它。所以,深入了解這個程序,是玩電腦的必修課之一。

大家對windows操作系統(tǒng)一定不陌生,但你是否注意到系統(tǒng)中“svchost.exe”這個文件呢?細心的朋友會發(fā)現(xiàn)windows中存在多個 “svchost”進程(通過“ctrl+alt+del”鍵打開任務(wù)管理器,這里的“進程”標簽中就可看到了),為什么會這樣呢?下面就來揭開它神秘的面紗。

發(fā)現(xiàn)

在基于nt內(nèi)核的windows操作系統(tǒng)家族中,不同版本的windows系統(tǒng),存在不同數(shù)量的“svchost”進程,用戶使用“任務(wù)管理器”可查看其進程數(shù)目。一般來說,win2000有兩個svchost進程,winxp中則有四個或四個以上的svchost進程(以后看到系統(tǒng)中有多個這種進程,千萬別立即判定系統(tǒng)有病毒了喲),而win2003 server中則更多。這些svchost進程提供很多系統(tǒng)服務(wù),如:rpcss服務(wù)(remote procedure call)、dmserver服務(wù)(logical disk manager)、dhcp服務(wù)(dhcp client)等。

如果要了解每個svchost進程到底提供了多少系統(tǒng)服務(wù),可以在win2000的命令提示符窗口中輸入“tlist -s”命令來查看,該命令是win2000 support tools提供的。在winxp則使用“tasklist /svc”命令。

svchost中可以包含多個服務(wù)

深入

windows系統(tǒng)進程分為獨立進程和共享進程兩種,“svchost.exe”文件存在于“%systemroot% system32”目錄下,它屬于共享進程。隨著windows系統(tǒng)服務(wù)不斷增多,為了節(jié)省系統(tǒng)資源,微軟把很多服務(wù)做成共享方式,交由 svchost.exe進程來啟動。但svchost進程只作為服務(wù)宿主,并不能實現(xiàn)任何服務(wù)功能,即它只能提供條件讓其他服務(wù)在這里被啟動,而它自己卻不能給用戶提供任何服務(wù)。那這些服務(wù)是如何實現(xiàn)的呢?

原來這些系統(tǒng)服務(wù)是以動態(tài)鏈接庫(dll)形式實現(xiàn)的,它們把可執(zhí)行程序指向 svchost,由svchost調(diào)用相應(yīng)服務(wù)的動態(tài)鏈接庫來啟動服務(wù)。那svchost又怎么知道某個系統(tǒng)服務(wù)該調(diào)用哪個動態(tài)鏈接庫呢?這是通過系統(tǒng)服務(wù)在注冊表中設(shè)置的參數(shù)來實現(xiàn)。下面就以rpcss(remote procedure call)服務(wù)為例,進行講解。

從啟動參數(shù)中可見服務(wù)是靠svchost來啟動的。

實例

以windows xp為例,點擊“開始”/“運行”,輸入“services.msc”命令,彈出服務(wù)對話框,然后打開“remote procedure call”屬性對話框,可以看到rpcss服務(wù)的可執(zhí)行文件的路徑為“c:\windows\system32\svchost -k rpcss”,這說明rpcss服務(wù)是依靠svchost調(diào)用“rpcss”參數(shù)來實現(xiàn)的,而參數(shù)的內(nèi)容則是存放在系統(tǒng)注冊表中的。

在運行對話框中輸入“regedit.exe”后回車,打開注冊表編輯器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]項,找到類型為“reg_expand_sz”的鍵“magepath”,其鍵值為“%systemroot%system32svchost -k rpcss”(這就是在服務(wù)窗口中看到的服務(wù)啟動命令),另外在“parameters”子項中有個名為“servicedll”的鍵,其值為“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服務(wù)要使用的動態(tài)鏈接庫文件。這樣 svchost進程通過讀取“rpcss”服務(wù)注冊表信息,就能啟動該服務(wù)了。

解惑

因為svchost進程啟動各種服務(wù),所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的(如沖擊波變種病毒“w32.welchia.worm”)。但windows系統(tǒng)存在多個svchost進程是很正常的,在受感染的機器中到底哪個是病毒進程呢?這里僅舉一例來說明。

假設(shè)windows xp系統(tǒng)被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目錄下,如果發(fā)現(xiàn)該文件出現(xiàn)在其他目錄下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目錄中,因此使用進程管理器查看svchost進程的執(zhí)行文件路徑就很容易發(fā)現(xiàn)系統(tǒng)是否感染了病毒。windows系統(tǒng)自帶的任務(wù)管理器不能夠查看進程的路徑,可以使用第三方進程管理軟件,如“windows優(yōu)化大師”進程管理器,通過這些工具就可很容易地查看到所有的svchost進程的執(zhí)行文件路徑,一旦發(fā)現(xiàn)其執(zhí)行路徑為不平常的位置就應(yīng)該馬上進行檢測和處理。

由于篇幅的關(guān)系,不能對svchost全部功能進行詳細介紹,這是一個windows中的一個特殊進程,有興趣的可參考有關(guān)技術(shù)資料進一步去了解它
-----------------------------------------------------
Shutdown

Shutdown使您能夠一次關(guān)閉或重新啟動一臺本地或遠程計算機。Windows XP的關(guān)機是由Shutdown.exe程序來控制的,位于Windows\System32文件夾中
。在Windows 2000中是沒有該程序的,如果想讓W(xué)indows 2000也實現(xiàn)同樣的效果,可以把Shutdown.exe復(fù)制到系統(tǒng)目錄下。使用方法:比如你的電腦要在22:00關(guān)機,可以選擇“開始→運行”,輸入“at 22:00 Shutdown -s”,這樣,到了22點電腦就會出現(xiàn)“系統(tǒng)關(guān)機”對話框,默認有30秒鐘的倒計時并提示你保存工作。如果你想以倒計時的方式關(guān)機,可以輸入 “Shutdown.exe -s -t 3600”,這里表示60分鐘后自動關(guān)機,“3600”代表60分鐘。

語法:
shutdown [/i | /l | /s | /r | /a | /p | /h | /e] [/f] [/m \\ComputerName] [/t XXX] [/d [p:]XX:YY/c"Comment"]

參數(shù)

/i : 顯示“遠程關(guān)機對話框”。/i 選項必須是鍵入的第一個參數(shù),之后的所有參數(shù)都將被忽略。

/l : 立即注銷當前用戶,沒有超時期限。不能將 /l 與 /m \\ComputerName 或 /t 一起使用。

/s : 關(guān)閉計算機。

/r : 關(guān)機后重新啟動計算機。

/a : 取消關(guān)機操作(僅在超時期限內(nèi)有效)。a 參數(shù)僅可以與 /m \\ComputerName 一起使用。

/p : 僅關(guān)閉本地計算機(而不是遠程計算機),沒有超時期或警告。/p 只能和 /d 一起使用。如果您的計算機不支持關(guān)閉電源功能,使用 /p 將關(guān)閉系統(tǒng)但不會切斷您的計算機電源。

/h : 使本地計算機處于休眠狀態(tài)(如果已啟用休眠)。僅可將 h 與 /f 一起使用。

/e : 允許在目標計算機上記錄意外關(guān)機原因。

/f : 強制關(guān)閉正在運行的應(yīng)用程序而不提前警告用戶。

警告

• 使用 /f 選項可能導(dǎo)致未保存的數(shù)據(jù)丟失。

•/m \\ComputerName :指定目標計算機。不能與 /l 選項一同使用。

/t XXX : 將重新啟動或關(guān)機前超時期限或延遲設(shè)置為 XXX 秒會使得在本地控制臺顯示一條警告信息。您可以指定的范圍為 0 - 600 秒。如果省略 /t,則默認超時期限為 30 秒。

/d [p:]XX:YY : 列出系統(tǒng)重新啟動、關(guān)機或關(guān)閉電源的原因。下表描述了參數(shù)值。

說明:
p: 表示重新啟動或關(guān)機是已計劃的。如果您不使用 p:選項,關(guān)機事件跟蹤程序假設(shè)未計劃重新啟動或關(guān)機。

XX: 指定主要原因代碼 (0-255)。

YY: 指定次要原因代碼 (0-65535)。


/c"Comment" :使您可以對關(guān)機原因做出詳細注釋。必須首先使用 /d 選項提供一個原因。必須將注釋引在引號中。最多可以使用 511 個字符。

/? :在命令提示符下顯示幫助,包括在本地計算機上定義的主要原因和次要原因的列表。只鍵入 shutdown 而不帶任何參數(shù)也可以顯示幫助。

注釋
• 必須為用戶授予關(guān)閉系統(tǒng)的用戶權(quán)利,該用戶才能使用 shutdown 命令關(guān)閉本地或遠程管理的計算機。詳細信息,請參閱“相關(guān)主題”中的“訪問控制概述”和“特權(quán)”。

• 用戶必須是 Administrators 組的成員才能對本地或遠程管理的計算機的意外關(guān)機進行批注。如果目標計算機已加入某個域,則 Domain Admins 組的成員可能會執(zhí)行該過程。詳細信息,請參閱默認本地組和默認組。

• 如果希望一次關(guān)閉多臺計算機,可針對每臺計算機使用腳本來調(diào)用 shutdown,或者可使用 shutdown /i 顯示遠程關(guān)機對話框。

• 一旦指定了主要和次要原因代碼,您必須首先為計劃使用某種特定原因的每個計算機定義那些原因代碼。如果目標計算機上沒有定義原因代碼,關(guān)閉事件跟蹤程序?qū)o法記錄正確的原因文本。

• 切記使用 p: 參數(shù)指出關(guān)機是計劃關(guān)機。省略 p:表示關(guān)機是非計劃關(guān)機。如果鍵入 p:,后面跟著非計劃關(guān)機的原因代碼,命令將不會執(zhí)行關(guān)機。相反,如果省略 p:并為計劃關(guān)機鍵入原因代碼,命令也不會執(zhí)行關(guān)機。

示例


要強制讓應(yīng)用程序在一分鐘延遲后關(guān)閉并重新打開本地計算機,并注明原因是“應(yīng)用程序:維護(計劃內(nèi))”,注釋內(nèi)容為“重新配置 myapp.exe”,請鍵入:

shutdown /r /t 60 /c "Reconfiguring myapp.exe" /f /d p:4:1

要使用相同的參數(shù)重新啟動遠程計算機 \\ServerName,請鍵入:

shutdown /r /m \\servername /t 60 /c "Reconfiguring myapp.exe" /f /d p:4:1


柴油發(fā)電機
發(fā)電機
柴油機
柴油發(fā)電機
13636374743(上海)
13291526067(嘉興)