解决AD不活跃用户与OU的问题可以通过以下步骤来实现:
DirectoryEntry
和DirectorySearcher
类。DirectoryEntry domainEntry = new DirectoryEntry("LDAP://your-domain-controller");
DirectorySearcher searcher = new DirectorySearcher(domainEntry);
OU
的DistinguishedName
属性来设置搜索条件。string ouDistinguishedName = "OU=YourOU,DC=YourDomain,DC=com";
searcher.Filter = "(&(objectCategory=User)(objectClass=person)(memberOf=" + ouDistinguishedName + "))";
SearchResultCollection results = searcher.FindAll();
LastLogonTimestamp
属性来获取用户的最后登录时间。foreach (SearchResult result in results)
{
DirectoryEntry userEntry = result.GetDirectoryEntry();
long lastLogonTimestamp = (long)userEntry.Properties["lastLogonTimestamp"].Value;
// 检查最后登录时间是否超过指定的阈值,例如90天
DateTime lastLogon = DateTime.FromFileTime(lastLogonTimestamp);
if (lastLogon < DateTime.Now.AddDays(-90))
{
// 用户为不活跃用户
// 可以将用户添加到不活跃用户列表中,或者执行其他操作
}
}
上述代码示例使用C#语言来演示如何获取OU中的不活跃用户。你可以根据自己的需求进行修改和扩展。