Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug in Driver Bundle installer #45

Open
1 task done
CatGamer23 opened this issue Feb 19, 2025 · 6 comments
Open
1 task done

Bug in Driver Bundle installer #45

CatGamer23 opened this issue Feb 19, 2025 · 6 comments
Assignees
Labels
Laptop 13 - Intel Ultra Series 1 Framework Laptop 13 (Intel® Core™ Ultra Series 1)

Comments

@CatGamer23
Copy link

CatGamer23 commented Feb 19, 2025

Device Information

System Model or SKU

Please select one of the following

  • Framework Laptop 13 (Intel® Core™ Ultra Series 1)

BIOS VERSION

v3.04

Windows:
Open a command terminal as administrator:
wmic bios get SMBIOSBIOSVERSION <- Welp, this is another example right here in the default template.

Describe the bug

In Windows 11, WMIC is deprecated & disabled by default, and will be removed in a future update/version. The BIOS installer uses WMIC for step 18, which will always fail:

echo (18 of 18) Enable WiFi SAR BIOS setting for optimal performance
wmic /namespace:\\root\wmi path WmiWiFiModeNotify where active=true call NotifyWiFiModeStatus 1,1 >>"%TEMP%\frameworkinstall.txt" 2>&1

I have yet to check any other bundle, but I assume it's a similar story with the WMIC line.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Go to Framework's Driver bundle download
  2. Click on the download for the Core Ultra Series 1
  3. Read installer script after extracting the .exe

Expected behavior

Not using WMIC, and preferably re-writing it in PowerShell

Operating System (please complete the following information):

  • OS/Distribution: Windows 11
  • Version: 24H2

Additional context

Currently, you can just install WMIC from the “Optional Features” page in Settings, but that option may be removed in the future.

Also, as a general PSA: as who knows how much longer Microsoft is willing to support older stuff now that their new trend is the modernize, it would be better to write the installer script in PowerShell, which also has the WMIC replacement. I would be willing to write the script, as I’m rather familiar with PowerShell 5.1 (The one that comes installed by default in Windows).

P.S.: I posted this originally on the Community Forum, but a kind person was able to point me to the right place to report the bug here.

@JohnAZoidberg
Copy link
Member

it would be better to write the installer script in PowerShell, which also has the WMIC replacement.

I agree, but running PowerShell scripts is also not possible without first having to make the user enable running scripts.

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.5

Do you know a workaround?

@JohnAZoidberg
Copy link
Member

But we actually have fixed the issue on newer versions, by keep the script in batch but running some individual commands like powershell -command "foo"

Let me check if the latest version was correctly uploaded.

@CatGamer23
Copy link
Author

CatGamer23 commented Feb 20, 2025

There's 5:

  1. When the .exe calls the .ps1 file, use the -ep bypass (This can also be used in conjunction with # 4, and set it to RmeoteSigned)
  2. Precompile it into a .exe using something like ps2exe
  3. Use a batch script to call the powershell script, which can get around the scripts
  4. Digitally sign the script, which will allow it past permissions (This I think is the most proper way, but can be a pain to get right)
  5. As you said, have the command passed as argument

@CatGamer23
Copy link
Author

CatGamer23 commented Feb 20, 2025

Those are the 5 I can think of right now, there's a few more though. I cant recall them all as of right now.

@JohnAZoidberg JohnAZoidberg added the Laptop 13 - Intel Ultra Series 1 Framework Laptop 13 (Intel® Core™ Ultra Series 1) label Feb 20, 2025
@JohnAZoidberg
Copy link
Member

Let me check if the latest version was correctly uploaded.

It's not, sorry. We'll fix the upload.

Digitally sign the script, which will allow it past permissions (This I think is the most proper way, but can be a pain to get right)

I agree. But seems the default policy also does not allow this: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_signing?view=powershell-7.5

@CatGamer23
Copy link
Author

CatGamer23 commented Feb 20, 2025

I meant that one in conjunction with # 1, using the -ep RemoteSigned parameter on call. Also the links you linked to is for PowerShell 7.5, which is rather annoying MS does that by default, but Windows ships with 5.1 by default. It's mostly interchangeable, but still can be misleading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Laptop 13 - Intel Ultra Series 1 Framework Laptop 13 (Intel® Core™ Ultra Series 1)
Projects
None yet
Development

No branches or pull requests

3 participants