2011-10-12 50 views
1

我搜索了很长时间,我可以如何定义群组的允许登录小时数,例如可以通过Active Directory中的帐户选项卡对用户进行操作。使用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; 
    } 

我用这篇文章来帮助我理解我怎么可以查询登录时间:

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

明白,我不想一个功能,知道这是重要的,当最后一个用户已被记录的时间。我拥有的功能是防止用户在某些时刻记录日志。

我想要的是一个功能,可以为一组用户应用登录时间,我可以使用c#查询Active Directory以获取这些登录时间信息。

非常感谢。

回答

1

在我理解的登录时间信息是一个用户信息。用户

  1. 用户,如果你的用户列表
  2. 应用一个GPO到一个组织单位用户环路属于

什么:如HOW TO: Limit User Logon Time in a Domain in Windows Server 2003通过@Knite指出discribed你可以改变它在你的情况下,你可以为一个组的所有成员循环并改变他们的登录时间。

相关问题