10 июня 2009 г.

Автоматическое отключение учетных записей пользователей в домене

ILM 2007 предоставляет массу возможностей. Вот пример как можно отключить учётную запись пользователя в домене если пользователь не регистрировался в домене определенное количество дней.

Время регистрации записуется в атрибут lastLogontimeStamp. Оч хорошая статья в которой описывается этот атрибут в блоге  Ask the DS Team.

И так нам нужно сделать две вещи

1. Настроить правило слияния для МА Active Directory:

 userAccountControl

2. Добавить код в процедуру MapAttributesForImport:

 Case "useraccountcontrol"
      'Отключаем учетную запись если пользователь 
      'не регистрировался в течении 120 дней
      If csentry("lastLogonTimestamp").IsPresent Then
          Dim lastLogon As String = Date.FromFileTime(csentry("lastLogonTimestamp").Value).ToString("dd.MM.yy")
          Dim lastLogonDate As DateTime = Convert.ToDateTime(lastLogon)
          If Now.Subtract(lastLogonDate).Days > 120 _
            AndAlso csentry("userAccountControl").IntegerValue = ADS_UF_NORMAL_ACCOUNT Then
              mventry("userAccountControl").Value = "514"
          Else
              mventry("userAccountControl").Value = csentry("userAccountControl").Value
          End If
      Else
          'Если учетная запись была создана, но пользователь так и не регистрировался, 
          'отключаем его через 15 дней
          Dim CreatedString, year, month, day As String
          Dim CreateDate As DateTime
          CreatedString = csentry("whenCreated").Value
          year = CreatedString.Substring(0, 4)
          month = CreatedString.Substring(4, 2)
          day = CreatedString.Substring(6, 2)
          CreateDate = Convert.ToDateTime(day + "." + month + "." + year)
          If Now.Subtract(CreateDate).Days > 15 _
            AndAlso csentry("userAccountControl").IntegerValue = ADS_UF_NORMAL_ACCOUNT Then
              mventry("userAccountControl").Value = "514"
          Else
              mventry("userAccountControl").Value = csentry("userAccountControl").Value
          End If
      End If


Тоже самое можно проделать и с учетной записью компьютера ;)

Комментариев нет:

Отправить комментарий