Windows 安裝IIS出現的問題(無法安裝IIS,提示“安裝程式無法複製檔案IISApp.vbs”)_win伺服器
來源:互聯網
上載者:User
這就是典型的windows安全資料庫出問題了,可以用以下方法來解決這個問題:
Windows安全資料庫,在%WinDir%\Security\database裡。
台灣的資料庫,大陸稱為資料庫。 在Windows作業系統裡帶有專門的Esentutl.exe工具,這是一個DOS工具,可用來查看和修複Windows安全資料庫。
比如我有一次在安裝IIS的元件時,發生了錯誤:
************************
複製錯誤 安裝程式無法複製檔 iisapp.vbs。 請確認下面指定的位置是正確的,或者更改它並在指定的磁碟機中插入 'Service Pack 1 CD-ROM'。
當複製來源: C:\Windows\ServicePackFiles\i386 [瀏覽] [重試] [取消]
************************
這就是由於Windows安全資料庫損壞所致。可用Esentutl.exe進行修複。
查看它的用法,用下面指令: esentutl /? 會顯示如下提示:
Microsoft(R) Windows(R) Database Utilities Version 5.2 Copyright (C) Microsoft Corporation. All Rights Reserved. DESCRIPTION: Maintenance utilities for Microsoft(R) Windows(R) databases. MODES OF OPERATION: Defragmentation: ESENTUTL /d [options] Recovery: ESENTUTL /r [options] Integrity: ESENTUTL /g [options] Checksum: ESENTUTL /k [options] Repair: ESENTUTL /p [options] File Dump: ESENTUTL /m[mode-modifier] <<<<< Press a key for more help >>>>>
D=Defragmentation, R=Recovery, G=inteGrity, K=checKsum, P=rePair, M=file duMp =>
可見,檢查資料庫的完整性,要用/g,比如: esentutl /g C:\Windows\security\database\secedit.sdb
若要修複這個Windows安全資料庫,用如下指令: esentutl /p C:\Windows\security\database\secedit.
用ESEnTUtl工具修複系統資料庫1
Windows具有大量互相關聯的資料庫。當然,主要的資料庫就是註冊表,其中包含了系統、使用者以及應用程式設定的全部資訊。然而,Windows還包含大量你通常沒有聽說過的其他資料庫。這些資料庫以系統資料庫檔案形式儲存,尾碼為SDB。其中一些記錄了應用程式的安裝。你會發現通常他們的檔案名稱為Setup.SDB。另一些記錄了Service Pack的狀態,具有類似這樣的檔案名稱:AppHelp.SDB, AppH_SP.SDB, DrvMain.SDB, MSIMain.SDB以及SysMain.SDB。還有其他的資料庫來跟蹤安全或其他不在註冊表中顯示的系統設定,如SecEdit.SDB。簡而言之,Windows在除註冊表以外的地方隱藏了大量的資訊。你可以用“可延伸儲存引擎技術工具“(Extensible Storage Engine Technology Utility, ESEnTUtl)來訪問所有這些其他資料庫。
並不是你硬碟上每個SDB檔案都是資料庫。混亂的是微軟也把SDB副檔名用在一些文字檔上。比如,Visual Studio的Setup.SDB就是個文字檔。該檔案能夠告訴你許多關於應用的資訊,但這些資訊不是ESEnTUtl能夠管理的格式。正確的SDB檔案包括位元據。
警告:ESEnTUtl工具極端強大。在錯誤的檔案上不正確地應用,會抹去安全資訊或者使你的系統無法啟動。因此,在你使用它之前確保你完全理解該工具。在修改任何資料庫之前記得先做備份。在做之前通過微軟知識庫(Microsoft Knowledge Base)儘可能多地驗證這些修改。
ESEnTUtl工具並不為你提供很多協助資訊。實際上,你很難在所有Windows協助檔案或者很多其他微軟的資源中找到提及該工具的地方。你能找到提到它的一個地方就是微軟知識庫。許多Windows問題需要你用ESEnTUtl工具來修複。你可以通過用“ESEnTUtl site:support.microsoft.com”作為關鍵字在Google搜尋到來自微軟知識庫的一些有關該工具使用的例子。
ESEnTUtl運行有幾種模式。每種模式對SDB檔案執行不同的任務。這裡是每種模式的文法:
磁碟重組模式: ESEnTUtl /d <資料庫檔案名> [選項]
復原模式: ESEnTUtl /r [選項]
完整性檢查模式: ESEnTUtl /g <資料庫檔案名> [選項]
修複模式: ESEnTUtl /p <資料庫檔案名> [選項]
校正模式: ESEnTUtl /k <資料庫檔案名> [選項]
檔案轉儲模式: ESEnTUtl /m[模式修改符] <檔案名稱>
複製模式: ESEnTUtl /y <源檔案> [選項] ***僅用於Vista作業系統***
上述選項根據模式而不同。然而,有些選項在所有模式中通用。這裡是通用選項:
/8 定義資料庫分頁大小為8KB。正常情況下,ESEnTUtl自動檢測分頁大小。只有當微軟知識庫告訴你或者讀取資料庫遇到問題時才使用該選項。
/o 禁用微軟徽標。你可以用該選項來建立報表輸出或者作為另一個資料庫的輸入。
/s <流檔案名稱> 為流資料輸出設定檔案名稱。預設設定是NONE。當你想用流資料技術——而不是簡單的轉儲——來發送資料時使用該選項。該選項適用於磁碟重組、完整性檢查、修複以及檔案轉儲模式。
/t <資料庫檔案名> 設定臨時資料庫檔案名。預設設定是TEMP-DFRG*.EDB。通常,你無需更改資料庫檔案名因為ESEnTUtl已經支援多個臨時資料庫。該選項適用於磁碟重組、完整性檢查以及修複模式。
注意:某些模式針對不同的目的使用同樣的選項開關。因此,不要假定在磁碟重組模式中的/f開關和完整性檢查模式的/f開關執行同樣的任務。