Browse Source

04.03.2020

## Updated
- Added Comment-Based Help;
- Fixed bug in a task to clear the $env:SystemRoot\SoftwareDistribution\Download folder;
- Minor changes.



## Обновлено
- Добавлена Справка на основе комментариев;
- Исправлена ошибка в задаче по очистке папки $env:SystemRoot\SoftwareDistribution\Download;
- Незначительные изменения.
pull/23/head 4.0.22
farag2 4 years ago
committed by GitHub
parent
commit
979b2de11e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 250
      Win 10.ps1

250
Win 10.ps1

@ -1,4 +1,38 @@
#Requires -RunAsAdministrator <#
.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. 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:\WINDOWS\system32> & '.\Win 10.ps1'
.NOTES
Version: v4.0.22
Date: 03.03.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 #Requires -Version 5
#region Preparation #region Preparation
@ -6,15 +40,15 @@ Clear-Host
# Get information about the current culture settings # Get information about the current culture settings
# Получить сведения о параметрах текущей культуры # Получить сведения о параметрах текущей культуры
IF ($PSUICulture -eq "ru-RU") if ($PSUICulture -eq "ru-RU")
{ {
$RU = $true $RU = $true
} }
# Detect the OS bitness # Detect the OS bitness
# Определить разрядность ОС # Определить разрядность ОС
IF (-not ([Environment]::Is64BitOperatingSystem)) if (-not ([Environment]::Is64BitOperatingSystem))
{ {
IF ($RU) if ($RU)
{ {
Write-Warning -Message "Скрипт поддерживает только Windows 10 x64" Write-Warning -Message "Скрипт поддерживает только Windows 10 x64"
} }
@ -26,9 +60,9 @@ IF (-not ([Environment]::Is64BitOperatingSystem))
} }
# Detect the PowerShell bitness # Detect the PowerShell bitness
# Определить разрядность PowerShell # Определить разрядность PowerShell
IF (-not ([IntPtr]::Size -eq 8)) if (-not ([IntPtr]::Size -eq 8))
{ {
IF ($RU) if ($RU)
{ {
Write-Warning -Message "Скрипт поддерживает только PowerShell x64" Write-Warning -Message "Скрипт поддерживает только PowerShell x64"
} }
@ -55,7 +89,7 @@ if ($PSCommandPath)
$reader.Dispose() $reader.Dispose()
if ($bytesRead -eq 3 -and $SequenceBOM[0] -ne 239 -and $SequenceBOM[1] -ne 187 -and $SequenceBOM[2] -ne 191) if ($bytesRead -eq 3 -and $SequenceBOM[0] -ne 239 -and $SequenceBOM[1] -ne 187 -and $SequenceBOM[2] -ne 191)
{ {
IF ($RU) if ($RU)
{ {
Write-Warning -Message "Файл не был сохранен в кодировке `"UTF-8 с BOM`"" Write-Warning -Message "Файл не был сохранен в кодировке `"UTF-8 с BOM`""
} }
@ -68,7 +102,7 @@ if ($PSCommandPath)
} }
# Set the encoding to UTF-8 without BOM for the PowerShell session # Set the encoding to UTF-8 without BOM for the PowerShell session
# Установить кодировку UTF-8 без BOM для текущей сессии PowerShell # Установить кодировку UTF-8 без BOM для текущей сессии PowerShell
IF ($RU) if ($RU)
{ {
ping.exe | Out-Null ping.exe | Out-Null
$OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
@ -125,7 +159,7 @@ else
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Windows Error Reporting" -Name Disabled -PropertyType DWord -Value 1 -Force New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Windows Error Reporting" -Name Disabled -PropertyType DWord -Value 1 -Force
# Change Windows Feedback frequency to "Never" # Change Windows Feedback frequency to "Never"
# Изменить частоту формирования отзывов на "Никогда" # Изменить частоту формирования отзывов на "Никогда"
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Siuf\Rules)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Siuf\Rules))
{ {
New-Item -Path HKCU:\Software\Microsoft\Siuf\Rules -Force New-Item -Path HKCU:\Software\Microsoft\Siuf\Rules -Force
} }
@ -190,7 +224,7 @@ New-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\Advertisi
# Do not use sign-in info to automatically finish setting up device after an update or restart # Do not use sign-in info to automatically finish setting up device after an update or restart
# Не использовать данные для входа для автоматического завершения настройки устройства после перезапуска или обновления # Не использовать данные для входа для автоматического завершения настройки устройства после перезапуска или обновления
$sid = (Get-CimInstance -ClassName Win32_UserAccount | Where-Object -FilterScript {$_.Name -eq "$env:USERNAME"}).SID $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")) 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-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\UserARSO\$sid" -Force
} }
@ -247,7 +281,7 @@ IF (-not $RU)
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name ShowTaskViewButton -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name ShowTaskViewButton -PropertyType DWord -Value 0 -Force
# Do not show People button on the taskbar # Do not show People button on the taskbar
# Не показывать панель "Люди" на панели задач # Не показывать панель "Люди" на панели задач
IF (-not (Test-Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People)) 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-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People -Force
} }
@ -263,28 +297,28 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name SnapAssist -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name SnapAssist -PropertyType DWord -Value 0 -Force
# Show more details in file transfer dialog # Show more details in file transfer dialog
# Развернуть диалог переноса файлов # Развернуть диалог переноса файлов
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager))
{ {
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager -Force 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 New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\OperationStatusManager -Name EnthusiastMode -PropertyType DWord -Value 1 -Force
# Turn on ribbon in File Explorer # Turn on ribbon in File Explorer
# Включить отображение ленты проводника в развернутом виде # Включить отображение ленты проводника в развернутом виде
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Ribbon)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Ribbon))
{ {
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Ribbon -Force 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 New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Ribbon -Name MinimizedStateTabletModeOff -PropertyType DWord -Value 0 -Force
# Turn on recycle bin files delete confirmation # Turn on recycle bin files delete confirmation
# Запрашивать подтверждение на удаление файлов в корзину # Запрашивать подтверждение на удаление файлов в корзину
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer))
{ {
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -Force New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -Force
} }
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name ConfirmFileDelete -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer -Name ConfirmFileDelete -PropertyType DWord -Value 1 -Force
# Hide 3D Objects folder from "This PC" and from Quick access # Hide 3D Objects folder from "This PC" and from Quick access
# Скрыть папку "Объемные объекты" из "Этот компьютер" и из панели быстрого доступа # Скрыть папку "Объемные объекты" из "Этот компьютер" и из панели быстрого доступа
IF (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag")) 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-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Force
} }
@ -327,7 +361,7 @@ $Signature = @{
} }
"@ "@
} }
IF (-not ("WinAPI.GetStr" -as [type])) if (-not ("WinAPI.GetStr" -as [type]))
{ {
Add-Type @Signature -Using System.Text Add-Type @Signature -Using System.Text
} }
@ -337,7 +371,7 @@ $apps | Where-Object -FilterScript {$_.Path -like "Microsoft.MicrosoftEdge*"} |
$apps | Where-Object -FilterScript {$_.Path -like "Microsoft.WindowsStore*"} | ForEach-Object -Process {$_.Verbs() | Where-Object -FilterScript {$_.Name -eq $unpin} | ForEach-Object -Process {$_.DoIt()}} $apps | Where-Object -FilterScript {$_.Path -like "Microsoft.WindowsStore*"} | ForEach-Object -Process {$_.Verbs() | Where-Object -FilterScript {$_.Name -eq $unpin} | ForEach-Object -Process {$_.DoIt()}}
# Set the "Control Panel" view on "Large icons" # Set the "Control Panel" view on "Large icons"
# Установить крупные значки в Панели управления # Установить крупные значки в Панели управления
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel))
{ {
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Force New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Force
} }
@ -345,7 +379,7 @@ New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Name StartupPage -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel -Name StartupPage -PropertyType DWord -Value 1 -Force
# Choose theme color for default Windows mode # Choose theme color for default Windows mode
# Выбрать режим Windows по умолчанию # Выбрать режим Windows по умолчанию
IF ($RU) if ($RU)
{ {
Write-Host "`nВыберите режим Windows по умолчанию, введя букву: " Write-Host "`nВыберите режим Windows по умолчанию, введя букву: "
Write-Host "[L]ight " -ForegroundColor Yellow -NoNewline Write-Host "[L]ight " -ForegroundColor Yellow -NoNewline
@ -394,7 +428,7 @@ do
} }
Default Default
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nНеправильная буква." -ForegroundColor Yellow Write-Host "`nНеправильная буква." -ForegroundColor Yellow
Write-Host "Введите правильную букву: " -NoNewline Write-Host "Введите правильную букву: " -NoNewline
@ -421,7 +455,7 @@ do
until ($theme -eq "L" -or $theme -eq "D") until ($theme -eq "L" -or $theme -eq "D")
# Choose theme color for default app mode # Choose theme color for default app mode
# Выбрать режим приложения по умолчанию # Выбрать режим приложения по умолчанию
IF ($RU) if ($RU)
{ {
Write-Host "`nВыберите режим приложения по умолчанию, введя букву: " Write-Host "`nВыберите режим приложения по умолчанию, введя букву: "
Write-Host "[L]ight " -ForegroundColor Yellow -NoNewline Write-Host "[L]ight " -ForegroundColor Yellow -NoNewline
@ -464,7 +498,7 @@ do
} }
Default Default
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nНеправильная буква." -ForegroundColor Yellow Write-Host "`nНеправильная буква." -ForegroundColor Yellow
Write-Host "Введите правильную букву: " -NoNewline Write-Host "Введите правильную букву: " -NoNewline
@ -491,7 +525,7 @@ do
until ($theme -eq "L" -or $theme -eq "D") until ($theme -eq "L" -or $theme -eq "D")
# Do not show "New App Installed" notification # Do not show "New App Installed" notification
# Не показывать уведомление "Установлено новое приложение" # Не показывать уведомление "Установлено новое приложение"
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force
} }
@ -505,7 +539,7 @@ New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name JPEGImportQuality -Pr
# Show Task manager details # Show Task manager details
# Раскрыть окно Диспетчера задач # Раскрыть окно Диспетчера задач
$taskmgr = Get-Process -Name Taskmgr -ErrorAction Ignore $taskmgr = Get-Process -Name Taskmgr -ErrorAction Ignore
IF ($taskmgr) if ($taskmgr)
{ {
$taskmgr.CloseMainWindow() $taskmgr.CloseMainWindow()
} }
@ -552,13 +586,13 @@ Stop-Process -Name explorer -Force
Remove-ItemProperty -Path HKCU:\Environment -Name OneDrive -Force -ErrorAction Ignore Remove-ItemProperty -Path HKCU:\Environment -Name OneDrive -Force -ErrorAction Ignore
Remove-Item -Path "$env:ProgramData\Microsoft OneDrive" -Recurse -Force -ErrorAction Ignore Remove-Item -Path "$env:ProgramData\Microsoft OneDrive" -Recurse -Force -ErrorAction Ignore
Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false Unregister-ScheduledTask -TaskName *OneDrive* -Confirm:$false
IF ((Get-ChildItem -Path $env:USERPROFILE\OneDrive -ErrorAction Ignore | Measure-Object).Count -eq 0) if ((Get-ChildItem -Path $env:USERPROFILE\OneDrive -ErrorAction Ignore | Measure-Object).Count -eq 0)
{ {
Remove-Item -Path $env:USERPROFILE\OneDrive -Recurse -Force -ErrorAction Ignore Remove-Item -Path $env:USERPROFILE\OneDrive -Recurse -Force -ErrorAction Ignore
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Error -Message "Папка $env:USERPROFILE\OneDrive не пуста. Удалите ее вручную" -ErrorAction SilentlyContinue Write-Error -Message "Папка $env:USERPROFILE\OneDrive не пуста. Удалите ее вручную" -ErrorAction SilentlyContinue
} }
@ -598,7 +632,7 @@ New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Power -Name Hibern
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location -Name Value -PropertyType String -Value Deny -Force New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location -Name Value -PropertyType String -Value Deny -Force
# Change $env:TEMP environment variable path to $env:SystemDrive\Temp # Change $env:TEMP environment variable path to $env:SystemDrive\Temp
# Изменить путь переменной среды для временных файлов на $env:SystemDrive\Temp # Изменить путь переменной среды для временных файлов на $env:SystemDrive\Temp
IF (-not (Test-Path -Path $env:SystemDrive\Temp)) if (-not (Test-Path -Path $env:SystemDrive\Temp))
{ {
New-Item -Path $env:SystemDrive\Temp -ItemType Directory -Force New-Item -Path $env:SystemDrive\Temp -ItemType Directory -Force
} }
@ -627,7 +661,7 @@ New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control -Name SvcHostSplit
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\CrashControl -Name DisplayParameters -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\CrashControl -Name DisplayParameters -PropertyType DWord -Value 1 -Force
# Do not preserve zone information # Do not preserve zone information
# Не хранить сведения о зоне происхождения вложенных файлов # Не хранить сведения о зоне происхождения вложенных файлов
IF (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments)) if (-not (Test-Path -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments))
{ {
New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments -Force New-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments -Force
} }
@ -642,14 +676,14 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\
# Turn off Delivery Optimization # Turn off Delivery Optimization
# Отключить оптимизацию доставки # Отключить оптимизацию доставки
Get-Service -Name DoSvc | Stop-Service -Force Get-Service -Name DoSvc | Stop-Service -Force
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization -Force
} }
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization -Name DODownloadMode -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization -Name DODownloadMode -PropertyType DWord -Value 0 -Force
# Always wait for the network at computer startup and logon # Always wait for the network at computer startup and logon
# Всегда ждать сеть при запуске и входе в систему # Всегда ждать сеть при запуске и входе в систему
IF (-not (Test-Path -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon")) 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-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\Winlogon" -Force
} }
@ -705,9 +739,6 @@ $OFS = " "
# Remove Shadow copies (restoration points) # Remove Shadow copies (restoration points)
# Удалить теневые копии (точки восстановения) # Удалить теневые копии (точки восстановения)
Get-CimInstance -ClassName Win32_ShadowCopy | Remove-CimInstance Get-CimInstance -ClassName Win32_ShadowCopy | Remove-CimInstance
# Turn off Windows Script Host
# Отключить Windows Script Host
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Name Enabled -PropertyType DWord -Value 0 -Force
# Turn off background apps, except the followings... # Turn off background apps, except the followings...
# Запретить приложениям работать в фоновом режиме, кроме следующих... # Запретить приложениям работать в фоновом режиме, кроме следующих...
Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications | Where-Object -FilterScript {$_.PSChildName -cnotmatch $ExcludedApps} | ForEach-Object -Process { Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications | Where-Object -FilterScript {$_.PSChildName -cnotmatch $ExcludedApps} | ForEach-Object -Process {
@ -736,15 +767,18 @@ Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\BackgroundAc
New-ItemProperty -Path $_.PsPath -Name DisabledByUser -PropertyType DWord -Value 1 -Force New-ItemProperty -Path $_.PsPath -Name DisabledByUser -PropertyType DWord -Value 1 -Force
} }
$OFS = " " $OFS = " "
# Open "Background apps" page
# Открыть раздел "Фоновые приложения"
Start-Process -FilePath ms-settings:privacy-backgroundapps
# Set power management scheme for desktop and laptop # Set power management scheme for desktop and laptop
# Установить схему управления питания для стационарного ПК и ноутбука # Установить схему управления питания для стационарного ПК и ноутбука
IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 1) if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 1)
{ {
# High performance for desktop # High performance for desktop
# Высокая производительность для стационарного ПК # Высокая производительность для стационарного ПК
powercfg /setactive SCHEME_MIN powercfg /setactive SCHEME_MIN
} }
IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 2) if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 2)
{ {
# Balanced for laptop # Balanced for laptop
# Сбалансированная для ноутбука # Сбалансированная для ноутбука
@ -756,10 +790,8 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\.NETFramework -Name OnlyUseLates
New-ItemProperty -Path HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework -Name OnlyUseLatestCLR -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework -Name OnlyUseLatestCLR -PropertyType DWord -Value 1 -Force
# Do not allow the computer to turn off the network adapters to save power # Do not allow the computer to turn off the network adapters to save power
# Запретить отключение сетевых адаптеров для экономии энергии # Запретить отключение сетевых адаптеров для экономии энергии
IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 1) if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 1)
{ {
# Desktop
# Стационарный ПК
$adapters = Get-NetAdapter -Physical | Get-NetAdapterPowerManagement | Where-Object -FilterScript {$_.AllowComputerToTurnOffDevice -ne "Unsupported"} $adapters = Get-NetAdapter -Physical | Get-NetAdapterPowerManagement | Where-Object -FilterScript {$_.AllowComputerToTurnOffDevice -ne "Unsupported"}
foreach ($adapter in $adapters) foreach ($adapter in $adapters)
{ {
@ -772,9 +804,9 @@ IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -eq 1)
Set-WinDefaultInputMethodOverride "0409:00000409" Set-WinDefaultInputMethodOverride "0409:00000409"
# Turn on Windows Sandbox # Turn on Windows Sandbox
# Включить Windows Sandbox # Включить Windows Sandbox
IF (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Professional" -or $_.Edition -eq "Enterprise"}) if (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Professional" -or $_.Edition -eq "Enterprise"})
{ {
IF ((Get-CimInstance -ClassName CIM_Processor).VirtualizationFirmwareEnabled -eq $true) if ((Get-CimInstance -ClassName CIM_Processor).VirtualizationFirmwareEnabled -eq $true)
{ {
Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart
} }
@ -782,7 +814,7 @@ IF (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Pro
{ {
try try
{ {
IF ((Get-CimInstance ClassName CIM_ComputerSystem).HypervisorPresent -eq $true) if ((Get-CimInstance ClassName CIM_ComputerSystem).HypervisorPresent -eq $true)
{ {
Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart
} }
@ -822,7 +854,7 @@ Function KnownFolderPath
public extern static int SHSetKnownFolderPath(ref Guid folderId, uint flags, IntPtr token, [MarshalAs(UnmanagedType.LPWStr)] string path); public extern static int SHSetKnownFolderPath(ref Guid folderId, uint flags, IntPtr token, [MarshalAs(UnmanagedType.LPWStr)] string path);
"@ "@
} }
IF (-not ("WinAPI.KnownFolders" -as [type])) if (-not ("WinAPI.KnownFolders" -as [type]))
{ {
Add-Type @Signature Add-Type @Signature
} }
@ -866,7 +898,7 @@ $DesktopINI = @{
"IconFile=%SystemRoot%\system32\shell32.dll","IconIndex=-238" "IconFile=%SystemRoot%\system32\shell32.dll","IconIndex=-238"
} }
$drives = (Get-Disk | Where-Object -FilterScript {$_.BusType -ne "USB"} | Get-Partition | Get-Volume).DriveLetter $drives = (Get-Disk | Where-Object -FilterScript {$_.BusType -ne "USB"} | Get-Partition | Get-Volume).DriveLetter
IF ($RU) if ($RU)
{ {
$OFS = ", " $OFS = ", "
Write-Host "`nВаши диски: " -NoNewline Write-Host "`nВаши диски: " -NoNewline
@ -882,7 +914,7 @@ else
} }
# Desktop # Desktop
# Рабочий стол # Рабочий стол
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Рабочий стол`"" -ForegroundColor Yellow Write-Host "`"Рабочий стол`"" -ForegroundColor Yellow
@ -900,14 +932,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$DesktopFolder = "${drive}:\Desktop" $DesktopFolder = "${drive}:\Desktop"
$DesktopReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Desktop $DesktopReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Desktop
IF ($DesktopReg -ne $DesktopFolder) if ($DesktopReg -ne $DesktopFolder)
{ {
IF (-not (Test-Path -Path $DesktopFolder)) if (-not (Test-Path -Path $DesktopFolder))
{ {
New-Item -Path $DesktopFolder -ItemType Directory -Force New-Item -Path $DesktopFolder -ItemType Directory -Force
} }
@ -927,7 +959,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -944,7 +976,7 @@ do
until ($drives -eq $drive) until ($drives -eq $drive)
# Documents # Documents
# Документы # Документы
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Документы`"" -ForegroundColor Yellow Write-Host "`"Документы`"" -ForegroundColor Yellow
@ -962,14 +994,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$DocumentsFolder = "${drive}:\Documents" $DocumentsFolder = "${drive}:\Documents"
$DocumentsReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Personal $DocumentsReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name Personal
IF ($DocumentsReg -ne $DocumentsFolder) if ($DocumentsReg -ne $DocumentsFolder)
{ {
IF (-not (Test-Path -Path $DocumentsFolder)) if (-not (Test-Path -Path $DocumentsFolder))
{ {
New-Item -Path $DocumentsFolder -ItemType Directory -Force New-Item -Path $DocumentsFolder -ItemType Directory -Force
} }
@ -986,7 +1018,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -1003,7 +1035,7 @@ do
until ($drives -eq $drive) until ($drives -eq $drive)
# Downloads # Downloads
# Загрузки # Загрузки
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Загрузки`"" -ForegroundColor Yellow Write-Host "`"Загрузки`"" -ForegroundColor Yellow
@ -1021,14 +1053,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$DownloadsFolder = "${drive}:\Downloads" $DownloadsFolder = "${drive}:\Downloads"
$DownloadsReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" $DownloadsReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
IF ($DownloadsReg -ne $DownloadsFolder) if ($DownloadsReg -ne $DownloadsFolder)
{ {
IF (-not (Test-Path -Path $DownloadsFolder)) if (-not (Test-Path -Path $DownloadsFolder))
{ {
New-Item -Path $DownloadsFolder -ItemType Directory -Force New-Item -Path $DownloadsFolder -ItemType Directory -Force
} }
@ -1049,7 +1081,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -1066,7 +1098,7 @@ do
until ($drives -eq $drive) until ($drives -eq $drive)
# Music # Music
# Музыка # Музыка
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Музыка`"" -ForegroundColor Yellow Write-Host "`"Музыка`"" -ForegroundColor Yellow
@ -1084,14 +1116,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$MusicFolder = "${drive}:\Music" $MusicFolder = "${drive}:\Music"
$MusicReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Music" $MusicReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Music"
IF ($MusicReg -ne $MusicFolder) if ($MusicReg -ne $MusicFolder)
{ {
IF (-not (Test-Path -Path $MusicFolder)) if (-not (Test-Path -Path $MusicFolder))
{ {
New-Item -Path $MusicFolder -ItemType Directory -Force New-Item -Path $MusicFolder -ItemType Directory -Force
} }
@ -1108,7 +1140,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -1125,7 +1157,7 @@ do
until ($drives -eq $drive) until ($drives -eq $drive)
# Pictures # Pictures
# Изображения # Изображения
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Изображения`"" -ForegroundColor Yellow Write-Host "`"Изображения`"" -ForegroundColor Yellow
@ -1143,14 +1175,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$PicturesFolder = "${drive}:\Pictures" $PicturesFolder = "${drive}:\Pictures"
$PicturesReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Pictures" $PicturesReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Pictures"
IF ($PicturesReg -ne $PicturesFolder) if ($PicturesReg -ne $PicturesFolder)
{ {
IF (-not (Test-Path -Path $PicturesFolder)) if (-not (Test-Path -Path $PicturesFolder))
{ {
New-Item -Path $PicturesFolder -ItemType Directory -Force New-Item -Path $PicturesFolder -ItemType Directory -Force
} }
@ -1167,7 +1199,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -1184,7 +1216,7 @@ do
until ($drives -eq $drive) until ($drives -eq $drive)
# Videos # Videos
# Видео # Видео
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline Write-Host "`nВведите букву диска, в корне которого будет создана папка для " -NoNewline
Write-Host "`"Видео`"" -ForegroundColor Yellow Write-Host "`"Видео`"" -ForegroundColor Yellow
@ -1202,14 +1234,14 @@ else
do do
{ {
$drive = Read-Host -Prompt " " $drive = Read-Host -Prompt " "
IF ($drives -eq $drive) if ($drives -eq $drive)
{ {
$drive = $(${drive}.ToUpper()) $drive = $(${drive}.ToUpper())
$VideosFolder = "${drive}:\Videos" $VideosFolder = "${drive}:\Videos"
$VideosReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Video" $VideosReg = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Video"
IF ($VideosReg -ne $VideosFolder) if ($VideosReg -ne $VideosFolder)
{ {
IF (-not (Test-Path -Path $VideosFolder)) if (-not (Test-Path -Path $VideosFolder))
{ {
New-Item -Path $VideosFolder -ItemType Directory -Force New-Item -Path $VideosFolder -ItemType Directory -Force
} }
@ -1226,7 +1258,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline Write-Host "`nДиск $(${drive}.ToUpper()): не существует. " -ForegroundColor Yellow -NoNewline
Write-Host "Введите букву диска." Write-Host "Введите букву диска."
@ -1244,16 +1276,16 @@ until ($drives -eq $drive)
# Turn on automatic recommended troubleshooting and tell when problems get fixed # Turn on automatic recommended troubleshooting and tell when problems get fixed
# Автоматически запускать средства устранения неполадок, а затем сообщать об устранении проблем # Автоматически запускать средства устранения неполадок, а затем сообщать об устранении проблем
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection -Name AllowTelemetry -PropertyType DWord -Value 3 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection -Name AllowTelemetry -PropertyType DWord -Value 3 -Force
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation))
{ {
New-Item -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation -Force New-Item -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation -Force
} }
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation -Name UserPreference -PropertyType DWord -Value 3 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation -Name UserPreference -PropertyType DWord -Value 3 -Force
# Set "High performance" in graphics performance preference for apps # Set "High performance" in graphics performance preference for apps
# Установить параметры производительности графики для отдельных приложений на "Высокая производительность" # Установить параметры производительности графики для отдельных приложений на "Высокая производительность"
IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (Get-CimInstance -ClassName Win32_VideoController | Where-Object -FilterScript {$_.AdapterDACType -ne "Internal" -and $null -ne $_.AdapterDACType})) if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (Get-CimInstance -ClassName Win32_VideoController | Where-Object -FilterScript {$_.AdapterDACType -ne "Internal" -and $null -ne $_.AdapterDACType}))
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите полные пути до .exe файлов, " -NoNewline Write-Host "`nВведите полные пути до .exe файлов, " -NoNewline
Write-Host "для которого следует установить" Write-Host "для которого следует установить"
@ -1268,7 +1300,7 @@ IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (G
Write-Host "The paths must be separated by commas and taken in quotes." -ForegroundColor Yellow Write-Host "The paths must be separated by commas and taken in quotes." -ForegroundColor Yellow
Write-Host "`nPress Enter to skip" -NoNewline Write-Host "`nPress Enter to skip" -NoNewline
} }
IF (Test-Path -Path "${env:ProgramFiles(x86)}\Steam") if (Test-Path -Path "${env:ProgramFiles(x86)}\Steam")
{ {
Start-Process -FilePath "${env:ProgramFiles(x86)}\Steam\steamapps\common" Start-Process -FilePath "${env:ProgramFiles(x86)}\Steam\steamapps\common"
} }
@ -1289,7 +1321,7 @@ IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (G
do do
{ {
$apps = Read-Host -Prompt " " $apps = Read-Host -Prompt " "
IF ($apps -match ".exe" -and $apps -match "`"") if ($apps -match ".exe" -and $apps -match "`"")
{ {
GpuPreference $apps GpuPreference $apps
} }
@ -1299,7 +1331,7 @@ IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (G
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nПути не взяты в кавычки или не содержат ссылки на .exe файлы." -ForegroundColor Yellow Write-Host "`nПути не взяты в кавычки или не содержат ссылки на .exe файлы." -ForegroundColor Yellow
Write-Host "Введите полные пути до .exe файлов, взяв в кавычки и разделив запятыми." Write-Host "Введите полные пути до .exe файлов, взяв в кавычки и разделив запятыми."
@ -1330,7 +1362,7 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ReserveMa
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager" -Name EnablePeriodicBackup -PropertyType DWord -Value 1 -Force New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager" -Name EnablePeriodicBackup -PropertyType DWord -Value 1 -Force
# Turn off F1 Help key # Turn off F1 Help key
# Отключить справку по нажатию F1 # Отключить справку по нажатию F1
IF (-not (Test-Path -Path "HKCU:\Software\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64")) if (-not (Test-Path -Path "HKCU:\Software\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64"))
{ {
New-Item -Path "HKCU:\Software\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64" -Force New-Item -Path "HKCU:\Software\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}\1.0\0\win64" -Force
} }
@ -1353,7 +1385,7 @@ New-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVers
#region Start menu #region Start menu
# Do not show recently added apps on Start menu # Do not show recently added apps on Start menu
# Не показывать недавно добавленные приложения в меню "Пуск" # Не показывать недавно добавленные приложения в меню "Пуск"
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force
} }
@ -1382,7 +1414,7 @@ $OpenFileDialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog
# Начальная папка "Загрузки" # Начальная папка "Загрузки"
$DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
$OpenFileDialog.InitialDirectory = $DownloadsFolder $OpenFileDialog.InitialDirectory = $DownloadsFolder
IF ($RU) if ($RU)
{ {
$OpenFileDialog.Filter = "Файлы реестра (*.reg)|*.reg|Все файлы (*.*)|*.*" $OpenFileDialog.Filter = "Файлы реестра (*.reg)|*.reg|Все файлы (*.*)|*.*"
} }
@ -1402,14 +1434,14 @@ $tmp.add_Shown(
$tmp.Close() $tmp.Close()
}) })
$tmp.ShowDialog() $tmp.ShowDialog()
IF ($OpenFileDialog.FileName) if ($OpenFileDialog.FileName)
{ {
Remove-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount -Recurse -Force Remove-Item -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount -Recurse -Force
regedit.exe /s $OpenFileDialog.FileName regedit.exe /s $OpenFileDialog.FileName
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nЧтобы открепить все ярлыки от начального экрана, введите букву: " -NoNewline Write-Host "`nЧтобы открепить все ярлыки от начального экрана, введите букву: " -NoNewline
Write-Host "[Y]es" -ForegroundColor Yellow -NoNewline Write-Host "[Y]es" -ForegroundColor Yellow -NoNewline
@ -1486,14 +1518,14 @@ Stop-Process -Name StartMenuExperienceHost -Force
#region Edge #region Edge
# Do not allow Microsoft Edge to start and load the Start and New Tab page at Windows startup and each time Microsoft Edge is closed # Do not allow Microsoft Edge to start and load the Start and New Tab page at Windows startup and each time Microsoft Edge is closed
# Не разрешать Edge запускать и загружать страницу при загрузке Windows и каждый раз при закрытии Edge # Не разрешать Edge запускать и загружать страницу при загрузке Windows и каждый раз при закрытии Edge
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader -Force
} }
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader -Name AllowTabPreloading -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader -Name AllowTabPreloading -PropertyType DWord -Value 0 -Force
# Do not allow Microsoft Edge to pre-launch at Windows startup, when the system is idle, and each time Microsoft Edge is closed # Do not allow Microsoft Edge to pre-launch at Windows startup, when the system is idle, and each time Microsoft Edge is closed
# Не разрешать предварительный запуск Edge при загрузке Windows, когда система простаивает, и каждый раз при закрытии Edge # Не разрешать предварительный запуск Edge при загрузке Windows, когда система простаивает, и каждый раз при закрытии Edge
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Main)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Main))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Main -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Main -Force
} }
@ -1588,8 +1620,8 @@ $OFS = " "
#endregion UWP apps #endregion UWP apps
#region Gaming #region Gaming
# Turn off Xbox Game Bar # Turn off Game bar
# Отключить Xbox Game Bar # Отключить Меню игры
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR -Name AppCaptureEnabled -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR -Name AppCaptureEnabled -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path HKCU:\System\GameConfigStore -Name GameDVR_Enabled -PropertyType DWord -Value 0 -Force New-ItemProperty -Path HKCU:\System\GameConfigStore -Name GameDVR_Enabled -PropertyType DWord -Value 0 -Force
# Turn off Xbox Game Bar tips # Turn off Xbox Game Bar tips
@ -1647,7 +1679,7 @@ Register-ScheduledTask @params -Force
# Задача выполняется по четвергам каждую 4 неделю # Задача выполняется по четвергам каждую 4 неделю
$action = New-ScheduledTaskAction -Execute powershell.exe -Argument @" $action = New-ScheduledTaskAction -Execute powershell.exe -Argument @"
`$getservice = Get-Service -Name wuauserv `$getservice = Get-Service -Name wuauserv
`$getservice.WaitForStatus("Stopped", "01:00:00") `$getservice.WaitForStatus('Stopped', '01:00:00')
Get-ChildItem -Path `$env:SystemRoot\SoftwareDistribution\Download -Recurse -Force | Remove-Item -Recurse -Force Get-ChildItem -Path `$env:SystemRoot\SoftwareDistribution\Download -Recurse -Force | Remove-Item -Recurse -Force
"@ "@
$trigger = New-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Thursday -At 9am $trigger = New-JobTrigger -Weekly -WeeksInterval 4 -DaysOfWeek Thursday -At 9am
@ -1684,7 +1716,7 @@ Register-ScheduledTask @params -Force
#region Windows Defender & Security #region Windows Defender & Security
# Add exclusion folder from Windows Defender Antivirus scanning # Add exclusion folder from Windows Defender Antivirus scanning
# Добавить папку в список исключений сканирования Защитника Windows # Добавить папку в список исключений сканирования Защитника Windows
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите полные пути до файлов или папок, которые следует " Write-Host "`nВведите полные пути до файлов или папок, которые следует "
Write-Host "исключить из списка сканирования Windows Defender." Write-Host "исключить из списка сканирования Windows Defender."
@ -1712,7 +1744,7 @@ function ExclusionPath
do do
{ {
$paths = Read-Host -Prompt " " $paths = Read-Host -Prompt " "
IF ($paths -match "`"") if ($paths -match "`"")
{ {
ExclusionPath $paths ExclusionPath $paths
} }
@ -1722,7 +1754,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow
Write-Host "Введите пути, взяв в кавычки и разделив запятыми." Write-Host "Введите пути, взяв в кавычки и разделив запятыми."
@ -1739,7 +1771,7 @@ do
until ($paths -match "`"") until ($paths -match "`"")
# Turn on Controlled folder access and add protected folders # Turn on Controlled folder access and add protected folders
# Включить контролируемый доступ к папкам и добавить защищенные папки # Включить контролируемый доступ к папкам и добавить защищенные папки
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите путь до папки, чтобы добавить в список защищенных папок." Write-Host "`nВведите путь до папки, чтобы добавить в список защищенных папок."
Write-Host "Пути должны быть разделены запятыми и взяты в кавычки." -ForegroundColor Yellow Write-Host "Пути должны быть разделены запятыми и взяты в кавычки." -ForegroundColor Yellow
@ -1766,7 +1798,7 @@ function ControlledFolderAccess
do do
{ {
$paths = Read-Host -Prompt " " $paths = Read-Host -Prompt " "
IF ($paths -match "`"") if ($paths -match "`"")
{ {
ControlledFolderAccess $paths ControlledFolderAccess $paths
} }
@ -1776,7 +1808,7 @@ do
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow
Write-Host "Введите пути, взяв в кавычки и разделив запятыми." Write-Host "Введите пути, взяв в кавычки и разделив запятыми."
@ -1793,9 +1825,9 @@ do
until ($paths -match "`"") until ($paths -match "`"")
# Allow an app through Controlled folder access # Allow an app through Controlled folder access
# Разрешить работу приложения через контролируемый доступ к папкам # Разрешить работу приложения через контролируемый доступ к папкам
IF ((Get-MpPreference).EnableControlledFolderAccess -eq 1) if ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nВведите путь до приложения, чтобы добавить в список разрешенных приложений." Write-Host "`nВведите путь до приложения, чтобы добавить в список разрешенных приложений."
Write-Host "Пути должны быть разделены запятыми и взяты в кавычки." -ForegroundColor Yellow Write-Host "Пути должны быть разделены запятыми и взяты в кавычки." -ForegroundColor Yellow
@ -1821,7 +1853,7 @@ IF ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
do do
{ {
$paths = Read-Host -Prompt " " $paths = Read-Host -Prompt " "
IF ($paths -match "`"") if ($paths -match "`"")
{ {
ControlledFolderAllowedApplications $paths ControlledFolderAllowedApplications $paths
} }
@ -1831,7 +1863,7 @@ IF ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
} }
else else
{ {
IF ($RU) if ($RU)
{ {
Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow Write-Host "`nПути не взяты в кавычки." -ForegroundColor Yellow
Write-Host "Введите пути, взяв в кавычки и разделив запятыми." Write-Host "Введите пути, взяв в кавычки и разделив запятыми."
@ -1864,7 +1896,7 @@ New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State"
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State" -Name AppAndBrowser_EdgeSmartScreenOff -PropertyType DWord -Value 0 -Force New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State" -Name AppAndBrowser_EdgeSmartScreenOff -PropertyType DWord -Value 0 -Force
# Turn on logging for all Windows PowerShell modules # Turn on logging for all Windows PowerShell modules
# Включить ведение журнала для всех модулей Windows PowerShell # Включить ведение журнала для всех модулей Windows PowerShell
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Force
} }
@ -1872,14 +1904,14 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Modu
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Name EnableModuleLogging -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Name EnableModuleLogging -PropertyType DWord -Value 1 -Force
# Turn on logging of all PowerShell script input to the Microsoft-Windows-PowerShell/Operational event log # Turn on logging of all PowerShell script input to the Microsoft-Windows-PowerShell/Operational event log
# Включить регистрацию всех вводимых сценариев PowerShell в журнале событий Microsoft-Windows-PowerShell/Operational # Включить регистрацию всех вводимых сценариев PowerShell в журнале событий Microsoft-Windows-PowerShell/Operational
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Force
} }
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Name EnableScriptBlockLogging -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Name EnableScriptBlockLogging -PropertyType DWord -Value 1 -Force
# Turn on events auditing generated when a process is created or starts # Turn on events auditing generated when a process is created or starts
# Включить аудит событий, возникающих при создании или запуске процесса # Включить аудит событий, возникающих при создании или запуске процесса
IF ($RU) if ($RU)
{ {
auditpol /set /subcategory:"Создание процесса" /success:enable /failure:enable auditpol /set /subcategory:"Создание процесса" /success:enable /failure:enable
} }
@ -1896,7 +1928,7 @@ New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
# Turn off Microsoft Defender SmartScreen for Microsoft Edge # Turn off Microsoft Defender SmartScreen for Microsoft Edge
# Отключить Microsoft Defender SmartScreen в Microsoft Edge # Отключить Microsoft Defender SmartScreen в Microsoft Edge
$edge = (Get-AppxPackage -Name "Microsoft.MicrosoftEdge").PackageFamilyName $edge = (Get-AppxPackage -Name "Microsoft.MicrosoftEdge").PackageFamilyName
IF (-not (Test-Path -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$edge\MicrosoftEdge\PhishingFilter")) if (-not (Test-Path -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$edge\MicrosoftEdge\PhishingFilter"))
{ {
New-Item -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$edge\MicrosoftEdge\PhishingFilter" -Force New-Item -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\$edge\MicrosoftEdge\PhishingFilter" -Force
} }
@ -1907,7 +1939,7 @@ New-ItemProperty -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft
#region Context menu #region Context menu
# Add "Extract" to MSI file type context menu # Add "Extract" to MSI file type context menu
# Добавить пункт "Extract" для MSI в контекстное меню # Добавить пункт "Extract" для MSI в контекстное меню
IF (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command)) if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command))
{ {
New-Item -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command -Force New-Item -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command -Force
} }
@ -1923,7 +1955,7 @@ New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\exefile\shell\runasuser -Name
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\exefile\shell\runasuser\command -Name DelegateExecute -PropertyType String -Value "{ea72d00e-4960-42fa-ba92-7792a7944c1d}" -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\exefile\shell\runasuser\command -Name DelegateExecute -PropertyType String -Value "{ea72d00e-4960-42fa-ba92-7792a7944c1d}" -Force
# Add "Install" to .cab archive type context menu # Add "Install" to .cab archive type context menu
# Добавить пункт "Установить" для .cab архивов в контекстное меню # Добавить пункт "Установить" для .cab архивов в контекстное меню
IF (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command)) if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command))
{ {
New-Item -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command -Force New-Item -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Command -Force
} }
@ -1933,14 +1965,14 @@ New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs -Name M
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs -Name HasLUAShield -PropertyType String -Value "" -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs -Name HasLUAShield -PropertyType String -Value "" -Force
# Remove "Cast to Device" from context menu # Remove "Cast to Device" from context menu
# Удалить пункт "Передать на устройство" из контекстного меню # Удалить пункт "Передать на устройство" из контекстного меню
IF (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked")) if (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked"))
{ {
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Force New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Force
} }
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{7AD84985-87B4-4a16-BE58-8B72A5B390F7}" -PropertyType String -Value "Play to menu" -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{7AD84985-87B4-4a16-BE58-8B72A5B390F7}" -PropertyType String -Value "Play to menu" -Force
# Remove "Share" from context menu # Remove "Share" from context menu
# Удалить пункт "Отправить" (поделиться) из контекстного меню # Удалить пункт "Отправить" (поделиться) из контекстного меню
IF (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked")) if (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked"))
{ {
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Force New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Force
} }
@ -1957,7 +1989,7 @@ foreach ($ext in $exts)
New-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\Library Location" -Name "(default)" -PropertyType String -Value "-{3dad6c5d-2167-4cae-9914-f99e41c12cfa}" -Force New-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\Library Location" -Name "(default)" -PropertyType String -Value "-{3dad6c5d-2167-4cae-9914-f99e41c12cfa}" -Force
# Remove "Turn on BitLocker" from context menu # Remove "Turn on BitLocker" from context menu
# Удалить пункт "Включить BitLocker" из контекстного меню # Удалить пункт "Включить BitLocker" из контекстного меню
IF (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Professional" -or $_.Edition -eq "Enterprise"}) if (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Professional" -or $_.Edition -eq "Enterprise"})
{ {
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Drive\shell\encrypt-bde -Name ProgrammaticAccessOnly -PropertyType String -Value "" -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Drive\shell\encrypt-bde -Name ProgrammaticAccessOnly -PropertyType String -Value "" -Force
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Drive\shell\encrypt-bde-elev -Name ProgrammaticAccessOnly -PropertyType String -Value "" -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Drive\shell\encrypt-bde-elev -Name ProgrammaticAccessOnly -PropertyType String -Value "" -Force
@ -1996,7 +2028,7 @@ New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer -Name MultipleInvokePromptMinimum -PropertyType DWord -Value 300 -Force New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer -Name MultipleInvokePromptMinimum -PropertyType DWord -Value 300 -Force
# Turn off "Look for an app in the Microsoft Store" in "Open with" dialog # Turn off "Look for an app in the Microsoft Store" in "Open with" dialog
# Отключить "Поиск приложения в Microsoft Store" в диалоге "Открыть с помощью" # Отключить "Поиск приложения в Microsoft Store" в диалоге "Открыть с помощью"
IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer)) if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer))
{ {
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force
} }
@ -2034,7 +2066,7 @@ $UpdateEnvExplorerAPI = @{
} }
"@ "@
} }
IF (-not ("WinAPI.UpdateEnvExplorer" -as [type])) if (-not ("WinAPI.UpdateEnvExplorer" -as [type]))
{ {
Add-Type @UpdateEnvExplorerAPI Add-Type @UpdateEnvExplorerAPI
} }

Loading…
Cancel
Save