Skip to content

Instantly share code, notes, and snippets.

@michael-baker
Last active September 28, 2024 11:20
Show Gist options
  • Save michael-baker/f3962ba8d21ebd680b8e76c20eaa48c1 to your computer and use it in GitHub Desktop.
Save michael-baker/f3962ba8d21ebd680b8e76c20eaa48c1 to your computer and use it in GitHub Desktop.
Apply an Intel XTU profile from PowerShell
# Must be run under 32-bit PowerShell as ProfilesApi is x86
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Intel\Intel(R) Extreme Tuning Utility\Client\ProfilesApi.dll") | Out-Null
# This script programmatically applies an Intel XTU profile.
# This script can replace the CLI method outlined here: https://www.reddit.com/r/Surface/comments/3vslko/change_cpu_voltage_offset_with_intel_xtu_on/
[ProfilesApi.XtuProfileReturnCode]$applyProfileResult = 0
$profileApi = [ProfilesApi.XtuProfiles]::new()
$profileApi.Initialize() | Out-Null
[ProfilesApi.XtuProfileReturnCode]$result = 0
$profiles = $profileApi.GetProfiles([ref] $result)
$profile = $profiles | Where-Object { $_.ProfileName -eq "Undervolt" } | Select-Object -First 1
if ($profile) {
$applied = $profileApi.ApplyProfile($profile.ProfileID, [ref]$applyProfileResult)
if ($applied) {
Write-Host "$applyProfileResult. Profile applied"
} else {
Write-Host "$applyProfileResult. Profile not applied."
}
}
sleep 10
@danlu01
Copy link

danlu01 commented Sep 25, 2018

I tried it but got:

Success. Profile not applied.

@SilverGhostBS
Copy link

Hi, same here, got:

Success. Profile not applied.

I can apply profile successfully from the GUI...

@jayagami
Copy link

jayagami commented Jan 5, 2019

good job,

Hi, same here, got:

Success. Profile not applied.

I can apply profile successfully from the GUI...

Same too, not working

@krrr
Copy link

krrr commented Aug 11, 2019

it works with xtu 6.4.1.25, not 6.5.xxx

@rtibby
Copy link

rtibby commented May 15, 2021

XTU version 7.4.0.26: runnig this is very temperamental

Sometimes it's working and sometimes it's not .
Also, sometimes it's working only with powershell_ise .
Sometimes it's working to apply the "default" profile , but not others ..

I have no clue how to make it to work all the time...

@michael-baker
Copy link
Author

michael-baker commented May 17, 2021

Perhaps Intel have changed some internal stuff? Maybe moved the platform to 64-bit?
Does it make any difference if you stop the XTU service, apply the profile and then start the service?
I don't use the app anymore so I don't have any insights to offer I'm afraid.

@n3pjk
Copy link

n3pjk commented Sep 15, 2021

I'm running XTU 7.5.2.3. It is installed as an app, rather than a program. It's target is {6D809377-6AF0-444B-8957-A3773F02200E}\Intel\Intel(R) Extreme Tuning Utility\Client\XtuUiLauncher.exe Any idea how to programmatically run this? The typical methods for running an app from the MS Store don't seem to apply here, or aren't apparent.

@RGD2
Copy link

RGD2 commented Apr 4, 2022

XTU 6.5.1.371 : I get 'Sucess Profile applied', but it doesn't actually work.

Still have to go into XTU an manually tweak settings each boot to get it to do what I want.

@sp00n
Copy link

sp00n commented Aug 28, 2024

How did you find out which methods to call for the DLL?
If there's a way to find out, I wonder if it'd be possible to also load the IntelOverclockingSDK.dll and apply overclocks, undervolts, etc using the command line this way, now that XtuCli.exe is gone.

@michael-baker
Copy link
Author

The libraries are .NET (managed) assemblies so you can decompile them with ILSpy to see how it works. At least XTU was managed when last used this on 6.5.x.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment