SolidWorks VC VSTA 安装 权限 注册表 策略组 相关问题,已解决
Feel free for technical discus.
背景
安装SolidWorks失败,卸载不干净,也删除清除不了,不想重装,边搜索解决方案边整理。截止2021-1-14,搜索了众多中英文条目。
虽然是针对自己的问题,最终自己调试解决,但感觉覆盖了很多相关问题。萝卜L发于博客园
本文范围
- 以SolidWorks (SW) 2020为主,应该涵盖2019、2018、2016、2015。
- 以64位(64-bit)为主,应该适用于32位(32-bit)。
- 涉及的组件:
- Microsoft Visual Studio Tools for Applications 2015 (VSTA)。安装程序包名称vsta_setup.exe。
- Visual C++ Redistributable Packages for Visual Studio 2013(VC Redistributable),安装程序包文件名称VCRedist15\vcredist_x86.exe(vc_redist.x86),vcredist_x64.exe(vc_redist.x64)。
- VCRedist15,VCRedist12,VCRedist11是一类,VCRedist10,VCRedist9是一类。
- vcRuntimeMinimum/Additional。
- 涉及的问题/故障:
- 安装管理程序无法在此注册表位置生成注册表项: HKLM\Software\Wow6432Node\SolidWorks
- 0x80070005 - 拒绝访问
- 0x80070005 Failed to create registration key
- 0x80070659 系统策略禁止这个安装。请与管理员联系。,系统管理员设置了系统策略,禁止进行此安装。(This installation is forbidden by system policy. Contact you system administratior)
- Error 0x80070659: Failed to install MSI package,Failed to execute MSI package.,Failed to configure per-machine MSI package.,Error 0x80070659: Failed to execute MSI package.
- 安装管理程序遇到严重错误
- Could not open key: UNKNOWN\Components\xx\yy. Verify that you have sufficient access to that key, or contact your support personnel.
- 涉及的系统配置:
- 注册表(Registry)
- 策略组(GPO: Group Policy Object)。(实质为注册表的图形界面)
- 权限(Permissions、Rights)。关于用户、用户组,分文件夹,注册表访问权限。
- 用户账户控制设置(UAC)。即以管理员身份运行。
- 注册表(Registry)
- 涉及的日志记录:
- SolidWorks的记录:C:\Users\用户名\AppData\Roaming\SOLIDWORKS\Installation Logs\SummaryIMLog_20200-XXXXXX_XXXXX.txt
- (如后安装过程提及的)各基础运行库的记录:
- C:\Users\用户名\AppData\Local\Temp\dd_vcredist_amd64_XXXXXXXXXXXXXX.log、dd_vcredist_x86_XXXXXXXXXXXXXX.log
- C:\Users\用户名\AppData\Local\Temp\dd_vsta_setup_(var.MajorVersion)_XXXXXXXXXXXXXX.log
- C:\Users\用户名\AppData\Local\Temp\dd_vcredist_amd64_XXXXXXXXXXXXXX.log、dd_vcredist_x86_XXXXXXXXXXXXXX.log
安装过程:
- .\setup.exe实际调用\sldim\sldIM.exe。由其主导安装以下基础运行库、安装包。
- 先安装基础运行库。位于.\PreReqs\。为可执行文件(后缀.exe),可(无配置、参数)独立运行。
- 再安装子安装包(后缀.msi,即microsoft installer)。
- 如.\swwi\data\SolidWorks.Msi、.\swwi\lang\chinese-simplified\chinese-simplified.msi等。
- 可运行,但可能需要传递参数、配置。
任意子过程失败可能导致整个安装过程失败。
失败后,SolidWorks会有故障描述,生成(如上)日志记录。各运行库亦可能有自己的记录。萝卜L发于博客园
故障分析:
调试能精准定位故障,但毕竟麻烦,建议先尝试常规方法。
同时我觉得大多数用户不会特别配置系统(注册表、策略组、用户账户、权限等),不论主动,或由其他软件所设置。
故障通常源于未卸载干净(卸载过程中断、甚至卸载后没及时重启、死机等)。
不能具体问题具体分析,就先多尝试吧。萝卜L发于博客园
常规故障处理:
- 对基础运行库故障。
- 按提示安装;
- 当已安装,若有选项尝试修复;
- 若修复失败,尝试先卸载,后安装;
- 尝试安装高版本覆盖。
高版本不是指VC2019高于VC2015,而是主版本号相同,子版本号更高。
版本号可能不体现在文件名上(VC2019、VC2015可能都叫vc_redist.exe)。
运行时会有版本号,或者文件的属性\详细信息\文件版本处。 - 安装/卸载/覆盖失败,处理见后。
注意,运行库虽然不算系统组件,不会导致系统故障,但可能被其他软件依赖使用,卸载后应及时安装,且一个一个卸载尝试。
- 对SolidWorks子安装包。
虽然可以从(如上)日志记录里、任务管理器里找到参数配置,从命令行手动调用,但难以手动进行整个安装流程,可能仅适合分离出来便于调试。
最终应使用setup.exe安装。
异常故障处理:
- 硬盘检查。
貌似不多余。若系统未正常关闭,可能安全描述符异常,文件、文件夹链接、权限异常。
运行 chkdsk /f /r ,下次开机后扫描,持续半小时左右。 - 策略组。
- 运行 gpedit。
- 检查项:
[计算机配置|用户配置]\管理模板\Windows 组件\Windows Installer)(Computer Configuration -> Administrative Templates -> Windows Components -> Windows Installer)下的配置状态。
默认均为未配置即可。
- 批量检查:
gpresult /h /f gpreport.html导出当前配置报告。查看是否有修改过。 - 重置:
- 方法1:运行 secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose。
- 方法2:删除目录 %WinDir%\System32\GroupPolicyUsers 、 %WinDir%\System32\GroupPolicy 。(可命令行 RD /S /Q <path> 执行)
更改后可 gpupdate /force 更新。
- 注册表
- 运行 regedit 。
- 检查项:
- HKEY_CURRENT_USER\SOFTWARE
- \eDrawings
- (官方建议)如果安装了PDM,谨慎操作,仅可删除IM & \SolidWorks SOLIDWORKS [版本]、. **
- \SOLIDWORKS 20XX
- \SolidWorks BackOffice
- \SRAC
- \Microsoft\VSTAHOST
- \Microsoft\VSTAHostConfig
- HKEY_LOCAL_MACHINE\SOFTWARE **Wow6432Node适用于64位环境**
- \eDrawings
- \SolidWorks the IM & SOLIDWORKS [version] subkeys. **
- \SolidWorks Corporation
- \SRAC
- (官方建议)如果安装了PDM,谨慎操作,仅可删除IM & \SolidWorks SOLIDWORKS [版本]、. **
- \Wow6432Node\SolidWorks Corporation
- \Wow6432Node\Microsoft\VSTAHOST
- \Wow6432Node\Microsoft\VSTAHostConfig
- HKEY_CURRENT_USER\SOFTWARE
以上为SolidWorks在注册表中的位置。
建议先导出,后更改(删除或者改名使失效)。
-
- 更改项的权限:
适用于(上述)报错:安装管理程序无法在此注册表位置生成注册表项: HKLM\Software\Wow6432Node\SolidWorks
在上一级路径处右键菜单、任务栏菜单编辑中有权限。
当前用户(用户名)或其所在组有完全控制权限即可。 - 重置注册表权限继承:
下载SubInACL.exe,安装。运行如下脚本(保存为.bat):
cd /d "%programfiles(x86)%\Windows Resource Kits\Tools" 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
32位环境将第一行%programfiles(x86)%中的%86%去掉。
时间可能半小时左右,随后建议手动重启电脑,可能导致关联软件重置(如默认浏览器)。
- 更改项的权限:
- 用户账户权限(UAC)
(Win10)开始菜单直接输入(而非运行) UAC 。 - 用户组
确保运行安装有管理权限即可。
运行 netplwiz 可设置。 - Windows 安全中心
(Win10)开始菜单直接输入(而非运行) Windows 安全中心 。
可能误删映像文件(.iso)。可以尝试临时关闭实时保护、篡改保护。
其他杀毒软件建议都临时关了。 - 开启日志记录
运行 Msiexec.exe /i 安装包文件名.mis /log 记录名.txt - 文件、文件夹权限
- 方式1:程序 takeown , icacls 。
如 "cmd.exe" /c takeown /f "C:\XXX" /r /d y && icacls "C:\XXX" /grant administrators:F /t 。 - 方式2:(上面提及的)程序 SubInACL 。运行如下脚本(保存为.bat):
cd /d "%programfiles(x86)%\Windows Resource Kits\Tools" subinacl /subdirectories "C:\Program Files"\*.* /grant=administrators=f /grant=system=f subinacl /subdirectories %programfiles(x86)%*.* /grant=administrators=f /grant=system=f
- 方式1:程序 takeown , icacls 。
其他工具软件:
- Windows Installer CleanUp Utility(msicuu2.exe)
- Microsoft Program Install and Uninstall.diagcab(MPIU)MicrosoftProgram_Install_and_Uninstall.meta.diagcab
- Visual C++ Runtime Installer (All-In-One) v56(AIO)
- Msiexec.exe
- Process Monitor
要还不行建议分析日志记录,以及监控整个安装过程进行分析。
萝卜L发于博客园
后续:
- 为什么没人写个自动清理注册表、文件夹的脚本呢,相关条目数量不多样;
- 分析日志,监控安装过程还是有迹可循,费点时..
相关参考:(我的流水记录,无序,不分重要程度...到文末)萝卜L发于博客园
安装软件时无法将注册值写入注册表怎么解决
无法创建值,写入注册表时出错 - Microsoft Community
更改注册表项所有者权限,获取“完全控制”权限
如何修复Edge浏览器无法使用的错误:无法创建内容处理,错误代码:0x8027025b。
错误5:WINDOWS 10中拒绝访问软件安装错误[完整指南] - 固定 - 2021
安装SOLIDWORKS 2017提示:前一个安装中的windows重启操作正在等待处理 ,怎么解_百度知道
如何恢复注册表系统默认的权限,问题具体详见
注册表的权限弄乱了,如何恢复到默认值?
设置访问权限的神器-------subinacl
SubInACL: A complete solution to configure security permission - TechNet Articles - United States (English) - TechNet Wiki
Microsoft Visual C++ 组件维护与卸载_0x80070005拒绝访问 - 知乎
如何删除并重新安装 Microsoft Visual C++ 运行库 | 搜索 | Autodesk Knowledge Network
Visual C++ Runtime Installer (All-In-One) v56
How to Fix Error Code 0x80070005 | expert-advice.org
C++ 2010 x86 系统策略禁止这个安装。请与系统管理员联系。 - Microsoft Community
How to troubleshoot Windows Installer errors
issue 32545: Unable to install Python 3.7.0a4 on Windows 10 - Error 0x80070643: Failed to install MSI package. - Python tracker
wix - Unable to Install : Error 0x80070643: Failed to install MSI package - Stack Overflow (replied)
MsiSystemRebootPending property - Win32 apps | Microsoft Docs
How to fix "Installation is forbidden by system policy" error - Microsoft Community
Enable MSI logging, and then read the .msi verbose log files
Elevated msiexec.exe uninstall from cmd failing
winapi - Windows 7 SDK installation failure - Stack Overflow
How to Turn off Windows Installer to Block MSI Package
注册表项HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer, DisableBrowse
Getting Error: This installation is forbidden by system policy. Contact your system administrator. - Advanced Installer (replied)
Error: 'Installation failed - MainEngineThread is returning 1625' when installing antivirus
process monitor Failed to execute MSI package("process monitor" "Failed to execute MSI package" - Google 搜索,"process monitor" "0x80070659" - Google 搜索)
Horizon Client or Agent Installation rolls back on Windows 10 with MMR installed as an option. (58543)
Process Monitor - Windows Sysinternals | Microsoft Docs
Unable to Install SQL Server Management Studio 2017, Fatal Error (0x80070643)
installation - SQL 17.5 SSMS Install Fails - Server Fault
Microsoft ASP.NET and Web Tools 2015 - Visual Studio 2015 Installation problem
10:15:39Defrag Tools: #3 - Process Monitor | Defrag Tools | Channel 9
windows - Registry virtualization failing - Stack Overflow
Q227181: How to Manage Windows Installer Local Policies | KnowledgeBase ArchiveComplete SOLIDWORKS Clean Uninstall Guide | GoEngineer
注册表HKEY_CLASSES_ROOT\Installer\Products
solidworks安装问题:安装管理程序无法在此注册表位置生成注册表项: HKLM\Software\Wow6432Node\SolidWorks_机械师卡尔的博客-CSDN博客
安装管理程序在创建该注册表项时遇到错误 - 百度文库
SolidWorks常见安装失败及处理方法
注册表项HKLM\SOFTWARE\Wow6432Node\Microsoft\VSTAHost|VSTAHostConfig
SolidWorks安装时出现各类错误的解决办法汇总-SOLIDWORKS...
Windows之权限讲解 - milantgh - 博客园
Win10安装visual c++2015 报错0x80070659 解决方法 -Win7系统之家
使用Windows命令行reg控制注册表键值 - QingSword.COM
CMD下读取/修改/删除注册表项的方法_DOS/BAT_脚本之家
[教學] 命令行下操作Windows註冊表(導入、導出)的技巧 @ 三文魚壽司電腦技術帖分享 :: 痞客邦 ::
solidworks安装显示可执行文件安装失败是怎么回事? - 知乎 (回复)
未合并的更新:
VBA 7.1,安装提示A newer version。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?