Skip to content

ceo714/win-baseline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

win-baseline

Verified. Reversible. Zero placebo.
A surgical Windows 10/11 performance baseline built on one rule:
if it can't be measured, it doesn't ship.


The Problem With "Optimization"

Windows ships with dozens of background services, telemetry pipelines, and scheduled tasks running silently beneath everything you do. They consume RAM. They spike CPU. They phone home. And most guides that claim to fix this make things worse — applying registry keys the modern kernel ignores, disabling services that break core functionality, and leaving no way back.

win-baseline is different by design.


Core Principles

Minimal

Every change must justify its existence with a documented mechanism. If the kernel doesn't read the key, the key doesn't ship. No 2015-era cargo-culted tweaks. No registry noise.

Measurable

Every module produces a verifiable state. After applying, verify.ps1 checks each change independently and prints [PASS] or [FAIL]. You don't have to trust the tool — you can confirm it yourself in under 30 seconds.

Reversible

This is the constraint that shapes everything else. Before modifying anything, the original state is saved. Rollback doesn't hardcode Automatic — it restores exactly what was there before. Every module ships with a rollback counterpart. No reinstall. No system restore point theater.


What Changes — and Why

Services

Service Effect
DiagTrack Stops telemetry collection and transmission to Microsoft endpoints
SysMain Eliminates background RAM preloading — provides no benefit on SSD
WSearch Stops persistent file indexing — only affects Explorer search bar
XblGameSave Removes background Xbox sync — inert without an Xbox account
XboxNetApiSvc Removes Xbox networking API — inert without Xbox
RemoteRegistry Closes remote registry access — attack surface on non-enterprise machines
WMPNetworkSvc WMP network server — absent on N/KN editions, guarded before touching
Fax Fax role service — guarded before touching, skipped if not installed

Each service's original StartType is saved to core/state/services-state.json before any change is made. Rollback reads this file and restores the exact prior value.

Scheduled Tasks

Background tasks that wake periodically to collect data, score hardware, or update telemetry databases — with no user-facing output.

Task What it does
Application Experience\Microsoft Compatibility Appraiser App compatibility telemetry
Application Experience\ProgramDataUpdater Telemetry database updater
CEIP\Consolidator Customer Experience data aggregation
CEIP\UsbCeip USB device telemetry
DiskDiagnostic\DiskDiagnosticDataCollector Disk health telemetry
Maintenance\WinSAT Hardware scoring — runs at idle, spikes CPU
PI\Sqm-Tasks Software Quality Metrics
Autochk\Proxy Autochk telemetry proxy
CloudExperienceHost\CreateObjectTask Cloud experience host (Win11 only)
Device Information\Device Device info collection (Win11 only)

Tasks are disabled, never deleted. Enable-ScheduledTask restores them exactly.

Registry — Telemetry Module

Key Effect
AllowTelemetry = 0 Telemetry level to off via policy ¹
DisableOneSettingsDownloads = 1 Blocks telemetry config downloads from Microsoft servers
DoNotShowFeedbackNotifications = 1 Suppresses feedback pop-ups
WER Disabled = 1 Stops Windows Error Reporting from sending crash data
EnableActivityFeed = 0 Disables Timeline activity collection
PublishUserActivities = 0 Stops activity sync to Microsoft
RestrictImplicitInkCollection = 1 Blocks handwriting sample submission
RestrictImplicitTextCollection = 1 Blocks typing pattern submission

¹ AllowTelemetry=0 is enforced on Pro / Enterprise / LTSC only. On Home editions Windows silently resets this to 1. The key is written correctly — this is a Microsoft policy restriction, not a tool limitation. verify.ps1 flags this with [WARN], not [FAIL].

Registry — Privacy Module

Key Effect
DisabledByGroupPolicy = 1 Disables advertising ID
TailoredExperiencesWithDiagnosticDataEnabled = 0 Disables personalized tips from diagnostic data
DisableWindowsConsumerFeatures = 1 Stops Windows silently installing sponsored apps
SilentInstalledAppsEnabled = 0 Blocks background app installs via ContentDelivery
NoRecentDocsHistory = 1 Disables recent file tracking (machine-wide — all accounts)
DisableLocation = 1 Disables location service via policy
DisableWebSearch = 1 Removes Bing from Start Menu search
RotatingLockScreenOverlayEnabled = 0 Removes promotional content from lock screen
Start_TrackProgs = 0 Stops app launch tracking for Start Menu ordering

Gaming Module

An opt-in module targeting input latency and frame pacing. Applies only changes with a documented mechanism and a verifiable result. Every value is saved before apply — rollback restores the exact prior state.

Verification tools: LatencyMon · PresentMon · CapFrameX

Setting Value Mechanism Verify with
useplatformclock false Forces TSC timer — lower and more stable interrupt latency LatencyMon
disabledynamictick yes Disables tick coalescing — eliminates interrupt jitter LatencyMon
tscsyncpolicy enhanced Improved TSC sync across CPU cores — reduces per-core timer drift LatencyMon
MouseDataQueueSize 20 Reduces mouse driver buffer from 100 to 20 — lowers maximum buffer latency LatencyMon (mouclass DPC)
Win32PrioritySeparation 38 (0x26) Short quantum, variable boost, max foreground priority — game process gets maximum CPU time PresentMon
AppCaptureEnabled 0 Disables Game Bar background capture hook — eliminates capture-related stutter Registry + Task Manager
GameDVR_Enabled 0 Disables DVR overlay recording hook Registry
HwSchMode 2 Hardware-accelerated GPU Scheduling — GPU work scheduled by GPU firmware, not CPU CapFrameX

HwSchMode note: Requires WDDM 2.7+ driver (any modern NVIDIA/AMD/Intel driver). On some older GPU+driver combinations it may increase frame time variance. State is saved before apply — rollback restores the exact prior value.

What is deliberately out of scope:

Tweak Why excluded
NIC interrupt moderation (*InterruptModeration) Driver-specific — not uniformly verifiable across NICs
NVIDIA/AMD registry paths Break with driver updates — not durable
CPU core parking Effect is workload-dependent, not measurable without controlled benchmarks
TcpAckFrequency (disable Nagle) Measurable only for specific online games — adds risk for general use
RAM timings, XMP/EXPO Hardware, not OS

What Is Deliberately Untouched

The boundary between optimization and breakage is precise. These components are out of scope — not because of laziness, but because the cost exceeds any benefit.

Component Reason
wuauserv / UsoSvc Disabling Windows Update breaks security patch delivery
Windows Defender / SecurityHealthService Removing active malware protection is not a performance trade-off
Desktop Window Manager (DWM) Core visual rendering stack — disabling causes display artifacts
AudioEndpointBuilder / AudioSrv Core audio pipeline
TabletInputService On Win11 handles UWP input, Start Menu, and Settings — Win11 forcibly restarts it after reboot regardless of start type. Change is not durable
DISM component removal Irreversible at the OS layer — outside this project's contract
Copilot / AI features Behavior is too build-specific and actively changing — under evaluation

OS Detection

win-baseline detects OS build and edition at runtime. It applies the correct action set per version and refuses to run on unsupported configurations.

OS Build Status
Windows 10 22H2 19045
Windows 10 21H2 / LTSC 2021 19044
Windows 11 23H2 22631
Windows 11 24H2 26100
Windows 10 < 19041
Windows Server any ⚠️ exits with warning

Edition-aware behavior: on Home editions, verify.ps1 surfaces a telemetry warning. On Server editions, the script detects ProductType != 1 and exits before making any changes. Win11-specific tasks are applied only when $wb.os == "win11".


Rollback Architecture

apply     →  read current state
          →  write to core/state/[module]-state.json
          →  apply change

rollback  →  read core/state/[module]-state.json
          →  restore original value
          →  delete state file if clean

For services: if SysMain was already Disabled before win-baseline ran, rollback leaves it Disabled. It does not blindly reset to Automatic.

For tasks: tasks that were already Disabled before apply are recorded as such — rollback skips them and won't re-enable them.

For registry: policy keys are deleted on rollback, restoring Windows hardcoded defaults. This is safer than writing back an assumed default value.

For gaming (bcdedit): entries that did not exist before apply are deleted on rollback — not reset to an assumed default. Entries that existed are restored to their exact prior value.


Verification

powershell -ExecutionPolicy Bypass -File verify.ps1

Example output (all modules applied):

==========================================
  win-baseline — Verification
  OS: Windows 10 build 19045 [ltsc] [x64]
==========================================

  [ Telemetry ]
  [PASS] AllowTelemetry = 0 (policy layer)
  [PASS] DisableOneSettingsDownloads = 1
  [PASS] WER Disabled = 1
  [PASS] EnableActivityFeed = 0

  [ Privacy ]
  [PASS] AdvertisingInfo DisabledByGroupPolicy = 1
  [PASS] DisableWindowsConsumerFeatures = 1
  [PASS] NoRecentDocsHistory = 1 (machine-wide)
  [PASS] DisableWebSearch = 1

  [ Services ]
  [PASS] DiagTrack — Disabled
  [PASS] SysMain — Disabled
  [PASS] WSearch — Disabled
  [SKIP] WMPNetworkSvc — not present (optional)

  [ Scheduled Tasks ]
  [PASS] Microsoft Compatibility Appraiser — Disabled
  [PASS] Consolidator — Disabled
  [PASS] WinSAT — Disabled

  [ Gaming ]
  [PASS] useplatformclock = No (platform clock disabled)
  [PASS] disabledynamictick = Yes
  [PASS] tscsyncpolicy = Enhanced
  [PASS] MouseDataQueueSize = 20
  [PASS] Win32PrioritySeparation = 38 (0x26)
  [PASS] AppCaptureEnabled = 0 (Game Bar capture off)
  [PASS] GameDVR_Enabled = 0 (DVR hook off)
  [PASS] HwSchMode = 2 (Hardware GPU Scheduling enabled)

  [ Rollback State ]
  [PASS] services-state.json present
  [PASS] scheduler-state.json present
  [PASS] gaming-state.json present

==========================================
  PASS: 33   FAIL: 0   SKIP: 2
  All checks passed.
==========================================

Gaming module not applied — verify skips the section with [INFO], counters unaffected.


Usage

Apply

apply.bat   (Run as Administrator)

Menu

==========================================
  win-baseline  v1.1.0
==========================================

  APPLY
  [1]  Telemetry         (registry)
  [2]  Privacy           (registry)
  [3]  Services          (PowerShell)
  [4]  Scheduled Tasks   (PowerShell)
  [5]  Gaming            (PowerShell)
  [6]  All modules

  ROLLBACK
  [7]  Rollback Telemetry
  [8]  Rollback Privacy
  [9]  Rollback Services
  [10] Rollback Scheduled Tasks
  [11] Rollback Gaming
  [R]  Rollback All modules

  [V]  Verify current state
  [0]  Exit

Each module can be applied and rolled back independently. Modules do not depend on each other.

Reboot

Services, scheduled tasks, and gaming (bcdedit) changes take effect after reboot. Registry changes take effect on next login or reboot.


Repository Structure

win-baseline/
├── core/
│   ├── detect-os.ps1              # Runtime OS detection (build, edition, arch)
│   ├── telemetry.reg              # Telemetry registry profile
│   ├── telemetry-rollback.reg     # Telemetry rollback
│   ├── privacy.reg                # Privacy registry profile
│   ├── privacy-rollback.reg       # Privacy rollback
│   ├── services.ps1               # Service disabler with state saving
│   ├── services-rollback.ps1      # Service state restorer
│   ├── scheduler.ps1              # Task disabler with state saving
│   ├── scheduler-rollback.ps1     # Task state restorer
│   ├── gaming.ps1                 # Gaming latency optimizer with state saving
│   ├── gaming-rollback.ps1        # Gaming state restorer
│   └── state/                     # Auto-created — holds rollback state files
├── verify.ps1                     # Full post-apply verification
├── apply.bat                      # Interactive installer menu
├── CHANGELOG.md
├── LICENSE
└── README.md

Tested On

VMware Workstation Pro snapshots:

  • Windows 10 LTSC 2021 — build 19044
  • Windows 10 22H2 — build 19045
  • Windows 11 24H2 — build 26100


RU — Русская документация

Что такое win-baseline

win-baseline — верифицированный, полностью обратимый профиль оптимизации Windows 10/11. Отключает фоновые службы, задачи планировщика и телеметрию, которые потребляют ресурсы системы без какой-либо пользы для пользователя.

Каждое изменение в проекте проходит одну проверку: есть ли задокументированный механизм, объясняющий реальный эффект. Если нет — изменение не попадает в проект.

Три принципа

Minimal — только ключи и параметры, которые современное ядро Windows реально читает. Никаких твиков из устаревших гайдов.

Measurable — каждый модуль проверяется через verify.ps1. Результат — конкретный [PASS] или [FAIL] по каждому пункту.

Reversible — перед любым изменением сохраняется исходное состояние в JSON-файл. Rollback восстанавливает точное предыдущее значение — не хардкодит Automatic, не угадывает. Если служба была Disabled до запуска инструмента — rollback оставит её Disabled.

Модули

Telemetry — отключает сбор и передачу диагностических данных: DiagTrack, AllowTelemetry, WER, Activity History, inking/typing. Применяется через .reg, откатывается удалением ключей.

Предупреждение: AllowTelemetry=0 работает только на Pro/Enterprise/LTSC. На Home Windows принудительно сбрасывает значение до 1. verify.ps1 выдаёт [WARN] вместо [FAIL].

Privacy — отключает рекламный ID, автоустановку рекомендованных приложений, Bing в поиске, рекламу на экране блокировки, отслеживание запуска программ, локацию, tailored experiences.

Services — отключает 8 фоновых служб. Исходный StartType каждой сохраняется в services-state.json до изменения. Rollback читает файл и восстанавливает точные значения.

Scheduled Tasks — отключает до 12 фоновых задач (часть Win11-специфичные). Задачи отключаются, не удаляются. Rollback через Enable-ScheduledTask.

Gaming — опциональный модуль для снижения input latency и стабилизации frame pacing. Затрагивает таймер ОС, буфер мыши, приоритет планировщика, GameDVR и GPU Scheduling. Каждый параметр сохраняется в gaming-state.json до применения. Rollback для bcdedit удаляет записи, которых не было до apply — вместо записи предполагаемого дефолта.

Границы безопасности

Windows Update, Defender, DWM, Audio-службы, TabletInputService — принципиально не трогаются. DISM-удаление компонентов — за пределами scope, необратимо.

Совместимость

Windows 10 (19041+) и Windows 11 (22000+). Скрипт определяет версию по номеру сборки, редакцию по Caption, применяет соответствующий набор действий. На Server-редакциях завершается с предупреждением до внесения любых изменений.


Author

ceo714GitHub

Related: bye-tcp-internet — TCP/IP network stack baseline for Windows 10/11

License

MIT

About

Verified, reversible Windows 10/11 performance baseline. Disables telemetry, background services and scheduled tasks. No placebo. Full rollback.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors