Skip to content

Update OSD for Windows 11 26H2 preview - #388

Merged
OSDeploy merged 7 commits into
masterfrom
lark
Sep 30, 2026
Merged

OSDeploy merged 7 commits into
masterfrom
lark

Conversation

@OSDeploy

Copy link
Copy Markdown
Owner

Summary

  • add native battery-state detection and consolidate shared download behavior
  • expand Windows 11 26H2 deployment support and OSDCore USB cache handling
  • migrate public driver-pack compatibility to bundled core catalogs with test coverage
  • update README and changelog for the 26.9.30-preview release

Validation

  • targeted PowerShell tests included on the branch
  • manifest, README, and changelog effective versions match
  • git diff --check passes

Copilot AI balanced review requested due to automatic review settings September 30, 2026 20:57
@OSDeploy
OSDeploy merged commit f3f1d73 into master Sep 30, 2026
1 check passed
@OSDeploy
OSDeploy deleted the lark branch September 30, 2026 20:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Undefined commands, inconsistent cache state, and compatibility regressions currently break key USB-cache and driver-pack workflows.

Review effort: Balanced
Findings: 2 High severity · 8 Medium severity · 3 Low severity

Open (13)
What changed in this PR

Adds Windows 11 26H2 preview support while modernizing battery detection, driver-pack compatibility, setup scripts, downloads, and USB caching.

Changes:

  • Updates deployment defaults, catalogs, documentation, and release metadata for 26H2.
  • Consolidates download, battery, cache, and setup-script helpers.
  • Migrates driver-pack discovery to bundled core catalogs with tests.
File Description
README.md Updates preview version.
Public/​Start-OSDCloudGUIDev.ps1 Uses native battery detection.
Public/​Start-OSDCloudGUI.ps1 Uses native battery detection.
Public/​Start-OSDCloudCLI.ps1 Adds 26H2 CLI support.
Public/​Start-OSDCloud.ps1 Adds 26H2 deployment defaults.
Public/​OSDCloudIPU/​New-OSDCloudOSWimFile.ps1 Adds 26H2 media targets.
Public/​OSDCloud/​OSDCloudUSB.ps1 Adds 26H2 USB options.
Public/​OSDCloud/​OSDCloudRE.ps1 Uses native battery detection.
Public/​OSDCloud/​OSDCloudDriverPack.Tests.ps1 Tests public driver-pack behavior.
Public/​OSDCloud/​OSDCloudDriverPack.ps1 Uses bundled compatibility catalog.
Public/​OSDCloud.ps1 Initializes setup scripts after image application.
Public/​Functions/​Save-FeatureUpdate.ps1 Defaults feature updates to 26H2.
Public/​Functions/​Get-FeatureUpdate.ps1 Adds 26H2 feature-update selection.
Public/​core-recast/​Start-RecastOSDCloudCLI.ps1 Defaults Recast CLI to 26H2.
Private/​Test-OSDIsOnBattery.ps1 Adds native battery-state detection.
Private/​steps-osd/​Step-OSDCloudSaveOperatingSystemCloudObject.ps1 Uses consolidated downloader.
Private/​steps-osd/​Step-OSDCloudSaveDriverPackCloudObject.ps1 Uses consolidated downloader.
Private/​steps-osd/​Step-OSDCloudExpandWindowsImage.ps1 Initializes setup command files.
Private/​steps-osd/​Initialize-OSDCloudSetupScripts.Tests.ps1 Tests setup-script initialization.
Private/​steps-osd/​Initialize-OSDCloudSetupScripts.ps1 Creates setup command files.
Private/​Invoke-OSDCloudGUIDev.ps1 Updates battery and setup handling.
Private/​Invoke-OSDCloudGUI.ps1 Updates battery and setup handling.
Private/​Invoke-OSDCloudCLI.ps1 Updates battery and setup handling.
Private/​Invoke-OSDCloudAzure.ps1 Updates battery and setup handling.
Private/​core/​Invoke-RecastOSDDownloadFile.ps1 Renames and hardens downloader.
Private/​core-operatingsystem/​Test-OSDCoreOperatingSystemCloudObject.ps1 Adds URL reachability validation.
Private/​core-operatingsystem/​Set-OSDCoreOperatingSystemCloudObject.ps1 Updates 26H2 example.
Private/​core-operatingsystem/​Get-OSDCoreOperatingSystemCacheObject.ps1 Adds OS cache lookup.
Private/​core-operatingsystem/​dev/​Get-OSDCloudDefaultOS.ps1 Updates sample 26H2 metadata.
Private/​core-driverpack/​Test-OSDCoreDriverPackCloudObject.ps1 Adds driver URL validation.
Private/​core-driverpack/​Initialize-ModuleCoreDriverPacks.ps1 Adds Panasonic catalog routing.
Private/​core-driverpack/​Get-OSDCoreDriverPackCatalogSurface.ps1 Corrects local-only catalog behavior.
Private/​core-driverpack/​Get-OSDCoreDriverPackCacheObject.ps1 Adds driver cache lookup.
Private/​core-driverpack/​Get-OSDCloudDriverPackCompatibilityCatalog.Tests.ps1 Tests catalog aggregation.
Private/​core-driverpack/​Get-OSDCloudDriverPackCompatibilityCatalog.ps1 Aggregates bundled catalogs.
Private/​core-driverpack/​ConvertTo-OSDCloudDriverPack.Tests.ps1 Tests compatibility conversion.
Private/​core-driverpack/​ConvertTo-OSDCloudDriverPack.ps1 Projects core driver metadata.
Private/​core-dev/​Start-RecastOSDCloudGUI.ps1 Defaults Recast GUI to 26H2.
Private/​core-dev/​Invoke-RecastOSDCloud.ps1 Initializes setup scripts.
Private/​core-cache/​Update-RecastOSDCloudUSBCache.ps1 Expands USB cache workflow.
Private/​core-cache/​Test-OSDCoreCacheUSB.ps1 Detects USB-backed caches.
Private/​core-cache/​Initialize-OSDCoreCache.ps1 Adds cache initialization.
Private/​core-cache/​Get-OSDCoreCacheUSBPath.ps1 Locates eligible USB caches.
Private/​core-cache/​Get-OSDCoreCacheDrive.ps1 Enumerates cache-drive metadata.
Private/​core-cache/​Get-OSDCoreCacheContent.ps1 Renames exported cache inventory.
OSD.psm1 Excludes tests during module loading.
OSD.psd1 Sets preview release metadata.
OSD.json Updates default selections to 26H2.
docs/​Start-RecastOSDCloudCLI.md Documents 26H2 default.
docs/​Start-OSDCloudCLI.md Updates CLI examples.
docs/​Start-OSDCloud.md Updates deployment examples.
docs/​Save-FeatureUpdate.md Documents 26H2 defaults.
docs/​New-OSDCloudOSWimFile.md Documents 26H2 media creation.
docs/​Get-FeatureUpdate.md Documents 26H2 defaults.
CHANGELOG.md Records preview release changes.
catalogs/​driverpack/​panasonic.json Removes legacy Panasonic catalog.
catalogs/​driverpack/​microsoft.xml Removes legacy Surface XML catalog.
catalogs/​driverpack/​microsoft.json Removes legacy Surface JSON catalog.
catalogs/​driverpack/​default.json Removes legacy generic catalog.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +30 to +31
$global:OSDCoreCache = @()
$global:OSDCoreCache = Get-OSDCoreCacheContent
$marker = ":: OSDCloud $(Get-Date -format s)"
foreach ($fileName in @('SetupComplete.cmd', 'OOBE.cmd')) {
$filePath = Join-Path -Path $scriptsPath -ChildPath $fileName
$marker | Out-File -FilePath $filePath -Append -Encoding ascii -Width 2000 -Force -ErrorAction Stop
Initialize-OSDCloudSetupScripts
}
catch {
Write-Warning "[$(Get-Date -format s)] Expand-WindowsImage failed."
Initialize-OSDCloudSetupScripts
}
catch {
Write-Warning "[$(Get-Date -format s)] Expand-WindowsImage failed."
Initialize-OSDCloudSetupScripts
}
catch {
Write-Warning "[$(Get-Date -format s)] Expand-WindowsImage failed."
Initialize-OSDCloudSetupScripts
}
catch {
throw "[$(Get-Date -format s)] Expand-WindowsImage failed. $_"
Comment thread Public/OSDCloud.ps1
Initialize-OSDCloudSetupScripts
}
catch {
Write-Warning "[$(Get-Date -format s)] Expand-WindowsImage failed."
Comment on lines +22 to +24
.NOTES
Depends on Get-OSDCoreCacheContent being available in the session.
#>
The device manufacturer name. Defaults to the value from $global:OSDCoreDevice.OSDManufacturer.
Supported values: Dell, HP, Lenovo, Microsoft, or any other value will use the Default catalog.

.PARAMETER GenericDriverPackJson
FileName : 26200.7462.251207-0044.25h2_ge_release_svc_refresh_CLIENTCONSUMER_RET_x64FRE_en-gb.esd
Sha256 : 6c5d2f9a2916b3c580bf0f7b510535abfa3f192bdf638910661e343c3c9dd226
FileName : 26300.9457.260913-1737.26h2_ge_release_svc_refresh_CLIENTCONSUMER_RET_x64FRE_en-gb.esd
FilePath : http://dl.delivery.mp.microsoft.com/filestreamingservice/files/79a3f5e0-d04d-4689-a5d4-3ea35f8b189a/26200.7462.251207-0044.25h2_ge_release_svc_refresh_CLIENTCONSUMER_RET_x64FRE_en-gb.esd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants