{"id":900819,"date":"2026-10-14T17:13:19","date_gmt":"2026-10-14T17:13:19","guid":{"rendered":"https:\/\/www.ninjaone.com\/blog\/eliminar-cuentas-administrador-obsoletas-active-directory\/"},"modified":"2026-10-14T17:13:20","modified_gmt":"2026-10-14T17:13:20","slug":"eliminar-cuentas-administrador-obsoletas-active-directory","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/es\/blog\/eliminar-cuentas-administrador-obsoletas-active-directory\/","title":{"rendered":"C\u00f3mo auditar y eliminar cuentas de administrador obsoletas en varios tenants de Active Directory"},"content":{"rendered":"<div class=\"in-context-cta\"><h2 style=\"margin-top: 0px;\">Puntos clave<\/h2>\n<p style=\"text-align: left;\">M\u00e9todos para auditar y eliminar cuentas de administrador obsoletas en Active Directory<\/p>\n<ul>\n<li>Auditor\u00eda de administradores en el cloud: abre PowerShell como administrador, con\u00e9ctate a Microsoft Graph, ejecuta el script de auditor\u00eda para listar las cuentas de administrador y sus \u00faltimos inicios de sesi\u00f3n, y despu\u00e9s exporta las cuentas obsoletas (m\u00e1s de 30 d\u00edas inactivas) y desact\u00edvalas o qu\u00edtales los privilegios.<\/li>\n<li>Detecci\u00f3n de administradores locales: usa PowerShell en los dispositivos Windows para listar todos los administradores locales, comprobar la hora del \u00faltimo inicio de sesi\u00f3n de cada usuario y desactivar o eliminar las cuentas con m\u00e1s de 30 d\u00edas de inactividad; escala el proceso a todos los endpoints con tu RMM.<\/li>\n<li>Comprobaciones manuales de cuentas obsoletas: cuando PowerShell no est\u00e9 disponible, ejecuta net localgroup administrators en CMD, revisa los \u00faltimos inicios de sesi\u00f3n en los registros de eventos de seguridad y utiliza herramientas de an\u00e1lisis del Registro o de la SAM para identificar cuentas de administrador ocultas o heredadas.<\/li>\n<li>Control de cuentas mediante GPO: usa las directivas de grupo para restringir qui\u00e9n puede ser administrador local, denegar el inicio de sesi\u00f3n a las cuentas obsoletas o de riesgo y configurar LAPS para rotar autom\u00e1ticamente las contrase\u00f1as de administrador local de forma peri\u00f3dica.<\/li>\n<li>Auditor\u00eda y limpieza automatizadas: activa el registro de transcripciones de PowerShell, programa auditor\u00edas peri\u00f3dicas desde tu RMM, desactiva autom\u00e1ticamente las cuentas obsoletas, archiva los registros de auditor\u00eda y configura alertas para la creaci\u00f3n de administradores no autorizados.<\/li>\n<\/ul>\n<\/div>\n<p>Las cuentas de administrador obsoletas son vulnerabilidades de seguridad silenciosas: funcionan como puertas traseras abiertas para los atacantes en tu tenant de Microsoft 365 o en tu entorno h\u00edbrido. Estas cuentas privilegiadas olvidadas suelen quedar fuera de toda monitorizaci\u00f3n, aunque suponen riesgos graves de cumplimiento y de brecha de seguridad.<\/p>\n<p>En esta gu\u00eda aprender\u00e1s exactamente <strong>c\u00f3mo encontrar cuentas obsoletas en Active Directory<\/strong>, auditarlas de forma eficiente e implementar una limpieza automatizada con PowerShell, Microsoft Graph y herramientas RMM para mantener un entorno seguro.<\/p>\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Elimina los accesos de administrador innecesarios para reforzar la seguridad y el cumplimiento.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.ninjaone.com\/es\/rmm\/gestion-de-active-directory\/\">Descubre las funciones de Gesti\u00f3n de Active Directory de NinjaOne.<\/a><\/p>\n<\/div>\n<h2>Procedimientos para encontrar y limpiar cuentas obsoletas en Active Directory<\/h2>\n<p>Una cuenta de administrador obsoleta es cualquier identidad con privilegios sin actividad reciente: puede tratarse de administradores globales de Microsoft 365 o roles con privilegios que llevan m\u00e1s de 30 d\u00edas sin inicios de sesi\u00f3n, de cuentas de administrador local de Windows 11 en dispositivos sin uso reciente, o de cuentas de servicio sin inicios de sesi\u00f3n interactivos ni documentaci\u00f3n clara de propiedad.<\/p>\n<p>Las cuentas de antiguos empleados que no se desaprovisionaron por completo tambi\u00e9n cuentan como cuentas obsoletas. Encontrar y limpiar estas cuentas de forma proactiva en <a href=\"https:\/\/www.ninjaone.com\/it-hub\/endpoint-management\/what-is-active-directory\/\">Active Directory<\/a> ayuda a prevenir brechas de seguridad y garantiza que tu entorno siga cumpliendo la normativa.<\/p>\n<p>\ud83d\udccc <strong>Caso de uso: <\/strong>realiza esta limpieza durante las auditor\u00edas de seguridad trimestrales, despu\u00e9s de la salida de empleados o cuando prepares informes de cumplimiento, como una revisi\u00f3n de 30 d\u00edas de cuentas inactivas de Office 365. Lo ideal son comprobaciones mensuales para detectar riesgos a tiempo, sobre todo al generar informes de usuarios inactivos.<\/p>\n<p>\ud83d\udccc <strong>Requisitos previos:<\/strong> antes de empezar, aseg\u00farate de tener acceso de administrador a todos los tenants de Microsoft 365, los m\u00f3dulos de PowerShell (como Microsoft Graph y AzureAD\/MSOnline), los registros de auditor\u00eda de Microsoft Entra activados y herramientas de administraci\u00f3n local para las comprobaciones en endpoints. Para la automatizaci\u00f3n, aprovecha tu plataforma RMM (por ejemplo, NinjaOne) y centraliza los escaneos y la aplicaci\u00f3n de pol\u00edticas.<\/p>\n<p>Te recomendamos revisar \u26a0\ufe0f <a href=\"#things-to-look-out-for\"><em>Aspectos a tener en cuenta<\/em><\/a> antes de continuar.<\/p>\n<p>\ud83d\udccc Estrategias de despliegue recomendadas:<\/p>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center; vertical-align: middle;\"><strong>Haz clic para elegir un m\u00e9todo<\/strong><\/td>\n<td style=\"text-align: center; vertical-align: middle;\"><strong>\ud83d\udcbb<\/strong><br \/>\n<strong>Mejor para usuarios individuales<\/strong><\/td>\n<td style=\"text-align: center; vertical-align: middle;\"><strong>\ud83d\udcbb\ud83d\udcbb\ud83d\udcbb<\/strong><br \/>\n<strong>Mejor para empresas<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#method-1\"><strong>M\u00e9todo 1: auditar administradores en el cloud con Microsoft Graph o AzureAD PowerShell<\/strong><\/a><\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#method-2\"><strong>M\u00e9todo 2: identificar cuentas de administrador local en dispositivos Windows con PowerShell<\/strong><\/a><\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#method-3\"><strong>M\u00e9todo 3: auditar con CMD y el Registro la persistencia de administradores locales<\/strong><\/a><\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<td style=\"text-align: center;\"><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#method-4\"><strong>M\u00e9todo 4: usar GPO para evitar la persistencia de administradores locales<\/strong><\/a><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<\/tr>\n<tr>\n<td><a href=\"#method-5\"><strong>M\u00e9todo 5: automatizar y registrar el rastro de auditor\u00eda y la verificaci\u00f3n de la limpieza<\/strong><\/a><\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<td style=\"text-align: center;\">\u2713<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"method-1\">M\u00e9todo 1: auditar administradores en el cloud con Microsoft Graph o AzureAD PowerShell<\/h3>\n<p>PowerShell te da acceso directo a los datos de actividad del cloud, por lo que es la v\u00eda m\u00e1s r\u00e1pida para encontrar cuentas de administrador obsoletas.<\/p>\n<p>\ud83d\udccc <strong>Casos de uso: <\/strong>realiza esta auditor\u00eda cada trimestre para las comprobaciones de cumplimiento, inmediatamente despu\u00e9s del offboarding de un empleado o al preparar los informes mensuales de seguridad. Resulta especialmente \u00fatil cuando necesitas informes personalizados de 30 d\u00edas de cuentas inactivas de Office 365 que las herramientas nativas no pueden generar.<\/p>\n<p>Procedimiento paso a paso:<\/p>\n<ol>\n<li>Abre PowerShell (como administrador).\n<ul>\n<li>Pulsa <strong>Win + X<\/strong> y selecciona<strong> Terminal de Windows (administrador)<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<li>Ejecuta este script para conectarte a <strong>Microsoft Graph<\/strong>.<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>Connect-MgGraph -Scopes \"Directory.Read.All\", \"AuditLog.Read.All\"<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Autent\u00edcate cuando se te solicite.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"3\">\n<li>Lista todas las cuentas de administrador:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>$admins = Get-MgRoleManagementDirectoryRoleAssignment |<\/code><\/strong><br \/>\n<strong><code>Where-Object { (Get-MgDirectoryRole -DirectoryRoleId $_.RoleDefinitionId).DisplayName -match \"Admin\" } |<\/code><\/strong><br \/>\n<strong><code>ForEach-Object { Get-MgUser -UserId $_.PrincipalId }<\/code><\/strong><\/p>\n<ol start=\"4\">\n<li>Comprueba la fecha del \u00faltimo inicio de sesi\u00f3n.<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>$results = @()<\/code><\/strong><br \/>\n<strong><code>foreach ($admin in $admins) {<\/code><\/strong><br \/>\n<strong><code>$lastSignIn = Get-MgUserSignIn -UserId $admin.Id -All |<\/code><\/strong><br \/>\n<strong><code>Sort-Object CreatedDateTime -Descending |<\/code><\/strong><br \/>\n<strong><code>Select-Object -First 1<\/code><\/strong><br \/>\n<strong><code>$daysInactive = if ($lastSignIn) { (New-TimeSpan $lastSignIn.CreatedDateTime).Days } else { 999 }<\/code><\/strong><br \/>\n<strong><code>$results += [PSCustomObject]@{<\/code><\/strong><br \/>\n<strong><code>User = $admin.UserPrincipalName<\/code><\/strong><br \/>\n<strong><code>LastSignIn = if ($lastSignIn) { $lastSignIn.CreatedDateTime } else { \"Never\" }<\/code><\/strong><br \/>\n<strong><code>DaysInactive= $daysInactive<\/code><\/strong><br \/>\n<strong><code>RiskStatus = if ($daysInactive -ge 30) { \"STALE\" } else { \"Active\" }<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Una cuenta se considera obsoleta si han pasado 30 d\u00edas o m\u00e1s desde el \u00faltimo inicio de sesi\u00f3n.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"5\">\n<li>Exporta las cuentas marcadas:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>$results | Where-Object { $_.RiskStatus -eq \"STALE\" } |<\/code><\/strong><br \/>\n<strong><code>Export-Csv \"C:\\Audit\\Stale_Admins_$(Get-Date -Format 'yyyyMMdd').csv\" -NoTypeInformation<\/code><\/strong><\/p>\n<p>Al terminar la auditor\u00eda tendr\u00e1s un archivo CSV con todas las cuentas de usuario obsoletas con privilegios de administrador que llevan inactivas 30 d\u00edas o m\u00e1s. Desactiva de inmediato las cuentas de alto riesgo con PowerShell o el Centro de administraci\u00f3n de Microsoft, quita los roles de administrador a los usuarios marcados, documenta los hallazgos en tu plataforma RMM y programa auditor\u00edas peri\u00f3dicas.<\/p>\n<h3 id=\"method-2\">M\u00e9todo 2: identificar cuentas de administrador local en dispositivos Windows con PowerShell<\/h3>\n<p>Las cuentas de administrador local sin monitorizaci\u00f3n en dispositivos Windows son un objetivo prioritario para los atacantes. Este m\u00e9todo permite configurar consultas directas a la base de datos SAM de Windows (sin dependencias del cloud).<\/p>\n<p>\ud83d\udccc <strong>Casos de uso: <\/strong>realiza esta auditor\u00eda cada mes en todos los endpoints, especialmente tras la salida de empleados o durante los escaneos de vulnerabilidades. Es fundamental para identificar cuentas obsoletas con acceso local persistente que escapan a la monitorizaci\u00f3n del cloud.<\/p>\n<p>Procedimiento paso a paso:<\/p>\n<ol>\n<li>En PowerShell (como administrador), ejecuta este script para listar los administradores locales de un dispositivo con Windows 11:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>Get-LocalGroupMember -Group \"Administrators\" |<\/code><\/strong><br \/>\n<strong><code>Select-Object Name, PrincipalSource<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>La salida deber\u00eda distinguir las cuentas de dominio\/cloud (AzureAD) de las locales.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Comprueba la hora del \u00faltimo inicio de sesi\u00f3n:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>Get-LocalUser |<\/code><\/strong><br \/>\n<strong><code>Where-Object {$_.Enabled -eq $true} |<\/code><\/strong><br \/>\n<strong><code>Select-Object Name, LastLogon<\/code><\/strong><\/p>\n<ol start=\"3\">\n<li>Desactiva o elimina las cuentas obsoletas (m\u00e1s de 30 d\u00edas inactivas):<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>Disable-LocalUser -Name \"LegacyAdmin\" # First disable<\/code><\/strong><br \/>\n<strong><code>Remove-LocalUser -Name \"LegacyAdmin\" # Then delete permanently<\/code><\/strong><\/p>\n<ol start=\"4\">\n<li>Escala el proceso a todos los dispositivos con el script del RMM (por ejemplo, NinjaOne):<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name<\/code><\/strong><br \/>\n<strong><code>Invoke-Command -ComputerName $computers -ScriptBlock {<\/code><\/strong><br \/>\n<strong><code>Get-LocalUser | Where-Object {<\/code><\/strong><br \/>\n<strong><code>($_.LastLogon -lt (Get-Date).AddDays(-30)) -and<\/code><\/strong><br \/>\n<strong><code>($_.Name -ne \"Administrator\")<\/code><\/strong><br \/>\n<strong><code>} | Disable-LocalUser<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><\/p>\n<p>Tras la auditor\u00eda podr\u00e1s identificar las cuentas de usuario locales obsoletas con derechos de administrador. Desactiva de inmediato las cuentas de alto riesgo, rota las contrase\u00f1as con LAPS (Local Administrator Password Solution), docum\u00e9ntalas en tu plataforma RMM con indicadores de riesgo y programa escaneos peri\u00f3dicos para evitar que aparezcan nuevas cuentas obsoletas.<\/p>\n<h3 id=\"method-3\">M\u00e9todo 3: auditar con CMD y el Registro la persistencia de administradores locales<\/h3>\n<p>Cuando PowerShell no est\u00e1 disponible, estos m\u00e9todos manuales pueden sacar a la luz cuentas obsoletas ocultas.<\/p>\n<p>\ud83d\udccc <strong>Casos de uso: <\/strong>util\u00edzalos para comprobaciones r\u00e1pidas en dispositivos Windows 11 concretos durante la respuesta a incidentes o cuando el acceso a PowerShell est\u00e9 restringido. Es la opci\u00f3n ideal para identificar cuentas obsoletas que eluden las herramientas automatizadas.<\/p>\n<p>Procedimiento paso a paso:<\/p>\n<ol>\n<li>Lista los administradores locales desde el <strong>S\u00edmbolo del sistema (administrador)<\/strong>.\n<ul>\n<li>Busca <strong>S\u00edmbolo del sistema (administrador) <\/strong>en <em>Buscar<\/em>, en la barra de tareas.<\/li>\n<li>Ejecuta este comando:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong><code>net localgroup administrators<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>La salida deber\u00eda mostrar todos los usuarios con derechos de administrador en el dispositivo actual.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Comprueba el \u00faltimo inicio de sesi\u00f3n de una cuenta concreta con este registro de eventos de seguridad:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>wevtutil qe Security \"\/q:*[System[(EventID=4624)] and EventData[Data[@Name='TargetUserName']='oldadmin']\" \/f:text \/c:1<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Sustituye <strong>oldadmin<\/strong> por el nombre de usuario sospechoso. Este script mostrar\u00e1 el \u00faltimo inicio de sesi\u00f3n correcto.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"3\">\n<li>Comprobaci\u00f3n manual del Registro (alternativa avanzada):<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>reg save HKLM\\SAM sam.bak<\/code><\/strong><br \/>\n<strong><code>reg save HKLM\\SYSTEM system.bak<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Usa <strong>visores SAM sin conexi\u00f3n (por ejemplo, SAMInsight)<\/strong> para analizar <strong>\\SAM\\Domains\\Account\\Users\\Names<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u26a0\ufe0f<strong> Advertencia: <\/strong>editar el Registro de forma incorrecta puede provocar una inestabilidad grave del sistema. Haz siempre una copia de seguridad del Registro o crea un punto de restauraci\u00f3n del sistema antes de continuar. Consulta la secci\u00f3n <em>\u26a0\ufe0fAspectos a tener en cuenta<\/em> para saber m\u00e1s.<\/p>\n<h3 id=\"method-4\">M\u00e9todo 4: usar GPO para evitar la persistencia de administradores locales<\/h3>\n<p>Las GPO te dan un control centralizado para impedir que los atacantes abusen de las cuentas de administrador local obsoletas.<\/p>\n<p>\ud83d\udccc <strong>Caso de uso: <\/strong>despliega esta configuraci\u00f3n durante el endurecimiento inicial del entorno, despu\u00e9s de identificar cuentas obsoletas o cuando te prepares para auditor\u00edas de cumplimiento (por ejemplo, SOC 2). Es clave para aplicar el m\u00ednimo privilegio a gran escala.<\/p>\n<p>Procedimiento paso a paso:<\/p>\n<ol>\n<li>Restringe la pertenencia al grupo Administradores local.\n<ul>\n<li>Abre el Editor de administraci\u00f3n de directivas de grupo (<strong>gpedit.msc<\/strong>).<\/li>\n<li>Ve a <strong>Configuraci\u00f3n del equipo &gt; Directivas &gt; Configuraci\u00f3n de Windows &gt; Configuraci\u00f3n de seguridad &gt; Grupos restringidos<\/strong>.<\/li>\n<li>A\u00f1ade el grupo <strong>Administradores<\/strong> y despu\u00e9s define los miembros permitidos mediante:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>DOMAIN\\SecuredAdmins (Allowed admin group)<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>As\u00ed evitas que usuarios no autorizados eleven privilegios.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Deniega el inicio de sesi\u00f3n a las cuentas obsoletas o de riesgo.\n<ul>\n<li>Ve a la misma GPO y despu\u00e9s navega a: <strong>Configuraci\u00f3n del equipo &gt; Directivas &gt; Configuraci\u00f3n de Windows &gt; Configuraci\u00f3n de seguridad &gt; Directivas locales &gt; Asignaci\u00f3n de derechos de usuario<\/strong>.<\/li>\n<li>Modifica <strong>Denegar el inicio de sesi\u00f3n localmente<\/strong>:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong><code>DOMAIN\\OldAdmin<\/code><\/strong><br \/>\n<strong><code>DOMAIN\\Contractor_2020<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Esto impide que las cuentas indicadas inicien sesi\u00f3n de forma interactiva.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"3\">\n<li>Aplica LAPS para la rotaci\u00f3n de contrase\u00f1as.<\/li>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Instala LAPS en los controladores de dominio:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong><code>Install-WindowsFeature -Name \"RSAT-AD-PowerShell\"<\/code><\/strong><br \/>\n<strong><code>Install-Module LAPS -Force<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Configura la pol\u00edtica de LAPS:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px;\"><strong><code>Configuraci\u00f3n del equipo &gt; Directivas &gt; Plantillas administrativas &gt; LAPS<\/code><\/strong><br \/>\n<strong><code>Habilita \"Configuraci\u00f3n de contrase\u00f1a\" y \"Administraci\u00f3n de contrase\u00f1as de cuentas locales\"<\/code><\/strong><\/p>\n<p>Una vez implementado, en un plazo de 90 minutos (la siguiente actualizaci\u00f3n de GPO) las cuentas de usuario obsoletas perder\u00e1n los derechos de administrador y el acceso de inicio de sesi\u00f3n, las contrase\u00f1as de administrador local se rotar\u00e1n autom\u00e1ticamente cada 30 d\u00edas mediante LAPS y la superficie de ataque se reducir\u00e1 al bloquear los riesgos de pass-the-hash.<\/p>\n<h3 id=\"method-5\">M\u00e9todo 5: automatizar y registrar el rastro de auditor\u00eda y la verificaci\u00f3n de la limpieza<\/h3>\n<p>La automatizaci\u00f3n convierte la gesti\u00f3n de cuentas obsoletas en una medida de seguridad proactiva en lugar de una tarea reactiva.<\/p>\n<p>\ud83d\udccc <strong>Casos de uso: <\/strong>implementa esto para mantener un cumplimiento continuo en entornos multitenant, sobre todo despu\u00e9s de las auditor\u00edas iniciales o durante los ciclos mensuales de seguridad. Es imprescindible para los MSP que gestionan m\u00e1s de 100 endpoints.<\/p>\n<p><strong>Procedimiento paso a paso: <\/strong><\/p>\n<ol>\n<li>Registra todas las acciones con <strong>PowerShell<\/strong>:<\/li>\n<\/ol>\n<p style=\"padding-left: 40px;\"><strong><code>Start-Transcript -Path \"C:\\AuditLogs\\$(Get-Date -Format 'yyyyMMdd').txt\" -Append<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Ejecuta tu script de auditor\u00eda (por ejemplo, el del M\u00e9todo 1 o el 2)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px;\"><strong><code>Stop-Transcript<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>As\u00ed se crean registros resistentes a manipulaciones para el cumplimiento.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>Programa las tareas en una plataforma RMM (por ejemplo, NinjaOne):\n<ul>\n<li>Realiza auditor\u00edas mensuales de administradores.\n<ul>\n<li>Usa el script de PowerShell del M\u00e9todo 1 para encontrar cuentas obsoletas<\/li>\n<\/ul>\n<\/li>\n<li>Desactiva autom\u00e1ticamente las cuentas que lleven 30 d\u00edas o m\u00e1s inactivas:<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong><code>$staleUsers = Import-Csv \"C:\\Audit\\Stale_Admins.csv\"<\/code><\/strong><br \/>\n<strong><code>$staleUsers | ForEach-Object {<\/code><\/strong><br \/>\n<strong><code>if ($_.DaysInactive -ge 30) {<\/code><\/strong><br \/>\n<strong><code>Set-MgUser -UserId $_.User -AccountEnabled:$false<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Exporta y archiva los informes:<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"padding-left: 80px;\"><strong><code>Compress-Archive -Path \"C:\\AuditLogs\\*.txt\" -DestinationPath \"\\\\NAS\\Archives\\StaleAdmins_$(Get-Date -Format 'yyyyMM').zip\"<\/code><\/strong><\/p>\n<ol start=\"3\">\n<li>Avisa cuando se incumplan las pol\u00edticas:\n<ul>\n<li>Env\u00eda un correo si se crea un nuevo administrador fuera del equipo de TI.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p style=\"padding-left: 80px;\"><strong><code>$newAdmin = Get-MgDirectoryRoleMember -DirectoryRoleId \"role-id\" |<\/code><\/strong><br \/>\n<strong><code>Where-Object { $_.CreatedDateTime -gt (Get-Date).AddHours(-1) }<\/code><\/strong><br \/>\n<strong><code>if ($newAdmin) {<\/code><\/strong><br \/>\n<strong><code>Send-MailMessage -To \"secops@domain.com\" -Subject \"ALERT: Unauthorized Admin Created\" -Body $newAdmin.UserPrincipalName<\/code><\/strong><br \/>\n<strong><code>}<\/code><\/strong><\/p>\n<p>Una vez automatizado, tu sistema marcar\u00e1 las cuentas de usuario obsoletas cada mes, desactivar\u00e1 las cuentas inactivas tras 30 d\u00edas, archivar\u00e1 registros cifrados para el cumplimiento, avisar\u00e1 en tiempo real de los incumplimientos de pol\u00edtica y generar\u00e1 informes para direcci\u00f3n desde los paneles del RMM.<\/p>\n<h2 id=\"things-to-look-out-for\">\u26a0\ufe0f Aspectos a tener en cuenta<\/h2>\n<p>En esta secci\u00f3n se destacan los posibles problemas que conviene tener presentes al seguir esta gu\u00eda.<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Riesgos<\/strong><\/td>\n<td><strong>Posibles consecuencias<\/strong><\/td>\n<td><strong>Soluciones<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>1. Datos de inicio de sesi\u00f3n incoherentes<\/strong><\/td>\n<td>Falsos positivos que desactivan administradores activos<\/td>\n<td>1. Verifica que los registros de auditor\u00eda unificados est\u00e1n activados.<\/p>\n<p>2. Ejecuta <strong><code>Get-MgAuditLogSignIn -UserId user@domain.com<\/code><\/strong> para validar la actividad.<\/td>\n<\/tr>\n<tr>\n<td><strong>2. Fallo en la detecci\u00f3n de administradores locales<\/strong><\/td>\n<td>Cuentas obsoletas que pasan desapercibidas en los endpoints<\/td>\n<td>1. Concede derechos de administrador al agente del RMM.<\/p>\n<p>2. Usa <strong><code>icacls C:\\Windows\\System32\\config\\SAM \/grant \"NETWORK SERVICE\":RX<\/code><\/strong> para acceder al Registro.<\/td>\n<\/tr>\n<tr>\n<td><strong>3. Eliminaci\u00f3n de una cuenta protegida<\/strong><\/td>\n<td>Interrupci\u00f3n de servicios cr\u00edticos<\/td>\n<td>1. Comprueba el indicador <strong><code>msDS-ProtectedFromAccidentalDeletion<\/code><\/strong>.<\/p>\n<p>2. Valida la aplicaci\u00f3n de la GPO con <strong><code>gpresult \/H gpreport.html<\/code><\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><strong>4. Errores de autenticaci\u00f3n de la API de Graph<\/strong><\/td>\n<td>Fallos de los scripts durante la automatizaci\u00f3n<\/td>\n<td>1. Valida los \u00e1mbitos con <strong><code>Get-MgContext<\/code><\/strong>.<\/p>\n<p>2. Usa <strong><code>Connect-MgGraph -Scopes \"Directory.ReadWrite.All\"<\/code><\/strong> para las operaciones de escritura.<\/td>\n<\/tr>\n<tr>\n<td><strong>5. Corrupci\u00f3n del Registro<\/strong><\/td>\n<td>El sistema operativo se vuelve inestable y el arranque falla.<\/td>\n<td>Haz una copia de seguridad del Registro* o crea un punto de restauraci\u00f3n del sistema.<\/p>\n<p>*Abre el Editor del Registro (<strong>regedit<\/strong>) y selecciona <strong>Archivo &gt; Exportar<\/strong>.<\/p>\n<p>Mira <a href=\"https:\/\/www.ninjaone.com\/videos\/windows\/how-to-back-up-and-restore-windows-registry\/\">C\u00f3mo hacer una copia de seguridad del Registro de Windows y restaurarlo<\/a> para m\u00e1s detalles.<\/td>\n<\/tr>\n<tr>\n<td><strong>6. Aplicaci\u00f3n excesiva de GPO<\/strong><\/td>\n<td>Bloqueo del acceso a todos los dispositivos<\/td>\n<td>1. Conserva la cuenta de emergencia en la GPO.<\/p>\n<p>2. Revierte los cambios con <strong><code>dcgpofix \/target:DC<\/code><\/strong> en los controladores de dominio.<\/td>\n<\/tr>\n<tr>\n<td><strong>7. Automatizaci\u00f3n demasiado agresiva<\/strong><\/td>\n<td>Desactivaci\u00f3n masiva accidental de usuarios activos<\/td>\n<td>1. A\u00f1ade un periodo de gracia de 72 horas en los scripts.<\/p>\n<p>2. Restaura desde la papelera de reciclaje de Entra ID (hasta 30 d\u00edas).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Aspectos clave al auditar cuentas obsoletas<\/h2>\n<p>Equilibra la seguridad y la continuidad operativa con estas medidas de protecci\u00f3n esenciales.<\/p>\n<h3>Cuentas de emergencia (break-glass)<\/h3>\n<p>Excluye siempre de la limpieza automatizada al menos una cuenta de administrador global por tenant (por ejemplo, emergencyadmin@yourdomain.com). Guarda las credenciales en un sobre sellado o en un gestor de contrase\u00f1as y verif\u00edcalas cada trimestre con:<\/p>\n<p><strong><code>Get-MgUser -UserId \"emergencyadmin@yourdomain.com\" | Select AccountEnabled<\/code><\/strong><\/p>\n<p>Esto evitar\u00e1 un bloqueo total en caso de configuraciones incorrectas o ataques de ransomware.<\/p>\n<h3>Privileged Identity Management (PIM)<\/h3>\n<p>Activa el acceso Just-in-Time en Microsoft Entra ID para eliminar los roles de administrador permanentes. Puedes hacerlo en<strong> Entra ID &gt; Gobernanza de identidades &gt; Acceso con privilegios<\/strong>, convirtiendo a los administradores en roles elegibles con l\u00edmites de tiempo que requieren activaci\u00f3n mediante MFA.<\/p>\n<h3>Integraci\u00f3n de alertas<\/h3>\n<p>Conecta Microsoft Sentinel o Defender for Cloud Apps para detectar cuentas inactivas. Crea estas reglas de analytics:<\/p>\n<p><strong><code>SigninLogs<\/code><\/strong><br \/>\n<strong><code>| where TimeGenerated &gt; ago(90d)<\/code><\/strong><br \/>\n<strong><code>| summarize LastLogin = max(TimeGenerated) by UserPrincipalName<\/code><\/strong><br \/>\n<strong><code>| where LastLogin &lt; ago(30d)<\/code><\/strong><\/p>\n<p>Alertas por correo o SMS para los incumplimientos del informe de 30 d\u00edas de cuentas inactivas de Office 365.<\/p>\n<h3>Cuentas de servicio<\/h3>\n<p>Etiqueta las cuentas no interactivas con el prefijo [SERVICE] y excl\u00fayelas de las pol\u00edticas est\u00e1ndar de inactividad:<\/p>\n<p><strong><code>Set-MgUser -UserId \"svc_sqlbackup\" -Department \"ServiceAccount-Exempt\"<\/code><\/strong><\/p>\n<p>La auditor\u00eda, mediante:<\/p>\n<p><strong><code>Get-MgUser -Filter \"startsWith(Department,'ServiceAccount')\"<\/code><\/strong><\/p>\n<h3>Retenci\u00f3n de los registros de auditor\u00eda<\/h3>\n<p>Ampl\u00eda los registros de auditor\u00eda unificados a 365 d\u00edas, lo que requiere una licencia Entra ID P2. Puedes comprobarlo en <strong>Portal de Azure &gt; Microsoft Entra ID &gt; Monitorizaci\u00f3n &gt; Configuraci\u00f3n de diagn\u00f3stico<\/strong>. Despu\u00e9s, activa AuditLogs y SignInLogs con una retenci\u00f3n de 1 a\u00f1o.<\/p>\n<p>Cumplimiento: cumple los requisitos de FINRA y SOC 2 para localizar usuarios inactivos en O365.<\/p>\n<div class=\"quick-start-guide\"><h2><svg width=\"45\" height=\"45\" viewBox=\"0 0 45 45\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M41.4822 0H3.51778C1.57496 0 0 1.57496 0 3.51778V41.4822C0 43.425 1.57496 45 3.51778 45H41.4822C43.425 45 45 43.425 45 41.4822V3.51778C45 1.57496 43.425 0 41.4822 0Z\" fill=\"#053856\"\/>\n<path d=\"M30.4399 13.9904C28.9161 12.4475 26.9127 11.6737 24.4346 11.6737C23.0721 11.6737 21.8188 11.911 20.6794 12.3858C19.5401 12.8605 18.5859 13.5346 17.8168 14.4129V11.2654L12.2766 13.867V32.562H18.0779V22.4739C18.0779 20.6224 18.5099 19.2267 19.3787 18.2867C20.2474 17.3515 21.4105 16.8815 22.8727 16.8815C24.1877 16.8815 25.1894 17.285 25.8825 18.0968C26.5756 18.9086 26.9222 20.1334 26.9222 21.7808V32.562H32.7234V21.2728C32.7234 18.2393 31.9591 15.5285 30.4399 13.9856V13.9904Z\" fill=\"#04FF88\"\/>\n<\/svg>Gu\u00eda de inicio r\u00e1pido<\/h2><p>NinjaOne se integra con varias de las principales soluciones antivirus para mejorar la gesti\u00f3n de la seguridad y la detecci\u00f3n de amenazas en los dispositivos gestionados. Estas son las principales integraciones de antivirus disponibles en NinjaOne:<\/p>\n<p>1. <b>Bitdefender GravityZone<\/b><\/p>\n<ul>\n<li>Ejecuta an\u00e1lisis antivirus directamente desde el panel de NinjaOne.<\/li>\n<li>Visualiza y soluciona amenazas como archivos en cuarentena, activos o bloqueados.<\/li>\n<li>Sincroniza los datos de amenazas entre NinjaOne y Bitdefender para tener actualizaciones en tiempo real.<\/li>\n<\/ul>\n<p>2. <a href=\"https:\/\/www.ninjaone.com\/es\/integraciones\/sentinelone\/\"><b>SentinelOne<\/b><\/a><\/p>\n<ul>\n<li>Despliega pol\u00edticas de SentinelOne a nivel de grupo para una gesti\u00f3n centralizada.<\/li>\n<li>Realiza an\u00e1lisis completos del disco y soluciona amenazas directamente desde NinjaOne.<\/li>\n<li>Monitoriza el estado del agente y consulta registros de actividad detallados.<\/li>\n<\/ul>\n<p>3. <a href=\"https:\/\/www.ninjaone.com\/es\/integraciones\/webroot\/\"><b>Webroot<\/b><\/a><\/p>\n<ul>\n<li>Integra Webroot para el an\u00e1lisis y la remediaci\u00f3n de amenazas en tiempo real.<\/li>\n<li>Consulta los resultados de los an\u00e1lisis y gestiona las amenazas desde la interfaz de NinjaOne.<\/li>\n<\/ul>\n<p>4. <b><a href=\"https:\/\/www.ninjaone.com\/ninjaone-crowdstrike-falcon-integration\/\">CrowdStrike Falcon<\/a> (EDR y EPP)<\/b><\/p>\n<ul>\n<li>Importa los datos de vulnerabilidades de CrowdStrike Spotlight para hacer un seguimiento centralizado.<\/li>\n<li>Activa la gesti\u00f3n de la exposici\u00f3n para identificar y mitigar riesgos.<\/li>\n<\/ul>\n<\/div>\n<h2>Simplifica la gesti\u00f3n de Active Directory con la ayuda de NinjaOne<\/h2>\n<p>NinjaOne agiliza la auditor\u00eda de cuentas obsoletas con automatizaci\u00f3n integrada.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.ninjaone.com\/es\/rmm\/scripts-automatizados\/\"><strong>Despliegue de scripts<\/strong><\/a><strong>:<\/strong> automatiza las auditor\u00edas con PowerShell (m\u00e9todos 1 y 2) en todos los tenants y endpoints.<\/li>\n<li><strong>Detecci\u00f3n de cuentas locales:<\/strong> analiza los dispositivos Windows 11 en busca de administradores no autorizados y marca las cuentas obsoletas en tiempo real.<\/li>\n<li><strong>Informes programados:<\/strong> genera informes mensuales de 30 d\u00edas de cuentas inactivas de Office 365 con exportaciones en un clic.<\/li>\n<li><strong>Aplicaci\u00f3n de pol\u00edticas:<\/strong> aplica restricciones equivalentes a las GPO (m\u00e9todo 4) para imponer el m\u00ednimo privilegio.<\/li>\n<li><strong>Alertas:<\/strong> recibe avisos de nuevos administradores locales o de administradores globales con m\u00e1s de 30 d\u00edas de inactividad.<\/li>\n<li><strong>L\u00edneas base de seguridad:<\/strong> aplica controles CIS\/NIST para desactivar autom\u00e1ticamente las cuentas de alto riesgo.<\/li>\n<\/ul>\n<div class=\"in-context-cta\"><p style=\"text-align: center;\">Mejora la seguridad de Active Directory con un mayor control de las cuentas de administrador.<\/p>\n<p style=\"text-align: center;\">\ud83d\udcbb <a href=\"https:\/\/www.ninjaone.com\/es\/rmm\/prueba-gratuita\/\">Prueba NinjaOne RMM gratis<\/a> o <a href=\"https:\/\/www.ninjaone.com\/es\/free-demo\/\">mira una demo<\/a>.<\/p>\n<\/div>\n<h2>Protege tu entorno: encuentra las cuentas obsoletas en Active Directory<\/h2>\n<p>Auditar y eliminar las cuentas de administrador obsoletas es la base de la seguridad de las identidades, y esta gu\u00eda te ofrece m\u00e9todos probados para acabar con estos riesgos ocultos.<\/p>\n<p>Al aplicar estas t\u00e9cnicas cerrar\u00e1s las puertas traseras olvidadas que los atacantes pueden aprovechar y cumplir\u00e1s exigencias normativas como SOC 2 o el RGPD. Empieza hoy mismo con tus auditor\u00edas mensuales para mantener un entorno seguro y listo para cualquier auditor\u00eda.<\/p>\n<p><strong>Temas relacionados<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.ninjaone.com\/es\/blog\/como-limpiar-active-directory\/\">C\u00f3mo limpiar Active Directory: buenas pr\u00e1cticas y consejos<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/es\/blog\/instalar-importar-modulo-active-directory-powershell\/\">C\u00f3mo instalar e importar el m\u00f3dulo de Active Directory para PowerShell<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/es\/blog\/como-gestionar-usuarios-del-directorio-activo-remotamente-desde-la-interfaz-de-una-web\/\">C\u00f3mo conectarse a Active Directory de forma remota y gestionar usuarios<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/es\/blog\/copia-active-directory\/\">Copia de seguridad de Active Directory: visi\u00f3n general con ejemplos<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/blog\/ninjaone01-monitoring-active-directory-user-changes\/\">NinjaOne01 Monitorizaci\u00f3n de los cambios en los usuarios de Active Directory<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Las cuentas de administrador obsoletas son vulnerabilidades de seguridad silenciosas: funcionan como puertas traseras abiertas para los atacantes en tu tenant de Microsoft 365 o en tu entorno h\u00edbrido. Estas cuentas privilegiadas olvidadas suelen quedar fuera de toda monitorizaci\u00f3n, aunque suponen riesgos graves de cumplimiento y de brecha de seguridad. En esta gu\u00eda aprender\u00e1s exactamente [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":536268,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[4357],"tags":[],"class_list":["post-900819","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operaciones-de-ti"],"acf":[],"modified_by":null,"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/posts\/900819","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/comments?post=900819"}],"version-history":[{"count":1,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/posts\/900819\/revisions"}],"predecessor-version":[{"id":900820,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/posts\/900819\/revisions\/900820"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media\/536268"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media?parent=900819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/categories?post=900819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/tags?post=900819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}