因为要使用MS Access ,下载了安装包后,总是报错:不能安装 64 位版本的 0ffice 2010,因为您当前已经安装了 32 位 Office 产品。但在下面并没有列出具体的Office产品。控制面板的程序里也没有与Office相关的产品。使用windows installer clean up也没 有用。而且office 2016及以后版本,都是一点即装的360一样的全家桶。想通过它来安装再卸载来清理也不行。
问了DeepSeek,各种尝试无法解决,后面网上有人说,找到注册表上
HKEY_CLASSES_ROOT\Installer\Products\,
在该项目下的所有0000X开头的比如“00002,0004,0006” 删除即可(其实里面啥内容都没有)。
删除后果然不再报有32位的产品了。
但是,
安装、卸载Office 2010\2016都出现无注册表访问权限。在注册表里找到那个项目,发现其下的以0002、0004、0006这样开头的项目无法访问。逐一取得权限、继续权限。搞了十几次,卸载完成,而安装时,搞了十几次居然没完没了。工作量太大了。Deepseek建议使用powershell,还下载了subinacl.exe。用以下批处理来设置。
subinacl /subkeyreg HKEY_LOCAL_MACHINE /setowner=administrators
subinacl /subkeyreg HKEY_CURRENT_USER /setowner=administrators
subinacl /subkeyreg HKEY_CLASSES_ROOT /setowner=administrators
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
结果,仍然是继续报注册表无权限。看来上面的设置无效。
突然想到为什么要一个一个地设置权限呢,直接在 HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\上设置不就行了吗?
试一下:Administrators 组 取得注册表项的所有权,并替换子容器的所有者,设置完全控制权限,用继承的权限替换所有子对象的权限。
再看看,果然其下的所有项都可以打开。安装也不再报错。