Como Alterar Senha do Windows Server

A alteração de senhas no Windows Server pode ser feita para usuários locais ou do Active Directory. Este tutorial aborda ambos os cenários.

Avisos Importantes

  • Use senhas fortes (maiúsculas, minúsculas, números, símbolos)
  • Anote a nova senha em local seguro
  • Teste o login antes de encerrar a sessão atual
  • Considere políticas de senha da organização

Método 1: Passo a Passo Manual

Para Usuário Local (Servidor não integrado ao AD)

Opção A: Via Interface Gráfica

  1. Pressione Ctrl + Alt + Del
  2. Clique em “Alterar senha”
  3. Digite a senha atual
  4. Digite a nova senha duas vezes
  5. Clique em “OK”

Opção B: Via Gerenciamento do Computador

  1. Clique com botão direito em “Este Computador”
  2. Selecione “Gerenciar”
  3. Expanda “Usuários e Grupos Locais”
  4. Clique em “Usuários”
  5. Clique com botão direito no usuário desejado
  6. Selecione “Definir Senha”
  7. Digite a nova senha duas vezes
  8. Clique em “OK”

Para Usuário do Active Directory

Via Active Directory Users and Computers

  1. Abra “Active Directory Users and Computers”
  2. Navegue até a OU do usuário
  3. Clique com botão direito no usuário
  4. Selecione “Redefinir Senha”
  5. Digite a nova senha duas vezes
  6. Marque opções conforme necessário:
    • “Usuário deve alterar senha no próximo logon”
    • “Desbloquear conta do usuário”
  7. Clique em “OK”

Método 2: Scripts PowerShell Prontos

Para Usuários Locais

Script Completo – Alterar Senha Local

# Script para alterar senha de usuário local
# Execute como Administrador

# Configurações (altere conforme necessário)
$NomeUsuario = "Administrator"  # Nome do usuário
$NovaSenha = "MinhaNovaSenh@123!"  # Nova senha

Write-Host "=== Alterando Senha do Usuário Local: $NomeUsuario ===" -ForegroundColor Green

try {
    # Converter senha para SecureString
    $SenhaSecura = ConvertTo-SecureString $NovaSenha -AsPlainText -Force
    
    # Alterar a senha
    Set-LocalUser -Name $NomeUsuario -Password $SenhaSecura
    
    Write-Host "Senha alterada com sucesso!" -ForegroundColor Green
    Write-Host "Usuário: $NomeUsuario" -ForegroundColor Cyan
    Write-Host "Data da alteração: $(Get-Date)" -ForegroundColor Cyan
    
    # Verificar se o usuário está ativo
    $Usuario = Get-LocalUser -Name $NomeUsuario
    Write-Host "Status da conta: $($Usuario.Enabled)" -ForegroundColor Cyan
}
catch {
    Write-Host "Erro ao alterar senha: $($_.Exception.Message)" -ForegroundColor Red
}

Scripts Específicos para Usuários Locais

1. Alterar Senha Interativa (Mais Seguro)
# Alterar senha de forma interativa (não exibe a senha)
$NomeUsuario = Read-Host "Digite o nome do usuário"
$NovaSenha = Read-Host "Digite a nova senha" -AsSecureString

Set-LocalUser -Name $NomeUsuario -Password $NovaSenha
Write-Host "Senha do usuário '$NomeUsuario' alterada com sucesso!" -ForegroundColor Green
2. Forçar Alteração no Próximo Login
# Forçar usuário a alterar senha no próximo login
$NomeUsuario = "usuario"
$Usuario = Get-LocalUser -Name $NomeUsuario
$Usuario | Set-LocalUser -PasswordNeverExpires $false
Write-Host "Usuário '$NomeUsuario' deverá alterar a senha no próximo login" -ForegroundColor Yellow
3. Listar Todos os Usuários Locais
# Listar usuários locais e status das senhas
Get-LocalUser | Select-Object Name, Enabled, PasswordExpires, PasswordLastSet, PasswordRequired | Format-Table -AutoSize

Para Usuários do Active Directory

Script Completo – Alterar Senha AD

# Script para alterar senha de usuário do Active Directory
# Execute como Administrador com permissões no AD

# Configurações (altere conforme necessário)
$NomeUsuario = "usuario.teste"  # SamAccountName do usuário
$NovaSenha = "MinhaNovaSenh@123!"  # Nova senha
$ForcarAlteracao = $true  # Forçar alteração no próximo login

Write-Host "=== Alterando Senha do Usuário AD: $NomeUsuario ===" -ForegroundColor Green

try {
    # Importar módulo do Active Directory
    Import-Module ActiveDirectory -ErrorAction Stop
    
    # Converter senha para SecureString
    $SenhaSecura = ConvertTo-SecureString $NovaSenha -AsPlainText -Force
    
    # Alterar a senha
    Set-ADAccountPassword -Identity $NomeUsuario -NewPassword $SenhaSecura -Reset
    
    if ($ForcarAlteracao) {
        Set-ADUser -Identity $NomeUsuario -ChangePasswordAtLogon $true
        Write-Host "Usuário deverá alterar senha no próximo login" -ForegroundColor Yellow
    }
    
    # Desbloquear conta se estiver bloqueada
    Unlock-ADAccount -Identity $NomeUsuario
    
    Write-Host "Senha alterada com sucesso!" -ForegroundColor Green
    Write-Host "Usuário: $NomeUsuario" -ForegroundColor Cyan
    Write-Host "Data da alteração: $(Get-Date)" -ForegroundColor Cyan
}
catch {
    Write-Host "Erro ao alterar senha: $($_.Exception.Message)" -ForegroundColor Red
    Write-Host "Verifique se o módulo ActiveDirectory está instalado e se você tem permissões" -ForegroundColor Yellow
}

Scripts Específicos para AD

1. Alterar Múltiplas Senhas
# Alterar senhas de múltiplos usuários
$Usuarios = @("usuario1", "usuario2", "usuario3")
$SenhaComum = "TempPass@123!"

foreach ($Usuario in $Usuarios) {
    $SenhaSecura = ConvertTo-SecureString $SenhaComum -AsPlainText -Force
    Set-ADAccountPassword -Identity $Usuario -NewPassword $SenhaSecura -Reset
    Set-ADUser -Identity $Usuario -ChangePasswordAtLogon $true
    Write-Host "Senha alterada para: $Usuario" -ForegroundColor Green
}
2. Verificar Política de Senhas
# Verificar política de senhas do domínio
Get-ADDefaultDomainPasswordPolicy | Select-Object ComplexityEnabled, MinPasswordLength, MaxPasswordAge, MinPasswordAge, PasswordHistoryCount | Format-List
3. Verificar Status de Senha do Usuário
# Verificar informações de senha de um usuário
$Usuario = "nome.usuario"
Get-ADUser -Identity $Usuario -Properties PasswordLastSet, PasswordExpired, PasswordNeverExpires, LockedOut | 
Select-Object Name, PasswordLastSet, PasswordExpired, PasswordNeverExpires, LockedOut | Format-List

Gerador de Senhas Seguras

# Função para gerar senhas seguras
function New-SecurePassword {
    param(
        [int]$Length = 12,
        [switch]$IncludeSymbols
    )
    
    $Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    if ($IncludeSymbols) {
        $Chars += "!@#$%^&*()_+-=[]{}|;:,.<>?"
    }
    
    $Password = ""
    for ($i = 0; $i -lt $Length; $i++) {
        $Password += $Chars[(Get-Random -Maximum $Chars.Length)]
    }
    
    return $Password
}

# Gerar senha segura
$NovaSenhaGerada = New-SecurePassword -Length 15 -IncludeSymbols
Write-Host "Senha gerada: $NovaSenhaGerada" -ForegroundColor Cyan

Dicas de Segurança

Critérios para Senhas Fortes

  • Mínimo 12 caracteres
  • Maiúsculas e minúsculas
  • Números e símbolos
  • Evitar palavras do dicionário
  • Não usar informações pessoais

Recomendações Gerais

  • Altere senhas regularmente
  • Use senhas diferentes para cada conta
  • Considere usar gerenciadores de senha
  • Implemente autenticação de dois fatores quando possível

Verificação de Força da Senha

# Verificar força da senha (básico)
function Test-PasswordStrength {
    param([string]$Password)
    
    $Score = 0
    if ($Password.Length -ge 8) { $Score++ }
    if ($Password -cmatch "[a-z]") { $Score++ }
    if ($Password -cmatch "[A-Z]") { $Score++ }
    if ($Password -match "\d") { $Score++ }
    if ($Password -match "[^a-zA-Z0-9]") { $Score++ }
    
    switch ($Score) {
        {$_ -le 2} { Write-Host "Senha FRACA" -ForegroundColor Red }
        3 { Write-Host "Senha MÉDIA" -ForegroundColor Yellow }
        4 { Write-Host "Senha BOA" -ForegroundColor Green }
        5 { Write-Host "Senha FORTE" -ForegroundColor Green }
    }
}

# Testar força da senha
Test-PasswordStrength "MinhaSenh@123!"

Gostou deste conteúdo?

Sua opinião é importante para nós!