No mundo dinâmico da TI, manter e gerenciar a segurança do sistema é fundamental. Um aspecto importante disso é garantir que as contas críticas do sistema, como a conta de Administrador em máquinas Windows, sejam menos previsíveis. Uma das principais maneiras de reforçar a segurança dessa conta é renomeá-la. Isso não apenas reduz a superfície para ataques de força bruta, mas também torna mais difícil para entidades mal-intencionadas adivinharem nomes de usuário padrão. Saiba mais sobre esse script do PowerShell que permite que você altere o nome de um administrador no Windows
Histórico
Há anos, os profissionais de TI e os provedores de serviços gerenciados (MSPs) conhecem as vulnerabilidades associadas à manutenção de nomes padrão para contas críticas. Uma conta padrão de “Administrador”, especialmente em sistemas Windows, é como um convite aberto aos hackers. Felizmente, o script do PowerShell compartilhado acima facilita a renomeação dessa conta, aprimorando as posturas de segurança de sistemas individuais e corporativos.
O roteiro
#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 {}
Acesse mais de 300 scripts no NinjaOne Dojo
Detalhamento
- CmdletBinding & Parâmetros: O script começa definindo parâmetros obrigatórios e opcionais. $NewName (o nome desejado para a conta de administrador) é obrigatório, enquanto $CurrentName (o nome atual da conta de administrador) é opcional e o padrão é “Administrator”.
- Início do bloco: Nesse bloco, uma função, Test-IsElevated, é definida. Essa função verifica se o script está sendo executado com privilégios elevados (Administrador), uma condição necessária para renomear a conta de Administrador.
- Process Block: Primeiro, o script verifica se está sendo executado com os privilégios elevados necessários. Em seguida, ele verifica se há o comando Rename-LocalUser, um cmdlet interno do PowerShell para renomear usuários locais. Se for encontrado, o script renomeia a conta usando esse cmdlet. Caso contrário, o padrão é o método mais antigo usando WMIC.exe. O resultado do processo de renomeação é verificado e as mensagens de sucesso ou falha são exibidas de acordo.
- Bloco final: Esse bloco está vazio no script atual, mas pode ser preenchido com tarefas finais de limpeza ou de relatório, se necessário.
Casos de uso em potencial
Imagine uma profissional de TI, Lisa, trabalhando em uma empresa de médio porte. Como parte de uma auditoria de segurança trimestral, ela identifica que muitos sistemas da organização ainda têm suas contas de administrador com nomes padrão. Usando esse script, Lisa pode renomear rapidamente essas contas em vários computadores, reduzindo assim as possíveis vulnerabilidades.
Comparações
Há outros métodos para renomear a conta de administrador. Uma abordagem comum é usar GPO (Group Policy Objects) em uma configuração de domínio. Outra opção é renomear manualmente por meio do Gerenciamento do computador. No entanto, o script do PowerShell fornecido oferece automação, velocidade e consistência, o que é especialmente vantajoso para redes grandes ou mudanças frequentes.
Implicações
Renomear a conta de administrador é uma etapa proativa na segurança de TI. No entanto, a equipe de TI também deve se lembrar dos novos nomes ou ter uma convenção de nomenclatura sistemática para evitar bloqueios de conta ou problemas de acesso. Além disso, todos os scripts ou tarefas que dependem do nome padrão podem precisar de ajustes.
Recomendações
- Sempre faça um backup das configurações essenciais do sistema antes de fazer alterações.
- Use nomes significativos, mas não óbvios, para a conta de administrador.
- Certifique-se de que todo o pessoal relevante seja informado sobre a alteração para evitar interrupções.
Considerações finais
Para os profissionais de TI que desejam integrar esse processo em uma estrutura mais ampla de gerenciamento de TI, o NinjaOne oferece um conjunto abrangente de ferramentas para aprimorar e simplificar a administração do sistema. Ao aproveitar soluções como o NinjaOne, a renomeação das contas de administrador pode ser apenas uma parte de uma abordagem holística da segurança e do gerenciamento de TI.