Browse Source

20.08.2019

Updated:
	Turn off diagnostics tracking services,
	Uninstall all UWP apps from all accounts except,
	Turn off diagnostics tracking scheduled tasks;
		The foreach instruction is no longer used;
		Increased processing speed
	Import Start menu layout from pre-saved reg file;
		Now it's possible to select a file to import through OpenFileDialog
	Turn on Windows Sandbox;
		Changed the method for determining if a Hyper-V service is enabled
	Minor changes.

Обновлены разделы:
	Отключить службы диагностического отслеживания,
	Отключить задачи диагностического отслеживания,
	Удалить все UWP-приложения из всех учетных записей, кроме;
		Инструкция foreach больше не используется;
		Увеличена скорость обработки
	Импорт настроенного меню "Пуск" из заготовленного reg-файла;
		Теперь можно выбирать файл для импорта с помощью OpenFileDialog
	Включить Windows Sandbox;
		Изменено метод определения, включен ли Hyper-V
	Прочие незначительные изменения.
pull/3/head
farag2 6 years ago
committed by GitHub
parent
commit
2fd387c9e6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 137
      Win 10.ps1

137
Win 10.ps1

@ -24,13 +24,11 @@ $services = @(
"DusmSvc", "DusmSvc",
# SSDP Discovery # SSDP Discovery
# Обнаружение SSDP # Обнаружение SSDP
"SSDPSRV") "SSDPSRV"
foreach ($service in $services) )
{ Get-Service -Name $services | Stop-Service -Force
Get-Service -ServiceName $service | Stop-Service -Force Get-Service -Name $services | Set-Service -StartupType Disabled
Get-Service -ServiceName $service | Set-Service -StartupType Disabled # Turn off the Autologger session at the next computer restart ###
}
# Turn off the Autologger session at the next computer restart
# Отключить сборщик AutoLogger при следующем запуске ПК # Отключить сборщик AutoLogger при следующем запуске ПК
Update-AutologgerConfig -Name AutoLogger-Diagtrack-Listener -Start 0 Update-AutologgerConfig -Name AutoLogger-Diagtrack-Listener -Start 0
# Turn off the SQMLogger session at the next computer restart # Turn off the SQMLogger session at the next computer restart
@ -52,32 +50,30 @@ New-ItemProperty -Path HKCU:\Software\Microsoft\Siuf\Rules -Name NumberOfSIUFInP
# Turn off diagnostics tracking scheduled tasks # Turn off diagnostics tracking scheduled tasks
# Отключить задачи диагностического отслеживания # Отключить задачи диагностического отслеживания
$tasks = @( $tasks = @(
"BgTaskRegistrationMaintenanceTask", "ProgramDataUpdater",
"Consolidator", "Microsoft Compatibility Appraiser",
"Microsoft-Windows-DiskDiagnosticDataCollector",
"TempSignedLicenseExchange",
"MapsToastTask",
"DmClient", "DmClient",
"FODCleanupTask",
"DmClientOnScenarioDownload", "DmClientOnScenarioDownload",
"EnableLicenseAcquisition", "BgTaskRegistrationMaintenanceTask",
"FamilySafetyMonitor",
"FamilySafetyRefreshTask",
"File History (maintenance mode)", "File History (maintenance mode)",
"FODCleanupTask", "WinSAT",
"GatherNetworkInfo", "UsbCeip",
"MapsToastTask", "Consolidator",
"Microsoft Compatibility Appraiser", "Proxy",
"Microsoft-Windows-DiskDiagnosticDataCollector",
"MNO Metadata Parser", "MNO Metadata Parser",
"NetworkStateChangeTask", "NetworkStateChangeTask",
"ProgramDataUpdater", "GatherNetworkInfo",
"Proxy", "XblGameSaveTask",
"EnableLicenseAcquisition",
"QueueReporting", "QueueReporting",
"TempSignedLicenseExchange", "FamilySafetyMonitor",
"UsbCeip", "FamilySafetyRefreshTask"
"WinSAT", )
"XblGameSaveTask") Get-ScheduledTask -TaskName $tasks | Disable-ScheduledTask
foreach ($task in $tasks)
{
Get-ScheduledTask -TaskName $task | Disable-ScheduledTask
}
# Turn off "The Windows Filtering Platform has blocked a connection" message # Turn off "The Windows Filtering Platform has blocked a connection" message
# Отключить в "Журналах Windows/Безопасность" сообщение "Платформа фильтрации IP-пакетов Windows разрешила подключение" # Отключить в "Журналах Windows/Безопасность" сообщение "Платформа фильтрации IP-пакетов Windows разрешила подключение"
auditpol /set /subcategory:"{0CCE9226-69AE-11D9-BED3-505054503030}" /success:disable /failure:disable auditpol /set /subcategory:"{0CCE9226-69AE-11D9-BED3-505054503030}" /success:disable /failure:disable
@ -440,7 +436,7 @@ IF (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR))
New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR -Name AllowgameDVR -Value 0 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR -Name AllowgameDVR -Value 0 -Force
# Set download mode for delivery optization on "HTTP only" # Set download mode for delivery optization on "HTTP only"
# Отключить оптимизацию доставки для обновлений с других ПК # Отключить оптимизацию доставки для обновлений с других ПК
Get-Service -ServiceName 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
@ -498,8 +494,8 @@ New-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name JPEGImportQuality -Va
# Turn off sticky Shift key after pressing 5 times # Turn off sticky Shift key after pressing 5 times
# Отключить залипание клавиши Shift после 5 нажатий # Отключить залипание клавиши Shift после 5 нажатий
New-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name Flags -PropertyType String -Value 506 -Force New-ItemProperty -Path "HKCU:\Control Panel\Accessibility\StickyKeys" -Name Flags -PropertyType String -Value 506 -Force
# Uninstall UWP apps from all accounts except # Uninstall all UWP apps from all accounts except
# Удалить UWP-приложения из всех учетных записей, кроме # Удалить все UWP-приложения из всех учетных записей, кроме
$ExcludedApps = @( $ExcludedApps = @(
# iTunes # iTunes
"AppleInc.iTunes" "AppleInc.iTunes"
@ -532,8 +528,9 @@ $ExcludedApps = @(
) )
$OFS = "|" $OFS = "|"
Get-AppxPackage -PackageTypeFilter Bundle -AllUsers | Where-Object {$_.Name -cnotmatch $ExcludedApps} | Remove-AppxPackage -AllUsers Get-AppxPackage -PackageTypeFilter Bundle -AllUsers | Where-Object {$_.Name -cnotmatch $ExcludedApps} | Remove-AppxPackage -AllUsers
# Uninstall UWP apps from all accounts except $OFS = " "
# Удалить UWP-приложения из системной учетной записи, кроме # Uninstall all UWP apps from all accounts except
# Удалить все UWP-приложения из системной учетной записи, кроме
$ExcludedApps = @( $ExcludedApps = @(
# Intel UWP-panel # Intel UWP-panel
# UWP-панель Intel # UWP-панель Intel
@ -552,6 +549,7 @@ $ExcludedApps = @(
) )
$OFS = "|" $OFS = "|"
Get-AppxProvisionedPackage -Online | Where-Object -FilterScript {$_.DisplayName -cnotmatch $ExcludedApps} | Remove-AppxProvisionedPackage -Online Get-AppxProvisionedPackage -Online | Where-Object -FilterScript {$_.DisplayName -cnotmatch $ExcludedApps} | Remove-AppxProvisionedPackage -Online
$OFS = " "
# Turn off Windows features # Turn off Windows features
# Отключить компоненты # Отключить компоненты
$features = @( $features = @(
@ -617,8 +615,8 @@ New-ItemProperty -Path HKCU:\Software\Microsoft\GameBar -Name ShowStartupPanel -
# Включить восстановление системы # Включить восстановление системы
Enable-ComputerRestore -Drive $env:SystemDrive Enable-ComputerRestore -Drive $env:SystemDrive
Get-ScheduledTask -TaskName SR | Enable-ScheduledTask Get-ScheduledTask -TaskName SR | Enable-ScheduledTask
Get-Service -ServiceName swprv, vss | Set-Service -StartupType Manual Get-Service -Name swprv, vss | Set-Service -StartupType Manual
Get-Service -ServiceName swprv, vss | Start-Service Get-Service -Name swprv, vss | Start-Service
Get-CimInstance -ClassName Win32_ShadowCopy | Remove-CimInstance Get-CimInstance -ClassName Win32_ShadowCopy | Remove-CimInstance
# Turn off Windows Script Host # Turn off Windows Script Host
# Отключить Windows Script Host # Отключить Windows Script Host
@ -936,9 +934,17 @@ IF (-not (Test-Path -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell
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"))
{
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Force
}
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{E2BF9676-5F8F-435C-97EB-11607A5BEDF7}" -PropertyType String -Value "" -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{E2BF9676-5F8F-435C-97EB-11607A5BEDF7}" -PropertyType String -Value "" -Force
# Remove "Previous Versions" from file context menu # Remove "Previous Versions" from file context menu
# Удалить пункт "Восстановить прежнюю версию" из контекстного меню # Удалить пункт "Восстановить прежнюю версию" из контекстного меню
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-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{596AB062-B4D2-4215-9F74-E9109B0A8153}" -PropertyType String -Value "" -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" -Name "{596AB062-B4D2-4215-9F74-E9109B0A8153}" -PropertyType String -Value "" -Force
# Remove "Edit with Paint 3D" from context menu # Remove "Edit with Paint 3D" from context menu
# Удалить пункт "Изменить с помощью Paint 3D" из контекстного меню # Удалить пункт "Изменить с помощью Paint 3D" из контекстного меню
@ -1042,11 +1048,9 @@ $services = @(
"UnistoreSvc_*", "UnistoreSvc_*",
# User Data Access # User Data Access
# Служба доступа к данным пользователя # Служба доступа к данным пользователя
"UserDataSvc_*") "UserDataSvc_*"
foreach ($service in $services) )
{ Get-Service -Name $services | Stop-Service -Force
Get-Service -ServiceName $service | Stop-Service -Force
}
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name Start -Value 4 -Force New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name Start -Value 4 -Force
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name UserServiceFlags -Value 0 -Force New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name UserServiceFlags -Value 0 -Force
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UnistoreSvc -Name Start -Value 4 -Force New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UnistoreSvc -Name Start -Value 4 -Force
@ -1067,20 +1071,20 @@ New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State"
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State" -Name AppAndBrowser_EdgeSmartScreenOff -Value 0 -Force New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows Security Health\State" -Name AppAndBrowser_EdgeSmartScreenOff -Value 0 -Force
# Remove Windows capabilities # Remove Windows capabilities
# Удалить компоненты # Удалить компоненты
$apps = @( $IncludedApps = @(
# Microsoft Quick Assist # Microsoft Quick Assist
# Быстрая поддержка (Майкрософт) # Быстрая поддержка (Майкрософт)
"App.Support.QuickAssist*", "App.Support.QuickAssist*"
# Windows Hello Face # Windows Hello Face
# Распознавание лиц Windows Hello # Распознавание лиц Windows Hello
"Hello.Face*", "Hello.Face*"
# Windows Media Player # Windows Media Player
# Проигрыватель Windows Media # Проигрыватель Windows Media
"Media.WindowsMediaPlayer*") "Media.WindowsMediaPlayer*"
foreach ($app in $apps) )
{ $OFS = "|"
Get-WindowsCapability -Online | Where-Object -FilterScript {$_.Name -like $app} | Remove-WindowsCapability -Online Get-WindowsCapability -Online | Where-Object -FilterScript {$_.Name -cmatch $IncludedApps} | Remove-WindowsCapability -Online
} $OFS = " "
# Open shortcut to the Command Prompt from Start menu as Administrator # Open shortcut to the Command Prompt from Start menu as Administrator
# Запускать ярлык к командной строке в меню "Пуск" от имени Администратора # Запускать ярлык к командной строке в меню "Пуск" от имени Администратора
$bytes = [System.IO.File]::ReadAllBytes("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\System Tools\Command Prompt.lnk") $bytes = [System.IO.File]::ReadAllBytes("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\System Tools\Command Prompt.lnk")
@ -1097,23 +1101,28 @@ $shortcut.TargetPath = $target
$shortcut.Arguments = "printers" $shortcut.Arguments = "printers"
$shortCut.IconLocation = "$env:SystemRoot\system32\DeviceCenter.dll" $shortCut.IconLocation = "$env:SystemRoot\system32\DeviceCenter.dll"
$shortcut.Save() $shortcut.Save()
# Import Start menu layout from pre-saved reg file. Edit $reg variable first # Import Start menu layout from pre-saved reg file
# The function to find the drive letter when the full path to the folder is known and drive letter is unknown. Suitable when the file is located on a USB-drive # Импорт настроенного меню "Пуск" из заготовленного reg-файла
# Импорт настроенного меню "Пуск" из заготовленного reg-файла. Сначала отредактируйте переменную $reg Add-Type -AssemblyName System.Windows.Forms
# Функция для нахождения буквы диска, когда файл находится в известной папке, но неизвестна буква диска. Подходит, когда файл располагается на USB-носителе $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
function Get-ResolvedPath # Initial directory "Downloads"
# Начальная папка "Загрузки"
$OpenFileDialog.InitialDirectory = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
$OpenFileDialog.Multiselect = $false
IF ($RU)
{ {
param ( $OpenFileDialog.Filter = "Файлы реестра (*.reg)|*.reg|Все файлы (*.*)|*.*"
[Parameter(ValueFromPipeline = 1)] }
$Path else
) {
(Get-Disk | Where-Object -FilterScript {$_.BusType -eq "USB"} | Get-Partition | Get-Volume | Where-Object -FilterScript {$null -ne $_.DriveLetter}).DriveLetter | ForEach-Object -Process {Join-Path ($_ + ":") $Path -Resolve -ErrorAction SilentlyContinue} $OpenFileDialog.Filter = "Registration Files (*.reg)|*.reg|All Files (*.*)|*.*"
} }
$reg = "Программы\Прочее\reg\Startmenu.reg" | Get-ResolvedPath $OpenFileDialog.ShowHelp = $true
IF ($reg) $OpenFileDialog.ShowDialog()
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
Start-Process -FilePath reg.exe -ArgumentList "import $reg" regedit.exe /s $OpenFileDialog.FileName
} }
Else Else
{ {
@ -1231,12 +1240,14 @@ IF ($RU)
$OFS = ", " $OFS = ", "
Write-Host "Ваши диски: " -NoNewline Write-Host "Ваши диски: " -NoNewline
Write-Host "$($drives | Sort-Object -Unique)" -ForegroundColor Yellow Write-Host "$($drives | Sort-Object -Unique)" -ForegroundColor Yellow
$OFS = " "
} }
else else
{ {
$OFS = ", " $OFS = ", "
Write-Host "`nYour drives: " -NoNewline Write-Host "`nYour drives: " -NoNewline
Write-Host "$($drives | Sort-Object -Unique)" -ForegroundColor Yellow Write-Host "$($drives | Sort-Object -Unique)" -ForegroundColor Yellow
$OFS = " "
} }
# Desktop # Desktop
# Рабочий стол # Рабочий стол
@ -1595,7 +1606,7 @@ Remove-Item $env:SystemDrive\PerfLogs -Recurse -Force -ErrorAction SilentlyConti
Remove-Item $env:LOCALAPPDATA\Temp -Recurse -Force -ErrorAction SilentlyContinue Remove-Item $env:LOCALAPPDATA\Temp -Recurse -Force -ErrorAction SilentlyContinue
# Remove "$env:SYSTEMROOT\Temp" # Remove "$env:SYSTEMROOT\Temp"
# Удалить "$env:SYSTEMROOT\Temp" # Удалить "$env:SYSTEMROOT\Temp"
Restart-Service -ServiceName Spooler -Force Restart-Service -Name Spooler -Force
Remove-Item -Path "$env:SystemRoot\Temp" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:SystemRoot\Temp" -Recurse -Force -ErrorAction SilentlyContinue
# Show more Windows Update restart notifications about restarting # Show more Windows Update restart notifications about restarting
# Показывать уведомление, когда компьютеру требуется перезагрузка для завершения обновления # Показывать уведомление, когда компьютеру требуется перезагрузка для завершения обновления
@ -1629,7 +1640,7 @@ IF ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2 -and (G
Param Param
( (
[Parameter(Mandatory = $True)] [Parameter(Mandatory = $True)]
[string[]] $apps [string[]]$apps
) )
foreach ($app in $apps) foreach ($app in $apps)
{ {
@ -1688,7 +1699,7 @@ IF (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Pro
{ {
try try
{ {
IF ((Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State -eq "Enabled") IF ((Get-CimInstance ClassName CIM_ComputerSystem).HypervisorPresent -eq $false)
{ {
Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart Enable-WindowsOptionalFeature FeatureName Containers-DisposableClientVM -All -Online -NoRestart
} }

Loading…
Cancel
Save