Overview
OSDBuilder is a PowerShell module to help you perform Offline Servicing to a Windows Operating System Image. By using an Offline method of configuring an Operating System, it can then be imported in MDT or SCCM and used like any other OS Deployment. This includes being able to use in an Upgrade Task Sequence, which you cannot do with a Captured Image.
The main difference between OSDBuilder and other scripted methods for Servicing a Windows Image Offline is that OSDBuilder creates an answer file called a Task (think Task Sequence). Since the Task has all the information it needs to update the Windows Image, there is no interaction necessary, and as long as the content (updates) are updated regularly, the Task can be repeated as needed.
Since the configuration is also saved in a Task, it is possible to select multiple tasks to run, and they will execute one right after another. This makes performing a monthly update take a few minutes to kick off. After a few hours, everything will be complete!

OSDBuilder Design

Most people are visual, so to help you understand how OSDBuilder will work, here is the OSDBuilder Lifecycle. So let's talk about how this works. The BLACK background one is the newer version, and the WHITE background one is kept for historical purposes (OSMedia Tasks don't exist anymore)

Import-OSMedia

Before working with an Operating System, you must first Import it into OSDBuilder. This will generate a full inventory of the Operating System so you can later make custom OSBuilds.

Update-OSMedia

The second step is to Update the Imported Operating System. You should perform this step after you Import the Operating System and after every Patch Tuesday. This will perform the following actions
    Media
      Expand Setup Update
    WinPE (WinPE.wim, WinRE.wim, Setup.wim)
      Apply Servicing Stack
      Apply Cumulative Update
      Apply Dynamic Component Updates
    OS
      Apply Servicing Stack
      Apply Cumulative Update
      Apply Dynamic Component Updates
      Apply Adobe Security Updates

New-OSBuildTask

If you want to customize the Operating System by removing Appx Packages or enable NetFX3, then you need to first create an OSBuild Task. The following options can be customized:
    WinPE (WinPE.wim, WinRE.wim, Setup.wim)
      Add ADK Packages
      Add MS DaRT
      Add Drivers
      Add ExtraFiles
      Execute custom PowerShell scripts
    OS
      Enable NetFX3
      Remove Appx Provisioned Packages
      Remove Windows Packages
      Remove Windows Capabilities
      Enable Windows Optional Features
      Disable Windows Optional Features
      Apply Features on Demand
      Apply Language Packs
      Apply Language Interface Packs
      Apply Language Features on Demand
      Apply Start Layout
      Apply Unattend.xml
      Add Drivers
      Add ExtraFiles
      Add Packages
      Execute custom PowerShell scripts
      Set International Settings

New-OSBuild

After the OSBuild Task is created, you can then create your OSBuild

New-PEBuildTask

Just like a you can customize your Operating System, you can also customize WinPE

New-PEBuild

After the PEBuild Task is created, you can create your PEBuild

New-MediaISO

You can create an ISO of any OSMedia, OSBuild, or PEBuild

New-MediaUSB

You can create bootable USB of any OSMedia, OSBuild, or PEBuild

The Cycle

This is where your process repeats. When Microsoft releases a new round of updates, use Get-OSDBuilderUpdates to download the updates you need, and remove the ones you don't from. This step is completely optional as OSDBuilder can automatically download the updates as needed.
Use Update-OSMedia to get all your imported Operating Systems up to date. You can update all of them at the same time as this will take a while to process, typically 30 minutes per Operating System.
Once all the OSMedia is up to date, use New-OSBuild to regenerate all your customizations.

OSDBuilder PowerShell Module

To keep things easy, OSDBuilder is a PowerShell module and integrates well into PowerShell ISE

References

Last modified 2yr ago