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:
arrMembers (I) после этого "" ShowProgress Установите objUserLDAP = GetObject (arrMembers (I)) intUACvalue = objUserLDAP.Get («userAccountControl») Если intUACvalue и _EXPIRE_PASSWD ADS_UF_DO НЕ после этого ShowProgress objUserLDAP.sAMAccountName ShowProgress «пароль не теряет силу» Еще dtmPwdChanged = objUserLDAP.PasswordLastChanged iTimeInterval = CInt (теперь - после того как я dtmPwdChanged) iMaxPwdAge = GetMaxPwdAge ShowProgress objUserLDAP.sAMAccountName ShowProgress «пароль на последнем месте было изменено» & dtmPwdChanged ShowProgress «было» & iTimeInterval & «дни тому назад» Если iMaxPwdAge < 0 после этого ShowProgress «пароль не теряет силу (время пароля политики домена максимальное установленное до 0)» Еще ShowProgress «время пароля политики домена максимальное» & iMaxPwdAge & «дни» Если iTimeInterval iMaxPwdAge >= после этого ShowProgress «пароль теряло силу.» Еще ShowProgress «пароль теряет силу в» & dtmPwdChanged CInt ((+ iMaxPwdAge) - теперь ()) & «дни» Закончитесь если Закончитесь если 'iMaxPwdAge Закончитесь если 'intUACvalue Закончитесь если Затем 'arrMembers Подводная лодка 'PwdExpiryInfo конца Функция GetMembers (strGroup) 'Вариант 1.4 'Написано Krystian Karia 'Устаревшее 04/05/2009 'Возвращает курс LDAP каждого 'потребитель от, котор дали группы 'Ошибки себя задвижки На резюме ошибки затем 'Объявите перемеююые Затемните oGroup, oUser Затемните strName Затемните arrUsers 'Проверите параметры Если strGroup = "" после этого GetMembers = Null Выходите функция Закончитесь если 'Свяжите для того чтобы собрать using правильно разъем ADSI Установите oGroup = GetObject («LDAP: /» & strGroup) Если <> 0 Err.Number после этого Err.Clear ShowProgress «ошибка произошло связывающ к группе» & strGroup GetMembers = Null Выходите функция Закончитесь если 'Закрепите петлеть члены группы Для каждого oUser в oGroup.Members strName = strName & oUser.ADsPath & vbNewLine Затем 'Создайте блок членов Если "" <> уравновешивания (strName) после этого arrUsers = разделили (strName, vbNewLine) GetMembers = arrUsers Еще GetMembers = Null Закончитесь если Err.Clear Закончите функцию 'GetMembers Функция GetMaxPwdAge () 'Вариант 1.0 'Возвращает максимальное время пароля 'обычно установлено в GPO 'назвал «политику домена невыполнения обязательства» 'Ошибки себя задвижки На резюме ошибки затем 'Объявите перемеююые Затемните oRootDSE, oDomain, oMaxPwdAge Затемните lngHighPart, lngLowPart Затемните strDomainDN 'Получите в настоящее время домен DN Установите oRootDSE = GetObject («LDAP: //RootDSE») strDomainDN = oRootDSE.Get («DefaultNamingContext») 'Связь к в настоящее время домену Установите oDomain = GetObject («LDAP: /» & strDomainDN) Установите oMaxPwdAge = oDomain.MaxPwdAge 'Получите, что 2 части значения Integer8 получить 2 32 значения бита lngHighPart = oMaxPwdAge.HighPart lngLowPart = oMaxPwdAge.LowPart 'Если LowPart чем, то 0 после этого, котор мы ned для того чтобы добавить 1 к HighPart Если (lngLowPart < 0) после этого lngHighPart = lngHighPart + 1 Закончитесь если 'Возвратите значение в днях GetMaxPwdAge = - ((lngHighPart * 2^32) +) lngLowPart/(600000000 * 1440) Функция 'GetMaxPwdAge конца Sub ShowProgress (sComment) sComment WScript.Echo Подводная лодка конца Sub EndScript WScript.Quit Подводная лодка конца