1

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;
  }

この投稿を使用して、ログオン時間を照会する方法を理解するのに役立てました。

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

ユーザーが最後にいつログに記録されたかを機能に知らせたくないことを理解することが重要です。私が持っているのは、ある瞬間にユーザーがログに記録するのを防ぐ機能です。

私が欲しいのは、ユーザーのグループにログオン時間を適用できる機能であり、c# を使用して Active Directory にクエリを実行し、これらのログオン時間情報を取得できます。

どうもありがとうございました。

4

2 に答える 2

1

私の理解では、ログオン時間情報はユーザー情報です。HOW TO: Limit User Logon Time in a Domain in Windows Server 2003 で説明されているように、@ Kniteが指すように変更できます。

  1. ユーザーのリストをループする場合でも、ユーザーごとに
  2. ユーザーが属する organizationUnit への GPO の適用

あなたの場合、グループのすべてのメンバーをループして、ログオン時間を変更できます。

于 2011-10-13T03:17:32.787 に答える
0

http://support.microsoft.com/kb/816666によると、グループ内のユーザーのリストを生成し、ログオン時間を CSV ファイルに書き込む必要があります。

于 2011-10-12T19:42:44.507 に答える