Dell Command Update – Creating the Offline Repo Content – AUTOMATION

Dell Command Update Offline Repo Series
Part 1: Dell Command Update – Leveraging with ConfigMgr – Offline Repo Overview
Part 2: Dell Command Update – Create Custom Catalog for Offline Repo
Part 3: Dell Command Update – Creating the Offline Repo Content
Part 4: Dell Command Update – Offline Repo – TS Integration

So I’m going back a bit and showing how I do this in my lab, via PowerShell. With Dell, the most painful part is using the Tech Direct Portal and creating your Repo stubs (Part 2), but once you’ve downloaded that zip file, you can automate the rest with PowerShell.

Pre-reqs… buiding your CM Packages with a standard, here is what I use to pre-populate all of the Driver Pack / BIOS / Driver Repo packages in my lab for all of my supported models:

garytown/hardware/CreateCMPackages_BIOS_Drivers.ps1 at master · gwblok/garytown (github.com)

Update variables in the script to fit your environment and update the models in the model table.

After running the script, I have several Dell Packages created, from the image below, you can see I’ve already populated 3 of the packages, and I’ll show you how I did that as I populate additional ones.

Things to Note, for Dell you need to know the SKU, as everything is based on SKU. To learn more about how to capture that data, and other important information I use in my processes: ConfigMgr Inventory SystemSKUNumber, Product & BIOSVersion for Device Mapping

In this post, I’ve already done the pre-work of going to the Tech Direct Portal and making a new Catalog for my Dell Latitude 5590 & downloaded the stub zip file:

Now, in my script, I’ll point to that stub, and the script will do the rest: – Script on GitHub:
garytown/hardware/Dell/CommandUpdate/DCU-BuildOfflineRepo-CMPackages-WIM.ps1

When you run the script, it extracts the zip file, then it finds the BIOS update in the XML data, from that it gathers the System SKU for the device, it then looks in CM for the Repo packages that match the SKU and prompts you what one you want to use for this content:

You can see that the script was able to determine that the catalog was for a Latitude 5590 (SKU 0817), then return the 2 REPO packages I have for it (Dev/Prod), which I can now select the Prod package, which I haven’t populated yet. Once I select a package, it triggers the Dell downloader:

The script downloads the content into $TempWorkingPath, which is set to windows\temp\Dell\stubname

Once it completes the download of all the files in the catalog, it creates a WIM and populates it with the content.

New-WindowsImage -ImagePath "$PackageSourcePath\Drivers.wim" -CapturePath "$TempWorkingPath" -Name "$($CMPackage.MIFFilename) - $($CMPackage.Language)"  -LogPath "$env:TEMP\dism-$($CMPackage.MIFFilename).log" -ScratchDirectory $dismscratchpath

The Command is creating the WIM file called Drivers.wim into the package source location.

It then goes ahead and distributes that content.

Things to note, I should remove those 3 extra files, as they aren’t needed, I had put them there originally as potential ways to help in troubleshooting, but in reality, it’s not needed.

Then in the TS, you have to mount the drivers.wim file, and call your commands

Ok, so there are a lot of moving parts to make this all work, and I didn’t go into detail on all of it. If you’re good with PowerShell, you should be able to make sense of it all and find that you can automate a lot of the things in your environment.

For now, that’s all I’m going to cover, hopefully someday I’ll go into greater detail on the entire process, but that’s a huge blog series and a lot of time.

GARYTOWN.COM

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.