En el dinámico mundo de las TI, mantener y gestionar la seguridad de los sistemas es primordial. Un aspecto importante de esto es garantizar que las cuentas críticas del sistema, como la cuenta de administrador en las máquinas Windows, sean menos predecibles. Una forma principal de reforzar la seguridad de esta cuenta es cambiarle el nombre. Esto no sólo reduce la superficie de ataques de fuerza bruta, sino que también dificulta que entidades maliciosas adivinen nombres de usuario estándar. Descubre un script PowerShell que te permitirá cambiar un nombre de administrador en Windows.
Antecedentes
Durante años, los profesionales de TI y los proveedores de servicios gestionados (MSP) han conocido las vulnerabilidades asociadas al mantenimiento de nombres predeterminados para cuentas críticas. Una cuenta de «Administrador» por defecto, especialmente en sistemas Windows, es como una invitación abierta a los hackers. Por suerte, el script PowerShell que acabamos de ver facilita el cambio de nombre de esta cuenta, mejorando las posturas de seguridad de los sistemas individuales y empresariales por igual.
El script para cambiar un nombre de administrador en Windows
#Requires -Version 2.0 <# .SYNOPSIS Renames the Local Administrator Account. .DESCRIPTION Renames the Local Administrator Account. .EXAMPLE -NewName "NewAdminName" Renames the local Administrator account to NewAdminName. .EXAMPLE -NewName "Administrator" -CurrentName "OldAdminName" Renames the local Administrator account back to its original name. .EXAMPLE PS C:> .Rename-LocalAdministratorAccount.ps1 -NewName "NewAdminName" Renames the local Administrator account to NewAdminName. .OUTPUTS String[] .NOTES Minimum OS Architecture Supported: Windows 7, Windows Server 2012 Release Notes: Initial Release By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use. Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA). .COMPONENT LocalBuiltInAccountManagement #> [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [String] $NewName, [Parameter(Mandatory = $false)] [String] $CurrentName = "Administrator" ) begin { function Test-IsElevated { $id = [System.Security.Principal.WindowsIdentity]::GetCurrent() $p = New-Object System.Security.Principal.WindowsPrincipal($id) if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output $true } else { Write-Output $false } } } process { if (-not (Test-IsElevated)) { Write-Error -Message "Access Denied. Please run with Administrator privileges." exit 1 } $Failed = $false if ((Get-Command -Name "Rename-LocalUser").Count -gt 0) { try { Rename-LocalUser -Name "$CurrentName" -NewName "$NewName" -Confirm:$false } catch { $Failed = $true } } else { # Unable to find Rename-LocalUser, falling back to using WMIC.exe WMIC.exe useraccount where name="$CurrentName" rename "$NewName" $ExitCode = $LASTEXITCODE if ($ExitCode -ne 0) { # Some kind of error occurred, likely account was already renamed. $Failed = $true } } if ($Failed) { Write-Error "Failed to Rename $CurrentName to $NewName" exit 1 } else { Write-Host "Renamed $CurrentName to $NewName" exit 0 } } end {}
Accede a más de 300 scripts en el Dojo de NinjaOne
Análisis detallado
- CmdletBinding y parámetros: El script comienza definiendo parámetros obligatorios y opcionales. $NewName (el nombre deseado para la cuenta de administrador) es obligatorio, mientras que $CurrentName (el nombre actual de la cuenta de administrador) es opcional y por defecto es «Administrator».
- Bloque de inicio: Dentro de este bloque, se define una función, Test-IsElevated. Esta función comprueba si el script se está ejecutando con privilegios elevados (de Administrador), condición necesaria para renombrar la cuenta de Administrador.
- Bloque del proceso: El script comprueba primero si se está ejecutando con los privilegios elevados necesarios. A continuación, busca el comando Rename-LocalUser, un cmdlet de PowerShell integrado para renombrar usuarios locales. Si lo encuentra, el script renombra la cuenta utilizando este cmdlet. De no ser así, se utiliza por defecto el método más antiguo con WMIC.exe. Se comprueba el resultado del proceso de cambio de nombre y se muestran los mensajes de éxito o error correspondientes.
- Bloque final: Este bloque está vacío en el script actual, pero puede rellenarse con tareas de limpieza final o elaboración de informes si es necesario.
Posibles casos de uso
Imagina a una profesional de TI, Luisa, que trabaja en una empresa mediana. Como parte de una auditoría de seguridad trimestral, identifica que muchos sistemas de la organización aún tienen sus cuentas de administrador con nombres predeterminados. Con este script, Luisa puede renombrar rápidamente estas cuentas en varios equipos, reduciendo así las posibles vulnerabilidades.
Comparaciones
Existen otros métodos para cambiar el nombre de la cuenta de Administrador. Un enfoque común es el uso de objetos de directiva de grupo (GPO) en una configuración de dominio. Otra es renombrar manualmente a través de Gestión de ordenadores. Sin embargo, el script PowerShell proporcionado ofrece automatización, velocidad y consistencia, especialmente beneficioso para redes grandes o cambios frecuentes.
FAQ
- ¿Es obligatorio ejecutarlo con privilegios elevados?
Sí. Se necesitan privilegios de administrador para cambiar el nombre de la cuenta de administrador. - ¿Este script funciona en versiones anteriores de Windows?
El script es compatible con Windows 7 y versiones superiores, incluido Windows Server 2012. - ¿Puedo volver al nombre por defecto utilizando el script?
Sí. Especificando los parámetros -NewName y -CurrentName, puedes renombrar la cuenta de nuevo a «Administrador».
Implicaciones
Cambiar el nombre de la cuenta de administrador es un paso proactivo en la seguridad de TI. Sin embargo, el personal informático también debe recordar los nuevos nombres o tener una convención sistemática de nomenclatura para evitar bloqueos de cuentas o problemas de acceso. Además, cualquier script o tarea que dependa del nombre por defecto podría necesitar ajustes.
Recomendaciones
- Haz siempre una copia de seguridad de los ajustes esenciales del sistema antes de realizar cambios.
- Utiliza nombres significativos pero no obvios para la cuenta de administrador.
- Asegúrate de que todo el personal pertinente esté informado del cambio para evitar interrupciones.
Reflexiones finales
Para los profesionales de TI que deseen integrar este proceso en un marco de gestión de TI más amplio, NinjaOne ofrece un conjunto completo de herramientas para mejorar y agilizar la administración de sistemas. Con soluciones como NinjaOne, el cambio de nombre de las cuentas de administrador puede ser sólo una parte de un enfoque global de la seguridad y la gestión de TI.