• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 深入淺出Win2k計算機啟動關機腳本

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    一.簡介 Win2000計算機啟動/關機腳本(startup/shutdownscripts)是Win2000的一個新特點.啟動腳本是邀請用戶登錄之前運行的批文件,它的功能類似于Win9X和DOS中的自動執行批處理文件autoexec.bat;關機腳本是計算機關機之前運行的批文件. 與Win2000用戶登錄/注銷

    一.簡介 

    Win2000計算機啟動/關機腳本(startup/shutdown scripts)是Win2000的一個新特點.啟動腳本是邀請用戶登錄之前運行的批文件,它的功能類似于Win9X和DOS中的自動執行批處理文件autoexec.bat;關機腳本是計算機關機之前運行的批文件. 

    與Win2000用戶登錄/注銷腳本(logon/logoff scripts)相比,它們之間的主要區別是:計算機啟動/關機腳本在計算機啟動和關機時運行,腳本程序只運行一次,通常在啟動腳本運行完畢后才出現邀請用戶登錄的對話框;用戶登錄/注銷腳本在邀請用戶登錄的對話框出現后,用戶登錄系統或從系統注銷時運行,運行次數由用戶登錄/注銷的次數決定,每登錄/注銷系統一次,腳本程序就運行一次. 

    二.指派 

    在啟用計算機啟動/關機腳本前,必須進行指派.指派計算機啟動/關機腳本需要通過組策略MMC(管理控制臺)管理單元進行,具體的操作如下: 

    1.單擊"開始"菜單->"運行",在打開框內輸入"MMC",打開微軟管理控制臺(Microsoft Management Console,MMC). 

    2.單擊"控制臺"菜單->"添加/刪除管理單元...",在跳出"添加/刪除管理單元"對話框內單擊"添加"按鈕,添加獨立管理單元. 

    3.在"添加獨立管理單元"對話框的"可用的獨立管理單元"列表內選擇"組策略",按下面的"添加"按鈕. 

    4.當系統詢問使用哪一個組策略對象時,如果你要指派面向本地計算機,只在本地計算機執行的啟動/關機腳本,請選擇缺省的"本地計算機"組策略對象;如果你要指派面向Win2000域,在域內所有計算機上執行的啟動/關機腳本,那請點擊"選擇組策略對象"對話框中的"瀏覽..."按鈕,在"瀏覽組策略"對話框選定能應用到整個域中的組策略對象,這里以"Default Domain Policy"對象為例,它是Win2000域缺省的域策略對象(圖一)(t1.gif). 

    5.完成后依次關閉各對話框回到管理控制臺,現在管理控制臺上就有了一個相應的組策略對象樹(圖二)(t2.gif). 

    6.在管理控制臺左側的控制臺樹窗格中,依次展開組策略對象->"計算機配置"->"Windows設置"->"腳本(啟動/關閉)"節點,雙擊右側詳細資料窗格中的"啟動"或"關機"項目就可以設置計算機啟動或關機時使用的腳本了(圖三)(t3.gif)(因Win2000計算機啟動和關機腳本的設置方法相同,下面的操作均以啟動腳本為例). 

    7.雙擊右側詳細資料窗格中的"啟動"項目,在跳出的"啟動屬性"對話框中點擊"添加"按鈕,添加新的計算機啟動腳本. 

    8.一個啟動腳本條目包括兩方面的內容:腳本名和腳本參數(圖四)(t4.gif).如果腳本名不包含文件路徑,比如圖中的腳本文件名只是"scripta.vbs",系統會到缺省的計算機啟動腳本路徑下尋找這個腳本文件.腳本的參數是可選的,可填可不填,看實際情況而定,圖中的開機腳本使用了運行參數"start". 

    9.本地計算機腳本的缺省路徑通常是"%systemroot%\system32\GroupPolicy\Machine\Scripts",如"C:\winnt\system32\GroupPolicy\Machine\Scripts".應用到域的計算機腳本的缺省路徑通常是""\\\sysvol\\Policies\\Machine\Scripts",如"\\MyDC1\sysvol\Mydom.com\Policies\{31B2F340-016D-11D2-832F-00C04FB873F9}\Machine\Scripts".啟動腳本文件存放在"Startup"子文件夾中,關機腳本文件存放在"ShutDown"子文件夾中. 

    10.我們可以根據需要重復點擊"啟動屬性"對話框中的"添加"按扭,為計算機添加多個啟動腳本(圖五)(t5.gif). 

    11.設置完畢,保存后退出組策略MMC管理單元.等組策略刷新后,這些腳本就會在計算機啟動和關機時起作用. 

    三.深入 

    1.我們對計算機啟動/關機腳本的設置數據被Win2000保存在了一個名為scripts.ini的隱藏配置文件中,這個文件位于"C:\WINNT\system32\GroupPolicy\Machine\Scripts"目錄下,可以使用任一款文件編輯軟件如記事本進行編輯. 

    scripts.ini文件內容通常包含兩個數據段:[Startup]和[Shutdown],[Startup]數據段下是啟動腳本配置,[Shutdown]數據段下是關機腳本配置.每個腳本條目被分成腳本名和腳本參數兩部分存貯,腳本名保存在XCmdLine關鍵字下,參數保存在XParameters關鍵字下,這里的X表示從0開始的腳本序號,以區別多個腳本條目和標志各腳本條目的運行順序.下面是一個簡單的scripts.ini文件的例子: 

    [Startup] 
    0CmdLine=d:\start\ss.bat 
    0Parameters= 
    1CmdLine=scriptsa.vbs 
    1Parameters=start 
    [Shutdown] 
    0CmdLine=shut.vbs 
    0Parameters= 

    從例子中我們可以看出,共設置了兩個計算機啟動腳本:ss.bat和scripta.vbs.ss.bat位于d:\start目錄下,沒有使用參數;scriptsa.vbs位于缺省的啟動腳本目錄C:\WINNT\system32\GroupPolicy\Machine\Scripts\Startup下,使用了參數"start".兩個腳本的執行順序是先執行ss.bat后執行scriptsa.vbs.設置了一個關機腳本shut.vbs,沒有使用參數,該腳本位于缺省的關機腳本目錄C:\WINNT\system32\GroupPolicy\Machine\Scripts\Shutdown下. 

    2.啟動/關機腳本的運行情況,包含是否同步運行、是否顯示運行狀態、最長等待時間等,都可以在組策略中進行微調.具體操作如下: 

    (1)-(5)步同第二部分指派操作中的1-5步; 

    (6)在管理控制臺左側的控制臺樹窗格中,依次展開組策略對象->"計算機配置"->"管理模板"->"登錄"節點,右側詳細內容窗格中顯示的內容有四項與啟動/關機腳本有關(圖六)(t6.gif):非同步運行啟動腳本,顯示啟動腳本的運行狀態,顯示關機腳本的運行狀態,組策略腳本的最長等待時間. 

    (7)非同步運行啟動腳本 
    在默認情況(也就是沒有配置的情況,下同)下,系統要等每個啟動腳本運行完畢才運行下一個啟動腳本.如果啟用這個策略,系統則不會協調啟動腳本的運行順序,啟動腳本可以同時運行.如果停用或不配置這個策略,每個啟動腳本要在上一個腳本運行完畢后才能運行.建議不配置. 

    這個策略對應的注冊表值是"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\RunStartupScriptSync",這是一個REG_DWORD值,0表示啟用,1表示禁用. 

    (8)顯示啟動/關機腳本的運行狀態 
    在默認情況下,系統不顯示啟動腳本中的指令.如果啟用這個策略,系統會在啟動腳本運行時顯示每個指令,指令將出現在命令窗口,或顯示出人機交互界面。這個功能主要是為高級用戶設計的.如果停用或不配置這個策略,指令則不會顯示.建議不配置. 

    舉個例子,假設你在啟動腳本中有一條命令是"c:\winnt\explorer.exe c:\winnt",如果啟用了這一策略允許顯示啟動腳本的運行狀態,那么當計算機啟動時,一個資源管理器窗口就會跳出來,桌面被打開,系統以system用戶的身份交互登錄到計算機上,這無異于那個著名的輸入法漏洞!由此可以看出,打開啟動/關機腳本的運行狀態有時是非常危險的. 

    這兩個組策略條目對應的注冊表值分別是"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\HideStartupScripts"和"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\HideShutdownScripts",均為REG_DWORD值,0表示啟用,1表示禁用. 

    (9)組策略腳本的最長等待時間 
    這個策略限制了由組策略完成運行登錄、開始和關閉腳本所需的全部時間.如果當指定時間已超過但腳本尚未完成運行,系統會停止腳本處理并記錄一個錯誤事件.在默認情況下,系統允許合并的腳本集運行600秒(10分鐘). 

    要使用這個策略,在第二個框中鍵入從1到32000之間的數目以確定您希望系統等待腳本完成的時間,單位是秒.要讓系統一直等到完成運行腳本為止,無論等待時間多久,請鍵入0(圖七)(t7.gif).但不建議這樣,如果你的腳本寫的很差,那后果將難以想象! 

    如果其它系統任務必須等待腳本完成才能進行,這個間隔時間就非常關鍵.在默認的情況下,必須完成每一個啟動腳本后才能運行下一個,您還可以使用"非同步運行啟動腳本"策略讓系統等到完成啟動腳本后再出現邀請用戶登錄的對話框.間隔過長可延緩系統并使用戶不方便,如果間隔太短,所需的任務無法完成系統會可能會過早就緒,導致出現問題. 

    這個組策略條目對應的注冊表值是"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\MaxGPOScriptWait",也是一個REG_DWORD值,它的值表示等待的時間,單位是秒. 

    四.應用 
    計算機啟動/關機腳本的用途很多,下面舉三個比較典型的例子: 

    1.計算機啟動和關機時間審核 

    (1)編寫一個能夠記錄時間的腳本LogTime.vbs,內容如下: 

    '================================================ 
    dim ArgObj,str,strtmp 

    Set ArgObj = WScript.Arguments 
    If ArgObj.Count < 1 Then 
    strtmp="無參數操作!" 
    else 
    select case ArgObj.Item(0) 
    case "startup" 
    strtmp=" 服務器啟動." 
    case "shutdown" 
    strtmp=" 服務器關閉." 
    case else 
    strtmp=" 未知操作!參數:"+ArgObj.Item(0) 
    end select 
    end if 

    set fso=CreateObject("Scripting.FileSystemObject") 
    set tmp=fso.opentextfile("d:\log\logtime.txt",8,true) 

    str="["+cstr(now())+"] "+strtmp+chr(13)+chr(10) 
    tmp.write str 
    tmp.close 

    set tmp=nothing 
    set fso=nothing 
    '================================================= 

    這個腳本有兩個參數:startup和shutdown.當用作啟動腳本時,使用"startup"參數;當用做關機腳本時,使用"shutdown"參數.另外,腳本中使用了FileSystemObject對象,使用該腳本前請確保這個對象已經存在于你的計算機上. 

    (2)按照前面的方法將腳本設置好.每次計算機啟動或關機,這個腳本都會運行,并將計算機啟動或關機的時間(實際上這個腳本運行時的時間,但兩者應該相差無幾)記錄到一個文本文件中,例子中是"d:\log\logtime.txt",可以根據需要更改. 

    2.刪除一些特殊的共享 

    在Win2000中,由于計算機管理、用戶登錄等方面的需要,系統會建立許多特殊的共享,如C$、D$、ADMIN$、IPC$、NETLOGON等,但這些共享并不是所有的計算機都必須的.使用"計算機管理"MMC或net share命令等禁止這些共享,只是一種治標不治本的方法,它們在計算機重新啟動后會重新出現.基于安全等方面的考慮,我們有時希望將這些共享徹底刪除.現在刪除這類特殊共享的方法比較多,如編輯注冊表,下面就再提供一種使用啟動腳本刪除這些特殊共享的方法. 

    (1)編寫一個能刪除特殊共享的批處理文件DelShare.bat,內容如下: 

    net share C$ /delete 
    net share D$ /delete 
    net share IPC$ /delete 
    net share NETLOGON /delete 

    (2)按照前面的方法將腳本設置為啟動腳本,重新啟動計算機.OK,一切都清凈了.:) 

    3.恢復管理員密碼或新建管理員賬號 

    丟失管理員密碼是件非常令人頭疼的事情,但說不定什么時候就會碰到.在緊急情況下,如何恢復管理員密碼乃至新建一個管理員賬號,現在已經有許多成熟的技術,如經典的登錄屏幕保護程序法、使用O&O軟件等.實際上,使用啟動腳本也是一個相當不錯的選擇. 

    (1)如果故障計算機使用FAT/FAT32文件系統,那可直接使用Win98引導盤引導.如果使用NTFS文件系統,可將故障計算機上的硬盤取下,以從盤模式掛接到其它的Win2000計算機上.下面的操作以后一種情況為準,假設現在故障計算機的system分區(通常是C:)在新的計算機上成為分區E:. 

    (2)編寫一個能恢復管理員密碼的批處理文件admin.bat,內容只需要一條"net user"命令即可.如下: 

    net user administrator 12345678 

    這兒我們假設當前的管理員是administrator,將它的密碼恢復為"12345678".將文件admin.bat保存到"E:\winnt\system32\GroupPolicy\Machine\Scripts\Startup"下,也就是故障計算機原來的"C:\winnt\system32\GroupPolicy\Machine\Scripts\Startup"下. 

    (3)編寫一個啟動/關機腳本配置文件scripts.ini,這個文件名是固定的,不能改變.內容如下: 

    [Startup] 
    0CmdLine=admin.bat 
    0Parameters= 

    將文件scripts.ini保存到"E:\winnt\system32\GroupPolicy\Machine\Scripts"下,也就是故障計算機原來的"C:\winnt\system32\GroupPolicy\Machine\Scripts"下. 

    (4)將硬盤恢復為主盤,接回原來的計算機,重新啟動,等待啟動腳本運行.啟動腳本運行結束管理員administrator的密碼就被恢復為"12345678". 

    (5)如果要新建一個管理員賬號,admin.bat文件的內容可以修改為: 

    net user admin 12345678 /add 
    net localgroup administrators admin /add 

    這樣一個名為"admin",密碼是"12345678"的管理員賬號就建立了. 

    這個方法不僅可以恢復獨立服務器上本地管理員密碼,也可以恢復Win2000域中域管理員的密碼. 

    //個人認為這個方法還是最好的 

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>