Ejecucion diaria automatizada

Offboarding Review

Auditoria y remediacion automatica diaria de bajas incompletas o manipuladas, con informe HTML y notificacion a Jira

👤 Autor: JM Fernandez + Claude (Anthropic)
📅 Fecha: 24 marzo 2026
🌐 Target: Active Directory + Azure AD + Exchange Online
PowerShell 7 Active Directory Microsoft Graph API Exchange Online AD Connect Sync HTML Reporting SMTP + Jira Centralized Config
~2.030
LOC (entre ambos scripts)
11
Verificaciones por usuario
Diaria
Ejecucion programada
~250h/a
Ahorro + compliance
2
Scripts complementarios

Que resuelve este proyecto

Detectar y corregir automaticamente bajas incompletas o con modificaciones no autorizadas. Critico para seguridad y compliance.

🔍

Auditoria automatica

11 funciones de verificacion modulares por usuario. Detecta atributos incorrectos, grupos residuales, licencias activas, buzones no convertidos y dispositivos moviles.

⚖️

Remediacion activa

No solo detecta: corrige. Elimina grupos, retira licencias, limpia atributos, elimina dispositivos ActiveSync. Genera informe detallado con acciones SUCCESS/WARNING/ERROR.

Timer de 30 dias

Logica de eliminacion segura: pwdLastSet para hibridos, extensionAttribute15 para cloud-only. Pasados 30 dias: mover a OU=Bajas/YYYY (hibrido) o soft-delete (cloud).

11 verificaciones por usuario

Cada verificacion se ejecuta como funcion modular independiente. El resultado se acumula en el informe HTML.

Num Verificacion Accion correctiva
01 Atributos AD Company, Manager, Dept, telefono, Office… → Limpieza automatica
02 ExtensionAttributes ext1=exemployee, ext2-15 vacios → Correccion
03 Visibilidad GAL msExchHideFromAddressLists → Ocultar si visible
04 Grupos AD Grupos de seguridad residuales → Eliminacion
05 Grupos M365 Grupos Microsoft 365, listas de distribucion → Eliminacion con -ErrorAction Stop
06 Licencias M365 Licencias asignadas → Retirada
07 Buzon SharedMailbox + auto-reply → Conversion si necesario
08 Delegaciones Permisos sobre otros buzones → Eliminacion
09 Dispositivos moviles Exchange ActiveSync → Eliminacion con verificacion
10 Timer hibrido pwdLastSet > 30 dias → Mover a OU=Bajas/YYYY
11 Timer cloud extensionAttribute15 > 30 dias → Remove-MgUser (soft-delete)

Actualizacion Mar 2026

Correccion de falsos positivos, centralizacion de configuracion y unificacion de infraestructura.

Falsos warnings eliminados

Se eliminaron las verificaciones post-eliminacion de grupos M365 con 2s de espera (insuficiente por replicacion Azure AD). Ahora se confia en -ErrorAction Stop: si el cmdlet no lanza excepcion, la accion fue exitosa.

⚙️

Config centralizada

Credenciales Azure AD (ClientId, TenantId, CertificateThumbprint), configuracion SMTP y ExcludedGroupIds centralizados en config.psd1 compartido con el resto del pipeline.

🔗

DC unificado

Servidor de dominio unificado a dc1.oficina.idealista en ambos scripts, eliminando inconsistencias entre el script hibrido y el cloud-only.

Dos scripts complementarios

offboardings_review.ps1 para usuarios hibridos, offboardings_review_cloud.ps1 para cloud-only. Ambos comparten la misma logica de verificacion.

🕐
Task Scheduler
Windows
Ejecucion diaria programada
🛡️
Review Scripts
PowerShell
2 scripts PS7 complementarios
☁️
AD + M365
Graph + EXO
Verificacion y remediacion
✉️
SMTP + Jira
SMTP
Informe HTML + ticket
Diario: Task Scheduler review.ps1 AD + M365 Informe HTML Email + Jira
Cloud: Task Scheduler review_cloud.ps1 Azure AD Informe HTML Email + Jira

Informe HTML con detalle por usuario

Cada ejecucion genera un informe HTML con codigo de colores (SUCCESS/WARNING/ERROR) que se envia por email y a Jira.

El informe incluye una tabla resumen con el estado general de cada usuario en pre-baja, seguida de un desglose por usuario con las 11 verificaciones, acciones tomadas y resultado. Los colores permiten identificar rapidamente los problemas: verde para acciones exitosas, amarillo para advertencias y rojo para errores que requieren intervencion manual.
Estado Significado Requiere atencion
SUCCESS Verificacion completada y accion aplicada correctamente No
WARNING Situacion detectada que no pudo corregirse automaticamente Revision recomendada
ERROR Fallo en la ejecucion o estado critico que requiere intervencion Intervencion manual obligatoria

De revision manual a automatizacion total

El impacto real de esta automatizacion en la operativa diaria del departamento.

Proceso manual reemplazado Revision diaria manual de todos los usuarios en estado de pre-baja para detectar modificaciones no autorizadas y eliminacion definitiva pasados 30 dias. Sin esta automatizacion, un administrador tendria que revisar manualmente cada usuario cada dia. Critico para seguridad: una baja incompleta deja puertas abiertas en la organizacion.