Hi,
ich hab diesen Beitrag gefunden:
https://autoit.de/index.php/Thre…daten-abfragen/
beim testen hab ich allerdings ein kleines Problem weil mein Passwort nicht abläuft, also ist das Ablaufdatum in der Vergangenheit und das wird nicht angezeigt
Etwas ähnliches hab ich hie geerbt, keine Ahnung woher das stammt.
Code
Global $UserAccountControl, $samAccountName,$FirstName, $LastName, $title, $PasswordLastChanged, $IsAccountLocked, $DaysLeft,$msg,$icon ,$AnzeigeDatPwdExpires, $Counter, $baseStr
Local $Found = 0
$AnmeldeUser = @UserName
$LogonServer = @LogonDomain
$serverName = $LogonServer
$filterStr = "(&(objectCategory=Person)(objectClass=user)(sAMAccountName=" & @UserName & "))"
$ado = ObjCreate("ADODB.Connection") ; erstellt eine Instanz des Objektes ADODB.Connection
$ado.Provider = "ADSDSOObject"
$ado.Open ("ADS-Search" )
$adoCmd = ObjCreate("ADODB.Command")
$adoCmd.ActiveConnection = $ado
$adoCmd.Properties("Page Size") = 1000
$adoCmd.Properties("Cache Results") = 1
$adoCmd.CommandText = "<LDAP://" & $serverName & "/" & $baseStr & ">;" & $filterStr & ";ADsPath;subtree"
_WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & StringReplace($LogonServer,"\",""))
;~ _WriteLogData("Benutzereinträge für " & @UserName & " werden gesucht, auf Server " & $LogonServer)
;~ _WriteLogData("Funktionsaufruf lautet : " & $adoCmd & " ")
$objectList = $adoCmd.Execute
$Counter = 1
While Not $objectList.EOF()
$user = ObjGet($objectList.Fields("ADsPath").value)
$samAccountName = $User.samAccountName
If stringlower($samAccountName) = StringLower($AnmeldeUser) Then
$UserAccountControl = $user.UserAccountControl
$FirstName = $User.FirstName
$LastName = $User.LastName
$title = $User.title
$PasswordLastChanged = $User.PasswordLastChanged ;pwdLastSet
$IsAccountLocked = $User.IsAccountLocked
_WriteLogData("Benutzereintrag für " & $FirstName & " " & $LastName & " wurde gefunden. Accountcontrol = " & $UserAccountControl)
$DaysLeft = _DatumBerechnen($PasswordLastChanged)
If $DaysLeft <= 10 Then
Switch $DaysLeft
Case 1
MsgBox (16, "Achtung","Ihr Passwort läuft heute ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort umgehend!")
Case 2
MsgBox (48, "Achtung","Ihr Passwort läuft morgen ab" & @CRLF & @CRLF & "Bitte ändern Sie das Passwort!")
Case Else
MsgBox(64,"Achtung","Ihr Passwort läuft in " & $DaysLeft & " Tagen, am " & $AnzeigeDatPwdExpires & ", ab." & @CRLF & @CRLF & "Bitte ändern Sie das Passwort bei der nächsten Gelegenheit!")
EndSwitch
EndIf
EndIf
$objectList.MoveNext()
$Counter += 1
Wend
$UserAccountControl=""
$samAccountName=""
$FirstName=""
$LastName=""
$title=""
$PasswordLastChanged=""
$IsAccountLocked=""
$DaysLeft=""
$msg=""
$icon=""
$AnzeigeDatPwdExpires=""
$Counter=""
EndFunc
Alles anzeigen
Ich hätte es gerne etwas schlanker, weil jemand wie ich auch negative Werte bei waters Script angezeigt bekomme?
Ist nur ein Schönheitsfehler aber ich würde es gerne verstehen, vielleichrt auch ein "Ihr Passwort läuft nicht ab"