我试图通过运行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 。