版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Windows Vista 的服務(wù)本文檔提供了一些 Windows Vista 服務(wù)的相關(guān)信息。對(duì)于想在這個(gè)版本的 Windows 上面開發(fā)服務(wù)程序的開發(fā)者們, 本文檔也提供了一些最優(yōu)方法。這些信息應(yīng)用在Windows 操作系統(tǒng)上。微軟可能會(huì)隨時(shí)更改本文檔內(nèi)容,可在以下地址獲取最新的 英文版本。Windows 服務(wù)概述Microsoft Windows服務(wù)就是程序,通常,它們雖 Windows 一起啟動(dòng),并在后臺(tái)運(yùn)行,直到被關(guān)閉。嚴(yán)格一點(diǎn)說,服務(wù)就是所有用服務(wù) API實(shí)現(xiàn)的Windows程序。通常,服務(wù)處理 一些低級(jí)別的任務(wù),這些任務(wù)很少需要和用戶交互。盡管服務(wù)對(duì)于用戶通常是不可見的,但Win
2、dows功能又離不開他們。服務(wù)處理許多重要的操作系統(tǒng)功能,包括:1、聯(lián)網(wǎng)。很多系統(tǒng)服務(wù)支持聯(lián)網(wǎng)。比如動(dòng)態(tài)主機(jī)配置協(xié)議 (Dynamic Host ConfigurationProtocol, DHCP )客戶端服務(wù)通過存儲(chǔ)和更新系統(tǒng)的IP地址來管理網(wǎng)絡(luò)配置。2、硬件。即插即用服務(wù)(Plug and Play )使計(jì)算機(jī)可以識(shí)別硬件配置的變化并做出響 應(yīng),例如用戶添加或者卸載了一個(gè)硬件。3、遠(yuǎn)程訪問。終端服務(wù)(Terminal Services )允許用戶在遠(yuǎn)程登陸計(jì)算機(jī)。除了 Windows自帶的服務(wù),大部分計(jì)算機(jī)還會(huì)運(yùn)行很多第三方的服務(wù)。見到最多的就是 防火墻和防病毒程序。服務(wù)怎樣運(yùn)行服務(wù)和
3、一般程序最主要的區(qū)別是,服務(wù)被服務(wù)控制管理器(Service Control Manager , SCM )管理。使用服務(wù) API實(shí)現(xiàn)服務(wù),這些 API處理服務(wù)和SCM之間的交互。 SCM維護(hù)一個(gè)數(shù)據(jù)庫(kù),這個(gè)數(shù)據(jù)庫(kù)放置了所有已安裝服務(wù)的信息,并提供一個(gè)統(tǒng)一的方法來 控制這些服務(wù):1、開始和停止服務(wù)。2、管理正在運(yùn)行的服務(wù)。3、維護(hù)服務(wù)相關(guān)的狀態(tài)信息。服務(wù)有三種狀態(tài):已運(yùn)行,已停止,已暫停。1、已運(yùn)行是服務(wù)的一般運(yùn)行狀態(tài)。2、已停止的服務(wù)已經(jīng)完全關(guān)閉,必須經(jīng)過一個(gè)啟動(dòng)過程,才能再次進(jìn)入已運(yùn)行的狀態(tài)。3、已暫停服務(wù)中止處理,但是還駐留在內(nèi)存中,并且繼續(xù)響應(yīng)控制請(qǐng)求。以暫停的服務(wù)可以跳過啟動(dòng)過程直接
4、進(jìn)入以運(yùn)行的狀態(tài)。服務(wù)的一個(gè)關(guān)鍵的特征是它怎樣被啟動(dòng)。SCM管理的數(shù)據(jù)庫(kù)里有這樣的信息。有三種啟動(dòng)模式:1、自動(dòng)。在系統(tǒng)引導(dǎo)中,SCM自動(dòng)啟動(dòng)這些服務(wù)。2、手動(dòng)。想啟動(dòng)這類服務(wù),必須利用控制面板中的管理工具。3、禁用。這些服務(wù)不能被啟動(dòng)。要想啟動(dòng)這類服務(wù),用戶必須把啟動(dòng)模式調(diào)整為自動(dòng)或 者手動(dòng)當(dāng)服務(wù)啟動(dòng)后,SCM利用控制請(qǐng)求來管理服務(wù)的狀態(tài)。比如, SCM向服務(wù)發(fā)送控制請(qǐng)求,通知服務(wù)暫停,繼續(xù)運(yùn)行,或者準(zhǔn)備關(guān)閉。SCM的數(shù)據(jù)庫(kù)也包含了服務(wù)的安全設(shè)置。這些設(shè)置控制服務(wù)有多少權(quán)限去訪問系統(tǒng)資源,也使得系統(tǒng)管理者可以控制每個(gè)服務(wù)的權(quán)限。Windows Vista 中 Windows 服務(wù)的變化多年來
5、,服務(wù)已經(jīng)成為 Windows 一個(gè)重要的組成部分。它使得開發(fā)者們可以創(chuàng)建長(zhǎng)時(shí)間 運(yùn)行的程序:1、可以隨計(jì)算機(jī)自動(dòng)啟動(dòng)。2、可以被暫停和重開。3、無論用戶登陸與否,都能運(yùn)行。4、可以運(yùn)行在一個(gè)獨(dú)立的賬戶環(huán)境下,這個(gè)賬戶可以不同于已登陸的賬戶和默認(rèn)賬戶。這些特點(diǎn)使得服務(wù)可以長(zhǎng)時(shí)間的運(yùn)行,而不干擾在同一計(jì)算機(jī)上工作的用戶。自從服務(wù) 概念的引入,服務(wù)的運(yùn)行環(huán)境已經(jīng)發(fā)生了很大的變化。這些變化已經(jīng)帶來了一些很多問題: 安全性、可靠性、性能、操作和管理。這一節(jié),討論一下對(duì)于 Windows Vista 做出的改進(jìn)。安全性增強(qiáng)近些年,服務(wù)已經(jīng)成為那些病毒制造者們的目標(biāo)。最近的例子有:“Blaster 、“
6、Sasser”、和“Code Red對(duì)于這個(gè)現(xiàn)象,有很多原因:1、服務(wù)基本上都在長(zhǎng)時(shí)間運(yùn)行。通常,從系統(tǒng)啟動(dòng)到關(guān)閉,它們都在運(yùn)行。2、服務(wù)通常都是面向網(wǎng)絡(luò)的,這使得他們極易受到遠(yuǎn)程攻擊。3、服務(wù)基本上以高權(quán)限賬戶運(yùn)行,比如LocalSystem 。這一節(jié),討論一下對(duì)于 Windows Vista 做出的改進(jìn),這些改進(jìn)為了緩和服務(wù)的安全問題。這些改變有兩個(gè)重要的目的:1、限制用戶程序訪問服務(wù)。會(huì)話 0隔離(Session 0 isolation )要求服務(wù)和用戶程序運(yùn) 行在隔離的會(huì)話里。2、“固化”服務(wù)使不安全服務(wù)破系統(tǒng)的可能性降低。有以下兩個(gè)互補(bǔ)的方法來達(dá)到這個(gè)目的:最小權(quán)限,使得服務(wù)運(yùn)行在它
7、所需要的權(quán)限范圍內(nèi),做不了其他的事情。服務(wù)隔離,利用唯一的服務(wù)標(biāo)識(shí),使服務(wù)如其他服務(wù)和程序隔離開。服務(wù)可以利用 這個(gè)標(biāo)識(shí)來限制其他服務(wù)和程序?qū)λ馁Y源的訪問,也可以限制自己對(duì)其他服務(wù)和 程序的資源訪問。比如,服務(wù)隔離允許防病毒服務(wù)維護(hù)簽名定義文件的專門入口。以最小權(quán)限運(yùn)行Windows服務(wù)通常以LocalSystem 賬戶運(yùn)行,這個(gè)賬戶具有系統(tǒng)的最高權(quán)限。 這樣的服 務(wù)成為病毒制造者很有吸引力目標(biāo)。理想情況下,服務(wù)應(yīng)該以低權(quán)限級(jí)的LocalService 或者NetworkService 賬戶運(yùn)行,從而減小對(duì)系統(tǒng)潛在的破壞。但是,很多服務(wù)需要的一些權(quán)限只有 LocalSystem 能夠支持。在
8、 Windows Vista 之前就用的“ all-or-nothing ”模型意思是,服務(wù)得到了一些LocalSystem 的權(quán)限后, 它也同時(shí)具有了 LocalSystem 的所有其他權(quán)限。 這意味著很多時(shí)候,服務(wù)所具有的權(quán)限不是它所需要的,產(chǎn)生對(duì)系統(tǒng)潛在的破壞性。Windows Vista 允許服務(wù)以最小權(quán)限運(yùn)行,解決了這個(gè)問題。服務(wù)不會(huì)再被標(biāo)準(zhǔn)賬戶支持的默認(rèn)權(quán)限所限制。服務(wù)可以選擇賬戶,這個(gè)賬戶有他們需要的權(quán)限,之后,服務(wù)還可以去掉 所 有 它 不 需 要 的 權(quán) 限 。 這 個(gè) 功 能 可 以 用 于 所 有 的 賬 戶 類 型 : LocalService , NetworkSer
9、vice , LocalSystem ,一個(gè)域,或者一個(gè)本地賬戶。服務(wù)利用一些機(jī)制來聲明他們所需要的權(quán)限,這些機(jī)制將在之后討論。當(dāng)SCM啟動(dòng)服務(wù)時(shí):1、對(duì)于獨(dú)立的服務(wù),SCM逆著對(duì)照進(jìn)程標(biāo)記符檢查權(quán)限需求列表,所有沒有被要求的權(quán)限都會(huì)被從進(jìn)程標(biāo)識(shí)符上去掉。2 、對(duì)于共享的服務(wù),例如svchost 的服務(wù)宿主,在這個(gè)組里的所有服務(wù)需要的權(quán)限合并成權(quán)限列表。SCMR將沒有任何一個(gè)成員服務(wù)需要的權(quán)限從進(jìn)程標(biāo)識(shí)符上刪除。3、如果服務(wù)沒有申明需要的權(quán)限,SCM假設(shè)服務(wù)需要與賬戶相關(guān)的所有權(quán)限。這樣確保了向后兼容性。但是,如果服務(wù)組中有一個(gè)這樣的服務(wù),組中的其他服務(wù)也都以賬戶默認(rèn)的一組權(quán)限運(yùn)行。如果進(jìn)程標(biāo)
10、識(shí)符里沒有服務(wù)要求的權(quán)限,SCM不會(huì)啟動(dòng)這個(gè)服務(wù)。比如,以 NetworkService 賬戶運(yùn)行的程序可以 將 SeTcbPrivilege 指定為需要的權(quán)限。但是, NetworkService 進(jìn)程標(biāo)識(shí)符不支持SeTcbPrivilege ,所以啟動(dòng)失敗。怎么指定所需權(quán)限1 、 Sc.exe 管理服務(wù)的命令行工具有兩個(gè)新命令,支持為服務(wù)指定所需權(quán)限。privs 這個(gè)命令為服務(wù)設(shè)定一個(gè)權(quán)限。 privs 的語法是: sc privs Privileges qprivs 這個(gè)命令查詢服務(wù)需要的權(quán)限, qprivs 的語法是: sc qprivs service name buffersize
11、Privileges 是一個(gè)字符串, 包含權(quán)限列表, 以斜杠分開(/ )。 例如, 指定備份和恢復(fù)權(quán)限,將 Privileges 設(shè)置成“ SeBackupPrivilege/SeRestorePrivilege ” 。2 、利用程序指定需要的權(quán)限,以下面的值為參數(shù)調(diào)用ChangeServiceConfig2 :將 dwInfo 參數(shù)設(shè)置為SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO 使 lpInfo 指向一個(gè) SERVICE_REQUIRED_PRIVILEGES_INFO 結(jié)構(gòu)。 這個(gè) 結(jié)構(gòu)包含了一個(gè)字符串,字符串列出了需要的權(quán)限。使用 QueryServ
12、iceConfig2 查詢服務(wù)需要的權(quán)限。權(quán)限的變化將在服務(wù)下一次啟動(dòng)時(shí)生效。注意一點(diǎn),不管是命令行工具還是函數(shù),都會(huì)檢查列表中的權(quán)限是否有效, 但是它們不能確定服務(wù)是否支持指定的權(quán)限。 這個(gè)工作是由 SCM 在試圖啟動(dòng)一個(gè)服務(wù)的時(shí)候做的。注意:權(quán)限列表只能被那些具有SERVICE_CHANGE_CONFIG 權(quán)限的調(diào)用程序更改。默認(rèn)情況下,只有本地管理員,權(quán)力用戶和服務(wù)器操作員可以在遠(yuǎn)程或者本地取得得到這個(gè)權(quán)限。 具有 SERVICE_QUERY_CONFIG 權(quán)限的調(diào)用程序可以查詢需要的權(quán)限的列表。 默認(rèn) 情況下,只有本地管理員,權(quán)力用戶和服務(wù)器操作員可以在遠(yuǎn)程取得得到這個(gè)權(quán)限,服務(wù)和交互
13、的用戶可以在本地取得這個(gè)權(quán)限。服務(wù)隔離許多服務(wù)需要訪問一些特定的對(duì)象,而這些對(duì)象只有高權(quán)限賬戶才能訪問。比如,服務(wù)可能要向注冊(cè)表寫值,而注冊(cè)表只有管理員能夠訪問。在 Windows Vista 以前的系統(tǒng)中,服 務(wù)以象 LocalSystem 這樣的高權(quán)限賬戶運(yùn)行, 從而得到訪問這些對(duì)象的權(quán)限。 還有一個(gè)做法, 就是降低這些對(duì)象的安全性,使具有低權(quán)限的服務(wù)已可以訪問它們。這兩個(gè)方式都有可能使攻擊者或病毒得到系統(tǒng)的控制權(quán)。對(duì)于管理員,唯一可以降低這個(gè)風(fēng)險(xiǎn)的方法是,建立一個(gè)服務(wù)的專有賬戶,只讓這個(gè)賬戶具有訪問這些對(duì)象的權(quán)限。但是,這樣又帶來了管理效率的問題:大量的密碼管理,因?yàn)楣芾韱T再也利用不到使
14、用系統(tǒng)內(nèi)置賬 戶的好處了。為了緩和這個(gè)問題, Windows Vista 引入了服務(wù)隔離,它給服務(wù)提供了一個(gè)訪問特定對(duì)象的方法,既不需要以高權(quán)限運(yùn)行,又不需要降低對(duì)象的安全。例如,服務(wù)隔離允許一個(gè)反病毒服務(wù)運(yùn)行在比LocalSystem 權(quán)限更低的賬戶下,但這個(gè)反病毒服務(wù)還能完全訪問它的特征定義文件或者注冊(cè)表,通常這些只有管理員可以訪問。服務(wù)隔離是一個(gè)專門用來保護(hù)資源(比如訪問文件或者注冊(cè)表的訪問)的對(duì)象,它有一個(gè)包含服務(wù)安全 ID ( service security ID , SID) 的權(quán)限控制表。我們把這個(gè)ID 叫做“per-service SID ” ,它來源于服務(wù)的名字,對(duì)于服務(wù)是
15、唯一的。SID 被分配給服務(wù)之后,服務(wù)的所有者就可以更改所需的對(duì)象的權(quán)限控制列表( access control lists , ACLs ) ,使得服務(wù)可以訪問這個(gè)對(duì)象。例如,具有管理權(quán)限的服務(wù)才能夠訪問 注冊(cè)表鍵值 HKEY_LOCAL_MACHINE)FTWARE。把 per-service SID 添加到這個(gè)鍵值白A ACL里,服務(wù)就可以運(yùn)行在權(quán)限更低的賬戶下,但還可以訪問這個(gè)鍵值。如果 per-service SID 被啟用,它被添加到服務(wù)的進(jìn)程標(biāo)識(shí)符里。注意,在服務(wù)的進(jìn)程被添加到進(jìn)程標(biāo)識(shí)符里的同時(shí),必須啟用 per-service SID 。 per-service SID 也允許
16、,向進(jìn)程標(biāo)識(shí)符里添加幾個(gè)SID 之后,把進(jìn)程標(biāo)識(shí)符轉(zhuǎn)換成一個(gè)限制標(biāo)識(shí)符。利用受限 SID 減少潛在破壞使用 per-service SID , 提供了良好的隔離程度, 并且允許服務(wù)運(yùn)行在更低的權(quán)限賬戶下。但是,它并不阻止服務(wù)訪問賬戶可以訪問的資源,因?yàn)檫M(jìn)程標(biāo)識(shí)符包含了賬戶的SID??紤]下面的情況:X 服務(wù)以 LocalService 賬戶運(yùn)行, 并且啟用了 SID。 除了可以訪問已經(jīng)明確給予它訪問權(quán)限的那些對(duì)象,它還可以訪問 LocalService 賬戶可以訪問的所有對(duì)象。如果這個(gè)服務(wù)涉及安 全問題,攻擊者可能利用它訪問與這個(gè)服務(wù)不相關(guān)的資源,從而破壞系統(tǒng)。為了緩和這個(gè)問題,降低涉及安全問題
17、的服務(wù)對(duì)系統(tǒng)造成破壞的可能性, Windows Vista結(jié)合寫限制標(biāo)識(shí)符( write-restricted tokens )和 per-service SID 為服務(wù)引入受限SID。服務(wù)啟用受限SID 時(shí),服務(wù)的 SID 被添加到寫限制服務(wù)進(jìn)程標(biāo)識(shí)符的正常和受限SID 列表中。這樣保證了,只有明確地將對(duì)象的寫權(quán)限賦予受限列表中的 SID 時(shí),服務(wù)才可以寫對(duì) 象。回到上面的例子,啟用受限SID, X 服務(wù)將沒有權(quán)限寫入訪問 LocalService 賬戶可以訪問的對(duì)象,因?yàn)榉?wù) X的per-service SID沒有被明確地賦予這些對(duì)象的寫權(quán)限。怎樣指定 per-service SID1 、
18、 要 指 定 per-service SID , SID 的 種 類 必 須 設(shè) 定 為 SERVICE_SID_TYPE_UNRESTRICTED 。 如果服務(wù)不需要SID ,可以不設(shè)置SID 類型,或者把它設(shè)置為 SERVICE_SID_TYPE_NONE 。 設(shè)置了類型之后, SID 在下一次進(jìn)程創(chuàng)建的時(shí) 候被添加到進(jìn)程標(biāo)識(shí)符里??捎靡韵聝煞N屬性激活SID:SE_GROUP_ENABLED_BY_DEFAULTSE_GROUP_OWNER存取控制表也擴(kuò)充了服務(wù)的進(jìn)程標(biāo)識(shí)符, 它為服務(wù)登陸SID 提供 GENERIC_ALL 權(quán)限。這就允許在服務(wù)啟動(dòng)或者停止的時(shí)候,激活或者禁用進(jìn)程標(biāo)識(shí)符中
19、服務(wù)的 SID。SID 被添加到進(jìn)程標(biāo)識(shí)符之后,它就不能被去掉了。 SID 的類型必須改變,之后進(jìn)程必須 被重新利用。這個(gè)改變只會(huì)發(fā)生在進(jìn)程重開的時(shí)候。2 、 要 把 進(jìn) 程 標(biāo) 識(shí) 符 設(shè) 置 成 寫 入 限 制 的 。 SID 必 須 設(shè) 置 成 為 SERVICE_SID_TYPE_RESTRICTED 。 使用 SERVICE_SID_TYPE_RESTRICTED 類型, 必須要考慮幾個(gè)問題。如果進(jìn)程包含多個(gè)服務(wù),所有的這些服務(wù)都必須設(shè)置成 SERVICE_SID_TYPE_RESTRICTED 。 否 則 , 設(shè) 置 成 為 SERVICE_SID_TYPE_RESTRICTED
20、的服務(wù)都會(huì)啟動(dòng)失敗。三個(gè) SID 被自動(dòng)地加入到受限列表:通用 SID (World SID ) (S-1-1-0 ) 。這個(gè) SID 為服務(wù)提供所有ACL 支持通用 SID 的對(duì)象的寫權(quán)限。 通用 SID 提供訪問裝載路徑中的一些動(dòng)態(tài)連接庫(kù)的權(quán)限。服務(wù)登陸 SID 。這個(gè) SID 提供那些連接服務(wù)進(jìn)程和 SCM 的命名管道的寫 權(quán)限。寫限制 SID (S-1-5-33 ) 。這個(gè) SID 允許對(duì)象擁有一個(gè)ACL ,使得所有寫限制的服務(wù)進(jìn)程可以寫入對(duì)象。 一個(gè)常見的例子就是Windows 的事件跟蹤對(duì)象( event tracing for Windows (ETW) objects ) 。3
21、 、 Sc.exe 有兩個(gè)支持 per-service SID 的新命令:Sidtype 。 這個(gè)命令改變服務(wù)的 SID 。命令的語法為:sc sidtype service name type Qsidtype 。這個(gè)命令找回服務(wù)的 SID設(shè)置。命令的語法為: sc qsidtype service name4、如果要編程設(shè)置這個(gè)標(biāo)志,調(diào)用 ChangeServiceConfig2 ,用下面的屬性值作參數(shù)。 在系統(tǒng)下一次啟動(dòng)時(shí),改變將會(huì)生效:將 dwInfo 設(shè)置為 SERVICE_CONFIG_SERVICE_SID_INFO 。 使IpInfo指向一個(gè) SERVICE_SID_INFO結(jié)
22、構(gòu)。這個(gè)結(jié)構(gòu)包含一個(gè) DWORD員,這個(gè)成員包含SID類型。5、兩個(gè)關(guān)聯(lián)的公共函數(shù)對(duì)于服務(wù)所有者也很有用: LookupAccountName ,傳入SID ,返回相關(guān)的服務(wù)名。 LookupAccountSID ,傳入服務(wù)名,返回相關(guān)的 SID。6、也可使用Sc.exe來得到指定的服務(wù)的服務(wù) SID。下面的命令返回一個(gè)服務(wù)的SID。Sc showsid service name 注意:調(diào)用者必須擁有 SERVICE_CHANGE_CONFIG權(quán)限才能改變這些設(shè)置。默認(rèn)情況下,只有管理員,權(quán)力用戶,服務(wù)器操作員可以在遠(yuǎn)程或者本地得到這個(gè)權(quán)限。另外,服 務(wù)和交互用戶可以在本地得到SERVICE_
23、CHANGE_CONFIG 權(quán)限。受限的網(wǎng)絡(luò)訪問很多服務(wù)都是面向網(wǎng)絡(luò)的,使得他們很容易受到遠(yuǎn)程攻擊。服務(wù)固化在Windows Vista和Microsoft Windows Server? Code Name Longhorn中,這樣允許開發(fā)者減少服務(wù)對(duì)網(wǎng)絡(luò)資源的訪問,這些資源包括端口、協(xié)議、網(wǎng)絡(luò)通信方向。比如,DHCP服務(wù)一一更新系統(tǒng)的IP地址一一可以把它自己限制到本地68端口,入站的用戶數(shù)據(jù)報(bào)協(xié)議通信在遠(yuǎn)程的67端口。打開或者監(jiān)聽其他端口的企圖,都會(huì)被 Windows Vista和Windows Server Longhorn 的防火 墻阻止。Windows Vista 和Windows
24、Server Longhorn支持下面這幾種服務(wù)網(wǎng)絡(luò)限制的情況:情況舉例限制無網(wǎng)絡(luò)權(quán)限Shell硬件檢測(cè)服務(wù)(ShellHWDetection)服務(wù)不可能監(jiān)聽或者連接到網(wǎng)絡(luò)監(jiān)聽靜態(tài)的TCP或者UDP 端口遠(yuǎn)程過程調(diào)用服務(wù)(Rpcss ),在135端口上服務(wù)只能監(jiān)聽指定的終端監(jiān)聽可配置的TCP或者UPD端口域名服務(wù)(DNS)服務(wù)可以監(jiān)聽配置的終端服務(wù)網(wǎng)絡(luò)限制和per-service SIDS 一起使用。這個(gè)機(jī)制有點(diǎn)像用于限制服務(wù)的文件或注冊(cè)表的權(quán)限,這在服務(wù)隔離”中討論過了。 Windows Vista 和 Windows Server Longhorn 的防火墻 API已經(jīng)被加強(qiáng),提供這些必要
25、的支持。INetFwServiceRestriction接口包含了限制服務(wù)網(wǎng)絡(luò)權(quán)限的方法。要取得更多信息,請(qǐng)看“因特網(wǎng)連接共享和因特網(wǎng)連接防火墻”,在本文檔最后的“資源” 一章。下面的 Microsoft Visual Basic 腳本使用防火墻API, 把 6to4 服務(wù)限制到端口 500, 只接受入站。require variable declarationsoption explicithandle errorson error resume nextdirectionConst NET_FW_DIRECTION_IN = 1 Create the FwPolicy2 object.Di
26、m fwPolicy2Set fwPolicy2 = CreateObject(HNetCfg.FwPolicy2)Dim FwSvcRestrSet FwSvcRestr = fwPolicy2.ServiceRestrictionrestrict serviceFwSvcRestr.RestrictService6to4, c:windowssystem32svchost.exe,TRUE, TRUECreate a new restriction ruleDim NewRuleset NewRule = CreateObject(HNetCfg.FwRule)NewRule.Name =
27、 6to4 500NewRule.Description = Allow 6to4 to receive TCP traffic on port 500NewRule.ApplicationName = c:windowssystem32svchost.exeNewRule.ServiceName = 6to4NewRule.Protocol = 6NewRule.LocalPorts = 500NewRule.Direction = NET_FW_DIRECTION_INNewRule.Enabled = TRUEAdd the behavior rule to the WSH store.
28、fwPolicy2.ServiceRestriction.Rules.Add NewRule會(huì)話 0 隔離Windows 把每個(gè)同時(shí)登陸的用戶放到不同的會(huì)話里面,從而提供多用戶登陸功能。系統(tǒng)啟動(dòng)中建立會(huì)話 0 ,如果需要,還會(huì)建立更多會(huì)話。在 Windows Vista 之前的系統(tǒng)中,服務(wù)總是運(yùn)行在會(huì)話 0 中,用戶程序也可以運(yùn)行在會(huì)話 0 中。比如, Windows XP 激活快速用戶切換( Fast User Switching , FUS )后,第一個(gè)登陸的用戶被分配到會(huì)話 0,這個(gè)用戶的所有程序也運(yùn)行在會(huì)話 0 下。第二個(gè)登陸到系統(tǒng)的用戶就被分配到會(huì)話1 上,如此等等。1 、服務(wù)和用戶
29、程序運(yùn)行在同一個(gè)會(huì)話里,造成了很多安全問題。為了解決這個(gè)問題,Windows Vista 對(duì)會(huì)話 0 作了兩個(gè)重要的改變。會(huì)話0 被留用給那些所有與交互用戶會(huì)話沒有關(guān)系的服務(wù)和其他程序。用戶程序必須運(yùn)行在會(huì)話 1 上,或更高的會(huì)話上。會(huì)話0 不支用戶界面。詳細(xì)點(diǎn)說,運(yùn)行在會(huì)話0 上的程序沒有權(quán)限使用圖形硬件,不會(huì)在顯示器上顯示用戶界面。2 、對(duì)于服務(wù),會(huì)話 0 隔離還有很多隱含的意義,包括:服務(wù)不能使用 PostMessage 或者 SendMessage 向用戶程序發(fā)送消息。運(yùn)行在會(huì)話 1 和其他會(huì)話上的程序都有不同的消息隊(duì)列。同理,程序也不能向服務(wù)發(fā)送 Windows 消息。服務(wù)要給程序發(fā)
30、送消息,必須利用一些類似于遠(yuǎn)程過程調(diào)用或者命名管道的機(jī)制。具有用戶界面的服務(wù)比如有一個(gè)對(duì)話框不能在 Windows Vista 中直接 顯示出來。服務(wù)只能間接的處理和用戶的交互。對(duì)于簡(jiǎn)單的交互,服務(wù)可以調(diào)用 WTSSendMessage , 在用戶的會(huì)話上顯示一個(gè)消息窗。對(duì)于復(fù)雜的交互,服務(wù)必須調(diào)用 CreateProcessAsUser 或使用其他方法,在用戶的會(huì)話上創(chuàng)建一個(gè)用戶界面程序。這個(gè)界面程序處理用戶的交互,并且使用遠(yuǎn)程過程調(diào)用戶或者命名管道來個(gè)服務(wù)通信。要取得更多有關(guān)Windows Vista 中會(huì)話 0 的信息, 以及編寫 Windows Vista 服務(wù)的指導(dǎo)信息,請(qǐng)看本文檔末
31、尾“ Windows Vista 服務(wù)和驅(qū)動(dòng)的會(huì)話 0 隔離帶來的影響”一章。性能的增強(qiáng)延時(shí)自動(dòng)啟動(dòng)在 Windows Vista 之前,有兩個(gè)啟動(dòng)服務(wù)的方法:自動(dòng)啟動(dòng)和按需啟動(dòng)。自動(dòng)啟動(dòng)的服務(wù)在系統(tǒng)引導(dǎo)的時(shí)候啟動(dòng)。有幾種方法可以啟動(dòng)按需啟動(dòng)的服務(wù),但這些都需要用戶手動(dòng)崇啟這些服務(wù)。1 、把一個(gè)服務(wù)定義成自動(dòng)啟動(dòng)服務(wù),主要原因有兩個(gè):這個(gè)服務(wù)必須在引導(dǎo)程序中較早的啟動(dòng),因?yàn)槠渌?wù)依賴它。管理員通常需要一些沒有用戶交互的服務(wù)無人值守地啟動(dòng)。這樣保證在需要時(shí),服務(wù)總是可用的。自動(dòng)啟動(dòng)服務(wù)的問題是,它們數(shù)量不斷增加,影響了系統(tǒng)啟動(dòng)的速度。但是,很多服務(wù)屬于上面兩種原因中的第二種。它們并不需要成為系
32、統(tǒng)引導(dǎo)隊(duì)列的一部分;只是在系統(tǒng)啟動(dòng)完成之后,它們可以無人值守地啟動(dòng),并且在需要時(shí)隨時(shí)可用。Windows Vista 提供了一個(gè)不同的自動(dòng)啟動(dòng)模式延時(shí)啟動(dòng),解決了在引導(dǎo)過程中,服務(wù)對(duì)性能的影響。被指定成為延時(shí)自動(dòng)啟動(dòng)的服務(wù)會(huì)在系統(tǒng)啟動(dòng)完成后,自動(dòng)啟動(dòng)。他們不會(huì)在系統(tǒng)引導(dǎo)的過程中自動(dòng)啟動(dòng),只是在系統(tǒng)引導(dǎo)完成后稍短的時(shí)間內(nèi)啟動(dòng)。這樣不僅提高了系統(tǒng)引導(dǎo)性能,還可以使服務(wù)無人值守地啟動(dòng)。2、在把服務(wù)指定為延時(shí)自動(dòng)啟動(dòng)之前,開發(fā)人員和管理員們應(yīng)該考慮下面幾個(gè)問題:了解服務(wù)的依賴。如果因?yàn)榱硪粋€(gè)必須在引導(dǎo)過程中啟動(dòng)的服務(wù)依賴這個(gè)服務(wù),就不要把這個(gè)服務(wù)標(biāo)記成為延時(shí)啟動(dòng)服務(wù)。SCg忽略標(biāo)記設(shè)置而在引導(dǎo)過程中啟
33、動(dòng)這個(gè)服務(wù)。對(duì)于延時(shí)啟動(dòng)服務(wù),沒有明確的延時(shí)時(shí)間。如果用戶程序在延時(shí)服務(wù)啟動(dòng)之前試圖使用它,將會(huì)失敗。如果用戶程序依賴一個(gè)延時(shí)啟動(dòng)服務(wù),它就應(yīng)該處理這種失敗情況,或者一段時(shí)間后重試,或者調(diào)用 StartService 啟動(dòng)服務(wù)。如果這樣的失敗情況總是發(fā)生,可能把服務(wù)設(shè)置成延時(shí)啟動(dòng)并不是一個(gè)好選擇。延 時(shí)啟動(dòng) 服務(wù)不 屬于裝載 順序組 ( load-order group ) 。它 們屬于 獨(dú)立組 ( stand-alone ) 。怎樣服務(wù)指定為延時(shí)自動(dòng)啟動(dòng)要將創(chuàng)建一個(gè)延時(shí)自動(dòng)啟動(dòng)服務(wù),就設(shè)置延時(shí)自動(dòng)啟動(dòng)標(biāo)志。雖然所有服務(wù)都能設(shè)置這個(gè)標(biāo)志,但它只對(duì)自動(dòng)啟動(dòng)服務(wù)有效。如果自動(dòng)啟動(dòng)服務(wù)被設(shè)置成為延時(shí)
34、自動(dòng)啟動(dòng),那么在引導(dǎo)隊(duì)列完成以后,它才會(huì)被啟動(dòng)。其他啟動(dòng)類型會(huì)忽略這個(gè)標(biāo)志。2 、 Sc.exe 有兩個(gè)支持延時(shí)自動(dòng)啟動(dòng)的命令delayflag 。 這個(gè)命令改變延時(shí)自動(dòng)啟動(dòng)標(biāo)志的設(shè)置。命令的語法為:sc server delayflag service name flag qdelayflag 。 這個(gè)命令查詢延時(shí)自動(dòng)啟動(dòng)標(biāo)志的設(shè)置。命令的語法為:sc server qdelayflag service name 3 、通過程序設(shè)置延時(shí)自動(dòng)啟動(dòng)標(biāo)志,可以使用ChangeServiceConfig2 函數(shù),用下面的制作參數(shù)。改動(dòng)會(huì)在下一次系統(tǒng)引導(dǎo)的時(shí)候生效。將 dwInfo 設(shè)置為 SERVI
35、CE_CONFIG_DELAYED_AUTO_START_INFO。使 lpInfo 指向一個(gè) SERVICE_DELAYED_AUTO_START_INFO 結(jié)構(gòu)。這個(gè) 結(jié)構(gòu)包含一個(gè)布爾型變量,設(shè)置或者清除延時(shí)自動(dòng)啟動(dòng)標(biāo)志。注意:具有SERVICE_CHANGE_CONFIG 權(quán)限的調(diào)用者才可以修改延時(shí)自動(dòng)啟動(dòng)標(biāo)志。默認(rèn)的,只有本地管理員,權(quán)力用戶和服務(wù)器操作員能在遠(yuǎn)程取得這個(gè)權(quán)限。服務(wù)和交互用戶可以在本地取得SERVICE_CHANGE_CONFIG 權(quán)限。服務(wù)狀態(tài)改變的通知在 Windows Vista之前,使用服務(wù)查詢 API ,比如 QueryServiceStatusEx函數(shù),來確
36、定一個(gè)服務(wù)狀態(tài)的變化,是被創(chuàng)建還是被刪除;重復(fù)查詢服務(wù)的狀態(tài)。不斷重復(fù)查詢會(huì)降低系統(tǒng)的性能,所以它不是最好的方法。另外,重復(fù)查詢也成為一個(gè)重要資源的 BUG 。Windows Vista 引入了一個(gè)新的函數(shù), NotifyServiceStatusChange, 這個(gè)函數(shù)允許SCM在服務(wù)被創(chuàng)建、刪除、狀態(tài)改變的時(shí)候給客戶程序發(fā)出通知。怎樣在服務(wù)狀態(tài)改變的時(shí)候得到通知通過注冊(cè)來取得狀態(tài)變化通知,客戶程序通過調(diào)用NotifyServiceStatusChange 指定服 務(wù),改變它想要得到通知的服務(wù)。它們也向 SCM 提供了一個(gè)回調(diào)函數(shù)。1 、下面列出了一些使用 NotifyServiceStat
37、usChange 應(yīng)該注意的一項(xiàng)事項(xiàng):本地和遠(yuǎn)程客戶程序都可以使用 NotifyServiceStatusChange回調(diào)函數(shù)只被調(diào)用一次。如果客戶端想繼續(xù)得到變化的通知,它必須再次調(diào)用NotifyServiceStatusChange ,注冊(cè)回調(diào)函數(shù)??蛻舫绦蚩梢岳?CloseServiceHandle 關(guān)閉服務(wù)句柄,從而取消通知。在回調(diào)函數(shù)被調(diào)用或者通知被取消之前,不要中止調(diào)用了 NotifyServiceStatusChange 的線程,否則將會(huì)發(fā)生內(nèi)存泄漏。 如果有一個(gè)或幾個(gè)服務(wù)持有一個(gè)服務(wù)的打開句柄,那么直到下一次系統(tǒng)啟動(dòng), 這個(gè)服務(wù)才會(huì)被刪除。在這個(gè)情況下,不會(huì)發(fā)送刪除通知。注
38、意 : 必 須 擁 有 SERVICE_QUERY_STATUS 權(quán) 限 才 能 調(diào) 用 NotifyServiceStatusChange 。 默認(rèn)的,只有管理員,權(quán)力用戶和服務(wù)器操作員可以在遠(yuǎn)程取 得這個(gè)權(quán)限。服務(wù)和交互用戶可以在本地取得這個(gè)權(quán)限。其他增強(qiáng)Windows Vista 還包含了一些其他的服務(wù)增強(qiáng)機(jī)制,它們?cè)鰪?qiáng)了可靠性,使管理變得更 加簡(jiǎn)單。預(yù)關(guān)閉通知和關(guān)閉順序在 Windows Vista 之前,系統(tǒng)通知 SCM 計(jì)算機(jī)要關(guān)閉了。在系統(tǒng)中止SCM 進(jìn)程( services.exe )之前, SCM 有大約 20 秒的時(shí)間去關(guān)閉所有運(yùn)行中的服務(wù)。通常因?yàn)檫@個(gè)過 程,服務(wù)都沒有及
39、時(shí)地關(guān)閉自己。2 、當(dāng) SCM 收到關(guān)閉通知以后,它以一個(gè)隨機(jī)的順序依次向每一個(gè)服務(wù)發(fā)送關(guān)閉請(qǐng)求。每一個(gè)服務(wù)都有一個(gè)等待時(shí)間點(diǎn)( wait hint ) ,這個(gè)時(shí)間點(diǎn)指定SCM 應(yīng)該等待多長(zhǎng)時(shí)間后,直接關(guān)閉這個(gè)服務(wù)。當(dāng) SCM 等待的時(shí)間超過這個(gè)等待時(shí)間點(diǎn)時(shí), SCM 就直接將服務(wù)關(guān)閉。這種關(guān)閉模式給服務(wù)帶來了兩個(gè)問題:關(guān)閉順序是隨機(jī)的。如果有一個(gè)服務(wù)需要其他服務(wù)以一個(gè)特定的順序關(guān)閉,那么,它可能不會(huì)被正確地關(guān)閉。一些服務(wù)可能沒有足夠的時(shí)間作充分的清理工作。這個(gè)清理工作常常需要在服 務(wù)再次啟動(dòng)的時(shí)候完成,這又會(huì)導(dǎo)致服務(wù)啟動(dòng)時(shí)間過長(zhǎng),或者數(shù)據(jù)不一致。3 、 Windows Vista 用兩個(gè)方法
40、來處理這些服務(wù)關(guān)閉問題:SCM 在發(fā)送真正的關(guān)閉通知之前先發(fā)送一個(gè)預(yù)關(guān)閉通知。預(yù)處理通知使得服務(wù)的關(guān)閉處理有了更長(zhǎng)的時(shí)間,從而正確的關(guān)閉。那些依賴于服務(wù)關(guān)閉順序的服務(wù),可以向全局依賴列表里添加任何依賴。預(yù)關(guān)閉通知的工作方式和關(guān)閉通知很像。 SCM 以一個(gè)隨機(jī)的順序向注冊(cè)過的服務(wù)發(fā)送預(yù)關(guān)閉通知。發(fā)送通知之后, SCM 會(huì)在一個(gè)指定的時(shí)間量?jī)?nèi)等待服務(wù)停止,超過這個(gè)指定的時(shí)間量, SCM 就認(rèn)為服務(wù)沒有響應(yīng)。默認(rèn)情況下,這個(gè)時(shí)間量為 3 分鐘,但服務(wù)為了滿足特別需要,也可以配置這個(gè)時(shí)間量。要取得更多信息,請(qǐng)看本文當(dāng)最后“資源”中的“服務(wù)控制句柄和函數(shù)”一章。服務(wù)可以在一個(gè)全局的依賴列表里面指定關(guān)閉依
41、賴,在關(guān)閉一個(gè)服務(wù)之前, SCM 首先嘗試關(guān)閉依賴服務(wù)。要利用這個(gè)特點(diǎn),就要為服務(wù)注冊(cè)一個(gè)預(yù)關(guān)閉通知。如果服務(wù)指定了依賴, 關(guān)閉程序也會(huì)同時(shí)進(jìn)行。 比如, 一個(gè)服務(wù)按照順序指定對(duì)服務(wù)“A ” 、“B”、“C”的依賴。SCM向“A”發(fā)送一個(gè)通知后,等待它停止或超時(shí)。接著給“ B”發(fā)送通知等等。如果這些服務(wù)中的任何一個(gè)沒有注冊(cè)預(yù)關(guān)閉通知或者沒有正確關(guān)閉, SCM 會(huì)直接 處理下一個(gè)服務(wù)。怎樣注冊(cè)一個(gè)預(yù)關(guān)閉通知服務(wù)在它們的狀態(tài)塊中設(shè)置SERVICE_ACCEPT_PRESHUTDOWN 來注冊(cè)預(yù)關(guān)閉通知。預(yù)關(guān)閉通知只會(huì)發(fā)送給正在運(yùn)行的并且已經(jīng)注冊(cè)了通知的服務(wù),不會(huì)發(fā)送給處于SERVICE_STOPP
42、ED 或者 SERVICE_STOP_PENDING 狀態(tài)的服務(wù)。要設(shè)置超時(shí)時(shí)間值,調(diào)用 ChangeServiceConfig2 函數(shù),并使用下面的參數(shù):dwInfoLevel 把這個(gè)參數(shù)設(shè)置成為 SERVICE_CONFIG_PRESHUTDOWN_INFOlpInfo 讓這個(gè)參數(shù)指向 SERVICE_PRESHUTDOWN_INFO 結(jié)構(gòu)體,結(jié)構(gòu)體中的dwPreshutdownTimeout 成員就是超時(shí)時(shí)間值,毫秒級(jí)。怎樣聲明關(guān)閉順序要聲明關(guān)閉順序,創(chuàng)建一個(gè)多字符值,這個(gè)值應(yīng)該包含服務(wù)的名稱,他們應(yīng)該按照關(guān)閉的順序排列。把這個(gè)多字符值賦給控制鍵的 PreshutdownOrder ,類
43、似下面這樣:HKEY_LOCAL_MACHINESystemCurrentControlSetControlPreshutdownOrder=Shutdown Order錯(cuò)誤檢測(cè)及恢復(fù)如果一個(gè)服務(wù)啟動(dòng)失敗了, SCM 會(huì)進(jìn)行一個(gè)錯(cuò)誤處理( failure action ) ,比如重新啟動(dòng)這個(gè)出錯(cuò)的服務(wù),使之從錯(cuò)誤中恢復(fù)。在 Windows Vista 之前的版本中,服務(wù)錯(cuò)誤的定義僅限于, 進(jìn)程在任意狀態(tài)下崩潰 (不包含 SERVICE_STOPPED 狀態(tài)) 。 在 Windows Vista 中, 如果服務(wù)發(fā)現(xiàn)了一個(gè)不是致命的錯(cuò)誤, 比喻說內(nèi)存泄漏。 服務(wù)可以不必停止。 它可以通知 SCM做
44、一些錯(cuò)誤處理,從而恢復(fù)。怎樣配置錯(cuò)誤處理只有在服務(wù)顯式的聲明之后, SCM 才會(huì)不斷嘗試錯(cuò)誤處理。最常見的就是“重新啟動(dòng)這個(gè)服務(wù)” 。這個(gè)動(dòng)作需要兩個(gè)值:恢復(fù)時(shí)間( recovery interval ):?jiǎn)挝皇呛撩耄?SCM 在這個(gè)指定的時(shí)間過后,開始恢復(fù)動(dòng)作。重置時(shí)間( reset period ):?jiǎn)挝皇敲耄?SCM 在這個(gè)指定的時(shí)間過后,將錯(cuò)誤計(jì)數(shù)置零。配置錯(cuò)誤處理的一個(gè)方法是利用 sc.exe 。下面的例子給出典型的語法:sc.exe failure option, reset=300,actions=restart/60000/restart/120000/restart/none
45、這條命令告訴SCM :在第一次錯(cuò)誤發(fā)生后,等待60 秒,重新啟動(dòng)服務(wù)在第二次服務(wù)發(fā)生后,等待120 秒,重新啟動(dòng)服務(wù)在第三次錯(cuò)誤發(fā)生后,什么都不做。這時(shí),另一個(gè)常用的錯(cuò)誤處理是重新啟動(dòng)系統(tǒng)。要想重啟系統(tǒng),把restart/none 換成 h reboot/ reboot_interval , SCM 在等待reboot_interval 毫秒后,重啟系統(tǒng)。通常是60000 。在成功完成錯(cuò)誤處理300 秒后, 將錯(cuò)誤計(jì)數(shù)置零。 如果 reset 被設(shè)置成為 INFINITE ,錯(cuò)誤計(jì)數(shù)不會(huì)被重置。編程配置錯(cuò)誤處理, 調(diào)用 ChangeServiceConfig2 函數(shù), 傳遞以下參數(shù)。 配置將在
46、下一次系統(tǒng)啟動(dòng)時(shí)生效。將 dwInfo 屬性設(shè)置成為 SERVICE_CONFIG_FAILURE_ACTIONS令 lpInfo 指向結(jié)構(gòu)體 SERVICE_FAILURE_ACTIONS 。這個(gè)結(jié)構(gòu)體包含一些錯(cuò)誤處理的說明。怎樣使 SCM 不斷嘗試錯(cuò)誤處理Windows Vista 包含一個(gè)新的標(biāo)志: FailureActionsOnNonCrashFailures 。 如果服務(wù)想要 SCM 不斷的嘗試錯(cuò)誤處理,就要設(shè)置這個(gè)標(biāo)志。要使用 Windows Vista 之前的模式, 將 FailureActionsOnNonCrashFailures 設(shè)置為零。服務(wù)在非 SERVICE_STOPPED 狀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來就業(yè)市場(chǎng)的變化及職業(yè)定位分析
- 現(xiàn)代建筑設(shè)計(jì)與智能化技術(shù)的融合實(shí)踐
- 生態(tài)文明產(chǎn)業(yè)園的教育培訓(xùn)與人才培養(yǎng)策略
- 團(tuán)委國(guó)慶節(jié)觀影活動(dòng)方案
- 術(shù)后康復(fù)神經(jīng)外科手術(shù)患者的居家照護(hù)
- Unit 2 Wildlife Protection Reading and Thinking 第二課時(shí)說課稿-2024-2025學(xué)年高一英語人教版(2019)必修第二冊(cè)
- 2024秋八年級(jí)歷史上冊(cè) 第一單元 中國(guó)開始淪為半殖民地半封建社會(huì) 第3課 太平天國(guó)運(yùn)動(dòng)說課稿 新人教版001
- 2024年五年級(jí)英語上冊(cè) Unit 6 My e-friend第1課時(shí)說課稿 牛津譯林版
- 《100 以內(nèi)的加法和減法(二)-進(jìn)位加》(說課稿)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)人教版001
- 2024年一年級(jí)品生下冊(cè)《春天在哪里》說課稿 山東版
- GB/T 13404-2008管法蘭用非金屬聚四氟乙烯包覆墊片
- 危險(xiǎn)化學(xué)品MSDS(五氯化磷)
- 雞蛋浮起來實(shí)驗(yàn)作文課件
- 醫(yī)療器械設(shè)計(jì)開發(fā)流程培訓(xùn)課件
- 警情處置與執(zhí)法安全匯編課件
- 動(dòng)物生物技術(shù)(課件)
- 注塑成型工藝流程圖
- 廣東省緊密型縣域醫(yī)療衛(wèi)生共同體雙向轉(zhuǎn)診運(yùn)行指南
- C型鋼檢驗(yàn)報(bào)告
- 檢驗(yàn)科臨檢組風(fēng)險(xiǎn)評(píng)估報(bào)告文書
- 幼小銜接拼音試卷-帶彩圖-幼小銜接拼音試卷圖片-幼小拼音試卷習(xí)題
評(píng)論
0/150
提交評(píng)論