技术咨询:PowerShell无法创建指定注册表项(管理员权限无报错)
分析你的PowerShell注册表创建问题
首先明确一点:你执行的这条命令New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP语法本身是完全正确的,没报错却没看到预期的注册表项,大概率是被32位/64位PowerShell的注册表重定向机制坑了。
最可能的原因:32位PowerShell的注册表重定向
如果你的系统是64位,但你不小心运行了32位版本的PowerShell(比如从C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe启动的),那么所有针对HKLM:\SOFTWARE的操作都会被系统自动重定向到HKLM:\SOFTWARE\Wow6432Node路径下。而你手动打开的注册表编辑器默认是64位的,看不到这个Wow6432Node下的子项,所以才会误以为命令没生效。
验证和解决方法
- 检查当前PowerShell的位数:执行以下命令,返回
True就是64位,False则是32位:[Environment]::Is64BitProcess - 切换到64位PowerShell:找到路径
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe,右键以管理员身份运行,再执行你的New-Item命令,应该就能在预期路径下看到创建的项了。 - 强制查看重定向后的路径:如果暂时不想切换,也可以直接查看Wow6432Node下的对应位置,确认项是否已经创建:
Get-Item -Path HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\PersonalizationCSP
额外建议
为了避免后续隐藏问题,建议给命令加上-Force和-ErrorAction Stop参数,确保如果真的有错误会直接抛出,而不是静默失败:
New-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP -Force -ErrorAction Stop
内容的提问来源于stack exchange,提问作者khornefl4kes
相关产品推荐
相关产品推荐

