{"id":13599327,"url":"https://github.com/jantari/LSUClient","last_synced_at":"2025-04-10T12:32:10.393Z","repository":{"id":38137050,"uuid":"199716391","full_name":"jantari/LSUClient","owner":"jantari","description":"Orchestrate driver, BIOS/UEFI and firmware updates for Lenovo computers 👨‍💻","archived":false,"fork":false,"pushed_at":"2025-03-02T23:35:13.000Z","size":516,"stargazers_count":219,"open_issues_count":5,"forks_count":22,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-03T00:53:45.745Z","etag":null,"topics":["bios","drivers","firmware","powershell","uefi","update"],"latest_commit_sha":null,"homepage":"https://jantari.github.io/LSUClient-docs/","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jantari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-30T19:41:24.000Z","updated_at":"2025-02-28T09:38:42.000Z","dependencies_parsed_at":"2025-03-03T01:02:06.948Z","dependency_job_id":null,"html_url":"https://github.com/jantari/LSUClient","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantari%2FLSUClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantari%2FLSUClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantari%2FLSUClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jantari%2FLSUClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jantari","download_url":"https://codeload.github.com/jantari/LSUClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217141,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bios","drivers","firmware","powershell","uefi","update"],"created_at":"2024-08-01T17:01:02.322Z","updated_at":"2025-04-10T12:32:07.837Z","avatar_url":"https://github.com/jantari.png","language":"PowerShell","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eLSUClient\u003c/h1\u003e\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/powershellgallery/dt/LSUClient?label=PowerShell%20Gallery\u0026amp;logo=Powershell\u0026amp;logoColor=FFFFFF\u0026amp;style=flat\" alt=\"PowerShell Gallery\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/powershellgallery/v/lsuclient?label=Latest\u0026amp;logo=powershell\u0026amp;logoColor=FFF\" alt=\"PowerShell Gallery Version\"\u003e\r\n  \u003cimg src=\"https://img.shields.io/github/v/release/jantari/lsuclient?label=Latest\u0026amp;logo=github\" alt=\"GitHub release (latest by date)\"\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"logo_220px.png\" alt=\"LSUClient PowerShell Module PNG Logo\" /\u003e\r\n\u003c/p\u003e\r\n\u003cp align=\"center\"\u003e\r\n  Orchestrate driver, BIOS/UEFI and firmware updates for Lenovo computers - with PowerShell!\r\n\u003c/p\u003e\r\n\r\n## Installation\r\n\r\n```powershell\r\nInstall-Module -Name 'LSUClient'\r\n```\r\n\r\n## Highlight features\r\n\r\n- Does driver, BIOS/UEFI, firmware and utility software updates\r\n- Allows for fully silent and unattended update runs\r\n- Work with updates and even their results as PowerShell objects to build any custom logic imaginable\r\n- Fetch the latest updates directly from Lenovo or use an internal repository of your own for more control\r\n- Can work alongside, but does not require Lenovo System Update or any other external program\r\n- Run locally or manage/report on an entire fleet of computers remotely\r\n- Full Web-Proxy support including authentication\r\n- Supports not only business computers but consumer lines too (e.g. IdeaPad)\r\n- Free and open-source!\r\n\r\n## Examples and tips\r\n\r\n\u003cb\u003eSee available updates:\u003c/b\u003e\r\n```powershell\r\nGet-LSUpdate\r\n```\r\n\r\n\u003cb\u003eFind and install available updates:\u003c/b\u003e\r\n```powershell\r\n$updates = Get-LSUpdate\r\n$updates | Install-LSUpdate -Verbose\r\n```\r\n\r\n\u003cb\u003eInstall only packages that can be installed silently and non-interactively:\u003c/b\u003e\r\n```powershell\r\n$updates = Get-LSUpdate | Where-Object { $_.Installer.Unattended }\r\n$updates | Save-LSUpdate -Verbose\r\n$updates | Install-LSUpdate -Verbose\r\n```\r\n\r\nFiltering out non-unattended packages like this is strongly recommended when using this module in MDT, SCCM, PDQ,\r\nremote execution via PowerShell Remoting, ssh or any other situation in which you run these commands remotely\r\nor as part of an automated process. Packages with installers that are not unattended may force reboots or\r\nattempt to start a GUI setup on the machine and, if successful, halt until someone clicks through the dialogs.\r\n\r\n\u003cb\u003eTo get all available packages:\u003c/b\u003e\r\n```powershell\r\n$updates = Get-LSUpdate -All\r\n```\r\nBy default, `Get-LSUpdate` only returns \"needed\" updates. Needed updates are those that are applicable to\r\nthe system and not yet installed. If you want to retrieve all available packages instead, use `Get-LSUpdate -All`.\r\nTo filter out unneeded packages later, just look at the `IsApplicable` and `IsInstalled` properties.\r\nThe default logic is equivalent to:\r\n`Get-LSUpdate -All | Where-Object { $_.IsApplicable -and -not $_.IsInstalled }`\r\n\r\n\u003cb\u003eDownload drivers for another computer:\u003c/b\u003e\r\n```powershell\r\nGet-LSUpdate -Model 20LS -All | Save-LSUpdate -Path 'C:\\20LS_Drivers' -ShowProgress\r\n```\r\nUsing the `-Model` parameter of `Get-LSUpdate` you can retrieve packages for another computer model.\r\nIn this case you almost always want to use `-All` too so that the packages found are not filtered against your computer and all packages are downloaded.\r\n\r\n---\r\n\r\nFor further documentation please see [the documentation site](https://jantari.github.io/LSUClient-docs/) and\r\nrun `Get-Help -Detailed` on the functions in this module.\r\n\r\n## Misc\r\n\r\n- Only Windows 10 and Windows 11 are supported\r\n- This module does not clean up downloaded packages and installers at any point. The default download location is `$env:TEMP\\LSUPackages` - you may delete it yourself\r\n- By default this module reaches out to https://download.lenovo.com and must be able to download `.xml`, `.exe` and `.inf` files from that domain for successful operation. Alternatively, a custom package repository can be used for completely internal or offline operation with the `-Repository` parameter of `Get-LSUpdate`. A custom repository can be served over HTTP(S) or just be a filesystem path - local or UNC.\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjantari%2FLSUClient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjantari%2FLSUClient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjantari%2FLSUClient/lists"}