<# .SYNOPSIS "Windows 10 Setup Script" is a set of tweaks for OS fine-tuning and automating the routine tasks .DESCRIPTION Supported Windows versions: Windows 10 1903/1909 (19H1/19H2), 18362/18363 build, x64 only Tested on Home/Pro/Enterprise editions Check whether file is encoded in UTF-8 with BOM The script can not be executed via PowerShell ISE 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.3 Date: 21.05.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://4pda.ru/forum/index.php?s=&showtopic=523489&view=findpost&p=95909388 - 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 Check 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 } # Detect whether the script is running via PowerShell ISE # Определить, запущен ли скрипт в PowerShell ISE if ($psISE) { if ($RU) { Write-Warning -Message "Скрипт не может быть запущен в PowerShell ISE" } else { Write-Warning -Message "The script can not be run via PowerShell ISE" } break } #endregion Check #region Begin Set-StrictMode -Version Latest # С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) { $Title = "Точка восстановления" $Message = "Чтобы создайте точку восстановления, введите необходимую букву" $Options = "&Создать", "&Не создавать", "&Пропустить" } else { $Title = "Restore point" $Message = "To create a restore point enter the required letter" $Options = "&Create", "&Do not create", "&Skip" } $DefaultChoice = 2 $Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) switch ($Result) { "0" { 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: ..