# OSDeploy Home

OSDeploy is a PowerShell-driven platform for building WinPE boot images and deploying Windows 11 from the cloud. Three focused modules cover every phase of the deployment lifecycle — from creating a bootable image on Windows 11 to deploying an OS in WinPE.

{% hint style="info" %}
**OSDeploy and OSDCloud are releasing new modules — register for preview updates.**\
Sign up at [recastsoftware.com/osd-preview](https://www.recastsoftware.com/osd-preview/) to be notified when new builds drop and to participate in the preview program.
{% endhint %}

{% embed url="<https://www.recastsoftware.com/?utm_source=osdeploy&utm_medium=ad&utm_campaign=web>" %}
Sponsored by Recast Software
{% endembed %}

***

## Module Ecosystem

Three modules, three execution contexts — each one owns a distinct phase of the deployment pipeline.

| Module       | What it does                                 | Where it runs        | Status                |
| ------------ | -------------------------------------------- | -------------------- | --------------------- |
| **OSDeploy** | Builds and customizes WinPE boot images      | Windows 11 (full OS) | Preview               |
| **OSDCloud** | Deploys Windows 11 from cloud-hosted content | WinPE                | Current / Recommended |
| **OSD**      | Legacy OSDCloud v1 deployment                | WinPE                | Maintained (legacy)   |

***

## Get Started

The following workflow produces a fully customized WinPE boot image ready for OSDCloud deployment.

{% stepper %}
{% step %}

#### Install Prerequisites

Install all required and optional tools — Windows ADK 25H2 or 26H1, MDT, PowerShell 7, Git, VS Code, and Hyper-V — in a single command. Run in audit mode first (default), then add `-Force` to install.

```powershell
Install-OSDeploySoftware
```

{% endstep %}

{% step %}

#### Update WinPE Drivers

Pull in the latest WinPE driver packs for Dell, HP, Intel Ethernet, and Intel Wi-Fi. Drivers are cached locally under `%ProgramData%\OSDeployCore`.

```powershell
Update-OSDeployCoreDrivers
```

{% endstep %}

{% step %}

#### Import a Windows OS Image

Mount a Windows 11 ISO or installation media and import the OS image into OSDeployCore. The imported image is used as the WinRE source for your boot image build.

```powershell
Import-OSDeployCoreOS
```

{% endstep %}

{% step %}

#### Build the Boot Image

Build a fully customized WinPE boot image: ADK optional components, OSDCloud module, WinPE apps (AzCopy, 7-Zip, curl, Sysinternals), wallpaper, console settings, and an exportable ISO — all in one command.

```powershell
Build-OSDeployBoot
```

{% endstep %}

{% step %}

#### Deploy Windows in WinPE

Boot the device from your ISO or USB drive. Once in WinPE, OSDCloud downloads Windows 11 and OEM driver packs directly from the cloud — no server required.

```powershell
Deploy-OSDCloud
```

{% endstep %}
{% endstepper %}

***

## Features

### Prerequisite Setup

`Install-OSDeploySoftware` audits and installs every tool the OSDeploy workflow depends on:

* **Windows ADK** 25H2 and 26H1 (with WinPE add-on)
* **Microsoft Deployment Toolkit** (MDT 6.3.8456)
* **PowerShell 7.6**, Git for Windows, Visual Studio Code, Hyper-V
* Runs in **audit mode by default** — add `-Force` to act
* Supports **amd64 and arm64** hosts

### WinPE Driver Library

`Update-OSDeployCoreDrivers` and `Get-OSDeployCoreDrivers` manage a local library of WinPE-compatible driver packs:

* **Dell** and **HP** WinPE driver packs
* **Intel Ethernet** and **Intel Wi-Fi** drivers
* **VMware** guest tools (arm64 supported)
* Full batch mode — all matching packages are downloaded automatically

### Boot Image Building

`Build-OSDeployBoot` orchestrates a multi-phase WinPE image build:

* Mounts a WinRE or ADK WinPE source image
* Injects **22 ADK optional components** (PowerShell, .NET, WMI, DISM, Secure Boot cmdlets, and more)
* Adds **WinPE apps**: AzCopy (amd64 + arm64), 7-Zip 26.00, curl, BgInfo, Process Monitor
* Copies the **OSDCloud** and **OSD** PowerShell modules into the image
* Applies **console settings**, **custom wallpaper**, and **environment variables**
* Exports a bootable **ISO** and optionally writes to **USB**
* Supports **build profiles** for repeatable, version-controlled builds

### MDT Integration

`Install-OSDeployMDT` hooks OSDeploy into an existing MDT Deployment Share once. After that, every **Update Deployment Share** in MDT automatically:

* Injects ADK binaries and `oa3tool.exe`
* Installs PackageManagement, PowerShellGet, AzCopy, curl, and 7-Zip
* Copies the OSDCloud module into LiteTouchPE
* Adds WinPE drivers from the local driver library
* Patches the exported ISO for **UEFI CA 2023 Secure Boot** compatibility

### Hyper-V Test VMs

`New-OSDeployHyperVM` creates a Hyper-V VM pre-configured for OSDeploy testing:

* Full VM configuration with appropriate memory, disk, and network settings
* Auto-mounts the latest OSDeploy boot ISO
* Opens the VM console automatically
* VM checkpointing enabled by default

### Enterprise-Ready

* **`-WhatIf` and `-Confirm`** support on all state-changing functions
* **Non-interactive batch mode** for CI/CD and automated deployment pipelines
* **amd64 and arm64** throughout — both host build and WinPE target
* **Preview-first** release model — register at [recastsoftware.com/osd-preview](https://www.recastsoftware.com/osd-preview/)
* Single `Import-Module -Name OSDeploy` — no additional configuration required

***

## Quick Install

```powershell
# Build-time module — runs on Windows 11 to create boot images
Install-Module -Name OSDeploy -Force -SkipPublisherCheck

# WinPE deployment module — runs inside WinPE to deploy Windows 11
Install-Module -Name OSDCloud -Force -SkipPublisherCheck

# Legacy OSDCloud v1 support (optional)
Install-Module -Name OSD -Force -SkipPublisherCheck
```

***

## OSDeploy Function Reference

The OSDeploy module (v0.1.0 preview) exports 17 public functions across seven areas.

### Module Utilities

| Function                    | Description                                              |
| --------------------------- | -------------------------------------------------------- |
| `Get-OSDeployModulePath`    | Returns the file system path to the OSDeploy module root |
| `Get-OSDeployModuleVersion` | Returns the currently loaded OSDeploy module version     |
| `Invoke-OSDeployHydration`  | Runs the full OSDeploy hydration workflow end-to-end     |

### Boot Media

| Function                 | Description                                                           |
| ------------------------ | --------------------------------------------------------------------- |
| `Build-OSDeployBoot`     | Builds a customized WinPE boot image from a WinRE or ADK WinPE source |
| `Update-OSDeployBootISO` | Rebuilds bootable ISO files for an existing BootImage build           |
| `Import-OSDeployCoreOS`  | Imports Windows OS images from installation media into OSDeployCore   |
| `New-OSDeployBootUSB`    | Creates a new bootable OSDeploy USB drive                             |
| `Update-OSDeployBootUSB` | Updates an existing OSDeploy USB drive with new BootMedia             |

### WinPE Drivers

| Function                     | Description                                                    |
| ---------------------------- | -------------------------------------------------------------- |
| `Get-OSDeployCoreDrivers`    | Lists available WinPE driver packs in the local driver library |
| `Update-OSDeployCoreDrivers` | Downloads and caches the latest WinPE driver packs             |

### Software Installation

| Function                   | Description                                             |
| -------------------------- | ------------------------------------------------------- |
| `Install-OSDeploySoftware` | Installs OS deployment prerequisite software on Windows |

### MDT Integration

| Function              | Description                                                         |
| --------------------- | ------------------------------------------------------------------- |
| `Install-OSDeployMDT` | Initializes an MDT Deployment Share for OSDeploy                    |
| `Invoke-OSDeployMDT`  | MDT LiteTouchPE exit script — runs on every Update Deployment Share |

### Virtual Machines

| Function              | Description                                              |
| --------------------- | -------------------------------------------------------- |
| `New-OSDeployHyperVM` | Creates a Hyper-V VM pre-configured for OSDeploy testing |

***

## What's New

### v0.1.0 — April 27, 2026 — Initial Preview Release

* **Core:** `Get-OSDeployModulePath`, `Get-OSDeployModuleVersion`
* **Software:** `Install-OSDeploySoftware` — ADK 25H2/26H1, MDT, pwsh, Git, VS Code, Hyper-V
* **WinPE Drivers:** `Get-OSDeployCoreDrivers`, `Update-OSDeployCoreDrivers`
* **Boot Media:** `Import-OSDeployCoreOS`, `Build-OSDeployBoot`, `New-OSDeployBootUSB`, `Update-OSDeployBootISO`, `Update-OSDeployBootUSB`
* **MDT:** `Install-OSDeployMDT`, `Invoke-OSDeployMDT`
* **Hyper-V:** `New-OSDeployHyperVM`
* MAML help, PlatyPS docs, `PSDefaultParameterValues` two-layer configuration system
* Platforms: Windows 11 25H2+, PowerShell 7.6+, amd64 and arm64

{% hint style="info" %}
Register at [recastsoftware.com/osd-preview](https://www.recastsoftware.com/osd-preview/) to get notified when new preview builds drop.
{% endhint %}

***

## Upcoming Events

{% hint style="info" %}
**May 22, 2026** — Recast Right Click Tools Release Show — OSDCloud Monthly Feature Release\
**Jun–Oct 2026** — Monthly Recast Right Click Tools Release Shows\
See the full [Events](/events) calendar for session links and details.
{% endhint %}

***

## Explore This Site

* [**Core Components**](/core-components/about) — Prerequisites: PowerShell 7, Windows ADK, MDT, WinPE drivers, and developer tools
* [**PowerShell Modules**](/powershell-modules/about) — OSDeploy, OSDCloud, and OSD module reference
* [**OSDeploy MDT Integration**](/osdeploy-mdt-integration/about) — Hook OSDeploy into MDT for automated LiteTouchPE modernization
* [**Inside WinPE**](/inside-winpe/winpe-startup) — WinPE startup sequence, boot environments, and troubleshooting
* [**Guides**](/guides/autopilot-app-registration) — Autopilot app registration, PSCloudScript, and go OSDCloud workflows
* [**Events**](/events) — Conference sessions, webinars, and release shows


# Events

<details>

<summary>Expand for past events</summary>

#### February 12 - Recast and System Center Dudes Webinar

{% embed url="<https://www.recastsoftware.com/resources/community-tools-intune-mvps-around-globe/>" %}

{% embed url="<https://www.youtube.com/watch?v=-xsI6roZi2A>" %}

#### February 20 - Recast Right Click Tools Release Show

{% embed url="<https://www.youtube.com/watch?v=8vsWdH-G5yk>" %}

#### March 20 - Recast Right Click Tools Release Show

{% hint style="info" icon="rocket-launch" %}
OSDCloud Monthly Feature Release
{% endhint %}

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/22c21689-55d2-4ec2-a359-ba9f3b95fb7a@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### March 27 - Northwest System Center User Group

{% hint style="info" icon="party-horn" %}
OSDCloud Insiders and WinPE Startnet Customizations - David Segura

From Friction to Flow: Enhancing Intune Operations with Recast - Fabian Rodriguez

Intune Suite Explained - Fabian Rodriguez
{% endhint %}

{% embed url="<https://nwscug.org/2026/02/25/nwscug-osdcloud-powershell-and-intune-suite-sponsored-by-recast/>" %}

{% embed url="<https://events.teams.microsoft.com/event/47409957-3abe-4317-9e77-fb4637f8f32f@e8b42f10-b2c3-4062-966e-c2122cf67958>" %}

### April 17 - Recast Right Click Tools Release Show

{% hint style="info" icon="rocket-launch" %}
OSDCloud Monthly Feature Release
{% endhint %}

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/b878461d-1fee-4e06-a7ae-6a1fc1c28aaa@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

### May 4-7 - MMS at MOA Conference

{% embed url="<https://mmsmoa.com/mms2026moa>" %}

{% embed url="<https://mms2026atmoa.sched.com/event/2HHHN>" %}

</details>

### May 22 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/ab846d2c-c6e1-4b0c-a693-111034347ac0@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

<details>

<summary>Expand for more events</summary>

#### June 19 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/79096e74-1c43-454d-bf0d-5602212a46c6@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### July 17 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/6d107fcd-eff3-4df5-a210-fefcee47697b@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### August 21 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/bdc5e28f-87da-4c1d-90ce-b18a4ca1ea31@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### September 18 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/c13f62ec-b4b1-46c4-b01e-3c811d934e94@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### October 23 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/b76e97b7-fda3-4a13-943c-8b84bac7f286@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### November 20 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/be6b4582-20b6-4477-9120-ce2c6ebc8d93@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

#### December 18 - Recast Right Click Tools Release Show

{% embed url="<https://www.recastsoftware.com/resources/right-click-tools-release-show/>" %}

{% embed url="<https://events.teams.microsoft.com/event/59bdae7d-79cb-426a-82bb-da1dd8a4e660@9315bb44-6348-46c6-bd37-8880b87e774e>" %}

</details>


# About

Core Components are the software tools and Windows features that must be in place on a Windows 11 build machine before running any OSDeploy workflow.

## Overview

OSDeploy runs on a Windows 11 workstation or server (amd64 or arm64) and uses these components at build time — not inside WinPE at deployment time. Some components are required for every workflow; others are needed only for specific tasks such as MDT integration, virtual machine testing, or script development. Use `Install-OSDeploySoftware` to install and manage all supported components from a single PowerShell command. Once the OSDeploy module is installed, run `Update-OSDeployCore` to download and cache all OSDeployCore assets — Windows Enterprise ESD files, OS images, and WinPE driver packages — before building boot images.

| Component                    | Purpose                                                      | Required              | Install Method             |
| ---------------------------- | ------------------------------------------------------------ | --------------------- | -------------------------- |
| PowerShell 7.6+              | Required for all OSDeploy, OSDCloud, and OSD module commands | Required              | MSI installer              |
| OSDeploy module              | WinPE boot image creation on Windows 11                      | Required              | `Install-Module`           |
| OSDCloud module              | Windows 11 deployment from WinPE                             | Required for OSDCloud | `Install-Module`           |
| OSD module                   | Legacy OSDCloud v1 and WinPE deployment                      | Optional (legacy)     | `Install-Module`           |
| Windows ADK + WinPE add-on   | Tooling to create and customize WinPE boot images            | Required              | `Install-OSDeploySoftware` |
| Microsoft Deployment Toolkit | Legacy MDT integration workflows                             | Optional              | `Install-OSDeploySoftware` |
| Hyper-V                      | Local VM creation for testing boot media                     | Optional              | `Install-OSDeploySoftware` |
| Git for Windows              | Source control for scripts and configurations                | Optional              | `Install-OSDeploySoftware` |
| Visual Studio Code           | Script authoring and editing                                 | Optional              | `Install-OSDeploySoftware` |

{% hint style="info" %}
All components except PowerShell 7 and the PowerShell modules can be installed or downloaded using a single function: `Install-OSDeploySoftware`. Run it without parameters to list all available components and the command to install each one.
{% endhint %}

## In This Section

* [PowerShell](/core-components/powershell) — Install PowerShell 7.6 or later (MSI package)
* [PowerShell Modules](/powershell-modules/about) — Install the OSDeploy, OSDCloud, and OSD modules from the PowerShell Gallery
* [Microsoft Windows ADK](/core-components/microsoft-windows-adk) — Install the Windows Assessment and Deployment Kit and WinPE add-on
* [Microsoft Deployment Toolkit](/core-components/microsoft-deployment-toolkit) — Install MDT for existing MDT-based deployment workflows (retired)
* [WinPE Drivers](/core-components/winpe-drivers) — Download vendor driver packs for injection into WinPE boot images
* [Windows Components](/core-components/windows-components) — Enable optional Windows features such as Hyper-V
* [Developer Tools](/core-components/developer-tools) — Optional tools for authoring and customizing OSDeploy workflows
* [Utilities](/core-components/utilities) — Additional tools such as 7-Zip used by OSDeploy during boot image creation


# PowerShell

PowerShell 7.6 or later is required for all OSDeploy workflows. It installs side-by-side with Windows PowerShell 5.1 and is launched using `pwsh`.

| Property         | Value                                            |
| ---------------- | ------------------------------------------------ |
| Publisher        | Microsoft (open source)                          |
| Required version | 7.6 or later                                     |
| Executable       | `pwsh`                                           |
| Architecture     | amd64 / arm64                                    |
| Platform         | Windows 11                                       |
| Required by      | All OSDeploy, OSDCloud, and OSD module workflows |

{% embed url="<https://learn.microsoft.com/en-us/powershell/scripting/install/install-powershell-on-windows?view=powershell-7.6>" %}

## Overview

PowerShell 7 (also called PowerShell Core) is the cross-platform, open-source successor to Windows PowerShell 5.1. It ships as a separate executable (`pwsh`) installed to `$env:ProgramFiles\PowerShell\7` and does not replace or modify the Windows PowerShell 5.1 installation. OSDeploy requires 7.6 specifically because it aligns with the minimum version tested for module compatibility and includes stability improvements for system-level operations.

## Why OSDeploy Requires PowerShell 7.6+

* The OSDeploy PowerShell Module was authored and tested against PowerShell 7.6. OSD and OSDCloud PowerShell modules require Windows PowerShell 5.1.
* Modern PowerShell APIs (`ForEach-Object -Parallel`, improved error handling) are used throughout
* `pwsh` runs in a full .NET runtime with access to system APIs needed by DISM-based operations
* OSDCloud deployments in WinPE require `pwsh` — Windows PowerShell 5.1 is not available in OSDCloud WinPE images

{% hint style="warning" %}
Do **not** install PowerShell 7 via WinGet or the Microsoft Store. Beginning with PowerShell 7.6.0, WinGet installs the MSIX package by default. MSIX packages run inside an application sandbox that blocks system-level operations, including `dism.exe`. Use the **MSI installer** for all OSDeploy scenarios.
{% endhint %}

## In This Section

* [Install PowerShell 7](/core-components/powershell/install-powershell) — Download and silently install the MSI package for amd64 or arm64
* [PowerShell Modules](/powershell-modules/osdeploy) — Install the OSDeploy, OSDCloud, and OSD modules from the PowerShell Gallery
* [OSD Module](/powershell-modules/osd) — Details for the OSD module (legacy OSDCloud v1 support)
* [OSDCloud Module](/powershell-modules/osdcloud) — Details for the OSDCloud module (current, recommended)


# Install PowerShell 7

{% embed url="<https://learn.microsoft.com/en-us/powershell/scripting/install/install-powershell-on-windows?view=powershell-7.6>" %}

OSDeploy requires **PowerShell 7.6 or later**. PowerShell 7 installs side-by-side with Windows PowerShell 5.1 and does not replace it. It is installed to `$env:ProgramFiles\PowerShell\7` and launched using `pwsh`.

These instructions target **Windows only** (amd64 and arm64). The snippets detect the current architecture automatically.

{% hint style="info" %}
PowerShell releases frequently. Always check the [PowerShell GitHub Releases](https://github.com/PowerShell/PowerShell/releases/latest) page for the current version and update the `$Version` variable accordingly.
{% endhint %}

## Why Not WinGet?

Beginning with PowerShell 7.6.0, WinGet installs the **MSIX package by default**. MSIX packages run inside an application sandbox that virtualizes filesystem and registry access. This sandbox **blocks system-level operations**, including commands that call `dism.exe`. This makes MSIX-based installations incompatible with OSD workflows such as OSDCloud.

{% hint style="warning" %}
Use the **MSI package** for all system and enterprise deployment scenarios.
{% endhint %}

## Download the MSI

The following snippet detects the system architecture, creates the download directory, and saves the installer to `$env:ProgramData\OSDeployCore\software\Microsoft.PowerShell`.

`curl.exe` is used for downloads — it is faster and more reliable than `Invoke-WebRequest` in Windows system contexts.

```powershell
# Update $Version to match the latest release:
# https://github.com/PowerShell/PowerShell/releases/latest
$Version        = '7.6.1'
$Arch           = if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') { 'arm64' } else { 'x64' }
$MsiFileName    = "PowerShell-$Version-win-$Arch.msi"
$MsiUrl         = "https://github.com/PowerShell/PowerShell/releases/download/v$Version/$MsiFileName"
$DownloadFolder = "$env:ProgramData\OSDeployCore\software\Microsoft.PowerShell"
$MsiPath        = Join-Path $DownloadFolder $MsiFileName

if (-not (Test-Path $DownloadFolder)) {
    New-Item -Path $DownloadFolder -ItemType Directory -Force | Out-Null
}

curl.exe -L -o $MsiPath $MsiUrl
```

## Install the MSI

The following snippet silently installs the MSI with all recommended options enabled. Source: [Install the MSI package with command-line options](https://learn.microsoft.com/en-us/powershell/scripting/install/install-powershell-on-windows?view=powershell-7.6#install-the-msi-package-with-command-line-options).

```powershell
# Update $Version to match the version you downloaded
$Version  = '7.6.1'
$Arch     = if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64') { 'arm64' } else { 'x64' }
$MsiPath  = "$env:ProgramData\OSDeployCore\software\Microsoft.PowerShell\PowerShell-$Version-win-$Arch.msi"

$msiParams = @(
    "/package `"$MsiPath`""
    '/quiet'
    'ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1'
    'ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1'
    'ENABLE_PSREMOTING=1'
    'REGISTER_MANIFEST=1'
    'USE_MU=1'
    'ENABLE_MU=1'
    'ADD_PATH=1'
)
msiexec.exe @msiParams
```

## After Installation

PowerShell 7 is installed to `$env:ProgramFiles\PowerShell\7`. Launch it from the Start Menu or by running `pwsh` in any terminal. The installer adds `pwsh` to the system `PATH` automatically when `ADD_PATH=1` is set.

To verify the installation:

```powershell
pwsh --version
```


# Microsoft Windows ADK

The Windows ADK is Microsoft's toolkit for creating and customizing Windows Preinstallation Environment (WinPE) boot images. OSDeploy uses the ADK — specifically the **WinPE add-on** — to build and modify boot images on Windows 11.

| Property        | Value                                          |
| --------------- | ---------------------------------------------- |
| Publisher       | Microsoft                                      |
| Current version | 10.1.26100.x (Windows 11 26H1)                 |
| Architecture    | amd64 / arm64                                  |
| Platform        | Windows 11                                     |
| Required by     | `Build-OSDeployBoot`, `Update-OSDeployBootISO` |

{% embed url="<https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install>" %}

## Overview

The Windows ADK provides the command-line tools and Windows PE files needed to create bootable WinPE images. The ADK itself includes tools such as DISM and the Deployment Tools; the **WinPE add-on** is a separate download that provides the actual WinPE boot files. Both must be installed together.

OSDeploy supports the two most recent ADK releases that align with Windows 11 25H2 and 26H1. The version of the ADK must match the Windows release you intend to build WinPE for. Architecture-specific builds (amd64 and arm64) are supported.

## Why OSDeploy Requires the ADK

* Creates the WinPE mount point and boot image structure that OSDeploy populates
* Provides `dism.exe` for mounting, injecting drivers, and committing WinPE images
* Supplies the Windows PE base components (kernel, shell, networking, scripting host)
* Required on the Windows 11 build machine — not used at deployment time in WinPE

{% hint style="info" %}
The ADK and its WinPE add-on must be the same version. Install them on the Windows 11 machine where you run `Build-OSDeployBoot` — not in WinPE itself.
{% endhint %}

## In This Section

* [Install 25H2](/core-components/microsoft-windows-adk/install-25h2) — Install the Windows ADK for Windows 11 25H2
* [Install 26H1](/core-components/microsoft-windows-adk/install-26h1) — Install the Windows ADK for Windows 11 26H1


# Install 25H2

Installs the Windows Assessment and Deployment Kit version **10.1.26100.2454** (Windows 11 25H2) and its required WinPE add-on.

| Property           | Value                                                                        |
| ------------------ | ---------------------------------------------------------------------------- |
| Version            | 10.1.26100.2454                                                              |
| Architecture       | amd64 / arm64                                                                |
| Platform           | Windows 11                                                                   |
| ADK setup          | `https://go.microsoft.com/fwlink/?linkid=2289980`                            |
| WinPE add-on setup | `https://go.microsoft.com/fwlink/?linkid=2289981`                            |
| Cache path         | `C:\ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.26100.2454\` |

{% embed url="<https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install>" %}

{% hint style="info" %}
The ADK and the WinPE add-on are two separate downloads and must be the same version. Both are installed when using `Install-OSDeploySoftware`. The MDT WinPE x86 MMC snap-in bugfix is applied automatically during installation.
{% endhint %}

***

## Install with OSDeploy

The OSDeploy module downloads both installers and runs them silently in sequence. Administrator rights are required.

**Preview (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'adk-25h2'
```

**Install:**

```powershell
Install-OSDeploySoftware -Name 'adk-25h2' -Force
```

**Download only (skip installation):**

```powershell
Install-OSDeploySoftware -Name 'adk-25h2' -DownloadOnly -Force
```

Installers are cached to `C:\ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.26100.2454\` and reused on subsequent runs.

{% hint style="info" %}
Requires PowerShell 7.6 or later running as Administrator. `curl.exe` must be available in `PATH` (included with Windows 10 1803 and later). `winget` is not used for ADK installation.
{% endhint %}

***

## Manual Installation

To install the ADK manually, download both setup executables and run them silently.

**Download ADK setup and WinPE add-on setup:**

```powershell
$DownloadPath = "$env:ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.26100.2454"
New-Item -Path $DownloadPath -ItemType Directory -Force | Out-Null

curl.exe --location --output "$DownloadPath\adksetup.exe" --url 'https://go.microsoft.com/fwlink/?linkid=2289980'
curl.exe --location --output "$DownloadPath\adkwinpesetup.exe" --url 'https://go.microsoft.com/fwlink/?linkid=2289981'
```

**Install Windows ADK:**

```powershell
Start-Process -FilePath "$DownloadPath\adksetup.exe" -ArgumentList '/quiet', '/norestart' -Wait
```

**Install WinPE add-on:**

```powershell
Start-Process -FilePath "$DownloadPath\adkwinpesetup.exe" -ArgumentList '/quiet', '/norestart' -Wait
```

**Apply MDT WinPE x86 bugfix (required for MDT integration):**

```powershell
$x86Path = 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs'
if (-not (Test-Path $x86Path)) {
    New-Item -Path $x86Path -ItemType Directory -Force | Out-Null
}
```

{% hint style="info" %}
Administrator rights are required for both setup steps.
{% endhint %}

***

## Related

* [Windows ADK documentation](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install)
* [What's new in kits and tools](https://learn.microsoft.com/en-us/windows-hardware/get-started/what-s-new-in-kits-and-tools)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)
* [Install Windows ADK 26H1](/core-components/microsoft-windows-adk/install-26h1)


# Install 26H1

Installs the Windows Assessment and Deployment Kit version **10.1.28000.1** (Windows 11 26H1) and its required WinPE add-on.

| Property           | Value                                                                     |
| ------------------ | ------------------------------------------------------------------------- |
| Version            | 10.1.28000.1                                                              |
| Architecture       | amd64 / arm64                                                             |
| Platform           | Windows 11                                                                |
| ADK setup          | `https://go.microsoft.com/fwlink/?linkid=2337875`                         |
| WinPE add-on setup | `https://go.microsoft.com/fwlink/?linkid=2337681`                         |
| Cache path         | `C:\ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.28000.1\` |

{% embed url="<https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install>" %}

{% hint style="info" %}
The ADK and the WinPE add-on are two separate downloads and must be the same version. Both are installed when using `Install-OSDeploySoftware`. The MDT WinPE x86 MMC snap-in bugfix is applied automatically during installation.
{% endhint %}

***

## Install with OSDeploy

The OSDeploy module downloads both installers and runs them silently in sequence. Administrator rights are required.

**Preview (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'adk-26h1'
```

**Install:**

```powershell
Install-OSDeploySoftware -Name 'adk-26h1' -Force
```

**Download only (skip installation):**

```powershell
Install-OSDeploySoftware -Name 'adk-26h1' -DownloadOnly -Force
```

Installers are cached to `C:\ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.28000.1\` and reused on subsequent runs.

{% hint style="info" %}
Requires PowerShell 7.6 or later running as Administrator. `curl.exe` must be available in `PATH` (included with Windows 10 1803 and later). `winget` is not used for ADK installation.
{% endhint %}

***

## Manual Installation

To install the ADK manually, download both setup executables and run them silently.

**Download ADK setup and WinPE add-on setup:**

```powershell
$DownloadPath = "$env:ProgramData\OSDeployCore\software\Microsoft.WindowsADK_10.1.28000.1"
New-Item -Path $DownloadPath -ItemType Directory -Force | Out-Null

curl.exe --location --output "$DownloadPath\adksetup.exe" --url 'https://go.microsoft.com/fwlink/?linkid=2337875'
curl.exe --location --output "$DownloadPath\adkwinpesetup.exe" --url 'https://go.microsoft.com/fwlink/?linkid=2337681'
```

**Install Windows ADK:**

```powershell
Start-Process -FilePath "$DownloadPath\adksetup.exe" -ArgumentList '/quiet', '/norestart' -Wait
```

**Install WinPE add-on:**

```powershell
Start-Process -FilePath "$DownloadPath\adkwinpesetup.exe" -ArgumentList '/quiet', '/norestart' -Wait
```

**Apply MDT WinPE x86 bugfix (required for MDT integration):**

```powershell
$x86Path = 'C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs'
if (-not (Test-Path $x86Path)) {
    New-Item -Path $x86Path -ItemType Directory -Force | Out-Null
}
```

{% hint style="info" %}
Administrator rights are required for both setup steps.
{% endhint %}

***

## Related

* [Windows ADK documentation](https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install)
* [What's new in kits and tools](https://learn.microsoft.com/en-us/windows-hardware/get-started/what-s-new-in-kits-and-tools)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)
* [Install Windows ADK 25H2](/core-components/microsoft-windows-adk/install-25h2)


# Microsoft Deployment Toolkit

Microsoft Deployment Toolkit (MDT) is a legacy framework for automating Windows OS deployment. OSDeploy integrates with MDT via the **OSDeployMDT** module to support existing MDT-based deployment workflows.

{% hint style="warning" %}
Microsoft Deployment Toolkit has been officially retired by Microsoft. Install it only if you have an existing MDT-based workflow that requires it.

[MDT Retirement Notice](https://learn.microsoft.com/en-us/troubleshoot/mem/configmgr/mdt/mdt-retirement)
{% endhint %}

| Property      | Value                                       |
| ------------- | ------------------------------------------- |
| Publisher     | Microsoft                                   |
| Final version | 6.3.8456.1000                               |
| Architecture  | x64                                         |
| Platform      | Windows                                     |
| Status        | Retired — no new releases                   |
| Required by   | `Install-OSDeployMDT`, `Invoke-OSDeployMDT` |

{% embed url="<https://learn.microsoft.com/en-us/intune/configmgr/mdt/>" %}

## Overview

MDT provides a framework for creating deployment shares, task sequences, and automated OS installs. It was the dominant Windows deployment tool before cloud-based solutions and Microsoft Intune became mainstream. The final release (6.3.8456.1000) remains functional on current Windows versions but receives no further updates from Microsoft.

OSDeploy's OSDeployMDT integration targets shops that already run MDT deployment shares and want to extend or automate them with PowerShell without rebuilding their entire deployment infrastructure.

## Why OSDeploy Requires MDT

* `Install-OSDeployMDT` configures and extends an existing MDT deployment share
* `Invoke-OSDeployMDT` runs automatically as the MDT LiteTouchPE exit script on every Update Deployment Share
* MDT's `Microsoft.BDD.TaskSequencer` COM objects are used for task sequence orchestration
* Required only for MDT integration features — not needed for standalone WinPE or OSDCloud deployments

{% hint style="info" %}
If you are starting a new deployment workflow, use OSDCloud instead of MDT. MDT integration in OSDeploy exists to support existing environments.
{% endhint %}

## In This Section

* [Install MDT](/core-components/microsoft-deployment-toolkit/install-mdt) — Download, verify, and install the final MDT release


# Install MDT

{% hint style="warning" %}
Microsoft Deployment Toolkit has been officially retired by Microsoft. Install it only if you have an existing MDT-based workflow that requires it.

[MDT Retirement Notice](https://learn.microsoft.com/en-us/troubleshoot/mem/configmgr/mdt/mdt-retirement)
{% endhint %}

MDT version **6.3.8456.1000** is the final release. The installer is no longer hosted on Microsoft's servers and must be downloaded from the Internet Archive.

| Property     | Value                                                              |
| ------------ | ------------------------------------------------------------------ |
| Version      | 6.3.8456.1000                                                      |
| Architecture | x64                                                                |
| SHA256       | `dabfd183c525bdb4866d2d9324f064a291ca62f3a16ac429cf3338be529d1d58` |

***

## Install MDT with OSDeploy

The OSDeploy module handles the download, SHA256 verification, and silent installation in a single command. Administrator rights are required.

**Preview (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'mdt'
```

**Install:**

```powershell
Install-OSDeploySoftware -Name 'mdt' -Force
```

**Download only (skip installation):**

```powershell
Install-OSDeploySoftware -Name 'mdt' -DownloadOnly -Force
```

The MSI is cached to `C:\ProgramData\OSDeployCore\cache\downloads\Microsoft.DeploymentToolkit_6.3.8456.1000\` and the SHA256 checksum is verified before installation proceeds.

{% hint style="info" %}
Requires PowerShell 7.6 or later running as Administrator. `curl.exe` must be available in `PATH` (included with Windows 10 1803 and later).
{% endhint %}

***

## Install MDT

To install MDT manually, download the MSI from the Internet Archive, verify the SHA256 checksum, and run a silent install with `msiexec`.

**Download:**

```powershell
$mdtUrl = 'https://web.archive.org/web/20250616094712/https://download.microsoft.com/download/3/3/9/339BE62D-B4B8-4956-B58D-73C4685FC492/MicrosoftDeploymentToolkit_x64.msi'
$installerPath = "$env:TEMP\MicrosoftDeploymentToolkit_x64.msi"

curl.exe --location --output $installerPath --url $mdtUrl
```

**Verify SHA256:**

```powershell
$expectedSha256 = 'dabfd183c525bdb4866d2d9324f064a291ca62f3a16ac429cf3338be529d1d58'
$actualSha256 = (Get-FileHash -Path $installerPath -Algorithm SHA256).Hash.ToLowerInvariant()

if ($actualSha256 -ne $expectedSha256) {
    throw "Checksum mismatch. Expected $expectedSha256 but got $actualSha256."
}
```

**Install silently:**

```powershell
Start-Process -FilePath 'msiexec.exe' -ArgumentList '/i', $installerPath, '/qn', '/norestart' -Wait
```

{% hint style="info" %}
Administrator rights are required for the `msiexec` install step.
{% endhint %}

***

## Related

* [Microsoft Deployment Toolkit documentation](https://learn.microsoft.com/en-us/intune/configmgr/mdt/)
* [MDT Retirement Notice](https://learn.microsoft.com/en-us/troubleshoot/mem/configmgr/mdt/mdt-retirement)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)


# WinPE Drivers

WinPE driver packs are vendor-provided archives of hardware drivers that OSDeploy injects into WinPE boot images to enable network and storage connectivity during OS deployment.

| Property     | Value                        |
| ------------ | ---------------------------- |
| Architecture | amd64 (all vendor packs)     |
| Platform     | WinPE                        |
| Required by  | `Build-OSDeployBoot`         |
| Managed by   | `Update-OSDeployCoreDrivers` |

## Overview

WinPE does not include NIC, WiFi, or storage drivers by default. Without drivers, WinPE cannot connect to the network to download Windows images, OEM driver packs, or run OSDCloud. OSDeploy automates the download and injection of vendor driver packs from Dell, HP, Lenovo, Intel, and Microsoft. Drivers are downloaded and expanded into the OSDeployCore library, then injected into the boot image at build time.

All vendor-provided WinPE driver packs target the **amd64** architecture. WiFi drivers are only needed for WinRE-based boot images — ADK-generated WinPE does not include wireless hardware support by default.

## Why OSDeploy Requires WinPE Drivers

* WinPE boots without NIC or storage drivers on most modern hardware without vendor packs
* `Update-OSDeployCoreDrivers` downloads and expands driver packs into the OSDeployCore repository
* `Build-OSDeployBoot` injects drivers from the repository into the WinPE image at build time
* `Get-OSDeployCoreDrivers` returns the set of driver folders currently in the library

{% hint style="info" %}
WiFi drivers are excluded automatically when no imported OS sources are present. ADK WinPE does not support wireless hardware — WiFi drivers are only needed for WinRE-based boot images.
{% endhint %}

## In This Section

* [Dell](/core-components/winpe-drivers/dell) — Dell WinPE 11 driver pack (amd64)
* [HP](/core-components/winpe-drivers/hp) — HP WinPE driver pack (amd64)
* [Lenovo](/core-components/winpe-drivers/lenovo) — Lenovo WinPE driver pack (amd64)
* [Intel Ethernet](/core-components/winpe-drivers/intel-ethernet) — Intel Ethernet adapter complete driver pack (amd64)
* [Intel Wireless](/core-components/winpe-drivers/intel-wireless) — Intel ProSet Wireless IT administrator driver pack (amd64)


# Dell

Dell provides a WinPE 11 driver pack for injecting Dell hardware drivers into WinPE boot images, enabling network and storage connectivity during OS deployment on Dell devices.

| Property       | Value                                                                                                |
| -------------- | ---------------------------------------------------------------------------------------------------- |
| Publisher      | Dell Technologies                                                                                    |
| Architecture   | amd64                                                                                                |
| Platform       | WinPE                                                                                                |
| Source         | [Dell WinPE 11 Driver Pack](https://www.dell.com/support/kbdoc/en-us/000211541/winpe-11-driver-pack) |
| Expand command | `expand.exe "{FileName}" -F:* "{DestinationPath}"`                                                   |

{% embed url="<https://www.dell.com/support/kbdoc/en-us/000211541/winpe-11-driver-pack>" %}

## Overview

The Dell WinPE 11 driver pack is a self-contained cabinet (`.cab`) archive that contains network, storage, and input drivers for the full range of Dell client and commercial devices. OSDeploy downloads the pack, expands it into the OSDeployCore repository using `expand.exe`, and injects the drivers at boot image build time.

## Download with OSDeploy

Use `Update-OSDeployCoreDrivers` to refresh the Dell driver catalog and download the driver pack.

**Download Dell packages:**

```powershell
Update-OSDeployCoreDrivers -Name 'dell'
```

**Download only (skip expansion):**

```powershell
Update-OSDeployCoreDrivers -Name 'dell' -DownloadOnly
```

**View downloaded Dell driver folders in the library:**

```powershell
Get-OSDeployCoreDrivers -Architecture amd64
```

***

## Manual Download

Visit the Dell WinPE 11 Driver Pack support page and download the latest `.cab` file:

<https://www.dell.com/support/kbdoc/en-us/000211541/winpe-11-driver-pack>

Expand the downloaded cab to your driver staging folder:

```powershell
$DestinationPath = 'C:\WinPEDrivers\Dell'
New-Item -Path $DestinationPath -ItemType Directory -Force | Out-Null
expand.exe "$env:USERPROFILE\Downloads\Dell-WinPE-Drivers.cab" -F:* $DestinationPath
```

***

## Related

* [Dell WinPE 11 Driver Pack](https://www.dell.com/support/kbdoc/en-us/000211541/winpe-11-driver-pack)
* [Update-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [Get-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [WinPE Drivers overview](/core-components/winpe-drivers)


# HP

HP provides a WinPE driver pack (SoftPaq) for injecting HP hardware drivers into WinPE boot images, enabling network and storage connectivity during OS deployment on HP devices.

| Property       | Value                                                                                         |
| -------------- | --------------------------------------------------------------------------------------------- |
| Publisher      | HP Inc.                                                                                       |
| Architecture   | amd64                                                                                         |
| Platform       | WinPE                                                                                         |
| Source         | [HP WinPE Driver Pack](https://ftp.ext.hp.com/pub/caps-softpaq/cmit/HP_WinPE_DriverPack.html) |
| Expand command | `"{FileName}" /s /e /f "{DestinationPath}"` (HP SoftPaq self-extractor)                       |

{% embed url="<https://ftp.ext.hp.com/pub/caps-softpaq/cmit/HP_WinPE_DriverPack.html>" %}

## Overview

HP distributes its WinPE driver pack as a SoftPaq self-extracting executable. The pack covers HP EliteBook, ProBook, ZBook, EliteDesk, ProDesk, and Z workstation hardware. OSDeploy downloads the SoftPaq, extracts it using the HP self-extractor switches, and injects the drivers at boot image build time.

## Download with OSDeploy

Use `Update-OSDeployCoreDrivers` to refresh the HP driver catalog and download the driver pack.

**Download HP packages:**

```powershell
Update-OSDeployCoreDrivers -Name 'hp'
```

**Download only (skip expansion):**

```powershell
Update-OSDeployCoreDrivers -Name 'hp' -DownloadOnly
```

**View downloaded HP driver folders in the library:**

```powershell
Get-OSDeployCoreDrivers -Architecture amd64
```

***

## Manual Download

Visit the HP WinPE Driver Pack page and download the latest SoftPaq:

<https://ftp.ext.hp.com/pub/caps-softpaq/cmit/HP_WinPE_DriverPack.html>

Extract the SoftPaq to your driver staging folder:

```powershell
$DestinationPath = 'C:\WinPEDrivers\HP'
New-Item -Path $DestinationPath -ItemType Directory -Force | Out-Null
& "$env:USERPROFILE\Downloads\HPWinPEDriverPack.exe" /s /e /f $DestinationPath
```

***

## Related

* [HP WinPE Driver Pack](https://ftp.ext.hp.com/pub/caps-softpaq/cmit/HP_WinPE_DriverPack.html)
* [Update-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [Get-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [WinPE Drivers overview](/core-components/winpe-drivers)


# Lenovo

Lenovo provides WinPE driver packs for injecting Lenovo hardware drivers into WinPE boot images, enabling network and storage connectivity during OS deployment on Lenovo devices.

| Property     | Value                                                                      |
| ------------ | -------------------------------------------------------------------------- |
| Publisher    | Lenovo                                                                     |
| Architecture | amd64                                                                      |
| Platform     | WinPE                                                                      |
| Source       | [Lenovo WinPE Driver Packs](https://support.lenovo.com/solutions/ht074984) |

{% embed url="<https://support.lenovo.com/solutions/ht074984>" %}

## Overview

Lenovo publishes WinPE driver packs for ThinkPad, ThinkCentre, ThinkStation, and IdeaPad device families. Driver packs are distributed as self-extracting executables and target the WinPE environment for network and storage enablement.

{% hint style="info" %}
Lenovo WinPE drivers are not automatically downloaded by `Update-OSDeployCoreDrivers`. Download the pack manually from the Lenovo support site and extract the drivers to `C:\ProgramData\OSDeployCore\OSDRepo\winpe-drivers`. Once placed there, `Build-OSDeployBoot` will inject them automatically and `Get-OSDeployCoreDrivers` will include them in its output.
{% endhint %}

***

## Manual Download

Visit the Lenovo WinPE Driver Pack support page and download the pack for your target device family:

<https://support.lenovo.com/solutions/ht074984>

Extract the downloaded package directly into the OSDRepo driver library:

```powershell
$DestinationPath = 'C:\ProgramData\OSDeployCore\OSDRepo\winpe-drivers\lenovo'
New-Item -Path $DestinationPath -ItemType Directory -Force | Out-Null
# Run the downloaded self-extractor with the extraction path argument
& "$env:USERPROFILE\Downloads\LenovoWinPEDriverPack.exe" /VERYSILENT /DIR=$DestinationPath
```

{% hint style="info" %}
The extraction command varies by package. Check the Lenovo support page for the exact switches for the pack you downloaded.
{% endhint %}

Verify the drivers are visible to OSDeploy:

```powershell
Get-OSDeployCoreDrivers -Architecture amd64
```

***

## Related

* [Lenovo WinPE Driver Packs](https://support.lenovo.com/solutions/ht074984)
* [WinPE Drivers overview](/core-components/winpe-drivers)
* [Get-OSDeployCoreDrivers](https://docs.osdeploy.com)


# Intel Ethernet

Intel provides a complete Ethernet adapter driver pack for injecting Intel NIC drivers into WinPE boot images, enabling network connectivity on systems with Intel Ethernet controllers.

| Property       | Value                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Publisher      | Intel Corporation                                                                                                                                      |
| Architecture   | amd64                                                                                                                                                  |
| Platform       | WinPE                                                                                                                                                  |
| Source         | [Intel Ethernet Adapter Complete Driver Pack](https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html) |
| Expand command | `Expand-Archive` (ZIP archive)                                                                                                                         |

{% embed url="<https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html>" %}

## Overview

The Intel Ethernet Adapter Complete Driver Pack is a ZIP archive containing `.inf`-based drivers for all supported Intel Ethernet controllers. OSDeploy downloads the pack, extracts it using `Expand-Archive`, and injects the relevant drivers into the WinPE image at build time. This pack is most useful when deploying to systems with Intel NICs that are not covered by the Dell or HP vendor packs.

## Download with OSDeploy

Use `Update-OSDeployCoreDrivers` to refresh the Intel Ethernet catalog and download the driver pack.

**Download Intel Ethernet packages:**

```powershell
Update-OSDeployCoreDrivers -Name 'intel-ethernet'
```

**Download only (skip expansion):**

```powershell
Update-OSDeployCoreDrivers -Name 'intel-ethernet' -DownloadOnly
```

**View downloaded Intel Ethernet driver folders in the library:**

```powershell
Get-OSDeployCoreDrivers -Architecture amd64
```

***

## Manual Download

Visit the Intel download page and download the latest complete driver pack ZIP:

<https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html>

Expand the ZIP to your driver staging folder:

```powershell
$DestinationPath = 'C:\WinPEDrivers\IntelEthernet'
Expand-Archive -Path "$env:USERPROFILE\Downloads\Intel-EthernetDriverPack.zip" -DestinationPath $DestinationPath
```

***

## Related

* [Intel Ethernet Adapter Complete Driver Pack](https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html)
* [Update-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [Get-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [WinPE Drivers overview](/core-components/winpe-drivers)


# Intel Wireless

Intel provides an IT administrator wireless driver pack for injecting Intel Wi-Fi drivers into WinPE boot images, enabling wireless connectivity on systems with Intel wireless adapters.

| Property       | Value                                                                                                                                                                                                        |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Publisher      | Intel Corporation                                                                                                                                                                                            |
| Architecture   | amd64                                                                                                                                                                                                        |
| Platform       | WinPE (WinRE-based images)                                                                                                                                                                                   |
| Source         | [Intel ProSet/Wireless Software and Wi-Fi Drivers for IT Administrators](https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-wi-fi-drivers-for-it-administrators.html) |
| Expand command | `Expand-Archive` (ZIP archive)                                                                                                                                                                               |

{% embed url="<https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-wi-fi-drivers-for-it-administrators.html>" %}

## Overview

The Intel ProSet/Wireless IT administrator pack is a ZIP archive containing `.inf`-based drivers for Intel Wi-Fi 6, Wi-Fi 6E, and Wi-Fi 7 adapters. OSDeploy downloads the pack, extracts it using `Expand-Archive`, and injects drivers into the WinPE image at build time.

{% hint style="warning" %}
WiFi drivers are only needed for **WinRE-based boot images**. ADK-generated WinPE does not support wireless hardware. When no imported OS sources are present, `Update-OSDeployCoreDrivers` excludes Wi-Fi packages automatically.
{% endhint %}

## Download with OSDeploy

Use `Update-OSDeployCoreDrivers` to refresh the Intel Wireless catalog and download the driver pack. Pass `-SkipWifiDrivers` to exclude wireless packages when building a WinPE-only image.

**Download Intel Wireless packages:**

```powershell
Update-OSDeployCoreDrivers -Name 'intel-wifi'
```

**Download only (skip expansion):**

```powershell
Update-OSDeployCoreDrivers -Name 'intel-wifi' -DownloadOnly
```

**View downloaded Intel Wireless driver folders in the library:**

```powershell
Get-OSDeployCoreDrivers -Architecture amd64
```

**Exclude Wi-Fi drivers when building a WinPE-only image:**

```powershell
Update-OSDeployCoreDrivers -SkipWifiDrivers
```

***

## Manual Download

Visit the Intel download page and download the latest IT administrator wireless driver pack ZIP:

<https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-wi-fi-drivers-for-it-administrators.html>

Expand the ZIP to your driver staging folder:

```powershell
$DestinationPath = 'C:\WinPEDrivers\IntelWireless'
Expand-Archive -Path "$env:USERPROFILE\Downloads\Intel-WirelessDriverPack.zip" -DestinationPath $DestinationPath
```

***

## Related

* [Intel ProSet/Wireless Software for IT Administrators](https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-wi-fi-drivers-for-it-administrators.html)
* [Update-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [Get-OSDeployCoreDrivers](https://docs.osdeploy.com)
* [WinPE Drivers overview](/core-components/winpe-drivers)


# Windows Components

Windows Components are optional Windows features that enable specific OSDeploy workflows on the build machine.

| Property       | Value                                                   |
| -------------- | ------------------------------------------------------- |
| Publisher      | Microsoft                                               |
| Platform       | Windows 11                                              |
| Architecture   | amd64 / arm64                                           |
| Install method | `Install-OSDeploySoftware` or Windows Optional Features |

{% embed url="<https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features>" %}

## Overview

Windows 11 ships with several features that are available but not enabled by default. OSDeploy uses **Hyper-V** to create and manage virtual machines on the build machine, enabling local testing of WinPE boot images without physical hardware. Enabling Windows optional features requires Administrator rights and may require a system restart.

## Why OSDeploy Uses Windows Components

* Hyper-V enables `New-OSDeployHyperVM` to create test VMs that boot from a WinPE image built by OSDeploy
* Local VM testing allows rapid iteration on boot images before deploying to physical devices
* Hyper-V is not required for building boot images — only for running them in a local VM

## In This Section

* [Hyper-V](/core-components/windows-components/hyper-v) — Enable the Hyper-V optional feature for VM-based boot media testing


# Hyper-V

Hyper-V is a Windows optional feature that enables virtual machine creation on the build machine. OSDeploy uses it to test WinPE boot images locally without physical hardware.

| Property     | Value                   |
| ------------ | ----------------------- |
| Publisher    | Microsoft               |
| Feature name | `Microsoft-Hyper-V-All` |
| Architecture | amd64 / arm64           |
| Platform     | Windows 11              |
| Required by  | `New-OSDeployHyperVM`   |

{% embed url="<https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v>" %}

## Overview

Hyper-V is included in Windows 11 Pro, Enterprise, and Education editions but is not enabled by default. Enabling it allows `New-OSDeployHyperVM` to create a virtual machine that boots from a WinPE image built by OSDeploy, making it possible to validate boot images and test OSDCloud deployments entirely on the build machine. A system restart is required after enabling Hyper-V before it is operational.

## Why OSDeploy Uses Hyper-V

* `New-OSDeployHyperVM` creates a test VM that boots from a WinPE boot image built by OSDeploy
* Enables local validation of boot images before deploying to physical devices
* Eliminates the need for physical test hardware during development and testing
* Required only for VM-based testing — not needed for boot image creation or OSDCloud deployments

{% hint style="warning" %}
A **system restart is required** after enabling Hyper-V before virtual machines can be created or started. Save all work and plan for a restart before enabling.
{% endhint %}

***

## Enable with OSDeploy

The OSDeploy module enables the Hyper-V Windows optional feature using `Enable-WindowsOptionalFeature`. Administrator rights are required.

**Preview (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'hyperv'
```

**Enable Hyper-V:**

```powershell
Install-OSDeploySoftware -Name 'hyperv' -Force
```

{% hint style="info" %}
`-DownloadOnly` is not supported for feature-based components. `-Force` is required to make any change.
{% endhint %}

***

## Enable Manually

Enable Hyper-V from PowerShell or via the Windows Features dialog.

**PowerShell (requires Administrator):**

```powershell
Enable-WindowsOptionalFeature -Online -FeatureName 'Microsoft-Hyper-V-All' -All -NoRestart
```

**Windows Features dialog:**

1. Open **Control Panel** → **Programs** → **Turn Windows features on or off**.
2. Expand **Hyper-V** and ensure all sub-items are checked.
3. Click **OK** and restart when prompted.

***

## Related

* [Enable Hyper-V on Windows](https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)
* [New-OSDeployHyperVM](https://docs.osdeploy.com)


# Developer Tools

Developer Tools are optional software tools for authoring, testing, and customizing OSDeploy workflows on the build machine.

| Property       | Value                                          |
| -------------- | ---------------------------------------------- |
| Platform       | Windows 11                                     |
| Architecture   | amd64 / arm64                                  |
| Install method | `Install-OSDeploySoftware` or vendor installer |
| Required       | Optional                                       |

## Overview

None of the tools in this section are required to build a WinPE boot image or run an OSDCloud deployment. They are recommended for anyone who writes or customizes OSDeploy scripts, manages configuration files in source control, or prefers an integrated editor for PowerShell development. Both Git and Visual Studio Code can be installed from a single `Install-OSDeploySoftware` command.

## Why These Tools Are Useful

* **Git** — track changes to deployment scripts, share configurations across machines, and collaborate using GitHub or other Git hosts
* **Visual Studio Code** — full PowerShell editing with IntelliSense, integrated terminal, and the PowerShell extension for authoring OSDeploy scripts
* Both tools are available in stable and pre-release (Insiders) editions and install via `winget`

{% hint style="info" %}
`-DownloadOnly` is not supported for `git`, `code`, or `code-insiders` because they are installed via `winget`, which manages its own download process. Use `-Force` to install.
{% endhint %}

## In This Section

* [Git for Windows](/core-components/developer-tools/git) — Install Git for Windows and configure global identity
* [Visual Studio Code](/core-components/developer-tools/vscode) — Install Visual Studio Code (stable or Insiders) for script authoring


# Git for Windows

Git for Windows is a source control system for tracking changes to deployment scripts and configurations. OSDeploy installs it via `winget` and optionally configures the global Git identity.

| Property     | Value                            |
| ------------ | -------------------------------- |
| Publisher    | The Git Project                  |
| winget ID    | `Git.Git`                        |
| Platform     | Windows 11                       |
| Architecture | amd64 / arm64                    |
| Required by  | Optional — script source control |
| Status       | Current                          |

{% embed url="<https://git-scm.com/download/win>" %}

## Overview

Git for Windows provides the `git` command-line tool and a Bash environment on Windows. It integrates with GitHub, Azure DevOps, and any other Git host. After installation, `Install-OSDeploySoftware` will interactively prompt for a global `user.email` and `user.name` if they are not already configured, or walk through updating existing values.

## Why Git Is Useful for OSDeploy

* Track changes to OSDeploy build scripts and PSCloudScript files across time
* Push configuration to GitHub for sharing and collaboration
* Enables pulling the latest scripts from a repository inside WinPE (with internet access)
* Required if you use VS Code's built-in source control panel

***

## Install with OSDeploy

Git for Windows is installed via `winget`. After installation, the function prompts for global Git identity configuration.

**Preview (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'git'
```

**Install:**

```powershell
Install-OSDeploySoftware -Name 'git' -Force
```

{% hint style="info" %}
`winget` (App Installer) must be available. Install it from the [Microsoft Store](https://apps.microsoft.com/detail/9NBLGGH4NNS1) if it is not present. `-DownloadOnly` is not supported for winget-based components.
{% endhint %}

***

## Manual Installation

**Install via winget:**

```powershell
winget install --id Git.Git -e -h --accept-source-agreements --accept-package-agreements
```

**Configure global Git identity after installation:**

```powershell
git config --global user.email 'you@example.com'
git config --global user.name 'Your Name'
```

**Verify the installation:**

```powershell
git --version
git config --global --list
```

***

## Related

* [Git for Windows](https://git-scm.com/download/win)
* [winget documentation](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)
* [Visual Studio Code](/core-components/developer-tools/vscode) — integrated Git support


# Visual Studio Code

Visual Studio Code is a lightweight, extensible code editor used for authoring and debugging PowerShell scripts for OSDeploy workflows. Both the stable and Insiders (pre-release) channels are available.

| Property           | Value                                 |
| ------------------ | ------------------------------------- |
| Publisher          | Microsoft                             |
| Stable winget ID   | `Microsoft.VisualStudioCode`          |
| Insiders winget ID | `Microsoft.VisualStudioCode.Insiders` |
| Platform           | Windows 11                            |
| Architecture       | amd64 / arm64                         |
| Required by        | Optional — script authoring           |
| Status             | Current                               |

{% embed url="<https://code.visualstudio.com/docs/setup/windows>" %}

## Overview

Visual Studio Code provides IntelliSense, integrated terminal, debugging, and source control for PowerShell script development. The **PowerShell extension** adds full language support for `.ps1` files, including syntax highlighting, parameter completion, and script analysis via PSScriptAnalyzer. The Insiders channel receives updates daily and is useful for testing the latest features.

## Why VS Code Is Useful for OSDeploy

* Full PowerShell editing with parameter and module completion
* Integrated terminal runs `pwsh` directly in the workspace
* Built-in Git integration for tracking script changes
* Extensions available for editing JSON module configuration files (`module.json`)

***

## Install with OSDeploy

Both stable and Insiders editions are installed via `winget`.

**Preview stable channel (no changes made):**

```powershell
Install-OSDeploySoftware -Name 'code'
```

**Install stable channel:**

```powershell
Install-OSDeploySoftware -Name 'code' -Force
```

**Install Insiders channel:**

```powershell
Install-OSDeploySoftware -Name 'code-insiders' -Force
```

**Install both channels:**

```powershell
Install-OSDeploySoftware -Name 'code', 'code-insiders' -Force
```

{% hint style="info" %}
`winget` (App Installer) must be available. Install it from the [Microsoft Store](https://apps.microsoft.com/detail/9NBLGGH4NNS1) if it is not present. `-DownloadOnly` is not supported for winget-based components.
{% endhint %}

***

## Manual Installation

**Install stable via winget:**

```powershell
winget install --id Microsoft.VisualStudioCode -e -h --accept-source-agreements --accept-package-agreements
```

**Install Insiders via winget:**

```powershell
winget install --id Microsoft.VisualStudioCode.Insiders -e -h --accept-source-agreements --accept-package-agreements
```

**Download from the VS Code website:**

Visit <https://code.visualstudio.com/download> and select the Windows installer for your architecture (x64 or ARM64).

**Verify the installation:**

```powershell
code --version
```

***

## Recommended Extensions

After installation, add the PowerShell extension for full language support:

```powershell
code --install-extension ms-vscode.powershell
```

***

## Related

* [Visual Studio Code documentation](https://code.visualstudio.com/docs/setup/windows)
* [VS Code release notes](https://code.visualstudio.com/updates)
* [PowerShell extension for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell)
* [Install-OSDeploySoftware](https://docs.osdeploy.com)
* [Git for Windows](/core-components/developer-tools/git) — integrated source control


# Utilities

Utilities are additional tools that OSDeploy downloads and uses during boot image creation. They are installed on the Windows 11 build machine and, where applicable, injected directly into WinPE.

| Component | Purpose                                             | Required | Install Method             |
| --------- | --------------------------------------------------- | -------- | -------------------------- |
| 7-Zip     | Extraction and archive utility; injected into WinPE | Optional | `Install-OSDeploySoftware` |

{% hint style="info" %}
Use `Install-OSDeploySoftware` to install utilities. Run it without parameters to list all available components and the command to install each one.
{% endhint %}

## Overview

Utilities complement the core ADK and driver workflows. Some utilities run only on the build machine (for example, to extract driver packs); others are injected into the WinPE image so they are available at deployment time. OSDeploy manages utility downloads and WinPE injection automatically during `Build-OSDeployBoot` and `Invoke-OSDeployMDT`.

## In This Section

* [7-Zip](/core-components/utilities/7zip) — Archive extraction tool installed on the build machine and injected into WinPE


# 7-Zip

7-Zip is an open-source archive utility used by OSDeploy in two roles: it is installed on the Windows 11 build machine via winget, and a standalone executable (`7zr.exe`) is injected directly into WinPE so that it is available at deployment time.

{% hint style="info" %}
7-Zip is optional for standalone `Build-OSDeployBoot` workflows but is injected into WinPE automatically when running `Invoke-OSDeployMDT` at the `WIM` stage.
{% endhint %}

| Property     | Value                                                           |
| ------------ | --------------------------------------------------------------- |
| Publisher    | Igor Pavlov (open source — [7-zip.org](https://www.7-zip.org/)) |
| Version      | 26.00                                                           |
| winget ID    | `7zip.7zip`                                                     |
| Architecture | amd64                                                           |
| Platform     | Windows 11 (build machine) / WinPE (injected)                   |
| Required by  | `Install-OSDeploySoftware`, `Invoke-OSDeployMDT`                |
| Status       | Current                                                         |

{% embed url="<https://github.com/ip7z/7zip/releases>" %}

## Overview

OSDeploy uses 7-Zip in two distinct contexts:

**Build machine installation** — Installed on the Windows 11 build host via `winget install 7zip.7zip`. This provides the full 7-Zip suite for extracting driver packs and other archives used in build workflows.

**WinPE injection** — The standalone `7zr.exe` (version 26.00) from the 7-Zip extras archive is copied into WinPE's `System32` directory during `Invoke-OSDeployMDT` (at the `WIM` stage). This makes `7zr.exe` available at the command line in WinPE without a full installation.

## Why OSDeploy Uses 7-Zip

* Provides archive extraction capability in WinPE where no default decompression utility exists for formats beyond ZIP
* Enables extraction of vendor driver packs (`.7z`, `.cab`) during deployment workflows
* Injected as a single-file standalone executable — no installation required in WinPE

## Install on the Build Machine

```powershell
Install-OSDeploySoftware -Name '7zip' -Force
```

Run `Install-OSDeploySoftware` without parameters to preview the install command before running it.

Manual install via winget:

```powershell
winget install --id 7zip.7zip -e -h --accept-source-agreements --accept-package-agreements
```

## WinPE Injection

When `Invoke-OSDeployMDT` runs at the `WIM` stage, it automatically downloads the 7-Zip extras archive and copies `7zr.exe` to the mounted WinPE image's `System32` directory. No manual action is required.

The injected binary (`7zr.exe`) is a reduced-functionality standalone build of 7-Zip that supports extraction but not compression.


# About

Three PowerShell modules support OSDeploy workflows. Each targets a different execution context — a full Windows OS build machine, WinPE, or both.

| Property     | Value                                                    |
| ------------ | -------------------------------------------------------- |
| Publisher    | Community / David Segura                                 |
| Registry     | [PowerShell Gallery](https://www.powershellgallery.com/) |
| Architecture | amd64 / arm64                                            |
| Install flag | Always use `-Force -SkipPublisherCheck`                  |

## Overview

The **OSDeploy** module runs on a full Windows 11 OS to create WinPE boot images. The **OSDCloud** module runs inside WinPE to deploy Windows 11 to a device from the cloud. The **OSD** module also runs in WinPE and supports the older OSDCloud v1 implementation. For new deployments, the OSDCloud module is preferred over OSD for all OSDCloud functionality.

## Why OSDeploy Requires These Modules

* `OSDeploy` provides `Build-OSDeployBoot`, `Invoke-OSDeployHydration`, and all boot image build commands
* `OSDCloud` provides the current, recommended OSDCloud deployment commands used inside WinPE
* `OSD` is maintained for existing environments that depend on OSDCloud v1; not required for new workflows

{% hint style="info" %}
For new OSDCloud deployments, use the **OSDCloud** module. The OSDCloud functionality in the OSD module (v1) is legacy and the OSDCloud module is preferred for all new work.
{% endhint %}

## In This Section

* [OSDeploy Module](/powershell-modules/osdeploy) — Install the OSDeploy, OSDCloud, and OSD modules
* [OSDCloud Module](https://github.com/OSDeploy/osdeploy.com/blob/main/powershell-modules/osdcloud-module.md) — Current, recommended module for OSDCloud deployments in WinPE
* [OSD Module](https://github.com/OSDeploy/osdeploy.com/blob/main/powershell-modules/osd-module.md) — Legacy module; maintains OSDCloud v1 and WinPE deployment support


# OSDeploy Module

The **OSDeploy** module is used on **Windows 11 25H2** to create WinPE boot images. It runs in a full Windows OS environment — not in WinPE.

| Property     | Value                                                                                           |
| ------------ | ----------------------------------------------------------------------------------------------- |
| Publisher    | Community / David Segura                                                                        |
| Gallery      | [powershellgallery.com/packages/OSDeploy](https://www.powershellgallery.com/packages/OSDeploy/) |
| Platform     | Windows 11 25H2                                                                                 |
| Architecture | amd64 / arm64                                                                                   |
| Status       | Current / Recommended                                                                           |
| Required by  | OSDeploy deployment workflows                                                                   |

{% embed url="<https://www.powershellgallery.com/packages/OSDeploy/>" %}

## Overview

The OSDeploy module is the build-time counterpart to OSDCloud. It runs on a full **Windows 11 25H2 or later** installation — not inside WinPE — and is responsible for creating and customizing WinPE boot images. The module automates the entire boot image pipeline: pulling in Windows ADK optional components and language packs, injecting WinPE drivers, embedding the OSDCloud PowerShell module, adding WinPE apps and console configuration, and generating bootable ISO files and USB drives.

Use `Invoke-OSDeployHydration` for a fully automated end-to-end build, or use `Build-OSDeployBoot` directly for fine-grained control over individual boot image builds.

## Install

```powershell
Install-Module -Name OSDeploy -Force -SkipPublisherCheck
```

***

## Related

* [OSDeploy on PowerShell Gallery](https://www.powershellgallery.com/packages/OSDeploy/)

***

## Functions

The OSDeploy module (version 26.5.1.1) exports 17 public functions across seven functional areas.

### Module Utilities

| Function                                                                            | Description                                                        |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [Get-OSDeployModulePath](/powershell-modules/osdeploy/get-osdeploymodulepath)       | Returns the file system path to the OSDeploy module root directory |
| [Get-OSDeployModuleVersion](/powershell-modules/osdeploy/get-osdeploymoduleversion) | Returns the currently loaded OSDeploy module version               |

### OSDeployCore

| Function                                                                      | Description                                                                      |
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [Update-OSDeployCore](/powershell-modules/osdeploy/update-osdeploycore)       | Updates all OSDeployCore assets: ESD files, OS images, and WinPE driver packages |
| [Update-OSDeployCoreESD](/powershell-modules/osdeploy/update-osdeploycoreesd) | Downloads Windows Enterprise ESD files from the latest OSDeploy OS catalog       |
| [Update-OSDeployCoreOS](/powershell-modules/osdeploy/update-osdeploycoreos)   | Imports Windows OS images from cached Enterprise ESD files to OSDeployCore       |

### BootMedia

| Function                                                                          | Description                                                               |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [Build-OSDeployBoot](/powershell-modules/osdeploy/build-osdeployboot)             | Builds a customized WinPE boot image from a WinRE or ADK WinPE source     |
| [Invoke-OSDeployHydration](/powershell-modules/osdeploy/invoke-osdeployhydration) | Runs the full OSDeploy hydration workflow end-to-end                      |
| [Update-OSDeployBootISO](/powershell-modules/osdeploy/update-osdeploybootiso)     | Rebuilds bootable ISO files for an existing BootImage build               |
| [Import-OSDeployCoreOS](/powershell-modules/osdeploy/import-osdeploycoreos)       | Imports Windows OS images from mounted installation media to OSDeployCore |

### MDT Integration

| Function                                                                | Description                                                         |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [Install-OSDeployMDT](/powershell-modules/osdeploy/install-osdeploymdt) | Initializes an MDT Deployment Share for OSDeploy                    |
| [Invoke-OSDeployMDT](/powershell-modules/osdeploy/invoke-osdeploymdt)   | MDT LiteTouchPE exit script — runs on every Update Deployment Share |

### Software Installation

| Function                                                                          | Description                                             |
| --------------------------------------------------------------------------------- | ------------------------------------------------------- |
| [Install-OSDeploySoftware](/powershell-modules/osdeploy/install-osdeploysoftware) | Installs OS deployment prerequisite software on Windows |

### USB

| Function                                                                      | Description                                               |
| ----------------------------------------------------------------------------- | --------------------------------------------------------- |
| [New-OSDeployBootUSB](/powershell-modules/osdeploy/new-osdeploybootusb)       | Creates a new bootable OSDeploy USB drive                 |
| [Update-OSDeployBootUSB](/powershell-modules/osdeploy/update-osdeploybootusb) | Updates an existing OSDeploy USB drive with new BootMedia |

### Virtual Machines

| Function                                                                | Description                                              |
| ----------------------------------------------------------------------- | -------------------------------------------------------- |
| [New-OSDeployHyperVM](/powershell-modules/osdeploy/new-osdeployhypervm) | Creates a Hyper-V VM pre-configured for OSDeploy testing |

### WinPE Drivers

| Function                                                                              | Description                                                   |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| [Get-OSDeployCoreDrivers](/powershell-modules/osdeploy/get-osdeploycoredrivers)       | Returns WinPE driver folders from the OSDeployCore library    |
| [Update-OSDeployCoreDrivers](/powershell-modules/osdeploy/update-osdeploycoredrivers) | Downloads and expands WinPE driver packages into OSDeployCore |


# Build-OSDeployBoot

Builds a customized WinPE boot image from a WinRE or ADK WinPE source.

| Property    | Value                                                                         |
| ----------- | ----------------------------------------------------------------------------- |
| Module      | OSDeploy                                                                      |
| Platform    | Windows 11 25H2+ (amd64 / arm64)                                              |
| Requires    | PowerShell 7.6, Windows ADK, OSDCloud module 26.5.24.1+, Run as Administrator |
| Output path | `%ProgramData%\OSDeployCore\boot`                                             |

## Description

Creates a bootable WinPE image from an imported WinRE image or the Windows ADK WinPE. The function applies ADK optional components, WinPE drivers, PowerShell module updates, WinPE applications, console settings, wallpaper, and user scripts. Output is written to `%ProgramData%\OSDeployCore\boot`.

By default the function selects an imported WinRE source. Use `-UseAdkWinPE` to build from the ADK WinPE instead.

## Syntax

```powershell
# Default parameter set — uses an imported WinRE source
Build-OSDeployBoot -Name <String> [-Architecture <String>]
    [-Languages <String[]>] [-SetAllIntl <String>] [-SetInputLocale <String>]
    [-SetTimeZone <String>] [-SkipAdkPackages] [-Auto] [-UpdateUSB] [-WhatIf] [-Confirm]

# ADK parameter set — uses the Windows ADK winpe.wim
Build-OSDeployBoot -Name <String> -Architecture <String>
    [-Languages <String[]>] [-SetAllIntl <String>] [-SetInputLocale <String>]
    [-SetTimeZone <String>] [-SkipAdkPackages] [-UseAdkWinPE] [-UpdateUSB]
    [-WhatIf] [-Confirm]
```

## Parameters

| Parameter          | Type       | Required              | Description                                                                                                                                 |
| ------------------ | ---------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `-Name`            | `String`   | Yes (all sets)        | Friendly name for the build. Used to label the output folder.                                                                               |
| `-Architecture`    | `String`   | Optional / Yes (ADK)  | Processor architecture: `amd64` or `arm64`. Required with `-UseAdkWinPE`. Default: `amd64`.                                                 |
| `-Languages`       | `String[]` | No                    | ADK language packs to add. Default: `en-us`. Use `*` to add all available languages.                                                        |
| `-SetAllIntl`      | `String`   | No                    | Sets all international settings to the specified locale. Default: `en-us`.                                                                  |
| `-SetInputLocale`  | `String`   | No                    | Sets the default input locale in WinPE. Default: `en-us`.                                                                                   |
| `-SetTimeZone`     | `String`   | No                    | Sets the WinPE timezone. Default: the current system timezone (from `tzutil /g`).                                                           |
| `-SkipAdkPackages` | `Switch`   | No                    | Skips adding ADK optional component packages. Useful for quick testing.                                                                     |
| `-UseAdkWinPE`     | `Switch`   | Yes (ADK set)         | Uses the ADK `winpe.wim` instead of an imported WinRE source. Requires `-Architecture`.                                                     |
| `-UpdateUSB`       | `Switch`   | No                    | Copies the completed media to any connected USB partition labeled `USB-WinPE` after the build.                                              |
| `-Auto`            | `Switch`   | No (Default set only) | Automatically detects the host architecture and selects the latest available WinRE source without prompting. Skips build profile selection. |

## Examples

```powershell
# Build from an imported WinRE source with the default name
Build-OSDeployBoot -Name 'MyPE'
```

```powershell
# Build from the ADK WinPE for amd64, skipping optional components
Build-OSDeployBoot -Name 'TestBuild' -Architecture 'amd64' -UseAdkWinPE -SkipAdkPackages
```

```powershell
# Build for arm64 and copy to any connected USB-WinPE drive
Build-OSDeployBoot -Name 'ARM64-PE' -Architecture 'arm64' -UpdateUSB
```


# Invoke-OSDeployHydration

Runs the complete OSDeploy hydration workflow end-to-end on a supported Windows 11 machine.

| Property | Value                                   |
| -------- | --------------------------------------- |
| Module   | OSDeploy                                |
| Platform | Windows 11 25H2 or 26H1 (amd64 / arm64) |
| Requires | PowerShell 7.6, Run as Administrator    |

## Description

Automates the full OSDeploy setup sequence:

1. Detects the running OS version and processor architecture.
2. Installs the matching Windows ADK, Git for Windows, Visual Studio Code, VS Code Insiders, and 7-Zip.
3. Downloads WinPE drivers for the detected architecture.
4. Builds a WinPE boot image named `Hydra`, using the newest available WinRE source when present, or falling back to the ADK WinPE when none is found.

Without `-Force`, interactive pickers (Out-GridView) are shown at each step. With `-Force`, the entire sequence runs non-interactively from start to finish.

## Syntax

```powershell
Invoke-OSDeployHydration [-Force] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter | Type     | Required | Description                                                                                                    |
| --------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------- |
| `-Force`  | `Switch` | No       | Runs all steps non-interactively. Skips Out-GridView pickers and processes all matching sources automatically. |

## Examples

```powershell
# Run the full hydration workflow with interactive pickers at each step
Invoke-OSDeployHydration
```

```powershell
# Run the full hydration workflow non-interactively
Invoke-OSDeployHydration -Force
```


# Update-OSDeployCore

Updates all OSDeployCore assets: Windows Enterprise ESD files, OS images, and WinPE driver packages.

| Property | Value                                                 |
| -------- | ----------------------------------------------------- |
| Module   | OSDeploy                                              |
| Platform | Windows 11 (amd64 / arm64)                            |
| Requires | PowerShell 7.6, Run as Administrator, internet access |

## Description

Runs `Update-OSDeployCoreESD`, `Update-OSDeployCoreOS`, and `Update-OSDeployCoreDrivers` in a single call to refresh all local OSDeployCore assets.

Use this function to bring a new build machine up to date or to ensure all cached content is current before running `Build-OSDeployBoot`.

## Syntax

```powershell
Update-OSDeployCore [-WhatIf] [-Confirm]
```

## Parameters

| Parameter  | Type     | Required | Description                                                             |
| ---------- | -------- | -------- | ----------------------------------------------------------------------- |
| `-WhatIf`  | `Switch` | No       | Shows what each sub-function would do without performing any downloads. |
| `-Confirm` | `Switch` | No       | Prompts for confirmation before running.                                |

## Examples

```powershell
# Download any missing ESD files, OS images, and WinPE driver packages
Update-OSDeployCore
```

```powershell
# Preview what would be downloaded without executing
Update-OSDeployCore -WhatIf
```


# Update-OSDeployCoreESD

Downloads Windows Enterprise ESD files from the latest OSDeploy OS catalog.

| Property | Value                           |
| -------- | ------------------------------- |
| Module   | OSDeploy                        |
| Platform | Windows 11 (amd64 / arm64)      |
| Requires | PowerShell 7.6, internet access |

## Description

Locates the most recent XML catalog file in the OSDeploy operating system catalogs directory, resolves the en-US Enterprise x64 and ARM64 ESD entries, and downloads them to `C:\ProgramData\OSDeployCore\cache\windows-esd`.

Each file is skipped silently when it is already present and its SHA256 checksum matches the catalog value. For files that need downloading, the URL is first tested for reachability. All pending downloads are confirmed with the user before any transfer begins.

SHA256 verification is performed after every download. A terminating error is thrown when the checksum does not match or when `curl.exe` fails.

{% hint style="info" %}
`Update-OSDeployCoreESD` is called automatically by `Update-OSDeployCoreOS` and `Update-OSDeployCore`. Run it directly only when you want to cache ESD files without importing them as OS sources.
{% endhint %}

## Syntax

```powershell
Update-OSDeployCoreESD [-Force] [[-Architecture] <String>] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter       | Type     | Required | Description                                                                                                     |
| --------------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| `-Force`        | `Switch` | No       | Re-downloads each ESD file even when it already exists in the cache with a matching SHA256 checksum.            |
| `-Architecture` | `String` | No       | Limits downloads to a single architecture: `amd64` or `arm64`. When omitted, both architectures are downloaded. |
| `-WhatIf`       | `Switch` | No       | Shows which ESD files would be downloaded without performing any transfers.                                     |
| `-Confirm`      | `Switch` | No       | Prompts for confirmation before each download.                                                                  |

## Examples

```powershell
# Test reachability, confirm, then download any missing ESD files
Update-OSDeployCoreESD
```

```powershell
# Re-download both ESD files regardless of whether they are already cached
Update-OSDeployCoreESD -Force
```

```powershell
# Preview which ESD files would be downloaded without performing any work
Update-OSDeployCoreESD -WhatIf
```


# Update-OSDeployCoreOS

Imports Windows OS images from cached Enterprise ESD files to OSDeployCore.

| Property | Value                                                 |
| -------- | ----------------------------------------------------- |
| Module   | OSDeploy                                              |
| Platform | Windows 11 (amd64 / arm64)                            |
| Requires | PowerShell 7.6, Run as Administrator, internet access |

## Description

Builds a complete Windows OS image layout from the Enterprise ESD files downloaded by `Update-OSDeployCoreESD`. For each available architecture (amd64 and ARM64), or for the specified architecture when `-Architecture` is provided, the function:

1. Expands ESD Index 1 (Windows Setup Media) to create the `WinOS-Media` layout
2. Exports ESD Index 2 (WinPE) to `.wim\winpe.wim`
3. Exports ESD Index 3 (WinSetup) to `.wim\winse.wim`
4. Constructs `WinOS-Media\sources\boot.wim` from the WinPE and WinSetup images
5. Exports the Enterprise image to `WinOS-Media\sources\install.wim`
6. Mounts `install.wim` to extract WinRE, registry hives, boot files, OS system files, and Ethernet/Wi-Fi drivers
7. Creates a parallel `windows-re` directory with WinRE-specific content

Imported images are stored under `$env:ProgramData\OSDeployCore` with a naming convention of `build.revision-architecture-editionid-language` (for example, `26200.8457-amd64-enterprise-en-us`). Duplicate imports are detected and skipped.

## Syntax

```powershell
Update-OSDeployCoreOS [[-Architecture] <String>] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter       | Type     | Required | Description                                                                                                         |
| --------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------- |
| `-Architecture` | `String` | No       | Limits processing to a single architecture: `amd64` or `arm64`. When omitted, all available ESD files are imported. |
| `-WhatIf`       | `Switch` | No       | Shows which OS image directories would be created without performing any work.                                      |
| `-Confirm`      | `Switch` | No       | Prompts for confirmation before running.                                                                            |

## Examples

```powershell
# Import all available OS image architectures from cached ESD files
Update-OSDeployCoreOS
```

```powershell
# Import with detailed verbose output showing each extraction step
Update-OSDeployCoreOS -Verbose
```

```powershell
# Import only amd64 OS images
Update-OSDeployCoreOS -Architecture amd64
```

```powershell
# Preview which OS image directories would be created
Update-OSDeployCoreOS -WhatIf
```


# New-OSDeployBootUSB

Creates a new bootable OSDeploy USB drive from an OSDeployCore BootImage build.

| Property | Value                                                                 |
| -------- | --------------------------------------------------------------------- |
| Module   | OSDeploy                                                              |
| Platform | Windows 11 (amd64 / arm64)                                            |
| Requires | Run as Administrator, a completed BootImage build, a USB drive ≥ 7 GB |

## Description

Prepares a USB drive for use as an OSDeploy bootable device. The function:

* Prompts for selection of a completed BootImage from `%ProgramData%\OSDeployCore\boot`
* Prompts for the specific bootmedia folder (`bootmedia` or `bootmedia_ca2023`)
* Selects a suitable USB disk (7 GB–2 TB) via an interactive picker
* Clears, partitions (MBR), and formats the selected disk:
  * 4 GB FAT32 active boot partition (labeled with `-BootLabel`)
  * NTFS remaining-space data partition (labeled with `-DataLabel`)
* Copies the selected BootMedia to the FAT32 partition

{% hint style="danger" %}
This function clears and repartitions the selected USB disk. All existing data on the disk will be destroyed. Use `Update-OSDeployBootUSB` to refresh an existing OSDeploy USB without reformatting.
{% endhint %}

## Syntax

```powershell
New-OSDeployBootUSB [-BootLabel <String>] [-DataLabel <String>]
```

## Parameters

| Parameter    | Type     | Required | Description                                                                        |
| ------------ | -------- | -------- | ---------------------------------------------------------------------------------- |
| `-BootLabel` | `String` | No       | Volume label for the FAT32 boot partition. Max 11 characters. Default: `OSDEPLOY`. |
| `-DataLabel` | `String` | No       | Volume label for the NTFS data partition. Max 32 characters. Default: `OSDCloud`.  |

## Examples

```powershell
# Create a new OSDeploy USB using default partition labels
New-OSDeployBootUSB
```

```powershell
# Create a new OSDeploy USB with custom partition labels
New-OSDeployBootUSB -BootLabel 'WinPE' -DataLabel 'WinPE-Data'
```


# Update-OSDeployBootUSB

Updates an existing OSDeploy USB drive with new BootMedia from an OSDeployCore BootImage build.

| Property | Value                                                                                                      |
| -------- | ---------------------------------------------------------------------------------------------------------- |
| Module   | OSDeploy                                                                                                   |
| Platform | Windows 11 (amd64 / arm64)                                                                                 |
| Requires | Run as Administrator, a completed BootImage build, a USB drive previously created by `New-OSDeployBootUSB` |

## Description

Refreshes the BootMedia files on one or more existing OSDeploy USB drives without reformatting or repartitioning. The function:

* Prompts for selection of a completed BootImage from `%ProgramData%\OSDeployCore\boot`
* Prompts for the specific bootmedia folder (`bootmedia` or `bootmedia_ca2023`)
* Locates all connected USB volumes whose label matches `-BootLabel` (default: `OSDEPLOY`)
* Copies the selected media to each matching USB volume using `robocopy`
* Writes a `BootMedia.json` file to each updated volume

No partitioning or formatting is performed. Use `New-OSDeployBootUSB` to create a new bootable USB drive.

## Syntax

```powershell
Update-OSDeployBootUSB [-BootLabel <String>] [-DataLabel <String>] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter    | Type     | Required | Description                                                                                                          |
| ------------ | -------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| `-BootLabel` | `String` | No       | Volume label used to identify USB boot partitions to update. Max 11 characters. Default: `OSDEPLOY`.                 |
| `-DataLabel` | `String` | No       | Volume label used to identify the USB data partition when copying ESD files. Max 32 characters. Default: `OSDCloud`. |

## Examples

```powershell
# Update all connected USB volumes labeled 'OSDEPLOY'
Update-OSDeployBootUSB
```

```powershell
# Update all connected USB volumes labeled 'WinPE'
Update-OSDeployBootUSB -BootLabel 'WinPE'
```


# Get-OSDeployModulePath

Returns the file system path to the root directory of the OSDeploy module installation.

| Property | Value           |
| -------- | --------------- |
| Module   | OSDeploy        |
| Platform | Windows         |
| Output   | `System.String` |

## Description

Returns the absolute file system path to the root folder where the OSDeploy module is installed. This is useful for locating module-relative resources such as catalogs, templates, and support files.

## Syntax

```powershell
Get-OSDeployModulePath
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Return the path to the OSDeploy module directory
Get-OSDeployModulePath
```

Example output:

```
C:\Program Files\WindowsPowerShell\Modules\OSDeploy\26.5.1.1
```


# Get-OSDeployModuleVersion

Returns the currently loaded version of the OSDeploy module.

| Property | Value            |
| -------- | ---------------- |
| Module   | OSDeploy         |
| Platform | Windows          |
| Output   | `System.Version` |

## Description

Returns the version of the OSDeploy module currently loaded in the PowerShell session as a `System.Version` object. Useful for version checks, logging, and compatibility validation in scripts.

## Syntax

```powershell
Get-OSDeployModuleVersion
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Return the loaded OSDeploy module version
Get-OSDeployModuleVersion
```

Example output:

```
Major  Minor  Build  Revision
-----  -----  -----  --------
26     5      1      1
```


# Get-OSDeployCoreDrivers

Returns WinPE driver folders from the OSDeployCore library.

| Property | Value                      |
| -------- | -------------------------- |
| Module   | OSDeploy                   |
| Platform | Windows 11 (amd64 / arm64) |
| Requires | PowerShell 7.6             |
| Output   | `System.IO.DirectoryInfo`  |

## Description

Enumerates the `amd64` and `arm64` WinPE driver folders under both the module-managed library (`winpe-drivers`) and the user-managed library (`library\user`) beneath `$env:ProgramData\OSDeployCore\OSDRepo`. Returns a `System.IO.DirectoryInfo` object for each discovered folder.

Results are sorted by `Name` then `FullName`. Use `-Architecture` to limit results to a single architecture, `-SkipWifiDrivers` to exclude wireless-related folders, and `-Interactive` to present an Out-GridView picker before output is returned.

## Syntax

```powershell
Get-OSDeployCoreDrivers [-Architecture <String>] [-SkipWifiDrivers] [-Interactive]
```

## Parameters

| Parameter          | Type     | Required | Description                                                                                             |
| ------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------- |
| `-Architecture`    | `String` | No       | Limits results to `amd64` or `arm64`. When omitted, both architectures are returned.                    |
| `-SkipWifiDrivers` | `Switch` | No       | Excludes folders whose name contains `wifi` or `wireless` (case-insensitive).                           |
| `-Interactive`     | `Switch` | No       | Presents discovered folders in an Out-GridView picker. Only selected rows are passed through to output. |

## Examples

```powershell
# Return all WinPE driver folders for both architectures
Get-OSDeployCoreDrivers
```

```powershell
# Return only amd64 WinPE driver folders
Get-OSDeployCoreDrivers -Architecture amd64
```

```powershell
# Return amd64 folders, excluding Wi-Fi and Wireless entries
Get-OSDeployCoreDrivers -Architecture amd64 -SkipWifiDrivers
```

```powershell
# Open an Out-GridView picker and return only the selected folders
Get-OSDeployCoreDrivers -Interactive
```


# Import-OSDeployCoreOS

Imports Windows OS images from mounted Windows installation media to OSDeployCore.

| Property | Value                                                                    |
| -------- | ------------------------------------------------------------------------ |
| Module   | OSDeploy                                                                 |
| Platform | Windows 11 (amd64 / arm64)                                               |
| Requires | PowerShell 7.6, Run as Administrator, a mounted Windows installation ISO |

## Description

Extracts and imports Windows OS and WinRE images from mounted Windows installation media (ISO). The function:

1. Validates administrator privileges
2. Scans for mounted Windows installation media ISO files
3. Displays an Out-GridView selection dialog for available installation indexes
4. Exports the selected Windows image (`install.wim`) and all media files
5. Extracts WinRE, WinPE, and WinSE images with metadata
6. Backs up registry hives, boot files, and OS system files
7. Creates a parallel `windows-re` directory with WinRE-specific content

Imported images are stored under `$env:ProgramData\OSDeployCore` with a naming convention of `build.revision-architecture-editionid-language` (for example, `26200.8037-amd64-enterprise-en-us`). Duplicate imports are detected and skipped automatically.

Supports both amd64 and arm64 Windows 11 installation media.

{% hint style="info" %}
Mount the Windows installation ISO via File Explorer before running this function. The ISO must be mounted and visible as a drive letter.
{% endhint %}

## Syntax

```powershell
Import-OSDeployCoreOS [-WhatIf] [-Confirm]
```

## Parameters

This function has no named parameters. All selections are made via interactive Out-GridView dialogs.

## Examples

```powershell
# Scan for mounted Windows ISOs and import via interactive selection
Import-OSDeployCoreOS
```

```powershell
# Import with detailed verbose output showing each extraction step
Import-OSDeployCoreOS -Verbose
```


# Install-OSDeployMDT

Initializes an MDT Deployment Share for use with OSDeploy.

| Property | Value                               |
| -------- | ----------------------------------- |
| Module   | OSDeploy                            |
| Platform | Windows                             |
| Requires | MDT installed, Run as Administrator |

## Description

Configures an MDT Deployment Share so that `Invoke-OSDeployMDT` runs automatically on every **Update Deployment Share** operation.

Without `-Force`, the function runs in **audit mode** only — it reports the current state of the deployment share without making any changes.

With `-Force`, the function performs the following initialization steps:

1. Resolves the MDT installation directory and active Deployment Share path.
2. Creates `Templates\`, `Templates\winpe-drivers\`, and `Templates\winpe-extrafiles\` under the Deployment Share root.
3. Copies `winpeshl.ini`, `Wimscript.ini`, `Unattend_PE_x64.xml`, and `LiteTouchPE.xml` from the MDT templates directory into `DEPLOYROOT\Templates\`.
4. Copies `Background.bmp` from MDT Samples to `DEPLOYROOT\Templates\background.bmp`.
5. Rewrites `%INSTALLDIR%` references in `LiteTouchPE.xml` to use `%DEPLOYROOT%`.
6. Mirrors the `<Components>` element from `DEPLOYROOT\Boot\LiteTouchPE_x64.xml` into the template.
7. Registers `Invoke-OSDeployMDT` as the MDT LiteTouchPE exit command.
8. Updates `Control\Settings.xml`: disables x86, sets scratch space to 512 MB, sets wallpaper path.

Supports `-WhatIf` and `-Confirm`.

{% hint style="warning" %}
This function only needs to be run once per deployment share. Running it again with `-Force` will overwrite existing template files.
{% endhint %}

## Syntax

```powershell
Install-OSDeployMDT [-Force] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter | Type     | Required | Description                                                                                                      |
| --------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------- |
| `-Force`  | `Switch` | No       | Performs all initialization changes. Without this switch the function runs in audit mode and reports state only. |

## Examples

```powershell
# Audit the current deployment share state without making changes
Install-OSDeployMDT
```

```powershell
# Initialize (or reinitialize) the deployment share
Install-OSDeployMDT -Force
```

```powershell
# Preview what changes would be made without executing them
Install-OSDeployMDT -Force -WhatIf
```


# Install-OSDeploySoftware

Installs OS deployment prerequisite software on Windows.

| Property | Value                                                                                               |
| -------- | --------------------------------------------------------------------------------------------------- |
| Module   | OSDeploy                                                                                            |
| Platform | Windows 11 (amd64 / arm64)                                                                          |
| Requires | PowerShell 7.6; Administrator rights for ADK, MDT, and Hyper-V installs; winget for Git and VS Code |
| Output   | `System.Management.Automation.PSCustomObject`                                                       |

## Description

Single entry point for setting up a Windows workstation with all tools commonly required for OS deployment work.

Without `-Force`, the function runs in **preview mode**: it returns a table showing each requested component's name, download source, documentation link, and the exact command needed to install it.

Add `-Force` to perform the actual installation.

Supported components:

| Name            | Full Name                                  | Install Method                  |
| --------------- | ------------------------------------------ | ------------------------------- |
| `adk-25h2`      | Windows ADK 10.1.26100.2454 + WinPE add-on | `curl.exe` download             |
| `adk-26h1`      | Windows ADK 10.1.28000.1 + WinPE add-on    | `curl.exe` download             |
| `mdt`           | Microsoft Deployment Toolkit 6.3.8456.1000 | `curl.exe` download             |
| `git`           | Git for Windows                            | winget                          |
| `code`          | Visual Studio Code (stable)                | winget                          |
| `code-insiders` | Visual Studio Code Insiders (pre-release)  | winget                          |
| `hyperv`        | Hyper-V Windows optional feature           | `Enable-WindowsOptionalFeature` |
| `7zip`          | 7-Zip                                      | winget                          |

When `-Name` is omitted, the function returns a list of all available components and the exact command to install each one. No changes are made.

## Syntax

```powershell
Install-OSDeploySoftware [[-Name] <String[]>] [-Force] [-DownloadOnly] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter       | Type       | Required | Description                                                                                                                                             |
| --------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-Name`         | `String[]` | No       | One or more component names to inspect or install. Accepts alias `-Component`. When omitted, lists all available components.                            |
| `-Force`        | `Switch`   | No       | Performs the installation. Without this switch the command runs in preview mode only.                                                                   |
| `-DownloadOnly` | `Switch`   | No       | Downloads installers to the cache without installing. Not supported for winget- or feature-based components (`git`, `code`, `code-insiders`, `hyperv`). |

## Examples

```powershell
# List all available components and the install command for each
Install-OSDeploySoftware
```

```powershell
# Preview what would be installed for Windows ADK 26H1
Install-OSDeploySoftware -Name 'adk-26h1'
```

```powershell
# Install Windows ADK 26H1 and its WinPE add-on
Install-OSDeploySoftware -Name 'adk-26h1' -Force
```

```powershell
# Install Git for Windows, Visual Studio Code, and VS Code Insiders
Install-OSDeploySoftware -Name 'git', 'code', 'code-insiders' -Force
```

```powershell
# Install 7-Zip
Install-OSDeploySoftware -Name '7zip' -Force
```

```powershell
# Download the MDT installer without installing
Install-OSDeploySoftware -Name 'mdt' -DownloadOnly
```

```powershell
# Install MDT
Install-OSDeploySoftware -Name 'mdt' -Force
```


# Invoke-OSDeployMDT

MDT LiteTouchPE exit script — runs automatically on every Update Deployment Share.

| Property | Value                                                                     |
| -------- | ------------------------------------------------------------------------- |
| Module   | OSDeploy                                                                  |
| Platform | Windows (MDT deployment share host)                                       |
| Requires | MDT installed, `Install-OSDeployMDT` previously run, Run as Administrator |

## Description

Called automatically by MDT as a LiteTouchPE exit script at each stage of the **Update Deployment Share** operation. The function reads the `$Env:STAGE` environment variable to determine which actions to take.

If `$Env:STAGE` is not set (for example, when the function is run manually), it displays help and returns without making changes.

**STAGE = WIM** (mounted WinPE image available):

* Collects EFI boot files and ADK `oscdimg` binaries to `DEPLOYROOT\Boot\bootbins\`
* Copies ADK OA3Tool to WinPE `System32`
* Applies DISM locale and time-zone settings
* Adds PackageManagement and PowerShellGet modules to WinPE
* Adds AzCopy, curl, and 7-Zip (`7zr.exe`) to WinPE `System32`
* Saves the OSDCloud PowerShell module into the WinPE image
* Injects WinPE drivers via an interactive picker

**STAGE = POSTISO**:

* Builds a patched ISO with `bootmgfw_EX.efi` for UEFI CA 2023 Secure Boot compatibility

MDT environment variables consumed: `STAGE`, `CONTENT`, `ARCHITECTURE`, `INSTALLDIR`, `DEPLOYROOT`.

## Syntax

```powershell
Invoke-OSDeployMDT [-SetInputLocale <String>] [-SetTimeZone <String>]
```

## Parameters

| Parameter         | Type     | Required | Description                                                                                     |
| ----------------- | -------- | -------- | ----------------------------------------------------------------------------------------------- |
| `-SetInputLocale` | `String` | No       | Sets the default input locale in WinPE. Default: `en-us`.                                       |
| `-SetTimeZone`    | `String` | No       | Sets the WinPE time zone. Validated against `tzutil /l`. Default: the current system time zone. |

## Examples

```powershell
# Run exit customization using current system locale and time zone
Invoke-OSDeployMDT
```

```powershell
# Run with a specific time zone
Invoke-OSDeployMDT -SetTimeZone 'Romance Standard Time'
```


# New-OSDeployHyperVM

Creates a Hyper-V virtual machine pre-configured for OSDeploy testing.

| Property | Value                                                 |
| -------- | ----------------------------------------------------- |
| Module   | OSDeploy                                              |
| Platform | Windows 11 (amd64 / arm64)                            |
| Requires | PowerShell 7.6, Hyper-V enabled, Run as Administrator |
| Output   | `System.Management.Automation.PSCustomObject`         |

## Description

Creates a new Hyper-V VM with configurable generation, memory, processor count, virtual disk size, display resolution, virtual switch, and Secure Boot template. If `-ISO` is provided, the ISO is mounted to the VM's DVD drive. If `-ISO` is omitted, the function searches for the latest `bootmedia.iso` under `$env:ProgramData\OSDeployCore\boot\` and mounts it automatically. If no ISO is found, the VM is created with an empty DVD drive.

## Syntax

```powershell
New-OSDeployHyperVM [-ISO <String>] [-NamePrefix <String>] [-Generation <UInt16>]
    [-MemoryStartupGB <UInt16>] [-ProcessorCount <UInt16>] [-VHDSizeGB <UInt16>]
    [-DisplayResolution <String>] [-SwitchName <String>]
    [-SecureBootTemplate <String>] [-CheckpointVM <bool>] [-StartVM <bool>]
    [-WhatIf] [-Confirm]
```

## Parameters

| Parameter             | Type     | Required | Default            | Description                                                                                                                               |
| --------------------- | -------- | -------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `-ISO`                | `String` | No       | Auto-detected      | Path to a boot ISO to mount. Must be an `.iso` file. If omitted, the latest `bootmedia.iso` under OSDeployCore is used automatically.     |
| `-NamePrefix`         | `String` | No       | `OSDeploy`         | Prefix for the generated VM name. The final name is timestamped.                                                                          |
| `-Generation`         | `UInt16` | No       | `2`                | VM generation. Valid values: `1` or `2`.                                                                                                  |
| `-MemoryStartupGB`    | `UInt16` | No       | `8`                | Startup memory in GB. Valid range: 2–64.                                                                                                  |
| `-ProcessorCount`     | `UInt16` | No       | `2`                | Number of virtual processors. Valid range: 1–64.                                                                                          |
| `-VHDSizeGB`          | `UInt16` | No       | `64`               | Virtual disk size in GB. Valid range: 8–512.                                                                                              |
| `-DisplayResolution`  | `String` | No       | `1600x900`         | Display resolution for the VM video adapter. Supports common resolutions from `640x480` to `4096x2160`.                                   |
| `-SwitchName`         | `String` | No       | `Default Switch`   | Virtual switch name. Falls back to the first available switch if `Default Switch` is not found.                                           |
| `-SecureBootTemplate` | `String` | No       | `MicrosoftWindows` | Secure Boot template for Generation 2 VMs. Valid values: `MicrosoftWindows`, `MicrosoftUEFICertificateAuthority`, `OpenSourceShieldedVM`. |
| `-CheckpointVM`       | `bool`   | No       | `$true`            | Create an initial checkpoint after VM creation.                                                                                           |
| `-StartVM`            | `bool`   | No       | `$true`            | Start the VM after creation.                                                                                                              |

## Examples

```powershell
# Create a VM with all defaults; auto-selects the latest bootmedia.iso
New-OSDeployHyperVM
```

```powershell
# Create a VM and mount a specific ISO; start the VM after creation
New-OSDeployHyperVM -ISO 'D:\ISO\WinPE.iso' -StartVM $true
```

```powershell
# Create a Generation 1 VM with 4 GB RAM and a 128 GB disk, do not start it
New-OSDeployHyperVM -Generation 1 -MemoryStartupGB 4 -VHDSizeGB 128 -StartVM $false
```


# Update-OSDeployBootISO

Rebuilds the bootable ISO files for a selected OSDeployCore BootImage build.

| Property | Value                                                                    |
| -------- | ------------------------------------------------------------------------ |
| Module   | OSDeploy                                                                 |
| Platform | Windows 10 or later (PowerShell Core edition)                            |
| Requires | Run as Administrator, Windows ADK installed, a completed BootImage build |

## Description

Regenerates the ISO files (`bootmedia.iso` and optionally `bootmedia_ca2023.iso`) for a selected completed BootImage from `%ProgramData%\OSDeployCore\boot`. The existing `bootmedia` directory content is used as-is — no DISM mount or WIM modification is performed.

The function:

* Prompts for selection of a completed BootImage build
* Verifies the Windows ADK is installed
* Uses the installed ADK's `oscdimg.exe` to rebuild the ISO(s)
* Places the resulting ISOs in the BootImage's root directory

Use this function when you need to regenerate an ISO from existing bootmedia files without rebuilding the entire WinPE image. Use `Build-OSDeployBoot` to perform a full rebuild.

## Syntax

```powershell
Update-OSDeployBootISO
```

## Parameters

This function has no parameters. The BootImage selection is made via an interactive Out-GridView picker.

## Examples

```powershell
# Prompt for a BootImage build selection and rebuild its ISO files
Update-OSDeployBootISO
```


# Update-OSDeployCoreDrivers

Downloads and expands WinPE driver packages into the OSDeployCore library.

| Property | Value                           |
| -------- | ------------------------------- |
| Module   | OSDeploy                        |
| Platform | Windows 11 (amd64 / arm64)      |
| Requires | PowerShell 7.6, internet access |
| Output   | `System.IO.FileInfo`            |

## Description

Refreshes the requested catalog sources, resolves the matching WinPE driver packages, and downloads and expands the selected packages to `$env:ProgramData\OSDeployCore`.

All matching packages are processed automatically without prompting. Use `-Name` to limit the refresh to one or more specific sources, `-SkipWifiDrivers` to exclude wireless packages, and `-DownloadOnly` to cache files without expanding them.

Wi-Fi driver sources are excluded automatically when no imported OS sources are present — ADK WinPE does not support wireless hardware, so Wi-Fi drivers are only needed when a WinRE-based boot image will be built.

After downloading, drivers are injected into WinPE at build time by `Build-OSDeployBoot`.

## Syntax

```powershell
Update-OSDeployCoreDrivers [[-Name] <String[]>] [-Force] [-SkipWifiDrivers] [-DownloadOnly] [[-Architecture] <String>] [-WhatIf] [-Confirm]
```

## Parameters

| Parameter          | Type       | Required | Description                                                                                                                        |
| ------------------ | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `-Name`            | `String[]` | No       | One or more source names to refresh and process. When omitted, all configured sources are refreshed.                               |
| `-Force`           | `Switch`   | No       | Re-downloads driver packages even when a matching cached file already exists.                                                      |
| `-SkipWifiDrivers` | `Switch`   | No       | Excludes Wi-Fi driver packages (`intel-wifi`, `microsoft-windows-wifi`). Enforced automatically when no imported OS sources exist. |
| `-DownloadOnly`    | `Switch`   | No       | Downloads packages to the cache without expanding them. No `package.json` metadata is written.                                     |
| `-Architecture`    | `String`   | No       | Limits driver downloads to a single architecture: `amd64` or `arm64`. When omitted, all architectures are processed.               |

## Examples

```powershell
# Refresh the Dell catalog and download all matching packages
Update-OSDeployCoreDrivers -Name 'dell'
```

```powershell
# Refresh Dell and HP catalogs, preview without executing
Update-OSDeployCoreDrivers -Name 'dell', 'hp' -WhatIf
```

```powershell
# Refresh all configured sources and download all available packages
Update-OSDeployCoreDrivers
```

```powershell
# Refresh all configured sources, excluding Wi-Fi packages
Update-OSDeployCoreDrivers -SkipWifiDrivers
```


# OSDCloud Module

The OSDCloud module is the current, recommended PowerShell module for deploying Windows 11 from WinPE using cloud-based OS images and vendor driver packs.

| Property     | Value                                                                                           |
| ------------ | ----------------------------------------------------------------------------------------------- |
| Publisher    | Community / David Segura                                                                        |
| Gallery      | [powershellgallery.com/packages/OSDCloud](https://www.powershellgallery.com/packages/OSDCloud/) |
| Platform     | WinPE (Windows Preinstallation Environment)                                                     |
| Architecture | amd64 / arm64                                                                                   |
| Status       | Current / Recommended                                                                           |
| Required by  | OSDCloud deployment workflows                                                                   |

{% embed url="<https://www.powershellgallery.com/packages/OSDCloud/>" %}

## Overview

The OSDCloud module runs **inside WinPE** and handles the full cloud-based OS deployment workflow: it downloads the Windows 11 image from Microsoft, downloads OEM driver packs from vendor CDNs (HP, Dell, Lenovo, and others), applies the OS, and configures the device for first boot. It does not require a deployment server — all content is downloaded at runtime over the network.

The OSDCloud module supersedes the OSDCloud v1 implementation that existed in the OSD module. It is the preferred module for all new OSDCloud deployments.

## Why OSDCloud Is Preferred Over OSD for OSDCloud Workflows

* Actively maintained with first-class support for current Windows 11 releases
* Dedicated module with a focused scope — not bundled with unrelated functions
* OSDCloud v1 in the OSD module is legacy; the OSDCloud module receives feature development
* Supports both amd64 and arm64 WinPE environments

{% hint style="info" %}
The OSDCloud module is used **in WinPE** during deployment, not on the Windows 11 build machine. Install it into the WinPE image or run `Install-Module` from within a WinPE session.
{% endhint %}

## Install

```powershell
Install-Module -Name OSDCloud -Force -SkipPublisherCheck
```

***

## Related

* [OSDCloud on PowerShell Gallery](https://www.powershellgallery.com/packages/OSDCloud/)
* [OSD Module](https://github.com/OSDeploy/osdeploy.com/blob/main/powershell-modules/osdcloud/osd-module.md) — Legacy module; OSDCloud v1
* [OSDeploy Module](https://github.com/OSDeploy/osdeploy.com/blob/main/powershell-modules/osdcloud/osdeploy/README.md) — Boot image creation on Windows 11

***

## Functions

The OSDCloud module exports public functions across two environments: the full Windows OS and WinPE.

### Module Utilities

| Function                                                                            | Description                                                        |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| [Get-OSDCloudModulePath](/powershell-modules/osdcloud/get-osdcloudmodulepath)       | Returns the file system path to the OSDCloud module root directory |
| [Get-OSDCloudModuleVersion](/powershell-modules/osdcloud/get-osdcloudmoduleversion) | Returns the currently loaded OSDCloud module version               |

### Deployment

| Function                                                        | Description                                                                                       |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| [Deploy-OSDCloud](/powershell-modules/osdcloud/deploy-osdcloud) | Starts an OSDCloud OS deployment — launches the graphical UX or runs the CLI workflow immediately |

### Device Information

| Function                                                                        | Description                                                                               |
| ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [Show-OSDCloudDeviceInfo](/powershell-modules/osdcloud/show-osdclouddeviceinfo) | Displays comprehensive WinPE device and hardware information during OS deployment startup |

### Tools

| Function                                                                      | Description                                                     |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [Start-OSDCloudExplorer](/powershell-modules/osdcloud/start-osdcloudexplorer) | Opens a graphical file browser for WinPE and WinRE environments |

### WinPE Startup

These functions run only inside WinPE (`SystemDrive == X:`).

| Function                                                                                    | Description                                                                  |
| ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [Invoke-WinPEStartup](/powershell-modules/osdcloud/invoke-winpestartup)                     | Runs the full OSDCloud WinPE startup workflow from a single entry point      |
| [Invoke-WinPEStartupManager](/powershell-modules/osdcloud/invoke-winpestartupmanager)       | Invokes a WinPE startup utility action by Id                                 |
| [Show-WinPEStartupDeviceErrors](/powershell-modules/osdcloud/show-winpestartupdeviceerrors) | Displays WinPE Plug and Play devices with non-OK status                      |
| [Show-WinPEStartupDevices](/powershell-modules/osdcloud/show-winpestartupdevices)           | Displays the full WinPE Plug and Play device inventory                       |
| [Show-WinPEStartupIpconfig](/powershell-modules/osdcloud/show-winpestartupipconfig)         | Displays IP configuration details in WinPE                                   |
| [Show-WinPEStartupWifi](/powershell-modules/osdcloud/show-winpestartupwifi)                 | Establishes and validates Wi-Fi connectivity in WinPE                        |
| [Update-WinPEStartupModule](/powershell-modules/osdcloud/update-winpestartupmodule)         | Installs or updates a PowerShell module from the PowerShell Gallery in WinPE |


# Deploy-OSDCloud

Starts an OSDCloud operating system deployment.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSDCloud              |
| Platform | WinPE (amd64 / arm64) |
| Requires | OSDCloud module       |

## Description

Initializes and runs an OSDCloud deployment workflow. By default, launches the graphical UI (UX) so the operator can configure deployment settings before starting. Use `-CLI` to skip the UI and run the workflow immediately in the current console session.

OSDCloud collects anonymous analytic data about the deployment environment and system configuration to help improve the product. No personally identifiable information (PII) is collected. By using OSDCloud you consent to this collection as described in the [privacy policy](https://github.com/OSDeploy/OSDCloud/blob/main/PRIVACY.md).

## Syntax

```powershell
Deploy-OSDCloud [[-WorkflowName] <String>] [-CLI] [<CommonParameters>]
```

## Parameters

| Parameter       | Type     | Required | Description                                                                                                                              |
| --------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `-WorkflowName` | `String` | No       | The name of the OSDCloud workflow to run. Default: `default`. Alias: `Name`. Available workflows are in the module's `workflow\` folder. |
| `-CLI`          | `Switch` | No       | Skips the graphical UX and runs the deployment workflow immediately in the current console session.                                      |

## Examples

```powershell
# Launch the graphical UX for the default workflow
Deploy-OSDCloud
```

```powershell
# Run the default workflow immediately without the UX
Deploy-OSDCloud -CLI
```

```powershell
# Launch the graphical UX for the 'latest' workflow
Deploy-OSDCloud -WorkflowName 'latest'
```


# Get-OSDCloudModulePath

Returns the base directory path of the OSDCloud module.

| Property | Value           |
| -------- | --------------- |
| Module   | OSDCloud        |
| Platform | Windows         |
| Output   | `System.String` |

## Description

Returns the file system path to the root folder where the OSDCloud module is installed. Useful for locating module-relative resources such as catalogs, templates, and support files.

## Syntax

```powershell
Get-OSDCloudModulePath
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Return the path to the OSDCloud module directory
Get-OSDCloudModulePath
```

Example output:

```
C:\Program Files\WindowsPowerShell\Modules\OSDCloud\1.0.0
```


# Get-OSDCloudModuleVersion

Returns the version of the OSDCloud module.

| Property | Value            |
| -------- | ---------------- |
| Module   | OSDCloud         |
| Platform | Windows          |
| Output   | `System.Version` |

## Description

Returns the currently loaded version of the OSDCloud module as a `System.Version` object. Useful for version checks, logging, and compatibility validation in scripts.

## Syntax

```powershell
Get-OSDCloudModuleVersion
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Return the loaded OSDCloud module version
Get-OSDCloudModuleVersion
```

Example output:

```
Major  Minor  Build  Revision
-----  -----  -----  --------
26     5      1      1
```


# Show-OSDCloudDeviceInfo

Displays comprehensive WinPE device and hardware information during OS deployment startup.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSDCloud              |
| Platform | WinPE (amd64 / arm64) |
| Requires | OSDCloud module       |

## Description

Gathers and displays detailed hardware and environment information in Windows PE, including system specifications, device identifiers, processor details, memory configuration, disk drives, and network adapters. Initializes the OSDCloud device environment and exports hardware WMI data to log files in `$env:TEMP\osdcloud-logs`.

Validates system memory and warns if the device has less than 6 GB RAM.

Information displayed:

* OSDCloud module version
* WinPE version, architecture, and hostname
* System manufacturer, model, and BIOS
* Processor details and memory (GB)
* Disk drives
* Network adapters with MAC addresses

Serial number and UUID are suppressed for privacy.

{% hint style="info" %}
Log files `Win32_DiskDrive.txt` and `Win32_NetworkAdapter.txt` are written to `$env:TEMP\osdcloud-logs` for later reference.
{% endhint %}

## Syntax

```powershell
Show-OSDCloudDeviceInfo
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Display comprehensive WinPE device and hardware information
Show-OSDCloudDeviceInfo
```


# Start-OSDCloudExplorer

Opens a graphical file browser for WinPE and WinRE environments.

| Property | Value                                             |
| -------- | ------------------------------------------------- |
| Module   | OSDCloud                                          |
| Platform | WinPE / WinRE                                     |
| Requires | `WinPE-NetFX` and `WinPE-PowerShell` ADK packages |

## Description

Provides a Windows Forms file browser with TreeView, ListView, Up navigation, and keyboard shortcuts. Designed for use in Windows PE and Windows RE where Windows Explorer is not available.

{% hint style="info" %}
The WinPE boot image must include the `WinPE-NetFX` and `WinPE-PowerShell` ADK optional components for this function to work.
{% endhint %}

## Syntax

```powershell
Start-OSDCloudExplorer
```

## Parameters

This function has no user-facing parameters.

{% hint style="info" %}
The internal `-DirectLaunch` parameter is used by the function to spawn a child process that runs the WinForms UI inline. It is hidden from tab-completion and not intended for direct use.
{% endhint %}

## Examples

```powershell
# Open the graphical file browser in WinPE or WinRE
Start-OSDCloudExplorer
```


# Invoke-WinPEStartup

Runs the WinPE startup workflow for OSDCloud.

| Property | Value                              |
| -------- | ---------------------------------- |
| Module   | OSDCloud                           |
| Platform | WinPE only (`SystemDrive == X:`)   |
| Requires | OSDCloud module, WinPE environment |

{% hint style="info" %}
This function only runs in WinPE. When called from a full Windows OS, it writes a warning and exits without performing any actions.
{% endhint %}

## Description

Executes the OSDCloud WinPE startup sequence from a single entry point. Optionally loads defaults from module JSON, discovers and applies a startup profile, then runs startup steps in order: environment setup, drivers, files, hardware checks, connectivity, module updates, script execution, and optional URL or command invocations.

HTTP and HTTPS entries in `-InvokeStartupCommand`, `-InvokeMainCommand`, and `-InvokeShutdownCommand` are automatically wrapped as `Invoke-RestMethod -Uri <url> | Invoke-Expression`.

## Syntax

```powershell
Invoke-WinPEStartup
    [-SkipOnScreenKeyboard]
    [-ShowPnpDevices]
    [-ShowPnpErrors]
    [-SkipWiFi]
    [-SkipIPConfig]
    [-SkipUpdateOSDCloud]
    [-InstallModule <String[]>]
    [-InvokeStartupCommand <String[]>]
    [-InvokeStartupCommandNoExit]
    [-InvokeStartupCommandEA <String>]
    [-InvokeMainCommand <String[]>]
    [-InvokeMainCommandNoExit]
    [-InvokeMainCommandEA <String>]
    [-InvokeShutdownCommand <String[]>]
    [-InvokeShutdownCommandNoExit]
    [-InvokeShutdownCommandEA <String>]
```

## Parameters

| Parameter                      | Type       | Default    | Description                                                                             |
| ------------------------------ | ---------- | ---------- | --------------------------------------------------------------------------------------- |
| `-SkipOnScreenKeyboard`        | `Switch`   | —          | Skips launching the on-screen keyboard check.                                           |
| `-ShowPnpDevices`              | `Switch`   | —          | Shows the PnP device hardware window (`Show-WinPEStartupDevices`). Hidden by default.   |
| `-ShowPnpErrors`               | `Switch`   | —          | Shows the PnP device error window (`Show-WinPEStartupDeviceErrors`). Hidden by default. |
| `-SkipWiFi`                    | `Switch`   | —          | Skips Wi-Fi startup and connection checks.                                              |
| `-SkipIPConfig`                | `Switch`   | —          | Skips displaying IP configuration details.                                              |
| `-SkipUpdateOSDCloud`          | `Switch`   | —          | Skips updating the OSDCloud module during startup.                                      |
| `-InstallModule`               | `String[]` | —          | One or more additional PowerShell module names to install or update during startup.     |
| `-InvokeStartupCommand`        | `String[]` | —          | PowerShell commands or URLs to execute during the startup phase.                        |
| `-InvokeStartupCommandNoExit`  | `Switch`   | —          | Keeps the child PowerShell window open after startup commands complete.                 |
| `-InvokeStartupCommandEA`      | `String`   | `Continue` | Error action for the startup command child process. Valid values: `Continue`, `Stop`.   |
| `-InvokeMainCommand`           | `String[]` | —          | PowerShell commands or URLs to execute during the main phase.                           |
| `-InvokeMainCommandNoExit`     | `Switch`   | —          | Keeps the child PowerShell window open after main commands complete.                    |
| `-InvokeMainCommandEA`         | `String`   | `Continue` | Error action for the main command child process. Valid values: `Continue`, `Stop`.      |
| `-InvokeShutdownCommand`       | `String[]` | —          | PowerShell commands or URLs to execute during the shutdown phase.                       |
| `-InvokeShutdownCommandNoExit` | `Switch`   | —          | Keeps the child PowerShell window open after shutdown commands complete.                |
| `-InvokeShutdownCommandEA`     | `String`   | `Continue` | Error action for the shutdown command child process. Valid values: `Continue`, `Stop`.  |

## Examples

```powershell
# Run the default WinPE startup sequence
Invoke-WinPEStartup
```

```powershell
# Run with detailed verbose output
Invoke-WinPEStartup -Verbose
```

```powershell
# Skip Wi-Fi and IP configuration steps
Invoke-WinPEStartup -SkipWiFi -SkipIPConfig
```

```powershell
# Run a PSCloudScript URL during the main phase
Invoke-WinPEStartup -InvokeMainCommand 'https://raw.githubusercontent.com/OSDeploy/OSDCloud/main/Deploy-OSDCloud.ps1'
```


# Invoke-WinPEStartupManager

Invokes a WinPE startup utility action by Id.

| Property | Value                              |
| -------- | ---------------------------------- |
| Module   | OSDCloud                           |
| Platform | WinPE only                         |
| Requires | OSDCloud module, WinPE environment |

{% hint style="info" %}
This function is called internally by `Invoke-WinPEStartup` to dispatch individual startup actions. It can also be called directly to run a specific startup action on demand.
{% endhint %}

## Description

Routes WinPE startup actions to the corresponding helper command by action Id. Supported actions include on-screen keyboard handling, PnP hardware and error display, network utilities, and module update operations.

## Syntax

```powershell
Invoke-WinPEStartupManager [-Id] <String> [[-Value] <String>]
```

## Parameters

| Parameter | Type     | Required | Description                                                                                                                      |
| --------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `-Id`     | `String` | Yes      | The startup action to invoke. Valid values: `OSK`, `DeviceErrors`, `DeviceHardware`, `Info`, `IPConfig`, `UpdateModule`, `WiFi`. |
| `-Value`  | `String` | No       | Optional value used by specific actions. For `UpdateModule`, set this to the module name to install or update.                   |

## Examples

```powershell
# Launch on-screen keyboard if no physical keyboard is detected
Invoke-WinPEStartupManager -Id OSK
```

```powershell
# Display non-OK PnP device status
Invoke-WinPEStartupManager -Id DeviceErrors
```

```powershell
# Display PnP device hardware details
Invoke-WinPEStartupManager -Id DeviceHardware
```

```powershell
# Show comprehensive device information
Invoke-WinPEStartupManager -Id Info
```

```powershell
# Launch IPConfig in a minimized window
Invoke-WinPEStartupManager -Id IPConfig
```

```powershell
# Start the Wi-Fi connection workflow
Invoke-WinPEStartupManager -Id WiFi
```

```powershell
# Update the OSDCloud module
Invoke-WinPEStartupManager -Id UpdateModule -Value OSDCloud
```


# Show-WinPEStartupDeviceErrors

Displays WinPE Plug and Play devices with non-OK status.

| Property | Value                              |
| -------- | ---------------------------------- |
| Module   | OSDCloud                           |
| Platform | WinPE only                         |
| Requires | OSDCloud module, WinPE environment |

{% hint style="warning" %}
This function exits the host process after displaying results. Do not call it in an interactive session where you need to continue running commands afterward.
{% endhint %}

## Description

Queries `Win32_PnPEntity` and displays devices where the status is not `OK`. Writes a warning that the window will close, displays results in table format, waits 5 seconds, then exits the host process.

## Syntax

```powershell
Show-WinPEStartupDeviceErrors
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Display detected PnP device errors during WinPE startup
Show-WinPEStartupDeviceErrors
```


# Show-WinPEStartupDevices

Displays the WinPE Plug and Play device inventory.

| Property | Value                              |
| -------- | ---------------------------------- |
| Module   | OSDCloud                           |
| Platform | WinPE only                         |
| Requires | OSDCloud module, WinPE environment |

{% hint style="info" %}
This function also copies the source query command to the clipboard for reuse in the WinPE console.
{% endhint %}

## Description

Queries `Win32_PnPEntity` and displays device class, status, IDs, and manufacturer details in table format.

## Syntax

```powershell
Show-WinPEStartupDevices
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Display Plug and Play hardware information in WinPE
Show-WinPEStartupDevices
```


# Show-WinPEStartupIpconfig

Displays IP configuration details in WinPE.

| Property | Value                              |
| -------- | ---------------------------------- |
| Module   | OSDCloud                           |
| Platform | WinPE only                         |
| Requires | OSDCloud module, WinPE environment |

## Description

Runs `ipconfig /all` to display network adapter and IP addressing details. Typically used during WinPE startup troubleshooting to confirm network connectivity and address assignment.

## Syntax

```powershell
Show-WinPEStartupIpconfig
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Display full network adapter and IP configuration details in WinPE
Show-WinPEStartupIpconfig
```


# Show-WinPEStartupWifi

Establishes and validates Wi-Fi connectivity in WinPE.

| Property | Value                                                          |
| -------- | -------------------------------------------------------------- |
| Module   | OSDCloud                                                       |
| Platform | WinPE only                                                     |
| Requires | OSDCloud module, WinPE environment, Wi-Fi hardware, Wi-Fi DLLs |

{% hint style="info" %}
Wi-Fi startup is skipped automatically if any of the required DLLs are missing from the WinPE image.
{% endhint %}

## Description

Performs Wi-Fi startup operations for WinPE. If internet access is not detected, validates required wireless components and attempts to connect using configured options or an interactive Wi-Fi flow. Then validates local IP assignment and renews DHCP leases when needed.

The following DLLs must be present in the WinPE image for Wi-Fi to start:

* `dmcmnutils.dll`
* `mdmpostprocessevaluator.dll`
* `mdmregistration.dll`
* `raschap.dll`
* `raschapext.dll`
* `rastls.dll`
* `rastlsext.dll`

If any of these DLLs are missing, the function exits without attempting a connection.

## Syntax

```powershell
Show-WinPEStartupWifi
```

## Parameters

This function has no parameters.

## Examples

```powershell
# Attempt to establish Wi-Fi connectivity and validate network initialization
Show-WinPEStartupWifi
```


# Update-WinPEStartupModule

Installs or updates a PowerShell module from the PowerShell Gallery in WinPE.

| Property | Value                                               |
| -------- | --------------------------------------------------- |
| Module   | OSDCloud                                            |
| Platform | WinPE only                                          |
| Requires | OSDCloud module, WinPE environment, internet access |

{% hint style="info" %}
This function uses `AllUsers` scope with `-Force` and `-SkipPublisherCheck`. A 10-second countdown is displayed before installation begins.
{% endhint %}

## Description

Installs the latest version of a specified PowerShell module using `Install-Module` with `AllUsers` scope, then imports the module with `-Force`. A 10-second countdown is displayed before installation begins to allow the operator to observe the update.

## Syntax

```powershell
Update-WinPEStartupModule -Name <String>
```

## Parameters

| Parameter | Type     | Required | Description                                                                  |
| --------- | -------- | -------- | ---------------------------------------------------------------------------- |
| `-Name`   | `String` | Yes      | The PowerShell module name to install or update from the PowerShell Gallery. |

## Examples

```powershell
# Update the OSDCloud module and import it
Update-WinPEStartupModule -Name OSDCloud
```

```powershell
# Install or update the PSDiskPart module
Update-WinPEStartupModule -Name PSDiskPart
```


# OSD Module

The OSD module is a maintained PowerShell module that provides WinPE-based Windows deployment and is the original home of OSDCloud (v1).

{% hint style="warning" %}
For OSDCloud deployments, use the **OSDCloud** module instead of OSD. The OSDCloud module supersedes the OSDCloud v1 implementation in OSD. The OSD module is maintained but the OSDCloud module is preferred for all new work.
{% endhint %}

| Property             | Value                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------- |
| Publisher            | Community / David Segura                                                              |
| Gallery              | [powershellgallery.com/packages/OSD](https://www.powershellgallery.com/packages/OSD/) |
| Platform             | WinPE                                                                                 |
| Architecture         | amd64 / arm64                                                                         |
| Status               | Maintained (OSDCloud v1 / legacy)                                                     |
| Functions Documented | 346                                                                                   |

{% embed url="<https://www.powershellgallery.com/packages/OSD/>" %}

## Overview

The OSD module was the original host of OSDCloud. The OSDCloud functionality was later extracted into the dedicated **OSDCloud** module, which is the current, recommended choice for all new deployments. The OSD module continues to be maintained and is required for environments that have existing OSDCloud v1 workflows or scripts built against it. For any new deployment project, start with the OSDCloud module.

## When to Use the OSD Module

* Your existing scripts use `Start-OSDCloud` or other OSD-based OSDCloud v1 commands
* Your WinPE image was built with OSD-based tooling and you have not yet migrated
* You have a specific OSD function dependency outside of OSDCloud v1

## Install

```powershell
Install-Module -Name OSD -Force -SkipPublisherCheck
```

***

## Related

* [OSD on PowerShell Gallery](https://www.powershellgallery.com/packages/OSD/)
* [OSDCloud Module](/powershell-modules/osdcloud) — Current, recommended module for OSDCloud deployments
* [OSDeploy Module](/powershell-modules/osdeploy) — Boot image creation on Windows 11

***

## Functions

The OSD module exports a large public function set. Use the groups below to find each function reference page.

### Add Functions

| Function                                                               | Description                                                  |
| ---------------------------------------------------------------------- | ------------------------------------------------------------ |
| [Add-7Zip2BootImage](/powershell-modules/osd/add-7zip2bootimage)       | Adds 7-Zip command-line binaries to a mounted Windows image. |
| [Add-WindowsPackageSSU](/powershell-modules/osd/add-windowspackagessu) | Adds a Servicing Stack Update package to Windows.            |

### Backup Functions

| Function                                                                 | Description                                                     |
| ------------------------------------------------------------------------ | --------------------------------------------------------------- |
| [Backup-DiskToFFU](/powershell-modules/osd/backup-disktoffu)             | Captures a physical disk to a Full Flash Update (FFU) image.    |
| [Backup-MyBitLockerKeys](/powershell-modules/osd/backup-mybitlockerkeys) | Saves available BitLocker key materials to one or more folders. |

### Block Functions

| Function                                                                             | Description                                                             |
| ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| [Block-AdminUser](/powershell-modules/osd/block-adminuser)                           | Blocks execution if the current user has Administrator rights           |
| [Block-ManufacturerNeLenovo](/powershell-modules/osd/block-manufacturernelenovo)     | Blocks execution if the computer is not manufactured by Lenovo          |
| [Block-NoCurl](/powershell-modules/osd/block-nocurl)                                 | Blocks execution if curl.exe is not available                           |
| [Block-NoInternet](/powershell-modules/osd/block-nointernet)                         | Blocks execution if internet connectivity is not available              |
| [Block-PowerShellVersionLt5](/powershell-modules/osd/block-powershellversionlt5)     | Blocks execution if PowerShell version is less than 5                   |
| [Block-StandardUser](/powershell-modules/osd/block-standarduser)                     | Blocks execution if the current user does not have Administrator rights |
| [Block-WindowsReleaseIdLt1703](/powershell-modules/osd/block-windowsreleaseidlt1703) | Blocks execution if Windows ReleaseId is less than 1703                 |
| [Block-WindowsVersionNe10](/powershell-modules/osd/block-windowsversionne10)         | Blocks execution if Windows major version is not 10                     |
| [Block-WinOS](/powershell-modules/osd/block-winos)                                   | Blocks execution if the system is not running WinPE                     |
| [Block-WinPE](/powershell-modules/osd/block-winpe)                                   | Blocks execution if the system is running WinPE                         |

### Clear Functions

| Function                                                   | Description                     |
| ---------------------------------------------------------- | ------------------------------- |
| [Clear-LocalDisk](/powershell-modules/osd/clear-localdisk) | Clears LocalDisk data or state. |
| [Clear-USBDisk](/powershell-modules/osd/clear-usbdisk)     | Clears USBDisk data or state.   |

### Connect Functions

| Function                                                               | Description                                                  |
| ---------------------------------------------------------------------- | ------------------------------------------------------------ |
| [Connect-OSDCloudAzure](/powershell-modules/osd/connect-osdcloudazure) | Connect to Azure and initialize OSDCloudAzure session state. |

### Convert Functions

| Function                                                                       | Description                                                |
| ------------------------------------------------------------------------------ | ---------------------------------------------------------- |
| [Convert-EsdToFolder](/powershell-modules/osd/convert-esdtofolder)             | Expands an ESD file into a Windows setup folder structure. |
| [Convert-EsdToIso](/powershell-modules/osd/convert-esdtoiso)                   | Converts an ESD file into an ISO image.                    |
| [Convert-EsdToWim](/powershell-modules/osd/convert-esdtowim)                   | Converts an ESD file into a WIM image.                     |
| [Convert-FolderToIso](/powershell-modules/osd/convert-foldertoiso)             | Creates an ISO file from a source folder.                  |
| [Convert-PNPDeviceIDtoGuid](/powershell-modules/osd/convert-pnpdeviceidtoguid) | Extracts GUID values from a PNP Device ID string.          |

### ConvertTo Functions

| Function                                                                         | Description                                   |
| -------------------------------------------------------------------------------- | --------------------------------------------- |
| [ConvertTo-PSKeyVaultSecret](/powershell-modules/osd/convertto-pskeyvaultsecret) | Converts a value to an Azure Key Vault Secret |

### Copy Functions

| Function                                                                           | Description                                                                       |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [Copy-IsoToUsb](/powershell-modules/osd/copy-isotousb)                             | Creates a bootable USB drive from a Windows ISO.                                  |
| [Copy-PSModuleToFolder](/powershell-modules/osd/copy-psmoduletofolder)             | Copies PowerShell modules to a destination module path.                           |
| [Copy-PSModuleToWim](/powershell-modules/osd/copy-psmoduletowim)                   | Copies PowerShell modules into an offline Windows image.                          |
| [Copy-PSModuleToWindowsImage](/powershell-modules/osd/copy-psmoduletowindowsimage) | Copies PowerShell modules to a mounted Windows image                              |
| [Copy-WinREWIM](/powershell-modules/osd/copy-winrewim)                             | Copies the Windows Recovery Environment WIM to the specified DestinationDirectory |

### Dismount Functions

| Function                                                                   | Description                                     |
| -------------------------------------------------------------------------- | ----------------------------------------------- |
| [Dismount-MyWindowsImage](/powershell-modules/osd/dismount-mywindowsimage) | Dismounts MyWindowsImage and finalizes changes. |

### Edit Functions

| Function                                                           | Description                                                           |
| ------------------------------------------------------------------ | --------------------------------------------------------------------- |
| [Edit-AdkWinPEWIM](/powershell-modules/osd/edit-adkwinpewim)       | Adds PowerShell and PowerShell Gallery support to ADK's x64 winpe.wim |
| [Edit-MyWindowsImage](/powershell-modules/osd/edit-mywindowsimage) | Edits MyWindowsImage content.                                         |
| [Edit-MyWinPE](/powershell-modules/osd/edit-mywinpe)               | Mounts and edits a WinPE WIM file                                     |
| [Edit-OSDCloudWinPE](/powershell-modules/osd/edit-osdcloudwinpe)   | Edits content by using Edit-OSDCloudWinPE.                            |

### Enable Functions

| Function                                                                                 | Description                                                      |
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| [Enable-OSDCloudODT](/powershell-modules/osd/enable-osdcloudodt)                         | Enables ODT Support in an OSDCloud Workspace                     |
| [Enable-PEWimPSGallery](/powershell-modules/osd/enable-pewimpsgallery)                   | Enables PowerShell Gallery functionality in a WinPE WIM file     |
| [Enable-PEWindowsImagePSGallery](/powershell-modules/osd/enable-pewindowsimagepsgallery) | Enables PowerShell Gallery in a mounted Windows image            |
| [Enable-SpecializeDriverPack](/powershell-modules/osd/enable-specializedriverpack)       | Configures driver pack expansion during Windows Specialize phase |

### Expand Functions

| Function                                                                   | Description                                                     |
| -------------------------------------------------------------------------- | --------------------------------------------------------------- |
| [Expand-StagedDriverPack](/powershell-modules/osd/expand-stageddriverpack) | Expands staged driver pack archives during Windows Setup        |
| [Expand-ZTIDriverPack](/powershell-modules/osd/expand-ztidriverpack)       | Expands driver packs during Lite Touch or Zero Touch deployment |

### Export Functions

| Function                                                                           | Description                                               |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------- |
| [Export-OSDCertificatesAsReg](/powershell-modules/osd/export-osdcertificatesasreg) | Exports selected LocalMachine certificates as .reg files. |

### Find Functions

| Function                                                                     | Description                                                       |
| ---------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [Find-OSDCloudFile](/powershell-modules/osd/find-osdcloudfile)               | No synopsis provided.                                             |
| [Find-OSDCloudODTFile](/powershell-modules/osd/find-osdcloudodtfile)         | No synopsis provided.                                             |
| [Find-OSDCloudOfflineFile](/powershell-modules/osd/find-osdcloudofflinefile) | No synopsis provided.                                             |
| [Find-OSDCloudOfflinePath](/powershell-modules/osd/find-osdcloudofflinepath) | No synopsis provided.                                             |
| [Find-TextInFile](/powershell-modules/osd/find-textinfile)                   | Searches files for matching text and displays selectable results. |
| [Find-TextInModule](/powershell-modules/osd/find-textinmodule)               | Searches module files for matching text.                          |

### Get Functions

| Function                                                                                                   | Description                                                                                            |
| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| [Get-AzClipboard](/powershell-modules/osd/get-azclipboard)                                                 | Read a secret value from the Azure clipboard Key Vault.                                                |
| [Get-AzOSDCloud](/powershell-modules/osd/get-azosdcloud)                                                   | Initialize the local OSDCloud Azure workspace.                                                         |
| [Get-AzOSDTechId](/powershell-modules/osd/get-azosdtechid)                                                 | Find Azure AD users for an OSD tech identifier prefix.                                                 |
| [Get-CimVideoControllerResolution](/powershell-modules/osd/get-cimvideocontrollerresolution)               | Returns CIM video controller resolution entries for the system display adapter.                        |
| [Get-CloudSecret](/powershell-modules/osd/get-cloudsecret)                                                 | Read a secret from Azure Key Vault.                                                                    |
| [Get-ComObjects](/powershell-modules/osd/get-comobjects)                                                   | Lists registered COM ProgIDs from the local machine registry.                                          |
| [Get-ComObjMicrosoftUpdateAutoUpdate](/powershell-modules/osd/get-comobjmicrosoftupdateautoupdate)         | Gets Microsoft Update automatic update settings through COM.                                           |
| [Get-ComObjMicrosoftUpdateInstaller](/powershell-modules/osd/get-comobjmicrosoftupdateinstaller)           | Creates and returns the Microsoft Update installer COM object.                                         |
| [Get-ComObjMicrosoftUpdateServiceManager](/powershell-modules/osd/get-comobjmicrosoftupdateservicemanager) | Gets Windows Update service registration details through COM.                                          |
| [Get-DataDisk](/powershell-modules/osd/get-datadisk)                                                       | Gets DataDisk information.                                                                             |
| [Get-DellApplicationCatalog](/powershell-modules/osd/get-dellapplicationcatalog)                           | Returns the Application Component of the Dell System Catalog                                           |
| [Get-DellBiosCatalog](/powershell-modules/osd/get-dellbioscatalog)                                         | Returns the BIOS Component of the Dell System Catalog                                                  |
| [Get-DellDriverCatalog](/powershell-modules/osd/get-delldrivercatalog)                                     | Returns the Driver Component of the Dell System Catalog                                                |
| [Get-DellDriverPackCatalog](/powershell-modules/osd/get-delldriverpackcatalog)                             | Returns the Dell DriverPack Catalog                                                                    |
| [Get-DellFirmwareCatalog](/powershell-modules/osd/get-dellfirmwarecatalog)                                 | Returns the Firmware Component of the Dell System Catalog                                              |
| [Get-DellSystemCatalog](/powershell-modules/osd/get-dellsystemcatalog)                                     | Builds the Dell System Catalog                                                                         |
| [Get-DellWinPE10DriverPack](/powershell-modules/osd/get-dellwinpe10driverpack)                             | Returns the URL of the latest Dell WinPE 10 Driver Pack                                                |
| [Get-DellWinPEDriverPack](/powershell-modules/osd/get-dellwinpedriverpack)                                 | Returns the URL of the latest Dell WinPE 11 Driver Pack                                                |
| [Get-DisplayAllScreens](/powershell-modules/osd/get-displayallscreens)                                     | Returns all display screens on the system                                                              |
| [Get-DisplayPrimaryBitmapSize](/powershell-modules/osd/get-displayprimarybitmapsize)                       | Returns the primary display bitmap size accounting for DPI scaling                                     |
| [Get-DisplayPrimaryMonitorSize](/powershell-modules/osd/get-displayprimarymonitorsize)                     | Returns the primary display monitor size in pixels                                                     |
| [Get-DisplayPrimaryScaling](/powershell-modules/osd/get-displayprimaryscaling)                             | Returns the DPI scaling percentage of the primary display                                              |
| [Get-DisplayVirtualScreen](/powershell-modules/osd/get-displayvirtualscreen)                               | Returns the virtual screen dimensions covering all displays                                            |
| [Get-DownLinks](/powershell-modules/osd/get-downlinks)                                                     | Gets a list of links to download                                                                       |
| [Get-EnablementPackage](/powershell-modules/osd/get-enablementpackage)                                     | Returns the latest matching Windows enablement package metadata.                                       |
| [Get-FeatureUpdate](/powershell-modules/osd/get-featureupdate)                                             | Returns the latest matching Windows client feature update record.                                      |
| [Get-GithubRawContent](/powershell-modules/osd/get-githubrawcontent)                                       | Retrieves content from GitHub or Gist raw URLs.                                                        |
| [Get-GithubRawUrl](/powershell-modules/osd/get-githubrawurl)                                               | Resolves a GitHub or Gist URL to one or more raw content URLs.                                         |
| [Get-HPAccessoryCatalog](/powershell-modules/osd/get-hpaccessorycatalog)                                   | Returns the 'Accessories Firmware and Driver' Component of the HP System Catalog                       |
| [Get-HPBiosCatalog](/powershell-modules/osd/get-hpbioscatalog)                                             | Returns the BIOS Component of the HP System Catalog                                                    |
| [Get-HPDeviceFamilyPlatformDetails](/powershell-modules/osd/get-hpdevicefamilyplatformdetails)             | No synopsis provided.                                                                                  |
| [Get-HPDriverCatalog](/powershell-modules/osd/get-hpdrivercatalog)                                         | Returns the Driver Component of the HP System Catalog                                                  |
| [Get-HPDriverPackCatalog](/powershell-modules/osd/get-hpdriverpackcatalog)                                 | Returns the HP DriverPack Catalog                                                                      |
| [Get-HPDriverPackLatest](/powershell-modules/osd/get-hpdriverpacklatest)                                   | Gets the latest available HP driver pack for a platform.                                               |
| [Get-HPFirmwareCatalog](/powershell-modules/osd/get-hpfirmwarecatalog)                                     | Returns the Firmware Component of the HP System Catalog                                                |
| [Get-HPIAJSONResult](/powershell-modules/osd/get-hpiajsonresult)                                           | No synopsis provided.                                                                                  |
| [Get-HPIALatestVersion](/powershell-modules/osd/get-hpialatestversion)                                     | No synopsis provided.                                                                                  |
| [Get-HPIAXMLResult](/powershell-modules/osd/get-hpiaxmlresult)                                             | No synopsis provided.                                                                                  |
| [Get-HPOSSupport](/powershell-modules/osd/get-hpossupport)                                                 | Gets supported Windows releases for an HP platform from the HPIA catalog.                              |
| [Get-HPPlatformCatalog](/powershell-modules/osd/get-hpplatformcatalog)                                     | Converts the HP Platform list to a PowerShell Object.                                                  |
| [Get-HPSoftPaqItems](/powershell-modules/osd/get-hpsoftpaqitems)                                           | Gets HPIA SoftPaq items for a specific HP platform and OS release.                                     |
| [Get-HPSoftpaqListLatest](/powershell-modules/osd/get-hpsoftpaqlistlatest)                                 | Gets the latest HPIA SoftPaq list for an HP platform.                                                  |
| [Get-HPSoftwareCatalog](/powershell-modules/osd/get-hpsoftwarecatalog)                                     | Returns the Software Component of the HP System Catalog                                                |
| [Get-HPSystemCatalog](/powershell-modules/osd/get-hpsystemcatalog)                                         | Converts the HP Client Catalog for Microsoft System Center Product to a PowerShell Object              |
| [Get-HPTPMDetermine](/powershell-modules/osd/get-hptpmdetermine)                                           | Determines which HP TPM firmware update package is required for the current device.                    |
| [Get-HpWinPEDriverPack](/powershell-modules/osd/get-hpwinpedriverpack)                                     | Returns the URL of the latest HP WinPE 10 Driver Pack                                                  |
| [Get-HyperVName](/powershell-modules/osd/get-hypervname)                                                   | No synopsis provided.                                                                                  |
| [Get-IntelEthernetDriverPack](/powershell-modules/osd/get-intelethernetdriverpack)                         | Returns the Intel Ethernet Driver Object                                                               |
| [Get-IntelGraphicsDriverPack](/powershell-modules/osd/get-intelgraphicsdriverpack)                         | Returns the Intel Graphics Driver Object                                                               |
| [Get-IntelRadeonDriverPack](/powershell-modules/osd/get-intelradeondriverpack)                             | Returns the Intel Radeon Graphics Driver Object                                                        |
| [Get-IntelWirelessDriverPack](/powershell-modules/osd/get-intelwirelessdriverpack)                         | Returns the Intel Wireless Driver Object                                                               |
| [Get-LenovoBiosCatalog](/powershell-modules/osd/get-lenovobioscatalog)                                     | Builds the Lenovo Bios Catalog                                                                         |
| [Get-LenovoDriverPackCatalog](/powershell-modules/osd/get-lenovodriverpackcatalog)                         | Returns the Lenovo DriverPack Catalog                                                                  |
| [Get-LocalDisk](/powershell-modules/osd/get-localdisk)                                                     | Gets LocalDisk information.                                                                            |
| [Get-LocalDiskPartition](/powershell-modules/osd/get-localdiskpartition)                                   | Gets LocalDiskPartition information.                                                                   |
| [Get-LocalDiskVolume](/powershell-modules/osd/get-localdiskvolume)                                         | Gets LocalDiskVolume information.                                                                      |
| [Get-MsUpCat](/powershell-modules/osd/get-msupcat)                                                         | Retrieves Microsoft updates from the Microsoft Update Catalog                                          |
| [Get-MsUpCatUpdate](/powershell-modules/osd/get-msupcatupdate)                                             | Retrieves updates for a specific Windows operating system version from Microsoft Update Catalog        |
| [Get-MyBiosSerialNumber](/powershell-modules/osd/get-mybiosserialnumber)                                   | Gets MyBiosSerialNumber information.                                                                   |
| [Get-MyBiosUpdate](/powershell-modules/osd/get-mybiosupdate)                                               | Gets MyBiosUpdate information.                                                                         |
| [Get-MyBiosVersion](/powershell-modules/osd/get-mybiosversion)                                             | Gets MyBiosVersion information.                                                                        |
| [Get-MyBitLockerKeyProtectors](/powershell-modules/osd/get-mybitlockerkeyprotectors)                       | Returns BitLocker key protector details for encrypted volumes.                                         |
| [Get-MyComputerManufacturer](/powershell-modules/osd/get-mycomputermanufacturer)                           | Gets MyComputerManufacturer information.                                                               |
| [Get-MyComputerModel](/powershell-modules/osd/get-mycomputermodel)                                         | Gets MyComputerModel information.                                                                      |
| [Get-MyComputerProduct](/powershell-modules/osd/get-mycomputerproduct)                                     | Gets MyComputerProduct information.                                                                    |
| [Get-MyDefaultAUService](/powershell-modules/osd/get-mydefaultauservice)                                   | Returns the Default AU Service from Microsoft.Update.ServiceManager                                    |
| [Get-MyDellBios](/powershell-modules/osd/get-mydellbios)                                                   | Returns the latest compatible Dell BIOS update for the current system.                                 |
| [Get-MyDriverPack](/powershell-modules/osd/get-mydriverpack)                                               | Retrieves the driver pack for the current computer from OSDCloud                                       |
| [Get-MyWindowsCapability](/powershell-modules/osd/get-mywindowscapability)                                 | Gets MyWindowsCapability information.                                                                  |
| [Get-MyWindowsPackage](/powershell-modules/osd/get-mywindowspackage)                                       | Gets MyWindowsPackage information.                                                                     |
| [Get-NativeMatchineImage](/powershell-modules/osd/get-nativematchineimage)                                 | Gets NativeMatchineImage information.                                                                  |
| [Get-OSD](/powershell-modules/osd/get-osd)                                                                 | Displays information about the OSD Module                                                              |
| [Get-OSDClass](/powershell-modules/osd/get-osdclass)                                                       | Returns CimInstance information from common OSD Classes                                                |
| [Get-OSDCloudAzureResources](/powershell-modules/osd/get-osdcloudazureresources)                           | Discover OSDCloud Azure Storage resources.                                                             |
| [Get-OSDCloudDriverPack](/powershell-modules/osd/get-osdclouddriverpack)                                   | Gets the OSDCloud DriverPack for the current or specified computer model                               |
| [Get-OSDCloudDriverPacks](/powershell-modules/osd/get-osdclouddriverpacks)                                 | Returns the DriverPacks used by OSDCloud                                                               |
| [Get-OSDCloudOperatingSystems](/powershell-modules/osd/get-osdcloudoperatingsystems)                       | Gets OSDCloud operating system entries for a specific architecture.                                    |
| [Get-OSDCloudOperatingSystemsIndexes](/powershell-modules/osd/get-osdcloudoperatingsystemsindexes)         | Returns OSDCloud operating system index entries by architecture.                                       |
| [Get-OSDCloudOperatingSystemsIndexMap](/powershell-modules/osd/get-osdcloudoperatingsystemsindexmap)       | Returns OSDCloud operating system index map entries by architecture.                                   |
| [Get-OSDCloudOSNames](/powershell-modules/osd/get-osdcloudosnames)                                         | Returns the Operating Systems names used by OSDCloud                                                   |
| [Get-OSDCloudTemplate](/powershell-modules/osd/get-osdcloudtemplate)                                       | Gets information returned by Get-OSDCloudTemplate.                                                     |
| [Get-OSDCloudTemplateNames](/powershell-modules/osd/get-osdcloudtemplatenames)                             | Gets information returned by Get-OSDCloudTemplateNames.                                                |
| [Get-OSDCloudVMDefaults](/powershell-modules/osd/get-osdcloudvmdefaults)                                   | Gets the OSDCloudVM Module defaults from $Global:OSDModuleResource.NewOSDCloudVM                       |
| [Get-OSDCloudVMSettings](/powershell-modules/osd/get-osdcloudvmsettings)                                   | Gets information returned by Get-OSDCloudVMSettings.                                                   |
| [Get-OSDCloudWorkspace](/powershell-modules/osd/get-osdcloudworkspace)                                     | Gets information returned by Get-OSDCloudWorkspace.                                                    |
| [Get-OSDCoreCacheContent](/powershell-modules/osd/get-osdcorecachecontent)                                 | Returns cached OSDCloud content found on local file system drives.                                     |
| [Get-OSDCoreCacheDrive](/powershell-modules/osd/get-osdcorecachedrive)                                     | Returns OSDCloud cache drive metadata from local file system drives.                                   |
| [Get-OSDCoreCacheUSBPath](/powershell-modules/osd/get-osdcorecacheusbpath)                                 | Returns OSDCloud cache paths located on USB drives.                                                    |
| [Get-OSDCoreDeploymentDisk](/powershell-modules/osd/get-osdcoredeploymentdisk)                             | Retrieves disk objects suitable for OS deployment with enhanced filtering capabilities.                |
| [Get-OSDCoreDriverPackCatalogDell](/powershell-modules/osd/get-osdcoredriverpackcatalogdell)               | Downloads and parses the Dell driver pack catalog for Windows 11.                                      |
| [Get-OSDCoreDriverPackCatalogHP](/powershell-modules/osd/get-osdcoredriverpackcataloghp)                   | Downloads and parses the HP driver pack catalog for Windows 11.                                        |
| [Get-OSDCoreDriverPackCatalogLenovo](/powershell-modules/osd/get-osdcoredriverpackcataloglenovo)           | Downloads and parses the Lenovo driver pack catalog for Windows 11.                                    |
| [Get-OSDCoreDriverPackCatalogPanasonic](/powershell-modules/osd/get-osdcoredriverpackcatalogpanasonic)     | No synopsis provided.                                                                                  |
| [Get-OSDCoreDriverPackCatalogSurface](/powershell-modules/osd/get-osdcoredriverpackcatalogsurface)         | Retrieves the Microsoft Surface driver pack catalog, enriching entries from live download pages.       |
| [Get-OSDCoreDriverPacks](/powershell-modules/osd/get-osdcoredriverpacks)                                   | Retrieves driver pack information for the specified manufacturer and operating system architecture.    |
| [Get-OSDCoreLicense](/powershell-modules/osd/get-osdcorelicense)                                           | Returns a single Recast Core license object.                                                           |
| [Get-OSDCoreOperatingSystems](/powershell-modules/osd/get-osdcoreoperatingsystems)                         | Gets the core operating system catalog entries that OSD uses for offline media selection.              |
| [Get-OSDDisk](/powershell-modules/osd/get-osddisk)                                                         | Gets OSDDisk information.                                                                              |
| [Get-OSDGather](/powershell-modules/osd/get-osdgather)                                                     | Returns common OSD information as an ordered hash table                                                |
| [Get-OSDHelp](/powershell-modules/osd/get-osdhelp)                                                         | Gets OSDHelp information.                                                                              |
| [Get-OSDMetrics](/powershell-modules/osd/get-osdmetrics)                                                   | Retrieves metrics for the OSD PowerShell module and OSDCloud deployment methods.                       |
| [Get-OSDModuleCache](/powershell-modules/osd/get-osdmodulecache)                                           | Returns the OSD module cache directory path.                                                           |
| [Get-OSDModulePath](/powershell-modules/osd/get-osdmodulepath)                                             | Returns the base path of the loaded OSD module.                                                        |
| [Get-OSDModuleVersion](/powershell-modules/osd/get-osdmoduleversion)                                       | Returns the version of the loaded OSD module.                                                          |
| [Get-OSDPad](/powershell-modules/osd/get-osdpad)                                                           | Gets information returned by Get-OSDPad.                                                               |
| [Get-OSDPartition](/powershell-modules/osd/get-osdpartition)                                               | Gets OSDPartition information.                                                                         |
| [Get-OSDPower](/powershell-modules/osd/get-osdpower)                                                       | Displays Power Plan information using powercfg /LIST                                                   |
| [Get-OSDVolume](/powershell-modules/osd/get-osdvolume)                                                     | Gets OSDVolume information.                                                                            |
| [Get-OSDWinEvent](/powershell-modules/osd/get-osdwinevent)                                                 | Gets OSDWinEvent information.                                                                          |
| [Get-PowerSettingSleepAfter](/powershell-modules/osd/get-powersettingsleepafter)                           | No synopsis provided.                                                                                  |
| [Get-PowerSettingTurnMonitorOffAfter](/powershell-modules/osd/get-powersettingturnmonitoroffafter)         | Gets the active power plan monitor-off timeout in minutes.                                             |
| [Get-PSCloudScript](/powershell-modules/osd/get-pscloudscript)                                             | Development function to get the contents of a PSCloudScript.                                           |
| [Get-ReAgentXml](/powershell-modules/osd/get-reagentxml)                                                   | Returns information from the Windows Recovery Agent XML file                                           |
| [Get-RegCurrentVersion](/powershell-modules/osd/get-regcurrentversion)                                     | Returns the Registry Key values from HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion                |
| [Get-ScreenPNG](/powershell-modules/osd/get-screenpng)                                                     | Gets ScreenPNG information.                                                                            |
| [Get-SessionsXml](/powershell-modules/osd/get-sessionsxml)                                                 | Returns the Session.xml Updates that have been applied to an Operating System                          |
| [Get-SetupCompleteOSDCloudUSB](/powershell-modules/osd/get-setupcompleteosdcloudusb)                       | This function checks for the presence of an OSDCloud SetupComplete Folder on any drive other than 'C'. |
| [Get-SurfaceDriverPackCatalog](/powershell-modules/osd/get-surfacedriverpackcatalog)                       | Returns the Microsoft Surface DriverPack Catalog                                                       |
| [Get-SystemFirmwareDevice](/powershell-modules/osd/get-systemfirmwaredevice)                               | Returns the system firmware device                                                                     |
| [Get-SystemFirmwareResource](/powershell-modules/osd/get-systemfirmwareresource)                           | Returns the GUID of the system firmware resource                                                       |
| [Get-SystemFirmwareUpdate](/powershell-modules/osd/get-systemfirmwareupdate)                               | Retrieves the latest system firmware update from Microsoft Update Catalog                              |
| [Get-TimeZoneFromIP](/powershell-modules/osd/get-timezonefromip)                                           | No synopsis provided.                                                                                  |
| [Get-USBDisk](/powershell-modules/osd/get-usbdisk)                                                         | Gets USBDisk information.                                                                              |
| [Get-USBPartition](/powershell-modules/osd/get-usbpartition)                                               | Gets USBPartition information.                                                                         |
| [Get-USBVolume](/powershell-modules/osd/get-usbvolume)                                                     | Gets USBVolume information.                                                                            |
| [Get-WiFiActiveProfileSSID](/powershell-modules/osd/get-wifiactiveprofilessid)                             | No synopsis provided.                                                                                  |
| [Get-WiFiProfileKey](/powershell-modules/osd/get-wifiprofilekey)                                           | No synopsis provided.                                                                                  |
| [Get-Win11Readiness](/powershell-modules/osd/get-win11readiness)                                           | No synopsis provided.                                                                                  |
| [Get-WindowsAdkInstallPath](/powershell-modules/osd/get-windowsadkinstallpath)                             | Retrieves the installation path of the Windows Assessment and Deployment Kit (ADK)                     |
| [Get-WindowsAdkInstallVersion](/powershell-modules/osd/get-windowsadkinstallversion)                       | Retrieves the installed version of the Windows Assessment and Deployment Kit (ADK)                     |
| [Get-WindowsAdkPaths](/powershell-modules/osd/get-windowsadkpaths)                                         | Retrieves the command paths of the Windows Assessment and Deployment Kit (ADK).                        |
| [Get-WindowsKitsInstallPath](/powershell-modules/osd/get-windowskitsinstallpath)                           | Retrieves the installation path of the Windows Kit directory.                                          |
| [Get-WindowsOEMProductKey](/powershell-modules/osd/get-windowsoemproductkey)                               | No synopsis provided.                                                                                  |
| [Get-WindowsUpdateDriver](/powershell-modules/osd/get-windowsupdatedriver)                                 | No synopsis provided.                                                                                  |
| [Get-WindowsUpdateManifests](/powershell-modules/osd/get-windowsupdatemanifests)                           | Returns an Array of Microsoft Updates from the Microsoft Update Catalog                                |
| [Get-WinREPartition](/powershell-modules/osd/get-winrepartition)                                           | Retrieves the Windows Recovery Environment partition information                                       |
| [Get-WSUSXML](/powershell-modules/osd/get-wsusxml)                                                         | Returns an Array of Microsoft Updates                                                                  |

### Import Functions

| Function                                                                               | Description                                                |
| -------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| [Import-MDTWinPECloudDriver](/powershell-modules/osd/import-mdtwinpeclouddriver)       | Imports OSDCloud CloudDrivers into an MDT Deployment Share |
| [Import-OSDCloudWinPEDriverMDT](/powershell-modules/osd/import-osdcloudwinpedrivermdt) | Imports OSDCloud CloudDrivers into an MDT Deployment Share |

### Initialize Functions

| Function                                                                                       | Description                                                               |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [Initialize-OSDCloudStartnet](/powershell-modules/osd/initialize-osdcloudstartnet)             | Initializes the OSDCloud startnet environment.                            |
| [Initialize-OSDCloudStartnetUpdate](/powershell-modules/osd/initialize-osdcloudstartnetupdate) | No synopsis provided.                                                     |
| [Initialize-OSDCoreDevice](/powershell-modules/osd/initialize-osdcoredevice)                   | Collects local hardware, firmware, TPM, and network details for OSDCloud. |

### Install Functions

| Function                                                                                         | Description                                                                             |
| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------- |
| [Install-AzOSDIacTools](/powershell-modules/osd/install-azosdiactools)                           | Install prerequisite IaC tooling for OSDCloud Azure.                                    |
| [Install-BuildUpdatesFromOSCloudUSB](/powershell-modules/osd/install-buildupdatesfromoscloudusb) | No synopsis provided.                                                                   |
| [Install-HPIA](/powershell-modules/osd/install-hpia)                                             | No synopsis provided.                                                                   |
| [Install-ModuleHPCMSL](/powershell-modules/osd/install-modulehpcmsl)                             | Installs or updates the HP Client Management Script Library (HPCMSL) PowerShell module. |
| [Install-SystemFirmwareUpdate](/powershell-modules/osd/install-systemfirmwareupdate)             | Downloads and installs the system firmware update                                       |

### Invoke Functions

| Function                                                                               | Description                                                                      |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| [Invoke-AzOSDAzureConfig](/powershell-modules/osd/invoke-azosdazureconfig)             | Deploy OSDCloud Azure infrastructure with Bicep or Terraform.                    |
| [Invoke-CloudSecret](/powershell-modules/osd/invoke-cloudsecret)                       | Invoke a secret retrieved from Azure Key Vault.                                  |
| [Invoke-Exe](/powershell-modules/osd/invoke-exe)                                       | Runs an external command.                                                        |
| [Invoke-HPAnalyzer](/powershell-modules/osd/invoke-hpanalyzer)                         | No synopsis provided.                                                            |
| [Invoke-HPDriverUpdate](/powershell-modules/osd/invoke-hpdriverupdate)                 | No synopsis provided.                                                            |
| [Invoke-HPIA](/powershell-modules/osd/invoke-hpia)                                     | No synopsis provided.                                                            |
| [Invoke-HPIAOfflineSync](/powershell-modules/osd/invoke-hpiaofflinesync)               | Creates and synchronizes an offline HPIA repository for the local HP platform.   |
| [Invoke-HPTPMDowngrade](/powershell-modules/osd/invoke-hptpmdowngrade)                 | Downloads and applies the HP SP94937 softpaq to downgrade a TPM from 2.0 to 1.2. |
| [Invoke-HPTPMDownload](/powershell-modules/osd/invoke-hptpmdownload)                   | Downloads and extracts the required HP TPM firmware update softpaq using HPCMSL. |
| [Invoke-HPTPMEXEDownload](/powershell-modules/osd/invoke-hptpmexedownload)             | Downloads the required HP TPM firmware EXE to C:\OSDCloud\HP\TPM.                |
| [Invoke-HPTPMEXEInstall](/powershell-modules/osd/invoke-hptpmexeinstall)               | Extracts and installs the HP TPM firmware update from C:\OSDCloud\HP\TPM.        |
| [Invoke-MSCatalogParseDate](/powershell-modules/osd/invoke-mscatalogparsedate)         | Parses a date string from Microsoft Update Catalog format                        |
| [Invoke-OSDCloud](/powershell-modules/osd/invoke-osdcloud)                             | This is the master OSDCloud Task Sequence                                        |
| [Invoke-OSDCloudDriverPackCM](/powershell-modules/osd/invoke-osdclouddriverpackcm)     | Downloads a matching DriverPack to %OSDisk%\Drivers                              |
| [Invoke-OSDCloudDriverPackMDT](/powershell-modules/osd/invoke-osdclouddriverpackmdt)   | Downloads a matching DriverPack to %OSDisk%\Drivers                              |
| [Invoke-OSDCloudDriverPackPPKG](/powershell-modules/osd/invoke-osdclouddriverpackppkg) | Uses DISM in WinPE to expand and apply Driver Packs                              |
| [Invoke-OSDCloudIPU](/powershell-modules/osd/invoke-osdcloudipu)                       | Starts an OSDCloud in-place upgrade workflow.                                    |
| [Invoke-OSDInfo](/powershell-modules/osd/invoke-osdinfo)                               | Displays OSD information, useful in an OS Deployment                             |
| [Invoke-OSDSpecialize](/powershell-modules/osd/invoke-osdspecialize)                   | No synopsis provided.                                                            |
| [Invoke-OSDSpecializeDev](/powershell-modules/osd/invoke-osdspecializedev)             | No synopsis provided.                                                            |
| [Invoke-SelectDataDisk](/powershell-modules/osd/invoke-selectdatadisk)                 | Invokes SelectDataDisk actions.                                                  |
| [Invoke-SelectFFUDisk](/powershell-modules/osd/invoke-selectffudisk)                   | Invokes SelectFFUDisk actions.                                                   |
| [Invoke-SelectLocalDisk](/powershell-modules/osd/invoke-selectlocaldisk)               | Invokes SelectLocalDisk actions.                                                 |
| [Invoke-SelectLocalVolume](/powershell-modules/osd/invoke-selectlocalvolume)           | Invokes SelectLocalVolume actions.                                               |
| [Invoke-SelectOSDDisk](/powershell-modules/osd/invoke-selectosddisk)                   | Invokes SelectOSDDisk actions.                                                   |
| [Invoke-SelectOSDVolume](/powershell-modules/osd/invoke-selectosdvolume)               | Invokes SelectOSDVolume actions.                                                 |
| [Invoke-SelectUSBDisk](/powershell-modules/osd/invoke-selectusbdisk)                   | Invokes SelectUSBDisk actions.                                                   |
| [Invoke-SelectUSBVolume](/powershell-modules/osd/invoke-selectusbvolume)               | Invokes SelectUSBVolume actions.                                                 |
| [Invoke-WebPSScript](/powershell-modules/osd/invoke-webpsscript)                       | Executes a PowerShell script from a URL.                                         |

### Mount Functions

| Function                                                             | Description                          |
| -------------------------------------------------------------------- | ------------------------------------ |
| [Mount-MyWindowsImage](/powershell-modules/osd/mount-mywindowsimage) | Mounts MyWindowsImage for servicing. |

### New Functions

| Function                                                                                                         | Description                                                                 |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [New-AdkCopyPE](/powershell-modules/osd/new-adkcopype)                                                           | Creates an ADK CopyPE working directory                                     |
| [New-AdkISO](/powershell-modules/osd/new-adkiso)                                                                 | Creates an ISO file from a bootable media directory using ADK tools         |
| [New-BootableUSBDrive](/powershell-modules/osd/new-bootableusbdrive)                                             | Creates BootableUSBDrive resources.                                         |
| [New-CAB](/powershell-modules/osd/new-cab)                                                                       | Creates a CAB file from a Directory                                         |
| [New-OSDCloudISO](/powershell-modules/osd/new-osdcloudiso)                                                       | Creates an OSDCloud bootable ISO from an OSDCloud workspace.                |
| [New-OSDCloudOSWimFile](/powershell-modules/osd/new-osdcloudoswimfile)                                           | Builds Windows setup media content for an OSDCloud feature update.          |
| [New-OSDCloudTemplate](/powershell-modules/osd/new-osdcloudtemplate)                                             | Creates resources by using New-OSDCloudTemplate.                            |
| [New-OSDCloudUSB](/powershell-modules/osd/new-osdcloudusb)                                                       | Creates resources by using New-OSDCloudUSB.                                 |
| [New-OSDCloudUSBSetupCompleteTemplate](/powershell-modules/osd/new-osdcloudusbsetupcompletetemplate)             | Creates resources by using New-OSDCloudUSBSetupCompleteTemplate.            |
| [New-OSDCloudVM](/powershell-modules/osd/new-osdcloudvm)                                                         | Creates resources by using New-OSDCloudVM.                                  |
| [New-OSDCloudWorkspace](/powershell-modules/osd/new-osdcloudworkspace)                                           | Creates resources by using New-OSDCloudWorkspace.                           |
| [New-OSDCloudWorkspaceSetupCompleteTemplate](/powershell-modules/osd/new-osdcloudworkspacesetupcompletetemplate) | Creates resources by using New-OSDCloudWorkspaceSetupCompleteTemplate.      |
| [New-OSDisk](/powershell-modules/osd/new-osdisk)                                                                 | Creates System \| OS \| Recovery Partitions for MBR or UEFI Drives in WinPE |
| [New-WindowsAdkISO](/powershell-modules/osd/new-windowsadkiso)                                                   | Creates an ISO file from a bootable media directory using ADK               |

### Remove Functions

| Function                                                       | Description               |
| -------------------------------------------------------------- | ------------------------- |
| [Remove-AppxOnline](/powershell-modules/osd/remove-appxonline) | Removes AppxOnline items. |

### Reset Functions

| Function                                                                     | Description                                             |
| ---------------------------------------------------------------------------- | ------------------------------------------------------- |
| [Reset-OSDCloudVMSettings](/powershell-modules/osd/reset-osdcloudvmsettings) | Resets configuration by using Reset-OSDCloudVMSettings. |

### Resolve Functions

| Function                                               | Description                                      |
| ------------------------------------------------------ | ------------------------------------------------ |
| [Resolve-MsUrl](/powershell-modules/osd/resolve-msurl) | Resolves a short Microsoft aka.ms or fwlink URL. |

### Save Functions

| Function                                                                                     | Description                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [Save-ClipboardImage](/powershell-modules/osd/save-clipboardimage)                           | Saves ClipboardImage content.                                                  |
| [Save-EnablementPackage](/powershell-modules/osd/save-enablementpackage)                     | Downloads a matching Windows enablement package.                               |
| [Save-FeatureUpdate](/powershell-modules/osd/save-featureupdate)                             | Downloads the latest matching Windows client feature update package.           |
| [Save-MsUpCatDriver](/powershell-modules/osd/save-msupcatdriver)                             | Downloads driver updates from Microsoft Update Catalog                         |
| [Save-MsUpCatUpdate](/powershell-modules/osd/save-msupcatupdate)                             | Downloads updates from Microsoft Update Catalog for a specific Windows version |
| [Save-MyBitLockerExternalKey](/powershell-modules/osd/save-mybitlockerexternalkey)           | Saves BitLocker external key protectors (.BEK) to destination folders.         |
| [Save-MyBitLockerKeyPackage](/powershell-modules/osd/save-mybitlockerkeypackage)             | Saves BitLocker key packages to destination folders.                           |
| [Save-MyBitLockerRecoveryPassword](/powershell-modules/osd/save-mybitlockerrecoverypassword) | Saves BitLocker recovery passwords to text files.                              |
| [Save-MyDellBios](/powershell-modules/osd/save-mydellbios)                                   | Downloads the latest compatible Dell BIOS update to a local folder.            |
| [Save-MyDellBiosFlash64W](/powershell-modules/osd/save-mydellbiosflash64w)                   | Downloads and extracts the Dell Flash64W BIOS utility.                         |
| [Save-MyDriverPack](/powershell-modules/osd/save-mydriverpack)                               | Downloads and optionally expands the driver pack for the current computer      |
| [Save-SystemFirmwareUpdate](/powershell-modules/osd/save-systemfirmwareupdate)               | Downloads and extracts the latest system firmware update.                      |
| [Save-WebFile](/powershell-modules/osd/save-webfile)                                         | Downloads a file from the internet and returns a Get-Item Object               |
| [Save-WinPECloudDriver](/powershell-modules/osd/save-winpeclouddriver)                       | Download and expand WinPE Drivers                                              |
| [Save-ZTIDriverPack](/powershell-modules/osd/save-ztidriverpack)                             | Downloads the driver pack for a computer during MDT/ConfigMgr task sequence    |

### Select Functions

| Function                                                                                     | Description                           |
| -------------------------------------------------------------------------------------------- | ------------------------------------- |
| [Select-OSDCloudAutopilotJsonItem](/powershell-modules/osd/select-osdcloudautopilotjsonitem) | Selects Autopilot Profiles            |
| [Select-OSDCloudFileWim](/powershell-modules/osd/select-osdcloudfilewim)                     | Selects Office Configuration Profiles |
| [Select-OSDCloudImageIndex](/powershell-modules/osd/select-osdcloudimageindex)               | No synopsis provided.                 |
| [Select-OSDCloudODTFile](/powershell-modules/osd/select-osdcloudodtfile)                     | Selects Office Configuration Profiles |

### Set Functions

| Function                                                                                                       | Description                                                                                        |
| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [Set-AzClipboard](/powershell-modules/osd/set-azclipboard)                                                     | Write the current clipboard text to the Azure clipboard Key Vault.                                 |
| [Set-BitlockerRegValuesXTS256](/powershell-modules/osd/set-bitlockerregvaluesxts256)                           | No synopsis provided.                                                                              |
| [Set-BootmgrTimeout](/powershell-modules/osd/set-bootmgrtimeout)                                               | Sets the Windows Boot Manager timeout value in BCD.                                                |
| [Set-ClipboardScreenshot](/powershell-modules/osd/set-clipboardscreenshot)                                     | Captures a screenshot and copies it to the clipboard                                               |
| [Set-CloudSecret](/powershell-modules/osd/set-cloudsecret)                                                     | Convert content to an Azure Key Vault secret.                                                      |
| [Set-DisRes](/powershell-modules/osd/set-disres)                                                               | Sets the primary display screen resolution.                                                        |
| [Set-HPBIOSSetting](/powershell-modules/osd/set-hpbiossetting)                                                 | No synopsis provided.                                                                              |
| [Set-HPTPMBIOSSettings](/powershell-modules/osd/set-hptpmbiossettings)                                         | No synopsis provided.                                                                              |
| [Set-HyperVName](/powershell-modules/osd/set-hypervname)                                                       | No synopsis provided.                                                                              |
| [Set-LatestUpdatesASAPEnabled](/powershell-modules/osd/set-latestupdatesasapenabled)                           | No synopsis provided.                                                                              |
| [Set-OSDCloudTemplate](/powershell-modules/osd/set-osdcloudtemplate)                                           | Sets configuration values by using Set-OSDCloudTemplate.                                           |
| [Set-OSDCloudUnattendAuditMode](/powershell-modules/osd/set-osdcloudunattendauditmode)                         | No synopsis provided.                                                                              |
| [Set-OSDCloudUnattendAuditModeAutopilot](/powershell-modules/osd/set-osdcloudunattendauditmodeautopilot)       | No synopsis provided.                                                                              |
| [Set-OSDCloudUnattendSpecialize](/powershell-modules/osd/set-osdcloudunattendspecialize)                       | No synopsis provided.                                                                              |
| [Set-OSDCloudUnattendSpecializeDev](/powershell-modules/osd/set-osdcloudunattendspecializedev)                 | No synopsis provided.                                                                              |
| [Set-OSDCloudVMSettings](/powershell-modules/osd/set-osdcloudvmsettings)                                       | Sets configuration values by using Set-OSDCloudVMSettings.                                         |
| [Set-OSDCloudWorkspace](/powershell-modules/osd/set-osdcloudworkspace)                                         | Sets configuration values by using Set-OSDCloudWorkspace.                                          |
| [Set-OSDxCloudUnattendSpecialize](/powershell-modules/osd/set-osdxcloudunattendspecialize)                     | No synopsis provided.                                                                              |
| [Set-PowerSettingSleepAfter](/powershell-modules/osd/set-powersettingsleepafter)                               | No synopsis provided.                                                                              |
| [Set-PowerSettingTurnMonitorOffAfter](/powershell-modules/osd/set-powersettingturnmonitoroffafter)             | No synopsis provided.                                                                              |
| [Set-SetupCompleteBitlocker](/powershell-modules/osd/set-setupcompletebitlocker)                               | No synopsis provided.                                                                              |
| [Set-SetupCompleteCreateFinish](/powershell-modules/osd/set-setupcompletecreatefinish)                         | No synopsis provided.                                                                              |
| [Set-SetupCompleteCreateStart](/powershell-modules/osd/set-setupcompletecreatestart)                           | No synopsis provided.                                                                              |
| [Set-SetupCompleteDefenderUpdate](/powershell-modules/osd/set-setupcompletedefenderupdate)                     | No synopsis provided.                                                                              |
| [Set-SetupCompleteHPAppend](/powershell-modules/osd/set-setupcompletehpappend)                                 | No synopsis provided.                                                                              |
| [Set-SetupCompleteHyperVName](/powershell-modules/osd/set-setupcompletehypervname)                             | No synopsis provided.                                                                              |
| [Set-SetupCompleteNetFX](/powershell-modules/osd/set-setupcompletenetfx)                                       | No synopsis provided.                                                                              |
| [Set-SetupCompleteOEMActivation](/powershell-modules/osd/set-setupcompleteoemactivation)                       | No synopsis provided.                                                                              |
| [Set-SetupCompleteOSDCloudCustom](/powershell-modules/osd/set-setupcompleteosdcloudcustom)                     | No synopsis provided.                                                                              |
| [Set-SetupCompleteOSDCloudUSB](/powershell-modules/osd/set-setupcompleteosdcloudusb)                           | This function copies SetupComplete Files to the Local OSDCloud SetupComplete Folder                |
| [Set-SetupCompleteSetWiFi](/powershell-modules/osd/set-setupcompletesetwifi)                                   | No synopsis provided.                                                                              |
| [Set-SetupCompleteStartWindowsUpdate](/powershell-modules/osd/set-setupcompletestartwindowsupdate)             | No synopsis provided.                                                                              |
| [Set-SetupCompleteStartWindowsUpdateDriver](/powershell-modules/osd/set-setupcompletestartwindowsupdatedriver) | No synopsis provided.                                                                              |
| [Set-SetupCompleteTimeZone](/powershell-modules/osd/set-setupcompletetimezone)                                 | No synopsis provided.                                                                              |
| [Set-TimeZoneFromIP](/powershell-modules/osd/set-timezonefromip)                                               | No synopsis provided.                                                                              |
| [Set-WiFi](/powershell-modules/osd/set-wifi)                                                                   | No synopsis provided.                                                                              |
| [Set-WimExecutionPolicy](/powershell-modules/osd/set-wimexecutionpolicy)                                       | Sets the PowerShell Execution Policy of a Windows Image .wim file (Mount \| Set \| Dismount -Save) |
| [Set-WindowsImageExecutionPolicy](/powershell-modules/osd/set-windowsimageexecutionpolicy)                     | Sets the PowerShell Execution Policy of a mounted Windows Image                                    |
| [Set-WindowsOEMActivation](/powershell-modules/osd/set-windowsoemactivation)                                   | No synopsis provided.                                                                              |

### Show Functions

| Function                                                                   | Description                                                                  |
| -------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [Show-MsSettings](/powershell-modules/osd/show-mssettings)                 | Opens the ms-setting: URI that is specified in the Setting parameter         |
| [Show-OSDCoreLicenseHelp](/powershell-modules/osd/show-osdcorelicensehelp) | Displays instructions for setting the Recast Core license for OSDCloud.      |
| [Show-RegistryXML](/powershell-modules/osd/show-registryxml)               | Displays registry entries from all RegistryXML files in the Source Directory |

### Start Functions

| Function                                                                       | Description                                                                                            |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
| [Start-DiskImageGUI](/powershell-modules/osd/start-diskimagegui)               | Start-DiskImageGUI function.                                                                           |
| [Start-DISMFromOSDCloudUSB](/powershell-modules/osd/start-dismfromosdcloudusb) | No synopsis provided.                                                                                  |
| [Start-EjectCD](/powershell-modules/osd/start-ejectcd)                         | No synopsis provided.                                                                                  |
| [Start-OOBEDeploy](/powershell-modules/osd/start-oobedeploy)                   | No synopsis provided.                                                                                  |
| [Start-OSDCloud](/powershell-modules/osd/start-osdcloud)                       | Prepare and start an OSDCloud deployment session (selects image, language, edition and other options). |
| [Start-OSDCloudAzure](/powershell-modules/osd/start-osdcloudazure)             | Start an OSDCloud deployment from Azure Storage.                                                       |
| [Start-OSDCloudCLI](/powershell-modules/osd/start-osdcloudcli)                 | Starts the OSDCloud Windows 10 or 11 Build Process from the OSD Module or a GitHub Repository          |
| [Start-OSDCloudGUI](/powershell-modules/osd/start-osdcloudgui)                 | OSDCloud imaging using the command line                                                                |
| [Start-OSDCloudGUIDev](/powershell-modules/osd/start-osdcloudguidev)           | OSDCloud imaging using the command line                                                                |
| [Start-OSDCloudREAzure](/powershell-modules/osd/start-osdcloudreazure)         | OSDCloudRE: Creates a new OSDCloudRE Volume from Azure                                                 |
| [Start-OSDCloudToolbox](/powershell-modules/osd/start-osdcloudtoolbox)         | Starts the workflow for Start-OSDCloudToolbox.                                                         |
| [Start-OSDDiskPart](/powershell-modules/osd/start-osddiskpart)                 | No synopsis provided.                                                                                  |
| [Start-OSDeployPad](/powershell-modules/osd/start-osdeploypad)                 | Starts the workflow for Start-OSDeployPad.                                                             |
| [Start-OSDPad](/powershell-modules/osd/start-osdpad)                           | Starts the workflow for Start-OSDPad.                                                                  |
| [Start-OSDPadCategories](/powershell-modules/osd/start-osdpadcategories)       | Starts the workflow for Start-OSDPadCategories.                                                        |
| [Start-RecastOSDCloudCLI](/powershell-modules/osd/start-recastosdcloudcli)     | Starts the Recast OSDCloud command-line deployment workflow.                                           |
| [Start-ScreenPNGProcess](/powershell-modules/osd/start-screenpngprocess)       | Starts a background process to capture screenshots                                                     |
| [Start-WindowsUpdate](/powershell-modules/osd/start-windowsupdate)             | No synopsis provided.                                                                                  |
| [Start-WindowsUpdateDriver](/powershell-modules/osd/start-windowsupdatedriver) | No synopsis provided.                                                                                  |

### Stop Functions

| Function                                                               | Description                                     |
| ---------------------------------------------------------------------- | ----------------------------------------------- |
| [Stop-ScreenPNGProcess](/powershell-modules/osd/stop-screenpngprocess) | Stops the background screenshot capture process |

### Test Functions

| Function                                                                                                 | Description                                                                               |
| -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [Test-DCUSupport](/powershell-modules/osd/test-dcusupport)                                               | No synopsis provided.                                                                     |
| [Test-DISMFromOSDCloudUSB](/powershell-modules/osd/test-dismfromosdcloudusb)                             | No synopsis provided.                                                                     |
| [Test-DynamicValidateSet](/powershell-modules/osd/test-dynamicvalidateset)                               | Tests DynamicValidateSet conditions.                                                      |
| [Test-HPIASupport](/powershell-modules/osd/test-hpiasupport)                                             | Tests whether the current HP platform is supported by HPIA.                               |
| [Test-HPTPMFromOSDCloudUSB](/powershell-modules/osd/test-hptpmfromosdcloudusb)                           | Tests whether HP TPM firmware packages exist on an OSDCloud USB drive.                    |
| [Test-IsVM](/powershell-modules/osd/test-isvm)                                                           | Tests IsVM conditions.                                                                    |
| [Test-MicrosoftUpdateCatalog](/powershell-modules/osd/test-microsoftupdatecatalog)                       | Tests connectivity to Microsoft Update Catalog.                                           |
| [Test-OSDCoreCacheUSB](/powershell-modules/osd/test-osdcorecacheusb)                                     | Tests whether any OSDCloud cache drive is a USB drive.                                    |
| [Test-OSDCoreDriverPackCloudObject](/powershell-modules/osd/test-osdcoredriverpackcloudobject)           | Tests whether an OSDCore driver pack object URL is reachable.                             |
| [Test-OSDCoreOperatingSystemCloudObject](/powershell-modules/osd/test-osdcoreoperatingsystemcloudobject) | Tests whether an OSDCore operating system object URL is reachable.                        |
| [Test-WebConnection](/powershell-modules/osd/test-webconnection)                                         | Tests web connectivity to a target URI using a live TCP connection and HTTP HEAD request. |
| [Test-WindowsImage](/powershell-modules/osd/test-windowsimage)                                           | Tests WindowsImage conditions.                                                            |
| [Test-WindowsImageMounted](/powershell-modules/osd/test-windowsimagemounted)                             | Tests WindowsImageMounted conditions.                                                     |
| [Test-WindowsImageMountPath](/powershell-modules/osd/test-windowsimagemountpath)                         | Tests WindowsImageMountPath conditions.                                                   |
| [Test-WindowsPackageCAB](/powershell-modules/osd/test-windowspackagecab)                                 | Tests WindowsPackageCAB conditions.                                                       |

### Unblock Functions

| Function                                                               | Description                                            |
| ---------------------------------------------------------------------- | ------------------------------------------------------ |
| [Unblock-WindowsUpdate](/powershell-modules/osd/unblock-windowsupdate) | Opens Windows Update and checks for WSUS configuration |

### Unlock Functions

| Function                                                                               | Description                                         |
| -------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [Unlock-MyBitLockerExternalKey](/powershell-modules/osd/unlock-mybitlockerexternalkey) | Unlocks BitLocker volumes using external key files. |

### Update Functions

| Function                                                                               | Description                                                                  |
| -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| [Update-DefenderStack](/powershell-modules/osd/update-defenderstack)                   | No synopsis provided.                                                        |
| [Update-IntelDriversCatalog](/powershell-modules/osd/update-inteldriverscatalog)       | Updates the Intel Drivers Cats in the OSD Module                             |
| [Update-MyDellBios](/powershell-modules/osd/update-mydellbios)                         | Downloads and launches a compatible BIOS update for the current Dell system. |
| [Update-MyWindowsImage](/powershell-modules/osd/update-mywindowsimage)                 | Updates MyWindowsImage content.                                              |
| [Update-OSDCloudUSB](/powershell-modules/osd/update-osdcloudusb)                       | Updates resources by using Update-OSDCloudUSB.                               |
| [Update-RecastOSDCloudUSBCache](/powershell-modules/osd/update-recastosdcloudusbcache) | Starts the Recast OSDCloud command-line deployment workflow.                 |

### Wait Functions

| Function                                                         | Description                                           |
| ---------------------------------------------------------------- | ----------------------------------------------------- |
| [Wait-WebConnection](/powershell-modules/osd/wait-webconnection) | Waits for an internet connection to the specified Uri |

### Write Functions

| Function                                                     | Description           |
| ------------------------------------------------------------ | --------------------- |
| [Write-CMTraceLog](/powershell-modules/osd/write-cmtracelog) | No synopsis provided. |


# Add-7Zip2BootImage

Adds 7-Zip command-line binaries to a mounted Windows image.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Downloads the latest 7-Zip release assets from GitHub and copies the extracted binaries into Windows\System32 for the target mount path.

## Syntax

```powershell
Add-7Zip2BootImage [[-MountPath] <String>] [-Use7zr] [-TempTest] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter    | Type              | Required | Description                                                               |
| ------------ | ----------------- | -------- | ------------------------------------------------------------------------- |
| `-MountPath` | `String`          | False    | Mounted Windows image path. If omitted, uses the currently mounted image. |
| `-Use7zr`    | `SwitchParameter` | False    | Copies 7zr.exe only instead of the full 7z x64 binaries.                  |
| `-TempTest`  | `SwitchParameter` | False    | Uses a temporary test path under %TEMP% instead of a mounted image.       |

## Examples

### Example

```powershell
Add-7Zip2BootImage -MountPath 'C:\Mount'
Downloads and copies 7-Zip binaries into C:\Mount\Windows\System32.
```

### Example

```powershell
Add-7Zip2BootImage -Use7zr
Adds only 7zr.exe to the detected mounted image.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Add-WindowsPackageSSU

Adds a Servicing Stack Update package to Windows.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Extracts SSU cabinet files from a .cab or .msu package and applies them to an online or offline Windows image using Add-WindowsPackage.

## Syntax

### Offline (Default)

```powershell
Add-WindowsPackageSSU -PackagePath <String> -Path <String> [-LogPath <String>]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

### Online

```powershell
Add-WindowsPackageSSU -PackagePath <String> [-Online] [-LogPath <String>] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter      | Type              | Required | Description                                                           |
| -------------- | ----------------- | -------- | --------------------------------------------------------------------- |
| `-PackagePath` | `String`          | True     | Full path to the source .cab or .msu package file.                    |
| `-Path`        | `String`          | True     | Full path to the root directory of the offline mounted Windows image. |
| `-Online`      | `SwitchParameter` | True     | Applies the SSU to the currently running operating system.            |
| `-LogPath`     | `String`          | False    | Full path to the DISM log file used during package application.       |

## Examples

### Example

```powershell
Add-WindowsPackageSSU -PackagePath C:\Updates\windows10.0-kbxxxx.msu -Path C:\Mount
Extracts SSU content from the MSU and applies it to the mounted image at C:\Mount.
```

### Example

```powershell
Add-WindowsPackageSSU -PackagePath C:\Updates\ssu.cab -Online
Applies SSU cab content to the running operating system.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Backup-DiskToFFU

Captures a physical disk to a Full Flash Update (FFU) image.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Interactively selects a source disk and destination data disk, then uses DISM /Capture-FFU to create an FFU backup from WinPE.

## Syntax

```powershell
Backup-DiskToFFU [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

### Example

```powershell
Backup-DiskToFFU
Prompts for source and destination disks, then captures the selected source disk to an FFU file.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>
* <https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/deploy-windows-using-full-flash-update--ffu>


# Backup-MyBitLockerKeys

Saves available BitLocker key materials to one or more folders.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Calls helper functions to export external keys, key packages, and recovery passwords for BitLocker-protected volumes.

## Syntax

```powershell
Backup-MyBitLockerKeys [-Path] <String[]> [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type       | Required | Description                                                           |
| --------- | ---------- | -------- | --------------------------------------------------------------------- |
| `-Path`   | `String[]` | True     | One or more destination folders used to store exported key materials. |

## Examples

### Example

```powershell
Backup-MyBitLockerKeys -Path 'D:\BitLockerBackup'
Exports BitLocker key materials to D:\BitLockerBackup.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-AdminUser

Blocks execution if the current user has Administrator rights

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the current user does not have Administrator rights. If admin rights are detected, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-AdminUser [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-AdminUser
Halts execution if the user is running as Administrator
```

### Example

```powershell
Block-AdminUser -Warn
Shows a warning but continues execution even if user is Administrator
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-ManufacturerNeLenovo

Blocks execution if the computer is not manufactured by Lenovo

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the computer is manufactured by Lenovo. If the manufacturer is not Lenovo, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-ManufacturerNeLenovo [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-ManufacturerNeLenovo
Halts execution if the computer is not a Lenovo device
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-NoCurl

Blocks execution if curl.exe is not available

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that curl.exe is available in the Windows System32 directory. If curl.exe is not found, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-NoCurl [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-NoCurl
Halts execution if curl.exe is not available
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-NoInternet

Blocks execution if internet connectivity is not available

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates internet connectivity by testing connections to multiple well-known URLs. If connectivity cannot be established, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-NoInternet [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-NoInternet
Halts execution if internet connectivity is not available
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-PowerShellVersionLt5

Blocks execution if PowerShell version is less than 5

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that PowerShell version 5 or greater is running. If the version is less than 5, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-PowerShellVersionLt5 [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-PowerShellVersionLt5
Halts execution if PowerShell version is less than 5
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-StandardUser

Blocks execution if the current user does not have Administrator rights

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the current user has Administrator rights. If standard user rights are detected, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-StandardUser [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-StandardUser
Halts execution if the user is not running as Administrator
```

### Example

```powershell
Block-StandardUser -Warn
Shows a warning but continues execution even if user is not Administrator
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-WindowsReleaseIdLt1703

Blocks execution if Windows ReleaseId is less than 1703

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that Windows ReleaseId is 1703 or greater. If the ReleaseId is less than 1703, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-WindowsReleaseIdLt1703 [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-WindowsReleaseIdLt1703
Halts execution if Windows ReleaseId is less than 1703
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-WindowsVersionNe10

Blocks execution if Windows major version is not 10

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the operating system is Windows with major version 10 or greater. If the major version is not 10, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-WindowsVersionNe10 [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-WindowsVersionNe10
Halts execution if Windows major version is not 10
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-WinOS

Blocks execution if the system is not running WinPE

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the system is running in WinPE (Windows PE) environment. If not in WinPE, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-WinOS [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-WinOS
Halts execution if the system is not running WinPE
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Block-WinPE

Blocks execution if the system is running WinPE

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Validates that the system is not running in WinPE (Windows PE) environment. If running in WinPE, writes a warning and breaks execution unless the -Warn parameter is specified.

## Syntax

```powershell
Block-WinPE [-Warn] [-Pause] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                                                 |
| --------- | ----------------- | -------- | ----------------------------------------------------------- |
| `-Warn`   | `SwitchParameter` | False    | Shows a warning but continues execution instead of breaking |
| `-Pause`  | `SwitchParameter` | False    | Pauses and displays a message before continuing execution   |

## Examples

### Example

```powershell
Block-WinPE
Halts execution if the system is running WinPE
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Clear-LocalDisk

Clears LocalDisk data or state.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Removes existing LocalDisk data or configuration and applies the requested reset behavior.

## Syntax

```powershell
Clear-LocalDisk [[-Input] <Object>] [[-DiskNumber] <UInt32>] [-Initialize] [[-PartitionStyle] <String>]
 [-Force] [-NoResults] [-ShowWarning] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm]
 [<CommonParameters>]
```

## Parameters

| Parameter         | Type              | Required | Description                                                        |
| ----------------- | ----------------- | -------- | ------------------------------------------------------------------ |
| `-Input`          | `Object`          | False    | Specifies the Input to use when running Clear-LocalDisk.           |
| `-DiskNumber`     | `UInt32`          | False    | Specifies the DiskNumber to use when running Clear-LocalDisk.      |
| `-Initialize`     | `SwitchParameter` | False    | Specifies the Initialize to use when running Clear-LocalDisk.      |
| `-PartitionStyle` | `String`          | False    | Specifies the PartitionStyle to use when running Clear-LocalDisk.  |
| `-Force`          | `SwitchParameter` | False    | Specifies the Force to use when running Clear-LocalDisk.           |
| `-NoResults`      | `SwitchParameter` | False    | Specifies the NoResults to use when running Clear-LocalDisk.       |
| `-ShowWarning`    | `SwitchParameter` | False    | Specifies the ShowWarning to use when running Clear-LocalDisk.     |
| `-WhatIf`         | `SwitchParameter` | False    | Shows what would happen if the cmdlet runs. The cmdlet is not run. |
| `-Confirm`        | `SwitchParameter` | False    | Prompts you for confirmation before running the cmdlet.            |

## Examples

### Example

```powershell
Demonstrates a common way to run Clear-LocalDisk.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Clear-USBDisk

Clears USBDisk data or state.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Removes existing USBDisk data or configuration and applies the requested reset behavior.

## Syntax

```powershell
Clear-USBDisk [[-Input] <Object>] [[-DiskNumber] <UInt32>] [-Initialize] [[-PartitionStyle] <String>] [-Force]
 [-ShowWarning] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm] [<CommonParameters>]
```

## Parameters

| Parameter         | Type              | Required | Description                                                        |
| ----------------- | ----------------- | -------- | ------------------------------------------------------------------ |
| `-Input`          | `Object`          | False    | Specifies the Input to use when running Clear-USBDisk.             |
| `-DiskNumber`     | `UInt32`          | False    | Specifies the DiskNumber to use when running Clear-USBDisk.        |
| `-Initialize`     | `SwitchParameter` | False    | Specifies the Initialize to use when running Clear-USBDisk.        |
| `-PartitionStyle` | `String`          | False    | Specifies the PartitionStyle to use when running Clear-USBDisk.    |
| `-Force`          | `SwitchParameter` | False    | Specifies the Force to use when running Clear-USBDisk.             |
| `-ShowWarning`    | `SwitchParameter` | False    | Specifies the ShowWarning to use when running Clear-USBDisk.       |
| `-WhatIf`         | `SwitchParameter` | False    | Shows what would happen if the cmdlet runs. The cmdlet is not run. |
| `-Confirm`        | `SwitchParameter` | False    | Prompts you for confirmation before running the cmdlet.            |

## Examples

### Example

```powershell
Demonstrates a common way to run Clear-USBDisk.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Connect-OSDCloudAzure

Connect to Azure and initialize OSDCloudAzure session state.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Installs the Azure and Microsoft Graph modules required by OSDCloudAzure, signs in to Azure, optionally prompts for a subscription when multiple subscriptions are available, and populates the global context, token, and header variables used by the Azure deployment workflow.

## Syntax

```powershell
Connect-OSDCloudAzure [-UseDeviceAuthentication] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter                  | Type              | Required | Description                                                                   |
| -------------------------- | ----------------- | -------- | ----------------------------------------------------------------------------- |
| `-UseDeviceAuthentication` | `SwitchParameter` | False    | Use device-code authentication instead of the interactive Azure sign-in flow. |

## Examples

### Example

```powershell
Connect-OSDCloudAzure
Signs in to Azure using the interactive browser-based authentication flow.
```

### Example

```powershell
Connect-OSDCloudAzure -UseDeviceAuthentication
Signs in to Azure by using device-code authentication.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>
* <https://github.com/OSDeploy/OSD/blob/master/docs/Connect-OSDCloudAzure.md>


# Convert-EsdToFolder

Expands an ESD file into a Windows setup folder structure.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Converts an ESD image into folder media by expanding setup media and exporting boot and install images to the destination structure.

## Syntax

```powershell
Convert-EsdToFolder [-esdFullName] <String> [[-folderFullName] <String>] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter         | Type     | Required | Description                                                               |
| ----------------- | -------- | -------- | ------------------------------------------------------------------------- |
| `-esdFullName`    | `String` | True     | Full path to the source ESD file.                                         |
| `-folderFullName` | `String` | False    | Destination folder path. If omitted, a folder is created next to the ESD. |

## Examples

### Example

```powershell
Convert-EsdToFolder -esdFullName 'C:\Media\install.esd'
Expands the ESD into a setup folder beside the source file.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Convert-EsdToIso

Converts an ESD file into an ISO image.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Expands and exports required images from an ESD into a temporary media folder, then creates an ISO using Convert-FolderToIso.

## Syntax

```powershell
Convert-EsdToIso [-esdFullName] <String> [[-isoFullName] <String>] [[-isoLabel] <String>] [-noPrompt] [-Demo]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter      | Type              | Required | Description                                                              |
| -------------- | ----------------- | -------- | ------------------------------------------------------------------------ |
| `-esdFullName` | `String`          | True     | Full path to the source ESD file.                                        |
| `-isoFullName` | `String`          | False    | Destination ISO file path. If omitted, an ISO is created beside the ESD. |
| `-isoLabel`    | `String`          | False    | ISO volume label. Must be 1 to 16 characters.                            |
| `-noPrompt`    | `SwitchParameter` | False    | Uses no-prompt UEFI boot image behavior when creating the ISO.           |
| `-Demo`        | `SwitchParameter` | False    | Shows conversion actions without exporting images.                       |

## Examples

### Example

```powershell
Convert-EsdToIso -esdFullName 'C:\Media\install.esd'
Converts install.esd to an ISO in the same directory.
```

### Example

```powershell
Convert-EsdToIso -esdFullName 'C:\Media\install.esd' -isoFullName 'C:\ISO\Custom.iso' -isoLabel 'CustomISO' -noPrompt
Converts the ESD to a custom-labeled ISO at the specified path.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Convert-EsdToWim

Converts an ESD file into a WIM image.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Exports non-setup Windows indexes from an ESD source into a new WIM file.

## Syntax

```powershell
Convert-EsdToWim [-esdFullName] <String> [[-wimFullName] <String>] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter      | Type     | Required | Description                                                             |
| -------------- | -------- | -------- | ----------------------------------------------------------------------- |
| `-esdFullName` | `String` | True     | Full path to the source ESD file.                                       |
| `-wimFullName` | `String` | False    | Destination WIM file path. If omitted, a WIM is created beside the ESD. |

## Examples

### Example

```powershell
Convert-EsdToWim -esdFullName 'C:\Media\install.esd'
Exports Windows image indexes from the ESD into install.wim.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Convert-FolderToIso

Creates an ISO file from a source folder.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Uses Windows ADK oscdimg to create a standard or bootable ISO from a folder. The function validates required boot files when present and supports optional no-prompt UEFI boot media generation.

## Syntax

```powershell
Convert-FolderToIso [-folderFullName] <String> [-isoFullName <String>] [-isoLabel <String>] [-noPrompt]
 [-WindowsAdkRoot <FileInfo>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter         | Type              | Required | Description                                                                                              |
| ----------------- | ----------------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `-folderFullName` | `String`          | True     | Source folder path to convert into an ISO.                                                               |
| `-isoFullName`    | `String`          | False    | Destination ISO file path. If omitted, an ISO is created beside the source folder using the folder name. |
| `-isoLabel`       | `String`          | False    | ISO volume label. Must be 1 to 16 characters.                                                            |
| `-noPrompt`       | `SwitchParameter` | False    | Uses efisys\_noprompt.bin when available for UEFI boot media.                                            |
| `-WindowsAdkRoot` | `FileInfo`        | False    | Optional Windows ADK root path used to resolve oscdimg.exe.                                              |

## Examples

### Example

```powershell
Convert-FolderToIso -folderFullName 'C:\OSD\Media'
Creates C:\OSD\Media.iso from the specified folder.
```

### Example

```powershell
Convert-FolderToIso -folderFullName 'C:\OSD\Media' -isoFullName 'C:\ISO\Custom.iso' -isoLabel 'CustomISO' -noPrompt
Creates a bootable ISO at the specified destination with a custom label.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Convert-PNPDeviceIDtoGuid

Extracts GUID values from a PNP Device ID string.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Uses a regular expression to locate and return GUID values embedded in a Plug and Play device identifier. Accepts input directly or from the pipeline.

## Syntax

```powershell
Convert-PNPDeviceIDtoGuid [-PNPDeviceID] <String> [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter      | Type     | Required | Description                                     |
| -------------- | -------- | -------- | ----------------------------------------------- |
| `-PNPDeviceID` | `String` | True     | PNP device ID string to search for GUID values. |

## Examples

### Example

```powershell
Convert-PNPDeviceIDtoGuid -PNPDeviceID 'USB\\VID_1234&PID_5678\\{12345678-1234-1234-1234-1234567890AB}'
Returns the GUID found in the PNP device ID.
```

### Example

```powershell
'USB\\VID_1234&PID_5678\\{12345678-1234-1234-1234-1234567890AB}' | Convert-PNPDeviceIDtoGuid
Returns the GUID found in the piped PNP device ID.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# ConvertTo-PSKeyVaultSecret

Converts a value to an Azure Key Vault Secret

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Converts a value to an Azure Key Vault Secret

## Syntax

### FromUriContent (Default)

```powershell
ConvertTo-PSKeyVaultSecret -VaultName <String> -Name <String> -Uri <Uri> [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

### FromClipboard

```powershell
ConvertTo-PSKeyVaultSecret -VaultName <String> -Name <String> [-Clipboard] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

### FromFile

```powershell
ConvertTo-PSKeyVaultSecret -VaultName <String> -Name <String> -File <FileInfo>
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

### FromString

```powershell
ConvertTo-PSKeyVaultSecret -VaultName <String> -Name <String> -String <String>
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter    | Type              | Required | Description                                                                                                                                                                                                                 |
| ------------ | ----------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-VaultName` | `String`          | True     | Specifies the name of the key vault to which the secret belongs. This cmdlet constructs the fully qualified domain name (FQDN) of a key vault based on the name that this parameter specifies and your current environment. |
| `-Name`      | `String`          | True     | Specifies the name of the secret to set                                                                                                                                                                                     |
| `-Uri`       | `Uri`             | True     | Uri content to set as the Azure Key Vault secret                                                                                                                                                                            |
| `-Clipboard` | `SwitchParameter` | True     | Clipboard raw text to set as the Azure Key Vault secret                                                                                                                                                                     |
| `-File`      | `FileInfo`        | True     | File content to set as the Azure Key Vault secret                                                                                                                                                                           |
| `-String`    | `String`          | True     | String to set as the Azure Key Vault secret                                                                                                                                                                                 |

## Examples

No examples provided in source documentation.

## Related

* <https://osd.osdeploy.com>


# Copy-IsoToUsb

Creates a bootable USB drive from a Windows ISO.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Formats a selected USB disk, mounts the ISO, and copies installation files to the USB volume. Supports FAT32 or NTFS, optional bootsect execution, and optional splitting of large install.wim files.

## Syntax

```powershell
Copy-IsoToUsb [-ISOFile] <String> [-MakeBootable] [-NTFS] [-SplitWim] [[-USBLabel] <String>]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter       | Type              | Required | Description                                               |
| --------------- | ----------------- | -------- | --------------------------------------------------------- |
| `-ISOFile`      | `String`          | True     | Full path to the ISO file to mount and copy.              |
| `-MakeBootable` | `SwitchParameter` | False    | Runs bootsect.exe against the USB drive after formatting. |
| `-NTFS`         | `SwitchParameter` | False    | Formats the USB drive as NTFS instead of FAT32.           |
| `-SplitWim`     | `SwitchParameter` | False    | Forces splitting install.wim into .swm files during copy. |
| `-USBLabel`     | `String`          | False    | File system label assigned to the USB drive.              |

## Examples

### Example

```powershell
Copy-IsoToUsb -ISOFile 'C:\Temp\Win11.iso' -MakeBootable -USBLabel WIN11
Creates a bootable USB and copies the ISO contents.
```

### Example

```powershell
Copy-IsoToUsb -ISOFile 'C:\Temp\Win11.iso' -NTFS -USBLabel WIN11NTFS
Creates an NTFS-formatted USB and copies the ISO contents.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Copy-PSModuleToFolder

Copies PowerShell modules to a destination module path.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Finds the latest installed version of each requested module and copies it to the destination using the standard module\version folder layout.

## Syntax

```powershell
Copy-PSModuleToFolder [-Name] <String[]> [-Destination] <String> [-RemoveOldVersions]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter            | Type              | Required | Description                                                          |
| -------------------- | ----------------- | -------- | -------------------------------------------------------------------- |
| `-Name`              | `String[]`        | True     | One or more module names to copy.                                    |
| `-Destination`       | `String`          | True     | Destination root folder for copied modules.                          |
| `-RemoveOldVersions` | `SwitchParameter` | False    | Removes existing module content from the destination before copying. |

## Examples

### Example

```powershell
Copy-PSModuleToFolder -Name OSD -Destination 'C:\Modules'
Copies the latest installed OSD module to C:\Modules\OSD\<version>.
```

### Example

```powershell
Copy-PSModuleToFolder -Name OSD,PackageManagement -Destination 'C:\Modules' -RemoveOldVersions
Removes existing destination module content and copies fresh module versions.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Copy-PSModuleToWim

Copies PowerShell modules into an offline Windows image.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Mounts one or more WIM images, copies selected modules into the offline module path, optionally sets the image execution policy, and saves changes.

## Syntax

```powershell
Copy-PSModuleToWim [[-ExecutionPolicy] <String>] [-ImagePath] <String[]> [[-Index] <UInt32>] [-Name] <String[]>
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter          | Type       | Required | Description                                            |
| ------------------ | ---------- | -------- | ------------------------------------------------------ |
| `-ExecutionPolicy` | `String`   | False    | Optional execution policy to set in the mounted image. |
| `-ImagePath`       | `String[]` | True     | One or more WIM image file paths to mount and update.  |
| `-Index`           | `UInt32`   | False    | Image index to mount from each WIM. Default is 1.      |
| `-Name`            | `String[]` | True     | One or more module names to copy into the image.       |

## Examples

### Example

```powershell
Copy-PSModuleToWim -ImagePath 'C:\Media\boot.wim' -Name OSD
Copies the latest installed OSD module into index 1 of boot.wim.
```

### Example

```powershell
Copy-PSModuleToWim -ImagePath 'C:\Media\boot.wim' -Index 2 -Name OSD -ExecutionPolicy RemoteSigned
Copies modules to image index 2 and sets execution policy in the mounted image.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Copy-PSModuleToWindowsImage

Copies PowerShell modules to a mounted Windows image

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Copies specified PowerShell modules from the running operating system to a mounted Windows image for offline servicing.

## Syntax

```powershell
Copy-PSModuleToWindowsImage [-Name] <String[]> [-ExecutionPolicy <String>] [-Path <String[]>]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter          | Type       | Required | Description                                                                                                                                           |
| ------------------ | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-Name`            | `String[]` | True     | Name of the PowerShell module(s) to copy. Wildcard patterns are supported. This parameter is mandatory.                                               |
| `-ExecutionPolicy` | `String`   | False    | Sets the PowerShell Execution Policy in the Windows image. Valid values are Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass, and Undefined. |
| `-Path`            | `String[]` | False    | Path to the mounted Windows image. If not specified, will use the currently mounted image.                                                            |

## Examples

### Example

```powershell
Copy-PSModuleToWindowsImage -Name 'OSD' -Path 'C:\Mount'
Copies the OSD module to the mounted image at C:\\Mount
```

### Example

```powershell
Copy-PSModuleToWindowsImage -Name 'OSD','ActiveDirectory' -ExecutionPolicy Bypass -Path 'C:\Mount'
Copies multiple modules and sets execution policy
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Copy-WinREWIM

Copies the Windows Recovery Environment WIM to the specified DestinationDirectory

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Copies the Windows Recovery Environment WIM to the specified DestinationDirectory This function must be run in Windows

## Syntax

```powershell
Copy-WinREWIM [[-DestinationDirectory] <String>] [[-DestinationFileName] <String>]
 [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter               | Type     | Required | Description                                                                       |
| ----------------------- | -------- | -------- | --------------------------------------------------------------------------------- |
| `-DestinationDirectory` | `String` | False    | Directory to save the Windows Recovery Environment WIM Default: $env:Temp\sources |
| `-DestinationFileName`  | `String` | False    | File Name of the Windows Recovery WIM Default: winre.wim                          |

## Examples

No examples provided in source documentation.

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Dismount-MyWindowsImage

Dismounts MyWindowsImage and finalizes changes.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Commits or discards changes to MyWindowsImage and then unmounts the image.

## Syntax

### DismountDiscard (Default)

```powershell
Dismount-MyWindowsImage [-Path <String[]>] [-Discard] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm]
 [<CommonParameters>]
```

### DismountSave

```powershell
Dismount-MyWindowsImage [-Path <String[]>] [-Save] [-ProgressAction <ActionPreference>] [-WhatIf] [-Confirm]
 [<CommonParameters>]
```

## Parameters

| Parameter  | Type              | Required | Description                                                        |
| ---------- | ----------------- | -------- | ------------------------------------------------------------------ |
| `-Path`    | `String[]`        | False    | Specifies the Path to use when running Dismount-MyWindowsImage.    |
| `-Discard` | `SwitchParameter` | True     | Specifies the Discard to use when running Dismount-MyWindowsImage. |
| `-Save`    | `SwitchParameter` | True     | Specifies the Save to use when running Dismount-MyWindowsImage.    |
| `-WhatIf`  | `SwitchParameter` | False    | Shows what would happen if the cmdlet runs. The cmdlet is not run. |
| `-Confirm` | `SwitchParameter` | False    | Prompts you for confirmation before running the cmdlet.            |

## Examples

### Example

```powershell
Demonstrates a common way to run Dismount-MyWindowsImage.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Edit-AdkWinPEWIM

Adds PowerShell and PowerShell Gallery support to ADK's x64 winpe.wim

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Adds PowerShell and PowerShell Gallery support to ADK's x64 winpe.wim. This will speed things up with MDT and MEM CM going forward

## Syntax

```powershell
Edit-AdkWinPEWIM [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

No examples provided in source documentation.

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Edit-MyWindowsImage

Edits MyWindowsImage content.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Applies modifications to MyWindowsImage in the current servicing workflow.

## Syntax

### Offline (Default)

```powershell
Edit-MyWindowsImage [-Path <String[]>] [-CleanupImage <String>] [-GridRemoveAppxPP] [-RemoveAppxPP <String[]>]
 [-DismountSave] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

### Online

```powershell
Edit-MyWindowsImage [-Online] [-GridRemoveAppx] [-GridRemoveAppxPP] [-RemoveAppx <String[]>]
 [-RemoveAppxPP <String[]>] [-DismountSave] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter           | Type              | Required | Description                                                             |
| ------------------- | ----------------- | -------- | ----------------------------------------------------------------------- |
| `-Path`             | `String[]`        | False    | Specifies the Path to use when running Edit-MyWindowsImage.             |
| `-CleanupImage`     | `String`          | False    | Specifies the CleanupImage to use when running Edit-MyWindowsImage.     |
| `-Online`           | `SwitchParameter` | True     | Specifies the Online to use when running Edit-MyWindowsImage.           |
| `-GridRemoveAppx`   | `SwitchParameter` | False    | Specifies the GridRemoveAppx to use when running Edit-MyWindowsImage.   |
| `-GridRemoveAppxPP` | `SwitchParameter` | False    | Specifies the GridRemoveAppxPP to use when running Edit-MyWindowsImage. |
| `-RemoveAppx`       | `String[]`        | False    | Specifies the RemoveAppx to use when running Edit-MyWindowsImage.       |
| `-RemoveAppxPP`     | `String[]`        | False    | Specifies the RemoveAppxPP to use when running Edit-MyWindowsImage.     |
| `-DismountSave`     | `SwitchParameter` | False    | Specifies the DismountSave to use when running Edit-MyWindowsImage.     |

## Examples

### Example

```powershell
Demonstrates a common way to run Edit-MyWindowsImage.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Edit-MyWinPE

Mounts and edits a WinPE WIM file

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Mounts and edits a WinPE WIM file

## Syntax

```powershell
Edit-MyWinPE [-ImagePath <String[]>] [-Index <UInt32>] [-CloudDriver <String[]>] [-DriverHWID <String[]>]
 [-DriverPath <String[]>] [-ExecutionPolicy <String>] [-PSModuleInstall <String[]>] [-PSModuleCopy <String[]>]
 [-PSGallery] [-Wallpaper <String>] [-DismountSave] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter          | Type              | Required | Description                                                                                                                                                 |
| ------------------ | ----------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-ImagePath`       | `String[]`        | False    | Path to the WinPE WIM file. This file must be local and not on a USB or Network Share                                                                       |
| `-Index`           | `UInt32`          | False    | Index of the WinPE WIM file to mount. Default is 1                                                                                                          |
| `-CloudDriver`     | `String[]`        | False    | WinPE Driver: Download and install in WinPE drivers from Dell,HP,IntelNet,LenovoDock,Nutanix,Surface,USB,VMware,WiFi                                        |
| `-DriverHWID`      | `String[]`        | False    | WinPE Driver: HardwareID of the Driver to add to WinPE                                                                                                      |
| `-DriverPath`      | `String[]`        | False    | WinPE Driver: Path to additional Drivers you want to add to WinPE                                                                                           |
| `-ExecutionPolicy` | `String`          | False    | PowerShell: Sets the PowerShell Execution Policy of WinPE. Bypass is recommended                                                                            |
| `-PSModuleInstall` | `String[]`        | False    | PowerShell: Installs named PowerShell Modules from PowerShell Gallery to WinPE                                                                              |
| `-PSModuleCopy`    | `String[]`        | False    | PowerShell: Copies named PowerShell Modules from the running OS to WinPE This is useful for adding Modules that are customized or not on PowerShell Gallery |
| `-PSGallery`       | `SwitchParameter` | False    | PowerShell: Enables PowerShell Gallery functionality in WinPE                                                                                               |
| `-Wallpaper`       | `String`          | False    | Sets the specified Wallpaper JPG file as the WinPE Background                                                                                               |
| `-DismountSave`    | `SwitchParameter` | False    | Dismounts and saves changes to the mounted WinPE WIM                                                                                                        |

## Examples

No examples provided in source documentation.

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Edit-OSDCloudWinPE

Edits content by using Edit-OSDCloudWinPE.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Provides the implementation for Edit-OSDCloudWinPE.

## Syntax

```powershell
Edit-OSDCloudWinPE [-CloudDriver <String[]>] [-StartOSDCloudGUI] [-DriverHWID <String[]>]
 [-DriverPath <String[]>] [-PSModuleCopy <String[]>] [-PSModuleInstall <String[]>] [-Startnet <String>]
 [-StartOSDCloud <String>] [-StartOSDPad <String>] [-StartPSCommand <String>] [-StartURL <String>] [-UpdateUSB]
 [-Wallpaper <FileInfo>] [-UseDefaultWallpaper] [-Brand <String>] [-WorkspacePath <String>] [-WirelessConnect]
 [-WifiProfile <FileInfo>] [-Add7Zip] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter              | Type              | Required | Description                                      |
| ---------------------- | ----------------- | -------- | ------------------------------------------------ |
| `-CloudDriver`         | `String[]`        | False    | Specifies the value for CloudDriver.             |
| `-StartOSDCloudGUI`    | `SwitchParameter` | False    | Indicates whether to enable StartOSDCloudGUI.    |
| `-DriverHWID`          | `String[]`        | False    | Specifies the value for DriverHWID.              |
| `-DriverPath`          | `String[]`        | False    | Specifies the value for DriverPath.              |
| `-PSModuleCopy`        | `String[]`        | False    | Specifies the value for PSModuleCopy.            |
| `-PSModuleInstall`     | `String[]`        | False    | Specifies the value for PSModuleInstall.         |
| `-Startnet`            | `String`          | False    | Specifies the value for Startnet.                |
| `-StartOSDCloud`       | `String`          | False    | Specifies the value for StartOSDCloud.           |
| `-StartOSDPad`         | `String`          | False    | Specifies the value for StartOSDPad.             |
| `-StartPSCommand`      | `String`          | False    | Specifies the value for StartPSCommand.          |
| `-StartURL`            | `String`          | False    | Specifies the value for StartURL.                |
| `-UpdateUSB`           | `SwitchParameter` | False    | Indicates whether to enable UpdateUSB.           |
| `-Wallpaper`           | `FileInfo`        | False    | Specifies the value for Wallpaper.               |
| `-UseDefaultWallpaper` | `SwitchParameter` | False    | Indicates whether to enable UseDefaultWallpaper. |
| `-Brand`               | `String`          | False    | Specifies the value for Brand.                   |
| `-WorkspacePath`       | `String`          | False    | Specifies the value for WorkspacePath.           |
| `-WirelessConnect`     | `SwitchParameter` | False    | Indicates whether to enable WirelessConnect.     |
| `-WifiProfile`         | `FileInfo`        | False    | Specifies the value for WifiProfile.             |
| `-Add7Zip`             | `SwitchParameter` | False    | Indicates whether to enable Add7Zip.             |

## Examples

### Example

```powershell
-StartOSDCloudGUI
Runs Edit-OSDCloudWinPE with common parameters.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Enable-OSDCloudODT

Enables ODT Support in an OSDCloud Workspace

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Enables ODT Support in an OSDCloud Workspace

## Syntax

```powershell
Enable-OSDCloudODT [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

No examples provided in source documentation.

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Enable-PEWimPSGallery

Enables PowerShell Gallery functionality in a WinPE WIM file

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Mounts a WinPE WIM file and configures it to support PowerShell Gallery functionality by modifying registry settings and environment variables.

## Syntax

```powershell
Enable-PEWimPSGallery [-ImagePath] <String[]> [[-Index] <UInt32>] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter    | Type       | Required | Description                                                                                        |
| ------------ | ---------- | -------- | -------------------------------------------------------------------------------------------------- |
| `-ImagePath` | `String[]` | True     | Full path to the WinPE WIM file to modify. This parameter is mandatory and accepts pipeline input. |
| `-Index`     | `UInt32`   | False    | Index of the WIM to mount. Default is 1                                                            |

## Examples

### Example

```powershell
Enable-PEWimPSGallery -ImagePath 'C:\WinPE\winpe.wim'
Enables PowerShell Gallery in the specified WIM file
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Enable-PEWindowsImagePSGallery

Enables PowerShell Gallery in a mounted Windows image

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Configures a mounted Windows image to support PowerShell Gallery by adding necessary registry entries and environment variables to the system profile.

## Syntax

```powershell
Enable-PEWindowsImagePSGallery [[-Path] <String[]>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type       | Required | Description                                                                                               |
| --------- | ---------- | -------- | --------------------------------------------------------------------------------------------------------- |
| `-Path`   | `String[]` | False    | Path to the mounted Windows image root directory. If not specified, will use the currently mounted image. |

## Examples

### Example

```powershell
Enable-PEWindowsImagePSGallery
Enables PowerShell Gallery in the currently mounted image
```

### Example

```powershell
Enable-PEWindowsImagePSGallery -Path 'C:\Mount'
Enables PowerShell Gallery in the image mounted at C:\Mount
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Enable-SpecializeDriverPack

Configures driver pack expansion during Windows Specialize phase

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Sets up an unattend XML file to automatically expand driver packs during the Windows Specialize pass. Requires admin rights and Windows 10 or later.

## Syntax

```powershell
Enable-SpecializeDriverPack [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

### Example

```powershell
Enable-SpecializeDriverPack
Configures the system to expand driver packs during Specialize phase
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Expand-StagedDriverPack

Expands staged driver pack archives during Windows Setup

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Extracts and processes staged driver pack files (CAB, EXE, MSI, ZIP) from the C:\Drivers directory. Supports multiple vendor formats including Dell, HP, Lenovo, and generic packages.

## Syntax

```powershell
Expand-StagedDriverPack [-Apply] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type              | Required | Description                               |
| --------- | ----------------- | -------- | ----------------------------------------- |
| `-Apply`  | `SwitchParameter` | False    | Applies drivers during PnP unattend phase |

## Examples

### Example

```powershell
Expand-StagedDriverPack
Expands all driver packs in C:\Drivers
```

### Example

```powershell
Expand-StagedDriverPack -Apply
Expands driver packs and applies them during setup
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Expand-ZTIDriverPack

Expands driver packs during Lite Touch or Zero Touch deployment

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Processes and extracts driver pack files from C:\Drivers directory during MDT/ConfigMgr task sequence execution. Supports CAB, EXE, MSI, and ZIP formats from multiple vendors.

## Syntax

```powershell
Expand-ZTIDriverPack [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

### Example

```powershell
Expand-ZTIDriverPack
Expands all driver packs in C:\Drivers during task sequence
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Export-OSDCertificatesAsReg

Exports selected LocalMachine certificates as .reg files.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

Prompts for installed certificates and exports matching certificate registry keys from system certificate hives into .reg files under the temporary Certs folder.

## Syntax

```powershell
Export-OSDCertificatesAsReg [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

### Example

```powershell
Export-OSDCertificatesAsReg
Opens a selection grid and exports registry-backed certificate entries for selected certificates to $env:Temp\Certs.
```

## Related

* <https://github.com/OSDeploy/OSD/tree/master/docs>


# Find-OSDCloudFile

No synopsis provided.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

No synopsis provided.

## Syntax

```powershell
Find-OSDCloudFile [[-Name] <String>] [[-Path] <String>] [-ProgressAction <ActionPreference>]
 [<CommonParameters>]
```

## Parameters

| Parameter | Type     | Required | Description                         |
| --------- | -------- | -------- | ----------------------------------- |
| `-Name`   | `String` | False    | No additional description provided. |
| `-Path`   | `String` | False    | No additional description provided. |

## Examples

No examples provided in source documentation.


# Find-OSDCloudODTFile

No synopsis provided.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

No synopsis provided.

## Syntax

```powershell
Find-OSDCloudODTFile [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

No examples provided in source documentation.


# Find-OSDCloudOfflineFile

No synopsis provided.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

No synopsis provided.

## Syntax

```powershell
Find-OSDCloudOfflineFile [[-Name] <String>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

| Parameter | Type     | Required | Description                         |
| --------- | -------- | -------- | ----------------------------------- |
| `-Name`   | `String` | False    | No additional description provided. |

## Examples

No examples provided in source documentation.


# Find-OSDCloudOfflinePath

No synopsis provided.

| Property | Value                 |
| -------- | --------------------- |
| Module   | OSD                   |
| Platform | WinPE (amd64 / arm64) |

## Description

No synopsis provided.

## Syntax

```powershell
Find-OSDCloudOfflinePath [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Parameters

This function does not define function-specific parameters beyond common parameters.

## Examples

No examples provided in source documentation.




---

[Next Page](/llms-full.txt/1)

