使用Split-Path处理含正斜杠的注册表路径及Get-ItemProperty用法咨询
处理含正斜杠的注册表路径:替代Split-Path的正确方式
你遇到的问题核心在于PowerShell默认会把正斜杠(/)当作路径分隔符,所以用Split-Path处理HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE时,会错误地把@microsoft.com识别为父项,GENUINE识别为子项/属性,但实际上@microsoft.com/GENUINE是一个完整的注册表项名称。
针对这种带特殊字符的注册表路径,不需要再用Split-Path拆分,直接用Get-ItemProperty的-LiteralPath参数就能解决问题——这个参数会原样解析路径字符串,不会把正斜杠当作分隔符。
具体操作示例
如果要获取@microsoft.com/GENUINE这个注册表项的所有属性,直接运行:
Get-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE'
如果只需要获取该项下的某个特定属性(比如PluginPath),可以加上-Name参数:
Get-ItemProperty -LiteralPath 'HKLM:\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE' -Name 'PluginPath'
为什么之前的Split-Path方法失效?
你之前用Split-Path拆分HKEY_LOCAL_MACHINE\SOFTWARE\Key\Property这类路径时,Property是项的属性名,和项之间用路径分隔符(反斜杠)分隔,所以拆分逻辑成立。但在当前场景中,@microsoft.com/GENUINE是项名称本身包含正斜杠,并非项+属性的结构,所以拆分逻辑不再适用。
额外提示:确认注册表项存在
如果不确定路径是否正确,可以先用Get-Item验证项是否存在(同样用-LiteralPath):
Get-Item -LiteralPath 'HKLM:\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE'
内容的提问来源于stack exchange,提问作者Gordon
相关产品推荐
相关产品推荐

