Disable Fast Startup on Windows 10

This is a small script that makes changes to the registry that will disable the fast startup feature on Windows 10. This feature can cause potential issues as when a user shuts down their computer with this enabled the computer will go into a sleep/hibernation state instead of powering off as expected.

Additionally this script takes advantage of my logging module.

<#
.SYNOPSIS
    Changes registry value to disable Windows 10 fast startup
.DESCRIPTION
    Developer:  Mike Polselli
    PSVersion:  5.0
    Date:       8-10-2018
    Language:   PowerShell
    Purpose:    Windows 10 Fast Startup prevents the computer from fully shutting down when a shutdown is initiated.
.PARAMETER Help
    Displays helpful information about the script.
.EXAMPLE
    .\DisableWin10FastStartup.ps1 -Help
#>
### Parameters ###
param (
    [switch]$Help
)
if ($Help) {
    Get-Help $MyInvocation.MyCommand.Definition -Full | more
    exit 0
}
### Parameters ###

### Variables ###
$ScriptName = 'DisableWin10FastStartup'
$RegKeyPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
$RegPropertyName = 'HiberbootEnabled'
$RegKeyValue = 0
Clear-Variable GetValue -ErrorAction SilentlyContinue
### Variables ###

### Functions ###
function CheckRegKey {
    try {
        $Script:GetValue = Get-ItemPropertyValue -Path $RegKeyPath -Name $RegPropertyName -ErrorAction Stop
    }
    catch {
        Write-Log "Error finding Registry Key Property - $RegKeyPath and $RegPropertyName"
        Stop-Log -ScriptName $ScriptName
        exit 1
    }
}
function CheckHiberboot {
    if ($GetValue -eq 0) {
        Write-Log "$RegPropertyName is already set to $RegKeyValue. Exiting script."
        Stop-Log -ScriptName $ScriptName
        exit 0
    }
    else {
        Write-Log "Updating $RegPropertyName to $RegKeyValue."
        Set-ItemProperty -Path $RegKeyPath -Name $RegPropertyName -Value $RegKeyValue
    }
}
### Functions ###

### Script ###
<# Used for logging, always the first function to run.#>Start-Log -ScriptName $ScriptName
CheckRegKey
CheckHiberboot
<# Used for logging, always the last function to run.#>Stop-Log -ScriptName $ScriptName
### Script ###