Я долго искал, как я могу определить разрешенные часы входа в систему для группы, как это можно сделать с пользователем на вкладке учетной записи в 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;
}
Я использовал этот пост, чтобы помочь мне понять, как я могу запросить часы входа в систему:
Важно понимать, что я не хочу, чтобы функция знала, когда пользователь в последний раз входил в систему. У меня есть функция, которая предотвращает вход пользователя в некоторые моменты.
Что мне нужно, так это функция, которая может применять часы входа в систему для группы пользователей, и я могу запросить Active Directory с помощью С#, чтобы получить информацию об этих часах входа в систему.
Большое Вам спасибо.