SetPowerConfig.psm1

<#
    ===========================================================================
     Created by: Rhys M
     Contact: RhysM.PS@gmail.com
     PS Gallery: https://www.powershellgallery.com/profiles/RhysM/
 
     Filename: SetPowerConfig.psm1
    -------------------------------------------------------------------------
     Module Name: SetPowerConfig
    ===========================================================================
#>


<#
    .EXTERNALHELP SetPowerConfig.psm1-Help.xml
#>

Function SetPowerConfig {
    Param (
        [Parameter(Position = 0, Mandatory = $True, HelpMessage = "Power Option To Set")]
        [ValidateSet("Balanced", "High performance", "Power saver", "Ultimate Performance")]
        [String]$PowerOption
        )

    Try {
            $SetPowerConf = powercfg -l | %{if($_.contains("$PowerOption")) {$_.split()[3]}}
            $CurrentPlan = $(powercfg -getactivescheme).split()[3]
            Write-Output "Power Option Set: $PowerOption"
            if ($CurrentPlan -ne $PowerOption) {powercfg -setactive $SetPowerConf}
        } 
        Catch {
            Write-Warning -Message "Unable to set power plan to $PowerOption"
        }
}


Export-ModuleMember -Function SetPowerConfig