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
- Pressione
Ctrl + Alt + Del - Clique em “Alterar senha”
- Digite a senha atual
- Digite a nova senha duas vezes
- Clique em “OK”
Opção B: Via Gerenciamento do Computador
- Clique com botão direito em “Este Computador”
- Selecione “Gerenciar”
- Expanda “Usuários e Grupos Locais”
- Clique em “Usuários”
- Clique com botão direito no usuário desejado
- Selecione “Definir Senha”
- Digite a nova senha duas vezes
- Clique em “OK”
Para Usuário do Active Directory
Via Active Directory Users and Computers
- Abra “Active Directory Users and Computers”
- Navegue até a OU do usuário
- Clique com botão direito no usuário
- Selecione “Redefinir Senha”
- Digite a nova senha duas vezes
- Marque opções conforme necessário:
- “Usuário deve alterar senha no próximo logon”
- “Desbloquear conta do usuário”
- 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 Green2. 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 Yellow3. 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 -AutoSizePara 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-List3. 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-ListGerador 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 CyanDicas 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!"