Skip to content

Lenovo NVIDIA-only driver packs are selected over full SCCM packs in Lenovo catalog parsing (needs string filter) #323

@AmirTerani

Description

@AmirTerani

Description

When parsing Lenovo’s catalogv2.xml, OSDCloud currently adds both NVIDIA-only and full SCCM driver pack URLs for the same model/OS.
Because the NVIDIA-only packs have newer dates, OSDCloud’s selection logic ends up preferring those over the proper full driver packs.

This behavior causes deployments for Lenovo systems (such as ThinkPad P14s Gen 5 Type 21G2/21G3) to install incomplete driver sets, since the NVIDIA-only packs exclude Intel, AMD, or platform drivers.

To Reproduce

  1. Run OSDCloud with -DriverPack on a Lenovo P14s Gen 5 (21G3) system.
  2. Observe that the selected URL is an NVIDIA-only .exe instead of the proper full SCCM driver package.

Example from Lenovo’s catalogv2.xml:

<Model name="ThinkPad P14S Gen 5 Type 21G2 21G3">
  <Types>
    <Type>21G3</Type>
    <Type>21G2</Type>
  </Types>

  <SCCM os="win11" version="22H2" date="2025-10-01">
    https://download.lenovo.com/pccbbs/mobiles/tp_p14sg5_p16sg3_mt21g2_mt21g3_mt21ks_mt21kt_w11_22h2_sccm_202407.exe
  </SCCM>

  <SCCM os="win11" version="23H2" date="2025-10-01">
    https://download.lenovo.com/pccbbs/mobiles/tp_p14sg5_p16sg3_mt21g2_mt21g3_mt21ks_mt21kt_nvidia_w11_23h2_202508.exe
  </SCCM>

  <SCCM os="win11" version="24H2" date="2025-10-01">
    https://download.lenovo.com/pccbbs/mobiles/tp_p14sg5_p16sg3_mt21g2_mt21g3_mt21ks_mt21kt_nvidia_w11_24h2_202508.exe
  </SCCM>
</Model>

When Get-LenovoDriverPackCatalog.ps1 builds the driver catalog, it imports all of these <SCCM> entries equally.
Since the NVIDIA packs have newer timestamps, the filtering logic in Get-OSDCloudDriverPack or Get-OSDCloudDriverPacks picks them over the older but complete _sccm_ packs.

Expected behavior
Only full SCCM driver pack URLs (e.g. those containing _sccm_ or not containing nvidia) should be added to or prioritized within the Lenovo catalog cache.

Suggested Fix
In Public/Functions/Catalogs/Lenovo/Get-LenovoDriverPackCatalog.ps1, add a filter to exclude NVIDIA-only packs when building the catalog:


# Skip NVIDIA-only driver packs
if ($Url -match 'nvidia') { return }

or adjust the logic to prefer _sccm_ URLs over _nvidia_ ones when multiple candidates exist for the same model/OS combination.

Environment

Impact

Deployments for affected Lenovo models end up with GPU-only drivers, missing chipset/network components, and fail hardware validation until manual driver installation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions