<# .SYNOPSIS "Windows 10 Setup Script" is a set of tweaks for OS fine-tuning and automating the routine tasks Version: v4.4.8 Date: 17.08.2020 Copyright (c) 2020 farag & oZ-Zo Thanks to all http://forum.ru-board.com members involved .DESCRIPTION Supported Windows 10 version: 2004 (20H1), 19041 build, x64 Most of functions can be run also on LTSB/LTSC Tested on Home/Pro/Enterprise editions Due to the fact that the script includes about 150 functions, you must read the entire script and comment out those sections that you do not want to be executed, otherwise likely you will enable features that you do not want to be enabled Running the script is best done on a fresh install because running it on tweaked system may result in errors occurring Some third-party antiviruses flag this script or its' part as malicious one. This is a false positive due to $EncodedScript variable You can read more on section "Create a Windows cleaning up task in the Task Scheduler" You might need to disable tamper protection from your antivirus settings,re-enable it after running the script, and reboot Check whether the .ps1 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 execution policy to be able to run scripts only in the current PowerShell session: Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force .EXAMPLE PS C:\> & '.\Win 10 1903-1909.ps1' .NOTES 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?showtopic=523489&st=42860#entry95909388 https://forums.mydigitallife.net/threads/powershell-script-setup-windows-10.81675/ https://www.reddit.com/r/PowerShell/comments/go2n5v/powershell_script_setup_windows_10/ .LINK https://github.com/farag2/Windows-10-Setup-Script #> #Requires -RunAsAdministrator #Requires -Version 5.1 #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 # Определить разрядность ОС switch ([Environment]::Is64BitOperatingSystem) { $false { if ($RU) { Write-Warning -Message "Скрипт поддерживает только Windows 10 x64" } else { Write-Warning -Message "The script supports Windows 10 x64 only" } break } Default {} } # Detect the PowerShell bitness # Определить разрядность PowerShell switch ([IntPtr]::Size -eq 8) { $false { if ($RU) { Write-Warning -Message "Скрипт поддерживает только PowerShell x64" } else { Write-Warning -Message "The script supports PowerShell x64 only" } break } Default {} } # 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() # 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: ..