Разрешенные часы входа в группу с Active Directory - PullRequest
1 голос
/ 12 октября 2011

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

У меня уже есть класс в c #, который может делать запросы, чтобы возвращать список всех разрешенных часов пользователя с помощью свойств '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 с помощью c #, чтобы получить информацию о часах входа в систему.

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

Ответы [ 2 ]

1 голос
/ 13 октября 2011

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

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

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

0 голосов
/ 12 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...