Ablaufplan für das Kennwort zu einem bestimmten Zeitpunkt

2

Gibt es in Windows Server 2003 oder 2008 und in Active Directory eine Möglichkeit, in einer Richtlinie anzugeben, dass ein Benutzerkennwort, wenn es an diesem Tag abläuft, zu einer bestimmten Zeit abläuft, beispielsweise um 4:00 Uhr.

Das Problem trat auf, weil das Ablaufdatum in der Mitte des Arbeitstages liegt, z. B. um 9:00 Uhr. Wenn dann ein Benutzer bereits bei Windows im Netzwerk angemeldet ist und verschiedene Anwendungen verwendet, verhalten sich diese aufgrund der Authentifizierung falsch. Sie müssen sich abmelden und wieder anmelden, damit Windows nach dem neuen Kennwort fragt.

Wenn sie sich also am frühen Morgen anmelden und nach dem neuen Passwort fragen, müssen sie sich während des Arbeitstages nicht wieder abmelden.

Einer der AD-Admins sagte: "Lassen Sie sie überprüfen, ob ihr Passwort abläuft, bevor sie den Tag beginnen". Aber wer tut das wirklich?

Und ich habe keinen Zugriff auf eine AD, um diese Art von Richtlinien zu überprüfen. Also ist das möglich?

elcool
quelle

Antworten:

3

AFAIK das ist nicht möglich.

Es können mehrere Erinnerungsbenachrichtigungen erfolgen, in denen angegeben wird, dass das aktuelle Kennwort in N Tagen abläuft, und die Option zum Ändern angeboten wird. Wenn der Benutzer diese Erinnerung ignoriert, gräbt er leider sein eigenes Grab.

Aaron McIver
quelle
Wie sie sagen, RTFM
BBlake
Ich weiß, dass es so ist. Die rund 100 Benutzer ignorieren dies.
Ich
+1 @DaveM, außerdem müssen sie sich je nach Software möglicherweise nicht abmelden, nur Strg + Alt + Entf und "Passwort ändern". Ich beschäftige mich alle 42 Tage mit dem gleichen Benutzer und Outlook ... 6 Änderungen in er lernte seine Lektion ...
Cand3r
1

Wir haben ein ähnliches Problem.

Ich kann mir nur vorstellen, jeden Abend ein Skript auszuführen, das Active Directory durchläuft und festlegt, welches Konto am nächsten Tag abläuft. Ist dies der Fall, markieren Sie es, um das Kennwort zu ändern. Der Code würde ungefähr so ​​aussehen: Ich habe nicht versucht, dieses Skript auszuführen, daher muss es möglicherweise ein wenig angepasst werden:

Const SEC_IN_DAY = 86400 
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000 
Const ADS_SCOPE_SUBTREE = 1000

dim strname
dim strdist
dim dtmvalue

on error resume next


        Set objConnection = CreateObject("ADODB.Connection")
        Set objCommand =   CreateObject("ADODB.Command")
        objConnection.Provider = "ADsDSOObject"
        objConnection.Open "Active Directory Provider"
        Set objCommand.ActiveConnection = objConnection
        objCommand.Properties("Page Size") = 1000
        objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
        objCommand.CommandText = "SELECT distinguishedName, profilepath, name from 'LDAP://dc=Example,dc=com' where objectCategory = 'User'"        


     Set objuserRecordSet = objCommand.Execute

objUSerRecordSet.MoveFirst

Do Until objuserRecordSet.EOF  

    strdist = objuserRecordSet.Fields("distinguishedName").Value
    strname = objuserRecordSet.Fields("name").Value

    Set objUserLDAP = GetObject _ 
    ("LDAP://" & strdist) 

    intCurrentValue = objUserLDAP.Get("userAccountControl") 

        dtmValue = objUserLDAP.PasswordLastChanged  

        If intCurrentValue and ADS_UF_DONT_EXPIRE_PASSWD Then 
            x  =  "The password does not expire." 
        Else 
                Set objDomainNT = GetObject("WinNT://escc.gov.uk") 
                intMaxPwdAge = objDomainNT.Get("MaxPasswordAge") 
                    If intMaxPwdAge < 0 Then 
                        x  = "Password does not expire" 
                    Else
                        intMaxPwdAge=intMaxPwdAge/86400
                        strold = ((dtmValue + intMaxPwdAge)-now)

                        if strold < 2 and strold > 0 then
                            objUserLDAP.pwdLastSet = 0
                            objUserLDAP.SetInfo
                        end if
                    end if

        End If 

    dtmValue= ""

    objuserrecordset.movenext   

Loop
Mr_P
quelle