Debloat, minimize telemetry, apps installation, general settings, and more.
- Install Windows (semi-unattended: see New-WindowsAnswerFile.ps1) + Updates.
- Install MS Office365 if desired (run MsOffice365_Install.cmd).
- Run the script (WindowsMize.ps1 or the condensed version WindowsMize.mini.ps1).
- Finish some customization (see todo_manually.md).
Long term: automate step 4.
- Fully non-interactive script : make sure to review everything before running it.
- Designed for Windows 11 (most tweaks/settings also work on Windows 10).
- Works on both Administrator and Standard account (including domain account).
- 31 script files based on 26 Powershell modules.
13 modules.
Equivalent of the Windows GUI settings app : Start > all apps > settings.
There are almost every settings, organized like the graphical's app.
Every settings (general, view, search) + extra.
Extra: ShowNavigationPane, Show/Hide Home/Gallery, ShowRemovableDrivesOnlyInThisPC, AutoFolderTypeDetection, MaxIconCacheSize, UndoRedo, RecycleBin, ConfirmFileDelete.
Equivalent of the Windows GUI System Properties.
Visual Effects, Virtual Memory (paging file), System failure, System Restore, Remote Assistance.
Equivalent of the Windows GUI settings app "Power & Battery" + extra from Control Panel.
Extra: Fast startup, Hibernate, Battery settings, Modern standby (S0) Network connectivity.
Configure the network settings. Improve security by disabling protocols and firewall rules (click to expand).
- Network & Internet:
- equivvalent of the Windows GUI settings app (start > all apps > settings > Network & Internet):
Network profile, auto proxy setting, DNS, Network discovery, File and Printer Sharing.
- equivvalent of the Windows GUI settings app (start > all apps > settings > Network & Internet):
- Firewall:
- block some ports/programs shown as listening (locally):
CDP, DCOM, NetBiosTcpIP, SMB, MiscProgSrv (lsass.exe, wininit.exe, Schedule, EventLog, services.exe) - default Defender rules:
AllJoynRouter, CastToDevice, ConnectedDevicesPlatform, DeliveryOptimization, DIALProtocol, MicrosoftMediaFoundation, ProximitySharing, WifiDirectDiscovery, WirelessDisplay, WiFiDirectCoordinationProtocol, WiFiDirectKernelModeDriver
- block some ports/programs shown as listening (locally):
- Protocol:
- IPv6 transition technologies (6to4, Teredo, IP-HTTPS, ISATAP).
- Network adapter protocol (Equivalent of the GUI properties (more adapter options > edit)).
- Miscellaneous (NetBiosOverTcpIP, IcmpRedirects, IPSourceRouting, LLMNR, LMHOSTS, mDNS, SMHNR, WPAD).
Various Group Policies to minimize Windows telemetry (click to expand).
DotNetTelemetry, NvidiaTelemetry, PowerShellTelemetry, AppAndDeviceInventory, ApplicationCompatibility, Ceip, CloudContent, ConsumerExperience, DiagnosticLogAndDumpCollectionLimit, DiagnosticsAutoLogger, DiagnosticTracing, ErrorReporting, GroupPolicySettingsLogging, HandwritingPersonalization, KmsClientActivationDataSharing, MsrtDiagnosticReport, OneSettingsDownloads, UserInfoSharing.
The main telemetry configurations are in the Windows settings app.
See "Windows Settings App > Privacy & security > Windows permissions".
For Acrobat Reader & MS Office telemetry, see "Applications Settings".
Various tweaks to improve and customize Windows. (click to expand).
-
Security, privacy and networking:
HomeGroup, Hotspot2, LockScreenCameraAccess, MessagingCloudSync, NotificationsNetworkUsage, PasswordExpiration, PasswordRevealButton, PrinterDriversDownloadOverHttp, WifiSense, Wpbt. -
System and performance:
FirstSigninAnimation, LongPaths, NtfsLastAccessTime, NumLockAtStartup, ServiceHostSplitting, Short8Dot3FileName, StartupAppsDelay, StartupShutdownVerboseStatusMessages. -
User interface and experience:
DisableGameBarLinks, ActionCenterLayout, CopyPasteDialogShowMoreDetails, HelpTips, MenuShowDelay, OnlineTips, ShortcutNameSuffix, StartMenuAllAppsViewMode, StartMenuRecommendedSection, SuggestedContent, WindowsExperimentation, WindowsInputExperience, WindowsPrivacySettingsExperience, WindowsSharedExperience, WindowsSpotlight. -
Windows features and settings:
MoveCharacterMapShortcutToWindowsTools, DisplayModeChangeAnimation, EventLogLocation, EaseOfAccessReadScanSection, FileHistory, FontProviders, HomeSettingPageVisibility, LocationPermission, LocationScriptingPermission, OpenWithDialogStoreAccess, SensorsPermission, ShareShowDragTrayOnTopScreen, TaskbarLastActiveClick, WindowsHelpSupport, WindowsMediaDrmOnlineAccess, WindowsUpdateSearchDrivers.
2 modules.
Management (Removal | Installation ) & Configuration (click to expand)
-
Uninstall unwanted default apps (bloatware).
e.g. Edge, OneDrive, Start Menu sponsored apps, Widgets, BingSearch, ClipChamp, etc... -
Install applications via Winget.
Predefined apps with short names (aliases for Winget package names):
Git, VSCode, VLC, Bitwarden, KeePassXC, ProtonPass, AcrobatReader, SumatraPDF, 7zip, Notepad++, qBittorrent, ProtonVPN, MullVadVPN, Brave, Firefox, MullvadBrowser, VCRedist, DirectXEndUserRuntime, DotNetDesktopRuntime.You can also install any apps with their Winget app name (e.g. "Valve.Steam").
-
Configure application settings.
Apps: Acrobat Reader, Brave Browser, Git, KeePassXC, MS Office, qBittorrent, VLC, VSCode.
UWP apps: MS Store, Notepad, Photos, Snipping Tool, Terminal.
Configure a RamDisk for "Brave Browser" and "VSCode" (click to expand).
For Brave, only few elements are either restored to or excluded from the RamDisk:
- Extensions and their settings (excluded. i.e. symlinked).
- Bookmarks and their favicons (saved and restored upon logoff/logon).
- Settings preferences (saved and restored upon logoff/logon).
i.e. By default, history and cookies are not restored across logoff/logon.
2 modules.
Configure (e.g. disable) Windows Services & Scheduled Tasks (grouped by categories).
There are a lot of comments about the services in "src > modules > services > private".
Make sure to review them to know which one to disable according to your usages.
It's recommended to use Notepad++, VSCode or else to have the code highlighted.
"WindowsMize.ps1" is the main script that will execute the other scripts.
Settings are divided into 6 main categories with 31 script files.
These script files are located in the "scripts" folder.
You can provide an optional "User" parameter to the script to apply the settings to a specific user.
This user must have logged-in at least once.
.\WindowsMize.ps1 # logged-on User
.\WindowsMize.ps1 -User 'Groot'
.\WindowsMize.ps1 -User 'Domain\Groot'You can uncomment or comment the script names to execute or not the corresponding script.
Example:
To execute only "Telemetry & Annoyances", "file_explorer" and some others:
comment everything except the script files you want to run.
$ScriptsToExecute = @(
# --- Apps Management
'apps_management\debloat'
#'apps_management\install'
# --- Apps Settings
[...]
# --- Network & Internet
[...]
# --- System & Tweaks
'system_&_tweaks\file_explorer'
[...]
'system_&_tweaks\tweaks'
# --- Telemetry & Annoyances
'telemetry_&_annoyances\telemetry'
'telemetry_&_annoyances\defender_security_center'
'telemetry_&_annoyances\privacy_&_security'
'telemetry_&_annoyances\notifications'
'telemetry_&_annoyances\start_&_taskbar'
# --- Win Settings App
[...]
#'win_settings_app\windows_update'
)Mostly every functions have a "-State" and/or "-GPO" parameters.
The accepted values for these parameters are below the setting title.
# --- Bing Search in Start Menu (default: Enabled)
# State: Disabled | Enabled
# GPO: Disabled | NotConfigured
Set-StartMenuBingSearch -State 'Disabled' -GPO 'Disabled'
#Set-StartMenuBingSearch -State 'Enabled' -GPO 'NotConfigured'To don't run a function, comment it (i.e. add the "#" character before the function name).
#Disable-PowerShellTelemetryTo run a function, uncomment it (i.e. remove the "#" character before the function name).
Disable-PowerShellTelemetryTo comment an entire section : begin with "<#" and end with "#>".
Example:
In "Win Settings app > Bluetooth & Devices.ps1 : "Touchpad" is commented by default.
<#
# --- Touchpad
...
settings
...
#>This script requires "PowerShell 7 (aka PowerShell (Core))" and must be run as Administrator.
- Open a PowerShell prompt (Administrator privileges are not required).
Right-click onStart Menu>Terminal. - Download and extract WindowsMize archive to the "Downloads" folder.
e.g.C:\Users\<User>\Downloads\WindowsMize.
If the folder "WindowsMize" exist, it will be deleted.
Save any data you want to keep (e.g. previous configuration and/or log files).irm 'https://github.com/agadiffe/WindowsMize/raw/main/tools/Download_WindowsMize.ps1' | iex
- Navigate to the extracted "WindowsMize" folder in your "Downloads" folder.
- Configure the script (WindowsMize.ps1) according to your preferences.
- Double click on the
Run_WindowsMize.cmdfile to run the script.
Accept the Windows UAC prompt to run it as Administrator (required).
If "PowerShell 7" is not installed, it will be automatically installed. - Restart (Mandatory for a lot of tweaks/settings).
Details (Click to expand)
- Download WindowsMize.
- Navigate to the directory where you downloaded the archive and extract it.
- Configure the script (WindowsMize.ps1) according to your preferences.
- Open a PowerShell prompt (as Administrator or not).
Right-click onStart Menu>Terminal. - Install "PowerShell 7".
winget install --exact --id 'Microsoft.PowerShell' --accept-source-agreements --accept-package-agreements
- Open an elevated (i.e. Administrator) PowerShell prompt:
Right-click onStart Menu>Terminal (Admin).
At the top of the Terminal window:
Click on the down arrow and choose "PowerShell". - Navigate to the directory where you extracted "WindowsMize" (replace <User> with your username).
Example:cd 'C:\Users\<User>\Downloads\WindowsMize-main\WindowsMize-main' - Unblock the script files (might not be necessary).
Get-ChildItem -File -Recurse | Unblock-File
- Sets the PowerShell execution policies for the current session (enable PowerShell script execution).
(This is not required for "Powershell 7", but it might change in future Windows release)Set-ExecutionPolicy -ExecutionPolicy 'Bypass' -Scope 'Process' -Force
- Run the script.
.\WindowsMize.ps1
- Restart (Mandatory for a lot of tweaks/settings).
-
The Powershell modules source code is designed to also serve as documention.
PS1 file often includes header comments.
The structure allows quick navigation to identify the registry values associated with any specific setting.
All GPO settings include references to their corresponding paths, names, and registry values.# gpo\ computer config > administrative tpl > windows components > data collection and preview builds # do not show feedback notifications # not configured: delete (default) | on: 1
-
Read some comments about why you should disable some features.
src\modules : network, telemetry, tweaks, ... -
Make sure to backup all of your data.
e.g. browser bookmarks, apps settings, personal files, passwords database -
Make sure your Windows is fully updated.
Settings > Windows Update > Check for updates
Microsoft Store > Library (or Downloads) > Check for updates (run it at least twice)
Special thanks to ElevenForum (make sure to add it as exception in Brave).
If you have suggestions or comments, I made a post there : WindowsMize on ElevenForum.
If you find a bug, open an issue.
If you like the project, leave a β.
Thanks.
