You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Sandbox中Get-Acl获取注册表权限返回空,是设计问题吗?

问题分析与解决

先确认注册表项是否真实存在

在执行Get-Acl前,先运行以下命令验证目标项是否存在:

Get-Item HKLM:\SOFTWARE\WOW6432Node\MyKey

如果返回“找不到路径”的错误,说明你创建的注册表项并未成功写入Sandbox的注册表中——Sandbox是完全隔离的干净环境,所有操作仅在当前沙箱会话有效,且创建项时可能因为操作方式问题导致未生效:

  • 若你是通过32位程序/32位PowerShell创建的项,在64位PowerShell中访问WOW6432Node路径是正确的,但如果是64位环境创建32位路径的项,需要明确指定注册表重定向,比如用reg add时加/reg:32参数:
    reg add HKLM\SOFTWARE\MyKey /reg:32
    
    这样才会写入到WOW6432Node对应的位置。

检查PowerShell的运行环境

Sandbox默认启动的是64位PowerShell,但如果你误打开了32位版本(路径为C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe),访问HKLM:\SOFTWARE\WOW6432Node会被重定向到普通的HKLM:\SOFTWARE,导致找不到目标项,最终Get-Acl返回null。可以通过以下命令确认当前PowerShell的位数:

[Environment]::Is64BitProcess

返回True则为64位环境,False则为32位。

Sandbox的注册表限制(可能性极低)

Windows Sandbox的设计是提供轻量隔离环境,系统核心注册表项有保护,但自定义的HKLM:\SOFTWARE\WOW6432Node\MyKey不属于受保护范围,正常情况下完全可以创建和读取权限。除非你创建项时触发了沙箱的安全策略拦截,但这种情况通常会直接报错,而非返回null。

总结

优先排查注册表项是否真实存在、PowerShell环境位数是否匹配,这两个是最常见的操作失误点。如果确认项存在且环境正确,但问题依旧,可以尝试重启Sandbox后重新创建项再测试——沙箱偶尔会出现临时的状态异常,重启即可恢复。

内容的提问来源于stack exchange,提问作者jk Registraties

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:34:51