Windows Server 2025 — Guía Completa

Windows Server 2025 — Guía Completa | GPS-971.com
GPS-971.com · Guía Técnica 2026 · Windows Server

Windows Server
2025

La guía técnica más completa para instalación, configuración avanzada, Active Directory, seguridad zero-trust, Hyper-V, Azure Arc, SDN y mantenimiento preventivo en entornos empresariales modernos.

22
Secciones técnicas
160+
Comandos CMD/PS
Oct 2034
Fin soporte extendido
4
Ediciones cubiertas
AD 2025
Forest/Domain level
Hotpatch
Sin reinicio (Azure Ed.)
ℹ️
Sobre esta guía: Cubre Windows Server 2025 en sus ediciones Standard, Datacenter, Datacenter: Azure Edition y la nueva edición Essentials 2025. Soporte extendido hasta octubre 2034. Todos los comandos requieren PowerShell o CMD como Administrador salvo indicación contraria.
⬛ NOVEDADES WS2025
🆕
00 · Introducción

Novedades y Mejoras vs. WS2022

Active Directory 2025, SMB sobre QUIC, Hotpatch sin reinicio, SDN nativo y seguridad avanzada.

Referencia
StandardDatacenterAzure EditionEssentials
🗄️

Active Directory 2025

Nuevo nivel funcional de bosque y dominio. Soporte nativo para grupos de hasta 10.000 miembros sin degradación de rendimiento. Delegación constrained mejorada.

🌐

SMB sobre QUIC

Acceso a carpetas compartidas sin VPN a través de Internet, cifrado TLS 1.3 end-to-end sobre el protocolo QUIC. Ideal para trabajadores remotos y sucursales.

🔥

Hotpatch sin reinicio

Aplicar parches de seguridad críticos sin reiniciar el servidor (Azure Edition). Reduce ventanas de mantenimiento y tiempo de inactividad en producción.

🔐

Secured-Core mejorado

DRTM (Dynamic Root of Trust for Measurement), HVCI habilitado por defecto, protección de firmware y arranque medido integrados en la instalación base.

🌍

SDN nativo

Software Defined Networking integrado en Datacenter. Redes virtuales, microsegmentación y balanceadores de carga software sin hardware adicional.

🐳

Contenedores Gen 2

Imágenes Windows Server Core 2025 un 40% más pequeñas. Soporte para eBPF en Windows para visibilidad de red avanzada en contenedores Kubernetes.

🔄

Storage Replica v2

Replicación síncrona y asíncrona mejorada entre volúmenes o servidores. Failover más rápido y menor RPO/RTO para datos críticos.

🛡️

Windows LAPS moderno

LAPS nativo en AD 2025 sin extensión adicional. Rotación automática de contraseñas de administrador local, backup en Azure AD o AD on-premises.

Comparativa de ediciones WS2025

CaracterísticaEssentialsStandardDatacenterAzure Edition
Licencia25 usuarios / 50 dispositivos2 VMs / 16 coresVMs ilimitadasAzure Arc / Azure
Hyper-V VMs2 VMs✅ Ilimitadas✅ Ilimitadas
Storage Spaces Direct
SMB sobre QUICClientes✅ Server✅ Server
Hotpatch sin reinicio
SDN (HNV)
AD Forest Level 2025
Windows LAPS nativo
⬛ PRE-INSTALACIÓN
📋
01 · Pre-instalación

Requisitos de Hardware y Lista de Verificación

Hardware mínimo y recomendado por edición, TPM 2.0, Secure Boot, y checklist completo pre-instalación.

Básico
StandardDatacenterAzure Ed.Essentials
🧠

CPU

Mín: 1.4 GHz x64 (64-bit)
✦ Rec: 3.0+ GHz multi-core
💾

RAM

Mín: 512 MB (Core) / 2 GB (GUI)
✦ Rec: 32 GB ECC para DC
🖴

Disco Sistema

Mín: 32 GB
✦ Rec: 100 GB NVMe SSD
🌐

Red

Mín: 1 NIC Ethernet
✦ Rec: 2× 10 Gbps (LACP)
🔐

TPM

TPM 2.0 obligatorio
✦ Req: Secured-Core Server
📺

UEFI

UEFI 2.3.1+ (sin CSM)
✦ Secure Boot habilitado
⚠️
TPM 2.0 es obligatorio en WS2025 para las características de seguridad Secured-Core. Sin TPM 2.0 no podrás habilitar Credential Guard, HVCI ni BitLocker con protector TPM. Verifica en BIOS/UEFI antes de instalar.

Lista de verificación previa

  • BIOS/UEFI actualizado — Verifica y actualiza al firmware más reciente estable del fabricante del servidor.
  • UEFI activado + CSM deshabilitado — Imprescindible para GPT, Secure Boot y TPM 2.0.
  • Secure Boot habilitado — WS2025 lo requiere para Secured-Core. Verifica en BIOS → Security → Secure Boot → Enabled.
  • TPM 2.0 habilitado y activo — BIOS → Security → TPM → Enabled. Confirma con tpm.msc tras instalar.
  • HVCI compatible — Verifica en el fabricante que el CPU y chipset soportan Virtualization-Based Security (VT-x + VT-d).
  • Drivers de NIC/RAID/Almacenamiento descargados — Del fabricante del servidor en USB separado.
  • IP estática planificada — IP, máscara de subred, puerta de enlace, DNS primario/secundario.
  • Nombre del servidor decidido — Máx. 15 caracteres, sin espacios: SRV-DC-01, SRV-FS-01.
  • Dominio definido — Ej: empresa.local o ad.empresa.com. Anota la contraseña DSRM.
  • Licencia disponible — Clave MAK, KMS, suscripción MPSA o Azure Hybrid Benefit.
  • Backup completo de sistemas existentes — Antes de cualquier migración desde WS2019/2022.
  • USB booteable preparado — Rufus 4.x con esquema GPT + UEFI.

Crear USB booteable y verificar ISO

PowerShell
# Verificar integridad del ISO antes de instalar Get-FileHash "C:\Downloads\WindowsServer2025.iso" -Algorithm SHA256 | Format-List # Comparar con el hash oficial de Microsoft Volume Licensing Center # Rufus — configuración recomendada para WS2025: # Esquema de partición: GPT # Sistema destino: UEFI (no CSM) # Sistema archivos: NTFS # Tamaño del clúster: 4096 bytes # Descargar Rufus: https://rufus.ie
⬛ INSTALACIÓN
💿
02 · Instalación

Instalación Paso a Paso — GUI, Server Core y LTSC

Proceso completo, particionado recomendado con múltiples discos, elección de edición y activación.

Intermedio
StandardDatacenter⚠ Backup previo
01 Boot USB
02 Idioma
03 Edición
04 Tipo inst.
05 Partición
06 Instalando
07 OOBE
08 Post-install

GUI vs. Server Core vs. Azure Core

🖥️ Desktop Experience

  • GUI completa, Server Manager, MMC
  • Ideal: DC principal, servidores de archivo, RDS
  • Mayor consumo RAM (+1 GB)
  • Mayor superficie de ataque

⌨️ Server Core

  • Solo CLI + PowerShell local
  • Ideal: Hyper-V host, DC secundario, web
  • Menor footprint, menos parches
  • Administración remota via RSAT/WinRM

☁️ Azure Core Edition

  • Optimizado para Azure Arc
  • Hotpatch sin reinicio
  • Telemetría Azure nativa
  • Solo disponible en Azure o Arc

Particionado recomendado — Servidor de producción

Esquema de discos recomendado
╔═════════════════════════════════════════════════════════════╗ ║ Servidor con 2 SSDs NVMe (120 GB SO + 2 TB Datos) ║ ╚═════════════════════════════════════════════════════════════╝ ── DISCO 0 — SSD NVMe 120 GB (Solo sistema operativo) ────── Partición EFI: 300 MB → Auto (Setup) Partición MSR: 16 MB → Auto (Setup) Partición C:\: 80 GB → Windows Server 2025 Partición Recup: 984 MB → Auto (Setup) ── DISCO 1 — SSD/HDD 2 TB (Datos empresariales) ──────────── Partición D:\: 100 GB → AD DS (NTDS, SYSVOL, logs) Partición E:\: 1.2 TB → Carpetas compartidas / DFS Partición F:\: 700 GB → Backups locales WSB REGLA CRÍTICA: Nunca almacenes NTDS ni datos en C:\ Si reinstalaas el SO, el dominio queda intacto en D:\

Post-instalación — Activación y verificación

CMD — Admin
:: Verificar edición e información del SO winver wmic os get Caption, Version, BuildNumber, OSArchitecture :: Estado de activación slmgr /dli slmgr /dlv :: Introducir clave de producto y activar online slmgr /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX slmgr /ato :: Activar con servidor KMS corporativo slmgr /skms kms-server.empresa.local:1688 slmgr /ato :: Convertir Server Core a Desktop Experience (necesita media) powershell Install-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -Source D:\Sources\SxS -Restart :: Quitar GUI (pasar a Server Core — más seguro) powershell Uninstall-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -Restart
⬛ CONFIGURACIÓN INICIAL
🔧
03 · Post-instalación

Configuración Inicial — SConfig, NTP y Roles Base

Nombre del servidor, SConfig, zona horaria, NTP, RSAT, política de contraseñas y hardening básico.

Intermedio
StandardDatacenterPowerShell⚠ Admin

SConfig — Configuración interactiva inicial

CMD / PowerShell — Admin
:: Abrir SConfig (esencial en Server Core) SConfig 1 → Unir al dominio / grupo de trabajo 2 → Cambiar nombre del servidor 4 → Habilitar / deshabilitar Escritorio Remoto 5 → Configurar Windows Update (Automático / Manual) 6 → Descargar e instalar actualizaciones 8 → Configuración de red (IP estática) 9 → Fecha, hora y zona horaria 11 → Telemetría de Windows 14 → Salir a PowerShell 15 → Reiniciar el servidor

Nombre, zona horaria y NTP

PowerShell — Admin
# Cambiar nombre del servidor y reiniciar Rename-Computer -NewName "SRV-DC-01" -Force -Restart # Configurar zona horaria Set-TimeZone -Id "Romance Standard Time" # España peninsular Set-TimeZone -Id "Central European Standard Time" # CET (Alemania, Francia) Set-TimeZone -Id "UTC" # UTC para DCs # Listar zonas disponibles Get-TimeZone -ListAvailable | Where-Object {$_.Id -like "*Europe*"} # Configurar NTP con pool público de España w32tm /config /syncfromflags:manual /manualpeerlist:"0.es.pool.ntp.org 1.es.pool.ntp.org 2.es.pool.ntp.org" /reliable:YES /update net stop w32time && net start w32time w32tm /resync /force w32tm /query /status

Instalar RSAT y herramientas de gestión

PowerShell — Admin
# Instalar todas las herramientas RSAT Install-WindowsFeature RSAT -IncludeAllSubFeature -IncludeManagementTools # O instalar individualmente solo lo necesario Install-WindowsFeature RSAT-AD-Tools # Usuarios y equipos de AD Install-WindowsFeature RSAT-DNS-Server # Administrador DNS Install-WindowsFeature RSAT-DHCP # Administrador DHCP Install-WindowsFeature GPMC # Consola de directiva de grupo Install-WindowsFeature RSAT-Hyper-V-Tools # Administrador Hyper-V Install-WindowsFeature RSAT-File-Services # Servicios de archivo y almacenamiento Install-WindowsFeature WindowsAdminCenter # WAC (nuevo en WS2025) # Ver roles instalados Get-WindowsFeature | Where-Object {$_.InstallState -eq "Installed"} | Format-Table Name, DisplayName -AutoSize

Política de contraseñas y seguridad inicial

CMD — Admin
:: Política de contraseñas robusta net accounts /minpwlen:14 /maxpwage:90 /minpwage:1 /uniquepw:12 :: Bloqueo: 5 intentos → 30 min bloqueo net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30 :: Renombrar cuenta Administrador (dificulta ataques de fuerza bruta) wmic useraccount where name='Administrator' rename 'SrvAdm2025' :: Crear cuenta admin de respaldo con nombre no obvio net user "BkpSrvAdmin" "C0mpl3x!B@ck2025" /add /passwordchg:no /expires:never net localgroup Administrators "BkpSrvAdmin" /add :: Deshabilitar cuenta Guest net user Guest /active:no :: Abrir editor de directivas de seguridad local secpol.msc
🌐
04 · Networking

Red — IP Estática, DNS, DHCP, NIC Teaming y SMB/QUIC

Configuración completa de red incluyendo SMB sobre QUIC (novedad WS2025), NIC Teaming y DoH.

Intermedio
StandardDatacenterPowerShell⚠ Admin
⚠️
IP estática obligatoria en el servidor DC/DNS. Un cambio de IP rompe la autenticación Kerberos de todos los clientes del dominio. Configura ANTES de promover el servidor a controlador de dominio.

Configurar IP estática

PowerShell — Admin
# Ver adaptadores de red Get-NetAdapter | Select-Object Name, InterfaceIndex, Status, LinkSpeed, MacAddress # Eliminar configuración DHCP existente Remove-NetIPAddress -InterfaceAlias "Ethernet" -Confirm:$false -ErrorAction SilentlyContinue Remove-NetRoute -InterfaceAlias "Ethernet" -Confirm:$false -ErrorAction SilentlyContinue # Asignar IP estática New-NetIPAddress ` -InterfaceAlias "Ethernet" ` -IPAddress "192.168.1.10" ` -PrefixLength 24 ` -DefaultGateway "192.168.1.1" # DNS: sí mismo primario (DC), externo de respaldo Set-DnsClientServerAddress -InterfaceAlias "Ethernet" ` -ServerAddresses "192.168.1.10", "1.1.1.1" # Deshabilitar IPv6 si no se usa Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6 # Verificar configuración final Get-NetIPConfiguration

SMB sobre QUIC — Novedad WS2025 (Datacenter)

PowerShell — Admin
# SMB sobre QUIC permite acceso a carpetas compartidas vía Internet # sin VPN, con TLS 1.3 end-to-end. Solo disponible en Datacenter y Azure Ed. # Habilitar SMB sobre QUIC en el servidor Enable-SmbServerNetworkInterface -InterfaceAlias "Ethernet" -TransportProtocol QUIC # Configurar certificado TLS para QUIC (requiere cert válido) New-SmbServerCertificateMapping ` -Name "QUICSMBCert" ` -Thumbprint "AAABBB..." ` -StoreName "My" ` -Subject "servidor.empresa.com" # Conectar desde cliente Windows 11 / WS2025 via QUIC net use Z: \\servidor.empresa.com\Compartido /transport:quic /persistent:yes # Verificar configuración SMB Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, EnableSMBCompression, EnableQuic

NIC Teaming y DHCP

PowerShell — Admin
# NIC Teaming (LACP con balanceo dinámico) New-NetLbfoTeam -Name "Team-Prod" ` -TeamMembers "Ethernet","Ethernet 2" ` -TeamingMode LACP ` -LoadBalancingAlgorithm Dynamic # Instalar y autorizar servidor DHCP Install-WindowsFeature DHCP -IncludeManagementTools Add-DhcpServerInDC # Crear scope DHCP Add-DhcpServerv4Scope -Name "Red Corporativa" ` -StartRange "192.168.1.100" ` -EndRange "192.168.1.200" ` -SubnetMask "255.255.255.0" ` -LeaseDuration (New-TimeSpan -Hours 8) ` -State Active # Opciones de scope Set-DhcpServerv4OptionValue -ScopeId "192.168.1.0" ` -Router "192.168.1.1" ` -DnsServer "192.168.1.10" ` -DnsDomain "empresa.local" # Excluir IPs de infraestructura estática (1-99) Add-DhcpServerv4ExclusionRange -ScopeId "192.168.1.0" ` -StartRange "192.168.1.1" ` -EndRange "192.168.1.99"
🗄️
05 · Active Directory Domain Services 2025

Active Directory 2025 — Forest Level, OUs y Replicación

Nuevo nivel funcional 2025, instalación del bosque, estructura de OUs, GPOs, FSMO y DC secundario.

Avanzado
StandardDatacenterPowerShell⚠ Admin
Nuevo en WS2025 — Forest/Domain Level 10

Windows Server 2025 introduce el nivel funcional 10 (WS2025). Habilita soporte nativo para grupos con más de 10.000 miembros sin impacto en rendimiento, autenticación Kerberos mejorada y delegación Kerberos constrained basada en recursos desde Azure AD.

Instalar primer controlador de dominio

PowerShell — Admin
# Paso 1: Instalar el rol AD DS + herramientas Install-WindowsFeature AD-Domain-Services, DNS -IncludeManagementTools # Paso 2: Promover a primer DC del bosque con nivel funcional WS2025 Install-ADDSForest ` -DomainName "empresa.local" ` -DomainNetbiosName "EMPRESA" ` -ForestMode WS2025 ` -DomainMode WS2025 ` -DatabasePath "D:\NTDS" ` -LogPath "D:\NTDS\Logs" ` -SysvolPath "D:\SYSVOL" ` -SafeModeAdministratorPassword ` (ConvertTo-SecureString "D$RM@S3cur3_2025!" -AsPlainText -Force) ` -InstallDns -Force # El servidor se reinicia automáticamente tras promover # Promover DC secundario a dominio existente Install-ADDSDomainController ` -DomainName "empresa.local" ` -Credential (Get-Credential "empresa\Administrator") ` -DatabasePath "D:\NTDS" ` -LogPath "D:\NTDS\Logs" ` -SysvolPath "D:\SYSVOL" ` -InstallDns -Force

Estructura de OUs — Diseño corporativo

PowerShell — Admin
# Crear jerarquía completa de OUs $dn = "DC=empresa,DC=local" New-ADOrganizationalUnit -Name "EMPRESA" -Path $dn -ProtectedFromAccidentalDeletion $true $r = "OU=EMPRESA,$dn" # OUs de primer nivel @("Usuarios","Equipos","Grupos","Servidores","Cuentas Servicio","Deshabilitados") | ForEach-Object { New-ADOrganizationalUnit -Name $_ -Path $r -ProtectedFromAccidentalDeletion $true } # Sub-OUs de usuarios por departamento $uOU = "OU=Usuarios,$r" @("Dirección","TI","Ventas","Contabilidad","RRHH","Operaciones") | ForEach-Object { New-ADOrganizationalUnit -Name $_ -Path $uOU } # Sub-OUs de equipos $eOU = "OU=Equipos,$r" @("Portátiles","Escritorio","Quioscos") | ForEach-Object { New-ADOrganizationalUnit -Name $_ -Path $eOU } # Elevar nivel funcional del dominio/bosque a WS2025 (si venías de WS2022) Set-ADDomainMode -Identity "empresa.local" -DomainMode Windows2025Domain Set-ADForestMode -Identity "empresa.local" -ForestMode Windows2025Forest

GPOs, diagnóstico y FSMO

CMD / PowerShell — Admin
:: Diagnóstico completo del DC dcdiag /test:all /v /f:C:\Logs\dcdiag.txt :: Estado de replicación repadmin /replsummary repadmin /showrepl * /errorsonly :: Ver roles FSMO actuales netdom query fsmo :: Forzar replicación AD inmediata repadmin /syncall /AdeP :: Forzar actualización de directivas en todos los equipos del dominio powershell -c "Get-ADComputer -Filter * | ForEach-Object { Invoke-GPUpdate -Computer $_.Name -Force -ErrorAction SilentlyContinue }" :: Abrir consola de GPO gpmc.msc :: Generar informe de directivas aplicadas al equipo local gpresult /h C:\Logs\gpresult.html /f
👤
06 · Gestión de Usuarios, Grupos y LAPS

Usuarios, Grupos, FGPP y Windows LAPS nativo

CRUD de usuarios AD, grupos de seguridad, FGPP, importación CSV y Windows LAPS 2025 (sin extensión).

Intermedio
StandardDatacenterPowerShell⚠ Admin
PowerShell — Admin
# Crear usuario con atributos completos New-ADUser ` -Name "Ana Torres" ` -SamAccountName "atorres" ` -UserPrincipalName "atorres@empresa.local" ` -GivenName "Ana" ` -Surname "Torres" ` -DisplayName "Ana Torres" ` -Department "Tecnología" ` -Title "Ingeniera de Sistemas" ` -Path "OU=TI,OU=Usuarios,OU=EMPRESA,DC=empresa,DC=local" ` -AccountPassword (ConvertTo-SecureString "T3mpP@ss2025!" -AsPlainText -Force) ` -Enabled $true -ChangePasswordAtLogon $true # Operaciones frecuentes Disable-ADAccount -Identity "atorres" Enable-ADAccount -Identity "atorres" Unlock-ADAccount -Identity "atorres" Remove-ADUser -Identity "atorres" -Confirm:$false Set-ADAccountPassword -Identity "atorres" ` -NewPassword (ConvertTo-SecureString "NuevoP@ss2025!" -AsPlainText -Force) -Reset # Usuarios inactivos: sin login en 90 días $d90 = (Get-Date).AddDays(-90) Get-ADUser -Filter {LastLogonDate -lt $d90 -and Enabled -eq $true} ` -Properties LastLogonDate | Select-Object Name, SamAccountName, LastLogonDate # Importar usuarios desde CSV # CSV: Name,Sam,Department,Title,Path,Password Import-Csv "C:\Admin\nuevos-usuarios.csv" | ForEach-Object { New-ADUser -Name $_.Name -SamAccountName $_.Sam ` -Department $_.Department -Title $_.Title -Path $_.Path ` -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) ` -Enabled $true -ChangePasswordAtLogon $true Write-Host "✓ $($_.Name)" -ForegroundColor Green }

Windows LAPS 2025 — Gestión de contraseñas locales

PowerShell — Admin
# Windows LAPS está integrado nativamente en WS2025 + AD 2025 # Sin necesidad de instalar extensiones adicionales como en versiones anteriores # Actualizar esquema AD para LAPS 2025 Update-LapsADSchema # Configurar permisos LAPS en la OU de equipos Set-LapsADComputerSelfPermission -Identity "OU=Equipos,OU=EMPRESA,DC=empresa,DC=local" # Configurar LAPS vía GPO (objeto: Computer → Administrative Templates → LAPS) # O directamente en PowerShell: New-LapsGpoScript -GpoName "POL-LAPS-Equipos" ` -PasswordLength 20 ` -PasswordComplexity Large ` -PasswordExpirationAge 30 ` -BackupDirectory ActiveDirectory # Leer contraseña LAPS de un equipo (solo Admins) Get-LapsADPassword -Identity "PC-USUARIO01" -AsPlainText # Forzar rotación inmediata de contraseña LAPS Reset-LapsPassword -Identity "PC-USUARIO01" # Ver historial de contraseñas LAPS (nuevas en WS2025) Get-LapsADPassword -Identity "PC-USUARIO01" -IncludeHistory
📁
07 · File & Storage Services

Almacenamiento — DFS, SMB Comprimido, Cuotas y Storage Replica

Carpetas compartidas SMB 3.1.1, DFS Namespace, cuotas FSRM y Storage Replica para HA.

Intermedio
StandardDatacenterPowerShell⚠ Admin
PowerShell — Admin
# Deshabilitar SMBv1 (crítico de seguridad) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false # Habilitar compresión SMB y cifrado Set-SmbServerConfiguration ` -EnableSMBCompression $true ` -EncryptData $true ` -Confirm:$false # Crear estructura de directorios en E:\ $dirs = @("E:\Empresa\General","E:\Empresa\Proyectos", "E:\Departamentos\TI","E:\Departamentos\RRHH", "E:\Departamentos\Contabilidad","E:\Usuarios") $dirs | ForEach-Object { New-Item -Path $_ -ItemType Directory -Force } # Compartir carpeta con enumeración de acceso (ABE) New-SmbShare -Name "Empresa" ` -Path "E:\Empresa" ` -FullAccess "EMPRESA\Domain Admins" ` -ChangeAccess "EMPRESA\Domain Users" ` -FolderEnumerationMode AccessBased ` -Description "Documentación corporativa" ` -CachingMode None # Permisos NTFS con icacls (herramienta más precisa) icacls "E:\Departamentos\RRHH" /inheritance:r icacls "E:\Departamentos\RRHH" /grant "EMPRESA\GRP-RRHH:(OI)(CI)M" /T icacls "E:\Departamentos\RRHH" /grant "EMPRESA\Domain Admins:(OI)(CI)F" /T # Configurar carpeta home por usuario Get-ADUser -Filter * | ForEach-Object { $path = "E:\Usuarios\$($_.SamAccountName)" New-Item -Path $path -ItemType Directory -Force Set-ADUser $_ -HomeDirectory "\\SRV-FS-01\Usuarios\$($_.SamAccountName)" -HomeDrive H: }

Storage Replica — Replicación entre servidores (Datacenter)

PowerShell — Admin
# Instalar rol Storage Replica (requiere Datacenter) Install-WindowsFeature Storage-Replica -IncludeManagementTools # Comprobar si el hardware cumple requisitos Test-SRTopology ` -SourceComputerName "SRV-FS-01" ` -SourceVolumeName "E:" ` -SourceLogVolumeName "L:" ` -DestinationComputerName "SRV-FS-02" ` -DestinationVolumeName "E:" ` -DestinationLogVolumeName "L:" ` -DurationInMinutes 1 -ResultPath "C:\SR-Test" # Crear replicación síncrona (RPO = 0, requiere baja latencia) New-SRPartnership ` -SourceComputerName "SRV-FS-01" ` -SourceRGName "RG-Origen" ` -SourceVolumeName "E:" ` -SourceLogVolumeName "L:" ` -DestinationComputerName "SRV-FS-02" ` -DestinationRGName "RG-Destino" ` -DestinationVolumeName "E:" ` -DestinationLogVolumeName "L:" # Ver estado de replicación Get-SRGroup Get-SRPartnership
🖥️
08 · Hyper-V

Hyper-V — VMs, vSwitches, Réplica y Live Migration

Instalación de Hyper-V, creación y gestión de VMs, Virtual Switches, Hyper-V Replica y migración en vivo.

Avanzado
Standard (2 VMs)Datacenter (ilimitadas)⚠ Admin
💡
Hyper-V en WS2025: soporta VMs de 4ª generación con vTPM, Secure Boot de invitados, vNUMA, Persistent Memory y arranque desde NVMe. El host necesita HVCI habilitado para máxima seguridad.
PowerShell — Admin
# Instalar Hyper-V Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart # Configurar ruta por defecto para VMs y VHDs Set-VMHost ` -VirtualMachinePath "D:\HyperV\VMs" ` -VirtualHardDiskPath "D:\HyperV\VHDs" # Crear Virtual Switches New-VMSwitch -Name "vSwitch-Externo" ` -NetAdapterName "Team-Prod" ` -AllowManagementOS $true New-VMSwitch -Name "vSwitch-Interno" -SwitchType Internal New-VMSwitch -Name "vSwitch-Privado" -SwitchType Private # Crear VM con Generación 2, vTPM y Secure Boot New-VM -Name "VM-WebSrv-01" ` -MemoryStartupBytes 4GB ` -Generation 2 ` -NewVHDPath "D:\HyperV\VHDs\VM-WebSrv-01.vhdx" ` -NewVHDSizeBytes 80GB ` -SwitchName "vSwitch-Externo" # Configurar la VM: CPU, RAM dinámica, vTPM Set-VM -Name "VM-WebSrv-01" ` -ProcessorCount 4 ` -DynamicMemory ` -MemoryMinimumBytes 1GB ` -MemoryMaximumBytes 8GB # Añadir vTPM (para Secure Boot del invitado) Enable-VMTPM -VMName "VM-WebSrv-01" # Iniciar VM y conectar con ISO Add-VMDvdDrive -VMName "VM-WebSrv-01" -Path "D:\ISOs\WS2025.iso" Start-VM -Name "VM-WebSrv-01" vmconnect.exe localhost "VM-WebSrv-01" # Ver estado de todas las VMs Get-VM | Select-Object Name, State, CPUUsage, MemoryAssigned, Uptime | Format-Table -AutoSize # Crear snapshot / checkpoint Checkpoint-VM -Name "VM-WebSrv-01" -SnapshotName "Antes-de-actualización-$(Get-Date -f 'yyyyMMdd')" # Configurar Hyper-V Replica (DR básico) Set-VMReplication -VMName "VM-WebSrv-01" ` -ReplicaServerName "SRV-HV-REPLICA" ` -ReplicaServerPort 443 ` -AuthenticationType Certificate ` -ReplicationFrequencySec 300 Enable-VMReplication -VMName "VM-WebSrv-01" Start-VMInitialReplication -VMName "VM-WebSrv-01"
⬛ SEGURIDAD AVANZADA
🔒
09 · Security Hardening Avanzado

Secured-Core, Zero-Trust, Defender y Auditoría

HVCI, Credential Guard, BitLocker, auditería avanzada, deshabilitar protocolos inseguros y baseline de seguridad.

Avanzado
StandardDatacenter🔴 Crítico

Verificar y activar Secured-Core Server

PowerShell — Admin
# Verificar Secure Boot Confirm-SecureBootUEFI # Verificar estado de VBS y HVCI Get-WmiObject -Namespace "root\Microsoft\Windows\DeviceGuard" ` -Class Win32_DeviceGuard | Select-Object VirtualizationBasedSecurityStatus, SecurityServicesRunning, HypervisorEnforcedCodeIntegrityStatus # Habilitar HVCI (Hypervisor-Protected Code Integrity) vía registro reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v RequirePlatformSecurityFeatures /t REG_DWORD /d 3 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v HypervisorEnforcedCodeIntegrity /t REG_DWORD /d 1 /f # Habilitar Credential Guard reg add "HKLM\SYSTEM\CurrentControlSet\Control\LSA" /v LsaCfgFlags /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" /v LsaCfgFlags /t REG_DWORD /d 1 /f # Estado del TPM Get-Tpm | Select-Object TpmPresent, TpmReady, TpmEnabled, TpmActivated, TpmOwned # Habilitar BitLocker en C: con protector TPM+PIN Enable-BitLocker -MountPoint "C:" -TpmProtector Add-BitLockerKeyProtector -MountPoint "C:" -Pin (ConvertTo-SecureString "2025SecurePin" -AsPlainText -Force) -TpmAndPinProtector # Guardar clave de recuperación en AD Backup-BitLockerKeyProtector -MountPoint "C:" ` -KeyProtectorId (Get-BitLockerVolume "C:").KeyProtector[0].KeyProtectorId

Deshabilitar protocolos inseguros

PowerShell — Admin
# Deshabilitar SMBv1 (obligatorio) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false # Deshabilitar TLS 1.0 y 1.1 en servidor y cliente foreach ($protocol in @("SSL 2.0","SSL 3.0","TLS 1.0","TLS 1.1")) { $path = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\$protocol\Server" New-Item $path -Force | Out-Null Set-ItemProperty $path -Name Enabled -Value 0 Set-ItemProperty $path -Name DisabledByDefault -Value 1 } # Habilitar TLS 1.3 explícitamente $p13 = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" New-Item $p13 -Force | Out-Null Set-ItemProperty $p13 -Name Enabled -Value 1 # Deshabilitar RC4 (cifrado débil) New-Item "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Force | Out-Null Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" -Name Enabled -Value 0 # Cambiar puerto RDP al no estándar + NLA obligatoria Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 3392 Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1

Auditoría avanzada de seguridad

CMD — Admin
:: Activar auditoría completa por subcategoría auditpol /set /subcategory:"Logon" /success:enable /failure:enable auditpol /set /subcategory:"Account Lockout" /failure:enable auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable auditpol /set /subcategory:"Security Group Management" /success:enable auditpol /set /subcategory:"Directory Service Changes" /success:enable auditpol /set /subcategory:"Credential Validation" /success:enable /failure:enable auditpol /set /subcategory:"Process Creation" /success:enable auditpol /set /subcategory:"Sensitive Privilege Use" /success:enable /failure:enable auditpol /set /subcategory:"File System" /failure:enable :: Ver auditoría configurada auditpol /get /category:* :: IDs de eventos clave: :: 4624=Login OK 4625=Login FAIL 4740=Cuenta bloqueada :: 4720=Usuario creado 4726=Borrado 4756=Miembro grupo privilegiado :: 4688=Proceso creado 4698=Tarea programada creada
⬛ BACKUP Y ACTUALIZACIONES
💾
10 · Backup & Disaster Recovery

Copia de Seguridad y Plan de Recuperación

Windows Server Backup, backup de AD, script automatizado con log completo y test de restauración.

Avanzado
StandardDatacenter🔴 Misión Crítica
🔴
Regla 3-2-1-1-0: 3 copias, 2 medios distintos, 1 offsite (NAS externo / nube), 1 inmutable (no sobreescribible), 0 errores verificados. Ejecuta un test de restauración mensual sin excepción.
PowerShell — Admin
# Instalar Windows Server Backup Install-WindowsFeature Windows-Server-Backup # Estado y versiones disponibles wbadmin get status wbadmin get versions # Backup completo a disco externo (F:) wbadmin start backup -backuptarget:F: -include:C:,D:,E: -allCritical -quiet # Backup solo estado del sistema (AD, registro, arranque) wbadmin start systemstatebackup -backuptarget:F: -quiet # Backup programado a NAS (02:00 AM) wbadmin enable backup -addtarget:\\NAS\Backups\SRV-DC-01 -schedule:02:00 -include:C:,D:,E: -user:empresa\BkpSvc -password:BkpP@ss2025 -quiet # Restaurar archivo individual desde backup wbadmin start recovery -version:04/01/2026-02:00 -itemtype:File -items:E:\Empresa\Contrato.pdf -recoveryTarget:E:\Restaurados -quiet # Exportar estructura AD a LDIF (backup adicional) ldifde -f "D:\Backup\AD_$(Get-Date -f yyyyMMdd).ldf" -s localhost

Script de backup con log y verificación

PowerShell — Script (backup-ws2025.ps1)
#requires -RunAsAdministrator # Backup diario con log, verificación y alerta param( [string]$Target = "\\NAS\Backups\SRV-DC-01", [string]$LogDir = "C:\Logs\Backup" ) $ts = Get-Date -Format "yyyyMMdd_HHmm" $log = "$LogDir\backup_$ts.log" New-Item -Path $LogDir -ItemType Directory -Force | Out-Null Start-Transcript -Path $log try { Write-Host "[$(Get-Date)] ▶ Iniciando backup hacia $Target" # Ejecutar backup wbadmin start backup -backuptarget:$Target -include:C:,D:,E: -allCritical -quiet if ($LASTEXITCODE -eq 0) { Write-Host "[$(Get-Date)] ✓ BACKUP EXITOSO" -ForegroundColor Green # Aquí puedes añadir Send-MailMessage para notificación OK } else { throw "wbadmin código de error: $LASTEXITCODE" } # Limpiar logs de más de 30 días Get-ChildItem $LogDir -Filter "*.log" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item -Force } catch { Write-Host "[$(Get-Date)] ✗ ERROR: $_" -ForegroundColor Red # Enviar alerta de error aquí } finally { Stop-Transcript }
🔄
11 · Windows Update & Hotpatch

Actualizaciones — WSUS, PSWindowsUpdate y Hotpatch

Gestión controlada de actualizaciones, WSUS para parques de equipos y Hotpatch sin reinicio (Azure Edition).

Intermedio
StandardDatacenter⚠ Backup antes de actualizar
⚠️
En servidores de producción: aplica siempre en una ventana de mantenimiento programada, con backup previo verificado. Revisa el Release Health Dashboard de Microsoft antes de aplicar actualizaciones.
PowerShell — Admin
# Instalar módulo PSWindowsUpdate Install-Module PSWindowsUpdate -Force Import-Module PSWindowsUpdate # Ver actualizaciones pendientes Get-WindowsUpdate # Instalar solo parches de seguridad (recomendado primero) Install-WindowsUpdate -Category "Security Updates" -AcceptAll -AutoReboot # Instalar todas las actualizaciones (incluye drivers y feature updates) Install-WindowsUpdate -AcceptAll -IgnoreReboot # Ver historial de actualizaciones Get-WUHistory | Select-Object -First 30 Date, Title, Result | Format-Table -AutoSize # Ver actualizaciones instaladas vía wmic wmic qfe list full /format:table # Instalar WSUS para gestionar todo el parque de servidores/PCs Install-WindowsFeature UpdateServices,UpdateServices-WidDB,UpdateServices-Services,UpdateServices-RSAT ` -IncludeManagementTools wsusutil.exe postinstall CONTENT_DIR=E:\WSUS # Azure Hotpatch (solo en Azure Edition con Arc) # Configurar desde: Portal Azure → Máquinas → Administración de actualizaciones # Hotpatch permite aplicar parches de seguridad sin reiniciar el servidor # Verifica disponibilidad: https://learn.microsoft.com/azure/automanage/hotpatch
⬛ MONITOREO Y RENDIMIENTO
📊
12 · Monitoring & Alertas

Monitoreo, Diagnóstico y Alertas Automáticas

Recursos en tiempo real, Event Viewer, health check automatizado y alertas por email o webhook.

Intermedio
StandardDatacenterPowerShell
PowerShell
# ── HERRAMIENTAS GRÁFICAS ────────────────────────────────────── resmon # Monitor de recursos (CPU/RAM/Disco/Red) perfmon # Monitor de rendimiento con contadores eventvwr.msc # Visor de eventos taskmgr # Administrador de tareas resmon # Monitor de recursos # ── CPU ──────────────────────────────────────────────────────── Get-WmiObject Win32_Processor | Measure-Object LoadPercentage -Average | Select-Object Average # ── RAM ──────────────────────────────────────────────────────── $os = Get-WmiObject Win32_OperatingSystem "Total: $([math]::Round($os.TotalVisibleMemorySize/1MB,1)) GB | Libre: $([math]::Round($os.FreePhysicalMemory/1MB,1)) GB" # ── DISCO ────────────────────────────────────────────────────── Get-Volume | Where-Object {$_.DriveLetter} | Select-Object DriveLetter, FileSystemLabel, @{N="Total_GB";E={[math]::Round($_.Size/1GB,1)}}, @{N="Libre_GB";E={[math]::Round($_.SizeRemaining/1GB,1)}}, @{N="Uso_%";E={[math]::Round((($_.Size-$_.SizeRemaining)/$_.Size)*100,0)}}, HealthStatus | Format-Table -AutoSize # ── SERVICIOS CRÍTICOS ───────────────────────────────────────── Get-Service NTDS,DNS,DHCP,Netlogon,W32Time,WinRM,BFE | Where-Object {$_.Status -ne "Running"} | Select-Object Name, Status, StartType # ── TOP 10 PROCESOS POR CPU ──────────────────────────────────── Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, Id, WorkingSet # ── UPTIME ───────────────────────────────────────────────────── (Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime # ── ERRORES DE LAS ÚLTIMAS 24H ──────────────────────────────── Get-WinEvent -FilterHashtable @{LogName='System';Level=1,2;StartTime=(Get-Date).AddHours(-24)} ` -MaxEvents 20 -ErrorAction SilentlyContinue | Select-Object TimeCreated, LevelDisplayName, ProviderName, Message | Format-Table -Wrap
🚀
13 · Performance Tuning

Optimización de Rendimiento — Plan de Energía y Ajustes

Plan de energía, memoria virtual, tamaño de logs, servicios innecesarios y ajustes del kernel.

Avanzado
StandardDatacenter⚠ Admin
PowerShell — Admin
# Plan de energía High Performance (obligatorio en servidores físicos) powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c powercfg /getactivescheme powercfg /hibernate off # Desactivar índice de búsqueda en discos de datos Set-WmiInstance -Class Win32_Volume -Filter 'DriveLetter = "E:"' ` -Arguments @{IndexingEnabled=$false} # Deshabilitar hibernación del kernel reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 1 /f # Ajustar tamaño máximo de logs de eventos wevtutil sl System /ms:524288000 # 500 MB wevtutil sl Application /ms:524288000 # 500 MB wevtutil sl Security /ms:2147483648 # 2 GB # Deshabilitar servicios innecesarios en servidores de producción $off = @("XblAuthManager","XblGameSave","WSearch","Fax","SysMain","DiagTrack") $off | ForEach-Object { Get-Service $_ -ErrorAction SilentlyContinue | Set-Service -StartupType Disabled Stop-Service $_ -Force -ErrorAction SilentlyContinue } # Para AD: ajuste específico para controladores de dominio reg add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v "Database Buffer Size (Megabytes)" /t REG_DWORD /d 512 /f
⬛ ACCESO REMOTO Y FIREWALL
🌍
14 · Remote Access, WinRM y OpenSSH

Acceso Remoto — RDP Seguro, WinRM y OpenSSH

RDP con NLA + MFA, PowerShell Remoting multi-servidor, SSH integrado y Jump Server básico.

Avanzado
StandardDatacenter🔴 Seguridad crítica
🔴
RDP jamás debe exponerse directamente a Internet. Utiliza siempre VPN + RDP, o configura un Jump Server (bastion host). Cambia el puerto por defecto, activa NLA y restringe el acceso por IP de origen con reglas de Firewall.
PowerShell — Admin
# Habilitar RDP con NLA obligatoria Set-ItemProperty "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0 Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name UserAuthentication -Value 1 # Cambiar puerto RDP a no estándar Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 3392 # Abrir el nuevo puerto en el Firewall New-NetFirewallRule -DisplayName "RDP WS2025" -Direction Inbound -Protocol TCP -LocalPort 3392 ` -RemoteAddress "192.168.1.0/24" -Action Allow # Añadir usuarios al grupo RDP Add-LocalGroupMember -Group "Remote Desktop Users" -Member "EMPRESA\GRP-IT-Admins" # Ver sesiones activas quser query session # PowerShell Remoting — habilitar WinRM Enable-PSRemoting -Force winrm quickconfig # Conectar a servidor remoto Enter-PSSession -ComputerName "SRV-FS-01" -Credential (Get-Credential) # Ejecutar comando en múltiples servidores $srvs = @("SRV-FS-01","SRV-HV-01","SRV-APP-01") Invoke-Command -ComputerName $srvs -ScriptBlock { [PSCustomObject]@{ Servidor = $env:COMPUTERNAME Uptime = ((Get-Date)-(gcim Win32_OperatingSystem).LastBootUpTime).ToString("dd'd 'hh'h'") CPU = (Get-WmiObject Win32_Processor | Measure-Object LoadPercentage -Average).Average RAM_Libre= [math]::Round((Get-WmiObject Win32_OperatingSystem).FreePhysicalMemory/1MB,1) } } # OpenSSH — instalar y configurar Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 Start-Service sshd Set-Service sshd -StartupType Automatic # Establecer PowerShell como shell por defecto para SSH New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell ` -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
🛡️
15 · Windows Firewall Avanzado

Firewall — Reglas, Perfiles y Tabla de Puertos

Gestión de reglas por perfiles, tabla de puertos de referencia, bloqueo de IPs y exportación.

Avanzado
StandardDatacenter⚠ Admin

Puertos de referencia para WS2025 DC

PuertoProtoServicioPerfilDirección
53TCP/UDPDNSDomain↕ Ambos
67–68UDPDHCPDomain↓ Entrada
88TCP/UDPKerberosDomain↕ Ambos
135TCPRPC EndpointDomain↓ Solo LAN
389 / 636TCP/UDPLDAP / LDAPSDomain↕ Ambos
443TCPHTTPS salidaAll↑ Salida
445TCPSMB 3.1.1Domain↓ Solo LAN
3268 / 3269TCPGlobal CatalogDomain↕ Ambos
3389 / 3392TCPRDPDomain❌ Bloquear externo
5985 / 5986TCPWinRM HTTP/SDomain↓ Solo LAN
22TCPSSHDomain↓ Solo LAN
443 (QUIC)UDPSMB sobre QUICAll↓ Entrada
PowerShell — Admin
# Estado del firewall en todos los perfiles netsh advfirewall show allprofiles # Crear regla de entrada (solo desde LAN) New-NetFirewallRule ` -DisplayName "SMB-LAN-Only" ` -Direction Inbound ` -Protocol TCP ` -LocalPort 445 ` -RemoteAddress "192.168.1.0/24" ` -Action Allow ` -Profile Domain,Private ` -Enabled True # Bloquear IP atacante New-NetFirewallRule -DisplayName "BLOCK-Threat-IP" ` -Direction Inbound -RemoteAddress "198.51.100.0/24" -Action Block # Ver reglas activas Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True"} | Select-Object DisplayName,Direction,Action | Sort-Object Direction | Format-Table # Exportar configuración netsh advfirewall export "C:\Backup\FW_$(Get-Date -f yyyyMMdd).wfw" # Abrir consola avanzada wf.msc
⬛ FUNCIONALIDADES EXCLUSIVAS WS2025
☁️
16 · Azure Arc & Gestión Híbrida

Azure Arc — Gestión Híbrida y Hotpatch

Conectar WS2025 a Azure Arc, Azure Policy, Defender for Cloud, Monitor y Hotpatch sin reinicio.

Avanzado
StandardDatacenterAzure Edition⚠ Suscripción Azure
¿Qué aporta Azure Arc en WS2025?

Azure Arc extiende el plano de control de Azure a servidores on-premises. Permite aplicar políticas de seguridad, monitorear con Azure Monitor, usar Microsoft Defender for Cloud, gestionar actualizaciones con Azure Update Manager y, en Azure Edition, aplicar Hotpatch sin reinicio.

PowerShell — Admin
# Instalar el agente Azure Connected Machine (AMA) # Descarga: https://aka.ms/AzureConnectedMachineAgent # Conectar servidor a Azure Arc (script generado desde el portal) Connect-AzConnectedMachine ` -ResourceGroupName "rg-servidores-prod" ` -Location "westeurope" ` -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # Verificar estado del agente azcmagent show azcmagent check azcmagent extension list # Instalar extensión de Azure Monitor Agent azcmagent extension add --name AzureMonitorWindowsAgent ` --publisher Microsoft.Azure.Monitor # Desde Azure PowerShell — ver máquinas Arc registradas Get-AzConnectedMachine -ResourceGroupName "rg-servidores-prod" | Select-Object Name, OSName, Status, LastStatusChange # Asignar política de Azure al servidor New-AzPolicyAssignment -Name "Audit-BitLocker" ` -PolicyDefinitionId "/providers/Microsoft.Authorization/policyDefinitions/..." ` -Scope "/subscriptions/.../resourceGroups/rg-servidores-prod" # Azure Update Manager — aplicar actualizaciones desde Azure # Portal Azure → Azure Update Manager → Máquinas → Evaluar y aplicar
🐳
17 · Windows Containers & eBPF

Contenedores Windows 2025 — Docker y Kubernetes

Imágenes más ligeras, eBPF para visibilidad de red, Docker Engine y configuración básica.

Avanzado
StandardDatacenter⚠ Reinicio requerido
PowerShell — Admin
# Instalar rol de Contenedores Install-WindowsFeature -Name Containers -Restart # Instalar Docker Engine tras reiniciar Install-Module DockerMsftProvider -Repository PSGallery -Force Install-Package Docker -ProviderName DockerMsftProvider -Force Start-Service Docker Set-Service Docker -StartupType Automatic # Verificar docker version docker info # Imágenes base WS2025 (más pequeñas que WS2022) docker pull mcr.microsoft.com/windows/servercore:ltsc2025 docker pull mcr.microsoft.com/windows/nanoserver:ltsc2025 # Contenedor IIS de prueba docker run -d -p 8080:80 --name iis-test ` mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2025 # Contenedor con montaje de carpeta compartida docker run -d --name app-test ` -v E:\App:C:\App ` mcr.microsoft.com/windows/servercore:ltsc2025 # Ver contenedores en ejecución docker ps -a docker stats --no-stream # Limpiar contenedores e imágenes no usadas docker system prune -af
🖨️
18 · Print Services

Servidor de Impresión

Instalación y gestión de impresoras compartidas, drivers, colas y limpieza del spooler.

Intermedio
StandardDatacenterPowerShell
PowerShell — Admin
# Instalar servidor de impresión Install-WindowsFeature Print-Server, Print-Internet -IncludeManagementTools # Añadir impresora de red por IP Add-PrinterPort -Name "IP_192.168.1.60" -PrinterHostAddress "192.168.1.60" Add-Printer -Name "HP LaserJet Oficina" ` -PortName "IP_192.168.1.60" ` -DriverName "HP Universal Printing PCL 6" # Compartir y publicar en AD Set-Printer -Name "HP LaserJet Oficina" -Shared $true -ShareName "ImpOfi" -Published $true # Ver impresoras y colas Get-Printer | Select-Object Name, PortName, Shared, ShareName, Published Get-PrintJob -PrinterName "HP LaserJet Oficina" # Limpiar spooler atascado net stop spooler Remove-Item "C:\Windows\System32\spool\PRINTERS\*" -Force -ErrorAction SilentlyContinue net start spooler # Abrir administrador de impresión printmanagement.msc
⬛ RESOLUCIÓN Y SCRIPTS
🔧
19 · Troubleshooting

Resolución de Problemas Frecuentes

Los 12 problemas más comunes en WS2025 con diagnóstico exacto y soluciones paso a paso.

Variable
StandardDatacenter
SíntomaCausa probableDiagnóstico / Solución
Fallo de autenticación KerberosHora desincronizada >5 minutosw32tm /resync /force + verificar NTP
Clientes no se unen al dominioDNS no apunta al DC o AD no instaladoVerificar nslookup empresa.local desde el cliente
GPO no se aplicaReplicación AD pendiente o GPLink incorrectogpupdate /force + repadmin /syncall
SYSVOL no replica entre DCsDFSR detenido o divergencia de versionesdfsrdiag SyncNow /Membership:empresa.local
DNS no resuelve internamenteZona inversa faltante o registros PTRipconfig /registerdns + revisar zonas DNS
DHCP no asigna IPsNo autorizado en AD o scope agotadoAdd-DhcpServerInDC + revisar rango
SMB sobre QUIC no conectaCertificado inválido o puerto UDP 443 bloqueadoVerificar cert + regla Firewall UDP 443
Hyper-V VM no arrancavSwitch eliminado o corrupción de VHDXGet-VM | Select Name,State + revisar vSwitch
BitLocker pide PIN en cada arranqueTPM no reconoce el arranque (cambio BIOS/HW)Suspender BitLocker, hacer cambio, reactivar
WinRM no conecta remotamenteFirewall o servicio detenidoEnable-PSRemoting -Force
Windows LAPS no genera contraseñaEsquema AD no actualizado o GPO no aplicadaUpdate-LapsADSchema + verificar GPO
Disco C: al 90%+Logs, caché WU o WinSxSDISM /StartComponentCleanup /ResetBase

Reparación del sistema y AD

CMD — Admin
:: Reparación completa del SO (siempre en este orden) sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth sfc /scannow :: Segunda pasada post-DISM :: Diagnóstico completo del DC dcdiag /test:all /v /f:C:\Logs\dcdiag.txt :: Reparar replicación AD repadmin /showrepl * /errorsonly repadmin /syncall /AdeP :: Reparar SYSVOL (DFSR) dfsrdiag SyncNow /Membership:empresa.local :: Reset completo de red ipconfig /flushdns ipconfig /registerdns netsh winsock reset netsh int ip reset :: Emergencia — servidor no arranca (WinRE) bootrec /fixmbr bootrec /fixboot bootrec /rebuildbcd :: Restaurar estado del sistema desde backup wbadmin start systemstaterecovery -version:04/01/2026-02:00 -quiet
📜
20 · Scripts de Automatización

Scripts Esenciales — Health Check y Mantenimiento

Script de monitoreo continuo con alertas, script de mantenimiento mensual y reporte HTML de salud.

Avanzado
StandardDatacenterPowerShell

Script de health check con alertas (health-ws2025.ps1)

PowerShell — Script
#requires -RunAsAdministrator # Health check horario — programa como tarea con SYSTEM cada 60 min $alertas = @() $os = Get-WmiObject Win32_OperatingSystem # CPU alto (>85%) $cpu = (Get-WmiObject Win32_Processor | Measure-Object LoadPercentage -Average).Average if ($cpu -gt 85) { $alertas += "⚠ CPU: ${cpu}%" } # RAM baja (<10% libre) $ramPct = ($os.FreePhysicalMemory / $os.TotalVisibleMemorySize) * 100 if ($ramPct -lt 10) { $alertas += "⚠ RAM libre: $([math]::Round($ramPct,1))%" } # Disco C: casi lleno (<15% libre) $c = Get-Volume -DriveLetter C if (($c.SizeRemaining / $c.Size) -lt 0.15) { $alertas += "⚠ Disco C: $([math]::Round($c.SizeRemaining/1GB,1)) GB libres" } # Servicios críticos detenidos Get-Service NTDS,DNS,DHCP,Netlogon,W32Time -ErrorAction SilentlyContinue | Where-Object {$_.Status -ne "Running"} | ForEach-Object { $alertas += "🔴 Servicio detenido: $($_.Name)" } # Cuentas bloqueadas en AD $locked = (Search-ADAccount -LockedOut).Count if ($locked -gt 3) { $alertas += "⚠ $locked cuentas AD bloqueadas" } # Resultado if ($alertas.Count -gt 0) { $alertas | ForEach-Object { Write-Host $_ -ForegroundColor Red } # Añadir aquí Send-MailMessage o webhook para Teams/Slack } else { Write-Host "[$(Get-Date -f 'HH:mm')] ✓ Sistema saludable" -ForegroundColor Green }

Script de mantenimiento mensual (monthly-maint-2025.ps1)

PowerShell — Script completo
#requires -RunAsAdministrator # Mantenimiento mensual WS2025 — programar primer domingo del mes a las 03:00 $log = "C:\Logs\Maint\maint_$(Get-Date -f 'yyyyMMdd').log" New-Item -Path (Split-Path $log) -ItemType Directory -Force | Out-Null Start-Transcript -Path $log function Log ($msg,$c="White"){ Write-Host "[$(Get-Date -f 'HH:mm:ss')] $msg" -ForegroundColor $c } Log "═══ MANTENIMIENTO WS2025 — $(Get-Date -f 'dd/MM/yyyy') ═══" Cyan # 1 — Reparar archivos del sistema Log "[1/8] SFC..." sfc /scannow # 2 — Reparar imagen Windows Log "[2/8] DISM RestoreHealth..." DISM /Online /Cleanup-Image /RestoreHealth # 3 — Limpiar archivos temporales Log "[3/8] Archivos temporales..." @("$env:TEMP\*","C:\Windows\Temp\*") | ForEach-Object { Remove-Item $_ -Recurse -Force -ErrorAction SilentlyContinue } # 4 — Limpiar caché Windows Update Log "[4/8] Caché Windows Update..." Stop-Service wuauserv -Force Remove-Item "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue Start-Service wuauserv # 5 — Diagnóstico AD Log "[5/8] Diagnóstico Active Directory..." dcdiag /test:all /f:C:\Logs\Maint\dcdiag_$(Get-Date -f 'yyyyMMdd').txt repadmin /replsummary >> "$log" # 6 — Sincronizar hora Log "[6/8] Sincronizando NTP..." w32tm /resync /force # 7 — Optimizar discos Log "[7/8] Optimizando discos..." Get-Volume | Where-Object {$_.DriveLetter} | Optimize-Volume -Verbose # 8 — Resumen final Log "[8/8] Resumen de salud:" Cyan $os = Get-WmiObject Win32_OperatingSystem Log "Uptime : $((Get-Date)-($os.ConvertToDateTime($os.LastBootUpTime)))" Log "RAM : $([math]::Round($os.FreePhysicalMemory/1MB,1)) GB libres" Get-Volume | Where-Object {$_.DriveLetter} | Select-Object DriveLetter, @{N="Libre_GB";E={[math]::Round($_.SizeRemaining/1GB,1)}} | Format-Table Log "═══ COMPLETADO ═══" Green Stop-Transcript
⬛ CHECKLIST FINAL
21 · Checklist de Mantenimiento Periódico

Plan de Mantenimiento — Semanal, Mensual, Trimestral y Anual

Lista de verificación completa para mantener WS2025 en condiciones óptimas de rendimiento y seguridad.

📅 Semanal

  • ☐ Revisar Event Viewer (Critical + Error)
  • ☐ Verificar espacio libre en todos los discos
  • ☐ Confirmar que el backup completó sin errores
  • repadmin /replsummary
  • ☐ Revisar cuentas AD bloqueadas
  • ☐ Comprobar servicios críticos activos
  • ☐ Revisar intentos de login fallidos (4625)

📆 Mensual

  • ☐ Aplicar actualizaciones de seguridad
  • sfc /scannow + DISM /RestoreHealth
  • ☐ Deshabilitar usuarios AD inactivos >90 días
  • ☐ Test de restauración desde backup
  • ☐ Revisar logs de auditoría de seguridad
  • ☐ Limpiar temporales y caché Windows Update
  • dcdiag /test:Connectivity

📊 Trimestral

  • dcdiag /test:all /v — diagnóstico completo
  • ☐ Verificar salud SMART de todos los discos
  • ☐ Renovar contraseñas de cuentas de servicio
  • ☐ Revisar membresías de grupos privilegiados
  • ☐ Revisar y limpiar reglas del Firewall
  • ☐ Verificar certificados SSL/TLS (caducidad)
  • ☐ Actualizar documentación del servidor

🗓️ Anual

  • ☐ Test completo del Plan de Recuperación ante Desastres
  • ☐ Actualizar BIOS/firmware del servidor
  • ☐ Limpieza física del hardware (polvo, ventiladores)
  • ☐ Revisar capacidad vs. crecimiento previsto
  • ☐ Revisar fechas de fin de soporte de roles y apps
  • ☐ Verificar licencias y cobertura de soporte
  • ☐ Actualizar plan de contingencia y contactos
📌
Documentación del servidor: Mantén un documento cifrado y actualizado con IP, nombre NetBIOS, dominio, contraseña DSRM, claves de recuperación BitLocker, licencias, contactos del proveedor y el plan de recuperación. Guarda una copia offsite.
GPS-971.com
Instalación y Mantenimiento de Computadoras · info@gps-971.com · Desde 2007
© 2007–2026 GPS-971.com · Todos los derechos reservados · Guía Windows Server 2025

Publicado en IT

Deja una respuesta

GPS-971.com. Todos los derechos reservados. Desarrollado por www.gps-971.com

GPS-971.com. Todos los derechos reservados. Desarrollado por www.gps-971.com