Загрузка данных


#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
}