
Happy New Years everyone! I was recently reading a blog post by Gary Blok that explained how to upgrade to Windows 10 21H2 via Enablement Package using the ConfigMgr App Model. It is a great article and I actually plan on using an Enablement Package to upgrade all of my 20H2 PC’s to 21H2. However, due to my anxiety I didn’t like that I actually had to setup an ADR to download the Enablement Package. So instead of using an ADR, I wanted to see if I could accomplish this with the ConfigMgr Powershell CMDLETs. Fortunately with ConfigMgr 2107, Microsoft released a new CMDLET Get-CMSoftwareUpdateContentInfo that can help us easily retrieve the source path for the Enablement Package .cab files. All you need to make this work is a site with 2107 installed, ConfigMgr console installed on the device that you are running the script, Powershell 3.0 and above, and the following Products and Classifications:
Product: Windows 10
Classification: Upgrades
Powershell Script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $DownloadFolder = "$env:TEMP\Enablement Packages" If (!( Test-Path "$DownloadFolder" )) { New-Item "$DownloadFolder" -ItemType Directory -Force } Get-CMSoftwareUpdate -Fast | Where-Object { $_ .LocalizedDisplayName -like "*Enablement Package" } | ForEach-Object { $SourceURL = ( Get-CMSoftwareUpdateContentInfo -Id $_ .CI_ID).SourceURL $LocalizedDisplayName = $_ .LocalizedDisplayName -replace '(?= via Enablement Package).*' , '' If (!( Test-Path "$DownloadFolder\$LocalizedDisplayName" )) { New-Item "$DownloadFolder\$LocalizedDisplayName" -ItemType Directory -Force } Invoke-WebRequest -Uri $SourceURL -OutFile "$DownloadFolder\$LocalizedDisplayName\$(($SourceURL -replace '.*([/])','').Split('_')[0]).cab" } Start $DownloadFolder |