LSUClient PowerShell Module

repository·master·Indexed 43 days ago

https://github.com/jantari/lsuclient

A PowerShell module for orchestrating driver, BIOS/UEFI, firmware, and utility software updates for Lenovo business and consumer computers. Supports local and remote fleet management with features for silent, unattended installations and the ability to retrieve packages for specific Lenovo models.

Tokens
858
Snippets
4
Records
6
Agent score
5%

What's inside LSUClient

  1. Perform silent and unattended updates

    master

    When running updates via MDT, SCCM, PDQ, PowerShell Remoting, or SSH, it is strongly recommended to filter for packages that support unattended installation. This prevents installers from launching GUIs or forcing unexpected reboots that could halt an automated process.

    Filter using the Installer.Unattended property of the update object.

    # Install only packages that can be installed silently and non-interactively
    $updates = Get-LSUpdate | Where-Object { $_.Installer.Unattended }
    $updates | Save-LSUpdate -Verbose
    $updates | Install-LSUpdate -Verbose
  2. Download drivers for a specific Lenovo model

    master

    You can use the -Model parameter with Get-LSUpdate to fetch packages for a different computer model. When doing this, you should also use the -All parameter to ensure all packages for that model are retrieved rather than just those applicable to your current machine.

    # Download drivers for another computer model
    Get-LSUpdate -Model 20LS -All | Save-LSUpdate -Path 'C:\20LS_Drivers' -ShowProgress
  3. Find and install available updates

    master

    Use Get-LSUpdate to retrieve updates that are applicable to the system and not yet installed. You can then pipe these results to Install-LSUpdate to perform the installation.

    Note: By default, Get-LSUpdate only returns "needed" updates. To retrieve all available packages regardless of installation status, use the -All parameter.

    # See available updates
    Get-LSUpdate
    
    # Find and install available updates
    $updates = Get-LSUpdate
    $updates | Install-LSUpdate -Verbose
  4. Reference: Get-LSUpdate parameters and properties

    master

    Parameters

    • -All: Retrieves all available packages instead of only "needed" updates (applicable and not yet installed).
    • -Model <string>: Specifies a different Lenovo model to retrieve packages for.

    Filtering Logic

    By default, Get-LSUpdate is equivalent to: Get-LSUpdate -All | Where-Object { $_.IsApplicable -and -not $_.IsInstalled }

    Key Properties

    • IsApplicable: Boolean indicating if the package applies to the system.
    • IsInstalled: Boolean indicating if the package is already installed.
    • Installer.Unattended: Boolean indicating if the installer supports silent/non-interactive execution.
  5. LSUClient system requirements and limitations

    master

    Supported OS

    • Windows 10
    • Windows 11

    Storage and Cleanup

    • The module does not automatically clean up downloaded packages or installers.
    • The default download location is $env:TEMP\LSUPackages. You must manually delete these files to free up space.

    Connectivity

    • By default, the module connects to https://download.lenovo.com.
    • The environment must allow downloading .xml, .exe, and .inf files from that domain.
    • Supports full Web-Proxy support, including authentication.