A comprehensive, GUI-driven tool that disables Microsoft telemetry, data collection, compatibility bloat, and phone-home services across Windows 10/11 — with real-time console feedback and persistent hardening that survives Windows Update re-enablement.
irm https://raw.githubusercontent.com/SysAdminDoc/TelemetrySlayer/main/TelemetrySlayer.ps1 | iexOr download and run manually:
- Download
TelemetrySlayer.ps1 - Right-click → Run with PowerShell
- Or from terminal:
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1
The script auto-elevates to Administrator. No dependencies, no modules, no installers — single file, fully turnkey.
| Feature | Service Name | Description | Default |
|---|---|---|---|
| Connected User Experiences and Telemetry | DiagTrack |
Primary telemetry pipeline — collects and transmits diagnostic data to Microsoft | On |
| WAP Push Message Routing | dmwappushservice |
Routes push messages used alongside DiagTrack for telemetry delivery | On |
| Windows Error Reporting | WerSvc |
Sends crash dumps and error reports to Microsoft | On |
| Program Compatibility Assistant | PcaSvc |
Monitors programs for compatibility issues; triggers CompatTelRunner.exe CPU spikes | On |
| Diagnostic Service Host | diagsvc |
Hosts diagnostic scenarios triggered by the Diagnostic Policy Service | On |
| Diagnostic Policy Service | DPS |
Core diagnostic detection and troubleshooting engine | Off |
| Feature | Task Path | Description | Default |
|---|---|---|---|
| Microsoft Compatibility Appraiser | Application Experience | Primary cause of CompatTelRunner.exe high CPU/disk — scans system files for upgrade compatibility | On |
| ProgramDataUpdater | Application Experience | Collects program telemetry when opted into CEIP | On |
| StartupAppTask | Application Experience | Scans startup entries for telemetry collection | On |
| PcaPatchDbTask | Application Experience | Updates compatibility database; triggers CompatTelRunner runs | On |
| Autochk Proxy | Autochk | Collects SQM (Software Quality Management) data | On |
| CEIP Consolidator | Customer Experience Improvement Program | Consolidates and sends CEIP usage data to Microsoft | On |
| USB CEIP | Customer Experience Improvement Program | Collects USB bus statistics for Microsoft device engineers | On |
| KernelCeipTask | Customer Experience Improvement Program | Kernel-level CEIP data collector | On |
| DiskDiagnosticDataCollector | DiskDiagnostic | Collects general disk/system info and sends to Microsoft | On |
| SmartScreenSpecific | AppID | SmartScreen-related telemetry task | Off |
| Feature | Description | Default |
|---|---|---|
| SKU-aware AllowTelemetry | Sets AllowTelemetry / MaxTelemetryAllowed to 0 where Windows supports diagnostic data off, or 1 where the SKU only allows required diagnostic data |
On |
| Disable Advertising ID | Prevents cross-app ad profiling via advertising identifier | On |
| Disable Linguistic Data Collection | Stops inking and typing data collection | On |
| Disable Tailored Experiences | Blocks Microsoft from using diagnostics for personalized tips/ads | On |
| Disable Feedback Notifications | Sets feedback frequency to Never | On |
| Disable Activity History / Timeline | Stops activity history collection and cloud sync | On |
| Disable Location Tracking | Disables Windows location platform sensor | On |
| Disable Input Personalization | Disables cloud speech recognition and typing personalization | On |
| Disable Handwriting Error Reporting | Prevents sharing handwriting recognition error data | On |
| Disable App Inventory Collector | Stops Inventory Collector from reporting installed applications | On |
| Disable Steps Recorder | Disables psr.exe screenshot/input capture tool | On |
| Disable Wi-Fi Sense / Hotspot Reporting | Prevents automatic Wi-Fi credential sharing and hotspot reporting | On |
| Feature | Description | Default |
|---|---|---|
| Block CompatTelRunner.exe | Outbound firewall rule blocking the compatibility telemetry runner from phoning home | On |
| Block wsqmcons.exe | Outbound firewall rule blocking the CEIP data sender | On |
| Block DiagTrack svchost | Outbound firewall rule blocking DiagTrack service network access | On |
| IFEO Debugger on CompatTelRunner.exe | Image File Execution Options trick — instantly kills CompatTelRunner.exe whenever Windows launches it, surviving updates and re-enablement | On |
| Clear DiagTrack ETL Logs | Empties AutoLogger-Diagtrack-Listener.etl and disables the autologger session |
On |
| Feature | Description | Default |
|---|---|---|
| Exact Undo Snapshot | Apply records prior registry value/type/absence, service startup/status, exact scheduled-task IDs, firewall rule baselines, IFEO, and autologger state under %ProgramData%\TelemetrySlayer\State |
On |
| Preflight Backup Bundle | Apply writes %ProgramData%\TelemetrySlayer\Backups\backup-<timestamp> with a manifest, restore snapshot copy, registry exports for managed keys, and restore-point attempt status before changing the machine |
On |
| Timeout-Safe Service Control | Service stop/start/startup changes run through sc.exe with timeout, retry/backoff, exit-code logging, and visible failure output |
On |
| SKU-Aware Diagnostic Data | Scan detects product name, build, edition, LTSC, and Server status; the AllowTelemetry toggle text and tooltip show the applied value and reason | On |
| Feature | Description | Default |
|---|---|---|
| Disable Office Telemetry Agent | Disables telemetry logging and upload for Office 15.0 and 16.0 | On |
| Disable Office Feedback and Surveys | Prevents Office feedback collection, surveys, and connected experiences | On |
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ WPF GUI Thread │ │ ConcurrentQueue │ │ Background Worker │
│ │ │ │ │ │
│ Checkbox toggles │────>│ Thread-safe bridge │<────│ Services, Tasks, │
│ Console output │ │ for log streaming │ │ Registry, Firewall │
│ Status bar │ │ │ │ IFEO, ETL, gpupdate │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
▲ │
│ DispatcherTimer │
│ polls @ 100ms │
└───────────────────────────┘
- UI thread captures all checkbox states into a hashtable
- Worker runspace writes an exact restore snapshot and preflight backup bundle, then executes operations (timeout-safe service control, task disabling, registry writes, firewall rules) in a separate thread to keep the GUI responsive
- ConcurrentQueue bridges the worker and UI — log messages stream in real-time as each operation completes
- DispatcherTimer drains the queue every 100ms and appends to the embedded console
- gpupdate /force runs at the end to apply Group Policy changes immediately
Windows Update frequently re-enables telemetry tasks and services after feature updates. The standard approach of disabling scheduled tasks and services gets silently undone. TelemetrySlayer's IFEO (Image File Execution Options) debugger entry sets taskkill.exe as the debugger for CompatTelRunner.exe — meaning every time Windows tries to launch it, the process is immediately terminated before it can execute. This persists across updates and re-enablement attempts.
Combined with outbound firewall rules, this provides defense-in-depth: even if services are re-enabled, they can't phone home or consume resources.
- OS: Windows 10 / Windows 11 (any edition)
- PowerShell: 5.1+ (ships with Windows 10/11)
- Privileges: Administrator (script auto-elevates)
- Dependencies: None — uses only built-in .NET assemblies
Does:
- Disable telemetry services, scheduled tasks, and registry-based data collection
- Block telemetry executables at the firewall level
- Prevent CompatTelRunner.exe from launching via IFEO
- Clear existing telemetry log data
- Disable Office telemetry and feedback
- Write a preflight recovery bundle with registry exports, restore snapshot copy, manifest, and restore-point attempt status
- Restore prior registry values, service startup/status, scheduled-task enabled state, firewall baselines, IFEO, and autologger settings from the latest apply snapshot
- Apply the documented diagnostic data value for the detected Windows SKU and log the reason
- Apply changes via Group Policy update
- Provide granular per-item control with sane defaults
Doesn't:
- Remove Windows Defender or SmartScreen protection (SmartScreen task is off by default)
- Modify Windows Update behavior
- Delete system files or take ownership of OS binaries
- Require any external tools, modules, or downloads
- Phone home or collect any data itself
For headless/automated deployment, the script can be adapted for RMM pipelines by extracting the core logic into a non-GUI wrapper. The GUI version is designed for interactive use.
- Create new Script → PowerShell
- Paste
TelemetrySlayer.ps1content - Set execution policy: Bypass
- Deploy to device group
- New Component → PowerShell
- Upload
TelemetrySlayer.ps1 - Set execution policy: Bypass
- Schedule or push to endpoints
- New Package → PowerShell Step
- Script:
powershell -ExecutionPolicy Bypass -File "TelemetrySlayer.ps1" - Run As: Deploy User (with admin rights)
Q: Is it safe to disable these services and tasks? Disabling telemetry does not affect normal Windows operation, application compatibility, or security updates. Microsoft's own documentation confirms these are data collection mechanisms, not core OS functionality.
Q: Will Windows Update undo my changes? Standard registry and service changes can be re-enabled by feature updates. The IFEO debugger trick and firewall rules provide persistent protection that survives updates. After major feature updates, re-running the script is recommended.
Q: Why is DPS unchecked by default? The Diagnostic Policy Service provides some legitimate auto-troubleshooting for network and disk issues. Disabling it is optional for users who want maximum telemetry reduction.
Q: Why is SmartScreen unchecked by default? SmartScreen provides real security value by checking downloaded files against known malware databases. The telemetry task associated with it is minor compared to the protection it offers.
Q: Can I undo changes?
Yes. Apply writes a timestamped restore snapshot under %ProgramData%\TelemetrySlayer\State, and Undo All restores the prior registry values/types/absence, service startup/status, exact scheduled-task state, firewall rule baseline, IFEO value, and autologger setting from that snapshot.
MIT — use it, fork it, deploy it.
Issues and PRs welcome. If you find a telemetry vector that isn't covered, open an issue.
