diff --git a/utilmatepowerplan-fix.ps1 b/utilmatepowerplan-fix.ps1 new file mode 100644 index 00000000..3e8cc543 --- /dev/null +++ b/utilmatepowerplan-fix.ps1 @@ -0,0 +1,60 @@ +# PowerShell script to fix the power plan applied across all languages based on the GUID of the new power plan. +# This is necessary because when Windows is in a different language, the power plan might not be applied correctly. +# This script changes the name and description of the power plan. +#Video : https://youtu.be/00aUECZNvbA + +# ID of the plan to duplicate +$sourceGUID = "e9a42b02-d5df-448d-aa00-03f14749eb61" +$guid = $null +$nameFromFile = "ChrisTitus - Ultimate Power Plan" +$description = "Ultimate Power Plan , added via WinUtils" + +$scriptPath = $MyInvocation.MyCommand.Path +$directoryPath = Split-Path -Path $scriptPath -Parent + +$guidFilePath = Join-Path -Path $directoryPath -ChildPath "guid.txt" + +$duplicateOutput = powercfg /duplicatescheme $sourceGUID + +try { + $duplicateOutput | Out-File -FilePath $guidFilePath -Append -Encoding utf8 -Force + + Write-Output "The output of 'powercfg /duplicatescheme' has been added to $guidFilePath." +} catch { + Write-Error "Error writing to the file: $_" +} +$content = Get-Content -Path $guidFilePath -Encoding utf8 + +# Extract the GUID from the content +foreach ($line in $content) { + if ($line -match "GUID du mode de gestion de l'alimentation\s*:\s*([a-fA-F0-9\-]+)") { + $guid = $matches[1] + # Write the GUID to guid.txt (overwrite existing content) + $guid | Out-File -FilePath $guidFilePath -Encoding utf8 -Force + + Write-Output "GUID: $guid has been saved to $guidFilePath" + } +} + +if (-not $guid) { + Write-Output "No GUID found in $guidFilePath. Check the content format." +} + +# Execute commands to change the plan name and set the plan as active +try { + if ($guid) { + # Change the name of the power plan and set its description + $changeNameOutput = powercfg /changename $guid "$nameFromFile" "$description" + Write-Output "The power plan name and description have been changed. Output:" + Write-Output $changeNameOutput + + # Set the power plan as active + $setActiveOutput = powercfg /setactive $guid + Write-Output "The power plan has been set as active. Output:" + Write-Output $setActiveOutput + } else { + Write-Output "GUID is missing. Ensure that guid.txt contains the necessary information." + } +} catch { + Write-Error "Error executing powercfg commands: $_" +}