Sim, fiz isso muitas vezes. Se a senha já tiver expirado, marcar a caixa de seleção "A senha nunca expira" cancelará a senha até que o usuário esteja localizado em um site com um controlador de domínio.
Um de nossos usuários está no exterior e sua senha de domínio do Active Directory expirou. Ela está fazendo logon com um laptop usando credenciais em cache e VPN (não integrada ao AD), mas ela não pode fazer logon em compartilhamentos de arquivos ou no Outlook com a senha expirada. Se eu alterar a senha, estou preocupado com a possibilidade de criar problemas de logon em cache para ela com o laptop, o que não poderei corrigir enquanto ela estiver com oito fusos horários de distância. A bandeira que diz que ela deve alterar sua senha já está definida. Se eu definir sua senha para nunca expirar, isso a impedirá de alterar a senha ou ela deve alterá-la, não importa o que eu faça?
Uma pergunta semelhante aqui indica que a configuração da conta Never Expirar funcionaria, mas eu gostaria de alguma confirmação.
Edit: A configuração de senha nunca expira só estará em vigor até que ela retorne ao escritório. Eu só estou tentando permitir que ela entre no sistema enquanto está longe, sem piorar o problema.
Edição final: Definir o sinalizador "Nunca expirar" resolveu o problema. O usuário manterá sua senha atual até ela retornar na próxima semana.
Para manter a senha expirada, basta redefini-la usando o console de gerenciamento e configurá-la para nunca expirar, como você disse. Não vou entrar em todos os motivos pelos quais a maioria de nós não faria isso, pois presumo que você tenha suas próprias razões para fazer o que faz.
Embora não seja uma resposta direta à sua pergunta. É assim que você cuida das credenciais em cache que estão fora de sincronia quando um usuário está usando o vpn.
Vá em frente e redefina a senha dela, mas não force a mudança no próximo login. Faça com que ela faça o login no laptop com as credenciais em cache atuais e, em seguida, faça VPN na sua rede. uma vez que ela é vpn'd em ter seu bloqueio do computador, em seguida, desbloquear o computador com as novas credenciais. Isso atualizará o cache local e permitirá que ele faça login na máquina com a nova senha, e você NÃO definirá a senha nunca expira o sinalizador. Ela poderia continuar a usar essa senha até que ela expire normalmente.
Minha experiência é que, uma vez que você exige que você mude sua senha, você deve alterá-la. Uma vez alterado, acho que você poderia * alterá-lo de volta com pouco ou nenhum problema. Mas você provavelmente vai querer testá-lo antes de tentar com ela.
E, sim, quando ela estiver boa novamente, talvez você queira considerar a possibilidade de definir a sinalização de nunca expirar.
O seguinte código pode ser usado para descobrir porque a senha expirou.
Foi originalmente copiado e colado de o Blog do Active Directory Powershell nos blogs do MSDN .
function Get-XADUserPasswordExpirationDate() {
Param ([Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true, HelpMessage="Identity of the Account")]
[Object] $accountIdentity)
PROCESS {
$accountObj = Get-ADUser $accountIdentity -properties PasswordExpired, PasswordNeverExpires, PasswordLastSet
if ($accountObj.PasswordExpired) {
echo ("Password of account: " + $accountObj.Name + " already expired!")
} else {
if ($accountObj.PasswordNeverExpires) {
echo ("Password of account: " + $accountObj.Name + " is set to never expires!")
} else {
$passwordSetDate = $accountObj.PasswordLastSet
if ($passwordSetDate -eq $null) {
echo ("Password of account: " + $accountObj.Name + " has never been set!")
} else {
$maxPasswordAgeTimeSpan = $null
$dfl = (get-addomain).DomainMode
if ($dfl -ge 3) {
## Greater than Windows2008 domain functional level
$accountFGPP = Get-ADUserResultantPasswordPolicy $accountObj
if ($accountFGPP -ne $null) {
$maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge
} else {
$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
}
} else {
$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
}
if ($maxPasswordAgeTimeSpan -eq $null -or $maxPasswordAgeTimeSpan.TotalMilliseconds -eq 0) {
echo ("MaxPasswordAge is not set for the domain or is set to zero!")
} else {
echo ("Password of account: " + $accountObj.Name + " expires on: " + ($passwordSetDate + $maxPasswordAgeTimeSpan))
}
}
}
}
}
}