共用方式為


登錄機碼安全性和訪問許可權

Windows 安全性模型可讓您控制登錄機碼的存取。 如需安全性的詳細資訊,請參閱 Access-Control 模型

當您呼叫 RegCreateKeyExRegSetKeySecurity 函式時,您可以為登錄機碼指定 安全性描述元。 如果您指定 NULL,則金鑰會取得預設的安全性描述元。 密鑰的預設安全性描述元中的 ACL 會繼承自其直接父金鑰。

若要取得登錄機碼的安全性描述元,請呼叫 RegGetKeySecurityGetNamedSecurityInfoGetSecurityInfo 函式。

登入機碼的有效存取權限包括 DELETE、READ_CONTROL、WRITE_DAC 和 WRITE_OWNER 標準存取權限。 登錄機碼不支援SYNCHRONIZE標準存取權。

下表列出登錄機碼物件的特定訪問許可權。

價值 意義
KEY_ALL_ACCESS (0xF003F)
結合STANDARD_RIGHTS_REQUIRED、KEY_QUERY_VALUE、KEY_SET_VALUE、KEY_CREATE_SUB_KEY、KEY_ENUMERATE_SUB_KEYS、KEY_NOTIFY和KEY_CREATE_LINK訪問許可權。
KEY_CREATE_LINK (0x0020)
保留供系統使用。
KEY_CREATE_SUB_KEY (0x0004)
建立登錄機碼子機碼的必要專案。
KEY_ENUMERATE_SUB_KEYS (0x0008)
必須列舉登錄機碼的子機碼。
KEY_EXECUTE (0x20019)
相當於 KEY_READ。
KEY_NOTIFY(0x0010)
需要要求登錄機碼或登錄機碼子機碼的變更通知。
KEY_QUERY_VALUE (0x0001)
查詢登錄機碼值的必要專案。
KEY_READ(0x20019)
結合STANDARD_RIGHTS_READ、KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS和KEY_NOTIFY值。
KEY_SET_VALUE (0x0002)
建立、刪除或設定登錄值的必要專案。
KEY_WOW64_32KEY(0x0200)
指出64位 Windows 上的應用程式應該在32位登錄檢視上運作。 32 位 Windows 會忽略此旗標。 如需詳細資訊,請參閱 存取替代登錄檢視
這個旗標必須使用 OR 運算子與這個資料表中的其他旗標結合,才能查詢或存取登錄值。
Windows 2000: 不支援此旗標。
KEY_WOW64_64KEY (0x0100)
指出64位 Windows 上的應用程式應該在64位登錄檢視上運作。 32 位 Windows 會忽略此旗標。 如需詳細資訊,請參閱 存取替代登錄檢視
這個旗標必須使用 OR 運算子與這個資料表中的其他旗標結合,才能查詢或存取登錄值。
Windows 2000: 不支援此旗標。
KEY_WRITE (0x20006)
結合STANDARD_RIGHTS_WRITE、KEY_SET_VALUE和KEY_CREATE_SUB_KEY訪問許可權。

當您呼叫 RegOpenKeyEx 函式時,系統會根據密鑰的安全性描述元檢查所要求的訪問許可權。 如果使用者沒有登錄機碼的正確存取權,則開啟作業會失敗。 如果系統管理員需要存取密鑰,解決方案是啟用SE_TAKE_OWNERSHIP_NAME許可權,並使用WRITE_OWNER存取開啟登錄機碼。 如需詳細資訊,請參閱 啟用和停用權限

如果您想要讀取或寫入金鑰的系統存取控制清單(SACL),您可以要求登錄機碼ACCESS_SYSTEM_SECURITY訪問許可權。 如需詳細資訊,請參閱 Access-Control 清單 (ACL)SACL 存取權

若要檢視金鑰的目前訪問許可權,包括預先定義的金鑰,請使用註冊表編輯器 (Regedt32.exe)。 瀏覽至所需的索引鍵之後,請移至 [編輯] 選單,然後選取 [許可權]