Releases: jantari/LSUClient
Version 1.4.1
Changelog since 1.4.0
- Fix some ThinkPad BIOS update packages (e.g.
E14 Gen 2
) being reported as failed even though they succeeded - Handle ranges (A to B, e.g.
18362^18363
) in version pattern comparisons
Version 1.4.0
Changelog since 1.3.4
-
Packages with reboot type 5 will now be correctly classified as unattended (thanks @dkattan)
-
The
Install-LSUpdate
cmdlet now returns richPackageInstallResult
objects with the following properties:[string] $ID [string] $Title [Nullable[PackageType]] $Type [bool] $Success [string] $FailureReason [PackagePendingAction] $PendingAction [Nullable[Int64]] $ExitCode [string[]] $StandardOutput [string[]] $StandardError [string[]] $LogOutput [TimeSpan] $Runtime
where
PendingAction
is an enum ofNONE
,REBOOT_SUGGESTED
,REBOOT_MANDATORY
orSHUTDOWN
.βΉοΈ The PendingAction
property is now the recommended way to determine whether a power cycle should be performed (over the-SaveBIOSUpdateInfoToRegistry
parameter ofInstall-LSUpdate
), because thePendingAction
property is set for ALL installs, not just BIOS updates, and there are other updates as well for which "it simply isn't safe to postpone the reboot".That said,
-SaveBIOSUpdateInfoToRegistry
will continue to work the same as before. To aid the transition, the following table compares the values to expect in different scenarios - the exact code deciding the value of PendingAction can be referenced here as well:Scenario PendingAction "ActionNeeded" registry value with -SaveBIOSUpdateInfoToRegistry
ThinkPad BIOS update REBOOT_MANDATORY REBOOT ThinkCentre BIOS update SHUTDOWN SHUTDOWN Any Reboot Type 5 update REBOOT_MANDATORY - Any Reboot Type 3 update REBOOT_SUGGESTED - Any Reboot Type 0 update NONE - Any unsuccessful update NONE - -
Fix some packages with MSI installers failing to install with "The command or file ... could not be found" error
-
Fix a syntax mistake that caused all _OS tests to always succeed leading to inaccurate Win10/Win11 distinction [#48]
Version 1.3.4
Changelog since 1.3.3
- Handle multiple Version elements in
_WindowsBuildVersion
tests [#42] - Ignore phantom/disconnected devices by default when evaluating relevant updates [#43]
If you want to continue to include updates for non-present devices, use the new-IncludePhantomDevices
parameter ofGet-LSUpdate
- Differentiate Windows 11 from 10 for package lookup and
_OS
tests. This means computers running Windows 11 will now fetch their correct, Windows 11 specific list of packages
Version 1.3.3
Changelog since 1.3.2
- Properly support systems with a 5-character model number [Fix #38]
- Allow passing full-length model numbers such as
20K70000GE
(instead of just20K7
) toGet-LSUpdate -Model
- URL-encode file names before attempting to download them from HTTP(S) repositories [Fix #39]
- Adjust logic for _Driver tests when processing SeverityOverride - packages Severities should now be identical to System Update
If you find a package that LSUClient shows with a different severity from System Update please open an issue about it
Version 1.3.2
Changelog since 1.3.1
- Added
Type
property to package objects. Package type may be one of "Application", "Driver", "Bios" or "Firmware". Some packages do not have type information, in that case it will be$null
- Process the SeverityOverride of packages if present for more accurate severity classification. It's still not the same as System Update, but it's a work in progress to get there
- Add
-NoTestSeverityOverride
parameter toGet-LSUpdate
to allow skipping the new SeverityOverride tests - Allow 5-character long values for
Get-LSUpdate -Model
parameter [#38] - Fix
_FileExists
tests always failing and update_Driver
test - both should lead to more accurate IsApplicable and IsInstalled results
Version 1.3.1
Changelog since 1.3.0
- Fix #34 - powershell window hiding (seemingly closing) during
Get-LSUpdate
run on some computer models
Version 1.3.0
π Another anniversary release π
Changelog since 1.2.5
- Support for custom, internal and offline package repositories [#17]
The new-Repository
parameter ofGet-LSUpdate
defaults to the official Lenovo package source like before, but it can also be set to a custom HTTP(S) URL or filesystem path that serves the expected files! Repositories created with the "Update Retriever" program are directly supported, as are filesystem directories with read-only access.
β οΈ Repositories created by Update Retriever use a different metadata format than the official one and they do not preserveCategory
information - therefore all packages retrieved from such a package source will have blank categories! - The
URL
property of package objects is now of type[String]
rather than[Uri]
(to avoid it being cast to afile:///
URL for packages retrieved from a filesystem path) - No longer are all BIOS/UEFI updates automatically classified
Unattended
and then just get skipped when they actually aren't,
instead only the kinds of BIOS updates that LSUClient can actually install silently will be marked as unattended and all others will now have theUnattended
value set to$false
Install-LSUpdate
now takes proxy parameters as well so runningSave-LSUpdate
first is no longer necessary if you require them- Supporting custom repositores required a bit of internal rework and with that come new verbose/debug/warning and error messages
Version 1.2.5
Changelog since 1.2.4
- Fix a problem causing updates that were already installed to show up again as needed/not installed yet for users in timezones with a negative offset to UTC (#33)
- Big performance improvement for
Get-LSUpdate
- on most devices it should complete at least twice as fast as before - Better errorhandling when a packages installer is an invalid executable or 0-byte file (e.g. corrupted download) (#32)
- The ReleaseDate of packages is now shown when they're formatted in list view (with
Format-List
)
Version 1.2.4
Changelog since 1.2.3
- Support for new
_WindowsBuildVersion
tests [Fix #31] - Internal version number comparison now supports version numbers with any amount of "number-blocks", previously I relied on the
[System.Version]
type which only supports 2, 3 or 4 numbers
Version 1.2.3
Changelog since 1.2.2
- Installers and all other executables are no longer run through
cmd.exe /D /C [...]
but instead started directly (fix #25) - The temporary scratch directory
Get-LSUpdate
uses during the package search is now configurable (fix #30)
Previously this was hardcoded to$env:TEMP
, now you can use the optional-ScratchDirectory
parameter to pass a custom path. - The package objects returned by
Get-LSUpdate
now haveReleaseDate
andSize
information Save-LSUpdate
now downloads all files belonging to a package, not just its installer/main setup
This is mostly in preparation to support offline/internal repositories at a later time (#17)- Fix
Install-LSUpdate
stopping with an error in a rare condition: the -Debug parameter set, PowerShell started in Non-Interactive mode and a ThinkCentre BIOS update about to be installed - Slight changes to the warnings printed when a package install fails to make them more informative