私たちのユーザーの1人が現在海外にいて、彼女のActive Directoryドメインパスワードの有効期限が切れています。キャッシュされた資格情報と(ADに統合されていない)VPNを使用してラップトップでログオンしていますが、期限切れのパスワードでファイル共有またはOutlookにログオンできません。パスワードを変更すると、ラップトップで彼女のキャッシュログオンの問題が発生するのではないかと心配しています。これは、彼女が8つのタイムゾーンを離れている間は解決できません。パスワードを変更する必要があることを示すフラグはすでに設定されています。パスワードを無期限に設定すると、パスワードを変更する必要がなくなりますか、それとも私が何をしてもパスワードを変更する必要がありますか?
同様の質問 ここ は、アカウントをNever Expireに設定しても機能することを示していますが、確認が必要です。
編集:パスワードを無期限にする設定は、彼女がオフィスに戻るまで有効です。私は、問題を悪化させることなく、彼女が不在の間にシステムに戻ることを許可しようとしています。
最終編集:「期限切れなし」フラグを設定すると、問題が修正されました。ユーザーは、来週戻るまで既存のパスワードを保持します。
はい、私はこれを何度も行っています。パスワードの有効期限がすでに切れている場合は、[パスワードを無期限にする]チェックボックスをオンにすると、ユーザーがDCのあるサイトにアクセスするまでパスワードの有効期限が切れません。
古い有効期限が切れたパスワードを保持するには、管理コンソールを使用してパスワードをリセットし、無期限に設定します。あなたがあなたがすることをするあなた自身の理由があると私は思うので、私がほとんどの人がそうしないだろうすべての理由には入りません。
あなたの質問への直接の答えではありませんが。これは、ユーザーがvpnを使用しているときに、キャッシュされた資格情報が同期されないようにする方法です。
先に進んで、パスワードをリセットしてください。ただし、次回のログイン時に変更を強制しないでください。現在キャッシュされている資格情報を使用してラップトップにログインし、次にVPNをネットワークに接続します。彼女がVPNに入ったら、コンピューターをロックし、新しい資格情報でコンピューターのロックを解除します。これによりローカルキャッシュが更新され、新しいパスワードでマシンにログインできるようになります。また、パスワードを無期限に設定しないように設定できます。通常のように期限が切れるまで、彼女はそのパスワードを使い続けることができます。
私の経験では、いったんパスワードを変更するように要求されたら、それを変更する必要があります。一度変更すると、ほとんど問題なく、元に戻すことができると思います。しかし、あなたはおそらく彼女とそれを試す前にそれをテストしたいと思うでしょう。
そして、はい、彼女が再び元気になったら、無期限フラグを設定することを検討することをお勧めします。
次のコードは、パスワードの有効期限が切れた理由を見つけるために使用できます。
MSDNブログのActive Directory Powershellブログ からコピーして貼り付けたものです。
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))
}
}
}
}
}
}