# Windows Command Line: DISM

I think it's time I took a moment to go over the DISM tool (Deployment Image Servicing and Management), the superhero tool for managing Windows images! Whether you're a tech enthusiast, a new technician, or simply a curious soul, knowledge of the DISM tool will elevate your game and make you formidable in the computer repair field. In this post, let's take a journey through the exciting world of DISM, covering both online and offline image management, and even show you how to create your very own custom images. So, buckle up and get ready to unleash the power of DISM!

**Understanding DISM:**

Before diving into the details, let's understand what DISM is and why it's essential for managing Windows images. DISM is a command-line tool that allows you to service and manipulate Windows images offline or online. It plays a vital role in maintaining system integrity, applying updates, adding or removing components, and more. With DISM, you have complete control over the customization and maintenance of your Windows installations.

**Online Image Management:**

Online image management refers to manipulating a Windows image while the operating system is running. DISM offers a range of operations to help you manage and modify the image. Here are a few examples:

Enabling or Disabling Windows Features:

```powershell
DISM /online /Enable-Feature /FeatureName:FeatureName
```

For example, to enable the Hyper-V Management Tools feature, you would use:

```powershell
DISM /online /Enable-Feature /FeatureName:Hyper-V-Tools
```

Applying Updates:

```powershell
DISM /online /add-package /packagepath:C:\Updates\UpdatePackage.cab
```

For example, to apply an update package located at `C:\Updates\UpdatePackage.cab`, you would use:

```powershell
DISM /online /add-package /packagepath:C:\Updates\UpdatePackage.cab
```

Checking Image Health:

```powershell
DISM /online /cleanup-image /checkhealth
```

**Offline Image Management:**

Offline image management involves working with a Windows image while it's not running, typically from a separate installation or recovery environment. DISM enables you to mount and modify offline images effortlessly. Here's a step-by-step process with code examples:

Step 1: Mounting an Offline Image:

```powershell
DISM /mount-wim /wimfile:C:\Path\to\Image.wim /index:1 /mountdir:C:\Mount\Path
```

Step 2: Modifying the Mounted Image:

Adding Drivers:

```powershell
DISM /image:C:\Mount\Path /add-driver /driver:C:\Path\to\Driver.inf
```

Removing Components:

```powershell
DISM /image:C:\Mount\Path /remove-package /packagename:PackageName
```

Step 3: Unmounting the Modified Image:

```powershell
DISM /unmount-wim /mountdir:C:\Mount\Path /commit
```

**Creating Custom Images:**

Creating custom images is a valuable technique for system deployment and restoration. DISM simplifies the process of capturing and creating custom images. Here's an overview:

Capturing an Existing Installation:

```powershell
DISM /capture-image /imagefile:C:\Path\to\CustomImage.wim /capturedir:C:\Path\to\Installation /name:"Custom Image"
```

Creating a Reference Image:

```powershell
DISM /capture-image /imagefile:C:\Path\to\ReferenceImage.wim /capturedir:C:\Path\to\ReferenceInstallation /name:"Reference Image"
```

Generalizing the Image for Deployment:

```powershell
DISM /generalize /image:C:\Path\to\CustomImage.wim
```

**Advanced Techniques and Pro Tips:**

Now that you've mastered the basics, let's explore some advanced techniques to enhance your DISM skills:

Servicing an Image:

```powershell
DISM /online /cleanup-image /restorehealth
```

Applying Updates to an Offline Image:

```powershell
DISM /image:C:\Path\to\CustomImage.wim /add-package /packagepath:C:\Updates\UpdatePackage.cab
```

### DISM Flags:

Here is a comprehensive list of DISM flags you can use:

* `/Enable-Feature`: Enable or disable a Windows feature.
    
* `/Add-Package`: Add packages to the Windows image.
    
* `/CheckHealth`: Check the health of the Windows image.
    
* `/Mount-Wim`: Mount a Windows image.
    
* `/Add-Driver`: Add drivers to the Windows image.
    
* `/Remove-Package`: Remove packages from the Windows image.
    
* `/Unmount-Wim`: Unmount a Windows image.
    
* `/Capture-Image`: Capture an image of an existing installation.
    
* `/Generalize`: Prepare the Windows image for deployment.
    
* `/Cleanup-Image`: Clean up the Windows image.
    
* `/RestoreHealth`: Restore the health of the Windows image.
    

### Feature List:

A Short List of Commonly Used Features:

1. Hyper-V-Tools
    
2. NetFx3
    
3. TelnetClient
    
4. RSAT
    
5. VirtualMachinePlatform
    
6. IIS-WebServer
    
7. IIS-ASPNET45
    
8. SMB1Protocol
    
9. PowerShell-ISE
    
10. WoW64-Support
    
11. Containers
    
12. Containers-Tools-Optional
    
13. Microsoft-Hyper-V-All
    
14. Microsoft-Hyper-V-Services
    
15. Microsoft-Hyper-V-Management-Clients
    
16. Microsoft-Hyper-V-Management-PowerShell
    
17. Microsoft-Hyper-V-Hypervisor
    

Conclusion:

Congratulations! You've now unlocked the power of DISM and become a Windows image management maestro. Armed with DISM's capabilities, you can confidently tackle image-related tasks, whether online or offline, and even create your own custom images. Remember, with great power comes great responsibility, so handle your images with care and *always keep backups*. Now go forth, unleash your DISM prowess, and conquer the world of Windows image management! And hey, if you happen to come across any pesky Windows images in distress, remember, you're now equipped with the DISM tool—the superhero cape of the computer repair world. But hey, I'm not your boss, so feel free to conquer the world at your own pace and in your own style. Happy DISM-ing!
