2007年8月21日

          組策略對象(GPO)是基于活動目錄(AD)的對象,用戶可以通過它集中地對Win2K臺式機和服務(wù)器系統(tǒng)進行配置,它的功能包括從NT 4.0臺式機的鎖定到安全性配置和軟件安裝等。

          這篇文章主要講述組策略是如何對系統(tǒng)起作用的、系統(tǒng)內(nèi)部的工作原理以及在Win2K環(huán)境中采用這一技術(shù)時應(yīng)該注意的問題。

          一、組策略是什么?
          GPO是一種與域、地址或組織單元相聯(lián)系的物理策略。在NT 4.0系統(tǒng)中,一個單一的系統(tǒng)策略文件(例如ntconfig.pol)包括所有的可以執(zhí)行的策略功能,但它依賴于用戶計算機中的系統(tǒng)注冊表的設(shè)置。在Win2K中,GPO包括文件和AD對象。通過組策略,可以指定基于注冊表的設(shè)置、使用NT 4.0格式.adm模板文件的運行Win2K的本地計算機、域的安全設(shè)置和使用Windows安裝程序的網(wǎng)絡(luò)軟件安裝,這樣在安裝軟件時就可以對文件夾進行重定向。

          微軟管理控制臺(MMC)中的組策略編輯器(GPE)插件與NT 4.0中的系統(tǒng)策略編輯器poledit.exe相當(dāng)。在GPE中的每個功能節(jié)點(例如軟件設(shè)置、Windows 設(shè)置、管理模塊等)都是MMC插件擴展,在MMC插件中擴展是可選的管理工具,如果你是應(yīng)用程序開發(fā)者,可以通過定制的擴展拓展GPO的功能,從而針對你的應(yīng)用程序提供附加的策略控制。

          只有運行Win2K的系統(tǒng)可以執(zhí)行組策略,運行NT 4.0和Windows 9x的客戶機則無法識別到或運行具有AD架構(gòu)的GPO。

          二、組策略和AD
          要充分發(fā)揮GPO的功能,需要有AD域架構(gòu)的支持,利用AD可以定義一個集中的策略,所有的Win2K服務(wù)器和工作站都可以采用它。然而,每臺運行Win2K的計算機都有一個本地GPO(駐留在本地計算機文件系統(tǒng)上的GPO),通過本地GPO,可以為每臺工作站指定一個策略,它在AD域中不起作用。例如,出于安全原因,你不會在AD域中配置公用的計算機。利用本地GPO,可以通過修改本地策略來得到安全性和對臺式機的限制使用而無需利用基于AD域的GPO。訪問本地GPO的方法有2種,第1種方法,在需要修改GPO的計算機的“開始”菜單上選擇“運行”,然后鍵入:gpedit.msc。

          這個操作的作用與NT 4.0中的poledit.exe相同,可以打開本地策略文件。第2種方法,可以通過在MMC控制臺中選擇GPE插件,并選擇本地或遠程計算機來人工地編輯本地GPO。

          本地GPO支持除軟件安裝和文件夾重定向之外的所有缺省擴展,因此,只利用本地GPO你不能完成這些工作,如果想充分發(fā)揮GPO的功能,還是需要AD的支持。

          三、GPO的多樣性和繼承
          在AD中,可以在域、組織單位(OU)或地址三個不同的層次上定義GPO。OU是AD中的一個容器,可以指派它對用戶、組、計算機等對象進行管理,地址是網(wǎng)絡(luò)上子網(wǎng)的集合,地址形成了AD的復(fù)制分界線。GPO的名字空間被劃分為計算機配置和用戶配置兩個大類,只有用戶和計算機可以使用GPO,象打印機對象甚至用戶組都不能應(yīng)用GPO。

          在一個域或組織單位(OU)中編輯策略的途徑有幾種。在活動目錄用戶或計算機MMC插件中,右擊一個域或組織單位(OU),在菜單中選擇“屬性”,然后選擇“組策略”標簽。在編輯地址中的策略時,需要右擊“活動目錄地址和服務(wù)”插件,然后右擊需要的地址得到其GPO。此外,還可以從“開始”菜單,選擇“運行”,然后鍵入: mmc.exe 啟動MMC,選擇“控制臺”,“增加/刪除”插件,然后選擇“組策略”插件、“瀏覽”,在AD域內(nèi)的GPO就會顯示出來,可以選擇一個GPO進行編輯。

          根據(jù)GPO在AD名字空間中的不同位置,可以有幾個GPO對用戶對象或計算機對象起作用。只有域中的其他對象是通過繼承生成時GPO才是通過繼承生成的。Win2K通過下面的方式執(zhí)行GPO,首先,操作系統(tǒng)執(zhí)行現(xiàn)有的本地系統(tǒng)上的策略,然后,Win2K執(zhí)行定義的地址級的GPO、域一級的GPO和基于OU的GPO,微軟把這一優(yōu)先順序取其首個字母縮寫為LSDOU(執(zhí)行的順序依次是本地、地址、域、OU層次的GPO),用戶可以在這個鏈上的許多層次上定義GPO。我們以pilot域為例說明如何察看一個系統(tǒng)中的GPO,啟動“活動目錄用戶和計算機MMC”工具,右擊pilot域名,從菜單中選擇“屬性”項,然后選擇組策略標簽。在這個列表頂端的GPO(例如域范圍的安全策略)有最高的優(yōu)先權(quán),因此,Win2K最后才會執(zhí)行它。除了本地系統(tǒng)外,可以在每個層次上定義幾個GPO,因此如果不能嚴格地管理GPO,就會出現(xiàn)不必要的問題。

          GPO的繼承模型與Novell公司的Zenworks策略方式截然不同。在Zenworks中,如果在Novell目錄服務(wù)(NDS)樹上的不同點使用多個策略包,只有距離用戶對象最近的策略包才起作用。在Win2K中,如果在AD的不同層次上定義四個GPO,操作系統(tǒng)使用“LSDOU”優(yōu)先順序來執(zhí)行這些策略,對計算機或用戶的作用是這四個策略執(zhí)行的“和”。此外,有時在一個GPO中的設(shè)置會被其他GPO中的設(shè)置抵銷。通過AD級GPO,用戶可以擁有更多的策略控制委托,例如,公司的安全部門負責(zé)在域一級上設(shè)計用于所有系統(tǒng)設(shè)備的安全GPO。通過使用GPO,可以讓某個OU的系統(tǒng)管理員擁有在OU上安裝軟件的權(quán)利。在Zenworks模型中,必須在希望使用策略的所有層次上復(fù)制這些策略,而且策略對用戶或計算機對象的作用并非是所有策略的“和”。

          為了進一步地控制GPO,微軟提供了三種設(shè)置來限制GPO繼承的復(fù)雜性。在地址、域、OU三個層次上用戶都可以通過選擇一個檢查框阻止從更高一個層次上進行繼承,同樣,在每一個層次上,用戶可以選擇缺省的域策略選項,方法是打開“活動目錄用戶和計算機”插件,右擊GPO所在的域或OU,從菜單中選擇“屬性”,然后選擇“組策略”標簽。讓你希望修改的項目變亮,然后選擇“選項”按鈕,可供選擇的選項有“不覆蓋”或“禁止”。如果選擇了“不覆蓋”選項,即使選擇了不能繼承的檢查框,該GPO還是會起作用。如果想在任何一個地方執(zhí)行一個GPO時,這一功能就很有用處。如果一個OU的管理員試圖阻止對安全策略的繼承,包含安全策略的GPO仍然會被系統(tǒng)執(zhí)行。“禁止”檢查框可以完全禁止一個GPO執(zhí)行,這一功能在你對一個GPO進行編輯而不想讓其他的用戶執(zhí)行它時特別有效。

          四、GPO的執(zhí)行和過濾
          只有用戶和計算機對象才能執(zhí)行組策略。在計算機的啟動和關(guān)閉時,Win2K執(zhí)行在GPO的計算機配置部分定義的策略,在用戶登錄和注銷時,Win2K執(zhí)行在GPO中用戶配置部分定義的策略。事實上,在用戶登錄時可以通過手動方式執(zhí)行一些的策略,例如可以在命令行方式下運行secedit.exe程序執(zhí)行安全策略應(yīng)用程序。此外,通過管理員模塊策略可以定期地對用戶和計算機的GPO設(shè)置進行刷新,缺省情況下,這種刷新每90分鐘進行一次,這種刷新可以使其他用戶不容易修改通過組策略定義的策略。但是,軟件安裝策略是不會刷新的,因為沒有人希望周期性地改變策略引起軟件的“?載”,尤其是有其他用戶在使用時,就更是這樣了。計算機、用戶對象只有在計算機啟動或用戶登錄時才會軟件安裝策略。

          盡管只有AD中的計算機和用戶對象才能執(zhí)行GPO,但我們可以過濾GPO的效果。使用Win2K中的安全組、應(yīng)用組策略━━這是Win2K中的一項新的安全特性,可以使特定的用戶組不能執(zhí)行某一個GPO。右擊MMC中GPO的名字,選擇“屬性”,然后再選擇“安全”,就可以看到GPO目前的安全設(shè)置。認證用戶組具有應(yīng)用組策略權(quán)利,從而附屬這一GPO的所有用戶可以執(zhí)行它。在Win2K中,安全組可以包括用戶和計算機對象。因此,利用安全組可以仔細地調(diào)整用戶、計算機對象如何執(zhí)行一個GPO。你還可以對個別的應(yīng)用程序應(yīng)用安全組,可以指派一個GPO的軟件安裝部分。例如,假設(shè)你在一個GPO中發(fā)布10個應(yīng)用程序,可以指定只讓金融用戶用戶組訪問其中的5個,其他用戶登錄到這個域時,它們也不會發(fā)現(xiàn)這5個應(yīng)用程序。

          五、GPO的內(nèi)部構(gòu)成
          一個GPO是由兩部分組成的:組策略容器(GPC)和組策略模板(GPT)。GPC是GPO在AD中的一個實例,在一個特殊的被稱作系統(tǒng)的容器內(nèi)有一個128位的全球唯一的ID碼(GUID)。在“活動用戶目錄用戶和計算機”插件中選擇“瀏覽”,從MMC菜單中選擇“高級屬性”,就可以看到“系統(tǒng)”容器。GPT是組策略在Win2K文件系統(tǒng)中的表現(xiàn),與一個GPO有關(guān)的所有文件依賴于GPT。

          六、GPO帶來的難題
          雖然GPO的功能很強大,但要掌握它可不容易。最難掌握的是如何判斷一條有效的策略如何對域中的計算機或用戶起作用,由于GPO可以存在于AD鏈中不同的層次上,這種判斷就特別困難。同時,由于可以指派一個GPO的控制,因此不大容易清楚其他的GPO是否會對你沒有控制權(quán)的容器中的GPO有影響。因此,計算一個計算機或用戶對象接收的“策略的結(jié)果集”(RSoP)是相當(dāng)困難的。盡管微軟還沒有提供計算RSoP的工具,但已經(jīng)有第三方廠商提供了相應(yīng)的計算RSoP的工具。

          另一個難題是策略的執(zhí)行。如果在AD鏈上的許多層次上都存在有GPO,在用戶每次登錄或系統(tǒng)啟動時都會執(zhí)行所有的GPO。在Win2K系統(tǒng)中,微軟推出了一些新的功能來優(yōu)化系統(tǒng)的性能。首先,GPO的版本信息依賴于工作站和GPO,如果GPO沒有變化,系統(tǒng)就不會執(zhí)行它。另外,在GPE的屬性頁上,可以禁止用戶或計算機對GPO的執(zhí)行。如果建立一個GPO用來分發(fā)關(guān)閉系統(tǒng)或啟動系統(tǒng)時的腳本,禁用GPO的用戶配置部分,這樣會使工作站不能解析GPO并判斷它是否已經(jīng)發(fā)生了什么變化。

          最后的一個難題起源于GPC和GPT是兩個單獨的實體。GPC是AD中的一個對象,它與GPT中包含的文件的復(fù)制不同步,這意味著創(chuàng)建一個GPO時,在GPT開始向域控制器上的Sysvol復(fù)制文件之前GPC可能已經(jīng)開始進行復(fù)制了。

          所有問題的起源都是由于AD使用了一種多主體的復(fù)制模式。理論上,當(dāng)另一個系統(tǒng)管理員在一個域控制器上編輯一個GPO時,你也可以在某個域上對它進行編輯。因此,當(dāng)建立一個GPE時,缺省狀態(tài)下指的是在“操作主體”中充當(dāng)PDC的域控制器。(“操作主體”是AD基礎(chǔ)結(jié)構(gòu)中的一系列托管功能,用作PDC的服務(wù)器可以兼容運行NT和Win9x的工作站。)一般情況下,可以通過只向少數(shù)的系統(tǒng)管理員授予編輯GPO的權(quán)利來避免這種情況的發(fā)生,并保證如果有人在編輯GPO時,讓其他的人都知道。此外,需要注意的是,在對一個GPO進行編輯時,要“禁止”它,修改結(jié)束后重新使能。

          posted @ 2007-08-24 13:39 siwei 閱讀(322) | 評論 (0)編輯 收藏

          概要
          Resource Kit實際上是Microsoft為管理員提供的一套額外的工具集,包括了超過400個各種工具,vbs,dll,msc,涵蓋了管理TCP/IP,網(wǎng)絡(luò),注冊表,安全,遠程管理,配置,Batch文件,以及操作系統(tǒng)的其他方面。可以讓你更容易的管理一個NT系統(tǒng)。不得不承認這是一個非常龐大的工具集,包括到了已經(jīng)被人們所遺忘2K所應(yīng)該具有的功能。當(dāng)你了解到了里面一些工具的性能以后,你將會知道即使僅僅只是一個C2級的操作系統(tǒng)也具有相當(dāng)?shù)陌踩裕瑢τ诩毿呐渲玫南到y(tǒng),攻擊也只能傷其表面。但是,但是任何東西都有他的兩面性,ResKit就非常具有代表性,在Hacker群體中大家習(xí)慣把這個玩意叫做“Hacker的工具箱”。當(dāng)然如果你想當(dāng)一個Hacker你得掌握里面的東西,而想當(dāng)一個好的administrator你也得掌握里面的東西。希望大家都可以好好看看。

          第一部分:管理你的計算機

          1. Appsec.exe (Application Security)

          Appsec.exe是一個基于GUI的應(yīng)用程序,它允許管理員在一個多用戶環(huán)境下限制普通用戶訪問一組網(wǎng)絡(luò)上經(jīng)預(yù)訂的應(yīng)用程序。啟用這種應(yīng)用程序安全性,將會導(dǎo)致系統(tǒng)拒絕普通用戶執(zhí)行或使用一個未經(jīng)許可的應(yīng)用程序。大家 看這是不是一個很有用的工具呢?對某些特定的程序進行限制以后,可以減少一些Hacker入侵的可能,下面我們 繼續(xù)討論。

          對于2000來說一個顯著的特點就是引入了GPO(Group Policy)這種東西,實際上就是一個界面化了的注冊表編輯器,但是因為GPO的存在2000大大提高了他的安全性。一般來說,我們可以通過配置GPO從啟動菜單和桌面 上隱藏一個應(yīng)用程序,但是不能禁止用戶用其它手段訪問它,Appsec增加了這種安全性,可以禁止用戶執(zhí)行應(yīng)用 程序甚至是從命令行模式或者使用其他的應(yīng)用程序。Microsoft的建議是和GPO一起使用,放在Terminal Server上運行或者說是在應(yīng)用程序運行的機器上使用。Appsec對于應(yīng)用程序的限制還算嚴格,除了應(yīng)用程序的名稱以外還要包括該應(yīng)用程序的全路徑,只有二者都附和才能夠運行。

          下面提幾點注意:
          a. 只有管理員或管理員組的成員可以運行所有程序,用戶(包括PowerUser組)只能運行列表中的應(yīng)用程序。
          b. Appsec第一次啟用時,Terminal Server的會話必須中斷,否則Appsec將不能在本次會話中啟用。
          c. 實際上Appsec只能限制調(diào)用CreateProcess方法的應(yīng)用程序,不能限制使用NTCreateProcess方法的程序,但是這種程序非常的少見。
          d. Appsec只能限制32位的程序,但是在默認情況下,一旦啟用appsec任何對16位程序的訪問都是禁止的,但 是可以添加ntvdm.exe來使16位程序可以被訪問。
          e. 我想這個也是Appsec最大的缺點,Appsec并不對程序本身進行檢查,也就是所如果將該有效程序進行替換 的話,Appsec不會發(fā)現(xiàn)。所以說我們必須禁止用戶替換和重命名應(yīng)用程序,這可以用Security Template來做。
          f. 還有Appsec只可限制可執(zhí)行文件,不可以是DLLs。
          g. Appsec的使用是對于計算機的,也就是說一經(jīng)啟用使用本機的用戶都要受到限制。

          另外,應(yīng)該要提到的一點是,按照Microsoft的要求,Appsec的列表中至少應(yīng)該有:
          \Wtsrv\explorer.exe
          \Wtsrv\system32\cmd.exe
          \Wtsrv\system32\net.exe
          \Wtsrv\system32\regini.exe
          \Wtsrv\system32\subst.exe
          \Wtsrv\system32\systray.exe
          \Wtsrv\system32\xcopy.exe
          這么幾項。

          當(dāng)然啦!你去掉也是可以的,但是會造成用戶難以正常使用。嗯,以我個人的建議,如果你想防止Hacker入侵去掉net.exe會有意想不到的收獲,呵呵!cmd.exe也是不錯的選擇,如果不想管理員以外的任何人訪問就統(tǒng)統(tǒng)去掉就好,后果你們試試就知道了。

          p.s. 這個程序所需要的文件Appsec.exe(這個倒是在),Appsec.hlp(這個也在),但是Appsec.dll,
          psec.cnt,Instappsec.exe并沒有包括在Resource Kit里面,要去網(wǎng)站上自己下載!!這簡直是搞笑嘛!也
          只有Microsoft干得出來。你可以在這個地方下載這個hotfix:
          http://download.microsoft.com/download/win2000platform/Appsec/1.0/NT5/EN-US/appsec_hot
          fix.exe,

          安裝以后就可以用了。 啟用以后,換個用戶(不是管理員組)登陸本機隨便點個應(yīng)用程序,你就可以看到Access to specified device, path or file is denied的警告,很厲害的,哈哈!

          2. Cachemov.exe (Offline Files Cache Mover)

          Cachemov.exe一個有趣的東東,用來移動離線文件的緩存(默認保存在根卷下),如果你覺得那東西在那個地方礙的你事的話,把它挪個地方也沒有什么問題。這個工具比較簡單就不再多說什么了,就一個GUI,然后選擇 一個卷,它就自動幫你做完了,很簡單。你也可以使用無人值守模式 cachemov -unattend x:\ 電腦自己搞 定,此時需要(Cchmvmsg.dll)。所有的結(jié)果會保存至應(yīng)用程序日志。 只是注意一下,運行時需要管理員的身份,還有就是不能夠移動到網(wǎng)絡(luò)驅(qū)動器和可移動驅(qū)動器上去。移動以后不要改letter,不然你會有麻煩的!

          3. Defptr.exe (Default Printer)

          如果你閑著沒有事的話,可以用用這個東西。它允許你隨意改變你的默認打印機,可以在可用的網(wǎng)絡(luò)和本地打印機間交換,一旦運行以后會在右下角有個小圖標(如果不想看到圖標可以使用defptr -i), 這個東西可能對漫游用戶會有一點好處吧!

          4. Delprof.exe(User Profile Deletion Utility)

          刪除用戶的Profile時用的工具,本來這個是可以在System Properties里面做的。而這個工具可以在本地或
          是遠程運行,看起來的好處就是可以指定多長時間不使用就刪除,在處理比較多的用戶的時候才顯得出好處來,就那么個把的話,就自己做好了。稍微介紹一下語法好了。

          delprof /q /i /p /c:\\computername /days /?

          /q 后臺悄悄執(zhí)行,不用確認。
          /i 忽略錯誤繼續(xù)刪除。
          /p 在刪除前提示確認。
          /c:\\computername 這個不用解釋了吧?
          /days 指定多少天不使用的Profile就刪除,days用整數(shù)。
          /? 出現(xiàn)上面這些東東。

          5. DelSrv.exe (Delete Service)

          一個拿來刪除服務(wù)用的工具,使用起來非常簡單,只要delsrv servicename就可以了。沒有什么好說的。

          6. Dureg.exe (Registry Size Estimator)

          這是一個用來評估你的注冊表儲存了多少數(shù)據(jù)的工具,

          可以從任何一個hive,subtree和subkey中讀出。另外

          ,這個工具還可以用來搜索注冊表中的text字符串,這種搜索還可以具體到某個subtree中。
          這個工具主要用于得出注冊表具體占用空間,對于開發(fā)人員和管理員來說都是一個非常有用的工具。雖然我們可以使用控制面板中的System選項和系統(tǒng)監(jiān)視器中的Registry Quota in Use來監(jiān)視注冊表,但是如果你只想知道某個單獨的Key或者是Subkey所占用的空間,上面這些工具就無能為力了。

          語法:

          dureg /cr /cu /u /lm /a /s│/d "registry_path" "string to search"

          /a
          表示查找整個注冊表的大小。

          dureg /a
          Size of HKEY_CLASSES_ROOT : 7740324
          Size of HKEY_USERS : 995732
          Size of HKEY_LOCAL_MACHINE : 17265663

          Total Registry data size: 26001719

          /cr "registry_path"
          默認情況下,返回的是HKEY_CLASSES_ROOT的大小。

          /cu "registry_path"
          默認情況下,返回的是HKEY_CURRENT_USER的大小。

          /lm "registry_path"
          默認情況下,返回的是HKEY_LOCAL_MACHINE的大小。

          /u "registry_path"
          默認情況下,返回的是HKEY_USERS的大小。

          以上四個選項都可以在 "registry_path"中填入該Subkey下的任意key。比如:
          dureg /lm "software\microsoft",查找HKEY_LOCAL_MACHINE\Software\Microsoft key的大小。

          /s "string"
          在注冊表中搜索該字符串。比如:
          dureg /s "run" 尋找和run相關(guān)的字符串。當(dāng)然你也可以和/cr等這幾個參數(shù)一起使用,比如:dureg /cr

          /s "run"。
          會看到一大串顯示,這里就不寫出來了。

          7. Elogdmp.exe (Event Log Query Tool)

          一個命令行工具用來導(dǎo)出選定的日志中的信息。這是在屏幕上進行顯示,最好和Find或者是Findstr這樣的工具

          一起使用,不然太難找到了。

          語法:

          elogdmp -? computername eventlogtype

          eventlogtype有Application, Security,System三種。

          比如: elogdmp hello application

          這個工具可以遠程使用,但是需要域管理員組或者是本地管理員組的成員才可以使用。

          8. Instsrv.exe (Service Installer)

          嗯,Instsrv.exe一個命令行工具可以用來安裝或者是刪除可執(zhí)行服務(wù)(.exe),當(dāng)然也可以給它們分配名字的
          語法:

          instsrv Servicename pathtoexecuteable -a accountname -p accountpassword or Servicename remove

          ServiceName
          用來顯示的名字,比如Alerter。

          PathToExecuteable
          要安裝服務(wù)文件的全路徑,包括盤符在內(nèi)。

          -a accountname
          指定服務(wù)運行的帳戶。

          -p accountpassword
          帳戶的密碼。

          servicename remove
          指定你想移出的服務(wù)。

          比如:你想安裝一個bbb.exe作為一個bbb的服務(wù)。
          instsrv bbb "c:\program files\bbb.exe"
          默認情況下,我們安裝的服務(wù)是沒有啟動的,需要啟動。而有些時候需要插入相應(yīng)的注冊表項。

          如果想指定這個服務(wù)在某個用戶下運行:
          instsrv bbb "c:\program files\bbb.exe -a hello\bbb -p xxx"
          that's OK!

          如果要卸在的話: instsrv bbb Remove,注意刪除之前要先Stop。

          這里我們再提到一個工具Srvinstw.exe,這是一個GUI模式的工具,所以用起來非常的簡單,照著提示一步步做就可以了。它和Instsrv.exe的區(qū)別是這個東東可以在遠程計算機上安裝服務(wù)。它們都需要administrator 的特權(quán),請記住。

          9. intfiltr.exe (Interrupt Filter)

          這是一個在多CPU環(huán)境下用來調(diào)整CPU之間中斷關(guān)系的工具,可以用來測試最優(yōu)化的方案。我沒有2個這種東西,這個程序就沒有進行測試了!那個有的話,幫我試試,告訴我結(jié)果。我把它補全。

          10. Inuse.exe (File-In-Use Replace Utility)

          一個命令行工具可以用來替換被鎖定的操作系統(tǒng)文件,比如一些重要的DLL文件。這些文件會在下一次啟動的時候被替換,根據(jù)微軟的說法,這種替換會在下一次啟動的Autochk完成之后,創(chuàng)建Paging Files之前。基本上來說,這個一個調(diào)試用的工具。該程序需要管理員身份運行。

          語法:

          insuse -? source destinaion /y

          source
          你想用來替換的文件。可以使用完整的物理路徑或者是UNC路徑。

          destination
          你要替換的文件。

          /y
          表示確定。

          如果你想用一個遠程文件來替換一個本地存在的文件可以使用下面的方法。
          inuse \\hello\winnt\abc.dll c:\winnt\abc.dll /y

          11. Javareg.exe (Java/COM Registration Utility)

          命令行工具可以用來注冊Java classes,鄙人不懂Java這種高深的東西,連什么是classes都不知道,沒有辦
          法了,這一塊就只好%¥&………了,不好意思。有懂的人幫一下忙好了,呵呵!!

          12. Netsvc.exe (Command-line Service Controller)

          一個命令行工具,用來控制服務(wù),和SC比較類似,但是在功能上要比后者少很多!用這個工具基本上可以進行遠程啟動,停止,暫停,繼續(xù)服務(wù)或者查詢一個服務(wù)的狀態(tài)。基本上只要你是一個普通用戶就可以執(zhí)行這個命令, 當(dāng)然如果要啟動和停止的話,就需要相應(yīng)的權(quán)限了。 當(dāng)然和SC相比Netsvc有很大的局限性,所以在這里我多說一點和服務(wù)有關(guān)的東西。在Win2k雖然你可以對各種服務(wù)進行查詢,但是并不是所有的服務(wù)都可以直接關(guān)閉,比如Workstation這個服務(wù),但奇怪的是Workstation這個服務(wù)有些時候會莫名其妙的丟失,

          至今我還不知道原因,一旦丟失以后基本上就 需要重裝了。我們繼續(xù)話題,當(dāng)一個用戶有許多活動的連接存在的時候,你只可以查詢或者是暫停該服務(wù),而不能遠程強迫服務(wù)停止。而如果有服務(wù)依靠別的服務(wù)才能運行的時候,我們也不能直接停止該服務(wù)。舉一個簡單的例子,Clipbook服務(wù)需要Network DDE服務(wù)才能運行,我們必須先停止CilpBook才能停止Network DDE。

          這里還要提到另外一種狀況,就是當(dāng)你停止一個不可以停止的服務(wù)的時候Netsvc會報告Service is running ,而該服務(wù)不能停止的原因有很多種,但是Netsvc并不會報告給你,太慘了!!此外,當(dāng)一個服務(wù)不能被暫停的時候,這個鬼東西仍然會報告給你說Service is running,唉!所以說最好使用SC。

          語法:

          netsvc command servicename \\computername /?│/help

          command可以是以下幾個命令:
          /list
          列出已經(jīng)安裝的服務(wù),這個時候不使用servicename。

          /query
          查詢一個服務(wù)的狀態(tài)。

          /start, /stop, /stop, /continue
          這幾個命令就不用解釋了吧?字面意義都已經(jīng)很清楚了。

          最后舉兩個例子吧!如:
          netsvc /list \\hello

          netsvc /query \\hello "Alerter"

          netsvc Alerter \\hello /pause

          更進一步具體的內(nèi)容可以在SC那里看到,

          這里不再多說。

          13. Now.exe

          Reskit里面比較無聊的命令之一,可以在STDOUT(Standard output)上輸出一個帶時間戳的東東。有點像
          ECHO命令。舉例說明算了:

          當(dāng)我們打入ECHO bbb的時候,屏幕會顯示bbb
          C:\>echo bbb
          bbb

          但是當(dāng)我們用Now bbb的時候,會輸出:
          C:\>now bbb

          Sat Feb 16 22:31:34 2002 -- bbb
          這種東西,不知道有什么用,呵呵!

          14. Pathman.exe

          一個命令行工具可以修改系統(tǒng)路徑和用戶路徑,當(dāng)然這個工具還可以用來檢查路徑中的錯誤,有多余的頭部分號,尾部分號,多個連接得分號,重復(fù)的添加和刪除,增加重復(fù)的路徑或是移出一個不存在的路徑等等,但是不檢查路徑的有效性。 2K保留了兩套路徑,一個是統(tǒng)一的全局系統(tǒng)路徑,另一組是每個用戶個別的用戶路徑,當(dāng)然為了保證兼容性,2000仍然保留了從Autoexec.bat裝入路徑。每個用戶可以修改自己的用戶路徑,

          JA管HIGD$*O@專_8y3網(wǎng)%中

          而只有管理員可以修改系統(tǒng)路徑,為了方便操作,微軟就搞出了這個Pathman。

          語法:

          pathman /as /au /rs /ru path

          /as
          增加分號隔開的系統(tǒng)路徑。

          /au
          增加分號隔開的用戶路徑。

          /rs
          刪除分號隔開的系統(tǒng)路徑。

          /ru
          刪除分號隔開的用戶路徑。

          當(dāng)修改完成以后,Pathman會廣播信息給所有的頂端窗口提醒它們環(huán)境被改變了,這將會導(dǎo)致應(yīng)用程序升級它們的環(huán)境,獲得經(jīng)修改的路徑。

          舉例說明:

          添加c:\temp;C:\users\name;d:\utils為用戶路徑, 當(dāng)然, 只是在它們不存在的時侯才添加。這個結(jié)果你可
          以在System properties的Environment Variable中看到。上面一欄是user的變量,下面是系統(tǒng)變量。
          實際上這個工具也有個好處就是添加和刪除可以同時操作,你可以:
          pathman /au C:\users\name /ru c:\users\name 呵呵!不過沒有什么意思!

          15. Ptree.exe(Process Tree)

          該程序可以允許你在本地或者是遠程查詢進程樹,同樣也可以Kill它們。2000默認情況下,允許Local
          Administrators, Power Users, Users查詢這些樹,但是只有Local Administrators和Power Users可

          以Kill進程。

          就這個工具而言,它有這么幾部分組成ptreedrv.sys(kernel-mode驅(qū)動程序),ptreesvc.exe和
          ptreesvcps.dll(2000的服務(wù)的程序,就是所ptree是需要在該計算機上安裝一個服務(wù)),
          Ptreesvr.dll(COM+服務(wù)端),ptree.exe(控制臺客戶端),Ptreeg.exe(GUI客戶端,推薦使用這個,在
          DOS底下看到的東西太少,也不好看,還是GUI爽!而且還可以同時管理多臺計算,不錯吧!我是挺喜歡的,比Ctrl+Alt+Del出來的那個東西要好得多!)

          這個程序并沒有和Reskit一起安裝,而實在Reskit的目錄下生成一個名為Ptree的目錄,底下有個ptree.msi
          ,要點擊安裝。同時由于這是一個基于COM+的程序,而安裝ptreeCOM的時侯,需要MSDTC服務(wù),注意不要把它關(guān)了,不然會導(dǎo)致ptree不能正常運行,而且只會提示不能找到服務(wù),后來是查了錯誤日志才發(fā)現(xiàn)的,微軟坑人 !。我就因為這個弄了好一陣子,呵呵! 使用嘛,很簡單,GUI就不用說了,都有提示,說一下命令行模式吧!

          ptree -c computer -k│-kt process -?│/?

          -c computer
          當(dāng)要管理的是遠程主機的時侯才需要用的這個參數(shù),如果是本機就不要啦,直接ptree就可以了。

          -k process
          干掉后面指定的進程。
          這里的process可以是進程的名字也可以是PID。
          -kt process
          可以干掉整整一棵樹。

          舉例: ptree -c hello 然后出來一大串東西,自己看吧!

          16. pulist.exe

          命令行工具,和上面那個東西有點類似,和Tlist也有一點像(這東西在Support Tools里面)但是
          pulist.exe多一點點好處,可以顯示出進程和用戶之間的關(guān)系。比如:
          C:\>pulist

          Process PID User
          Idle 0
          System 8
          smss.exe 156 NT AUTHORITY\SYSTEM
          csrss.exe 176 NT AUTHORITY\SYSTEM
          winlogon.exe 172 NT AUTHORITY\SYSTEM
          services.exe 228 NT AUTHORITY\SYSTEM
          lsass.exe 240 NT AUTHORITY\SYSTEM
          svchost.exe 428 NT AUTHORITY\SYSTEM
          spoolsv.exe 452 NT AUTHORITY\SYSTEM
          msdtc.exe 480 NT AUTHORITY\SYSTEM
          tcpsvcs.exe 604 NT AUTHORITY\SYSTEM
          svchost.exe 620 NT AUTHORITY\SYSTEM
          llssrv.exe 644 NT AUTHORITY\SYSTEM
          nspmon.exe 712 USER1-COMPUTER1\NetShowServices
          nscm.exe 724 USER1-COMPUTER1\NetShowServices

          當(dāng)你的計算機有多個處理器時,需要判斷安全上下關(guān)系的時侯這個工具的用處就體現(xiàn)出來了!如果是遠程操作的 時候就多加一個pulist \\server就可以了。而且可以順序顯示多個站點pulist \\server \\server………,
          但是這個時侯會不顯示User。

          當(dāng)你需要專門查找一個已知的進程的時候,可以用這樣的方法來簡化查找:
          pulist │ find "string"

          比如,過去老的pwdump2需要知道LSASS的PID,我們可以這樣做:

          c:\>pulist │ find "LSASS"
          LSASS.EXE 252 NT AUTHORITY\SYSTEM
          然后使用252來運行pwdump2………

          17. Reducer.exe (Reduce Trace Data)

          這個東西是一個命令行的事件追蹤工具,可以用來處理Tracelog(后面會提到這個工具)產(chǎn)生的記錄,形成每個線程,每個進程的工作量記錄。

          實際上呢,Reducer就是一個用來進一步分析工具,比如TraceDump(后面提到)可以允許你對一個追蹤日志進行摘要,而Reducer則允許你進行拆分獲得更多的細節(jié),諸如:

          事務(wù)統(tǒng)計表:響應(yīng)時間,每秒的事務(wù)數(shù),每個事務(wù)的磁盤讀寫,每個事務(wù)的網(wǎng)絡(luò)流量,CPU的使用(包括核心和用戶空間)。
          映象統(tǒng)計表:事務(wù)有關(guān)的每個進程,每個進程相關(guān)的線程,每個進程的CPU使用(包括kernel和user),每個進程的磁盤讀寫,每個進程的網(wǎng)絡(luò)流量。
          磁盤信息:總的磁盤讀寫,每個進程的磁盤讀寫。
          OK,接下來介紹一下語法。

          語法非常簡單:

          reducer -out 20051017183000.htm -h│-help│-?

          -out 20051017183000.htm
          輸出的文件的名字,默認是Workload.txt

          舉例:這里我已經(jīng)事先使用Tracelog生成了一個logfile.etl,然后,
          reducer -out my_workload.txt c:\logfile.etl就行了。

          --------------------------------------------------

          ----------------------------------------------+
          │ WINDOWS 2000 Capacity Planning Trace


          │ Version : 2128


          │ Type : Default


          +-------------------------------------------------------------------------------------

          ----------------------------------------------+



          │ Build : 2195


          │ Processors: 1


          │ Start Time: 17 Feb 2002 23:14:17.430

          │______________________________________________________________________│ │
          │ End Time : 17 Feb 2002 23:14:38.550


          │ Duration : 21 Sec





          │ Trace Name: NT Kernel Logger


          │ File Name : C:\LogFile.Etl


          │ Start Time: 17 Feb 2002 23:14:17.430

          │______________________________________________________________________│ │
          │ End Time : 17 Feb 2002 23:14:38.550


          │ Duration : 21 Sec





          +-------------------------------------------------------------------------------------

          ----------------------------------------------+


          +-------------------------------------------------------------------------------------

          ----------------------------------------------+
          │ Transaction Statistics


          +-------------------------------------------------------------------------------------

          ----------------------------------------------+
          │ Transaction Sort Trans Response Transaction Disk/Trans

          Tcp/Trans │
          │ Key Time(ms) Rate/sec Reads

          Writes Sends Recieves │
          +-------------------------------------------------------------------------------------

          ----------------------------------------------+
          +-------------------------------------------------------------------------------------

          ----------------------------------------------+


          樣式大概會是這樣的。

          18. Regback.exe (Registry Backup)

          一個注冊表備份用工具,允許你在系統(tǒng)運行期間對注冊表進行備份。我想當(dāng)你需要測試一個軟件時,最好先備份一下注冊表。在使用這個程序時,至少需要備份文件和文件夾的權(quán)限。Regback.exe在運行的時侯需要調(diào)用Replacekey函數(shù)。

          語法:

          regback destination_dir 20051017183000.htm hivetype hivename more│/?

          destination_dir
          備份文件的位置

          20051017183000.htm
          要創(chuàng)立的文件

          hivetype
          machine或者是users

          hivename
          HKLM或者HKLU

          這里提幾點注意:

          Regback可以備份整個注冊表hive(你可以理解為一個file,比如HKEY_USERS\Default在硬盤上實際上就是%SYSTEMROOT%\SYSTEM32\CONFIG\DEFAULT\DEFAULT.LOG)還包括了ACLs(Access control lists),所以你也可以用這個東東發(fā)現(xiàn)和以前不同的ACLs。 Regback不能自動備份Config文件夾以外的文件,你要手動進行,這是為了避免名字沖突。如果當(dāng)前注冊表并沒有打開的hive需要自己用Xcopy.exe或者是Scopy.exe拷貝。另外,沒有裝入的Hive也要自己弄。如果出錯的話,Regback會在第一次的時候就停止工作。它也不能覆蓋存在的文件,會報錯。還有如果空間不合適的話,備份就不能進行,所以最好先備份到硬盤上,然后再拷貝到磁盤上保存。

          舉兩個例子吧!

          備份全部活動的Hives

          C:\>regback c:\backup
          saving SECURITY to c:\backup\SECURITY
          saving SOFTWARE to c:\backup\software
          saving SYSTEM to c:\backup\system
          saving .DEFAULT to c:\backup\default
          saving SAM to c:\backup\SAM

          ***Hive = '\REGISTRY\USER'\'S-1-5-21-1177238915-1383384898-1957994488-500'
          Stored in file '\Device\HarddiskVolume1\Documents and Settings\Administrator'\'N
          TUSER.DAT'
          Must be backed up manually
          regback users S-1-5-21-1177238915-1383384898-1957994488-50
          0


          ***Hive = '\REGISTRY\USER'\'S-1-5-21-1177238915-1383384898-1957994488-500_Classe
          s'
          Stored in file '\Device\HarddiskVolume1\Documents and Settings\Administrator\Loc
          al Settings\Application Data\Microsoft\Windows'\'UsrClass.dat'
          Must be backed up manually
          regback users S-1-5-21-1177238915-1383384898-1957994488-50
          0_Classes

          你看, 連SAM都可以備份,對于破解SAM,也是有非常大的用處的。

          下面是備份指定的User的Profile
          C:\>regback c:\backup\administrator.bku users s-1-5-21-1177238915-1383384898-195
          7994488-500
          saving s-1-5-21-1177238915-1383384898-1957994488-500 to c:\backup\administrator.
          bku

          這里用的是SID比較特別,只是用起來太麻煩了,輸那么多數(shù)字,呵呵!

          最后是做一個網(wǎng)絡(luò)備份,也是一個批量腳本。
          注意使用Schedule服務(wù)一起搭配。前面提到過regback不能覆蓋文件,一旦有重名的文件將會導(dǎo)致錯誤的發(fā)生 。

          echo on
          rem ... Name: doback.bat
          rem ... Purpose: Network backup for Registry files
          rem ... Process: Connect to backup share, delete old backup files, copy over new

          backup files
          rem ... Before using this batch file, create a share containing the following

          directories: backup, config. Set permissions on this share so that appropriate users

          can run this script.

          net use \\myshare\backup

          rem --> delete old backups; regback will not copy over an existing file
          echo y│del 

          24. Sc.exe (Service Controller Tool)

          干好一年以前就寫過這個東西介紹了。大家再看一遍吧!

          我們知道在MStools SDK,也就是在Resource Kit有一個很少有人知道的命令行軟件,SC.exe,這個軟件向所有的Windows NT和Windows 2000要求控制他們的API函數(shù)。我們可以在命令行里通過對這些函數(shù)設(shè)定參數(shù)的方式來設(shè)定他們(API)。SC.exe也可以顯示服務(wù)的狀態(tài),同時也可以從狀態(tài)結(jié)構(gòu)區(qū)域里重新找到存儲在里面的數(shù)值。它還可以列出遠程計算機的服務(wù)函數(shù)或者是服務(wù)狀況結(jié)構(gòu)。SC.exe這個開發(fā)工具至少可以比服務(wù)控制面板程序和網(wǎng)絡(luò)命令行界面(net.exe,這個東西可以告訴你一個服務(wù)是
          在運行中,還是停止,還是暫停。)這兩個東西提供更多的細節(jié)和準確的信息。雖然上述兩個東西在正常工作的情況下,對于完整的調(diào)試是非常好用的,但是如果有新的服務(wù),或者新的代碼被開發(fā)出來的時候,這兩個工具提供的信息可能造成誤導(dǎo)。這也就是我們需要用到SC的原因。

          下面舉列說明,如果在開發(fā)階段,你的服務(wù)在掛住在一個start-pending的時候,控制面板和net.exe同樣報告服務(wù)是在運行的。但它掛在一個stop-pending的時候,net.exe報告它運行,而控制面板著報告它停止,如果你試著 啟動它,這是控制面板則會告訴你這個服務(wù)正在運行。難道這不是很困惑嗎?呵呵!
          SC.exe可以讓你詢問服務(wù)的狀況和取出存儲在狀態(tài)結(jié)構(gòu)區(qū)域內(nèi)的數(shù)值,控制面板和net.exe不提供服務(wù)完整的狀況 。但是無論如何,SC程序可以告訴你這個服務(wù)準確的情形,同樣也可以給你看最后的checkpoint數(shù)和等待提示。
          這個checkpoint,我叫它檢查點(我覺得他就像一個程序調(diào)試時置的斷點),所以我們也可以把看作為一個調(diào)試工具,因為它可以提供一個關(guān)于在程序停止時還要沿著初始化繼續(xù)前進多久準確報告。
          SC.exe也可以允許你調(diào)用很多的服務(wù)控制API函數(shù),可以讓你從命令行里改變大量的參數(shù)。這位服務(wù)開發(fā)者們提供了很多的優(yōu)勢。例如,它提供了一個方便的方式來創(chuàng)建或者在注冊表和服務(wù)控制管理數(shù)據(jù)庫中配置服務(wù)信息。開發(fā)者們不需要在手動的在注冊表里單獨的設(shè)置鍵值來配置服務(wù),也不用重起機器來強迫服務(wù)控制管理數(shù)據(jù)庫升級 。
          作為一個命令很工具,SC.exe可以用來測試你自己的系統(tǒng),你可以設(shè)置一個批處理文件來使用不同的參數(shù)調(diào)用SC.exe來控制服務(wù)。這個很有用,如果你想看看你的服務(wù)不斷的啟動和停止,我沒有試過哦!讓一個服務(wù)一下子
          打開,一下子關(guān)閉,聽上去很不錯的。如果你的服務(wù)進程里面有多個進程的話,你可以保持一個進程繼續(xù)運行不讓它走開,然后讓另一個不斷的打開在關(guān)閉,還可以尋找一下內(nèi)存缺乏導(dǎo)致不完全清楚的證據(jù)。
          下面介紹SC,SC QC,and SC QUERY

          SC使用這樣的語法:
          1. SC [Servername] command Servicename [Optionname= Optionvalue]

          2. SC [command]

          這里使用第一種語法使用SC,使用第二種語法顯示幫助。

          下面介紹各種參數(shù)。

          Servername
          可選擇:可以使用雙斜線,如\\myserver,也可以是\\192.168.0.1來操作遠程計算機。如果在本地計算機上

          操作
          就不用添加任何參數(shù)。

          Command
          下面列出SC可以使用的命令。

          config 改變一個服務(wù)的配置。(長久的)

          continue 對一個服務(wù)送出一個繼續(xù)控制的要求。

          control 對一個服務(wù)送出一個控制。

          create 創(chuàng)建一個服務(wù)。(增加到注冊表中)

          delete 刪除一個服務(wù)。(從注冊表中刪除)

          EnumDepend 列舉服務(wù)的從屬關(guān)系。

          GetDisplayName 獲得一個服務(wù)的顯示名稱。

          GetKeyName 獲得一個服務(wù)的服務(wù)鍵名。

          interrogate 對一個服務(wù)送出一個詢問控制要求。

          pause 對一個服務(wù)送出一個暫停控制要求。

          qc 詢問一個服務(wù)的配置。

          query 詢問一個服務(wù)的狀態(tài),

          也可以列舉服務(wù)的狀態(tài)類型。

          start 啟動一個服務(wù)。

          stop 對一個服務(wù)送出一個停止的要求。

          Servicename
          在注冊表中為service key制定的名稱。注意這個名稱是不同于顯示名稱的(這個名稱可以用net start和服務(wù)控制面板看到),而SC是使用服務(wù)鍵名來鑒別服務(wù)的。

          Optionname
          這個optionname和optionvalue參數(shù)允許你指定操作命令參數(shù)的名稱和數(shù)值。注意,這一點很重要在操作名稱和等號之間是沒有空格的。一開始我不知道,結(jié)果………………,比如,start= optionvalue,這個很重要。
          optionvalue可以是0,1,或者是更多的操作參數(shù)名稱和數(shù)值對。
          如果你想要看每個命令的可以用的optionvalue,你可以使用sc command這樣的格式。這會為你提供詳細的幫助。

          Optionvalue
          為optionname的參數(shù)的名稱指定它的數(shù)值。有效數(shù)值范圍常常限制于哪一個參數(shù)的optionname。如果要列表請用sc command來詢問每個命令。

          Comments
          很多的命令需要管理員權(quán)限,所以我想說,在你操作這些東西的時候最好是管理員。呵呵!

          當(dāng)你鍵入SC而不帶任何參數(shù)時,SC.exe會顯示幫助信息和可用的命令。當(dāng)你鍵入SC緊跟著命令名稱時,你可以得到一個有關(guān)這個命令的詳細列表。比如,鍵入sc create可以得到和create有關(guān)的列表。
          但是除了一個命令,sc query,這會導(dǎo)出該系統(tǒng)中當(dāng)前正在運行的所有服務(wù)和驅(qū)動程序的狀態(tài)。

          當(dāng)你使用start命令時,你可以傳遞一些參數(shù)(arguments)給服務(wù)的主函數(shù),但是不是給服務(wù)進程的主函數(shù)。
          SC create
          這個命令可以在注冊表和服務(wù)控制管理數(shù)據(jù)庫建立一個入口。

          語法1
          sc [servername] create Servicename [Optionname= Optionvalue]

          這里的servername,servicename,optionname,optionvalue和上面的一樣,這里就不多說了。這里我們

          詳細說明一下optionname和optionvalue。

          Optionname Optionvalue
          描述type= own, share, interact, kernel, filesys
          關(guān)于建立服務(wù)的類型,選項值包括驅(qū)動程序使用的類型,默認是share。

          start= boot, system, auto, demand, disabled
          關(guān)于啟動服務(wù)的類型,選項值包括驅(qū)動程序使用的類型,默認是demand(手動)。

          error= normal, severe, critical, ignore
          當(dāng)服務(wù)在導(dǎo)入失敗錯誤的嚴重性,默認是normal。

          binPath= (string)
          服務(wù)二進制文件的路徑名,這里沒有默認值,這個字符串是必須設(shè)置的。

          group= (string)
          這個服務(wù)屬于的組,這個組的列表保存在注冊表中的ServiceGroupOrder下。默認是nothing。

          tag= (string)
          如果這個字符串被設(shè)置為yes,sc可以從CreateService call中得到一個tagId。然而,SC并不顯示這個標簽,所以使用這個沒有多少意義。默認是nothing

          depend= (space separated string)有空格的字符串。
          在這個服務(wù)啟動前必須啟動的服務(wù)的名稱或者是組。

          obj= (string)
          賬號運行使用的名稱,也可以說是登陸身份。默認是localsystem

          Displayname= (string)
          一個為在用戶界面程序中鑒別各個服務(wù)使用的字符串。

          password= (string)
          一個密碼,如果一個不同于localsystem的賬號使用時需要使用這個。

          Optionvalue
          Optionname參數(shù)名稱的數(shù)值列表。參考optionname。當(dāng)我們輸入一個字符串時,如果輸入一個空的引用這意味著一個空的字符串將被導(dǎo)入。

          Comments
          The SC CREATE command performs the operations of the CreateService API function.
          這個sc create命令執(zhí)行CreateService API函數(shù)的操作。詳細請見CreateService。

          例1
          下面這個例子在一臺叫做(\\myserver)的計算機上為一個叫“NewService”的服務(wù)建立的一個注冊表登記。
          sc \\myserver create NewService binpath= c:\winnt\system32\NewServ.exe

          按照默認,這個服務(wù)會建立一個WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START啟動方式。這將不會有任何從屬關(guān)系,也將會按照localsystem安全上下關(guān)系來運行。

          例2
          下面這個例子將在本地計算機上,建立一個服務(wù),它將會是一個自動運行服務(wù),并且運行在他自己的進程上。它從屬于TDI組和NetBios服務(wù)上。注意,你必須在從屬中間增加一個空格的引用。

          sc create NewService binpath= c:\winnt\system32\NewServ.exe type= own
          start= auto depend= "+TDI Netbios"

          例3
          服務(wù)開發(fā)者可以通過臨時改變二進制路徑(影像路徑)的方式來將這個服務(wù)運行在內(nèi)核調(diào)試器的上下關(guān)系中。下面這個例子就可以讓我們看到如何改變服務(wù)的配置。

          sc config NewService binpath= "ntsd -d c:\winnt\system32\Newserv.exe"
          這個例子會引起服務(wù)控制管理器調(diào)用ntsd.exe使用下例的參數(shù)字符串:
          "-d c:\nt\system32\NewServ.exe"

          當(dāng)系統(tǒng)裝入newserv.exe時ntsd將會轉(zhuǎn)而打斷調(diào)試器,所以斷點可以被設(shè)置在服務(wù)代碼里。

          SC QC
          這個SC QC“詢問配置”命令可以列出一個服務(wù)的配置信息和QUERY_SERVICE_CONFIG結(jié)構(gòu)。

          語法1
          sc [Servername] qc Servicename [Buffersize]

          Parameters
          servername和servicename前面已經(jīng)介紹過了,這里不再多說。

          Buffersize,可選擇的,列出緩沖區(qū)的尺寸。

          Comments

          SC QC命令顯示了QUERY_SERVICE_CONFIG結(jié)構(gòu)的內(nèi)容。

          以下是QUERY_SERVICE_CONFIG相應(yīng)的區(qū)域。
          TYPE dwServiceType
          START_TYPE dwStartType
          ERROR_CONTROL dwErrorControl
          BINARY_PATH_NAME lpBinaryPathName
          LOAD_ORDER_GROUP lpLoadOrderGroup
          TAG dwTagId
          DISPLAY_NAME lpDisplayName
          DEPENDENCIES lpDependencies
          SERVICE_START_NAME lpServiceStartName

          例1

          下面這個例子詢問了在上面例子中建立的“NewService”服務(wù)的配置:

          sc \\myserver qc NewService

          sc顯示下面的信息:

          SERVICE_NAME: NewService
          TYPE : 20 WIN32_SHARE_PROCESS
          START_TYPE : 3 DEMAND_START
          ERROR_CONTROL : 1 NORMAL
          BINARY_PATH_NAME : c:\winnt\system32\NewServ.exe
          LOAD_ORDER_GROUP :
          TAG : 0
          DISPLAY_NAME : NewService
          DEPENDENCIES :
          SERVICE_START_NAME : LocalSystem

          NewService有能力和其他的服務(wù)共享一個進程。但是它不是自動啟動的。二進制文件名是NewServ.exe。這個服務(wù)不依靠與其它的的服務(wù),而且運行在lcoalsystem的安全上下關(guān)系中。這些都是調(diào)用QueryServiceStatus基本的返回,如果還需要更多的細節(jié)屆時,可以看看API函數(shù)文件。

          SC QUERY

          SC QUERY命令可以獲得服務(wù)的信息。

          語法:
          sc [Servername] query { Servicename │ Optionname= Optionvalue... }

          參數(shù):

          servername, servicename, optionname, optionvalue不在解釋。只談一下這個命令提供的數(shù)值。

          Optionname Optionvalue
          Description

          type= driver, service, all
          列舉服務(wù)的類型,默認是service

          state= active, inactive, all
          列舉服務(wù)的狀態(tài),默認是active

          bufsize= (numeric value)
          列舉緩沖區(qū)的尺寸,默認是1024 bytes

          ri= (numeric value)
          但開始列舉時,恢復(fù)指針的數(shù)字,默認是0

          Optionvalue
          同上。

          Comments

          SC QUERY命令可以顯示SERVICE_STATUS結(jié)構(gòu)的內(nèi)容。

          下面是SERVICE_STATUS結(jié)構(gòu)相應(yīng)的信息:
          TYPE dwServiceType
          STATE dwCurrentState, dwControlsAccepted
          WIN32_EXIT_CODE dwWin32ExitCode
          SERVICE_EXIT_CODE dwServiceSpecificExitCode
          CHECKPOINT dwCheckPoint
          WAIT_HINT dwWaitHint

          在啟動計算機后,使用SC QUERY命令會告訴你是否,或者不是一個啟動服務(wù)的嘗試。如果這個服務(wù)成功啟動,WIN32_EXIT_CODE區(qū)間會將會包含一個0,當(dāng)嘗試不成功時,當(dāng)它意識到這個服務(wù)不能夠啟動時,這個區(qū)間也會提供一個退出碼給服務(wù)。

          例子

          查詢“NewService"服務(wù)狀態(tài),鍵入:

          sc query NewService

          顯示一下信息:

          SERVICE_NAME: NewService
          TYPE : 20 WIN32_SHARE_PROCESS
          STATE : 1 STOPPED
          (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
          WIN32_EXIT_CODE : 1077 (0x435)
          SERVICE_EXIT_CODE : 0 (0x0)
          CHECKPOINT : 0x0
          WAIT_HINT : 0x0

          注意,這里存在一個給這個服務(wù)的退出碼,即使這個服務(wù)部不在運行,鍵入net helpmsg 1077,將會得到對
          1077錯誤信息的說明: 上次啟動之后,仍未嘗試引導(dǎo)服務(wù)。所以,這里我想說一句,希望大家可以活用net helpmsg,這會對你的學(xué)習(xí)有很大的幫助。

          下面在對SC query的命令在說明一下:

          列舉活動服務(wù)和驅(qū)動程序狀態(tài),使用以下命令:
          sc query

          顯示messenger服務(wù),使用以下命令:
          sc query messenger

          只列舉活動的驅(qū)動程序,使用以下命令:
          sc query type= driver

          列舉Win32服務(wù),使用以下命令:
          sc query type= service

          列舉所有的服務(wù)和驅(qū)動程序,使用以下命令:
          sc query state= all

          用50 byte的緩沖區(qū)來進行列舉,使用以下命令:
          sc query bufsize= 50

          在恢復(fù)列舉時使用index=14,使用以下命令:
          sc query ri=14

          列舉所有的交互式服務(wù),使用以下命令:
          sc query type= service type= interact

          好了,說到這里。SC命令基本上已經(jīng)說完了。希望大家好好看看,呵呵!相信會有幫助的!!

          25. Scanreg.exe

          又是個注冊表工具,有沒有人煩了?我都快煩了,呵呵!

          一個注冊表檢查工具,基本上就是一個"registry GREP"。支持搜索本地或遠程的Win一家老小的注冊表中的任意東西。

          scanreg -s string -k -v -d -r key -c -e -n

          -s
          要搜索的字符串

          -r
          開始搜索的root,默認是HKEY_CURRENT_USER

          也可以使用以下的格式:
          HKEY_LOCAL_MACHINE === lm
          HKEY_CURRENT_USER === cu
          HKEY_CLASSES_ROOT === cr
          HKEY_USERS === us

          -k
          查詢鍵。

          -v 注意必須指定-k -v -d中的至少一個。
          查詢值。

          -d
          當(dāng)然是查詢數(shù)據(jù)。

          -c (默認是不敏感)
          大小寫敏感。

          -e (默認是返回所有合適的)
          只返回卻確合適的。

          -n
          輸出的時候不使用顏色(默認是key紅,values綠,data黃)真不知道微軟的怎么想的!!看上去怪怪的,還有就是匹配的字符串都高亮標出。

          最后來兩個例子:

          scanreg -s version -k -v -d

          scanreg -s version -kvd <--居然這種獨可以?

          scanreg /s version /r \lm\software /kvde 沒有關(guān)系,這種都是可以的,呵呵!

          scanreg version \\hello\HKEY_LOCAL_MACHINE -d 操作遠程的東東。

          26. sclist.exe

          可以列出當(dāng)前運行或者是停止的服務(wù)。看看遠程的機器也是功能之一,但是比起SC來說,還是太簡單了!

          sclist -r -s MachineName -?

          -r
          只顯示正在運行的服務(wù)。

          -s
          只顯示已經(jīng)停止的服務(wù)。

          Machinename
          本地可以不指出。

          這個簡單大家自己做做,這里不舉例了!! ,不要講我偷懶哦!


          27. Setx.exe

          這個命令行工具提供了一種批量修改環(huán)境變量的方法,同時不需要使用任何編程方法或者是腳本。此外,除了可以獲得變量和值之外還可以跟注冊表的值掛上關(guān)系。在2000中除了setx.exe之外,其他沒有任何一種命令行工具可以直接設(shè)置系統(tǒng)變量值。只有通過控制面板和注冊表編輯器才能夠設(shè)置。如果有人說可以用set命令的話, 實際上這個CMD的內(nèi)部命令只能夠設(shè)置當(dāng)前控制臺窗口的用戶環(huán)境變量。 setx允許你通過Command Line Mode,Registry Mode,F(xiàn)ile Mode,這三種模式來設(shè)置環(huán)境變量。

          a. Command-Line

          setx variable value -m

          variable
          要設(shè)置的環(huán)境變量的名字。

          value
          要設(shè)置的值。

          -m
          設(shè)置計算機環(huán)境,默認設(shè)置是用戶環(huán)境。

          b. Registry Mode

          setx variable -k hive\key\……\value -m

          variable
          要設(shè)置的環(huán)境變量的名字。

          -k
          指定變量設(shè)置會基于注冊表中的信息。

          hive\key\……\value
          注冊表路徑,如:
          HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

          -m
          同命令行模式。

          c. File Mode

          setx variable -f 20051017183000.htm -a x,y │ -r x,y "string" -d d -x -m

          -f 20051017183000.htm
          指定使用的文件名。

          -a x,y
          指定要搜索的絕對坐標或者是偏移量。

          -r x,y "string"
          指定從"string"的相對坐標或者是偏移。

          -d d
          指定附加的分隔符,后一個d表示,可以是",", "\"等等。系統(tǒng)有四個內(nèi)建的分隔符是:space, tab,

          carriage return, linefeed。附加的可以是任意的ASCII字符。

          -x
          顯示文件坐標,這個時候-a, -r, -d會變忽略。

          -m
          在同上。

          setx將變量寫入到在注冊表的主環(huán)境中去。用setx設(shè)置的變量將會在下一次啟動的時候生效, 這是2000的局限。當(dāng)訪問REG_MULTI_SZ時,只能訪問到第一個項目。
          目前setx只可以支持HKCU和HKLM兩個hives。用Setx增加的值不可以用setx去掉,可以在控制面板里面改,也可以在注冊表里面改,這種時候也可以用set把它置空。

          但是還是來幾個例子吧!

          a.Command Line

          Setx MACHINE COMPAQ
          在用戶環(huán)境中設(shè)置MICHINE為COMPAQ。

          setx MYPATH %PATH%
          設(shè)置MYPATH的值為當(dāng)前PATH變量的值。

          setx MYPATH ~PATH~
          設(shè)置MYPATH總是和PATH環(huán)境的值保持一致。

          b. Registry

          Setx TZONE -k

          HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
          設(shè)置TZONE的值為上面的鍵。比如:"Central Standard Time"

          Setx BUILD -k "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

          NT\CurrentVersion\CurrentBuildNumber"
          設(shè)置BUILD的值為當(dāng)前的Windows NT版本號,如:1314。

          c. File
          在進行這部分之前先運行ipconfig > ipconfig.out,弄一個ipconfig的文本出來。然后就可以進行操作了


          Setx var -f ipconfig.out -x
          這個命令會顯示這個文件的內(nèi)容的坐標。如:

          C:\>SETX VAR -f ipconfig.out -x


          (1,0 Windows) (1,1 2000) (1,2 IP) (1,3 Configuration)

          (3,0 Ethernet) (3,1 adapter) (3,2 Local) (3,3 Area) (3,4 Connection

          (5,0 Connection-specific) (5,1 DNS) (5,2 Suffix) (5,3 .) (5,4
          (6,0 IP) (6,1 Address.) (6,2 .) (6,3 .) (6,4 .) (6,5 .) (6,6 .) (6,7 .) (6,8 .)
          (6,9 .) (6,10 .) (6,11 .) (6,12 .) (6,13 (6,14 192.168.1.1)
          (7,0 Subnet) (7,1 Mask) (7,2 .) (7,3 .) (7,4 .) (7,5 .) (7,6 .) (7,7 .) (7,8 .)
          (7,9 .) (7,10 .) (7,11 .) (7,12 .) (7,13 (7,14 255.255.255.0)
          (8,0 Default) (8,1 Gateway) (8,2 .) (8,3 .) (8,4 .) (8,5 .) (8,6 .) (8,7 .) (8,8
          .) (8,9 .) (8,10 .) (8,11

          setx ipaddr -f ipconfig.out -a 5,11

          這個命令會尋找絕對偏移為(5,11)的內(nèi)容,然后設(shè)置ipaddr為這個值。如:

          C:\>setx ipaddr -f ipconfig.out -a 6,14
          Extracted value is: 192.168.1.1

          Setx ipgateway -f ipconfig.out -r 0,11 "Gateway"
          查找Gateway這個字符串偏移0,11的東東,然后寫到ipgateway里面去。

          C:\>Setx ipgateway -f ipconfig.out -r 0,11 "Gateway"
          Extracted value is: 192.168.1.244

          以上所有的修改都會在重起以后看到,可以用set或者是控制面板中的System properties看。

          28. showpriv.exe (show Privilege)

          一個用來顯示用戶或者是組分配的特權(quán)的命令行工具,如果要看domain的相關(guān)的東西的話,要在DC上使用。使用起來很簡單,showpriv privilege就行了,如:

          C:\>showpriv sesecurityprivilege
          1 account(s) with the sesecurityprivilege user right:
          BUILTIN\Administrators
          All accounts enumerated

          這里主要講一下這個2000的一些privilege。

          Privilege,為本地管理員提供了一種手段,可以控制允許什么人具有什么權(quán)限或者能執(zhí)行什么樣的系統(tǒng)操作,
          如允許交互式登陸等等。這里我們說的特權(quán)是指特殊操作所需的權(quán)限,如備份呀什么的!一旦授予了某種特權(quán),這些特權(quán)就會包括在用戶的安全訪問令牌中。這是一些基本的概念,可以看以下,比較容易明白。
          系統(tǒng)為了管理的方便總是為每個本地組分配了相應(yīng)的特權(quán),而且從來不改變這個特權(quán),這些東東在NT系統(tǒng)上可以分為內(nèi)置能力,標準用戶權(quán)力,高級用戶權(quán)力這么幾種,但是在2000中標準權(quán)利和高級權(quán)力已經(jīng)被用戶特權(quán)所取代,只有在為委派而信任計算機和用戶帳戶(SeEnableDelegationPrivilege)和把計算機從dock中移出(SeUndockPrivilege)這兩種情況下可以把NT的權(quán)利映射到2000中的特權(quán)。注意一下2000的一些問題。并非所有能力都有匹配的權(quán)利,因此,不可能用權(quán)力完全匹配組的內(nèi)置能力。而由于特定組能力的預(yù)定義分配和不能把所有能力復(fù)制為權(quán)力,就難以區(qū)分任務(wù),并且只能強制使用最低特權(quán)的概念。
          那么在域一級下就缺少一個安全結(jié)構(gòu),導(dǎo)致了難以授予管理的功能。2000在AD引入后,就允許區(qū)分任務(wù),也可授予domain和OU相應(yīng)的管理層次。

          下面來談一下具體的一些用戶特權(quán),應(yīng)當(dāng)有26個,也有說28個的。

          SeTcbPrivilege
          成為OS的一部分允許進程可以像用戶一樣被鑒別,因此可以像用戶一樣訪問相應(yīng)的資源。只有底層的鑒別服務(wù)需要這樣的特權(quán),所以無論是工作站,獨立服務(wù)器,還是DC都沒有把這個設(shè)為某人權(quán)利。
          SeMachineAccountPrivilege
          添加工作站到域 為了這個特權(quán)可以啟用,必須保證這個用戶在域控制器本地安全策略中的才行。

          SeBackupPrivilege
          備份文件和目錄。
          允許用戶繞過文件和目錄的權(quán)限來做備份。只有當(dāng)應(yīng)用程序嘗試訪問NTFS備份API時才檢查這個特權(quán)。默認情況下,這個特權(quán)分配給Administrators和Backup Operators。

          SeChangeNotifyPrivilege
          回避遍歷檢查。
          允許用戶來回移動目錄,但是不能列出文件夾的內(nèi)容。默認情況下,這種特權(quán)被賦予Administrators,
          Backup Operators, Power Users, Users ,and Everyone,換句話說就是所有人都有這種權(quán)利。

          SeSystemTimePrivilege
          改變系統(tǒng)時間。
          默認情況下Administrators和Power Users有這種權(quán)利。

          SeCreatePagefilePrivilege
          創(chuàng)建分頁文件。
          允許用戶創(chuàng)建和改變一個分頁文件的大小。默認情況下,只有Administrators有這個特權(quán)。

          SeCreateTokenPrivilege
          創(chuàng)建令牌對象。
          允許進程調(diào)用NtCreateToken()或者是其他的Token-Creating APIs創(chuàng)建一個訪問令牌。

          SeCreatePermanentPrivilege
          創(chuàng)建永久共享對象。
          允許進程在2000項目管理器中創(chuàng)建一個目錄對象。

          SeDebugPrivilege
          調(diào)試程序。
          允許用戶連接一個Debugger來調(diào)試任何進程。默認情況下Administrators有該特權(quán)。

          SeEnableDelegationPrivilege
          為委派而信任計算機和用戶帳戶。
          允許用戶為了委派而改變信任,只有當(dāng)用戶或者是計算機對該對象的帳戶控制標志有寫權(quán)限的時候可以。

          SeRemoteShutdownPrivilege
          遠程關(guān)閉系統(tǒng)。
          Administrators在默認情況下有此特權(quán)。

          SeAuditPrivilege
          產(chǎn)生安全審核。
          允許一個應(yīng)用程序在安全日志中,創(chuàng)建,產(chǎn)生,增加一條記錄。

          SeIncreaseQuotaPrivilege
          增加限額。
          允許一個有寫屬性的進程利用其他進程從而取得更多的處理器限額,這種特權(quán)有利于系統(tǒng)調(diào)試,但是也有導(dǎo)致DOS的可能。

          SeIncreaseBaseProrityPrivilege
          增加調(diào)度優(yōu)先級。允許一個有寫屬性的進程利用其它進程來獲得更多的執(zhí)行優(yōu)先權(quán)。有這種特權(quán)的用戶可以在Task管理器中改變一 個進程的調(diào)度優(yōu)先權(quán)。默認情況Administrators有該特權(quán)。

          SeLoadDriverPrivilege
          安裝和卸載設(shè)備驅(qū)動程序。
          允許用戶安裝和卸載即插即用設(shè)備的驅(qū)動程序,不是即插即用的不受這個特權(quán)影響,但是只能被

          Administrators所安裝。因為驅(qū)動程序是作為被信任的程序來運行的,這需要很高的特權(quán)。而這種特權(quán)可能會被用于安裝惡意程序,和破壞性的訪問。默認情況下Administrators有該特權(quán)。

          SeSecurityPrivilege
          管理審計和安全日志。
          允許用戶指定對象訪問的審計。有這種特權(quán)的用戶也可以清空安全日志。默認情況下Administrators有該特權(quán)。

          SeSystemEnvironmentPrivilege
          修改firmware環(huán)境變量。
          允許用戶使用進程通過一個API來設(shè)置系統(tǒng)環(huán)境變量,另外,也可以讓用戶使用System Properties來做到以上這一步。默認情況下Administrators有該特權(quán)。

          SeProfileSingleProcessPrivilege
          Profile單一進程。
          允許用戶使用性能監(jiān)視器來監(jiān)視nonsystem進程。默認情況下Administrators有此特權(quán)。


          SeSystemProfilePrivilege
          Profile系統(tǒng)性能。
          允許用戶使用性能監(jiān)視器來監(jiān)視system進程。默認情況下Administrators有此特權(quán)。

          SeUndockPrivilege
          將計算機中dock中刪除。
          允許用戶使用Eject PC從塢中將計算機移出,默認情況下Administrators, Power Users, Users均有此特

          權(quán)。

          SeAssignPrimaryTokenPrivilege
          替換一個進程級令牌。
          允許一個父進程替換相關(guān)的子進程的訪問令牌。

          SeRestorePrivilege
          恢復(fù)文件和目錄。
          允許用戶繞過文件及目錄權(quán)限來恢復(fù)備份文件。默認情況下Administrators和Backup Operators有此特權(quán)。

          SeShutdownPrivilege
          關(guān)閉系統(tǒng)。
          允許用戶關(guān)閉本地計算機。默認情況下Administrators, Backup Operators, Power Users, Users都有

          該特權(quán),但是在2000 Server中Users沒有此特權(quán)。

          SeSynchAgentPrivilege
          同步目錄服務(wù)數(shù)據(jù)。
          允許一個進程提供目錄同步服務(wù),這個特權(quán)只有在DC上。默認情況下域的Administrators和LocalSystem帳戶

          有此特權(quán)。

          SeTakeOwnershipPrivilege
          取得文件所有者身份。
          允許用戶取得在系統(tǒng)中任何可得到的對象的所有者身份,包括:AD對象,文件,文件夾,打印機,注冊表鍵,進

          程和線程。默認情況下Administrator有此特權(quán)。

          以上就是2000的用戶特權(quán)了,是不是很多呢?呵呵!

          29. Sleep.exe (Batch File Wait)

          Sleep可以讓計算機等待一段指定的時間。這個東東對于使用Batch文件會非常有用,在某些情況下也可能會讓AT命令的使用更加方便。

          Sleep time

          time
          要暫停的時間,秒為單位。

          sleep 20
          在運行下一個程序之前等待20s。

          假設(shè)我們搞這么一個登陸腳本到計算機上,我想是個不錯的主意。

          @echo off

          echo 2/23/2002
          echo.
          echo 不要忘了明天女朋友生日哦!!呵呵!

          sleep 60

          30. Soon.exe (Near-Future Command Scheduler)

          soon這個命令可以讓一個程序在很短的時間里面啟動,比如幾秒鐘之內(nèi)。基本上soon就是一個AT的裝配命令,可以簡單的裝配一組合適AT命令來遠程或者是本地啟動一個程序。當(dāng)然soon使用起來要比AT簡單的多,自然功能也要少一些了。當(dāng)然soon可以讓一個命令在小于一天的時間內(nèi)重復(fù)啟動,這一點還是很有用的。下面介紹一下

          如何使用。

          soon有兩種命令,一是普通的操作命令,還有就是配置命令。

          1. Scheduling Command
          soon \\computername delay /interactive "command"

          \\computername
          指定你要的計算機,遠程使用時要net use。

          delay
          指定從現(xiàn)在開始到啟動程序的間隔,以秒為單位,默認情況下是本地5s,遠程15s。

          /interactive
          這個和AT命令里面的interactive是一樣的。基本上可以看作是如果你打開一個cmd窗口,它會在桌面上跳出來。默認是off的。只有當(dāng)Schedule服務(wù)以LocalSystem身份啟動時才可以Interactive。

          command
          你想要執(zhí)行的命令,這里用雙引號來維持命令解釋時候的空格。

          2. Configuration Command

          soon /d /l:n /r:n /i: on│off

          /d
          用這個開關(guān)來修改默認配置

          /l:n
          指定LocalDelay的值。

          /r:n
          指定RemoteDelay的值。 注意,這些值都是正整數(shù),而且以秒為單位。

          /in│off
          指定默認情況下是interactive還是uninteractive。

          如果你想每5分鐘啟動一次一個程序可以寫一個這樣的腳本。

          every5.cmd
          soon 300 every5.cmd
          xxxx.exe

          對于遠程啟動時,使用AT命令不能成功的原因多數(shù)是因為AT命令需要指定絕對時間,如果不能搞得太清楚的話,我建議你們使用soon命令,在大部分情況下大家需要AT的功能,soon都可以完成,而且很快。基本上srv.exe 這樣的后門都可以用soon來做。 另外不得不提一點,不知道是我的機器的關(guān)系還是這個程序本身的bug,很多情況下soon產(chǎn)生的schedule居然會是tomorrow,這個有點讓人搞不懂。大家可以多試試。

          31. Srvany.exe (Applications as Services Utility)

          Srvany一個可以讓W(xué)indows應(yīng)用程序像一個服務(wù)那樣運行。也就是說在logoff的時候不關(guān)閉,也不用在logon
          的時候重新啟動。也就是就算是沒有人登陸這個程序也可以運行,當(dāng)然計算機得是開著的,呵呵!此外,如果這個應(yīng)用程序不忽略WM_ENDSESSION或者CTRL_LOGOFF_EVENT時,程序也會因為logoff而退出。srvany是一個為32-bit應(yīng)用程序設(shè)計的,但是用用16-bit也應(yīng)該沒有多大問題。如果你安裝過srvany服務(wù)的話,在升級或安裝Windows 2000, Windows NT Server, Windows NT Workstation, or applications 時要先disabled。實際上srvany本身就是一個服務(wù),它先把自己啟動起來,然后又在啟動那些配置過的應(yīng)用程序。就我個人開來這種方法很費力,比起instsrv和srvinstw來說都比較難以使用,最關(guān)鍵的是還要手工添加注冊表。下面也就說一下怎么樣讓一個應(yīng)用程序像一個服務(wù)那樣運行。首先我們要安裝Srvany,可以使用instsrv Myservice c:\path\srvany.exe或者srvinstw照提示做就可以了。這個是必要的,我們需要Srvany來啟動程序。當(dāng)然為了讓程序像服務(wù)一樣運行,我們需要編輯注冊表信息,而且還要選擇啟動參數(shù)和工作目錄。這里再次提醒手工操作注冊標有危險性,注意備份。

          我們只要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\下
          添加一個Parameters子鍵,這里的MyService是剛剛指定的Srvany的服務(wù)名字。
          然后再這個subkey底下建立一個應(yīng)用程序入口,使用REG_SZ類型。
          接著在指定程序的全路徑,需要包括擴展名。比如Application: REG_SZ: C:\Tools\srv.exe

          為了指定相應(yīng)的啟動參數(shù)我們還得繼續(xù)編輯注冊表。
          這個時候要在剛剛的Parameters底下接著創(chuàng)建一個AppParameters條目,也是REG_SZ類型。
          比如:AppParameters: REG_SZ: C:\tmp\example,當(dāng)然因為srvany已經(jīng)被安裝為一個服務(wù)了,你也可以
          在Services面板里指定。C:\Tools\srv.exe C:\\temp\example。注意,這里使用\\來表示一個\。
          再來就是指定環(huán)境變量了。
          添加一個AppEnvironment,REG_MULTI_SZ類型。這個東西就是Services面板里面的Dependencies這一項。 可以根據(jù)需要指定,沒有就不需要添加。 還要指定Working Directory。
          也是在Parameters里面建立一個AppDirectory使用REG_SZ。比如:AppDirectory: REG_SZ: C:\Tmp
          當(dāng)然也可以在Services里面 /D c:\\tmp D:\\Tools\\Vi.exe c:\\tmp\\example。

          一個srvany可以啟動一個應(yīng)用程序,如果你要用srvany而且是多個程序的話,只要采用不同的servicename啟 動一個srvany就可以了。如果要刪除可以使用instsrv myservice remove,也可以用sc。
          大家可以通過調(diào)整以下這幾個注冊表項來為提供相應(yīng)的訪問。
          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
          LanmanServer\Parameters\NullSessionShares

          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
          LanmanServer\Parameters\NullSessionPipes

          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
          LanmanServer\Parameters\RestrictNullSessAccess

          32. Srinstw.exe (Service Installation Wizard)
          這個安裝服務(wù)的工具前面就已經(jīng)提到過了,而且又是GUI工具,使用起來都照著提示做就可以了,這里就不再多說什么,只是注意卸載服務(wù)的時候不要把系統(tǒng)重要的服務(wù)趕掉就好了。

          33. Svcacls.exe (service ACL Editor)

          很可惜在這個版本的Reskit里面缺少了這個程序,非常遺憾不能對它進行測試。

          Svcacls是一個可以用來設(shè)置服務(wù)對象的ACL的命令行工具,基本上就是為了方便administrator進行委派控制而設(shè)立的。使用這個工具我們需要administrator特權(quán),當(dāng)然這個東西也是可以進行委派的。這里就提醒一點,不要刪除任何服務(wù)的adminstrators和system許可,不然的話,你可能就要從裝系統(tǒng)來恢復(fù)控制了。

          svcacls \\targetcomputer\Service Option

          \\targetcomputer\Service
          這個不用說了。

          Option有以下幾種

          G(grant): trustee: Permissions 增加許可。
          S(Set): trustee: Permissions 重置許可。
          R(Revoke): trustee: 刪除被賦予的explicit permissions。
          D(deny): trustee: 拒絕訪問。注意,使用這個命令的時候要很小心,一旦你用了D:everyone,連

          administrators都沒有權(quán)限來訪問這個服務(wù)了。

          你可以在一行里面使用這些命令。比如: r:username g:uername:riu。

          trustee
          你要指定的用戶。

          permissions
          相應(yīng)的權(quán)限。

          有Specific許可和generic許可兩種。

          Specific permissions:

          Q: Query Service Configuration (SERVICE_QUERY_CONFIG)
          S: Query Service Status (SERVICE_QUERY_STATUS)
          E: Enumerate Dependent Services (SERVICE_ENUMERATE_DEPENDENTS)
          C: Change Service Configuration (SERVICE_CHANGE_CONFIG)
          T: Start Service (SERVICE_START)
          O: Stop Service (SERVICE_STOP)
          P: Pause/Continue Service (SERVICE_PAUSE_CONTINUE)
          I: Interrogate Service with ControlService() (SERVICE_INTERROGATE)
          U: Allow User-Defined Control Commands (SERVICE_USER_DEFINED_CONTROL)

          Generic permissions:

          F: Full Control (SERVICE_ALL_ACCESS = QSECTOPIU)
          R: Generic Read (GENERIC_READ = QSE)
          W: Generic Write (GENERIC_WRITE = C)
          X: Generic Execute (GENERIC_EXECUTE = TOPIU)

          這個工具為我們提供了一種安全性的選擇,禁止對某些服務(wù)的訪問,可以避免一些攻擊的發(fā)生。


           

          34. Svcmon.exe (service Monitoring Tool)

          這個工具可以用來監(jiān)視本地或者是遠程計算機服務(wù)的狀態(tài)改變,當(dāng)它發(fā)現(xiàn)一個服務(wù)開始或者是停止的時候,這個工具將會通過發(fā)e-mail或者是Exchange Server來通知你知道。
          這個工具由兩部分組成,Svcmon.exe這個需要你手工拷貝到%SystemRoot%\System32底下,另一個Smconfig
          是一個安裝向?qū)АS捎谑菆D形界面,所以我就不再多說什么東西。這里提醒一下注意,在Exchange

          Recipients那里添如你要提醒的用戶的Email。其他的按照指示做就可以了。

          35. Timethis.exe (Time This)

          我很喜歡這個工具,這個工具可以用來報告一個程序的運行時間。報告的時間可以詳細到0.001s。連net sue都可以拿來測試。 當(dāng)然使用起來也很簡單。

          timethis commandname

          當(dāng)你在命令中有<, >, >>,|這樣的符號的時候,請使用雙引號,比如:timethis "dir /a > a.txt"

          使用以后基本上會出來這么一個東西。

          C:\>timethis dir

          TimeThis : Command Line : dir
          TimeThis : Start Time : Sun Mar 03 17:45:27 2002

          Volume in drive C is WIN2000
          Volume Serial Number is 4CE5-8543

          Directory of C:\

          2002-02-23 22:58
          Documents and Settings
          2002-02-23 22:49
          Inetpub
          2002-03-03 11:37
          Program Files
          2002-03-03 14:15
          WINNT
          0 File(s) 0 bytes
          4 Dir(s) 9,512,271,872 bytes free

          TimeThis : Command Line : dir
          TimeThis : Start Time : Sun Mar 03 17:45:27 2002
          TimeThis : End Time : Sun Mar 03 17:45:27 2002
          TimeThis : Elapsed Time : 00:00:00.050

          36. Timezone.exe (Daylight Saving Time Update Utility)

          微軟真是奇怪,居然在ResKit里面加入了這樣的東西,一個調(diào)整夏令時的工具。我們現(xiàn)在又不用夏令時,沒有多大用處。隨便說說!

          timezone /g /s startdate enddate /?

          /g
          當(dāng)前的情況。

          /s startdate enddate
          進行修改,格式是HourayofWeekay:Month

          Hour: 00-23
          DayofWeek: 0=Sunday 1=monday………
          Day指定發(fā)生的時間,如果上面是sunday,這里是1的話,就是該月的第一個星期天。
          Month: 1 = January 到12 = December。

          37. Tlocmgr.exe (Telephony Location Manager)

          一個用來管理TAPI的小程序,允許你方便的改變你的TAPI Location。一旦運行以后會在右下角有一個tray,這個實在沒有什么好說的。

          38. Tracedmp.exe (Trace Dump)

          這個工具也是用來處理Tracelog產(chǎn)生的日志的,和前面的Reducer.exe有相象之處。Tracelog產(chǎn)生的是不容易閱讀的,我們可以使用Tracedmp把它轉(zhuǎn)換比較容易讀的格式,比如Summary.txt這種內(nèi)容少一點, 也可以是CSV可以比較詳細。還有tracedmp可以直接從Realtime buffer中直接讀出數(shù)據(jù)來處理。tracedmp解釋tracelog產(chǎn)生的日志是通過一個叫mofdata.guid的文件,這文件里面包含了系統(tǒng)的目錄服務(wù)和系統(tǒng)追蹤信息。

          如果要處理 其他的數(shù)據(jù),必須把相應(yīng)的信息加入到mofdata.guid中去。

          tracedmp option -h│-?

          -o 20051017183000.htm
          輸出CSV和summary文件,默認情況下是dumpfile.csv和summary.txt。這里的dumpfile.csv包括每一個
          event的詳細的信息。具體產(chǎn)生的日志的內(nèi)容代表的信息我在這里就不詳細說了,

          1#管無M:jP提2q's00

          大家可以參看相應(yīng)的資料。

          -guid
          MOF定義文件,默認的GUID是mofdata.guid,你也可以進行指定。

          -rt
          產(chǎn)生一個real-time trace文件。如果要指定這個選項,tracelog必須是在工作的。

          -summary
          只提供summary.txt文件。一般像這樣用就可以了,軟0g供G4W~$0CTY9Tracedmp c:\logfile.etl。你當(dāng)然也可以tracedmp -rt ds,來顯示realtime記錄。

          39. Traceenable.exe (Trace Enable)

          這是一個用來enable/disable RAS/RADIUS記錄的GUI工具。這個工具允許我們修改

          HKLM\SOFTWARE\Microsoft\Tracing key下的
          EnableConsoleTracing
          EnableFileTracing
          MaxFileSize
          三個subkeys。如果你熟悉注冊表的話,也可以直接修改。圖形界面的工具就不多說了。提一下面板中的幾個選項。

          Global
          enable console tracing
          允許你實時看目錄。

          enable pool tagging
          打開system pool標記。

          Per Component
          enable console tracing
          在控制臺窗口中顯示日志跟蹤信息。

          enable file tracing
          把信息保存到一個日志文件中。一般在%windir%\tracing。

          max file size
          文件的最大尺寸。

          如果你是在一臺才安裝的計算機中啟用這個東東的話,有些鍵值會不在注冊表中,那就是說在Trace Enable中也看不到,你需要先運行RasPhone。

          40. Tracelog.exe (Trace Log)

          說了半天終于說到這個tracelog.exe了。這個命令行工具可以開始,停止,啟用跟蹤記錄,這些記錄可以用Tracedmp或者是Reducer來看。tracelog在運行時將建立一個buffer,然后如果有數(shù)據(jù)進入buffer它可以把這些數(shù)據(jù)轉(zhuǎn)換為文件保存,也可以進行實時的跟蹤,這個時候我們可以用如tracedmp這樣的應(yīng)用程序讀出buffer中的數(shù)據(jù)。

          tracelog managementoption bufferoption logfileoption Systemleveltracingoption

          Provider-specificOption -h│-?

          managementOption: Starting, stopping, updating and querying

          -guid file
          和tracedmp中的是一樣的,都是表示provider的信息。如果開始System tracing可以不用提供Guid,如果是directory service events我們可以指定control.guid。

          -start logger_name
          開始一個trace會話。你要提供一個日志名字,如果是一個system trace可以不需要指定,默認的名字為“NT
          Kernel logger”。

          -stop logger_name
          終止trace會話。如果是system trace可以不用指定logger_name。

          -update option logger_name
          升級當(dāng)前的trace會話。這個東西在你想改變文件的名字,buffer的參數(shù),realtime模式等時候就會被用到。
          以下這些option可以在kernel logger中用到。

          -rt
          模式開關(guān),調(diào)整realtime mode。

          -f logfile_name
          指定新的log文件的名字。

          -ft n
          改變buffer的刷新計數(shù)器。

          -max n
          改變buffer的大小。

          "-nodisk" "-noprocess" "-nothread" "-nonet" "-fio" "-pf" "-hf" "-img" "-cm"
          NT kernel logger的一些標志。

          上面這些調(diào)整可以一次進行,如:tracelog -update -rt -max 40。

          -x
          停止所有活動的會話。

          -l
          查詢在工作的traces。

          -q
          只查詢system trace。

          BufferOption

          -b n
          設(shè)置buffer的大小為n kb。小的buffer會導(dǎo)致經(jīng)常刷新buffer,

          N%網(wǎng)Q_:j專軟國XE

          基本上使用默認就好。

          -min n
          設(shè)置最小buffer,默認是2。

          -max n
          設(shè)置最大buffer,默認是25。

          -ft n_seconds
          設(shè)置刷新時間。

          -age n_minutes
          修改老化時間。就是分配的buffer沒有使用,

          ?件_F件}Rw_c

          會在多長時間內(nèi)被釋放。

          LogfileOption

          -rt b
          啟用real time mode。

          -f name
          日志的名字。默認是c:\logfile.etl,如果要使用不同的名字用-o 20051017183000.htm。

          -seq n_mbyte
          一直使用到n_mbyte。

          -cir n_mbyte
          循環(huán)使用n_mbyte。


          Systemleveltracingoption
          為kernel tracing提供更多的選項。
          默認情況下kernel tracing包括
          Process start/end
          Disk I/O
          Network TCP/IP, UDP/IP
          Thread start/end

          只有在使用一些開關(guān)后,I2R$軟+(網(wǎng)u.I}供@=`R才會產(chǎn)生下面的內(nèi)容。
          Image Load
          Registry calls
          File I/O
          Page Fault
          但是trace這些東西會產(chǎn)生很大的負擔(dān)。

          -fio
          啟用file I/O tracing。

          -pf
          啟用page faults tracing。

          -hf
          啟用hard faults tracing。

          -img
          啟用image load tracing。

          -um
          啟用Process Private tracing。這種情況下buffer建立在Private Process space中,默認是在kernel

          space中。

          -nf
          每n mb更新文件。

          ProviderSpecificOption: Provider Level Options

          -level n

          -flags

          這些都和相應(yīng)的provider有關(guān)。

          下面看個例子,

          打開trace。
          c:\>tracelog start
          Logger Started...
          Operation Status: 0L
          The operation completed successfully.

          Logger Name: NT Kernel Logger
          Logger Id: ffff
          Logger Thread Id: 1360
          Buffer Size: 8 Kb
          Maximum Buffers: 25
          Minimum Buffers: 2
          Number of Buffers: 2
          Free Buffers: 1
          Buffers Written: 3
          Events Lost: 0
          Log Buffers Lost: 0
          Real Time Buffers Lost: 0
          Log File Mode: Sequential
          Enabled tracing: Process Thread Disk TcpIp
          Log Filename: C:\LogFile.Etl

          停止trace
          C:\>tracelog

          posted @ 2007-08-21 16:54 siwei 閱讀(308) | 評論 (0)編輯 收藏

          方法一:
          驗證碼無法顯示的原因是XBM被屏蔽,只需要修復(fù)注冊表相關(guān)項即可:

          打開記事本,把這一段粘貼進去:
          REGEDIT4

          [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security]
          "BlockXBM"=dword:00000000

          另存為  a.reg即可,運行后,重新打開瀏覽器。


          方法二:
          今天上網(wǎng),居然就發(fā)現(xiàn)圖形驗證碼無法顯示了.郁悶了老半天,找了這個辦法
          1、運行注冊表編輯器
          2、依次點開HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet&nbsp;Explorer\\Security;
          3、在屏幕右邊空白處點擊鼠標右鍵,選擇新建一個名為;“BlockXBM”為的;DWORD&nbsp;鍵,其值為默認的0
          4、退出注冊表編輯器。

          posted @ 2007-08-21 16:48 siwei| 編輯 收藏

          主站蜘蛛池模板: 丁青县| 上杭县| 屏东市| 祁门县| 澜沧| 临清市| 贵阳市| 陆河县| 湾仔区| 沭阳县| 天峨县| 大姚县| 白玉县| 天水市| 焉耆| 中西区| 关岭| 岳普湖县| 花莲县| 镇康县| 惠东县| 宣化县| 泾川县| 登封市| 象山县| 滦南县| 临沧市| 南陵县| 印江| 渑池县| 庆城县| 磐安县| 宝兴县| 井陉县| 闽侯县| 新晃| 岫岩| 额济纳旗| 万安县| 耒阳市| 岳池县|