运行“regedit”文件名“从powershell导入.reg文件

我试图通过运行registry导入registry文件。 问题是PowerShell脚本必须从32位可执行文件运行,但我想运行64位registry编辑器。 关于如何强制使用64位registry的任何想法?

如果您明确地在Windows目录中调用可执行文件,您将获得系统本地版本。 如果你不指定绝对path,你会得到WOW64版本。

这将始终打开32位:

Start-Process regedit 

这将在x64上打开64位版本,或在32位机器上运行时打开32位版本:

 Start-Process "$env:windir\regedit.exe" 

如果您只希望您的脚本以64位执行,那么您可以通过检查$env:Processor_Architecture来检测您的运行体系结构,并在不符合要求时发生错误。

注意:这是可行的,因为'regedit.exe'存储在你的Windows目录中。 如果要从32位上下文访问64位应用程序,而应用程序碰巧在System32中,则可以使用$env:windir\sysnative\<APPLICATION>$env:windir\sysnative为您提供了64位System32而不是redirect到SysWOW64

尝试在sysnative下使用reg import

 Start-Process $env:windir\sysnative\reg.exe import <.REG_FILE> 

$env:windir\sysnative为您提供了64位System32而不是32位上下文redirect到SysWOW64