Skip to content

Releases: jantari/LSUClient

Version 1.2.2

16 Jan 01:14
Compare
Choose a tag to compare

Changelog since 1.2.1

  • fix an issue where if an external command ended with a space and then a single-digit number, the number was unintentionally removed, for example program.exe /mode 8 would have previously been run as just program.exe /mode

Version 1.2.1

28 Dec 20:22
Compare
Choose a tag to compare

Changelog since 1.2.0

  • Fix external files not being downloaded by Get-LSUpdate when just one of the -NoTestApplicable or -NoTestInstalled parameters was specified, now external file downloads are only skipped when both -NoTest* parameters are passed
  • Fix #27 - sometimes inaccurate detection of needed packages when generic or inbox drivers are used by a device
    In my testing this mostly fixes monitor calibration files and some (smart) card reader and webcam drivers that were previously detected as already installed even though they weren't, but it could improve all kinds of packages' detection accuracy
  • Fix #29 - rare error in Get-LSUpdate when a registry key was not found
  • Make version string parsing more robust by ignoring spaces in versions
  • Slight changes and fixes to the progress indicator shown by Save-LSUpdate with the -ShowProgress parameter
  • Fix typo in Get-LSUpdate

Version 1.2.0

20 Nov 17:32
Compare
Choose a tag to compare
⚠️ The parameter -DebugLogFile was removed from Get-LSUpdate in this release!

Changelog since 1.1.3

More accurate detection:

  • Support KeyValue when parsing _RegistryKeyValue tests
  • Support FileVersion when parsing _Driver tests
  • Fail all _Driver tests against devices that have no driver at all [Fix #24]
  • In _FileVersion tests, try comparing against both the FileVersion and ProductVersion attributes
  • The -FailUnsupportedDependencies parameter now only affect dependency, not install tests [Fix #26]
  • Fix inaccurate results or potential error when the same device is connected more than once (e.g. two docking stations)
  • Results are now more accurate when running Get-LSUpdate (again) after installing updates
    Previously, to get accurate results, you would have had to remove and import the module or open a new PowerShell session

Parameters:

  • Parameters -NoTestApplicable and -NoTestInstalled added to Get-LSUpdate [Fix #21]
  • The IsApplicable and IsInstalled properties of the [LenovoPackage] objects Get-LSUpdate returns are nullable now
    These properties could previously only ever be $true or $false, but if you use one of the new -NoTest* parameters with Get-LSUpdate the coresponding properties of the objects returned will now be set to $null
  • Parameter -PassUnsupportedInstallTests added to Get-LSUpdate to change the behavior of unsupported tests for DetectInstall [#26]
  • Parameter -DebugLogFile removed from Get-LSUpdate
    This parameter was added in v1.0.1 but not documented because it was mostly meant to make testing and debugging the detection process of Get-LSUpdate easier for myself. However, it turns out that having to collate information split betweeen what's printed to the console and a separate log file wasn't ideal. So I removed this parameter and print debug information to the Debug stream PowerShell offers instead. In effect that means this parameter has been replaced by the common parameter -Debug and with that also went "official"
  • Make use of Write-Debug and the common parameter -Debug which prints to the console (by default)
  • More Debug output than before and with more context

Other:

  • Update the Get-Help parameter help
  • Verbose output now tells you when it's parsing a packages dependencies and DetectInstall sections
  • With -Verbose output on, you will now be warned about suspected generic/inbox drivers, because they can throw off detection tests and sometimes lead to wrong IsApplicable or IsInstalled results. This issue is being tracked in #27

Version 1.1.3

30 Jul 16:55
Compare
Choose a tag to compare

πŸŽ‰ Anniversary release πŸŽ‰

Exactly 1 year ago the first version of LSUClient was released to the PowerShell Gallery. Thank you to everyone for ~36000 downloads and submitting issues, making this a better tool for all!

Changelog since 1.1.2

  • Fix #19 - On some models the Intel Graphics driver would fail to install. This issue probably also affected some other packages.

Version 1.1.2

09 Jul 17:57
Compare
Choose a tag to compare

Changelog since 1.1.1

  • New EmbeddedController version detection [Fix #14]
  • Different feedback for when a package extraction couldn't even start vs when it did run but might have failed
  • Better handle an expected executable not being found [Fix #18]
  • Actually fix #15 by removing an inadvertently added trailing space from external command arguments
  • Handle and warn when the download of an extra file failed instead of terminating entirely

Version 1.1.1

10 Apr 14:59
Compare
Choose a tag to compare

Changelog since 1.1.0

  • Don't crash on packages that don't require extraction [Fix #16]
  • Trim double directory separator (\\) in executable path [Fix #15]
  • Print the package id in verbose output from Expand-LSUpdate

Version 1.1.0

27 Jan 20:45
Compare
Choose a tag to compare

Changelog since 1.0.3

  • Added detection of installed packages and the IsInstalled property [fix #4]
  • General reliability improvements when running commands/installing packages
  • Added support for _RegistryKeyValue and _FileVersion dependencies
  • Much more accurate _Driver dependency resolution
  • More accurate _OS and _FileExists dependency resolution
  • When a package install fails, the stdout (if any) of the installer will be returned now in addition to the exit code
  • >90% of cases where Lenovo uses & in a command should now be escaped properly [better fix for #2]
  • Support for installing packages from paths with spaces in them (still not recommended)
  • Add linting workflow to the repository to ensure consistent code quality
  • Split up >1000 line .psm1 file into many individual files for readability
  • Tweaked the default Table and List output views

Version 1.0.3

21 Oct 19:38
Compare
Choose a tag to compare

Changelog since 1.0.2

  • Catch individual packages with malformed XML to only warn and skip them instead of erroring out entirely
  • Now detects whether ThinkCentre BIOS updates support the /sccm argument to prevent an endless hang on older ThinkCentre models [fix #9]
  • Added experimental PSScriptAnalyzer CI to the repository
  • Download package XML-file during dependency resolution (needed by packages like r0qch05w)
  • New dependency parser that adds support for _EmbeddedControllerVersion, _FileExists, _RegistryKey, _OSLang and _Driver dependency types. This also lays the groundwork to later detect whether packages are already installed.
  • Now gives feedback when package extraction may have failed
  • Compatibility with PowerShell 7
  • Use HardwareID instead of DeviceID for _PnPID detection
  • Use ShellExecute API for package installations because Conexant Audio Setup hangs indefinitely when using CreateProcess
  • Many smaller changes to verbose or warning outputs, some new output added some made clearer

Version 1.0.2

19 Aug 14:13
Compare
Choose a tag to compare

Changelog since 1.0.1

  • No more console windows pop up when getting, extracting or installing updates [fix #5]
  • Webproxy parameters now support credentials/authentication
  • ThinkCentre BIOS/UEFI updates can now be installed silently (previously only ThinkPad)
  • Detect and suspend BitLocker protection of the OS drive prior to BIOS/UEFI updates
  • Added -SaveBIOSUpdateInfoToRegistry switch to Install-LSUpdate
  • General code rewrite/cleanup of BIOS/UEFI update handling logic
  • Packages with RebootType 0 will now be classified as "Unattended" ($_.Installer.Unattended will be True)
  • All module files now encoded in UTF8+BOM
  • Clean up files downloaded as part of dependency checks [fix #6]

Version 1.0.1

19 Aug 14:12
Compare
Choose a tag to compare

Changelog since 1.0

  • Removed HelpInfoUri key from module manifest [fix #1]
  • Make sure & in cmd commands are being escaped [fix #2]
  • Get XML-node name from SchemaInfo property so it can't be overwritten by a "name" xml-attribute [fix #3]