Setup Prod Offscrub ⟶ 【REAL】
Why would you do this in production? To , improve session density, or eliminate application conflicts on shared servers. However, running OffScrub incorrectly in production can break critical services, crash applications, or orphan user sessions.
if ((Get-WindowsFeature -Name AD-Domain-Services).Installed) Write-Error "This is a Domain Controller. OffScrub aborted." exit 1
| Service Name | Required? | OffScrub Action | |--------------|-----------|------------------| | Spooler | Yes (printing) | Keep | | WSearch | No (search indexing) | Disable | | SysMain | No (Superfetch) | Disable | | Themes | Yes (UI stability) | Keep | The most common production-ready implementation is a PowerShell script that wraps Set-Service , Stop-Process , and Disable-ScheduledTask . setup prod offscrub
Do not run OffScrub on domain controllers or SQL servers without overrides.
$tasksToDisable = @( "Microsoft\Windows\DiskDiagnostic*", "Microsoft\Windows\Power Efficiency Diagnostics*" ) Why would you do this in production
When done correctly, OffScrub can significantly reduce memory and CPU overhead on VDI/RDSH hosts, sometimes improving user density by 15–25%. When done wrong, it can take down a production farm in minutes.
If you manage a Windows environment—especially one involving Remote Desktop Services (RDS), Citrix, or VMware Horizon—you’ve likely heard of OffScrub . It’s a powerful script from Microsoft’s SysInternals suite (specifically part of PSExec and the Windows Assessment Toolkit) used to selectively disable or stop non-essential background processes, services, and scheduled tasks. if ((Get-WindowsFeature -Name AD-Domain-Services)
foreach ($taskPath in $tasksToDisable) Disable-ScheduledTask -Verbose