Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 



Sign in to follow this  
harkaz

Windows 7 Resetbase backport

Recommended Posts

IMPORTANT NOTICE: Rebase will not be available for purchase after June 30, 2016.

However, a private arrangement regarding pricing/support/scope of license may be possible even after this date for those who really need a copy of the program.

Support for existing users will end as stated in the documentation.

Rebase 1.1 is ready (20 March 2016).

 

Rebase stands for Resetbase. Its name is inspired from the /Resetbase argument of the DISM (Deployment Image Servicing and Management tool) command in Windows 8.1 and later. This argument, when parsed to the DISM command‐line tool, will deeply clean up the Windows Component Store, saving lots of Megabytes. The purpose of Rebase is to bring this functionality back to Windows 7.

 

Rebase cleans all inactive versions of almost every component in the component store and saves a lot of disk space. Windows Component Store (aka winsxs) is the single place that contains all versions of operating system files organized in groups called component families.
Rebase tool will scan each active component family and remove any unused file versions from that folder.

 

Rebase is not available for free. It costs 10 USD for personal use. Price is higher, but negotiable, for commercial use. Payment methods: Bitcoin or Paypal (you have to contact me first).

If you are interested, you can mail me at har.kaz94@gmail.com to discuss payment details.

 

Features of rebase:

  • You cannot remove any previously installed updates and service packs after running rebase. This does not affect installation and removal of future updates. All updates are still visible (but non-removable) in Control Panel.
  • Works online and offline
  • Keeps only the active and base versions of every component in the component store. Runtime components which require multiple versions to be present (e.g CRT, ATL) are not affected.
  • Properly removes components so that both Windows File protection and System Update readiness tool are satisfied.
  • Optionally compresses base versions of components to minimize disk footprint. The same method is used by dism /resetbase in Windows 8.1 and later to compress the Component Store.

Documentation and EULA for Version 1.1 available at: https://drive.google.com/open?id=0B7k-l_4omFECX3pPejN1TU40LTQ

 

You must read and accept the EULA before purchasing a license to use this software. Carefully read the documentation before using the software.

 

Release Trailer (created for the old Version 1.0):

 

Win7 Pro x86 winsxs reduced from: 6.77 GB to 5.29 GB without the extreme option, 4.40 GB with the extreme option

 

 

Edited by harkaz

Share this post


Link to post
Share on other sites

I have just found one free tool called Dism++ that claims to clean the winsxs folder as well. So I tested it and I have to comment on it:

 

After performing a /resetbase command on my computer I asked this tool to scan winsxs for elements that can be removed.

 

I took a look at what is staged for removal:

 

C:\Windows\winsxs\amd64_Adobe-Flash-For-Windows_31bf3856ad364e35_10.0.10586.0_none_b8257c5f13e6c6fa\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_none_99b61f5e8371c1d4\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_none_08e3747fa83e48bc\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251\
C:\Windows\winsxs\amd64_Microsoft-OneCore-TetheringService_31bf3856ad364e35_10.0.10586.0_none_1a35b417915337a4\
C:\Windows\winsxs\amd64_Microsoft-System-User-Service_31bf3856ad364e35_10.0.10586.0_none_17dde1eb1d53e210\
C:\Windows\winsxs\amd64_Microsoft-Windows-Audio-AudioCore_31bf3856ad364e35_10.0.10586.0_none_03255c7f8ef6f30b\
C:\Windows\winsxs\amd64_Microsoft-Windows-Branding-Base-Core_31bf3856ad364e35_10.0.10586.0_none_cef6ae5dc08d9b14\
C:\Windows\winsxs\amd64_Microsoft-Windows-DeviceCensus_31bf3856ad364e35_10.0.10586.0_none_3bf807e2a4ddfeac\
C:\Windows\winsxs\amd64_Microsoft-Windows-DirectComposition_31bf3856ad364e35_10.0.10586.0_none_29fa3a13ec1a5796\
C:\Windows\winsxs\amd64_Microsoft-Windows-DirectUI_31bf3856ad364e35_10.0.10586.0_none_437b8c0598ed32a4\
C:\Windows\winsxs\amd64_Microsoft-Windows-GDI_31bf3856ad364e35_10.0.10586.0_none_3658b0d104dd907d\
C:\Windows\winsxs\amd64_Microsoft-Windows-ieframe_31bf3856ad364e35_11.0.10586.0_none_25197fd0c3501a51\
C:\Windows\winsxs\amd64_Microsoft-Windows-IE-HTMLRendering_31bf3856ad364e35_11.0.10586.0_none_d3ba25cd375a8c24\
C:\Windows\winsxs\amd64_Microsoft-Windows-IE-RuntimeUtilities_31bf3856ad364e35_11.0.10586.0_none_081abd8aa1b5414b\
C:\Windows\winsxs\amd64_Microsoft-Windows-IE-RuntimeUtilities_31bf3856ad364e35_11.0.10586.3_none_081ac33ca1b538c0\
C:\Windows\winsxs\amd64_Microsoft-Windows-Internal-Bluetooth_31bf3856ad364e35_10.0.10586.0_none_022e168a51bc3ba7\
C:\Windows\winsxs\amd64_Microsoft-Windows-MediaFoundation_31bf3856ad364e35_10.0.10586.0_none_28e4c794b718ddb4\
C:\Windows\winsxs\amd64_Microsoft-Windows-MFCore_31bf3856ad364e35_10.0.10586.0_none_7d5e3e8e0188cba3\
C:\Windows\winsxs\amd64_Microsoft-Windows-MFMKVSrcSnk_31bf3856ad364e35_10.0.10586.0_none_d37618443c88c782\
C:\Windows\winsxs\amd64_Microsoft-Windows-MicrosoftEdge_31bf3856ad364e35_10.0.10586.0_none_9dbd56cc9a76ad54\
C:\Windows\winsxs\amd64_Microsoft-Windows-MicrosoftEdge_31bf3856ad364e35_10.0.10586.3_none_9dbd5c7e9a76a4c9\
C:\Windows\winsxs\amd64_Microsoft-Windows-OOBE-Machine_31bf3856ad364e35_10.0.10586.0_none_9a03e28dad88dc72\
C:\Windows\winsxs\amd64_Microsoft-Windows-OS-Kernel_31bf3856ad364e35_10.0.10586.0_none_f8b5f9f95e7a4599\
C:\Windows\winsxs\amd64_Microsoft-Windows-OS-Kernel_31bf3856ad364e35_10.0.10586.3_none_f8b5ffab5e7a3d0e\
C:\Windows\winsxs\amd64_Microsoft-Windows-Provisioning-Core_31bf3856ad364e35_10.0.10586.0_none_44549d8ad9dc8106\
C:\Windows\winsxs\amd64_Microsoft-Windows-PurchaseDialog.Core_31bf3856ad364e35_10.0.10586.0_none_bc237f8c995fa63f\
C:\Windows\winsxs\amd64_Microsoft-Windows-Scripting-JScript_31bf3856ad364e35_11.0.10586.0_none_4356fbc80c556815\
C:\Windows\winsxs\amd64_Microsoft-Windows-Security-Kerberos_31bf3856ad364e35_10.0.10586.0_none_735c75845b24c329\
C:\Windows\winsxs\amd64_Microsoft-Windows-shell32_31bf3856ad364e35_10.0.10586.0_none_f8aec336bc5320f0\
C:\Windows\winsxs\amd64_Microsoft-Windows-TDI-Over-TCPIP_31bf3856ad364e35_10.0.10586.0_none_76c360a4866cdbe8\
C:\Windows\winsxs\amd64_Microsoft-Windows-TwinUI_31bf3856ad364e35_10.0.10586.0_none_002d100963b85cd3\
C:\Windows\winsxs\amd64_Microsoft-Windows-TwinUI-AppCore_31bf3856ad364e35_10.0.10586.0_none_1e4e560a052a50be\
C:\Windows\winsxs\amd64_Microsoft-Windows-Wimgapi_31bf3856ad364e35_10.0.10586.0_none_15813ac2bf35bce7\
C:\Windows\winsxs\amd64_Microsoft-Windows-Win32k_31bf3856ad364e35_10.0.10586.0_none_4579121344ddfcf1\
C:\Windows\winsxs\amd64_Microsoft-Windows-WindowUI_31bf3856ad364e35_10.0.10586.0_none_93cfbffe8decd633\
C:\Windows\winsxs\amd64_Microsoft-Windows-Winsock-Core_31bf3856ad364e35_10.0.10586.0_none_646ddaeb08c45281\
C:\Windows\winsxs\amd64_Microsoft-Windows-WwanSvc_31bf3856ad364e35_10.0.10586.0_none_2df42f44c96db53e\
C:\Windows\winsxs\amd64_System.Data_b77a5c561934e089_10.0.10586.0_none_fc06f5c44bedccd8\
C:\Windows\winsxs\wow64_Adobe-Flash-For-Windows_31bf3856ad364e35_10.0.10586.0_none_c27a26b1484788f5\
C:\Windows\winsxs\wow64_Microsoft-Windows-Audio-AudioCore_31bf3856ad364e35_10.0.10586.0_none_0d7a06d1c357b506\
C:\Windows\winsxs\wow64_Microsoft-Windows-DirectComposition_31bf3856ad364e35_10.0.10586.0_none_344ee466207b1991\
C:\Windows\winsxs\wow64_Microsoft-Windows-DirectUI_31bf3856ad364e35_10.0.10586.0_none_4dd03657cd4df49f\
C:\Windows\winsxs\wow64_Microsoft-Windows-GDI_31bf3856ad364e35_10.0.10586.0_none_40ad5b23393e5278\
C:\Windows\winsxs\wow64_Microsoft-Windows-ieframe_31bf3856ad364e35_11.0.10586.0_none_2f6e2a22f7b0dc4c\
C:\Windows\winsxs\wow64_Microsoft-Windows-IE-HTMLRendering_31bf3856ad364e35_11.0.10586.0_none_de0ed01f6bbb4e1f\
C:\Windows\winsxs\wow64_Microsoft-Windows-Internal-Bluetooth_31bf3856ad364e35_10.0.10586.0_none_0c82c0dc861cfda2\
C:\Windows\winsxs\wow64_Microsoft-Windows-MediaFoundation_31bf3856ad364e35_10.0.10586.0_none_333971e6eb799faf\
C:\Windows\winsxs\wow64_Microsoft-Windows-MFCore_31bf3856ad364e35_10.0.10586.0_none_87b2e8e035e98d9e\
C:\Windows\winsxs\wow64_Microsoft-Windows-MFMKVSrcSnk_31bf3856ad364e35_10.0.10586.0_none_ddcac29670e9897d\
C:\Windows\winsxs\wow64_Microsoft-Windows-Scripting-JScript_31bf3856ad364e35_11.0.10586.0_none_4daba61a40b62a10\
C:\Windows\winsxs\wow64_Microsoft-Windows-Security-Kerberos_31bf3856ad364e35_10.0.10586.0_none_7db11fd68f858524\
C:\Windows\winsxs\wow64_Microsoft-Windows-shell32_31bf3856ad364e35_10.0.10586.0_none_03036d88f0b3e2eb\
C:\Windows\winsxs\wow64_Microsoft-Windows-TwinUI_31bf3856ad364e35_10.0.10586.0_none_0a81ba5b98191ece\
C:\Windows\winsxs\wow64_Microsoft-Windows-TwinUI-AppCore_31bf3856ad364e35_10.0.10586.0_none_28a3005c398b12b9\
C:\Windows\winsxs\wow64_Microsoft-Windows-Wimgapi_31bf3856ad364e35_10.0.10586.0_none_1fd5e514f3967ee2\
C:\Windows\winsxs\wow64_Microsoft-Windows-WindowUI_31bf3856ad364e35_10.0.10586.0_none_9e246a50c24d982e\
C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\
C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2\
C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\
C:\Windows\winsxs\x86_Microsoft-Windows-IE-RuntimeUtilities_31bf3856ad364e35_11.0.10586.0_none_abfc2206e957d015\
C:\Windows\winsxs\x86_Microsoft-Windows-IE-RuntimeUtilities_31bf3856ad364e35_11.0.10586.3_none_abfc27b8e957c78a\
C:\Windows\winsxs\x86_System.Data_b77a5c561934e089_10.0.10586.0_none_43b42c9b6069f5de\

C:\Windows\Winsxs\backup\
C:\Windows\Winsxs\Temp\ (DO NOT REMOVE IF PENDING OPERATIONS ARE PRESENT)

 

If I run this tool (I didn't) I would destroy servicability of my image in the long run.

First of all, an less important mistake:

 

C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none_750b37ff97f4f68b\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_none_99b61f5e8371c1d4\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_none_08e3747fa83e48bc\
C:\Windows\winsxs\amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251\

C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none_bcb86ed6ac711f91\
C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2\
C:\Windows\winsxs\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\

 

are all removed, which terribly wrong. There are apps that depend on these multiple CRT versions. I have even found code that checks for the presence of these versions.

 

The BACKUP folder is also removed. Let's be clear about it: you shoudn't remove this folder if you want your system to be reliable under every possible scenario. This folder contains important backups of the current versions of component manifests. We simply don't touch this, it is automatically cleaned up.

 

Another more important error: The program deletes base versions of installed files. How can you service the system when an update needs these files to apply the deltas? Probably you should ask the developers.

 

The only improvement you can make over resetbase in windows 8.1+ is to PROPERLY remove (files+registry) files versions that have been superseded, but they neither base versions or active ones (I added bold to the list above to indicate what should be removed).

 

This would save exactly 72 MB in my case.

 

So I have rejected another winsxs cleanup tool, and unless someone finds a good alternative for Windows 7 I will proceed with my tool.

Share this post


Link to post
Share on other sites

pretty much any duplicate file finder

big bonus gets those who can mark folders and not just files for deletion

 

you can go heavy way by any fast search program, but then you need to watch out by DATE and BUILD number

also the whole Backup folder is to be removed

 

but as you noticed you don't spare too much space from SxS folder alone, 100 MB somewhat

while Backup folder might vary from 500 MB to more

 

in fact the only real clean SxS I ever saw done correctly was eXperience guy who made "Tiny7"

but hell one has to know what exactly to remove as most files are linked to .cat (catalog) files and manifests

all in all its bul*****

Edited by vinifera

Share this post


Link to post
Share on other sites
  • Never delete the folders in winsxs without the appropriate changes in registry. Doing so will create inconsistencies in the component store. So a simple file/folder cleanup is not enough. Let me present the features of my method:

1. File and registry cleanup, keeps active and base versions.

2. Does not touch runtimes.

3. Compresses base versions

4. Checksur and sfc are happy.

Share this post


Link to post
Share on other sites

I've already found the registry entries. I have started coding the program because it seems there is no free alternative that's good enough.

Share this post


Link to post
Share on other sites

Well, not exactly the same. The price will be rather low (I think most people could afford a price tag of $5 - $10). It's the first time I try to sell an application. It's more like an experiment to see how many will be interested and how easy it is to make profit. There is another tool for update cleanup that seems to be reliable (ntLite), but it's more expensive than this.

 

I hope that the the special features implemented and the low price tag will make the tool attractive.

 

 

Share this post


Link to post
Share on other sites

if you gonna sell it

then you better make it clean without any screwup

 

- and this is big responsibility, as you can't sell something and put label "I am not responsible for damages caused by ....."

Share this post


Link to post
Share on other sites

I will test various scenarios before distributing the tool.

 

Some examples include:

 

  • Basic testing: Windows Update, SFC, CHECKSUR, installation/uninstallation of future updates.
  • IE9, IE10 / WMF 3.0, WMF 4.0: multiple versions have been installed before using rebase.
  • Windows Update Cleanup hotfix compatibility with rebase tool
  • Scenario: Language pack installation after running rebase tool.
  • Scenario: Removal of Windows components after running rebase tool.
  • Scenario: Cleanup of LDR-only system (only LDR branches of updates have been installed).

This will enable me to prepare the documentation: what's supported, what's not supported and what must not be done.

 

Support of the program is not life-time. I will keep supporting it for a limited time, at the moment I estimate this will be 1 year. Of course, if serious bugs are discovered (I hope not) support period will be extended.

 

I recommend trying the tool first in a virtualized environment, preferably with a generic "golden" deployment image.

Edited by harkaz

Share this post


Link to post
Share on other sites

more tests required

 

can you install new updates offline

can you install IE 9 , 10, 11

can you uninstall updates installed

Share this post


Link to post
Share on other sites

also try with .net reinstall

3.0, 3.5, and above after cleaning

not sure but I think they dump some crap into SxS too

Share this post


Link to post
Share on other sites

First phase of coding is complete. Preliminary (pre-alpha) testing has started.

 

Add to beta testing phase (TODO-list):

 

Test SP1 installation after running tool on Windows 7 RTM

Share this post


Link to post
Share on other sites

One has to remember that SxS is a cure for DLL-HELL. 

 

DLL Hell arises because Microsoft could not keep a contract.  In essence, if you release something like VBRUN100.DLL as a library for VBASIC apps, then any version of VBRUN100 is meant to keep the same published APIs.  That's the whole point of it.  People write proggies to run expecting VBRUN100 to run.

 

You can, of course end up with the maze of MFC30, where the source code was released for the DLLs, and the individual programmers fixed the code and recompiled DLL files. 

 

THREED.VXD is yet another multi-version thing that had to be in Windows directories, but there were just too many of them.

 

The cure for DLL hell was to create a 'virtually in windows' structure, where the individual assembly directory pretends to be in the windows directory for the process that invokes it.  This is SxS.  Of course, you get programs where refreshes are recompiled in different versions of the same thing, so the implementation of SxS has just made the problem worse.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×