GithubHelp home page GithubHelp logo

cbsenum's Introduction

CBSEnum

CBSEnum is a tool to view and manage Windows Component-Based Servicing packages.

Component-Based Servicing is a technology since Windows Vista which most resembles Linux-style package managers. It builds upon WinSxS (Side by side assemblies) to allow installation, deinstallation and updating of numerous Windows components independently.

It presents a moderately componentized view into Windows and allows uninstalling parts of system which outside of Windows Embedded were previously seen as monolithic.

In Windows, this technology is hidden from general public. There's a command-line tool dism.exe to manage CBS packages, but most packages are marked as hidden even from DISM.

CBSEnum screenshot

CBSEnum is a graphical interface for DISM which presents packages in a visually simple format, allows to uninstall or mass-uninstall any. It also shows hidden packages, lets you make them visible or restore to original visibility state.

Requirements and warnings

CBSEnum must be run as administrator.

Before anything can be done with packages, you will have to take ownership of HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing registry key and all subkeys and give yourself write permissions. CBSEnum can do this for you: choose "Edit -> Take Ownership".

Before most packages can be deleted, they have to be detached from their mothership package ("Windows Home", "Windows Professional" or "Windows Enterprise"). This can be done with install_wim_tweak tool but now CBSEnum supports this too: "Edit -> Decouple all packages".

Before DISM will work with most packages, they have to be made DISM-visible. This can be done from CBSEnum by right-clicking any package and doing "Visibility -> Make visible". You can also make all packages Visible from Edit menu.

CBSEnum preserves original package visibility in the same way instal_wim_tweak does, in DefVis keys.

When uninstalling packages, exert your usual caution. Uninstalled packages cannot be installed back without their source cabs, which most people don't have. Save for reinstalling the OS, your best bet would be system repair from installation media.

Bulk removal

Starting with 0.9, CBSEnum supports bulk removal scripts. Each line is a package mask:

# Telemetry
Microsoft-OneCore-AllowTelemetry*
Microsoft-Windows-Prerelease*
Microsoft-Windows-DiagTrack*
# Microsoft-WindowsFeedback*		# Feedback is a useful app to have, but may be seen as telemetry
Microsoft-OneCore-TroubleShooting*	# Some consider this also part of telemetry.
Microsoft-Windows-TroubleShooting*
Microsoft-Windows-ContactSupport*	# Contact Microsoft support

Such scripts, listing all that you feel needs to be removed with comments about the reasons, can be tested in a virtual machine until a satisfying configuration is achieved and then deployed to the actual target.

cbsenum's People

Contributors

himselfv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cbsenum's Issues

Color coding for sub-packages of deployment packages

Original report by me.

Requested through Skype:

I would love to see is an additional color coding for the sub-packages of deployment packages (as you list them in the info tab) - many people don't understand that there are deployment packages that contain other packages and this relates to errors while using dism and so on.

make the gui interface far more accessible to screen readers

hi,
would it be possible to make the interface more accessible?
all of the menu options are accessible,
the list of packages are not accessible using nvda the free screen reader or windows narrator.
the search box is accessible but does not have a lable on it spesifieing what it is,
would also be greate if offline support could somehow be added like how install_wim_tweak works?
link to install_wim_tweak:
https://github.com/shiitake/win6x_registry_tweak
link to nvda the screen reader
https://www.nvaccess.org/

Majid

Take ownership of CBS key on request

Original report by me.

Before anything can be done with CBS packages outside DISM, ownership of CBS key and all subkeys needs to be taken (preferably assigned to Administrators group for maintanability) and permissions given to Administrators for writing.

There's no reason why this tool can't automate this. It probably has to be available as an item in Edit menu or something like that. Maybe grayed out if ownership is already taken.

Include hidden package variations for bulk commands

Original report by me.

Commands such as "Copy package names" or "Uninstall" work on visible packages. It would be very problematic otherwise - imagine you've hidden all CBS-hidden packages and right-click to uninstall "Microsoft-Windows" block where only two unneeded packages are visible. Of course you don't expect all Microsoft-Windows-* packages out there to be uninstalled.

Yet, one would expect package variations such as -WOW64- versions and RU-ru language versions to be uninstalled even if they're hidden.

An exception needs to be made for these, something like ExpandPackageVariations() on a formed list of selected packages, and only those items which are hidden should be expanded (visible items could've been selected manually. If they weren't, then user doesn't want them uninstalled).

Detach packages from mothership package on request

Original report by me.

Most system packages are attached to mothership package ("Home", "Pro", "Enterprise") and cannot be deleted like that. They have to be detached with install_wim_tweak.

No reason why CBSEnum can't do the same. Have to add a right-click function for all not yet detached packages, and common action to Edit menu ("Detach all"). Also perhaps save the package's original attachment and allow to restore it (check how install_wim_tweak does this and try to be compatible).

Support offline images

Original report by me.

Dism supports both online and offline editing. Since CBSEnum is partially based on DISM, it would be handy if it could also work on offline images.

This will probably require digging into it a bit, because CBSEnum also uses other sources of information (XMLs from the system folder; registry data).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.