Come modificare il nome di un amministratore in Windows con PowerShell

Nel dinamico mondo dell’IT, mantenere e gestire la sicurezza dei sistemi è fondamentale. Un aspetto significativo è quello di garantire che gli account di sistema critici, come l’account Amministratore sui computer Windows, siano meno prevedibili. Uno dei modi principali per rafforzare la sicurezza di questo account è modificare il nome di un amministratore. In questo modo non solo si riduce la superficie per gli attacchi brute-force, ma si rende anche più difficile per i malintenzionati indovinare i nomi utente standard. Scopri di più su questo script PowerShell che consente di modificare il nome di un amministratore in Windows.

Background

Da anni i professionisti IT e i Managed Service Provider (MSP) conoscono le vulnerabilità associate al mantenimento di nomi predefiniti per gli account critici. Un account “Amministratore” predefinito, soprattutto nei sistemi Windows, è un invito aperto ai malintenzionati. Fortunatamente, lo script PowerShell per modificare il nome di un amministratore, qui condiviso, facilita la ridenominazione di questo account, migliorando la sicurezza dei sistemi personali e aziendali.

Lo script per modificare il nome di un amministratore

#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 {}

 

Accedi a oltre 700 script nel Dojo di NinjaOne

Ottieni l’accesso

Analisi dettagliata

  • CmdletBinding e parametri: Lo script per modificare il nome di un amministratore inizia definendo i parametri obbligatori e facoltativi. $NewName (il nome desiderato per l’account amministratore) è obbligatorio, mentre $CurrentName (il nome attuale dell’account amministratore) è facoltativo e ha come valore predefinito “Administrator”.
  • Blocco iniziale: All’interno di questo blocco, viene definita una funzione: Test-IsElevated. Questa funzione controlla se lo script è in esecuzione con privilegi elevati (di amministratore), condizione necessaria per modificare il nome di un amministratore.
  • Blocco del processo: Lo script per modificare il nome di un amministratore controlla innanzitutto di essere in esecuzione con i privilegi elevati necessari. Controlla quindi la presenza del comando Rename-LocalUser, un cmdlet PowerShell nativo per rinominare gli utenti locali. Se lo trova, lo script rinomina l’account utilizzando questo cmdlet. In caso contrario, viene utilizzato il metodo tradizionale tramite WMIC.exe. Il risultato del processo di ridenominazione viene controllato e viene dunque visualizzato un messaggio di successo o di fallimento.
  • Blocco finale: Questo blocco è vuoto nella versione presentata qui dello script per modificare il nome di un amministratore, ma può essere popolato con attività di pulizia finale o di reporting, se necessario.

Casi d’uso potenziali

Immagina una professionista IT, Lisa, che lavora in un’azienda di medie dimensioni. Nell’ambito di un controllo trimestrale della sicurezza, individua molti sistemi dell’organizzazione che hanno ancora gli account di amministratore con nomi predefiniti. Utilizzando questo script, Lisa può rinominare rapidamente questi account su più macchine, riducendo così le potenziali vulnerabilità.

Confronti

Esistono altri metodi per rinominare l’account Amministratore. Un approccio comune è quello di utilizzare gli oggetti dei Criteri di gruppo (GPO) in un’impostazione di dominio. Un’altra soluzione è la ridenominazione manuale tramite Gestione computer. Tuttavia, lo script PowerShell fornito offre automazione, velocità e coerenza, particolarmente utili per reti di grandi dimensioni o per modifiche frequenti.

Domande frequenti

  • L’esecuzione con privilegi elevati è obbligatoria? Sì. Per modificare il nome di un amministratore sono necessari i privilegi di amministratore.
  • Questo script per modificare il nome di un amministratore funziona su versioni più vecchie di Windows? Lo script per modificare il nome di un amministratore supporta Windows 7 e versioni successive, compreso Windows Server 2012.
  • Posso ripristinare il nome predefinito utilizzando lo script per modificare il nome di un amministratore? Sì. Specificando i parametri -NewName e -CurrentName, è possibile rinominare l’account in “Administrator”.

Implicazioni

Rinominare l’account amministratore è una misura proattiva per la sicurezza informatica. Tuttavia, il personale IT deve anche ricordare i nuovi nomi o avere una convenzione di denominazione sistematica per evitare il blocco degli account o problemi di accesso. Inoltre, gli script o le attività che si basano sul nome predefinito potrebbero avere bisogno di modifiche.

Raccomandazioni

  • Esegui sempre un backup delle impostazioni essenziali del sistema prima di apportare modifiche.
  • Utilizza nomi significativi ma non ovvi per l’account Amministratore.
  • Assicurati che tutto il personale interessato sia informato del cambiamento per evitare interruzioni.

Considerazioni finali

Per i professionisti IT che desiderano integrare questo processo in un quadro di gestione IT più ampio, NinjaOne offre una suite completa di strumenti per migliorare e semplificare l’amministrazione del sistema. Sfruttando soluzioni come NinjaOne, modificare il nome di un amministratore può essere solo una parte di un approccio completo alla sicurezza e alla gestione dell’IT.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento di erogazione dei servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare in termini di assistenza tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Scopri qualcosa in più su NinjaOne Endpoint Management, fai un tour dal vivo o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

Guarda una demo×
×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.