Option ausdrücklich
Anruf PwdExpiryInfo
VorPwdExpiryInfo ()
'Version 1.0
'Geschrieben durch Krystian Karia
'Datierte 04/05/2009
'Erhält eine Liste der Benutzer von der Gruppe
'spezifiziert und überprüft dann ihr
'Kennwort-Verfallsdatum.
'ANMERKUNG: Index muss in ein CMD.exe gelaufen werden
'Fenster wie: CScript.exe ScriptName.vbs
'Dieses liegt an der Zahl Ausgängen
'das verursacht.
'Fangstörungen selbst
'Auf Störungs-Zusammenfassung zunächst
'Variablen erklären
iTimeInterval, iMaxPwdAge verdunkeln
I, intUACvalue verdunkeln
Verdunkeln dtmPwdChanged
objUserLDAP verdunkeln
arrMembers verdunkeln
Const ADS_UF_DO NICHT _EXPIRE_PASSWD = &h10000
Const sGroup = „OU=DLI_ACCOUNTS, DC=dli, DC=local“ '< Spcify Ihr Gruppenname hier
'Die Liste der Benutzer von der gegebenen Gruppe erhalten
arrMembers = GetMembers (sGroup)
Wenn IsNull (arrMembers) dann
ShowProgress „Überprüfung Ihr Gruppenname oder seine Mitgliedsliste“
EndScript
Beenden wenn
'Jeden Benutzer schlingen, um exiry Datum des Kennwortes zu überprüfen
Für i = 0 zu UBound (arrMembers)
Wenn arrMembers (i) <> "" dann
ShowProgress ""
objUserLDAP = GetObject (arrMembers (i)) einstellen
intUACvalue = objUserLDAP.Get („userAccountControl“)
Wenn intUACvalue und ADS_UF_DO NICHT _EXPIRE_PASSWD dann
ShowProgress objUserLDAP.sAMAccountName
ShowProgress „Kennwort abläuft nicht“ t
Sonst
dtmPwdChanged = objUserLDAP.PasswordLastChanged
iTimeInterval = CInt (jetzt - dtmPwdChanged)
iMaxPwdAge = GetMaxPwdAge
ShowProgress objUserLDAP.sAMAccountName
ShowProgress „Kennwort zuletzt geändert“ u. dtmPwdChanged
Vor ShowProgress „, das war“ u. iTimeInterval u. „Tagen“
Wenn iMaxPwdAge < 0 dann
ShowProgress „Kennwort abläuft nicht t (das maximale Kennwort-Alter der Gebiets-Politik eingestellt bis 0)“
Sonst
ShowProgress „das Gebiets-Politik-maximale Kennwort-Alter ist“ u. iMaxPwdAge u. „Tage“
Wenn iTimeInterval >= iMaxPwdAge dann
ShowProgress „das Kennwort abgelaufen.“.
Sonst
ShowProgress „das Kennwort abläuft in“ u. CInt t ((dtmPwdChanged + iMaxPwdAge) - jetzt ()) u. „Tage“
Beenden wenn
Beenden wenn 'iMaxPwdAge
Beenden wenn 'intUACvalue
Beenden wenn
Zunächst 'arrMembers
Enden-Unterseeboot 'PwdExpiryInfo
Funktion GetMembers (strGroup)
'Version 1.4
'Geschrieben durch Krystian Karia
'Datierte 04/05/2009
'Zurückbringt den LDAP Weg von jedem
'Benutzer von der gegebenen Gruppe
'Fangstörungen selbst
Auf Störungs-Zusammenfassung zunächst
'Variablen erklären
oGroup, oUser verdunkeln
strName verdunkeln
arrUsers verdunkeln
'Parameter überprüfen
Wenn strGroup = "" dann
GetMembers = Null
Funktion herausnehmen
Beenden wenn
'Binden, um using das korrekte ADSI Verbindungsstück zu gruppieren
oGroup = GetObject einstellen („LDAP: /“ u. strGroup)
Wenn Err.Number <> 0 dann
Err.Clear
ShowProgress „eine Störung auftrat ", binden an die Gruppe“ u. strGroup
GetMembers = Null
Funktion herausnehmen
Beenden wenn
'Gruppenmitglieder schlingen
Für jedes oUser in oGroup.Members
strName = strName u. oUser.ADsPath u. vbNewLine
Zunächst
'Eine Reihe Mitglieder verursachen
Wenn Ordnung (strName) <> "" dann
arrUsers = aufspalteten (strName, vbNewLine)
GetMembers = arrUsers
Sonst
GetMembers = Null
Beenden wenn
Err.Clear
Funktion 'GetMembers beenden
Funktion GetMaxPwdAge ()
'Version 1.0
'Zurückbringt das maximale Kennwort-Alter ximale
'das normalerweise in das GPO eingestellt
'nannte „Rückstellungs-Gebiets-Politik“
'Fangstörungen selbst
Auf Störungs-Zusammenfassung zunächst
'Variablen erklären
oRootDSE, oDomain, oMaxPwdAge verdunkeln
lngHighPart, lngLowPart verdunkeln
strDomainDN verdunkeln
'Das gegenwärtige Gebiet DN erhalten
oRootDSE = GetObject einstellen („LDAP: //RootDSE“)
strDomainDN = oRootDSE.Get („DefaultNamingContext“)
'Bindung zum gegenwärtigen Gebiet
oDomain = GetObject einstellen („LDAP: /“ u. strDomainDN)
oMaxPwdAge = oDomain.MaxPwdAge einstellen
'Die 2 Teile des Wertes Integer8 erhalten, um 2 32 Bitwerte zu erhalten
lngHighPart = oMaxPwdAge.HighPart
lngLowPart = oMaxPwdAge.LowPart
'Wenn das LowPart kleiner als ist, 0, dann, das wir ned, um 1 dem HighPart hinzuzufügen
Wenn (lngLowPart < 0) dann
lngHighPart = lngHighPart + 1
Beenden wenn
'Den Wert an den Tagen zurückbringen
GetMaxPwdAge = - ((lngHighPart * 2^32) + lngLowPart)/(600000000 * 1440)
Enden-Funktion 'GetMaxPwdAge
VorShowProgress (sComment)
WScript.Echo sComment
Enden-Unterseeboot
VorEndScript
WScript.Quit
Enden-Unterseeboot
|