Active Directory の [アカウント] タブからユーザーに対して行うことができるように、グループで許可されたログオン時間を定義する方法を長い間探しています。
「logonhours」プロパティを使用して、ユーザーの許可されたすべての時間のリストを返すクエリを作成できるクラスをC#に既に持っています。
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;
}
この投稿を使用して、ログオン時間を照会する方法を理解するのに役立てました。
ユーザーが最後にいつログに記録されたかを機能に知らせたくないことを理解することが重要です。私が持っているのは、ある瞬間にユーザーがログに記録するのを防ぐ機能です。
私が欲しいのは、ユーザーのグループにログオン時間を適用できる機能であり、c# を使用して Active Directory にクエリを実行し、これらのログオン時間情報を取得できます。
どうもありがとうございました。