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開關執行同樣的任務。