OSDCloud #1 – Basics

Introduction

  • Want to implement a Cloud only modern workplace environment without any additional On-Premises infrastructure?
  • Want to have an up-to-date device (OS, driver and firmware) before starting Autopilot pre-provisioning?
  • Having hardware issues after OEM delivery?
  • Having trouble with re-imaging?
  • Having an OS crash and needs to have a bare-metal device back quick as possible?
  • Do you want to deploy custom images?

This solution could solve all of these challenges.

OSDCloud helps to

  • deploy Windows 10/11 image on a bare-metal device using only WinPE and the OSD PowerShell module,
  • apply driver packs to update outdated hardware drivers out-of-box as part of the OS deployment process,
  • apply the latest OS updates out-of-box as part of the OS deployment process,
  • apply Autopilot configuration (offline injection) as part of the OS deployment process simplifying the OOBE setup.

David Segura just spends his free time to build up this amazing framework around OSD. In the meantime, it has been a community developed tool, where other great guys are helping to increase the functionality of this tool. Thanks Damien Van Robaeys, Gary Blok, Jérôme Bezet-Torres, Mike Marable, Dean Ellerby, Doug McGee for the further contributions.

Requirements

UPDATE, 27.10.2022: these commands were tested with PowerShell 5.1. It’s no guarantee if these would work with PSH 7.2 or above.

Starting to work with OSDCloud I recommend using a reference machine where all the prerequisites are installed. I suggest using a Windows 10 machine where you have admin right and don’t have any proxy or firewall configuration.
If your HOST operating system is running Windows 11, you can use the Windows 11 ADK’s, or you can create a Hyper-V virtual machine and install Windows 10 21H2 and use that.

    1. Installing Windows Assessment and Deployment Kit aka. ADK. Download here.
    2. Install WinPE add-on for Windows ADK. Download here.
    3. Installing OSD PowerShell module
      Set-ExecutionPolicy RemoteSigned -Force
      Install-Module OSD -Force
    4. Bonus, Microsoft DaRT integration: if you don’t have DaRT installed, skip this step. If you have Microsoft Desktop Optimization Pack 2015, you can install Microsoft DaRT 10. This will allow you to have DaRT
      1. WinPE winpeshl.ini has to be removed
      2. Microsoft DaRT Config has to be added from C:\Program Files\Microsoft Deployment Toolkit\Templates\DartConfig8.dat
         

Create OSDCloud Template

Now that you have your reference machine configuration complete, the next thing to do is to create an OSDCloud Template.

This template will be used to create multiple OSDCloud Workspaces (multiple variations). The WinPE in the OSDCloud template is what I call Universal WinPE because it can be used with Microsoft Deployment Toolkit and Microsoft Endpoint Manager (Configuration Manager) as well.

Use -WinRE parameter if you are on Windows 10 and want to create your OSDCloud Template with WinRE (instead of the ADK WinPE) to support Wireless.
HINT: Windows 11 WinRE isn’t compatible with older systems, and virtual machines.

New-OSDCloudTemplate -Language de-de -SetInputLocale de-CH -Verbose

 

You can add additional languages to your OSDCloud Template using the Language parameter.

 

Create OSDCloud Workspace

OSDCloud Workspace is a copy of the OSDCloud Template that you can customize with configuration files, wallpaper, drivers and startup configuration. Since it is a copy of your OSDCloud Template, this allows you to create multiple OSDCloud Workspaces that are customized with different configurations.

Using separate workspaces make sense to keep one for development and the second for production.

$WorkingDir="C:\OSDCloud"
New-OSDCloud.workspace -WorkspacePath $WorkingDir -Verbose

This is what an OSDCloud Workspace looks like when it has been created from an OSDCloud Template:

IMPORTANT: if you have an existing OSDCloud ISO, you can use the parameter -fromISOFile to create a new OSDCloud Workspace from an ISO file.

New-OSDCloudWorkspace $WorkingDir -fromIsoFile C:\OSDCloud\OSDCloud_Existing.ISO

If you have an OSDCloud USB, you can use the -fromUSBDrive switch parameter to create the OSDCloud Workspace from the USB content.

This switch was very important for me, in case, my customer was calling me and having some issue with an existing ISO file. Or just having some new need, like support other hardware vendors in the WinPE phase. Now with this OSDCloud function we are able to to change and/or extend the existing bootable media.

 

Create WinPE

We could start (officially) first with the following PS command:

Edit-OSDCloudWinPE

But changing other configuration from the first time, we can start either with these commands:

Edit-OSDCloudWinPE -WorkspacePath $WorkingDir

If you never run Edit-OSDCloudWinPE, then you will have a basic WinPE that doesn’t have any drivers or wallpaper, and PowerShell won’t open automatically.

Using different parameters are here the key:

Wallpaper

You can customize your OSDCloud WinPE with the -Wallpaper parameter. Make sure to pick a JPG and you are good to go.

Drivers

You have a few methods to get Drivers in OSDCloud WinPE. The easiest method is to use a –CloudDriver.

CloudDriver

If you know, on which hardware this WinPE will be executed, you can use the following vendors and their driver packs:

Vendors –> OSDCloud Parameter

  • Dell Enterprise Driver Cab –> Dell
  • HP WinPE 10 Driver Pack –> HP
  • Intel Ethernet Drivers –> IntelNet
  • Lenovo Dock Drivers (Microsoft Catalog) –> LenovoDock
  • Nutanix –> Nutanix
  • USB Dongles (Microsoft Catalog) –> USB
  • VMware (Microsoft Catalog) –> VMware
  • WiFi (Intel Wireless Drivers) [Requires WinRE] –> WiFi 

If you want to be flexible, you can include all of these drivers into the WinPE:

Edit-OSDCloudWinPE -CloudDriver *

With this command the WinPE size will be increase, but my recommendation is definitively to use it.

DriverPath

You can use a Driver Path to specify a folder containing driver INF’s that you want to install:

Edit-OSDCloudWinPE -DriverPath 'C:\DriverPath'

This option is very useful, if you have a new vendor and/or need to support touch function on a table in the WinPE phase.

StartOSDCloudGUI

If you want to run OSDCloudGUI automatically when WinPE starts, use the following command:

Edit-OSDCloudWinPE -StartOSDCloudGUI

If you want to add a custom Brand to OSDCloud GUI, simply add the -Brand parameter:

Edit-OSDCloudWinPE -StartOSDCloudGUI -Brand 'Akos OSDCloud GUI'

 

Create ISO

If you have the Windows ADK installed, you can use New-OSDCloudISO to create bootable ISO media for OSDCloud:

New-OSDCloudISO -WorkspacePath $WorkingDir

Two ISO’s will be saved in your OSDCloud workspace. The NoPrompt ISO will boot automatically into WinPE without prompting for a keyboard press.

Build a bootable stick with one of these ISO file, I am using the GitHub project RUFUS.

2 Comments


  1. Great article,

    shouldnt have other Edit-OSDCloudWinPE comands also have the paramter “-WorkspacePath $WorkingDir” added?

    Thanks

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *