Coder Social home page Coder Social logo

Comments (16)

xyzSaft avatar xyzSaft commented on June 12, 2024 1

Hi, I have the same problem on X13 Gen 3. It looks like Lenovo is going to use another .exe file in the future but is not available in the BIOS packages I have checked so far. It would be nice if the Invoke-LenovoBIOSUpdate.ps1 could be updated to work with the new "WinPEuptp.exe" file (when Lenovo releases it).

https://forums.lenovo.com/t5/Enterprise-Client-Management/Missing-WINUPTP64-exe-from-L14-T14-Gen-3-BIOS/m-p/5171737?page=1#5768692

from modernbiosmanagement.

Muri-dk avatar Muri-dk commented on June 12, 2024 1

We are encountering the same "issue" on Lenovo X1 Carbon Gen 10, is there any timeline for this issue to be addressed ?

From Lenovo forum: https://forums.lenovo.com/t5/Enterprise-Client-Management/Missing-WINUPTP64-exe-from-L14-T14-Gen-3-BIOS/m-p/5171737?page=1#5779523
"The latest version of the WINUPTP tool was given a modern user interface using WPF which unfortunately is not supported in WinPE. A new release of that tool has been made which will include a new file: WinPEuptp.exe. This file will work in a WinPE 64-bit environment. Normally the next release of a model's BIOS update will pick up the new tool and include the new file. We will look into when that will be for L14 and T14 and expedite if necessary."

Get latest bios from download site, your model is supported now.
Change your TS like below.
billede

Make copy of lenovo bios script and rename like this.
billede

Change for new lenovo bios script to use WinPEUPTP.exe
billede

Make wmi queries in TS to use the old lenovo bios script and new lenovo bios script to update bios for the correct lenovo model.

from modernbiosmanagement.

Muri-dk avatar Muri-dk commented on June 12, 2024

I also ran into that link, bad from Lenovo they should inform in Readme file for bios file, that winuptp.exe wont work in Winpe. I have spend a few day to figure out the problem.

from modernbiosmanagement.

Nitr0Guy avatar Nitr0Guy commented on June 12, 2024

We are encountering the same "issue" on Lenovo X1 Carbon Gen 10, is there any timeline for this issue to be addressed ?

from modernbiosmanagement.

Nitr0Guy avatar Nitr0Guy commented on June 12, 2024

Thank you so much ! @Muri-dk

from modernbiosmanagement.

keniem avatar keniem commented on June 12, 2024

This issue can be easily resolved by making the modification to line 129 in the code as specified. No additional changes are required.

$WinUPTPUtility = Get-ChildItem -Path $Path -Filter "*.exe" -Recurse | Where-Object { $_.Name -like "WinUPTP64.exe" -or $_.Name -like "WINPEUPTP.EXE" } | Select-Object -First 1 -ExpandProperty FullName

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

Big thanks to Keniem for getting me on the right track, only issue with that simple solution is that it does not work in the live OS. So if you also use it to update already running machines it will fail.

Another issue is that the WinPE file is missing from most BIOS packages I've tried .. and have had a case with Lenovo support for a while now. Finally got the file today... but this issue is soooo F*****ing dumb, why even change the BIOS packages and why add the new winPE file sometimes .. other times just forget it... DUUUUMB!!

Anyhow, I've added a permanent fix to the script with a new switch -PXE that needs to be added to the TS for it to run in winPE mode and I've also added some more code so it will prefer the WinUPTP64(if it's there) when running in the live OS.

As you can see on the below image, you just add the -PXE switch to your windows installtion TS and just don't add it to the update TS if you use it.
image

So how to use the new modifications is rather easy.

  1. Replace old script(remove the _v2 from the file..)
  2. The WINPEUPTP.exe file just needs to be pasted into one of the new BIOS packages mysteriously missing it...(Thanks Lenovo...)
  3. Change your TS that installs windows so it has the -PXE switch in it.
  4. Done

If you use it and find any bugs, do let me know! I've moved this to production in my setup, as did not find anything out of order.
I've uploaded the changed script and the WINPEUPTP file as a zip so everyone can still run in winPE, I take no credit for the script... but who knows when there will be an official fix.
Invoke-LenovoBIOSUpdate_V2.zip

from modernbiosmanagement.

bao86 avatar bao86 commented on June 12, 2024

Big thanks to Keniem for getting me on the right track, only issue with that simple solution is that it does not work in the live OS. So if you also use it to update already running machines it will fail.

Another issue is that the WinPE file is missing from most BIOS packages I've tried .. and have had a case with Lenovo support for a while now. Finally got the file today... but this issue is soooo F*****ing dumb, why even change the BIOS packages and why add the new winPE file sometimes .. other times just forget it... DUUUUMB!!

Anyhow, I've added a permanent fix to the script with a new switch -PXE that needs to be added to the TS for it to run in winPE mode and I've also added some more code so it will prefer the WinUPTP64(if it's there) when running in the live OS.

As you can see on the below image, you just add the -PXE switch to your windows installtion TS and just don't add it to the update TS if you use it. image

So how to use the new modifications is rather easy.

1. Replace old script(remove the _v2 from the file..)

2. The WINPEUPTP.exe file just needs to be pasted into one of the new BIOS packages mysteriously missing it...(Thanks Lenovo...)

3. Change your TS that installs windows so it has the -PXE switch in it.

4. Done

If you use it and find any bugs, do let me know! I've moved this to production in my setup, as did not find anything out of order. I've uploaded the changed script and the WINPEUPTP file as a zip so everyone can still run in winPE, I take no credit for the script... but who knows when there will be an official fix. Invoke-LenovoBIOSUpdate_V2.zip

Hello,
Thanks for sharing 👍
I got error when using your fix (WinPEUPTP error code -1) when i'm trying to update bios on T14 Gen 3 (Intel Processor).
I launch the update step after The partition Step.
Any idea ?

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

Can you send a screen of the Invoke-lenovoBIOSupdate step? I think you're either missing the parameter or might be a typo.

Also I usually run mine after the Drivers(after windows has been applied) but before the config manager installs and restarts. So still WinPE

from modernbiosmanagement.

bao86 avatar bao86 commented on June 12, 2024

image
image

This is the parameters : -PXE -Path '%ASPackageLocation01%'

Should I put the Update BIOS step elsewhere like this ?

image

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

Have you changed the previous script to spit out %ASPackageLocation01% as a value? Also I think your issue might be the " '' " around your variable.

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

As a side note, I have mine after the Drivers yes. No reason not to. It needs to reboot soon after anyhow. So less reboots overall.

from modernbiosmanagement.

bao86 avatar bao86 commented on June 12, 2024

image
Don't know why i'm getting exitcode -1 from winPEuptp process.
The BIOS Update step was run Before "Installation of Drivers" Step and After "Applying Windows Image"

The value of %ASPackageLocation01% seems correct.
image

I will try with that this afternoon :
"BIOS Update" step run after "Drivers" Step

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

Oh I tought you were getting the -1 error code from powershell in the TS. If it's from the actual BIOS log it's usually means the BIOS is already up to date.

But it looks like the script is working. There's a lot of custom stuff going on in your TS not standard to the MSendpoint documentation.. so I don't really know about the variables and the custom download script you got going :(
Normally you would have Invoke-CMDownloadBIOSPackage.ps1 checking through the SCCM for BIOS packages and then returning 1 package, then adding the path to the %OSDBIOSPackage01% variable.

As you're running something 100% custom I can't really say what might go wrong, but I would check if the BIOS even needs updating on the machine you're trying to test on :)

from modernbiosmanagement.

bao86 avatar bao86 commented on June 12, 2024

You were right .... The machine has already the lastest bios version :/ Dummy LENOVO, there is multiple BIOS Type for 1 modele ...
image

from modernbiosmanagement.

JustFixItNow avatar JustFixItNow commented on June 12, 2024

Just a quick update, found some wierd inconsitancy with older gen 2 BIOS upgrades in PXE... not sure why, but it seems to get stuck. So I made an update.. not pretty put it works. It now looks for WinUPTP64.exe before explicitly choosing witch BIOS format to use, the new or the old.

This has fixed the getting stuck issue for me :) let me know if anyone finds any other issues.. as it seems we won't be getting any official fixes...
Invoke-LenovoBIOSUpdate_V3.zip

from modernbiosmanagement.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.