使用 32 位安装程序删除 64 位注册表项

dee*_*rma 1 windows cmd batch-file

我有安装程序(InstallanyWhere 2013),它具有执行批处理文件的功能。我使用 32 位 JRE 创建了安装程序。

我有两个位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Lock 配置工具(32 位注册表位置

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Lock 配置工具(64 位注册表位置

批处理文件代码:

 cd\
cd c:\windows\system32
    reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ProjectName" /f
Run Code Online (Sandbox Code Playgroud)

当上面的命令执行时,它指向 32 位注册表而不是 64 位注册表。我知道“HKEY_LOCAL_MACHINE\SOFTWARE”转换为 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node 的原因,所以它指向 32 位注册表。

我的问题是如何通过命令提示符使用 32 位安装程序(内部使用批处理文件)删除 64 位注册表。命令提示符是否提供指向 64 位注册表的任何功能?

Ale*_*lex 5

这个问题困扰了我们一段时间。您需要使用 /reg:64 参数。来源

例子:

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ProjectName" /f /reg:64
Run Code Online (Sandbox Code Playgroud)