查看成员何时添加到 Active Directory 组

Find out when a member was added to an Active Directory group

我正在从活动目录中获取有关用户和组的信息。我可以通过扩展方法获得各种 属性 值。

public static string GetProperty(this Principal principal, string property)
{
    DirectoryEntry directoryEntry = principal.GetUnderlyingObject() as DirectoryEntry;

    if (directoryEntry.Properties.Contains(property))
    {
        return directoryEntry.Properties[property].Value.ToString();
    }

    return string.Empty;
}

我面临的问题是我需要获取隐藏得更深的信息,例如 将用户添加到群组时?我希望能够通过 C# 来做到这一点。这可能吗?可能使用这些安全事件? https://support.microsoft.com/en-us/kb/174074

使用 ASP.NET MVC、C#、DirectoryServices.dll

假设您的机器设置为收集这些事件,您可以阅读事件日志以获取您正在寻找的信息...我编写此示例是为了获取 logoff 事件。您可以在 MSDN 上查找事件 ID。

using System.Diagnostics;

namespace ReadEventLogs
{
  class Program
  {
     public static void Main(string[] args)
     {
        System.Diagnostics.EventLog eventLog1 = new System.Diagnostics.EventLog("Security", ".");

        foreach(EventLogEntry entry in eventLog1.Entries)
        {
          //Event ID 4624 LOGON
          //EVent ID 4634 LOGOFF
          if (entry.InstanceId == 4634)
          {
            Console.WriteLine(entry.Message);
          }
        }
      }
   }
}

如果未指定计算机名称或服务器,将从本地计算机读取事件日志 "."