Abfrage des Active Directory über ablaufende PW von Dienstekonten
Hallo zusammmen,
bräuchte eine Ldap-Abfrage die mir Dienstekonten/Userkonten ausgiebt deren PW in den nächsten 7 Tagen ablaufen wird.
Betriebssystem W2k3 Sp2
Vielen Dank für euere Hilfe
bräuchte eine Ldap-Abfrage die mir Dienstekonten/Userkonten ausgiebt deren PW in den nächsten 7 Tagen ablaufen wird.
Betriebssystem W2k3 Sp2
Vielen Dank für euere Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49915
Url: https://administrator.de/forum/abfrage-des-active-directory-ueber-ablaufende-pw-von-dienstekonten-49915.html
Ausgedruckt am: 14.04.2025 um 23:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo u0206084!
Das Script gibt nur Informationen über den (einzelnen) User "myerken" in der OU "management" der Domäne "fabrikam.com"aus, siehe Zeile
und Zeile
Diese Zeilen müsstest Du zunächst an Deine Gegebenheiten anpassen und danach in eine Schleife für alle Benutzer packen.
Grüße
bastla
P.S.: Für mehr reicht momentan meine Zeit nicht ...
Das Script gibt nur Informationen über den (einzelnen) User "myerken" in der OU "management" der Domäne "fabrikam.com"aus, siehe Zeile
1
("LDAP://CN=myerken,OU=management,DC=fabrikam,DC=com")
1
Set objDomainNT = GetObject("WinNT://fabrikam")
Grüße
bastla
P.S.: Für mehr reicht momentan meine Zeit nicht ...
Hallo u0206084!
Den folgenden Ansatz habe ich aus einigen Fragmenten kombiniert:
Anpassen müsstest Du den Domänennamen (im Beispiel "firma.local" in der NETBIOS-Schreibweise "FIRMA") und ev die Frist (7 Tage) für die "Vorschau" auf ablaufende Passwörter.
Weiters ist zu beachten, dass nur die Gruppe "Domänen-Benutzer" berücksichtigt wird (womit ich den Beitrags-Titel klar verfehle).
Hinsichtlich des Ausgabeformates kannst Du ja selbst ein wenig experimentieren (siehe Zeilen "strMessage =").
Die auskommentierten "WScript.Echo"-Zeilen habe ich zu Test- bzw Demozwecken drinnen gelassen.
Grüße
bastla
Den folgenden Ansatz habe ich aus einigen Fragmenten kombiniert:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'#### anpassen ####
strDom = "FIRMA"
Const FRIST = 7
'##################
'Teile des Codes aus
'Microsoft Certified Professional Magazine Online - Automate Your Security
'http://mcpmag.com/features/article.asp?EditorialsID=398
'sowie
'Hey, Scripting Guy! - How Can I Determine When a User Last Changed His or Her Password?
'http://www.microsoft.com/technet/scriptcenter/resources/qanda/jul05/hey0705.mspx
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
Set objDomainNT = GetObject("WinNT://" & strDom)
intMaxPwdAge = objDomainNT.Get("MaxPasswordAge")
If intMaxPwdAge < 0 Then
WScript.Echo "Max Passwortalter ist 0, Passwörter laufen nicht ab!"
WScript.Quit
End If
intMaxPwdAge = Int(intMaxPwdAge / 86400)
'Point to group containing users to check
Set oGroup = GetObject("WinNT://" & strDom & "/Domänen-Benutzer")
'for each user object in the group...
For Each oObject In oGroup.Members
'retrieve the user object
Set oUser = GetObject(oObject.ADsPath)
intCurrentValue = oUser.UserFlags
If intCurrentValue and ADS_UF_DONT_EXPIRE_PASSWD Then
'WScript.Echo oUser.Name & ": Passwort läuft niemals ab."
Else
intPasswordAge = oUser.PasswordAge
dtmChangeDate = DateAdd("s", -intPasswordAge, Now)
'WScript.Echo oUser.Name & ": Passwort zuletzt geändert: " & dtmChangeDate
intExpire = DateDiff("d", Now, dtmChangeDate) + intMaxPwdAge
If intExpire <= 0 Then 'abgelaufen
strMessage = oUser.Name & ": abgelaufen - Tage: " & -intExpire
ElseIf intExpire <= FRIST Then 'demnächst
strMessage = oUser.Name & ": läuft ab - Tage: " & intExpire
End If
WScript.Echo strMessage
End If
Next
Weiters ist zu beachten, dass nur die Gruppe "Domänen-Benutzer" berücksichtigt wird (womit ich den Beitrags-Titel klar verfehle).
Hinsichtlich des Ausgabeformates kannst Du ja selbst ein wenig experimentieren (siehe Zeilen "strMessage =").
Die auskommentierten "WScript.Echo"-Zeilen habe ich zu Test- bzw Demozwecken drinnen gelassen.
Grüße
bastla
Hallo u0206084!
Das Script ist "stand-alone" gemeint, also einfach starten, zB über die Kommandozeile oder per Batch mit
wobei Du zu Dokumentationszwecken ein ">D:\Reports\AblaufendePW.txt" anhängen könntest (alle Pfade und Dateinamen frei erfunden). Wenn Du die .vbs-Datei per Doppelklick direkt startest, wird die Liste in einer MessageBox ausgegeben.
Grüße
bastla
Das Script ist "stand-alone" gemeint, also einfach starten, zB über die Kommandozeile oder per Batch mit
1
cscript //nologo "C:\Scripts\AblaufendePW.vbs"
Grüße
bastla