Cómo cambiar un nombre de administrador en Windows usando PowerShell

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

Obtén acceso

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.

Próximos pasos

La creación de un equipo de TI próspero y eficaz requiere contar con una solución centralizada que se convierta en tu principal herramienta de prestación de servicios. NinjaOne permite a los equipos de TI supervisar, gestionar, proteger y dar soporte a todos sus dispositivos, estén donde estén, sin necesidad de complejas infraestructuras locales.

Obtén más información sobre NinjaOne Endpoint Management, echa un vistazo a un tour en vivoo tu prueba gratuita de la plataforma NinjaOne.

Categorías:

Quizá también te interese…

×

¡Vean a NinjaOne en acción!

Al enviar este formulario, acepto la política de privacidad de NinjaOne.

Términos y condiciones de NinjaOne

Al hacer clic en el botón «Acepto» que aparece a continuación, estás aceptando los siguientes términos legales, así como nuestras Condiciones de uso:

  • Derechos de propiedad: NinjaOne posee y seguirá poseyendo todos los derechos, títulos e intereses sobre el script (incluidos los derechos de autor). NinjaOne concede al usuario una licencia limitada para utilizar el script de acuerdo con estos términos legales.
  • Limitación de uso: solo podrás utilizar el script para tus legítimos fines personales o comerciales internos, y no podrás compartirlo con terceros.
  • Prohibición de republicación: bajo ninguna circunstancia está permitido volver a publicar el script en ninguna biblioteca de scripts que pertenezca o esté bajo el control de cualquier otro proveedor de software.
  • Exclusión de garantía: el script se proporciona «tal cual» y «según disponibilidad», sin garantía de ningún tipo. NinjaOne no promete ni garantiza que el script esté libre de defectos o que satisfaga las necesidades o expectativas específicas del usuario.
  • Asunción de riesgos: el uso que el usuario haga del script corre por su cuenta y riesgo. El usuario reconoce que existen ciertos riesgos inherentes al uso del script, y entiende y asume cada uno de esos riesgos.
  • Renuncia y exención: el usuario no hará responsable a NinjaOne de cualquier consecuencia adversa o no deseada que resulte del uso del script y renuncia a cualquier derecho o recurso legal o equitativo que pueda tener contra NinjaOne en relación con su uso del script.
  • CLUF: si el usuario es cliente de NinjaOne, su uso del script está sujeto al Contrato de Licencia para el Usuario Final (CLUF).