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:
então "" De ShowProgress Ajustar o objUserLDAP = o GetObject (os arrMembers (i)) intUACvalue = objUserLDAP.Get (“userAccountControl”) Se intUACvalue e _EXPIRE_PASSWD de ADS_UF_DO NÃO então ShowProgress objUserLDAP.sAMAccountName ShowProgress “senha não expira” Mais dtmPwdChanged = objUserLDAP.PasswordLastChanged iTimeInterval = CInt (agora - dtmPwdChanged) iMaxPwdAge = GetMaxPwdAge ShowProgress objUserLDAP.sAMAccountName ShowProgress “senha por último foi mudado” & dtmPwdChanged ShowProgress “que era” & iTimeInterval & os “dias há” Se iMaxPwdAge < 0 então ShowProgress “senha não expira (a idade máxima da senha da política do domínio ajustada a 0)” Mais ShowProgress “a idade máxima da senha da política do domínio é” & iMaxPwdAge & “dias” Se iMaxPwdAge iTimeInterval do >= então ShowProgress “a senha expirou.” Mais ShowProgress “a senha expirará em” & CInt ((dtmPwdChanged + o iMaxPwdAge) - agora ()) & “dias” Terminar se Terminar se 'iMaxPwdAge Terminar se 'intUACvalue Terminar se Em seguida 'arrMembers Submarino 'PwdExpiryInfo da extremidade Função GetMembers (strGroup) 'Versão 1.4 'Escrito por Krystian Karia '04/05/2009 datado 'Retorna o trajeto de LDAP de cada um 'usuário do grupo dado 'Erros nós do prendedor No resumo do erro em seguida 'Declarar variáveis Escurecer o oGroup, oUser Escurecer o strName Escurecer arrUsers 'Verific parâmetros Se strGroup = "" então GetMembers = zero Retirar a função Terminar se 'Ligar para agrupar using o conetor correto de ADSI Ajustar o oGroup = o GetObject (“LDAP: /” & strGroup) Se <> 0 de Err.Number então Err.Clear ShowProgress “um erro ocorreu ligando ao grupo” & ao strGroup GetMembers = zero Retirar a função Terminar se 'Dar laços em membros do grupo Para cada oUser em oGroup.Members strName = strName & oUser.ADsPath & vbNewLine Em seguida 'Criar uma disposição de membros Se "" do <> da guarnição (strName) então arrUsers = separação (strName, vbNewLine) GetMembers = arrUsers Mais GetMembers = zero Terminar se Err.Clear Terminar a função 'GetMembers Função GetMaxPwdAge () 'Versão 1.0 'Retorna a idade máxima da senha 'que é ajustado geralmente no GPO 'nomeou do “a política do domínio defeito” 'Erros nós do prendedor No resumo do erro em seguida 'Declarar variáveis Escurecer o oRootDSE, oDomain, oMaxPwdAge Escurecer o lngHighPart, lngLowPart Escurecer o strDomainDN 'Começ o domínio atual DN Ajustar o oRootDSE = o GetObject (“LDAP: //RootDSE”) strDomainDN = oRootDSE.Get (“DefaultNamingContext”) 'Ligamento ao domínio atual Ajustar o oDomain = o GetObject (“LDAP: /” & strDomainDN) Ajustar o oMaxPwdAge = o oDomain.MaxPwdAge 'Conseguir as 2 partes do valor Integer8 começ 2 32 valores de bocado lngHighPart = oMaxPwdAge.HighPart lngLowPart = oMaxPwdAge.LowPart 'Se o LowPart é menos de 0 então que nós ned para adicionar 1 ao HighPart Se (lngLowPart < 0) então lngHighPart = lngHighPart + 1 Terminar se 'Retornar o valor nos dias GetMaxPwdAge = - ((lngHighPart * 2^32) +) do lngLowPart/(600000000 * 1440) Função 'GetMaxPwdAge do fim ShowProgress secundário (sComment) sComment de WScript.Echo Submarino da extremidade EndScript secundário WScript.Quit Submarino da extremidade