<# .SYNOPSIS The PowerShell script is a set of tweaks for fine-tuning Windows 10 and automating the routine tasks. .DESCRIPTION Supported Windows versions: Windows 10 18362/18363 (1903/1909) x64 only. Tested on Pro/Enterprise editions. Check whether file is encoded in UTF-8 with BOM. PowerShell must be run with elevated privileges; Set PowerShell execution policy: Set-ExecutionPolicy -ExecutionPolicy Bypass -Force to be able to run .ps1 files. Read the code you run carefully. Some functions are presented as an example only. You must be aware of the meaning of the functions in the code. If you're not sure what the script does, do not run it. Strongly recommended to run the script after fresh installation. Some of functions can be run also on LTSB/LTSC and on older versions of Windows and PowerShell (not recommended to run on the x86 systems). .EXAMPLE PS C:\> & '.\Win 10.ps1' .NOTES Version: v4.0.34 Date: 28.04.2020 Written by: farag Thanks to all http://forum.ru-board.com members involved Ask a question on - http://forum.ru-board.com/topic.cgi?forum=62&topic=30617#15 - https://habr.com/en/post/465365/ - https://forums.mydigitallife.net/threads/powershell-script-setup-windows-10.80139/ - https://www.reddit.com/r/Windows10/comments/ctg8jw/powershell_script_setup_windows_10/ Copyright (c) 2020 farag .LINK https://github.com/farag2/Windows-10-Setup-Script #> #Requires -RunAsAdministrator #Requires -Version 5 #region Preparation Set-StrictMode -Version Latest Clear-Host # Get information about the current culture settings # Получить сведения о параметрах текущей культуры if ($PSUICulture -eq "ru-RU") { $RU = $true } else { $RU = $false } # Detect the OS bitness # Определить разрядность ОС if (-not ([Environment]::Is64BitOperatingSystem)) { if ($RU) { Write-Warning -Message "Скрипт поддерживает только Windows 10 x64" } else { Write-Warning -Message "The script supports Windows 10 x64 only" } break } # Detect the PowerShell bitness # Определить разрядность PowerShell if (-not ([IntPtr]::Size -eq 8)) { if ($RU) { Write-Warning -Message "Скрипт поддерживает только PowerShell x64" } else { Write-Warning -Message "The script supports PowerShell x64 only" } break } #endregion Preparation #region Begin # Сlear $Error variable # Очистка переменной $Error $Error.Clear() # Set the encoding to UTF-8 without BOM for the PowerShell session # Установить кодировку UTF-8 без BOM для текущей сессии PowerShell if ($RU) { ping.exe | Out-Null $OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8 } # Create a restore point # Создать точку восстановления if ($RU) { Write-Host "`nЧтобы создать точку восстановления, введите букву: " -NoNewline Write-Host "[Y]es" -ForegroundColor Yellow -NoNewline Write-Host " или " -NoNewline Write-Host "[N]o" -ForegroundColor Yellow -NoNewline Write-Host ", чтобы пропустить" -NoNewline Write-Host "`nТакже, чтобы пропустить, нажмите Enter" -NoNewline } else { Write-Host "`nTo сreate a restore point type: " -NoNewline Write-Host "[Y]es" -ForegroundColor Yellow -NoNewline Write-Host " or " -NoNewline Write-Host "[N]o" -ForegroundColor Yellow -NoNewline Write-Host " to skip" -NoNewline Write-Host "`nAlso press Enter to skip" -NoNewline } do { $Prompt = Read-Host -Prompt " " if ([string]::IsNullOrEmpty($Prompt)) { break } else { switch ($Prompt) { "Y" { if (-not (Get-ComputerRestorePoint)) { Enable-ComputerRestore -Drive $env:SystemDrive } # Set system restore point creation frequency to 5 minutes # Установить частоту создания точек восстановления на 5 минут New-ItemProperty -Path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore" -Name SystemRestorePointCreationFrequency -PropertyType DWord -Value 5 -Force # Descriptive name format for the restore point: , ,