我长时间搜索如何在组上定义允许的登录时间,就像可以从Active Directory中的帐户选项卡中对用户进行操作一样。
我已经在c#中有一个类,可以通过帮助'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;
}
我使用这篇文章帮助我了解如何查询登录时间:
重要的是要了解我不希望功能知道用户上次登录的时间。我所拥有的是一种阻止用户在某些时刻登录的功能。
我想要的是一个可以为一组用户应用登录时间的功能,我可以使用c#查询Active Directory以获取这些登录时间信息。
非常感谢。
答案 0 :(得分:1)
在我的理解中,登录时间信息是用户信息。正如@Knite所指出的HOW TO: Limit User Logon Time in a Domain in Windows Server 2003所述,你可以改变它:
在您的情况下,您可以循环播放组中的所有成员并更改其登录时间。
答案 1 :(得分:0)
根据http://support.microsoft.com/kb/816666,您应该生成一个组中的用户列表,并将他们的登录时间写入CSV文件。