404
+ +Page not found
+ + +Page not found
+ + ++ +
+ +MSMG Toolkit is a free and open-source UI for DISM operations, which lets you integrate packages, manage features, and more. If you are coming from this utility to DISMTools, here are some changes:
+MSMG Toolkit is a terminal user interface (TUI) front-end with menus that you can operate by pressing a keyboard button. This is still intuitive, but not as much as a graphical user interface (GUI) front-end; which DISMTools and other UIs are.
++ +
+ +With MSMG Toolkit, you have to copy the files from a Windows Setup disc to the ISO
folder of the Toolkit launch directory and specify a Windows image to customize. With DISMTools, however, you don't have to. You only have to copy the Windows image you want from the sources
directory of the Windows Setup disc to any location, create a project, and mount the image to it.
If you've loaded a Windows image into MSMG Toolkit and closed it, the program will unmount it. If you force the closure of the program and launch it again, it will remove EVERY file from the Windows image, making it invalid and unrepairable. This can be done because the Toolkit is launched as TrustedInstaller
by default. You don't need to worry about that with DISMTools. After mounting an image to a project, it will stay there, even if you close the program; until you want to unmount it. Also, the program will leave the mounted images alone when starting up, apart from reloading their servicing sessions if the images need a remount.
With MSMG Toolkit, you can only manage Windows images. However, with DISMTools, you can manage Windows images and (active) installations.
+ +In 2007, Microsoft introduced Windows Vista, which would make lots of changes to the way it would be deployed to systems. The Windows Imaging format (WIM for short) made installation and management faster and easier, since WIM files would contain an entire Windows installation; as opposed to the old method of copying files from installation media.
+With Windows Vista, Microsoft also introduced the Automated Installation Kit (AIK), which contains the deployment tools necessary for that operating system. Tools, such as ImageX (deploys images), Package Manager (deploys packages), IntlCfg (configures regional settings) or more; were included with this kit. However, Microsoft wanted to create a solution that would streamline the deployment process.
+Their answer was the Deployment Image Servicing and Management (DISM) tool, which does every action performed by the aforementioned utilities in a single command-line program. DISM was released alongside Windows 7, and has been improved since; with the addition of the API and PowerShell cmdlets and more.
+Nowadays, if you want to manage Windows images, DISM is one tool to master.
+A couple of DISM graphical user interfaces have been developed to simplify tasks with DISM. The most well-known tool is NTLite, which allows you to integrate packages, features and updates; and allows for unattended installations.
+Open-source alternatives are also available, such as:
+ +And, since you're browsing this site, DISMTools is another new alternative. If you want to try it out, or you're moving your workflow to this program, follow the "Coming from..." links in the Getting started section.
+If you don't know anything about Windows servicing, or come from other servicing tools, click on a section below to know what's different in this utility:
+If you want to know about something else, keep on reading.
+After installation has completed, you may run the program. The following steps are recommended to be done in order to get started
+With the program up and running, you'll begin by creating a project. Use the first link in the main screen, or go to File -> New project...
+You'll see the following screen, in which you need to provide a name and a location.
++ +
+ +After providing data on both fields, click OK. The project will be created and you'll be at the project screen.
++ +
+ +To load this project later, go to "Open an existing project..." and specify the project location.
+NOTE: in the future, a Recents list will be implemented
+The first thing you need to do after creating a project is to load an image to it. There are 2 ways to do this:
+To mount a Windows image, either click the "Mount image..." button, or click the link in the left panel. You'll see this screen:
++ +
+ +Specify the source image file you want to mount and the path you want to mount the image to. You can also configure more settings from this dialog, if you wish. Follow the image mount guide for more information.
+INFO: the easiest way of getting a Windows image is by extracting the sources\install.wim
file from Windows installation media. This can be easily done by mounting the ISO in the File Explorer or by using 3rd party tools, like 7-Zip.
Once you're done, click OK and wait for the image to be mounted. Finally, you have finished!
+Since DISMTools 0.2, the program lets you load a mount directory and use it in your project if you've already mounted a Windows image to it.
+To do this, switch to the "Image" tab on the left and click the link on the bottom. Next, specify the mount directory and click OK. That's it!
++ +
+ +To look for available mounted images, use the mounted image manager.
+NOTE: since version 0.3.2, the aforementioned link will open a popup mounted image picker, instead of a folder browser, that makes this process easier. Simply select a mounted image from the list and click OK:
++ +
+ +When creating a project and/or managing Windows images, consider these best practices:
+Store your project on a location whose length is not greater than the MAX_PATH
path length limitation (260 characters)
D:\
or E:\Projects\
If you plan on servicing images from a Windows Preinstallation Environment (WinPE), consider these requirements while planning your strategy:
+wpeutil
command reference for more information+ +
+ +With DISMTools you can add provisioned AppX packages using an intuitive UI. This action can be accessed by clicking Commands > App packages > Add provisioned app package...
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +❌ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
NOTE: if you are adding provisioned AppX packages to an online installation, you may need to enable sideloading of applications. Otherwise, you may get error code 0xc1570113
. More information can be found here. You may also need to properly register the application to the operating system for it to fully work, a guide for which is explained later in this page.
This action is supported on DISMTools 0.2 and newer
+.appx
, .msix
, .appxbundle
or .msixbundle
format, to the AppX package list. This can be done by using the buttons on the bottom of the dialog, or by dropping them from an elevated application.DISMTools 0.3.2 expands the AppX addition capabilities by supporting App Installer files. Simply specify an .appinstaller
file or drop it in the package addition list view, and let the program deal with it.
You can learn more about App Installer files here.
+NOTE: specifying a region requires DISM for Windows 10 and/or a Windows 10 or later image.
+Q: Where can I download app packages?
+A: You can make use of the Microsoft Store Generation Project and the web version of the Microsoft Store. Follow these steps:
++ +
+ ++ +
+ +If your browser complains about the safety of the files, confirm you want to download them.
+Q: I've installed an application on an online installation using this method, but the application doesn't work. Why?
+A: This may occur because the application is not fully registered. To do this, you need to make use of the registry and PowerShell:
+HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications
and grab the name of the application you want to registerGet-ItemPropertyValue -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\*<PackageName>*\' -Name "Path" | Add-AppxPackage -DisableDevelopmentMode -Register
+
+(where *<PackageName>*
is the name of the package you want to register)
%SYSTEMDRIVE%
being in the Path
value, replace it with the drive you've booted to, like this:(Get-ItemPropertyValue -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\*<PackageName>*\' -Name "Path").Replace('%SYSTEMDRIVE%', 'C:').Trim() | Add-AppxPackage -DisableDevelopmentMode -Register
+
+(obviously, replace "C:" with your boot drive)
+The application should be fully registered now. Do note that the application will still not work if you are logged into the built-in Administrator account. In that case, you need to create a new user.
+With Windows 8, Microsoft introduced a new kind of applications, Metro-style apps, that work with the operating system's new interface and design guidelines. These apps are packed in the AppX format, and can be deployed with DISM or with the PowerShell cmdlets provided by the Appx
module.
DISMTools 0.2 introduced AppX package servicing, which allows you to add and remove these applications to and/or from Windows images and/or online installations.
+NOTE: this information is based on how applications are packed in the MSIX format, but this also applies to AppX packages. An overview of the MSIX packaging format can be accessed here. However, this information focuses on more technical things about these packages
+This is the overall structure of an AppX package:
++ +
Source: Microsoft
+ + +However, the placement of some files varies depending on the format of the application:
+.appx
and .msix
packages contain the manifest on the root of the package, as AppxManifest.xml
+ +
+ +.appxbundle
and .msixbundle
packages store the manifest as AppxBundleManifest.xml
, under the AppxMetadata
directory+ +
+ +We are interested in the manifest file because it provides information about the application: its name, its publisher info, its version and, most importantly, its dependencies.
+NOTE: if you've ever stumbled upon an .eappx
or .emsix
package, these cannot be opened or deployed through DISM, and need to be deployed using the Add-AppxPackage
cmdlet
Let's look at a manifest file. This is the manifest file of Rayman Jungle Run:
++ +
+ +If you can't read the selected text, here it is in code view:
+<Identity Name="UbisoftEntertainment.RaymanJungleRun" Publisher="CN=C6D89DF1-FB66-4AAD-9100-AD9BE1186BE1" Version="1.2.0.88" ProcessorArchitecture="x86" />
+
+This is the information you'll see when adding AppX packages with DISMTools:
++ +
+ +The aforementioned line of XML code can be located on line 3 of the manifest, or on line 10 if a comment begins on line 3.
+Now, how can DISMTools detect the store logo asset? By using the manifest file. Shortly after the XML code mentioned, a <Properties>
tag begins, which contains information about the package display name (or how it will be shown on the start menu), the display name of the publisher, and the location of the store logo asset. Based on the last property, DISMTools goes through the AppX package and extracts the store logo asset, if it can. Otherwise, it will show a generic icon.
+ +
+ +The location of the store logo asset also varies depending on the format of the application. In .appxbundle
and .msixbundle
packages, it is stored in another AppX package inside its parent package, in which the store logo asset can be extracted from the same location.
With the store logo asset on hand, DISMTools copies it to a store logo asset cache, so that it doesn't extract the asset again if it exists in the cache.
+At some point you may run into this type of package and wonder what it is. App Installer files are XML files that declare the download URL for the main package (which is usually a bundle file). Let's look at them:
+INFO: you can view the structure of these files in any text editor, like Notepad
+What we're interested in is the <MainBundle>
section, which defines the package name, publisher, version, and the main package download URL. Here is an example:
<MainBundle Name="Microsoft.WinDbg" Version="1.2306.12001.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" Uri="https://windbg.download.prss.microsoft.com/dbazure/prod/1-2306-12001-0/windbg.msixbundle" />
+
+The Uri
property is what matters. DISMTools versions from 0.3.2 onwards read these files, detect a URL, and perform a file download.
+ +
+ +You can view the reference of App Installer files here.
+This is what you can do with AppX packages in DISMTools:
+ + ++ +
+ +With DISMTools you can remove provisioned AppX packages by using a checked list. This action can be accessed by clicking Commands > App packages > Remove provisioning for app package...
+This action will keep affected applications from being registered to new users, but they will still be registered to existing users.
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +❌ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
NOTE: if you are removing AppX packages from a Windows Server Core installation, the Desktop Experience feature needs to be installed. Do not remove the Desktop Experience feature before removing the desired AppX packages.
+This action is supported on DISMTools 0.2 and newer
+Simply specify the applications you want to remove provisioning for, and then click OK.
++ +
+ ++ +
+ +To fully remove an application, you need to use PowerShell:
+Get-AppxPackage -Name <pkgName> | Remove-AppxPackage
(where <pkgName>
is the name of the desired AppX package to remove)Q: How does the program determine whether an application is registered to a user?
+A: The program determines the registration status of an application by detecting the amount of .pckgdep
files in the <mountPath>\ProgramData\Microsoft\Windows\AppRepository\Packages\<pkgName>
folder (where <mountPath>
is the mount directory of a Windows image or the local disk of an active installation, and <pkgName>
being the name of the application package). You can't access the AppRepository
folder in Windows Explorer, but you can access its subdirectories by using 3rd party tools.
When accessing this directory, you'll see .pckgdep
files whose names begin with S-1-...
. This is an SID, or a user account identifier. You can view more information about SIDs here, or detect if you have been assigned a given SID by opening a command prompt window and typing wmic useraccount get name,sid
.
+ +
+ +With DISMTools you can add capabilities, or Features on Demand (FoDs), to a Windows image or installation. Capabilities are features ready to be added at any time. More on capabilities here.
+This action can be accessed by clicking Commands > Capabilities > Add capability...
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +❌ | +
Windows 8/Server 2012 | +❌ | +
Windows 8.1/Server 2012 R2 | +❌ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.3 and newer
+You need to specify the capabilities you want to add to your Windows image or installation, and specify some settings in order to get the result you want.
+With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image.
+Every task can be accessed from the "Commands" menu.
++ +
+ +You also have access to the most essential tasks in the center of the screen.
++ +
+ +Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information.
+Image management
+Package management
+Feature management
+AppX package management
+Capability management
+Driver management
++ +
+ +With DISMTools you can remove capabilities, or Features on Demand (FoDs), from a Windows image or installation. This action can be accessed by clicking Commands > Capabilities > Remove capability...
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +❌ | +
Windows 8/Server 2012 | +❌ | +
Windows 8.1/Server 2012 R2 | +❌ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.3 and newer
+You need to specify the capabilities you want to remove from your Windows image or installation.
++ +
+ +With DISMTools you can add third-party drivers to a Windows image. This action can be accessed by clicking Commands > Drivers > Add driver...
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +✔ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.3 and newer
+NOTE: this action is not supported on online installations
+You need to specify driver packages and/or folders to add to your Windows image by adding or dropping them to the driver files list. Folders get automatically added to the driver folders list, which allows the program to scan the folders you want recursively for driver packages.
+You may also need to specify some settings in order to get the result you want.
+With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image.
+Every task can be accessed from the "Commands" menu.
++ +
+ +You also have access to the most essential tasks in the center of the screen.
++ +
+ +Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information.
+Image management
+Package management
+Feature management
+AppX package management
+Capability management
+Driver management
++ +
+ +With DISMTools you can remove third-party drivers from a Windows image. This action can be accessed by clicking Commands > Drivers > Remove driver...
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +✔ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.3 and newer
+NOTE: this action is not supported on online installations
+You need to specify driver packages and/or folders to remove from your Windows image.
+There are 4 view modes available:
+We recommend against removing boot-critical drivers and inbox drivers, as they may make the image unbootable. That's why the program won't show these drivers by default, unless you mark the Detect all drivers background process setting.
++ +
+ +With DISMTools you can disable features of an image to remove optional components to a Windows installation, or to cancel the addition of optional components previously not installed. This action can be accessed by clicking Commands > OS packages > Disable feature..., or by clicking the "Disable feature..." button.
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +✔ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.1.1 and newer
+You need to specify the features you want to enable on your Windows image or installation, and specify settings in order to get the result you want.
++ +
+ +NOTE: if you're disabling features from an online installation, you may need to restart your system for the changes to take effect
++ +
+ +With DISMTools you can enable features of an image to add optional components to a Windows installation. This action can be accessed by clicking Commands > OS packages > Enable feature..., or by clicking the "Enable feature..." button.
+This action is supported on the following platforms:
+Platform | +Supported? | +
---|---|
Windows 7/Server 2008 R2 | +✔ | +
Windows 8/Server 2012 | +✔ | +
Windows 8.1/Server 2012 R2 | +✔ | +
Windows 10/Server 2016/2019/2022 | +✔ | +
Windows 11/Server vNext | +✔ | +
This action is supported on DISMTools 0.1.1 and newer
+You need to specify the features you want to enable on your Windows image or installation, and specify settings in order to get the result you want.
++ +
+ +With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image.
+Every task can be accessed from the "Commands" menu.
++ +
+ +You also have access to the most essential tasks in the center of the screen.
++ +
+ +Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information.
+Image management
+Package management
+Feature management
+AppX package management
+Capability management
+Driver management
+With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image.
+Every task can be accessed from the "Commands" menu.
++ +
+ +You also have access to the most essential tasks in the center of the screen.
++ +
+ +Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information.
+Image management
+Package management
+Feature management
+AppX package management
+Capability management
+Driver management
++ +
+ +With DISMTools you can get the information about the installed AppX packages in Windows images and installations of every type.
+This action is supported on DISMTools 0.3.1 and newer.
+NOTE: this action is not supported on Windows images and installations earlier than Windows 8 or Server 2012
+Do note that the amount of AppX packages that you see in the list depends on the configuration of background processes.
+DISMTools tries to detect the main store logo asset when you select an AppX package. Do note that the program makes guesses as to what is the main asset, and those guesses may be incorrect.
+If you are given an incorrect store logo asset, please report an issue here. Do note that you need a GitHub account to report feedback.
++ +
+ +With DISMTools you can get the information about the capabilities present in Windows images and installations of every type.
+This action is supported on DISMTools 0.3.1 and newer.
+NOTE: this action is not supported on Windows images and installations earlier than Windows 10 or Server 2016
+In DISMTools versions from the 0.3 series that support this action (0.3.1-0.3.3) have an issue where the download and install sizes could overflow, returning negative values. This issue is caused by the managed DISM API library.
+DISMTools 0.4 is not affected by this issue due to it having an updated version of that library that fixes this issue.
++ +
+ +With DISMTools you can get the information about installed drivers, or about driver files that you want to add or are interested in learning more about. This supports Windows images and installations of every type.
+This action is supported on DISMTools 0.3.1 and newer.
+When launching the dialog for the first time in the execution of the program, you'll see the main menu (shown in the screenshot above). From here you can access one of the 2 information modes by clicking its respective link:
++ +
++ +
+You can go back to the main screen by clicking the link on the top left
+NOTE: the amount of installed drivers that are listed is determined by the background process settings. By default, drivers that come with the Windows distribution aren't listed, to decrease the time background processes take when getting driver information. The program will give you the option to configure these processes to detect all drivers.
+A driver package (file) may target multiple devices. Thus, knowing more about a specific target may take a long time and be more complicated.
+When that is the case, DISMTools lets you easily go through all targets thanks to the controls on the top.
++ +
+ +The controls do the following:
++ +
+ +You can save this information to a report file by clicking the Save button on the bottom right and specifying a target file. Do note that this option is disabled in the driver file view if no drivers were specified.
+Also note that, if you have background processes configured to not detect all drivers, you will be asked if you want to save the information of all of them.
++ +
+ +With DISMTools you can get the information about the features present in Windows images and installations of every type.
+This action is supported on DISMTools 0.3.1 and newer.
++ +
+ +With DISMTools you can get the information of the currently mounted image, or any Windows image file you want, to view the details of an index.
+This action is supported on DISMTools 0.3.1 and later.
+You can also save this information by clicking the Save button on the bottom right and specifying the target path.
++ +
+ +Like their names suggest, information dialogs let you easily get specific information from a Windows image or installation with powerful and easy to use interfaces.
+The overall action is supported on DISMTools 0.3.1 and newer.
+The following dialogs let you get specific information from a Windows image or installation:
+Dialog | +Purpose | +Remarks | +
---|---|---|
Image information | +Lets you get the information of any image file | +- |
+
Package information | +Lets you get the information of either installed packages or packages you want to add | +
|
+
Feature information | +Lets you get the information of all features present in a Windows image | +- |
+
AppX package information | +Lets you get the information of installed AppX packages | +
|
+
Capability information | +Lets you get the information of all capabilities present in a Windows image | +
|
+
Driver information | +Lets you get the information of either installed drivers or the driver packages you want to add | +
|
+
Windows PE information | +Lets you get the information of the target path and the scratch space amount on a Windows PE image | +
|
+
DISMTools 0.3.3 and later let you save this information to a file.
++ +
+ +This action will generate an image information report, which you can view at any time.
+DISMTools 0.4 expands this functionality by showing a preview of the information report after completing the process. It also lets you print it from said preview window.
++ +
+ ++ +
+ ++ +
+ +With DISMTools you can get the information about installed packages, or about package files that you want to add or are interested in learning more about. This supports Windows images and installations of every type.
+This action is supported on DISMTools 0.3.1 and newer.
+NOTE: capability information can't be gathered on Windows versions earlier than Windows 10 or Server 2016
+When launching the dialog for the first time in the execution of the program, you'll see the main menu (shown in the screenshot above). From here you can access one of the 2 information modes by clicking its respective link:
++ +
++ +
+You can go back to the main screen by clicking the link on the top left
+You can save this information to a report file by clicking the Save button on the bottom right and specifying a target file. Do note that this option is disabled in the package file view if no packages were specified.
++ +
+ +With DISMTools you can get the configuration of your Windows PE images, such as the target path and the scratch space. You can also set them up to your needs.
+This action is supported on DISMTools 0.3.2 and newer.
++ +
+ +The mounted image manager allows you to manage your mounted images easily. You can perform the following tasks with this tool:
+DISMTools 0.3 introduces a command-line version of this tool. For more information, check its dedicated page.
+You can unmount a Windows image saving changes, discarding them, or with more settings; the last of which will open the image unmount dialog:
++ +
+ +For read-only mounted images, clicking this button will directly unmount the image discarding changes. For more information, go to the image unmount page.
+Depending on the state of the mounted image, the program will let you do one task or the other.
+If you want to make changes to a read-only mounted image, you need to enable write permissions. This process will unmount the image and then mount it with write permissions. Do note that the image must be present in its location and must not be in read-only media in order for this process to complete successfully.
+This will open the mount directory in File Explorer, allowing you to browse the files of the Windows image. This is similar to an active installation, so don't delete any files you don't know what they do.
+If the mounted image contains more than 1 index, you are able to remove volume images from it easily. Specify the indexes to remove, and click OK. For more information, refer to the volume image removal page.
+If you've opened a project with no images loaded, you can easily load the mounted image you want to the project.
+ +The free and open-source GUI for DISM operations.
++ +
+ +NOTE: this documentation is not complete and is subject to change. Check out the entries on the side panel for more information.
+ +' + escapeHtml(summary) +'
' + noResultsText + '
'); + } +} + +function doSearch () { + var query = document.getElementById('mkdocs-search-query').value; + if (query.length > min_search_length) { + if (!window.Worker) { + displayResults(search(query)); + } else { + searchWorker.postMessage({query: query}); + } + } else { + // Clear results for short queries + displayResults([]); + } +} + +function initSearch () { + var search_input = document.getElementById('mkdocs-search-query'); + if (search_input) { + search_input.addEventListener("keyup", doSearch); + } + var term = getSearchTermFromLocation(); + if (term) { + search_input.value = term; + doSearch(); + } +} + +function onWorkerMessage (e) { + if (e.data.allowSearch) { + initSearch(); + } else if (e.data.results) { + var results = e.data.results; + displayResults(results); + } else if (e.data.config) { + min_search_length = e.data.config.min_search_length-1; + } +} + +if (!window.Worker) { + console.log('Web Worker API not supported'); + // load index in main thread + $.getScript(joinUrl(base_url, "search/worker.js")).done(function () { + console.log('Loaded worker'); + init(); + window.postMessage = function (msg) { + onWorkerMessage({data: msg}); + }; + }).fail(function (jqxhr, settings, exception) { + console.error('Could not load worker.js'); + }); +} else { + // Wrap search in a web worker + var searchWorker = new Worker(joinUrl(base_url, "search/worker.js")); + searchWorker.postMessage({init: true}); + searchWorker.onmessage = onWorkerMessage; +} diff --git a/docs/search/search_index.json b/docs/search/search_index.json new file mode 100644 index 00000000..d1e37c85 --- /dev/null +++ b/docs/search/search_index.json @@ -0,0 +1 @@ +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Welcome to DISMTools The free and open-source GUI for DISM operations. NOTE: this documentation is not complete and is subject to change. Check out the entries on the side panel for more information.","title":"Home"},{"location":"#welcome-to-dismtools","text":"The free and open-source GUI for DISM operations. NOTE: this documentation is not complete and is subject to change. Check out the entries on the side panel for more information.","title":"Welcome to DISMTools"},{"location":"getting_started/msmg_migration/","text":"Coming from MSMG Toolkit MSMG Toolkit is a free and open-source UI for DISM operations, which lets you integrate packages, manage features, and more. If you are coming from this utility to DISMTools, here are some changes: User interfaces MSMG Toolkit is a terminal user interface (TUI) front-end with menus that you can operate by pressing a keyboard button. This is still intuitive, but not as much as a graphical user interface (GUI) front-end; which DISMTools and other UIs are. Operations With MSMG Toolkit, you have to copy the files from a Windows Setup disc to the ISO folder of the Toolkit launch directory and specify a Windows image to customize. With DISMTools, however, you don't have to. You only have to copy the Windows image you want from the sources directory of the Windows Setup disc to any location, create a project, and mount the image to it. If you've loaded a Windows image into MSMG Toolkit and closed it, the program will unmount it. If you force the closure of the program and launch it again, it will remove EVERY file from the Windows image, making it invalid and unrepairable . This can be done because the Toolkit is launched as TrustedInstaller by default. You don't need to worry about that with DISMTools. After mounting an image to a project, it will stay there, even if you close the program; until you want to unmount it. Also, the program will leave the mounted images alone when starting up, apart from reloading their servicing sessions if the images need a remount. With MSMG Toolkit, you can only manage Windows images. However, with DISMTools, you can manage Windows images and (active) installations.","title":"Coming from MSMG Toolkit"},{"location":"getting_started/msmg_migration/#coming-from-msmg-toolkit","text":"MSMG Toolkit is a free and open-source UI for DISM operations, which lets you integrate packages, manage features, and more. If you are coming from this utility to DISMTools, here are some changes:","title":"Coming from MSMG Toolkit"},{"location":"getting_started/msmg_migration/#user-interfaces","text":"MSMG Toolkit is a terminal user interface (TUI) front-end with menus that you can operate by pressing a keyboard button. This is still intuitive, but not as much as a graphical user interface (GUI) front-end; which DISMTools and other UIs are.","title":"User interfaces"},{"location":"getting_started/msmg_migration/#operations","text":"With MSMG Toolkit, you have to copy the files from a Windows Setup disc to the ISO folder of the Toolkit launch directory and specify a Windows image to customize. With DISMTools, however, you don't have to. You only have to copy the Windows image you want from the sources directory of the Windows Setup disc to any location, create a project, and mount the image to it. If you've loaded a Windows image into MSMG Toolkit and closed it, the program will unmount it. If you force the closure of the program and launch it again, it will remove EVERY file from the Windows image, making it invalid and unrepairable . This can be done because the Toolkit is launched as TrustedInstaller by default. You don't need to worry about that with DISMTools. After mounting an image to a project, it will stay there, even if you close the program; until you want to unmount it. Also, the program will leave the mounted images alone when starting up, apart from reloading their servicing sessions if the images need a remount. With MSMG Toolkit, you can only manage Windows images. However, with DISMTools, you can manage Windows images and (active) installations.","title":"Operations"},{"location":"getting_started/new_to_servicing/","text":"Getting started with Windows servicing Context In 2007, Microsoft introduced Windows Vista, which would make lots of changes to the way it would be deployed to systems. The Windows Imaging format (WIM for short) made installation and management faster and easier, since WIM files would contain an entire Windows installation; as opposed to the old method of copying files from installation media. With Windows Vista, Microsoft also introduced the Automated Installation Kit (AIK), which contains the deployment tools necessary for that operating system. Tools, such as ImageX (deploys images), Package Manager (deploys packages), IntlCfg (configures regional settings) or more; were included with this kit. However, Microsoft wanted to create a solution that would streamline the deployment process. Their answer was the Deployment Image Servicing and Management (DISM) tool, which does every action performed by the aforementioned utilities in a single command-line program. DISM was released alongside Windows 7, and has been improved since; with the addition of the API and PowerShell cmdlets and more. Nowadays, if you want to manage Windows images, DISM is one tool to master. Interfaces A couple of DISM graphical user interfaces have been developed to simplify tasks with DISM. The most well-known tool is NTLite , which allows you to integrate packages, features and updates; and allows for unattended installations. Open-source alternatives are also available, such as: MSMG Toolkit DISM GUI DISM++ And, since you're browsing this site, DISMTools is another new alternative. If you want to try it out, or you're moving your workflow to this program, follow the \"Coming from...\" links in the Getting started section. Useful resources DISM command-line help","title":"Getting started with Windows servicing"},{"location":"getting_started/new_to_servicing/#getting-started-with-windows-servicing","text":"","title":"Getting started with Windows servicing"},{"location":"getting_started/new_to_servicing/#context","text":"In 2007, Microsoft introduced Windows Vista, which would make lots of changes to the way it would be deployed to systems. The Windows Imaging format (WIM for short) made installation and management faster and easier, since WIM files would contain an entire Windows installation; as opposed to the old method of copying files from installation media. With Windows Vista, Microsoft also introduced the Automated Installation Kit (AIK), which contains the deployment tools necessary for that operating system. Tools, such as ImageX (deploys images), Package Manager (deploys packages), IntlCfg (configures regional settings) or more; were included with this kit. However, Microsoft wanted to create a solution that would streamline the deployment process. Their answer was the Deployment Image Servicing and Management (DISM) tool, which does every action performed by the aforementioned utilities in a single command-line program. DISM was released alongside Windows 7, and has been improved since; with the addition of the API and PowerShell cmdlets and more. Nowadays, if you want to manage Windows images, DISM is one tool to master.","title":"Context"},{"location":"getting_started/new_to_servicing/#interfaces","text":"A couple of DISM graphical user interfaces have been developed to simplify tasks with DISM. The most well-known tool is NTLite , which allows you to integrate packages, features and updates; and allows for unattended installations. Open-source alternatives are also available, such as: MSMG Toolkit DISM GUI DISM++ And, since you're browsing this site, DISMTools is another new alternative. If you want to try it out, or you're moving your workflow to this program, follow the \"Coming from...\" links in the Getting started section.","title":"Interfaces"},{"location":"getting_started/new_to_servicing/#useful-resources","text":"DISM command-line help","title":"Useful resources"},{"location":"getting_started/ntlite_migration/","text":"Coming from NTLite","title":"Coming from NTLite"},{"location":"getting_started/ntlite_migration/#coming-from-ntlite","text":"","title":"Coming from NTLite"},{"location":"getting_started/start/","text":"Getting started If you don't know anything about Windows servicing, or come from other servicing tools, click on a section below to know what's different in this utility: Getting started with Windows servicing I come from other tools Coming from NTLite Coming from MSMG Toolkit If you want to know about something else, keep on reading. First steps After installation has completed, you may run the program. The following steps are recommended to be done in order to get started Creating your first project With the program up and running, you'll begin by creating a project . Use the first link in the main screen, or go to File -> New project... You'll see the following screen, in which you need to provide a name and a location. After providing data on both fields, click OK. The project will be created and you'll be at the project screen. To load this project later, go to \"Open an existing project...\" and specify the project location. NOTE: in the future, a Recents list will be implemented Loading a Windows image The first thing you need to do after creating a project is to load an image to it. There are 2 ways to do this: Mounting a Windows image To mount a Windows image, either click the \"Mount image...\" button, or click the link in the left panel. You'll see this screen: Specify the source image file you want to mount and the path you want to mount the image to. You can also configure more settings from this dialog, if you wish. Follow the image mount guide for more information. INFO: the easiest way of getting a Windows image is by extracting the sources\\install.wim file from Windows installation media. This can be easily done by mounting the ISO in the File Explorer or by using 3rd party tools, like 7-Zip. Once you're done, click OK and wait for the image to be mounted. Finally, you have finished! Loading an already existing mount directory Since DISMTools 0.2, the program lets you load a mount directory and use it in your project if you've already mounted a Windows image to it. To do this, switch to the \"Image\" tab on the left and click the link on the bottom. Next, specify the mount directory and click OK. That's it! To look for available mounted images, use the mounted image manager . NOTE: since version 0.3.2, the aforementioned link will open a popup mounted image picker, instead of a folder browser, that makes this process easier. Simply select a mounted image from the list and click OK: Best practices When creating a project and/or managing Windows images, consider these best practices: Project paths Store your project on a location whose length is not greater than the MAX_PATH path length limitation (260 characters) A great place to store your project on would be at the root of your preferred drive, or in a folder 1 level deep. Such examples would be: D:\\ or E:\\Projects\\ You can disable this limitation if you're using Windows 10, version 1607 or later, by following these guides DISM operations An antivirus program may prevent you from doing an image task, so it's recommended to set an exclusion to the mount path of the image It's not recommended to mount more than 20 images at the same time, as it can cause significant performance degradation You must run this program and, at any time, DISM as an administrator, no matter what privileges you may have If you have mounted the image with write privileges enabled, it's best to commit your changes often. That way, if the image becomes corrupt, it's easier to recover it It's not recommended to store files on network shares, as it can be faster to perform most operations if the files are copied to a local disk Servicing from Windows PE If you plan on servicing images from a Windows Preinstallation Environment (WinPE), consider these requirements while planning your strategy: Booting Windows PE from a local disk: you can allocate additional memory to your Windows PE installation when booting it from a local disk, to increase performance; and you can create temporary folders to store large updates Booting Windows PE from read-only media: if you plan on booting the Windows PE installation from optical media, ensure that your computer has enough memory Add a page file to your PE installation: to improve memory management, consider creating a page file. See the wpeutil command reference for more information Specify a scratch directory: for some operations, like adding packages, it is best to create and specify a scratch directory to store temporary files on. If not specified, Windows PE creates a scratch directory of the size you specified when setting the scratch space . However, you may run out of space on your PE environment","title":"Getting started"},{"location":"getting_started/start/#getting-started","text":"If you don't know anything about Windows servicing, or come from other servicing tools, click on a section below to know what's different in this utility: Getting started with Windows servicing I come from other tools Coming from NTLite Coming from MSMG Toolkit If you want to know about something else, keep on reading.","title":"Getting started"},{"location":"getting_started/start/#first-steps","text":"After installation has completed, you may run the program. The following steps are recommended to be done in order to get started","title":"First steps"},{"location":"getting_started/start/#creating-your-first-project","text":"With the program up and running, you'll begin by creating a project . Use the first link in the main screen, or go to File -> New project... You'll see the following screen, in which you need to provide a name and a location. After providing data on both fields, click OK. The project will be created and you'll be at the project screen. To load this project later, go to \"Open an existing project...\" and specify the project location. NOTE: in the future, a Recents list will be implemented","title":"Creating your first project"},{"location":"getting_started/start/#loading-a-windows-image","text":"The first thing you need to do after creating a project is to load an image to it. There are 2 ways to do this:","title":"Loading a Windows image"},{"location":"getting_started/start/#mounting-a-windows-image","text":"To mount a Windows image, either click the \"Mount image...\" button, or click the link in the left panel. You'll see this screen: Specify the source image file you want to mount and the path you want to mount the image to. You can also configure more settings from this dialog, if you wish. Follow the image mount guide for more information. INFO: the easiest way of getting a Windows image is by extracting the sources\\install.wim file from Windows installation media. This can be easily done by mounting the ISO in the File Explorer or by using 3rd party tools, like 7-Zip. Once you're done, click OK and wait for the image to be mounted. Finally, you have finished!","title":"Mounting a Windows image"},{"location":"getting_started/start/#loading-an-already-existing-mount-directory","text":"Since DISMTools 0.2, the program lets you load a mount directory and use it in your project if you've already mounted a Windows image to it. To do this, switch to the \"Image\" tab on the left and click the link on the bottom. Next, specify the mount directory and click OK. That's it! To look for available mounted images, use the mounted image manager . NOTE: since version 0.3.2, the aforementioned link will open a popup mounted image picker, instead of a folder browser, that makes this process easier. Simply select a mounted image from the list and click OK:","title":"Loading an already existing mount directory"},{"location":"getting_started/start/#best-practices","text":"When creating a project and/or managing Windows images, consider these best practices:","title":"Best practices"},{"location":"getting_started/start/#project-paths","text":"Store your project on a location whose length is not greater than the MAX_PATH path length limitation (260 characters) A great place to store your project on would be at the root of your preferred drive, or in a folder 1 level deep. Such examples would be: D:\\ or E:\\Projects\\ You can disable this limitation if you're using Windows 10, version 1607 or later, by following these guides","title":"Project paths"},{"location":"getting_started/start/#dism-operations","text":"An antivirus program may prevent you from doing an image task, so it's recommended to set an exclusion to the mount path of the image It's not recommended to mount more than 20 images at the same time, as it can cause significant performance degradation You must run this program and, at any time, DISM as an administrator, no matter what privileges you may have If you have mounted the image with write privileges enabled, it's best to commit your changes often. That way, if the image becomes corrupt, it's easier to recover it It's not recommended to store files on network shares, as it can be faster to perform most operations if the files are copied to a local disk","title":"DISM operations"},{"location":"getting_started/start/#servicing-from-windows-pe","text":"If you plan on servicing images from a Windows Preinstallation Environment (WinPE), consider these requirements while planning your strategy: Booting Windows PE from a local disk: you can allocate additional memory to your Windows PE installation when booting it from a local disk, to increase performance; and you can create temporary folders to store large updates Booting Windows PE from read-only media: if you plan on booting the Windows PE installation from optical media, ensure that your computer has enough memory Add a page file to your PE installation: to improve memory management, consider creating a page file. See the wpeutil command reference for more information Specify a scratch directory: for some operations, like adding packages, it is best to create and specify a scratch directory to store temporary files on. If not specified, Windows PE creates a scratch directory of the size you specified when setting the scratch space . However, you may run out of space on your PE environment","title":"Servicing from Windows PE"},{"location":"img_tasks/img_tasks/","text":"Image tasks With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image. Where do I find the tasks? Every task can be accessed from the \"Commands\" menu. You also have access to the most essential tasks in the center of the screen. Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information. Available tasks Image management Applying Windows images Capturing Windows images Performing image cleanup Package management Adding packages Removing packages Feature management Enabling features Disabling features AppX package management AppX package documentation Adding AppX packages Removing AppX packages Capability management Adding capabilities Removing capabilities Driver management Adding drivers Removing drivers","title":"Overview"},{"location":"img_tasks/img_tasks/#image-tasks","text":"With DISMTools you can perform a variety of tasks, which are organized depending on what action they perform to an image.","title":"Image tasks"},{"location":"img_tasks/img_tasks/#where-do-i-find-the-tasks","text":"Every task can be accessed from the \"Commands\" menu. You also have access to the most essential tasks in the center of the screen. Do note that these options become accessible when you create a project and mount an image to it. To do those actions, follow the Getting started guide for more information.","title":"Where do I find the tasks?"},{"location":"img_tasks/img_tasks/#available-tasks","text":"Image management Applying Windows images Capturing Windows images Performing image cleanup Package management Adding packages Removing packages Feature management Enabling features Disabling features AppX package management AppX package documentation Adding AppX packages Removing AppX packages Capability management Adding capabilities Removing capabilities Driver management Adding drivers Removing drivers","title":"Available tasks"},{"location":"img_tasks/appx/add_provisionedappxpackage/","text":"Adding provisioned AppX packages With DISMTools you can add provisioned AppX packages using an intuitive UI. This action can be accessed by clicking Commands > App packages > Add provisioned app package... Target OS support This action is supported on the following platforms: Platform Supported? Windows 7/Server 2008 R2 \u274c Windows 8/Server 2012 \u2714 Windows 8.1/Server 2012 R2 \u2714 Windows 10/Server 2016/2019/2022 \u2714 Windows 11/Server vNext \u2714 NOTE: if you are adding provisioned AppX packages to an online installation, you may need to enable sideloading of applications. Otherwise, you may get error code 0xc1570113 . More information can be found here . You may also need to properly register the application to the operating system for it to fully work, a guide for which is explained later in this page. This action is supported on DISMTools 0.2 and newer Usage Add any application file you want to add to a Windows image, which can be in the .appx , .msix , .appxbundle or .msixbundle format, to the AppX package list . This can be done by using the buttons on the bottom of the dialog, or by dropping them from an elevated application. If an application contains dependencies, be sure to add these to the AppX dependency list , by using the buttons below or by dropping them from an elevated application App Installer support DISMTools 0.3.2 expands the AppX addition capabilities by supporting App Installer files. Simply specify an .appinstaller file or drop it in the package addition list view, and let the program deal with it. You can learn more about App Installer files here . Options A license file may be required for an application to be installed, which you can specify in the license file text box. Otherwise, select \"Skip license\" If you want, you can provide a custom data file If you want to provision applications in some regions, specify them, separated by a semi-colon (;); following the ISO 3166-1 Alpha 2 or Alpha 3 codes NOTE: specifying a region requires DISM for Windows 10 and/or a Windows 10 or later image. If you want, you can commit the image after adding the selected AppX packages . Questions Q: Where can I download app packages? A: You can make use of the Microsoft Store Generation Project and the web version of the Microsoft Store . Follow these steps: Load the Microsoft Apps website and search for the application you are looking for Once you've found your desired application, copy its link . It will be useful for the generation project Load the generation project website and paste the link you've copied If the server returns results, download the desired version of the AppX package and its dependencies If your browser complains about the safety of the files, confirm you want to download them. Q: I've installed an application on an online installation using this method, but the application doesn't work. Why? A: This may occur because the application is not fully registered. To do this, you need to make use of the registry and PowerShell: Open the Registry Editor, go to HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\Applications and grab the name of the application you want to register Next, open PowerShell as an administrator and type the following: Get-ItemPropertyValue -Path 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\Applications\\*