Tema Claro 
🏢
TechSoluciones S.L.
Sistema de Gestión IT — 30 Puestos Windows
Windows 10/11 Pro Registro & GPO 8 Escenarios

Gestión del Registro de Windows
— Caso Práctico Empresarial

Documentación técnica para la estandarización de 30 puestos de trabajo mediante políticas del registro y GPO

30
Puestos de trabajo
8
Escenarios
100%
Reversible
GPO
Desplegable
REG
Scriptable
Escenario 01 / 08

Política de Escritorio Corporativo

⬤ Prioridad Alta Identidad Visual Control de Usuario
⚠️
Problema detectado: Los usuarios modifican fondos de pantalla, colores del sistema y elementos del escritorio, rompiendo la identidad corporativa de TechSoluciones S.L. en los 30 puestos de trabajo.
🎨

Impacto sin control

  • Imagen corporativa inconsistente
  • Fondos inapropiados en reuniones
  • Configuraciones que distraen
  • Sin trazabilidad de cambios

Objetivos a lograr

  • Identidad visual uniforme en 30 PCs
  • Fondo corporativo permanente
  • Control total de configuraciones
  • Fácil reversión documentada
🔧

Herramientas

  • Editor de Registro (regedit.exe)
  • GPO — Group Policy Objects
  • Scripts .REG automatizados
  • PowerShell para despliegue
Capturas de referencia
GPO Escritorio
📍 Ruta GPO: Configuración de usuario → Escritorio
Regedit
📍 regedit.exe → HKCU\Control Panel\Desktop
🏢
Fondo Corporativo
TechSoluciones S.L.
📍 Resultado: Fondo corporativo aplicado
Claves de Registro — Implementación
REG — escritorio_corporativo.reg
; ============================================================
; TechSoluciones S.L. — Política de Escritorio Corporativo
; Fecha: 2025 | Autor: IT Dept. | Rev: 1.0
; ============================================================
; IMPORTANTE: Ejecutar como Administrador
; Copia de seguridad previa recomendada
; ============================================================

Windows Registry Editor Version 5.00

; ----- 1. Fondo de pantalla corporativo -----
[HKEY_CURRENT_USER\Control Panel\Desktop]
"Wallpaper"="C:\\TechSoluciones\\corporativo\\fondo.jpg"
"WallpaperStyle"="2"    ; 2=Estirar, 6=Ajustar, 10=Rellenar
"TileWallpaper"="0"
"AutoColorization"=dword:00000000

; ----- 2. Bloquear personalización del escritorio -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"NoDispBackgroundPage"=dword:00000001  ; Oculta pestaña Fondo
"NoDispAppearancePage"=dword:00000001   ; Oculta pestaña Apariencia
"NoDispScrSavPage"=dword:00000001       ; Bloquea protector pantalla
"NoChangingWallpaper"=dword:00000001   ; Impide cambio de fondo

; ----- 3. Colores corporativos del sistema -----
[HKEY_CURRENT_USER\Control Panel\Colors]
"ActiveTitle"="0 120 215"   ; Azul corporativo TechSoluciones
"Background"="58 110 165"

; ----- 4. Deshabilitar tema oscuro para usuarios -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize]
"AppsUseLightTheme"=dword:00000001
"SystemUsesLightTheme"=dword:00000001
Equivalente en Group Policy (GPO)
Editor de directivas de grupo — gpedit.msc
📁 Configuración de usuario
└─ 📁 Plantillas administrativas
└─ 📁 Panel de control
└─ 📁 Personalización
Directivas aplicables:
🔒 Impedir cambio del fondo de escritorio ✓ Habilitada
🔒 Forzar imagen de fondo de pantalla específica ✓ Habilitada
🔒 Impedir cambio del tema ✓ Habilitada
Despliegue masivo con PowerShell
PowerShell — deploy_escritorio.ps1
# Despliegue en los 30 puestos de TechSoluciones
$equipos = @("PC-001","PC-002","PC-003") # Array con todos los equipos

foreach ($pc in $equipos) {
    # Copiar imagen corporativa
    Copy-Item "\\servidor\corporativo\fondo.jpg" "\\$pc\C$\TechSoluciones\corporativo\"
    
    # Aplicar .reg de forma silenciosa
    Invoke-Command -ComputerName $pc -ScriptBlock {
        reg import "C:\TechSoluciones\policticas\escritorio_corporativo.reg"
        RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
    }
    Write-Host "[OK] $pc configurado" -ForegroundColor Green
}
Escenario 02 / 08

Control de Software Autorizado

⬤ Prioridad Alta Seguridad AppLocker / SRP
🚫
Problema detectado: Los usuarios instalan software no homologado (juegos, P2P, herramientas no autorizadas) poniendo en riesgo la seguridad, el rendimiento y el cumplimiento normativo de TechSoluciones S.L.
☠️

Riesgos del software no autorizado

  • Malware y ransomware ocultos
  • Fuga de datos confidenciales
  • Incumplimiento de licencias (sanciones)
  • Degradación del rendimiento
  • Incompatibilidades con sistemas corporativos
  • Violación de políticas de seguridad
🛡️

Solución implementada

  • Bloqueo de instalación sin privilegios admin
  • Software Restriction Policies (SRP)
  • AppLocker para Windows 10/11 Pro
  • Lista blanca de aplicaciones autorizadas
  • Auditoría de intentos de instalación
  • Alertas automáticas al departamento IT
Registro — Bloqueo de instalación MSI y EXE
REG — control_software.reg
Windows Registry Editor Version 5.00

; ----- 1. Bloquear instalación de MSI por usuarios no admin -----
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
"DisableMSI"=dword:00000001            ; Bloquea MSI para no-admins
"EnableUserControl"=dword:00000000     ; Sin control de usuario sobre MSI
"AlwaysInstallElevated"=dword:00000000 ; CRÍTICO: Nunca elevar automáticamente

; ----- 2. Deshabilitar ejecución desde directorios de usuario -----
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers]
"DefaultLevel"=dword:00011000          ; 0x11000 = Restringido
"PolicyScope"=dword:00000001
"TransparentEnabled"=dword:00000001

; ----- 3. Bloquear ejecución desde Downloads y Temp -----
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{guid-downloads}]
"Description"="Bloquear Descargas"
"ItemData"="%USERPROFILE%\\Downloads\\*.exe"
"SaferFlags"=dword:00000000             ; 0 = Deshabilitado/Bloqueado

; ----- 4. Bloquear autorun de dispositivos USB -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000FF   ; 255 = Bloquear autorun en todo
"NoAutorun"=dword:00000001
AppLocker — Política de Lista Blanca
PowerShell — configurar_applocker.ps1
# AppLocker - Configuración para TechSoluciones S.L.
# Requiere Windows 10/11 Pro o Enterprise + AppIDSvc activo

# 1. Activar servicio AppLocker
Set-Service -Name AppIDSvc -StartupType Automatic
Start-Service AppIDSvc

# 2. Crear reglas base (permitir Windows y Archivos de Programa)
$policy = @"
<AppLockerPolicy Version="1">
  <RuleCollection Type="Exe" EnforcementMode="Enabled">
    <FilePathRule Id="1" Name="Permitir Windows" Action="Allow" UserOrGroupSid="S-1-1-0">
      <Conditions><FilePathCondition Path="%WINDIR%\*"/></Conditions>
    </FilePathRule>
    <FilePathRule Id="2" Name="Permitir Archivos de Programa" Action="Allow" UserOrGroupSid="S-1-1-0">
      <Conditions><FilePathCondition Path="%PROGRAMFILES%\*"/></Conditions>
    </FilePathRule>
  </RuleCollection>
  <RuleCollection Type="Msi" EnforcementMode="Enabled">
    <!-- Solo administradores pueden instalar MSI -->
  </RuleCollection>
</AppLockerPolicy>
"@

Set-AppLockerPolicy -XmlPolicy $policy
Write-Host "[OK] AppLocker configurado correctamente" -ForegroundColor Green
Software autorizado en TechSoluciones S.L.
Aplicación Versión Uso Estado
Microsoft Office 365 16.x Productividad ✓ Autorizado
Google Chrome / Edge 120+ Navegación ✓ Autorizado
7-Zip 23.x Compresión ✓ Autorizado
Antivirus Corporativo Corp. Seguridad ✓ Obligatorio
Cualquier .EXE externo No autorizado ✗ Bloqueado
Juegos / P2P / Torrent Personal ✗ Bloqueado
Escenario 03 / 08

Escritorio Estandarizado

⬤ Prioridad Media UX Corporativa Productividad
📋
Problema detectado: Los escritorios presentan desorden de iconos, accesos directos no autorizados, barra de tareas modificada y configuraciones personales que dificultan el soporte técnico remoto y reducen la productividad.
🖥️

Configuración objetivo

  • Solo iconos corporativos autorizados
  • Barra de tareas estándar (anclado: Office, Chrome, IT Soporte)
  • Sin iconos en el escritorio del usuario
  • Menú Inicio simplificado
  • Sin acceso a Papelera de reciclaje personalizable
🔒

Restricciones aplicadas

  • Bloqueo de clic derecho en escritorio
  • Sin acceso a propiedades de barra de tareas
  • Ocultar iconos del sistema no esenciales
  • Bloquear menú de personalización
Implementación en el Registro
REG — escritorio_estandarizado.reg
Windows Registry Editor Version 5.00

; ----- 1. Eliminar clic derecho en el escritorio -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoViewContextMenu"=dword:00000001      ; Sin menú contextual en escritorio
"NoTrayContextMenu"=dword:00000001      ; Sin menú contextual en bandeja
"NoDesktop"=dword:00000000             ; 1 para ocultar completamente el escritorio

; ----- 2. Bloquear barra de tareas -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"LockTaskbar"=dword:00000001           ; Bloquea posición y tamaño
"NoTaskGrouping"=dword:00000001         ; Sin agrupación de tareas
"TaskbarNoPinnedList"=dword:00000001    ; Sin cambiar programas anclados

; ----- 3. Iconos del sistema en escritorio -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
"{20D04FE0-3AEA-1069-A2D8-08002B30309D}"=dword:00000001 ; Ocultar "Este equipo"
"{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}"=dword:00000001 ; Ocultar Panel de control
"{645FF040-5081-101B-9F08-00AA002F954E}"=dword:00000000  ; Mostrar Papelera de reciclaje

; ----- 4. Bloquear menú Inicio personalización -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoChangeStartMenu"=dword:00000001     ; No modificar menú Inicio
"NoRecentDocsMenu"=dword:00000001      ; Sin documentos recientes
"ClearRecentDocsOnExit"=dword:00000001  ; Limpiar historial al cerrar sesión

; ----- 5. Configuración visual uniforme -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop]
"IconSize"=dword:00000030              ; Tamaño de icono: 48px (mediano)
"Mode"=dword:00000001                  ; Vista de iconos
Distribución de accesos directos corporativos
PowerShell — setup_escritorio_corporativo.ps1
# Crear accesos directos corporativos para todos los usuarios nuevos
# Usar C:\Users\Default\Desktop para que se copie a nuevos perfiles

$escritorioComun = "C:\Users\Public\Desktop"

# Eliminar todos los iconos existentes
Get-ChildItem $escritorioComun -Filter "*.lnk" | Remove-Item -Force

# Crear acceso directo a sistema de tickets IT
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$escritorioComun\Soporte IT.lnk")
$Shortcut.TargetPath = "https://soporte.techsoluciones.local"
$Shortcut.Save()

Write-Host "[OK] Escritorio corporativo configurado" -ForegroundColor Green
Escenario 04 / 08

Gestión de Perfiles de Usuario

⬤ Prioridad Alta Rendimiento Perfiles Móviles
👤
Problema detectado: Los perfiles de usuario se corrompen, acumulan caché excesiva y datos temporales que ralentizan el inicio de sesión, generan errores y dificultan la gestión controlada de los 30 puestos.
⏱️

Síntomas

  • Inicio de sesión lento (>2 min)
  • Errores "No se puede cargar perfil"
  • Perfiles de más de 10 GB
  • Configuraciones perdidas
🚀

Mejoras logradas

  • Inicio de sesión <30 segundos
  • Perfiles limpios y controlados
  • Reparación automática de errores
  • Gestión centralizada desde servidor
📊

Estrategia

  • Perfiles obligatorios para roles
  • Redireccionamiento de carpetas
  • Límite de tamaño de perfil
  • Limpieza automática al cerrar sesión
Configuración de Perfiles en el Registro
REG — gestion_perfiles.reg
Windows Registry Editor Version 5.00

; ----- 1. Configuración de perfiles de usuario -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DeleteRoamingCache"=dword:00000001     ; Limpia caché perfil itinerante al cerrar
"SlowLinkTimeOut"=dword:00000002        ; Tiempo límite enlace lento (ms)

; ----- 2. Límite de tamaño de perfil -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]
"ProfilesDirectory"="%SystemDrive%\\Users"
"DefaultUserProfile"="Default"

; ----- 3. Limpieza automática de temporales -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files]
"StateFlags0001"=dword:00000002        ; Habilitado para Liberador de espacio

; ----- 4. Redireccionamiento de carpetas (para perfil local pequeño) -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Desktop"="\\\\servidor\\perfiles\\%USERNAME%\\Desktop"
"My Documents"="\\\\servidor\\perfiles\\%USERNAME%\\Documents"
"AppData"="%USERPROFILE%\\AppData\\Roaming"

; ----- 5. Eliminar perfiles inactivos automáticamente -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"CleanupProfiles"=dword:0000001E       ; Eliminar perfiles inactivos +30 días

; ----- 6. Perfil temporal en caso de fallo -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"ProfileErrorAction"=dword:00000001    ; 1=Perfil temp sin notif, 2=Bloquear login
Script de reparación y mantenimiento de perfiles
PowerShell — mantenimiento_perfiles.ps1
# Script de mantenimiento de perfiles — TechSoluciones S.L.
# Ejecutar semanal via Tarea Programada como SYSTEM

$logFile = "C:\TechSoluciones\logs\perfiles_$(Get-Date -f yyyyMMdd).log"

function Write-Log($msg) {
    $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
    "[$timestamp] $msg" | Tee-Object -FilePath $logFile -Append
}

# 1. Limpiar carpetas temporales de usuarios
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
    $tempPath = "$($_.FullName)\AppData\Local\Temp"
    if (Test-Path $tempPath) {
        $size = (Get-ChildItem $tempPath -Recurse -ErrorAction SilentlyContinue | 
                  Measure-Object -Property Length -Sum).Sum / 1MB
        Remove-Item "$tempPath\*" -Recurse -Force -ErrorAction SilentlyContinue
        Write-Log "Limpiado $($_.Name): $([math]::Round($size,2)) MB"
    }
}

# 2. Detectar perfiles corruptos
$perfiles = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
foreach ($perfil in $perfiles) {
    $estado = (Get-ItemProperty $perfil.PSPath).ProfileImagePath
    if (-not (Test-Path $estado)) {
        Write-Log "⚠️ Perfil corrupto detectado: $estado"
    }
}

Write-Log "✅ Mantenimiento completado"
Escenario 05 / 08

Políticas de Seguridad Local

⬤ Prioridad Crítica Hardening Cumplimiento
🔐
Problema detectado: Configuraciones inseguras del sistema permiten cambios no autorizados, uso de contraseñas débiles, acceso a herramientas del sistema y ejecución de código no autorizado, exponiendo a TechSoluciones a riesgos de seguridad graves.
🚨

Vulnerabilidades sin hardening

  • Acceso al Administrador local habilitado
  • UAC desactivado o débil
  • Contraseñas sin caducidad
  • RDP sin restricciones
  • PowerShell sin restricciones de ejecución
  • Panel de control totalmente accesible
🛡️

Protecciones aplicadas

  • UAC en nivel máximo
  • Contraseñas mínimo 10 caracteres
  • Bloqueo tras 5 intentos fallidos
  • RDP restringido a IPs corporativas
  • PowerShell en modo RemoteSigned
  • Panel de control limitado
Hardening del Registro de Windows
REG — seguridad_local.reg
Windows Registry Editor Version 5.00

; ================================================================
; HARDENING DE SEGURIDAD — TechSoluciones S.L.
; ⚠️ PROBAR EN ENTORNO DE PRUEBAS ANTES DE DESPLEGAR
; ================================================================

; ----- 1. Control de Cuentas de Usuario (UAC) -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLUA"=dword:00000001                    ; UAC habilitado (crítico)
"ConsentPromptBehaviorAdmin"=dword:00000002   ; Pedir contraseña a admins
"ConsentPromptBehaviorUser"=dword:00000000    ; 0=Denegar automáticamente a usuarios
"PromptOnSecureDesktop"=dword:00000001        ; Escritorio seguro para prompts UAC

; ----- 2. Deshabilitar cuenta Administrador local -----
[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
; (Mejor usar: net user Administrador /active:no)

; ----- 3. Bloquear acceso a herramientas del sistema -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:00000001              ; Bloquear Administrador de tareas
"DisableRegistryTools"=dword:00000001         ; Bloquear regedit.exe a usuarios
"DisableCMD"=dword:00000002                  ; 2=Bloquear scripts CMD, no CMD interactivo

; ----- 4. Seguridad de pantalla de bloqueo -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ScreenSaverGracePeriod"="5"               ; Segundos antes de requerir contraseña
"ForceUnlockLogon"=dword:00000001
"DontDisplayLastUserName"="1"             ; No mostrar último usuario en login
"DisableCAD"=dword:00000000               ; Requerir CTRL+ALT+DEL para login

; ----- 5. Política de contraseñas (también en secpol.msc) -----
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"MaximumPasswordAge"=dword:0000005A        ; 90 días máximo
"MinimumPasswordLength"=dword:0000000A     ; 10 caracteres mínimo

; ----- 6. Deshabilitar autoplay/autorun -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000FF         ; Bloquear en todos los tipos de unidad

; ----- 7. Restringir acceso al Panel de Control -----
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoControlPanel"=dword:00000001            ; Sin Panel de Control (alternativa parcial)
"RestrictCpl"=dword:00000001               ; Solo mostrar items autorizados
Matriz de cumplimiento de seguridad
ControlMétodoClave de RegistroEstado
UAC habilitadoRegistro + GPOEnableLUA=1✓ Aplicado
Bloqueo tras fallossecpol.msc + GPOLockoutThreshold=5✓ Aplicado
Contraseña complejaGPO + secpolPasswordComplexity=1✓ Aplicado
Deshabilitar regeditRegistro usuarioDisableRegistryTools=1✓ Aplicado
Sin último usuarioRegistro HKLMDontDisplayLastUserName=1✓ Aplicado
Autorun bloqueadoRegistro HKLMNoDriveTypeAutoRun=FF✓ Aplicado
Escenario 06 / 08

Copia de Seguridad del Registro

⬤ Obligatorio Trazabilidad Recuperación
💾
Regla de oro: ANTES de aplicar cualquier política del registro, se debe realizar una copia de seguridad completa. Sin esta copia, no es posible garantizar la reversión ante errores. Este paso es no negociable en TechSoluciones S.L.
Proceso de copia — Paso a paso
01
Backup del registro completo con regedit
Abrir regedit.exe como Administrador → Seleccionar "Equipo" en la raíz → Archivo → Exportar → Guardar como backup_YYYYMMDD_antesdecambio.reg
02
Backup automatizado por script (recomendado)
Usar el script PowerShell para automatizar el proceso antes de cada despliegue de políticas.
03
Guardar en ubicación segura y documentar
Copiar al servidor: \\servidor\backups\registro\%COMPUTERNAME%\. Documentar: fecha, autor, motivo del cambio y políticas aplicadas.
04
Verificar integridad del backup
Comprobar que el archivo .REG no está vacío y tiene el encabezado correcto: Windows Registry Editor Version 5.00
Script de backup automático
PowerShell — backup_registro.ps1
# ============================================================
# BACKUP DEL REGISTRO — TechSoluciones S.L.
# Ejecutar SIEMPRE antes de aplicar cualquier política
# ============================================================

param(
    [string]$Motivo = "backup_rutinario",
    [string]$Autor = $env:USERNAME
)

$fecha    = Get-Date -Format "yyyyMMdd_HHmmss"
$equipo   = $env:COMPUTERNAME
$destino  = "\\servidor\backups\registro\$equipo"
$archivo  = "${fecha}_${Motivo}_${Autor}.reg"

# Crear directorio si no existe
New-Item -ItemType Directory -Force -Path $destino | Out-Null

# Backup de ramas clave por separado
$ramas = @{
    "HKLM_SYSTEM"   = "HKLM\SYSTEM"
    "HKLM_SOFTWARE" = "HKLM\SOFTWARE"
    "HKCU"          = "HKCU"
}

foreach ($nombre in $ramas.Keys) {
    $fichero = "$destino\${fecha}_${nombre}.reg"
    reg export $ramas[$nombre] "$fichero" /y
    if ($LASTEXITCODE -eq 0) {
        Write-Host "[OK] Backup $nombre → $fichero" -ForegroundColor Green
    } else {
        Write-Host "[ERROR] Falló backup $nombre" -ForegroundColor Red
    }
}

# Registro de auditoría
$logEntry = "$fecha | $equipo | $Autor | $Motivo"
$logEntry | Add-Content "\\servidor\backups\registro\auditoria_backups.log"

Write-Host "`n[✅] Backup completado. Puede proceder con los cambios." -ForegroundColor Cyan
Registro de auditoría — Formato de documentación
; auditoria_backups.log — TechSoluciones S.L. FECHA | EQUIPO | ADMIN | MOTIVO ───────────────────────────────────────────────────────────────── 20250115_090532 | PC-001 | admin.garcia | antes_politica_escritorio 20250115_143022 | PC-002 | admin.garcia | antes_politica_escritorio 20250116_081500 | PC-015 | admin.lopez | backup_rutinario_semanal 20250120_110245 | PC-030 | admin.garcia | antes_seguridad_hardening
🗂️

Buena práctica

Conservar backups durante 90 días mínimo. Usar nombre descriptivo con fecha, equipo y motivo para facilitar la localización rápida.

Backup urgente

Antes de cualquier actualización de Windows, cambio de configuración crítica o intervención de soporte externo, realizar backup inmediato.

☁️

Redundancia

Copias en: servidor local + nube corporativa. Nunca guardar solo en el equipo que se va a modificar.

Escenario 07 / 08

Reversión de Cambios

⬤ Plan de Emergencia Recuperación Trazabilidad
🔄
Procedimiento documentado: Ante cualquier problema derivado de políticas aplicadas, seguir este protocolo de reversión en orden estricto. Documentar cada paso ejecutado para el registro de incidencias.
Diagrama de flujo de reversión
⚠️
Detección del problema
El usuario o soporte IT detecta un comportamiento anómalo tras aplicar una política. Registrar hora, equipo afectado y síntomas en el sistema de tickets.
📋
Identificar backup correspondiente
Localizar en \\servidor\backups\registro\%COMPUTERNAME%\ el backup tomado antes del cambio problemático, verificando fecha y hora.
💾
Importar backup del registro
Ejecutar el archivo .REG del backup: doble clic (para usuarios) o reg import backup.reg desde CMD/PowerShell elevado. Confirmar aviso de seguridad.
🗑️
Eliminar claves añadidas manualmente
Si se añadieron claves nuevas (no modificadas), el .REG de backup no las elimina. Usar el script de limpieza para borrar las claves específicas de las políticas aplicadas.
🔃
Reiniciar sesión o equipo
Cerrar sesión y volver a iniciar para que los cambios del registro surtan efecto. En casos críticos, reiniciar el equipo completamente.
Verificar y documentar
Confirmar que el comportamiento ha vuelto a la normalidad. Documentar la reversión en el sistema de tickets con causa raíz, acciones tomadas y tiempo de resolución.
Script de reversión automatizada
PowerShell — reversion_politicas.ps1
# ============================================================
# REVERSIÓN DE POLÍTICAS — TechSoluciones S.L.
# Uso: .\reversion_politicas.ps1 -Escenario "escritorio" -BackupFecha "20250115"
# ============================================================

param(
    [string]$Escenario   = "escritorio",
    [string]$BackupFecha = "",
    [switch]$LimpiarClaves
)

$equipo  = $env:COMPUTERNAME
$backDir = "\\servidor\backups\registro\$equipo"

# Buscar backup más reciente si no se especifica fecha
if (-not $BackupFecha) {
    $backup = Get-ChildItem $backDir -Filter "*${Escenario}*.reg" | 
               Sort-Object LastWriteTime -Descending | 
               Select-Object -First 1
} else {
    $backup = Get-ChildItem $backDir -Filter "${BackupFecha}*${Escenario}*.reg"
}

if (-not $backup) {
    Write-Host "[ERROR] No se encontró backup para: $Escenario" -ForegroundColor Red
    exit 1
}

Write-Host "[INFO] Restaurando desde: $($backup.Name)" -ForegroundColor Yellow
$confirmar = Read-Host "¿Confirmar reversión? (S/N)"
if ($confirmar -ne "S") { exit 0 }

# Importar backup
reg import "$($backup.FullName)"
Write-Host "[OK] Backup importado" -ForegroundColor Green

# Eliminar claves específicas de la política (si se indica)
if ($LimpiarClaves) {
    switch ($Escenario) {
        "escritorio" {
            reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /f
            reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /f
            Write-Host "[OK] Claves de escritorio eliminadas" -ForegroundColor Green
        }
        "seguridad" {
            reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableRegistryTools" /f
            Write-Host "[OK] Claves de seguridad eliminadas" -ForegroundColor Green
        }
    }
}

Write-Host "`n[✅] Reversión completada. Reinicie la sesión para aplicar cambios." -ForegroundColor Cyan

# Registrar reversión en log
"$(Get-Date -f 'yyyy-MM-dd HH:mm:ss') | REVERSIÓN | $equipo | $Escenario | $env:USERNAME" |
    Add-Content "\\servidor\backups\registro\auditoria_reversiones.log"
Buenas prácticas de reversión
📝
Documentar siempre
Registrar la reversión en el sistema de tickets con causa, acciones y tiempo de resolución.
🖥️
Usar Máquina Virtual
Probar TODAS las políticas en VM antes de desplegar en producción. Crear snapshot antes de aplicar.
🧪
Pruebas controladas
Aplicar cambios en 1 equipo piloto, esperar 24h y verificar antes de desplegar a los 30 puestos.
Ventana de mantenimiento
Aplicar cambios fuera del horario laboral (ej: 22:00-06:00) para minimizar impacto.
Escenario 08 / 08

Políticas de Actualización

⬤ Prioridad Media-Alta Windows Update WSUS / WUfB
🔄
Problema detectado: Las actualizaciones automáticas de Windows reinician los equipos durante la jornada laboral sin previo aviso, interrumpiendo el trabajo de los usuarios, cerrando aplicaciones y causando pérdida de datos no guardados.
💥

Impacto sin control

  • Reinicios inesperados en horario laboral
  • Pérdida de trabajo no guardado
  • Interrupciones en videoconferencias
  • Actualizaciones incompatibles no testadas
  • Sin ventana de mantenimiento definida
📅

Flujo controlado

  • Actualizaciones solo en horario nocturno
  • Aprobación de admin antes de instalar
  • Reinicios programados: domingos 03:00h
  • 7 días de aplazamiento si es urgente
  • Notificación previa al usuario
Control de Windows Update mediante Registro
REG — politica_actualizaciones.reg
Windows Registry Editor Version 5.00

; ============================================================
; POLÍTICA DE ACTUALIZACIONES — TechSoluciones S.L.
; Actualizaciones automáticas controladas y programadas
; ============================================================

; ----- 1. Configuración principal de Windows Update -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"NoAutoUpdate"=dword:00000000           ; 0=Actualizar (no deshabilitar), 1=Deshabilitar
"AUOptions"=dword:00000003              ; 2=Notif, 3=Auto-descargar+notif install, 4=Auto todo
"ScheduledInstallDay"=dword:00000001   ; 0=Diario, 1=Dom, 2=Lun ... 7=Sáb
"ScheduledInstallTime"=dword:00000003  ; Hora: 3 = 03:00 AM
"AutoInstallMinorUpdates"=dword:00000001 ; Instalar actualizaciones menores auto
"UseWUServer"=dword:00000001            ; Usar servidor WSUS interno (si aplica)

; ----- 2. Aplazamiento de actualizaciones de características -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"DeferFeatureUpdates"=dword:00000001   ; Aplazar actualizaciones de características
"DeferFeatureUpdatesPeriodInDays"=dword:0000001E ; 30 días de aplazamiento
"DeferQualityUpdates"=dword:00000001   ; Aplazar actualizaciones de calidad
"DeferQualityUpdatesPeriodInDays"=dword:00000007 ; 7 días (para testear)

; ----- 3. Control de reinicios -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
"NoAutoRebootWithLoggedOnUsers"=dword:00000001 ; ¡Sin reinicio si hay usuarios!
"RebootRelaunchTimeoutEnabled"=dword:00000001
"RebootRelaunchTimeout"=dword:000005A0 ; 1440 min (24h) para recordar reinicio
"RebootWarningTimeoutEnabled"=dword:00000001
"RebootWarningTimeout"=dword:0000001E  ; 30 minutos de aviso antes de reiniciar

; ----- 4. Servidor WSUS interno (si TechSoluciones lo usa) -----
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate]
"WUServer"="http://wsus.techsoluciones.local:8530"
"WUStatusServer"="http://wsus.techsoluciones.local:8530"
"TargetGroup"="PuestosProduccion"
Calendario de mantenimiento y actualizaciones
Tipo de actualizaciónAplazamientoVentana de instalaciónReinicio
Seguridad crítica (0-day) 0 días — Urgente Inmediata (con aprobación IT) Fuera de horario
Calidad / Parches mensuales 7 días Domingos 03:00 - 06:00h Automático (sin usuarios)
Actualizaciones de características 30 días Primer domingo de mes Con aviso 30 min
Controladores (Drivers) Manual Solo con aprobación IT Programado
Script de verificación de estado de actualizaciones
PowerShell — estado_actualizaciones.ps1
# Verificar estado de actualizaciones en todos los equipos
# TechSoluciones S.L. — Informe mensual de cumplimiento

$equipos = Get-ADComputer -Filter 'OperatingSystem -like "*Windows*"' | 
             Select-Object -ExpandProperty Name

$informe = @()

foreach ($pc in $equipos) {
    try {
        $session = New-PSSession -ComputerName $pc -ErrorAction Stop
        $datos = Invoke-Command -Session $session -ScriptBlock {
            $wu = New-Object -ComObject Microsoft.Update.AutoUpdate
            @{
                Equipo        = $env:COMPUTERNAME
                UltimaUpdate  = (Get-HotFix | Sort-Object InstalledOn -Desc | Select-Object -First 1).InstalledOn
                PendienteRein = (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired")
            }
        }
        $informe += [PSCustomObject]$datos
        Remove-PSSession $session
    } catch {
        $informe += [PSCustomObject]@{ Equipo = $pc; UltimaUpdate = "ERROR"; PendienteRein = "N/A" }
    }
}

$informe | Export-Csv "\\servidor\informes\actualizaciones_$(Get-Date -f yyyyMM).csv" -NoTypeInformation
Write-Host "[✅] Informe generado para $($informe.Count) equipos" -ForegroundColor Cyan
Resumen ejecutivo — Los 8 escenarios implementados
#EscenarioClave principalPrioridadEstado
1Escritorio corporativoNoChangingWallpaper=1Alta
2Control de softwareDisableMSI=1Alta
3Escritorio estandarizadoLockTaskbar=1Media
4Perfiles de usuarioCleanupProfiles=30Alta
5Seguridad localEnableLUA=1Crítica
6Copia de seguridadScript automáticoObligatorio
7Reversión de cambiosProcedimiento documentadoAlta
8ActualizacionesNoAutoRebootWithLoggedOnUsers=1Media-Alta