diff --git a/LTSC/Sophia.ps1 b/LTSC/Sophia.ps1 index bc97d1a9..7c42de55 100644 --- a/LTSC/Sophia.ps1 +++ b/LTSC/Sophia.ps1 @@ -1,2573 +1,1033 @@ <# -.SYNOPSIS - "Windows 10 Setup Script" is a set of tweaks for OS fine-tuning and automating the routine tasks + .SYNOPSIS + Default preset file for "Windows 10 Sophia Script" (LTSC version) - Version: v4.5 - Date: 18.09.2020 + Version: v5.0 + Date: 29.12.2020 Copyright (c) 2020 farag & oZ-Zo - Thanks to all http://forum.ru-board.com members involved - -.DESCRIPTION - Supported Windows 10 version: 1809 Enterprise LTSC, 17763 build, x64 + Thanks to all https://forum.ru-board.com members involved - Due to the fact that the script includes about 140 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 + .DESCRIPTION + Supported Windows 10 versions: 1809 Enterprise LTSC, 17763 build, x64 - Running the script is best done on a fresh install because running it on tweaked system may result in errors occurring + Due to the fact that the script includes more than 120 functions with different arguments, you must read the entire Sophia.ps1 carefully and + comment out/uncomment those functions that you do/do not want to be executed + Every tweak in the preset file has its' corresponding function to restore the default settings - 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 about in "Create a task to clean up unused files and Windows updates in the Task Scheduler" section - You might need to disable tamper protection from your antivirus settings,re-enable it after running the script, and reboot + Running the script is best done on a fresh install because running it on wrong tweaked system may result in errors occurring - 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:\> & '.\LTSC.ps1' + .EXAMPLE + PS C:\> .\Sophia.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?s=&showtopic=523489&view=findpost&p=95909388 + .NOTES + https://forum.ru-board.com/topic.cgi?forum=62&topic=30617#15 + https://habr.com/en/post/521202/ 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 + .LINK + https://github.com/farag2/Windows-10-Sophia-Script #> #Requires -RunAsAdministrator #Requires -Version 5.1 -#region Check Clear-Host -# Get information about the current culture settings -# Получить сведения о параметрах текущей культуры -$RU = $PSUICulture -eq "ru-RU" - -# 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 cannot be run via PowerShell ISE" - } - break -} -#endregion Check - -#region Begin -Set-StrictMode -Version Latest - -# Сlear $Error variable -# Очистка переменной $Error -$Error.Clear() +$Host.UI.RawUI.WindowTitle = "Windows 10 Sophia Script for LTSC v5.0 | ©️ farag & oz-zo, 2015–2020 | $((Invoke-WebRequest -Uri https://wttr.in/?format=3 -UseBasicParsing).Content) | Happy New Year!" + +Remove-Module -Name Sophia -Force -ErrorAction Ignore +Import-Module -Name $PSScriptRoot\Sophia.psd1 -PassThru -Force + +Import-LocalizedData -BindingVariable Global:Localization -FileName Sophia + +# Checkings +# Проверки +Checkings + +<# + Enable script logging. The log will be being recorded into the script folder + To stop logging just close the console or type "Stop-Transcript" + + Включить логирование работы скрипта. Лог будет записываться в папку скрипта + Чтобы остановить логгирование, закройте консоль или наберите "Stop-Transcript" +#> +# Logging # Create a restore point # Создать точку восстановления -if ($RU) -{ - $Title = "Точка восстановления" - $Message = "Хотите включить защиту системы и создать точку восстановления?" - $Options = "&Создать", "&Не создавать", "&Пропустить" -} -else -{ - $Title = "Restore point" - $Message = "Would you like to enable System Restore and create a restore point?" - $Options = "&Create", "&Do not create", "&Skip" -} -$DefaultChoice = 2 -$Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) - -switch ($Result) -{ - "0" - { - # Enable System Restore - # Включить функцию восстановления системы - 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 - Checkpoint-Computer -Description "Windows 10 Setup Script.ps1" -RestorePointType MODIFY_SETTINGS - # Revert the System Restore checkpoint creation frequency to 1440 minutes - # Вернуть частоту создания точек восстановления на 1440 минут - New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" -Name SystemRestorePointCreationFrequency -PropertyType DWord -Value 1440 -Force - } - "1" - { - if ($RU) - { - $Title = "Точки восстановления" - $Message = "Удалить все точки восстановления?" - $Options = "&Удалить", "&Пропустить" - } - else - { - $Title = "Restore point" - $Message = "Would you like to delete all System restore checkpoints?" - $Options = "&Delete", "&Skip" - } - $DefaultChoice = 1 - $Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) - - switch ($Result) - { - "0" - { - # Delete all restore points - # Удалить все точки восстановения - Get-CimInstance -ClassName Win32_ShadowCopy | Remove-CimInstance - } - "1" - { - if ($RU) - { - Write-Verbose -Message "Пропущено" -Verbose - } - else - { - Write-Verbose -Message "Skipped" -Verbose - } - } - } - } - "2" - { - if ($RU) - { - Write-Verbose -Message "Пропущено" -Verbose - } - else - { - Write-Verbose -Message "Skipped" -Verbose - } - } -} -#endregion Begin +CreateRestorePoint #region Privacy & Telemetry -# Disable the "Connected User Experiences and Telemetry" service (DiagTrack) -# Отключить службу "Функциональные возможности для подключенных пользователей и телеметрия" (DiagTrack) -Get-Service -Name DiagTrack | Stop-Service -Force -Get-Service -Name DiagTrack | Set-Service -StartupType Disabled +# Disable the "Connected User Experiences and Telemetry" service +# Отключить службу "Функциональные возможности для подключенных пользователей и телеметрия" +TelemetryService -Disable + +# Enable the "Connected User Experiences and Telemetry" service (default value) +# Включить службу "Функциональные возможности для подключенных пользователей и телеметрия" (значение по умолчанию) +# TelemetryService -Enable # Set the OS level of diagnostic data gathering to minimum # Установить уровень сбора диагностических сведений ОС на минимальный -New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection -Name AllowTelemetry -PropertyType DWord -Value 0 -Force +DiagnosticDataLevel -Minimal + +# Set the default OS level of diagnostic data gathering +# Установить уровень сбора диагностических сведений ОС по умолчанию +# DiagnosticDataLevel -Default # Turn off Windows Error Reporting for the current user # Отключить отчеты об ошибках Windows для текущего пользователя -New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\Windows Error Reporting" -Name Disabled -PropertyType DWord -Value 1 -Force +ErrorReporting -Disable + +# Turn on Windows Error Reporting for the current user (default value) +# Включить отчеты об ошибках Windows для текущего пользователя (значение по умолчанию) +# ErrorReporting -Enable # Change Windows feedback frequency to "Never" for the current user # Изменить частоту формирования отзывов на "Никогда" для текущего пользователя -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Siuf\Rules)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Siuf\Rules -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Siuf\Rules -Name NumberOfSIUFInPeriod -PropertyType DWord -Value 0 -Force +WindowsFeedback -Disable + +# Change Windows Feedback frequency to "Automatically" for the current user (default value) +# Изменить частоту формирования отзывов на "Автоматически" для текущего пользователя (значение по умолчанию) +# WindowsFeedback -Enable # Turn off diagnostics tracking scheduled tasks # Отключить задачи диагностического отслеживания -$ScheduledTaskList = @( - # Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program. - # Собирает телеметрические данные программы при участии в Программе улучшения качества программного обеспечения Майкрософт - "Microsoft Compatibility Appraiser", - - # Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program - # Сбор телеметрических данных программы при участии в программе улучшения качества ПО - "ProgramDataUpdater", - - # This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program - # Эта задача собирает и загружает данные SQM при участии в программе улучшения качества программного обеспечения - "Proxy", - - # If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft - # Если пользователь изъявил желание участвовать в программе по улучшению качества программного обеспечения Windows, эта задача будет собирать и отправлять сведения о работе программного обеспечения в Майкрософт - "Consolidator", - - # The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft - # При выполнении задачи программы улучшения качества ПО шины USB (USB CEIP) осуществляется сбор статистических данных об использовании универсальной последовательной шины USB и с ведений о компьютере, которые направляются инженерной группе Майкрософт по вопросам подключения устройств в Windows - "UsbCeip", - - # The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program - # Для пользователей, участвующих в программе контроля качества программного обеспечения, служба диагностики дисков Windows предоставляет общие сведения о дисках и системе в корпорацию Майкрософт - "Microsoft-Windows-DiskDiagnosticDataCollector", - - # Protects user files from accidental loss by copying them to a backup location when the system is unattended - # Защищает файлы пользователя от случайной потери за счет их копирования в резервное расположение, когда система находится в автоматическом режиме - "File History (maintenance mode)", - - # Measures a system's performance and capabilities - # Измеряет быстродействие и возможности системы - "WinSAT", +ScheduledTasks -Disable - # This task shows various Map related toasts - # Эта задача показывает различные тосты (всплывающие уведомления) приложения "Карты" - "MapsToastTask", - - # This task checks for updates to maps which you have downloaded for offline use - # Эта задача проверяет наличие обновлений для карт, загруженных для автономного использования - "MapsUpdateTask", - - # Initializes Family Safety monitoring and enforcement - # Инициализация контроля и применения правил семейной безопасности - "FamilySafetyMonitor", - - # Synchronizes the latest settings with the Microsoft family features service - # Синхронизирует последние параметры со службой функций семьи учетных записей Майкрософт - "FamilySafetyRefreshTask", - - # Windows Error Reporting task to process queued reports - # Задача отчетов об ошибках обрабатывает очередь отчетов - "QueueReporting", - - # XblGameSave Standby Task - "XblGameSaveTask" -) - -# If device is not a laptop disable FODCleanupTask too -# Если устройство не является ноутбуком, отключить также и FODCleanupTask -if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2) -{ - # Windows Hello - $ScheduledTaskList += "FODCleanupTask" -} - -Get-ScheduledTask -TaskName $ScheduledTaskList | Disable-ScheduledTask +# Turn on diagnostics tracking scheduled tasks (default value) +# Включить задачи диагностического отслеживания (значение по умолчанию) +# ScheduledTasks -Enable # Do not use sign-in info to automatically finish setting up device and reopen apps after an update or restart (current user only) # Не использовать данные для входа для автоматического завершения настройки устройства и открытия приложений после перезапуска или обновления (только для текущего пользователя) -$SID = (Get-CimInstance -ClassName Win32_UserAccount | Where-Object -FilterScript {$_.Name -eq $env:USERNAME}).SID -if (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserARSO\$SID")) -{ - New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserARSO\$SID" -Force -} -New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserARSO\$SID" -Name OptOut -PropertyType DWord -Value 1 -Force +SigninInfo -Disable + +# Use sign-in info to automatically finish setting up device and reopen apps after an update or restart (current user only) (default value) +# Использовать данные для входа для автоматического завершения настройки устройства и открытия приложений после перезапуска или обновления (только для текущего пользователя) (значение по умолчанию) +# SigninInfo -Enable # Do not let websites provide locally relevant content by accessing language list (current user only) # Не позволять веб-сайтам предоставлять местную информацию за счет доступа к списку языков (только для текущего пользователя) -New-ItemProperty -Path "HKCU:\Control Panel\International\User Profile" -Name HttpAcceptLanguageOptOut -PropertyType DWord -Value 1 -Force +LanguageListAccess -Disable + +# Let websites provide locally relevant content by accessing language list (current user only) (default value) +# Позволять веб-сайтам предоставлять местную информацию за счет доступа к списку языков (только для текущего пользователя) (значение по умолчанию) +# LanguageListAccess -Enable # Do not allow apps to use advertising ID (current user only) # Не разрешать приложениям использовать идентификатор рекламы (только для текущего пользователя) -if (-not (Test-Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo -Name Enabled -PropertyType DWord -Value 0 -Force +AdvertisingID -Disable + +# Allow apps to use advertising ID (current user only) (default value) +# Разрешать приложениям использовать идентификатор рекламы (только для текущего пользователя) (значение по умолчанию) +# AdvertisingID -Enable # Do not let apps on other devices open and message apps on this device, and vice versa (current user only) # Не разрешать приложениям на других устройствах запускать приложения и отправлять сообщения на этом устройстве и наоборот (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CDP -Name RomeSdkChannelUserAuthzPolicy -PropertyType DWord -Value 0 -Force +ShareAcrossDevices -Disable + +# Let apps on other devices open and message apps on this device, and vice versa (current user only) (default value) +# Разрешать приложениям на других устройствах запускать приложения и отправлять сообщения на этом устройстве и наоборот (только для текущего пользователя) (значение по умолчанию) +# ShareAcrossDevices -Enable #endregion Privacy & Telemetry #region UI & Personalization # Show "This PC" on Desktop (current user only) # Отобразить "Этот компьютер" на рабочем столе (только для текущего пользователя) -if (-not (Test-Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel)) -{ - New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -PropertyType DWord -Value 0 -Force +ThisPC -Show + +# Hide "This PC" on Desktop (current user only) (default value) +# Скрывать "Этот компьютер" на рабочем столе (только для текущего пользователя) (значение по умолчанию) +# ThisPC -Hide # Do not use check boxes to select items (current user only) # Не использовать флажки для выбора элементов (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name AutoCheckSelect -PropertyType DWord -Value 0 -Force +CheckBoxes -Disable + +# Use check boxes to select items (current user only) (default value) +# Использовать флажки для выбора элементов (только для текущего пользователя) (значение по умолчанию) +# CheckBoxes -Enable # Show hidden files, folders, and drives (current user only) -# Показывать скрытые файлы, папки и диски (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name Hidden -PropertyType DWord -Value 1 -Force +# Отображать скрытые файлы, папки и диски (только для текущего пользователя) +HiddenItems -Enable + +# Do not show hidden files, folders, and drives (current user only) (default value) +# Не отображать скрытые файлы, папки и диски (только для текущего пользователя) (значение по умолчанию) +# HiddenItems -Disable # Show file name extensions (current user only) -# Показывать расширения имён файлов (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name HideFileExt -PropertyType DWord -Value 0 -Force +# Отображать расширения имён файлов (только для текущего пользователя) +FileExtensions -Show + +# Hide file name extensions (current user only) (default value) +# Скрывать расширения имён файлов файлов (только для текущего пользователя) (значение по умолчанию) +# FileExtensions -Hide # Do not hide folder merge conflicts (current user only) # Не скрывать конфликт слияния папок (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name HideMergeConflicts -PropertyType DWord -Value 0 -Force +MergeConflicts -Show + +# Hide folder merge conflicts (current user only) (default value) +# Скрывать конфликт слияния папок (только для текущего пользователя) (значение по умолчанию) +# MergeConflicts -Hide # Open File Explorer to: "This PC" (current user only) # Открывать проводник для: "Этот компьютер" (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name LaunchTo -PropertyType DWord -Value 1 -Force +OpenFileExplorerTo -ThisPC + +# Open File Explorer to: "Quick access" (current user only) (default value) +# Открывать проводник для: "Быстрый доступ" (только для текущего пользователя) (значение по умолчанию) +# OpenFileExplorerTo -QuickAccess + +# Hide Task View button on the taskbar (current user only) +# Скрывать кнопку Просмотра задач (только для текущего пользователя) +TaskViewButton -Hide -# Do not show all folders in the navigation pane (current user only) -# Не отображать все папки в области навигации (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneShowAllFolders -PropertyType DWord -Value 0 -Force +# Show Task View button on the taskbar (current user only) (default value) +# Показывать кнопку Просмотра задач (только для текущего пользователя) (значение по умолчанию) +# TaskViewButton -Show -# Do not show Task View button on the taskbar (current user only) -# Не показывать кнопку Просмотра задач (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name ShowTaskViewButton -PropertyType DWord -Value 0 -Force +# Hide People button on the taskbar (current user only) +# Скрывать панель "Люди" на панели задач (только для текущего пользователя) +PeopleTaskbar -Hide -# Do not show People button on the taskbar (current user only) -# Не показывать панель "Люди" на панели задач (только для текущего пользователя) -if (-not (Test-Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People -Name PeopleBand -PropertyType DWord -Value 0 -Force +# Show People button on the taskbar (current user only) (default value) +# Показывать панель "Люди" на панели задач (только для текущего пользователя) (значение по умолчанию) +# PeopleTaskbar -Show # Show seconds on the taskbar clock (current user only) # Отображать секунды в системных часах на панели задач (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name ShowSecondsInSystemClock -PropertyType DWord -Value 1 -Force +SecondsInSystemClock -Show -# Do not show when snapping a window, what can be attached next to it (current user only) -# Не показывать при прикреплении окна, что можно прикрепить рядом с ним (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name SnapAssist -PropertyType DWord -Value 0 -Force +# Hide seconds on the taskbar clock (current user only) (default value) +# Скрывать секунды в системных часах на панели задач (только для текущего пользователя) (значение по умолчанию) +# SecondsInSystemClock -Hide + +# When I snap a window, do not show what I can snap next to it (current user only) +# При прикреплении окна не показывать, что можно прикрепить рядом с ним (только для текущего пользователя) +SnapAssist -Disable + +# When I snap a window, show what I can snap next to it (current user only) (default value) +# При прикреплении окна не показывать/показывать, что можно прикрепить рядом с ним (только для текущего пользователя) (значение по умолчанию) +# SnapAssist -Enable # Always open the file transfer dialog box in the detailed mode (current user only) # Всегда открывать диалоговое окно передачи файлов в развернутом виде (только для текущего пользователя) -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager -Name EnthusiastMode -PropertyType DWord -Value 1 -Force - -# Show the ribbon expanded in File Explorer (current user only) -# Отображать ленту проводника в развернутом виде (только для текущего пользователя) -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Ribbon)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Ribbon -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Ribbon -Name MinimizedStateTabletModeOff -PropertyType DWord -Value 0 -Force +FileTransferDialog -Detailed -<# -Display recycle bin files delete confirmation -Function [WinAPI.UpdateExplorer]::PostMessage() call required at the end +# Always open the file transfer dialog box in the compact mode (current user only) (default value) +# Всегда открывать диалоговое окно передачи файлов в свернутом виде (только для текущего пользователя) (значение по умолчанию) +# FileTransferDialog -Compact -Запрашивать подтверждение на удаление файлов в корзину -В конце необходим вызов функции [WinAPI.UpdateExplorer]::PostMessage() -#> -$ShellState = Get-ItemPropertyValue -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShellState -$ShellState[4] = 51 -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShellState -PropertyType Binary -Value $ShellState -Force - -# Hide the "3D Objects" folder from "This PC" and "Quick access" (current user only) -# Скрыть папку "Объемные объекты" из "Этот компьютер" и из панели быстрого доступа (только для текущего пользователя) -if (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag")) -{ - New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force -} -New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name ThisPCPolicy -PropertyType String -Value Hide -Force - -# Do not show frequently used folders in "Quick access" (current user only) -# Не показывать недавно используемые папки на панели быстрого доступа (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowFrequent -PropertyType DWord -Value 0 -Force +# Always expand the ribbon in the File Explorer (current user only) +# Всегда разворачивать ленту в проводнике (только для текущего пользователя) +FileExplorerRibbon -Expanded + +# Always minimize the ribbon in the File Explorer (current user only) (default value) +# Не отображать ленту проводника в развернутом виде (только для текущего пользователя) (значение по умолчанию) +# FileExplorerRibbon -Minimized + +# Display recycle bin files delete confirmation +# Запрашивать подтверждение на удаление файлов в корзину +RecycleBinDeleteConfirmation -Enable + +# Do not display recycle bin files delete confirmation (default value) +# Не запрашивать подтверждение на удаление файлов в корзину (значение по умолчанию) +# RecycleBinDeleteConfirmation -Disable + +# Hide the "3D Objects" folder in "This PC" and "Quick access" (current user only) +# Скрыть папку "Объемные объекты" в "Этот компьютер" и панели быстрого доступа (только для текущего пользователя) +3DObjects -Hide + +# Show the "3D Objects" folder in "This PC" and "Quick access" (current user only) (default value) +# Отобразить папку "Объемные объекты" в "Этот компьютер" и панели быстрого доступа (только для текущего пользователя) (значение по умолчанию) +# 3DObjects -Show + +# Hide frequently used folders in "Quick access" (current user only) +# Скрыть недавно используемые папки на панели быстрого доступа (только для текущего пользователя) +QuickAccessFrequentFolders -Hide + +# Show frequently used folders in "Quick access" (current user only) (default value) +# Показывать недавно используемые папки на панели быстрого доступа (только для текущего пользователя) (значение по умолчанию) +# QuickAccessFrequentFolders -Show # Do not show recently used files in Quick access (current user only) # Не показывать недавно использовавшиеся файлы на панели быстрого доступа (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowRecent -PropertyType DWord -Value 0 -Force +QuickAccessRecentFiles -Hide + +# Show recently used files in Quick access (current user only) (default value) +# Показывать недавно использовавшиеся файлы на панели быстрого доступа (только для текущего пользователя) (значение по умолчанию) +# QuickAccessRecentFiles -Show # Hide the search box or the search icon from the taskbar (current user only) # Скрыть поле или значок поиска на панели задач (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name SearchboxTaskbarMode -PropertyType DWord -Value 0 -Force +TaskbarSearch -Hide + +# Show the search box on the taskbar (current user only) +# Показать поле поиска на панели задач (только для текущего пользователя) +# TaskbarSearch -SearchIcon + +# Show the search icon on the taskbar (current user only) (default value) +# Показать поле поиска на панели задач (только для текущего пользователя) (значение по умолчанию) +# TaskbarSearch -SearchBox # Always show all icons in the notification area (current user only) # Всегда отображать все значки в области уведомлений (только для текущего пользователя) -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name EnableAutoTray -PropertyType DWord -Value 0 -Force +TrayIcons -Show + +# Do not show all icons in the notification area (current user only) (default value) +# Не отображать все значки в области уведомлений (только для текущего пользователя) (значение по умолчанию) +# TrayIcons -Hide # View the Control Panel icons by: large icons (current user only) # Просмотр иконок Панели управления как: крупные значки (только для текущего пользователя) -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Name AllItemsIconView -PropertyType DWord -Value 0 -Force -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Name StartupPage -PropertyType DWord -Value 1 -Force - -# The color scheme for Windows shell (current user only) -# Режим цвета для Windows (только для текущего пользователя) -if ($RU) -{ - $Title = "Режим Windows" - $Message = "Установить цветовую схему Windows на светлую или темную" - $Options = "&Светлый", "&Темный", "&Пропустить" -} -else -{ - $Title = "Windows mode" - $Message = "Set the Windows color scheme to either Light or Dark" - $Options = "&Light", "&Dark", "&Skip" -} -$DefaultChoice = 1 -$Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) - -switch ($Result) -{ - "0" - { - # Light color scheme - # Светлая цветовая схема - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -PropertyType DWord -Value 1 -Force - } - "1" - { - # Dark color scheme - # Темная цветовая схема - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name SystemUsesLightTheme -PropertyType DWord -Value 0 -Force - } - "2" - { - if ($RU) - { - Write-Verbose -Message "Пропущено" -Verbose - } - else - { - Write-Verbose -Message "Skipped" -Verbose - } - } -} - -# The color scheme for apps (current user only) -# Режим цвета для приложений (только для текущего пользователя) -if ($RU) -{ - $Title = "Режим приложений" - $Message = "Чтобы выбрать режим приложения по умолчанию, введите необходимую букву" - $Options = "&Светлый", "&Темный", "&Пропустить" -} -else -{ - $Title = "Apps mode" - $Message = "Set apps color scheme to either Light or Dark" - $Options = "&Light", "&Dark", "&Skip" -} -$DefaultChoice = 1 -$Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) - -switch ($Result) -{ - "0" - { - # Light color scheme - # Светлый цветовая схема - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -PropertyType DWord -Value 1 -Force - } - "1" - { - # Dark color scheme - # Темная цветовая схема - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize -Name AppsUseLightTheme -PropertyType DWord -Value 0 -Force - } - "2" - { - if ($RU) - { - Write-Verbose -Message "Пропущено" -Verbose - } - else - { - Write-Verbose -Message "Skipped" -Verbose - } - } -} +ControlPanelView -LargeIcons + +# View the Control Panel icons by: category (current user only) (default value) +# Просмотр значки Панели управления как "категория" (только для текущего пользователя) (значение по умолчанию) +# ControlPanelView -Category + +# Set the Windows mode color scheme to the dark (current user only) +# Установить цвет режима Windows по умолчанию на темный (только для текущего пользователя) +WindowsColorScheme -Dark + +# Set the Windows mode color scheme to the light (current user only) +# Установить режим цвета для Windows на светлый (только для текущего пользователя) +# WindowsColorScheme -Light + +# Set the default app mode color scheme to the dark (current user only) +# Установить цвет режима приложений по умолчанию на темный (только для текущего пользователя) +AppMode -Dark + +# Set the default app mode color scheme to the light (current user only) +# Установить цвет режима приложений по умолчанию на светлый (только для текущего пользователя) +# AppMode -Light # Do not show the "New App Installed" indicator # Не показывать уведомление "Установлено новое приложение" -if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer)) -{ - New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force -} -New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name NoNewAppAlert -PropertyType DWord -Value 1 -Force +NewAppInstalledNotification -Hide -# Do not show user first sign-in animation after the upgrade -# Не показывать анимацию при первом входе в систему после обновления -New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableFirstLogonAnimation -PropertyType DWord -Value 0 -Force +# Show the "New App Installed" indicator (default value) +# Показывать уведомление "Установлено новое приложение" (значение по умолчанию) +# NewAppInstalledNotification -Show + +# Hide user first sign-in animation after the upgrade +# Скрывать анимацию при первом входе в систему после обновления +FirstLogonAnimation -Disable + +# Show user first sign-in animation after the upgrade (default value) +# Показывать анимацию при первом входе в систему после обновления (значение по умолчанию) +# FirstLogonAnimation -Enable # Set the quality factor of the JPEG desktop wallpapers to maximum (current user only) # Установить коэффициент качества обоев рабочего стола в формате JPEG на максимальный (только для текущего пользователя) -New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name JPEGImportQuality -PropertyType DWord -Value 100 -Force +JPEGWallpapersQuality -Max + +# Set the quality factor of the JPEG desktop wallpapers to default (current user only) +# Установить коэффициент качества обоев рабочего стола в формате JPEG по умолчанию (только для текущего пользователя) +# JPEGWallpapersQuality -Default # Start Task Manager in expanded mode (current user only) # Запускать Диспетчера задач в развернутом виде (только для текущего пользователя) -$Taskmgr = Get-Process -Name Taskmgr -ErrorAction Ignore -if ($Taskmgr) -{ - $Taskmgr.CloseMainWindow() -} - -Start-Process -FilePath Taskmgr.exe -WindowStyle Hidden -PassThru -do -{ - Start-Sleep -Milliseconds 100 - $Preferences = Get-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\TaskManager -Name Preferences -ErrorAction Ignore -} -until ($Preferences) -Stop-Process -Name Taskmgr - -$Preferences.Preferences[28] = 0 -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\TaskManager -Name Preferences -PropertyType Binary -Value $Preferences.Preferences -Force +TaskManagerWindow -Expanded + +# Start Task Manager in compact mode (current user only) (default value) +# Запускать Диспетчера задач в свернутом виде (только для текущего пользователя) (значение по умолчанию) +# TaskManagerWindow -Compact # Show a notification when your PC requires a restart to finish updating # Показывать уведомление, когда компьютеру требуется перезагрузка для завершения обновления -New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings -Name RestartNotificationsAllowed2 -PropertyType DWord -Value 1 -Force +RestartNotification -Show + +# Do not show a notification when your PC requires a restart to finish updating (default value) +# Не показывать уведомление, когда компьютеру требуется перезагрузка для завершения обновления (значение по умолчанию) +# RestartNotification -Hide # Do not add the "- Shortcut" suffix to the file name of created shortcuts (current user only) # Нe дoбaвлять "- яpлык" к имени coздaвaeмых яpлыков (только для текущего пользователя) -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NamingTemplates)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NamingTemplates -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NamingTemplates -Name ShortcutNameTemplate -PropertyType String -Value "%s.lnk" -Force +ShortcutsSuffix -Disable + +# Add the "- Shortcut" suffix to the file name of created shortcuts (current user only) (default value) +# Дoбaвлять "- яpлык" к имени coздaвaeмых яpлыков (только для текущего пользователя) (значение по умолчанию) +# ShortcutsSuffix -Enable # Use the PrtScn button to open screen snipping (current user only) # Использовать кнопку PRINT SCREEN, чтобы запустить функцию создания фрагмента экрана (только для текущего пользователя) -New-ItemProperty -Path "HKCU:\Control Panel\Keyboard" -Name PrintScreenKeyForSnippingEnabled -PropertyType DWord -Value 1 -Force +PrtScnSnippingTool -Enable + +# Do not use the PrtScn button to open screen snipping (current user only) (default value) +# Не использовать кнопку PRINT SCREEN, чтобы запустить функцию создания фрагмента экрана (только для текущего пользователя) (значение по умолчанию) +# PrtScnSnippingTool -Disable + +# Let me use a different input method for each app window (current user only) +# Позволить выбирать метод ввода для каждого окна (только для текущего пользователя) +AppsLanguageSwitch -Disable + +# Do not let use a different input method for each app window (current user only) (default value) +# Не позволять выбирать метод ввода для каждого окна (только для текущего пользователя) (значение по умолчанию) +# AppsLanguageSwitch -Enable #endregion UI & Personalization #region System +#region StorageSense # Turn on Storage Sense (current user only) # Включить Контроль памяти (только для текущего пользователя) -if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy)) -{ - New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -ItemType Directory -Force -} -New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 01 -PropertyType DWord -Value 1 -Force - -if ((Get-ItemPropertyValue -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 01) -eq "1") -{ - # Run Storage Sense every month (current user only) - # Запускать Контроль памяти каждый месяц (только для текущего пользователя) - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 2048 -PropertyType DWord -Value 30 -Force - - # Delete temporary files that apps aren't using (current user only) - # Удалять временные файлы, не используемые в приложениях (только для текущего пользователя) - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 04 -PropertyType DWord -Value 1 -Force - - # Delete files in recycle bin if they have been there for over 30 days (current user only) - # Удалять файлы из корзины, если они находятся в корзине более 30 дней (только для текущего пользователя) - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 08 -PropertyType DWord -Value 1 -Force - New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy -Name 256 -PropertyType DWord -Value 30 -Force -} +StorageSense -Enable + +# Turn off Storage Sense (current user only) (default value) +# Выключить Контроль памяти (только для текущего пользователя) (значение по умолчанию) +# StorageSense -Disable + +# Run Storage Sense every month (current user only) +# Запускать Контроль памяти каждый месяц (только для текущего пользователя) +StorageSenseFrequency -Month + +# Run Storage Sense during low free disk space (default value) (current user only) +# Запускать Контроль памяти, когда остается мало место на диске (значение по умолчанию) (только для текущего пользователя) +# StorageSenseFrequency -Default + +# Delete temporary files that apps aren't using (current user only) +# Удалять временные файлы, не используемые в приложениях (только для текущего пользователя) +StorageSenseTempFiles -Enable + +# Do not delete temporary files that apps aren't using (current user only) +# Не удалять временные файлы, не используемые в приложениях (только для текущего пользователя) +# StorageSenseTempFiles -Disable + +# Delete files in recycle bin if they have been there for over 30 days (current user only) +# Удалять файлы из корзины, если они находятся в корзине более 30 дней (только для текущего пользователя) +StorageSenseRecycleBin -Enable + +# Do not delete files in recycle bin if they have been there for over 30 days (current user only) +# Не удалять файлы из корзины, если они находятся в корзине более 30 дней (только для текущего пользователя) +# StorageSenseRecycleBin -Disable +#endregion StorageSense # Disable hibernation if the device is not a laptop # Отключить режим гибернации, если устройство не является ноутбуком -if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2) -{ - POWERCFG /HIBERNATE OFF -} - -# Change the %TEMP% environment variable path to the %SystemDrive%\Temp (both machine-wide, and for the current user) -# Изменить путь переменной среды для %TEMP% на %SystemDrive%\Temp (для всех пользователей) -$Title = "" -if ($RU) -{ - $Message = "Изменить путь переменной среды для $env:TEMP на `"$env:SystemDrive\Temp`"?" - Write-Warning -Message "`nПеред выполнением закройте все работающие программы!" - $Options = "&Изменить", "&Пропустить" -} -else -{ - $Message = "Would you like to change the target of the $env:TEMP environment variable to the `"$env:SystemDrive\Temp`"?" - Write-Warning -Message "`nClose all running programs before proceeding!" - $Options = "&Change", "&Skip" -} -$DefaultChoice = 1 -$Result = $Host.UI.PromptForChoice($Title, $Message, $Options, $DefaultChoice) - -switch ($Result) -{ - "0" - { - if (-not (Test-Path -Path $env:SystemDrive\Temp)) - { - New-Item -Path $env:SystemDrive\Temp -ItemType Directory -Force - } - - [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "User") - [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "Machine") - [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "Process") - New-ItemProperty -Path HKCU:\Environment -Name TMP -PropertyType ExpandString -Value %SystemDrive%\Temp -Force - - [Environment]::SetEnvironmentVariable("TEMP", "$env:SystemDrive\Temp", "User") - [Environment]::SetEnvironmentVariable("TEMP", "$env:SystemDrive\Temp", "Machine") - [Environment]::SetEnvironmentVariable("TEMP", "$env:SystemDrive\Temp", "Process") - New-ItemProperty -Path HKCU:\Environment -Name TEMP -PropertyType ExpandString -Value %SystemDrive%\Temp -Force - - New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name TMP -PropertyType ExpandString -Value %SystemDrive%\Temp -Force - New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" -Name TEMP -PropertyType ExpandString -Value %SystemDrive%\Temp -Force - - # Restart the Printer Spooler service (Spooler) - # Перезапустить службу "Диспетчер печати" (Spooler) - Restart-Service -Name Spooler -Force - - Stop-Process -Name OneDrive -Force -ErrorAction Ignore - Stop-Process -Name FileCoAuth -Force -ErrorAction Ignore - - Remove-Item -Path $env:SystemRoot\Temp -Recurse -Force -ErrorAction Ignore - Remove-Item -Path $env:LOCALAPPDATA\Temp -Recurse -Force -ErrorAction Ignore - - # Create a symbolic link to the %SystemDrive%\Temp folder - # Создать символическую ссылку к папке %SystemDrive%\Temp - try - { - New-Item -Path $env:LOCALAPPDATA\Temp -ItemType SymbolicLink -Value $env:SystemDrive\Temp -Force - } - catch - { - if ($RU) - { - Write-Error -Message "Папка $env:LOCALAPPDATA\Temp не пуста. Очистите ее вручную" -ErrorAction SilentlyContinue - } - else - { - Write-Error -Message "The $env:LOCALAPPDATA\Temp folder is not empty. Clear it manually" -ErrorAction SilentlyContinue - } - Invoke-Item -Path $env:LOCALAPPDATA\Temp - } - } - "1" - { - if ($RU) - { - Write-Verbose -Message "Пропущено" -Verbose - } - else - { - Write-Verbose -Message "Skipped" -Verbose - } - } -} - -# Disable Windows 260 character path limit +Hibernate -Disable + +# Enable hibernate (default value) +# Включить режим гибернации (значение по умолчанию) +# Hibernate -Enable + +# Change the %TEMP% environment variable path to "%SystemDrive%\Temp" (both machine-wide, and for the current user) +# Изменить путь переменной среды для %TEMP% на "%SystemDrive%\Temp" (для всех пользователей) +# TempFolder -SystemDrive + +# Change %TEMP% environment variable path to "%LOCALAPPDATA%\Temp" (both machine-wide, and for the current user) (default value) +# Изменить путь переменной среды для %TEMP% на "LOCALAPPDATA%\Temp" (для всех пользователей) (значение по умолчанию) +# TempFolder -Default + +# Disable Windows 260 characters path limit # Отключить ограничение Windows на 260 символов в пути -New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -PropertyType DWord -Value 1 -Force +Win32LongPathLimit -Disable + +# Enable Windows 260 character path limit (default value) +# Включить ограничение Windows на 260 символов в пути (значение по умолчанию) +# Win32LongPathLimit -Enable # Display the Stop error information on the BSoD # Отображать Stop-ошибку при появлении BSoD -New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl -Name DisplayParameters -PropertyType DWord -Value 1 -Force +BSoDStopError -Enable + +# Do not display the Stop error information on the BSoD (default value) +# Не отображать Stop-ошибку при появлении BSoD (значение по умолчанию) +# BSoDStopError -Disable # Change "Behavior of the elevation prompt for administrators in Admin Approval Mode" to "Elevate without prompting" # Изменить "Поведение запроса на повышение прав для администраторов в режиме одобрения администратором" на "Повышение прав без запроса" -New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -PropertyType DWord -Value 0 -Force +AdminApprovalMode -Disable + +# Change "Behavior of the elevation prompt for administrators in Admin Approval Mode" to "Prompt for consent for non-Windows binaries" (default value) +# Изменить "Поведение запроса на повышение прав для администраторов в режиме одобрения администратором" на "Запрос согласия для исполняемых файлов, отличных от Windows" (значение по умолчанию) +# AdminApprovalMode -Enable # Turn on access to mapped drives from app running with elevated permissions with Admin Approval Mode enabled # Включить доступ к сетевым дискам при включенном режиме одобрения администратором при доступе из программ, запущенных с повышенными правами -New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLinkedConnections -PropertyType DWord -Value 1 -Force +MappedDrivesAppElevatedAccess -Enable + +# Turn off access to mapped drives from app running with elevated permissions with Admin Approval Mode enabled (default value) +# Выключить доступ к сетевым дискам при включенном режиме одобрения администратором при доступе из программ, запущенных с повышенными правами (значение по умолчанию) +# MappedDrivesAppElevatedAccess -Disable # Opt out of the Delivery Optimization-assisted updates downloading # Отказаться от загрузки обновлений с помощью оптимизации доставки -New-ItemProperty -Path Registry::HKEY_USERS\S-1-5-20\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Settings -Name DownloadMode -PropertyType DWord -Value 0 -Force +DeliveryOptimization -Disable + +# Opt-in to the Delivery Optimization-assisted updates downloading (default value) +# Включить загрузку обновлений с помощью оптимизации доставки (значение по умолчанию) +# DeliveryOptimization -Enable # Always wait for the network at computer startup and logon for workgroup networks # Всегда ждать сеть при запуске и входе в систему для рабочих групп -if ((Get-CimInstance -ClassName CIM_ComputerSystem).PartOfDomain -eq $true) -{ - if (-not (Test-Path -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon")) - { - New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -Force - } - New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name SyncForegroundPolicy -PropertyType DWord -Value 1 -Force -} +WaitNetworkStartup -Enable + +# Never wait for the network at computer startup and logon for workgroup networks (default value) +# Никогда не ждать сеть при запуске и входе в систему для рабочих групп (значение по умолчанию) +# WaitNetworkStartup -Disable # Do not let Windows decide which printer should be the default one (current user only) # Не разрешать Windows решать, какой принтер должен использоваться по умолчанию (только для текущего пользователя) -New-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" -Name LegacyDefaultPrinterMode -PropertyType DWord -Value 1 -Force - -# Disable the following Windows features -# Отключить следующие компоненты Windows -$WindowsOptionalFeatures = @( - # Legacy Components - # Компоненты прежних версий - "LegacyComponents", - - # Media Features - # Компоненты работы с мультимедиа - "MediaPlayback", - - # PowerShell 2.0 - "MicrosoftWindowsPowerShellV2", - "MicrosoftWindowsPowershellV2Root", - - # Microsoft XPS Document Writer - # Средство записи XPS-документов (Microsoft) - "Printing-XPSServices-Features", - - # Work Folders Client - # Клиент рабочих папок - "WorkFolders-Client" -) -Disable-WindowsOptionalFeature -Online -FeatureName $WindowsOptionalFeatures -NoRestart - -# Disable certain Feature On Demand v2 (FODv2) capabilities -# Отключить определенные компоненты "Функции по требованию" (FODv2) -Add-Type -AssemblyName PresentationCore, PresentationFramework - -#region Variables -# Initialize an array list to store the FODv2 items to remove -# Создать массив имен дополнительных компонентов для удаления -$Capabilities = New-Object -TypeName System.Collections.ArrayList($null) - -# The following FODv2 items will have their checkboxes checked, recommending the user to remove them -# Следующие дополнительные компоненты будут иметь чекбоксы отмеченными. Рекомендуются к удалению -$CheckedCapabilities = @( - # Steps Recorder - # Средство записи действий - "App.StepsRecorder*", - - # Microsoft Quick Assist - # Быстрая поддержка (Майкрософт) - "App.Support.QuickAssist*", - - # Windows Media Player - # Проигрыватель Windows Media - "Media.WindowsMediaPlayer*", - - # Integrated faxing and scanning application for Windows - # Факсы и сканирование Windows - "Print.Fax.Scan*" -) -# If device is not a laptop disable "Hello.Face*" too -# Если устройство не является ноутбуком, отключить также и "Hello.Face" -if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2) -{ - # Windows Hello - $CheckedCapabilities += "Hello.Face*" -} - -# The following FODv2 items will be shown, but their checkboxes would be clear -# Следующие дополнительные компоненты будут видны, но их чекбоксы не будут отмечены -$ExcludedCapabilities = @( - # The DirectX Database to configure and optimize apps when multiple Graphics Adapters are present - # База данных DirectX для настройки и оптимизации приложений при наличии нескольких графических адаптеров - "DirectX\.Configuration\.Database", - - # Language components - # Языковые компоненты - "Language\.", - - # Mail, contacts, and calendar sync component - # Компонент синхронизации почты, контактов и календаря - "OneCoreUAP\.OneSync" -) -#endregion Variables - -#region XAML Markup -# The section defines the design of the upcoming dialog box -# Раздел, определяющий форму диалогового окна -[xml]$XAML = ' - - - - - - - - - - - - - - - -