Menú Cerrar

Deshabilitar SysMain y Telemetría + Limpiar Windows y Compactar el sistema en Windows 11

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.
Mostrando 0 respuestas a los debates
  • Autor
    Entradas
    • #19839 Responder
      Spek Regg
      Superadministrador

      Este 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

      1. Abre el menú Inicio.
      2. Escribe PowerShell.
      3. Haz clic derecho sobre PowerShell.
      4. Selecciona Ejecutar como administrador.
      5. Copia y pega el script completo.
      6. Presiona Enter.
      7. 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:query

      Si 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.

Mostrando 0 respuestas a los debates
Respuesta a: Deshabilitar SysMain y Telemetría + Limpiar Windows y Compactar el sistema en Windows 11
Tu información:




Ayuda HTML para usuarios anónimos. Por seguridad, bbPress filtra tu contenido. Solo se conservan estas etiquetas y atributos permitidos:


<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">