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 packageFailed 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)。即以管理員身份運行
  • 涉及的日志記錄:
    • SolidWorks的記錄:C:\Users\用戶名\AppData\Roaming\SOLIDWORKS\Installation Logs\SummaryIMLog_20200-XXXXXX_XXXXX.txt
    • (如后安裝過程提及的)各基礎運行庫的記錄:
      • C:\Users\用戶名\AppData\Local\Temp\dd_vcredist_amd64_XXXXXXXXXXXXXX.logdd_vcredist_x86_XXXXXXXXXXXXXX.log
      • C:\Users\用戶名\AppData\Local\Temp\dd_vsta_setup_(var.MajorVersion)_XXXXXXXXXXXXXX.log

安裝過程:

  1. .\setup.exe實際調用\sldim\sldIM.exe。由其主導安裝以下基礎運行庫、安裝包。
  2. 先安裝基礎運行庫。位於.\PreReqs\。為可執行文件(后綴.exe),可(無配置、參數)獨立運行。
  3. 再安裝子安裝包(后綴.msi,即microsoft installer)。
    1. .\swwi\data\SolidWorks.Msi、.\swwi\lang\chinese-simplified\chinese-simplified.msi等。
    2. 可運行,但可能需要傳遞參數、配置。

任意子過程失敗可能導致整個安裝過程失敗。
失敗后,SolidWorks會有故障描述,生成(如上)日志記錄。各運行庫亦可能有自己的記錄。蘿卜L發於博客園

故障分析:

調試能精准定位故障,但畢竟麻煩,建議先嘗試常規方法。
同時我覺得大多數用戶不會特別配置系統(注冊表、策略組、用戶賬戶、權限等),不論主動,或由其他軟件所設置。
故障通常源於未卸載干凈(卸載過程中斷、甚至卸載后沒及時重啟、死機等)。
不能具體問題具體分析,就先多嘗試吧。蘿卜L發於博客園

常規故障處理:

  • 對基礎運行庫故障。
  1. 按提示安裝
  2. 當已安裝,若有選項嘗試修復
  3. 若修復失敗,嘗試先卸載,后安裝;
  4. 嘗試安裝高版本覆蓋
    高版本不是指VC2019高於VC2015,而是版本號相同版本號更高
    版本號可能不體現在文件名上(VC2019、VC2015可能都叫vc_redist.exe)。
    運行時會有版本號,或者文件的屬性\詳細信息\文件版本處。
  5. 安裝/卸載/覆蓋失敗,處理見后。

注意,運行庫雖然不算系統組件,不會導致系統故障,但可能被其他軟件依賴使用,卸載后應及時安裝,且一個一個卸載嘗試。

  • 對SolidWorks子安裝包。
    雖然可以從(如上)日志記錄里、任務管理器里找到參數配置,從命令行手動調用,但難以手動進行整個安裝流程,可能僅適合分離出來便於調試。
    最終應使用setup.exe安裝。

異常故障處理:

  • 硬盤檢查。
    貌似不多余。若系統未正常關閉,可能安全描述符異常,文件、文件夾鏈接、權限異常。
    運行 chkdsk /f /r ,下次開機后掃描,持續半小時左右。
  • 策略組。
  • 運行 gpedit
  • 檢查項:
    [計算機配置|用戶配置]\管理模板\Windows 組件\Windows InstallerComputer 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

以上為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
      32位環境將%programfiles(x86)%行去掉/注釋掉。蘿卜L發於博客園

其他工具軟件:

  • 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) v56AIO
  • 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 Archive
Complete 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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM