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 : 47 : 48 : 49 : 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : 59 : 60 : 61 : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : 71 : 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : 92 : 93 : 94 : 95 : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : 111 : 112 : 113 : 114 : 115 : 116 : 117 : 118 : 119 : 120 : 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : 168 : 169 : 170 : 171 : 172 : 173 : 174 : 175 : 176 : 177 : 178 : 179 : 180 : 181 : 182 : 183 :
alors "" De ShowProgress Placer l'objUserLDAP = le GetObject (les arrMembers (i)) intUACvalue = objUserLDAP.Get (« userAccountControl ») S'intUACvalue et puis _EXPIRE_PASSWD d'ADS_UF_DO PAS ShowProgress objUserLDAP.sAMAccountName ShowProgress « mot de passe n'expire pas » Autrement dtmPwdChanged = objUserLDAP.PasswordLastChanged iTimeInterval = CInt (maintenant - dtmPwdChanged) iMaxPwdAge = GetMaxPwdAge ShowProgress objUserLDAP.sAMAccountName ShowProgress « mot de passe a été pour la dernière fois changé » et dtmPwdChanged ShowProgress « qui était » et iTimeInterval et il y a les « jours » S'iMaxPwdAge < 0 puis ShowProgress « mot de passe n'expire pas (l'âge maximum du mot de passe de la politique de domaine réglé à 0) » Autrement ShowProgress « l'âge maximum de mot de passe de politique de domaine est » et iMaxPwdAge et « jours » S'iMaxPwdAge iTimeInterval de >= alors ShowProgress « le mot de passe a expiré. » Autrement ShowProgress « le mot de passe expirera dans » et CInt ((dtmPwdChanged + l'iMaxPwdAge) - maintenant ()) et « jours » Finir si Finir si 'iMaxPwdAge Finir si 'intUACvalue Finir si Après 'arrMembers Sous-marin 'PwdExpiryInfo d'extrémité Fonction GetMembers (strGroup) 'Version 1.4 'Écrit par Krystian Karia 'A daté 04/05/2009 'Renvoie le chemin de LDAP de chacun 'utilisateur du groupe donné 'Erreurs de crochet nous-mêmes Sur le résumé d'erreur après 'Déclarer les variables Obscurcir l'oGroup, oUser Obscurcir le strName Obscurcir les arrUsers 'Vérifier les paramètres Si strGroup = puis "" GetMembers = nulle Sortir la fonction Finir si 'Lier pour grouper using le connecteur correct d'ADSI Placer l'oGroup = le GetObject (« LDAP : / » et strGroup) Si <> 0 d'Err.Number puis Err.Clear ShowProgress « une erreur s'est produit liant au groupe » et au strGroup GetMembers = nulle Sortir la fonction Finir si 'Faire une boucle les membres de groupe Pour chaque oUser dans oGroup.Members strName = strName et oUser.ADsPath et vbNewLine Après 'Créer un choix de membres Si "" de <> d'équilibre (strName) alors les arrUsers = se sont dédoublés (strName, vbNewLine) GetMembers = arrUsers Autrement GetMembers = nulle Finir si Err.Clear Finir la fonction 'GetMembers Fonction GetMaxPwdAge () 'Version 1.0 'Renvoie l'âge maximum de mot de passe 'qui est habituellement placé dans le GPO 'a appelé « la politique de domaine de défaut » 'Erreurs de crochet nous-mêmes Sur le résumé d'erreur après 'Déclarer les variables Obscurcir l'oRootDSE, oDomain, oMaxPwdAge Obscurcir le lngHighPart, lngLowPart Obscurcir le strDomainDN 'Obtenir le domaine courant DN Placer l'oRootDSE = le GetObject (« LDAP : //RootDSE ») strDomainDN = oRootDSE.Get (« DefaultNamingContext ») 'Grippage au domaine courant Placer l'oDomain = le GetObject (« LDAP : / » et strDomainDN) Placer l'oMaxPwdAge = l'oDomain.MaxPwdAge 'Obtenir les 2 parties de la valeur Integer8 pour obtenir 2 32 valeurs de bit lngHighPart = oMaxPwdAge.HighPart lngLowPart = oMaxPwdAge.LowPart 'Si le LowPart est moins de 0 alors que nous ned pour additionner 1 au HighPart Si (lngLowPart < 0) puis lngHighPart = lngHighPart + 1 Finir si 'Renvoyer la valeur en jours GetMaxPwdAge = - ((lngHighPart * 2^32) +) de lngLowPart/(600000000 * 1440) Fonction 'GetMaxPwdAge de fin ShowProgress secondaire (sComment) sComment de WScript.Echo Sous-marin d'extrémité EndScript secondaire WScript.Quit Sous-marin d'extrémité