Escenario 01 / 08
Política de Escritorio Corporativo
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
📍 Ruta GPO: Configuración de usuario → Escritorio
📍 regedit.exe → HKCU\Control Panel\Desktop
🏢
Fondo Corporativo
TechSoluciones S.L.
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)
📁 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
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
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
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
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
| Control | Método | Clave de Registro | Estado |
|---|---|---|---|
| UAC habilitado | Registro + GPO | EnableLUA=1 | ✓ Aplicado |
| Bloqueo tras fallos | secpol.msc + GPO | LockoutThreshold=5 | ✓ Aplicado |
| Contraseña compleja | GPO + secpol | PasswordComplexity=1 | ✓ Aplicado |
| Deshabilitar regedit | Registro usuario | DisableRegistryTools=1 | ✓ Aplicado |
| Sin último usuario | Registro HKLM | DontDisplayLastUserName=1 | ✓ Aplicado |
| Autorun bloqueado | Registro HKLM | NoDriveTypeAutoRun=FF | ✓ Aplicado |
Escenario 06 / 08
Copia de Seguridad del Registro
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.reg02
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.00Script 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
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
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ón | Aplazamiento | Ventana de instalación | Reinicio |
|---|---|---|---|
| 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
| # | Escenario | Clave principal | Prioridad | Estado |
|---|---|---|---|---|
| 1 | Escritorio corporativo | NoChangingWallpaper=1 | Alta | ✓ |
| 2 | Control de software | DisableMSI=1 | Alta | ✓ |
| 3 | Escritorio estandarizado | LockTaskbar=1 | Media | ✓ |
| 4 | Perfiles de usuario | CleanupProfiles=30 | Alta | ✓ |
| 5 | Seguridad local | EnableLUA=1 | Crítica | ✓ |
| 6 | Copia de seguridad | Script automático | Obligatorio | ✓ |
| 7 | Reversión de cambios | Procedimiento documentado | Alta | ✓ |
| 8 | Actualizaciones | NoAutoRebootWithLoggedOnUsers=1 | Media-Alta | ✓ |