Active Directory 密码已过期。如果我将其设置为永不过期,用户可以保留相同的密码吗?

Active Directory 密码已过期。如果我将其设置为永不过期,用户可以保留相同的密码吗?

我们的一位用户目前在海外,她的 Active Directory 域密码已过期。她使用缓存凭据和(非 AD 集成)VPN 通过笔记本电脑登录,但无法使用过期密码登录文件共享或 Outlook。如果我更改密码,我担心这会给她的笔记本电脑带来缓存登录问题,而当她身处八个时区之外时,我将无法修复这个问题。要求她必须更改密码的标志已经设置。如果我将她的密码设置为永不过期,这是否会阻止她更改密码,还是无论我做什么,她都必须更改密码?

类似的问题这里表示将帐户设置为永不过期可以,但我想要一些确认。

编辑:密码永不过期的设置只会在她返回办公室之前有效。我只是想让她在外出时重新进入系统,而不会让问题变得更糟。

最终编辑:设置“永不过期”标志解决了这个问题。用户将保留现有密码,直到下周返回。

答案1

是的,我已经这样做过很多次了。如果密码已过期,则选中“密码永不过期”复选框将使密码永不过期,直到用户位于具有 DC 的站点。

答案2

要保留旧的过期密码,只需使用管理控制台重置它并将其设置为永不过期,正如您所说。我不会详述我们大多数人不这样做的所有原因,因为我认为您这样做有自己的理由。

答案3

虽然这不是对你问题的直接回答。这就是当用户使用 vpn 时,你如何处理缓存凭据不同步的问题。

继续为她重置密码 - 但不要在下次登录时强制更改。让她使用当前缓存的凭据登录笔记本电脑,然后通过 VPN 进入您的网络。一旦她通过 VPN 登录,就让她锁定计算机,然后使用新凭据解锁计算机。这将更新本地缓存并允许她使用新密码登录机器,并且让您不设置密码永不过期标志。她可以继续使用该密码,直到它像平常一样过期。

答案4

以下代码可用于查找密码过期的原因。

它最初是从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))
                    }
                }
            }
        }
    }
}

相关内容