管理员权限下PowerShell为何无法获取HKLM:\Security的ACL?
HKLM\Security注册表项访问异常的原因
- 核心注册表项的特殊权限控制:HKLM\Security是Windows存储SAM数据库、本地安全策略等敏感安全数据的核心项,默认情况下即使是Administrator账户也没有直接读取权限。Regedit能正常查看是因为它启动时会主动启用
SeSecurityPrivilege特权(系统级特权,用于访问对象的安全信息),而PowerShell的Get-Acl、Get-ItemProperty默认不会触发这个特权提升。 - PowerShell cmdlet的权限上下文限制:
Get-Acl访问注册表项时,不会自动请求SeSecurityPrivilege特权,导致无法读取HKLM\Security的安全描述符,最终返回空结果;Get-ItemProperty因缺少基础读取权限,直接抛出访问拒绝提示。 - 权限机制的本质差异:Regedit通过系统级特权绕过了常规权限限制,而PowerShell cmdlet遵循更严格的默认权限上下文,不会主动提升权限访问这类敏感系统资源。
内容的提问来源于stack exchange,提问作者Sean Henry
相关产品推荐
相关产品推荐

