Разрешенные часы входа в группу с Active Directory

Я долго искал, как я могу определить разрешенные часы входа в систему для группы, как это можно сделать с пользователем на вкладке учетной записи в Active Directory.

У меня уже есть класс на С#, который может делать запросы, чтобы вернуть список всех разрешенных часов пользователя с помощью свойств «logonhours».

  public byte[] GetLogonHours(string userName, string password, string path)
  {
     DirectoryEntry entry = this.GetUserAccount(userName, path);

     return (byte[])entry.Properties["logonHours"].Value;
  }

  public DirectoryEntry GetUserAccount(string username, string path)
  {
     using (DirectoryEntry objRootEntry = new DirectoryEntry(path))
     {
        using (DirectorySearcher objAdSearcher = new DirectorySearcher(objRootEntry))
        {
           objAdSearcher.Filter = "(&(objectClass=user)(samAccountName=" + username + "))";

           SearchResult objResult = objAdSearcher.FindOne();

           if (objResult != null)
           {
              return objResult.GetDirectoryEntry();
           }
        }
     }

     return null;
  }

Я использовал этот пост, чтобы помочь мне понять, как я могу запросить часы входа в систему:

http://anlai.wordpress.com/2010/09/07/active-directory-permitted-logon-times-with-c-net-3-5-using-system-directoryservices-accountmanagement/

Важно понимать, что я не хочу, чтобы функция знала, когда пользователь в последний раз входил в систему. У меня есть функция, которая предотвращает вход пользователя в некоторые моменты.

Что мне нужно, так это функция, которая может применять часы входа в систему для группы пользователей, и я могу запросить Active Directory с помощью С#, чтобы получить информацию об этих часах входа в систему.

Большое Вам спасибо.


person Samuel    schedule 12.10.2011    source источник


Ответы (2)


Насколько я понимаю, информация о часах входа в систему - это информация о пользователе. Как описано в КАК: ограничить время входа пользователя в домен в Windows Server 2003. указанный @Knite, вы можете изменить его:

  1. Пользователь за пользователем, независимо от того, если вы зацикливаетесь на списке пользователей
  2. Применение объекта групповой политики к пользователям организационного подразделения принадлежит

В вашем случае вы можете зациклить всех членов группы и изменить часы их входа в систему.

person JPBlanc    schedule 13.10.2011

Согласно http://support.microsoft.com/kb/816666, вы должны создать список пользователей в группе и записать их часы входа в файл CSV.

person knite    schedule 12.10.2011