Inicio › Foros › Temas sobre Microsoft Windows › Deshabilitar SysMain y Telemetría + Limpiar Windows y Compactar el sistema en Windows 11
- Este debate está vacío.
-
AutorEntradas
-
-
Spek Regg
SuperadministradorEste script de PowerShell realiza una limpieza profunda de archivos temporales de Windows,
deshabilita los servicios SysMain y de telemetría, limpia la Papelera de reciclaje,
elimina cachés temporales y ejecuta herramientas de mantenimiento de Windows.⚠️ Importante: Ejecuta PowerShell como Administrador.
Cierra los programas que estés utilizando antes de ejecutar el script, ya que algunos archivos temporales
que estén en uso no podrán eliminarse.✅ ¿Qué hace este script?
- Deshabilita SysMain.
- Deshabilita el servicio de telemetría DiagTrack.
- Deshabilita dmwappushservice cuando está disponible.
- Limpia los archivos temporales del usuario.
- Limpia C:\Windows\Temp.
- Limpia archivos temporales de todos los perfiles de usuario accesibles.
- Limpia cachés temporales comunes de Windows.
- Vacía la Papelera de reciclaje.
- Limpia archivos de optimización de entrega de Windows Update.
- Ejecuta limpieza del almacén de componentes mediante DISM.
- Activa CompactOS para reducir el espacio ocupado por Windows.
- Optimiza las unidades mediante las herramientas integradas de Windows.
💻 Script PowerShell
# ================================================================ # OPTIMIZACION Y LIMPIEZA PROFUNDA DE WINDOWS # Ejecutar PowerShell como ADMINISTRADOR # ================================================================ # ------------------------------------------------ # COMPROBAR PRIVILEGIOS DE ADMINISTRADOR # ------------------------------------------------ $EsAdmin = ([Security.Principal.WindowsPrincipal] ` [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole( [Security.Principal.WindowsBuiltInRole]::Administrator ) if (-not $EsAdmin) { Write-Host "" Write-Host "ERROR: Este script debe ejecutarse como Administrador." -ForegroundColor Red Write-Host "" Write-Host "Haz clic derecho en PowerShell y selecciona:" Write-Host "Ejecutar como administrador" Write-Host "" Pause Exit } Clear-Host Write-Host "============================================================" -ForegroundColor Cyan Write-Host " OPTIMIZACION Y LIMPIEZA PROFUNDA DE WINDOWS" -ForegroundColor Cyan Write-Host "============================================================" -ForegroundColor Cyan Write-Host "" # ================================================================ # 1. DESHABILITAR SYSMAIN # ================================================================ Write-Host "[1/10] Deshabilitando SysMain..." -ForegroundColor Yellow $Servicio = Get-Service -Name "SysMain" -ErrorAction SilentlyContinue if ($Servicio) { Stop-Service -Name "SysMain" -Force -ErrorAction SilentlyContinue Set-Service -Name "SysMain" ` -StartupType Disabled ` -ErrorAction SilentlyContinue Write-Host "SysMain deshabilitado." -ForegroundColor Green } else { Write-Host "SysMain no existe en este sistema." -ForegroundColor DarkGray } # ================================================================ # 2. DESHABILITAR TELEMETRIA # ================================================================ Write-Host "" Write-Host "[2/10] Deshabilitando servicios de telemetria..." -ForegroundColor Yellow $ServiciosTelemetria = @( "DiagTrack", "dmwappushservice" ) foreach ($ServicioTelemetria in $ServiciosTelemetria) { $Servicio = Get-Service ` -Name $ServicioTelemetria ` -ErrorAction SilentlyContinue if ($Servicio) { Stop-Service ` -Name $ServicioTelemetria ` -Force ` -ErrorAction SilentlyContinue Set-Service ` -Name $ServicioTelemetria ` -StartupType Disabled ` -ErrorAction SilentlyContinue Write-Host "$ServicioTelemetria deshabilitado." -ForegroundColor Green } } # ================================================================ # 3. DESHABILITAR TAREAS DE TELEMETRIA # ================================================================ Write-Host "" Write-Host "[3/10] Deshabilitando tareas programadas de telemetria..." -ForegroundColor Yellow $TareasTelemetria = @( "\Microsoft\Windows\Application Experience\Microsoft Compatibility Appraiser", "\Microsoft\Windows\Application Experience\ProgramDataUpdater", "\Microsoft\Windows\Application Experience\StartupAppTask", "\Microsoft\Windows\Customer Experience Improvement Program\Consolidator", "\Microsoft\Windows\Customer Experience Improvement Program\UsbCeip" ) foreach ($TareaCompleta in $TareasTelemetria) { $NombreTarea = Split-Path $TareaCompleta -Leaf $RutaTarea = $TareaCompleta.Substring(0, $TareaCompleta.Length - $NombreTarea.Length) try { Disable-ScheduledTask ` -TaskPath $RutaTarea ` -TaskName $NombreTarea ` -ErrorAction SilentlyContinue | Out-Null Write-Host "Deshabilitada: $NombreTarea" -ForegroundColor Green } catch {} } # ================================================================ # 4. LIMPIAR TEMP DEL USUARIO # ================================================================ Write-Host "" Write-Host "[4/10] Limpiando temporales del usuario..." -ForegroundColor Yellow $RutasTemporales = @( $env:TEMP, $env:TMP, "$env:LOCALAPPDATA\Temp" ) foreach ($Ruta in $RutasTemporales) { if (Test-Path $Ruta) { Get-ChildItem ` -Path $Ruta ` -Force ` -ErrorAction SilentlyContinue | Remove-Item ` -Recurse ` -Force ` -ErrorAction SilentlyContinue } } Write-Host "Temporales del usuario limpiados." -ForegroundColor Green # ================================================================ # 5. LIMPIAR WINDOWS TEMP # ================================================================ Write-Host "" Write-Host "[5/10] Limpiando C:\Windows\Temp..." -ForegroundColor Yellow if (Test-Path "$env:SystemRoot\Temp") { Get-ChildItem ` "$env:SystemRoot\Temp" ` -Force ` -ErrorAction SilentlyContinue | Remove-Item ` -Recurse ` -Force ` -ErrorAction SilentlyContinue } Write-Host "Windows Temp limpiado." -ForegroundColor Green # ================================================================ # 6. LIMPIAR TEMPORALES DE OTROS USUARIOS # ================================================================ Write-Host "" Write-Host "[6/10] Limpiando temporales de perfiles de usuario..." -ForegroundColor Yellow Get-ChildItem "C:\Users" ` -Directory ` -ErrorAction SilentlyContinue | ForEach-Object { $TempUsuario = Join-Path $_.FullName "AppData\Local\Temp" if (Test-Path $TempUsuario) { Get-ChildItem ` $TempUsuario ` -Force ` -ErrorAction SilentlyContinue | Remove-Item ` -Force ` -Recurse ` -ErrorAction SilentlyContinue } } Write-Host "Perfiles limpiados." -ForegroundColor Green # ================================================================ # 7. LIMPIAR CACHES COMUNES # ================================================================ Write-Host "" Write-Host "[7/10] Limpiando caches adicionales..." -ForegroundColor Yellow $Caches = @( "$env:LOCALAPPDATA\D3DSCache", "$env:LOCALAPPDATA\Microsoft\Windows\INetCache", "$env:LOCALAPPDATA\Microsoft\Windows\WebCache", "$env:SystemRoot\SoftwareDistribution\DeliveryOptimization\Cache" ) foreach ($Cache in $Caches) { if (Test-Path $Cache) { Get-ChildItem ` $Cache ` -Force ` -ErrorAction SilentlyContinue | Remove-Item ` -Recurse ` -Force ` -ErrorAction SilentlyContinue } } Write-Host "Caches limpiadas." -ForegroundColor Green # ================================================================ # 8. VACIAR PAPELERA DE RECICLAJE # ================================================================ Write-Host "" Write-Host "[8/10] Vaciando Papelera de reciclaje..." -ForegroundColor Yellow try { Clear-RecycleBin ` -Force ` -ErrorAction SilentlyContinue Write-Host "Papelera vaciada." -ForegroundColor Green } catch { Write-Host "No fue posible vaciar alguna Papelera." -ForegroundColor DarkGray } # ================================================================ # 9. LIMPIAR ALMACEN DE COMPONENTES WINDOWS # ================================================================ Write-Host "" Write-Host "[9/10] Limpiando componentes antiguos de Windows..." -ForegroundColor Yellow DISM.exe /Online /Cleanup-Image /StartComponentCleanup /NoRestart # ================================================================ # 10. COMPACTAR WINDOWS # ================================================================ Write-Host "" Write-Host "[10/10] Activando CompactOS..." -ForegroundColor Yellow compact.exe /CompactOS:always # ================================================================ # OPTIMIZAR UNIDADES # ================================================================ Write-Host "" Write-Host "Optimizando unidades..." -ForegroundColor Yellow try { Get-Volume | Where-Object { $_.DriveLetter -ne $null -and $_.FileSystem -eq "NTFS" } | ForEach-Object { Write-Host "Optimizando unidad $($_.DriveLetter):" Optimize-Volume ` -DriveLetter $_.DriveLetter ` -Verbose ` -ErrorAction SilentlyContinue } } catch {} # ================================================================ # LIMPIEZA DE DNS # ================================================================ Write-Host "" Write-Host "Limpiando cache DNS..." -ForegroundColor Yellow ipconfig /flushdns # ================================================================ # FINAL # ================================================================ Write-Host "" Write-Host "============================================================" -ForegroundColor Green Write-Host " LIMPIEZA Y OPTIMIZACION TERMINADA" -ForegroundColor Green Write-Host "============================================================" -ForegroundColor Green Write-Host "" Write-Host "Se recomienda REINICIAR Windows para aplicar todos" -ForegroundColor Cyan Write-Host "los cambios correctamente." -ForegroundColor Cyan Write-Host "" Pause▶️ Cómo ejecutarlo
- Abre el menú Inicio.
- Escribe PowerShell.
- Haz clic derecho sobre PowerShell.
- Selecciona Ejecutar como administrador.
- Copia y pega el script completo.
- Presiona Enter.
- Cuando termine, reinicia Windows.
💡 Nota: Durante la limpieza pueden aparecer archivos que no pueden eliminarse.
Esto es normal porque Windows o algún programa los está utilizando en ese momento.
El script continuará automáticamente con los demás archivos.📦 ¿Qué es CompactOS?
CompactOS es una función integrada de Windows que comprime archivos del propio sistema operativo
para reducir el espacio utilizado en el disco. No crea archivos ZIP ni cambia la forma normal de utilizar Windows.Para comprobar posteriormente si Windows está comprimido puedes ejecutar:
compact.exe /CompactOS:querySi algún día quieres desactivar la compresión de Windows puedes ejecutar:
compact.exe /CompactOS:never
Spek Regg
Informática, Windows, tecnología y soluciones para PC.
-
-
AutorEntradas