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

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

我正在尝试通过运行 regedit 来导入注册表文件。问题是 powershell 脚本必须从 32 位可执行文件运行,但我想运行 64 位 regedit。关于如何强制使用 64 位 regedit,有什么想法吗?

答案1

如果你明确调用windows目录下的可执行文件,那么你将获得系统原生版本,如果你不指定绝对路径,那么你将获得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而不是重定向到SysWOW64

答案2

尝试reg import使用sysnative

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

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

相关内容