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

#c# #templates #active-directory #group-policy #gpo

#c# #шаблоны #active-directory #групповая политика #объект групповой политики

Вопрос:

Я долго искал, как я могу определить разрешенные часы входа в группу, как это можно сделать с пользователем на вкладке учетная запись в 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 = "(amp;(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 #, чтобы получить эти данные о часах входа в систему.

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

Ответ №1:

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

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

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

Ответ №2:

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