Last active
March 11, 2025 01:10
-
-
Save michael-baker/f3962ba8d21ebd680b8e76c20eaa48c1 to your computer and use it in GitHub Desktop.
Apply an Intel XTU profile from PowerShell
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.