PowerShell/Microsoft/Disable_Fast_Startup.ps1

56 lines
1.3 KiB
PowerShell

# Script by Timur@0x01337.com
# Date: 2023-11-24
<#
.DESCRIPTION
Disables the Fast Startup feature.
Requires administrator privileges.
.PARAMETER help
Displays a detailed usage description of this script.
.EXAMPLE
PS> .\Disable-Fast-Startup.ps1
.EXAMPLE
PS> .\Disable-Fast-Startup.ps1 -help
#>
# Getting command line parameters
param (
[parameter(Mandatory = $false)][switch]$help
)
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
$isAdmin = $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (!$isAdmin) {
Write-Error "This script requires administrator privileges"
exit 1
}
# Writing help message
if ($help) {
get-help $MyInvocation.MyCommand.Path -Full
exit 0
}
$command = "powercfg"
$arguments = "/H off"
Write-Host "Running $command $arguments"
try {
$process = Start-Process -Wait -PassThru -NoNewWindow -FilePath $command -ArgumentList $arguments
}
catch {
Write-Error "Error: $_, exit code: $($process.ExitCode)"
exit 1
}
if (!$process -or $process.ExitCode -ne 0) {
Write-Error "$command $arguments failed, exit code: $($process.ExitCode)"
exit 1
}
Write-Host "$command $arguments finish, exit code: $($process.ExitCode)"
exit 0