SQL Server 透過擴展預存程序 xp_regread、xp_regwrite 可直接操作 Windows 登錄,常用於啟用 Access Jet 引擎的 SandBoxMode、修改啟動參數等場景。需以 sysadmin 權限執行。
-- 寫入:1=啟用, 0=停用 EXEC master..xp_regwrite @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\Microsoft\Jet\4.0\Engines', @value_name = 'SandBoxMode', @type = 'REG_DWORD', @value = 1;
-- 範例:讀取 Winlogon Userinit EXEC master..xp_regread @rootkey = 'HKEY_LOCAL_MACHINE', @key = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', @value_name = 'Userinit';
| 註冊表類型 | @type 參數 | 說明 |
|---|---|---|
| REG_DWORD | REG_DWORD | 4 位元組整數 |
| REG_SZ | REG_SZ | 固定長度字串 |
| REG_EXPAND_SZ | REG_EXPAND_SZ | 含環境變數展開字串 |
| REG_MULTI_SZ | REG_MULTI_SZ | 多字串陣列 |
| REG_BINARY | REG_BINARY | 二進位資料 |
HKEY_LOCAL_MACHINE 影響全機器,謹慎操作並備份登錄。sp_OA* OLE 自動化或 PowerShell 腳本替代,因擴展預存程序未來可能移除。