#Requires -Version 5.1
$ErrorActionPreference = 'Stop'
function Test-IsAdministrator {
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object Security.Principal.WindowsPrincipal($identity)
return $principal.IsInRole(
[Security.Principal.WindowsBuiltInRole]::Administrator
)
}
if (-not (Test-IsAdministrator)) {
$arguments = @(
'-NoProfile'
'-ExecutionPolicy', 'Bypass'
'-File', ('"{0}"' -f $PSCommandPath)
)
Start-Process `
-FilePath 'powershell.exe' `
-Verb RunAs `
-ArgumentList $arguments
exit
}
try {
$powerKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
New-ItemProperty `
-Path $powerKey `
-Name 'HiberbootEnabled' `
-PropertyType DWord `
-Value 0 `
-Force | Out-Null
Write-Host ''
Write-Host 'Быстрый запуск Windows отключён.' -ForegroundColor Green
Write-Host 'Гибернация оставлена включённой.'
Write-Host ''
$answer = Read-Host 'Выключить компьютер сейчас принудительно? (Д/Н)'
if ($answer -match '^(д|да|y|yes)$') {
Write-Host 'Завершение работы через 10 секунд.' -ForegroundColor Yellow
Write-Host 'Для отмены выполните: shutdown /a'
& "$env:SystemRoot\System32\shutdown.exe" `
/s /f /t 10 `
/c 'Принудительное завершение работы для проверки исправления'
}
else {
Write-Host 'Изменение применено.' -ForegroundColor Cyan
Write-Host 'Проверьте выключение через меню Пуск.'
Read-Host 'Нажмите Enter для выхода'
}
}
catch {
Write-Host "Ошибка: $($_.Exception.Message)" -ForegroundColor Red
Read-Host 'Нажмите Enter для выхода'
exit 1
}