@ -1,9 +1,9 @@
<#
<#
. SYNOPSIS
" Windows 10 Setup Script " is a set of tweaks for OS fine-tuning and automating the routine tasks
Version : v4 . 4 . 5
Date : 02 . 07 . 2020
Version : v4 . 4 . 6
Date : 03 . 08 . 2020
Copyright ( c ) 2020 farag & oZ-Zo
Thanks to all http : / / forum . ru-board . com members involved
@ -1292,13 +1292,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Рабочий стол `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Desktop folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1338,13 +1338,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Документы `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Documents folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1384,13 +1384,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Загрузки `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Downloads folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1430,13 +1430,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Музыка `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Music folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1477,13 +1477,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Изображения `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Pictures folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1523,13 +1523,13 @@ $Title = ""
if ( $RU )
{
$Message = " Чтобы изменить местоположение папки `" Видео `" , введите необходимую букву "
Write-Warning "`n Файлы не будут перенесены "
Write-Warning -Message "`n Файлы не будут перенесены "
$Options = " &Изменить " , " &Пропустить "
}
else
{
$Message = " To change the location of the Videos folder enter the required letter "
Write-Warning "`n Files will not be moved "
Write-Warning -Message "`n Files will not be moved "
$Options = " &Change " , " &Skip "
}
$DefaultChoice = 1
@ -1617,10 +1617,6 @@ New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\
New-ItemProperty -Path " HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache " -Name Autorun -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path " HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache " -Name Autorun -PropertyType DWord -Value 0 -Force
# Turn on automatically save my restartable apps when sign out and restart them after sign in
# Автоматически сохранять мои перезапускаемые приложения при выходе из системы и перезапустить их после выхода
New-ItemProperty -Path " HKCU:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon " -Name RestartApps -Value 1 -Force
# Turn on network discovery and file and printers sharing if device is not domain-joined
# Включить сетевое обнаружение и общий доступ к файлам и принтерам, если устройство не присоединенно к домену
if ( ( Get-CimInstance -ClassName CIM_ComputerSystem ) . PartOfDomain -eq $false )
@ -1628,6 +1624,10 @@ if ((Get-CimInstance -ClassName CIM_ComputerSystem).PartOfDomain -eq $false)
Get-NetFirewallRule -Group " @FirewallAPI.dll,-32752 " , " @FirewallAPI.dll,-28502 " | Set-NetFirewallRule -Profile Private -Enabled True
Set-NetConnectionProfile -NetworkCategory Private
}
# Automatically adjust active hours for me based on daily usage
# Автоматически изменять период активности для этого устройства на основе действий
New-ItemProperty -Path HKLM : \ SOFTWARE \ Microsoft \ WindowsUpdate \ UX \ Settings -Name SmartActiveHoursState -PropertyType DWord -Value 1 -Force
#endregion System
#region Start menu
@ -1707,8 +1707,10 @@ if (Get-CimInstance -ClassName Win32_VideoController | Where-Object -FilterScrip
$Options = " &Add " , " &Skip "
}
$DefaultChoice = 1
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
do
{
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
switch ( $Result )
{
" 0 "
@ -1753,6 +1755,8 @@ if (Get-CimInstance -ClassName Win32_VideoController | Where-Object -FilterScrip
}
}
}
until ( $Result -eq 1 )
}
#endregion Gaming
#region Scheduled tasks
@ -2021,8 +2025,10 @@ else
$Options = " &Add a protected folder " , " &Skip "
}
$DefaultChoice = 1
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
do
{
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
switch ( $Result )
{
" 0 "
@ -2047,7 +2053,6 @@ switch ($Result)
Set-MpPreference -EnableControlledFolderAccess Enabled
Add-MpPreference -ControlledFolderAccessProtectedFolders $FolderBrowserDialog . SelectedPath -Force
}
$Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
}
" 1 "
{
@ -2061,6 +2066,8 @@ switch ($Result)
}
}
}
}
until ( $Result -eq 1 )
# Allow an app through Controlled folder access
# Разрешить работу приложения через контролируемый доступ к папкам
@ -2079,8 +2086,10 @@ if ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
$Options = " &Add a protected folder " , " &Skip "
}
$DefaultChoice = 1
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
do
{
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
switch ( $Result )
{
" 0 "
@ -2105,7 +2114,6 @@ if ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
{
Add-MpPreference -ControlledFolderAccessAllowedApplications $OpenFileDialog . FileName -Force
}
$Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
}
" 1 "
{
@ -2120,6 +2128,8 @@ if ((Get-MpPreference).EnableControlledFolderAccess -eq 1)
}
}
}
until ( $Result -eq 1 )
}
# Add exclusion folder from Windows Defender Antivirus scanning
# Добавить папку в список исключений сканирования Windows Defender
@ -2136,8 +2146,10 @@ else
$Options = " &Exclude folder " , " &Skip "
}
$DefaultChoice = 1
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
do
{
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
switch ( $Result )
{
" 0 "
@ -2161,7 +2173,6 @@ switch ($Result)
{
Add-MpPreference -ExclusionPath $FolderBrowserDialog . SelectedPath -Force
}
$Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
}
" 1 "
{
@ -2175,6 +2186,8 @@ switch ($Result)
}
}
}
}
until ( $Result -eq 1 )
# Add exclusion file from Windows Defender Antivirus scanning
# Добавить файл в список исключений сканирования Windows Defender
@ -2191,8 +2204,10 @@ else
$Options = " &Exclude file " , " &Skip "
}
$DefaultChoice = 1
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
do
{
$Result = $Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
switch ( $Result )
{
" 0 "
@ -2217,7 +2232,6 @@ switch ($Result)
{
Add-MpPreference -ExclusionPath $OpenFileDialog . FileName -Force
}
$Host . UI . PromptForChoice ( $Title , $Message , $Options , $DefaultChoice )
}
" 1 "
{
@ -2231,6 +2245,8 @@ switch ($Result)
}
}
}
}
until ( $Result -eq 1 )
# Turn on Windows Defender Exploit Guard network protection
# Включить защиту сети в Windows Defender Exploit Guard
@ -2276,10 +2292,6 @@ In order this feature to work events auditing and command line in process creati
Создать настаиваемое представление " Создание процесса " в Просмотре событий
Необходимо включить аудит событий и командную строку в событиях создания процесса , чтобы работала данная опция
#>
if ( $RU )
{
$OutputEncoding = [System.Console] :: OutputEncoding = [System.Console] :: InputEncoding = [System.Text.Encoding] :: UTF8
}
$XML = @ "
< ViewerConfig >
< QueryConfig >
@ -2359,7 +2371,7 @@ if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs\Comm
{
New-Item -Path Registry :: HKEY_CLASSES_ROOT \ CABFolder \ Shell \ RunAs \ Command -Force
}
$Value = " {0} " -f 'cmd /c DISM.exe /Online /Add-Package /PackagePath:"%1" /NoRestart & pause'
$Value = " {0} " -f " cmd /c DISM.exe /Online /Add-Package /PackagePath: `" %1 `" /NoRestart & pause "
New-ItemProperty -Path Registry :: HKEY_CLASSES_ROOT \ CABFolder \ Shell \ RunAs \ Command -Name " (Default) " -PropertyType String -Value $Value -Force
New-ItemProperty -Path Registry :: HKEY_CLASSES_ROOT \ CABFolder \ Shell \ RunAs -Name MUIVerb -PropertyType String -Value " @shell32.dll,-10210 " -Force
New-ItemProperty -Path Registry :: HKEY_CLASSES_ROOT \ CABFolder \ Shell \ RunAs -Name HasLUAShield -PropertyType String -Value " " -Force