Skip to content

Repository files navigation

TelemetrySlayer

TelemetrySlayer

VersionLicensePlatformPowerShellStatus

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.

Screenshot


Quick Start (Verified Download)

Option 1: Download and Verify

# Download the scriptInvoke-WebRequest-Uri https://github.com/SysAdminDoc/TelemetrySlayer/releases/latest/download/TelemetrySlayer.ps1 -OutFile TelemetrySlayer.ps1
# Verify SHA256 checksum against the value published in the GitHub Release
(Get-FileHash-Algorithm SHA256 TelemetrySlayer.ps1).Hash
# Run
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1

Option 2: Manual Download

  1. Download TelemetrySlayer.ps1 from the latest release
  2. Compare (Get-FileHash TelemetrySlayer.ps1).Hash against the SHA256 in the release notes
  3. Right-click → Run with PowerShell, or from terminal: powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1

Option 3: One-Liner (Advanced / Unattended)

Trust warning:Invoke-Expression executes arbitrary remote code. Only use this if you trust the source and accept the risk of running unverified scripts. For production or managed environments, use Option 1 or 2.

irm https://raw.githubusercontent.com/SysAdminDoc/TelemetrySlayer/main/TelemetrySlayer.ps1 | iex

The script auto-elevates to Administrator. No dependencies, no modules, no installers — single file, fully turnkey.


Features

Services

FeatureService NameDescriptionDefault
Connected User Experiences and TelemetryDiagTrackPrimary telemetry pipeline — collects and transmits diagnostic data to MicrosoftOn
WAP Push Message RoutingdmwappushserviceRoutes push messages used alongside DiagTrack for telemetry deliveryOn
Windows Error ReportingWerSvcSends crash dumps and error reports to MicrosoftOn
Program Compatibility AssistantPcaSvcMonitors programs for compatibility issues; triggers CompatTelRunner.exe CPU spikesOn
Diagnostic Service HostdiagsvcHosts diagnostic scenarios triggered by the Diagnostic Policy ServiceOn
Diagnostic Policy ServiceDPSCore diagnostic detection and troubleshooting engineOff

Scheduled Tasks

FeatureTask PathDescriptionDefault
Microsoft Compatibility AppraiserApplication ExperiencePrimary cause of CompatTelRunner.exe high CPU/disk — scans system files for upgrade compatibilityOn
ProgramDataUpdaterApplication ExperienceCollects program telemetry when opted into CEIPOn
StartupAppTaskApplication ExperienceScans startup entries for telemetry collectionOn
PcaPatchDbTaskApplication ExperienceUpdates compatibility database; triggers CompatTelRunner runsOn
Autochk ProxyAutochkCollects SQM (Software Quality Management) dataOn
CEIP ConsolidatorCustomer Experience Improvement ProgramConsolidates and sends CEIP usage data to MicrosoftOn
USB CEIPCustomer Experience Improvement ProgramCollects USB bus statistics for Microsoft device engineersOn
KernelCeipTaskCustomer Experience Improvement ProgramKernel-level CEIP data collectorOn
DiskDiagnosticDataCollectorDiskDiagnosticCollects general disk/system info and sends to MicrosoftOn
SmartScreenSpecificAppIDSmartScreen-related telemetry taskOff

Registry and Policy

FeatureDescriptionDefault
SKU-aware AllowTelemetrySets AllowTelemetry / MaxTelemetryAllowed to 0 where Windows supports diagnostic data off, or 1 where the SKU only allows required diagnostic dataOn
Disable Advertising IDPrevents cross-app ad profiling via advertising identifierOn
Disable Linguistic Data CollectionStops inking and typing data collectionOn
Disable Tailored ExperiencesBlocks Microsoft from using diagnostics for personalized tips/adsOn
Disable Feedback NotificationsSets feedback frequency to NeverOn
Disable Activity History / TimelineStops activity history collection and cloud syncOn
Disable Location TrackingDisables Windows location platform sensorOn
Disable Input PersonalizationDisables cloud speech recognition and typing personalizationOn
Disable Handwriting Error ReportingPrevents sharing handwriting recognition error dataOn
Disable App Inventory CollectorStops Inventory Collector from reporting installed applicationsOn
Disable Steps RecorderDisables psr.exe screenshot/input capture toolOn
Disable Wi-Fi Sense / Hotspot ReportingPrevents automatic Wi-Fi credential sharing and hotspot reportingOn

Firewall and Hardening

FeatureDescriptionDefault
Block CompatTelRunner.exeOutbound firewall rule blocking the compatibility telemetry runner from phoning homeOn
Block wsqmcons.exeOutbound firewall rule blocking the CEIP data senderOn
Block DiagTrack svchostOutbound firewall rule blocking DiagTrack service network accessOn
IFEO Debugger on CompatTelRunner.exeImage File Execution Options trick — instantly kills CompatTelRunner.exe whenever Windows launches it, surviving updates and re-enablementOn
Clear DiagTrack ETL LogsEmpties AutoLogger-Diagtrack-Listener.etl and disables the autologger sessionOn

Restore and Safety

FeatureDescriptionDefault
Exact Undo SnapshotApply records prior registry value/type/absence, service startup/status, exact scheduled-task IDs, firewall rule baselines, IFEO, and autologger state under %ProgramData%\TelemetrySlayer\StateOn
Preflight Backup BundleApply 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 machineOn
Paired Registry RestoreEach backup also contains restore-registry.reg, a combined pre-apply registry export keyed to the backup timestamp; exact absent-value restoration remains in the JSON snapshotOn
Windows Update Drift AuditRead-only catalog audit records Pass/Drift/NotApplicable/Error per action and compares later audits with a distinct drift exit codeOn
Timeout-Safe Service ControlService stop/start/startup changes run through sc.exe with timeout, retry/backoff, exit-code logging, and visible failure outputOn
SKU-Aware Diagnostic DataScan detects product name, build, edition, LTSC, and Server status; the AllowTelemetry toggle text and tooltip show the applied value and reasonOn

Operator UX

  • Search across action names, descriptions, policy paths, service/task targets, source metadata, and stable IDs.
  • Preview the selected registry, service, task, firewall, file, process, and policy-refresh commands before Apply.
  • Review current and historical transcript files in the in-app History tab.
  • Open Windows privacy/feedback settings through the Diagnostic Data Viewer toolbar action.

Office Telemetry

FeatureDescriptionDefault
Disable Office Telemetry AgentDisables telemetry logging and upload for Office 15.0 and 16.0On
Disable Office Feedback and SurveysPrevents Office feedback collection, surveys, and connected experiencesOn

Edge Telemetry

FeatureDescriptionDefault
Disable Edge Diagnostic Data and FeedbackSets DiagnosticData=0, PersonalizationReportingEnabled=0, and UserFeedbackAllowed=0On
Disable Edge Metrics, Sidebar, and CopilotDisables MetricsReportingEnabled, SendSiteInfoToImproveServices, HubsSidebarEnabled, CopilotPageContext, CopilotCDPPageContext, and DiscoverPageContextEnabledOn
Disable Edge WebView2 TelemetryDisables DiagnosticData, MetricsReportingEnabled, and PersonalizationReportingEnabled for the WebView2 runtimeOn

MetricsReportingEnabled, SendSiteInfoToImproveServices, and DiscoverPageContextEnabled are retained as legacy compatibility fallbacks because current Edge policy documentation marks them obsolete. Current Edge diagnostic, personalization, feedback, sidebar, and Copilot-context policies remain covered alongside those fallbacks.

Windows AI and Recall

FeaturePolicy coverageDefault
Disable Windows AI, Copilot, and RecallWindows 11 24H2+ AllowRecallEnablement, DisableAIDataAnalysis, DisableClickToDo, DisableSettingsAgent, Paint AI policies, legacy TurnOffWindowsCopilot, and supported-SKU RemoveMicrosoftCopilotAppOff in Balanced/Minimal; On in Paranoid

Nvidia Telemetry

FeatureDescriptionDefault
Disable NvTelemetryContainer ServiceStops and disables the Nvidia Telemetry Container serviceOn
Disable Nvidia Telemetry TasksDisables NvTmMon, NvTmRep, and NvProfileUpdater scheduled tasksOn
Disable Nvidia Telemetry RegistrySets Optimus_EnableTelemetry=0 and NvTelemetryContainer Start=4On

Visual Studio Telemetry

FeatureDescriptionDefault
Disable Visual Studio TelemetryDisables VS telemetry opt-in, CEIP/SQM, and feedback dialog/email/screenshot captureOn
Disable VS Collector and PerfWatsonStops VSStandardCollectorService150 and kills PerfWatson2On

How It Works

┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 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 │
└───────────────────────────┘
  1. UI thread captures all checkbox states into a hashtable
  2. 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
  3. ConcurrentQueue bridges the worker and UI — log messages stream in real-time as each operation completes
  4. DispatcherTimer drains the queue every 100ms and appends to the embedded console
  5. gpupdate /force runs at the end to apply Group Policy changes immediately

Why the IFEO Trick Matters

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.


Prerequisites

  • 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

What It Does and Doesn't Do

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
  • Disable Edge diagnostic data, feedback, metrics, Copilot sidebar, and WebView2 telemetry
  • Disable Windows AI, Recall snapshot saving, Click to Do, Paint AI entry points, and Copilot policies on supported builds
  • Disable Nvidia and Visual Studio telemetry services, tasks, and registry keys
  • 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

Enterprise Deployment

Silent Mode

Run without the GUI for automated/RMM deployment:

# Apply Balanced preset (default)
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent
# Apply Paranoid preset (enables DPS and SmartScreen task disabling)
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent -Preset Paranoid
# Apply Minimal preset (core telemetry only, skips Nvidia/VS/firewall)
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent -Preset Minimal
# Dry run (shows what would change without modifying the system)
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent -WhatIf
# Custom config file (JSON overrides for individual toggles)
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent -ConfigPath config.json
# Custom log path
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -Silent -LogPath C:\Logs\telemetry.log

Exit codes: 0 = success, 1 = one or more actions failed. Logs are written to %ProgramData%\TelemetrySlayer\Logs\ by default.

Policy Bundle Export

Export catalog-derived machine/user policy artifacts without applying them:

powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -ExportPolicyPath .\TelemetrySlayer-PolicyBundle

The bundle contains TelemetrySlayer.admx, en-US\TelemetrySlayer.adml, machine/user .reg files, policy.csv, and policy.json. The JSON/CSV files retain source URLs, supported build/SKU gates, legacy-policy labels, and dynamic SKU-gated values that are intentionally omitted from generic .reg/ADMX files.

Windows Update Drift Audit

Capture a read-only hardening baseline, then compare a later audit after Windows Update:

powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -AuditPath .\audit-before.json
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -AuditPath .\audit-after.json -CompareAuditPath .\audit-before.json

The comparison exits 0 when no audited state changed, 2 when a setting drifted or errored, and 1 for an audit/file error.

Weekly Re-Apply Task

Register or remove a hidden weekly Sunday 03:00 task that runs the selected preset with highest privileges:

powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -RegisterReapplyTask -Preset Balanced
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -UnregisterReapplyTask
powershell -ExecutionPolicy Bypass -File TelemetrySlayer.ps1 -RegisterReapplyTask -WhatIf

The task writes to %ProgramData%\TelemetrySlayer\Logs\scheduled-reapply.log and %ProgramData%\TelemetrySlayer\Reports\scheduled-reapply.json. It uses the current interactive administrator identity so user-scoped policies remain associated with the intended profile; it runs when that user is logged on.

NinjaOne

  1. Create new Script → PowerShell
  2. Paste TelemetrySlayer.ps1 content
  3. Set execution policy: Bypass
  4. Deploy to device group

Datto RMM

  1. New Component → PowerShell
  2. Upload TelemetrySlayer.ps1
  3. Set execution policy: Bypass
  4. Schedule or push to endpoints

PDQ Deploy

  1. New Package → PowerShell Step
  2. Script: powershell -ExecutionPolicy Bypass -File "TelemetrySlayer.ps1"
  3. Run As: Deploy User (with admin rights)

FAQ / Troubleshooting

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.


License

MIT — use it, fork it, deploy it.


Contributing

Issues and PRs welcome. If you find a telemetry vector that isn't covered, open an issue.

About

WPF GUI to disable Windows telemetry, data collection, and compatibility bloat

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages