| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
为什么我的搜索不能返回所有用户帐户?
为什么我的搜索不能返回所有用户帐户?
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-23 19:28:26
问:

嗨,Scripting Guy!我想从 Active Directory 中获得所有用户的一个列表。我使用 ADO 搜索这些用户,但是无论如何我都只能得到 1000 个用户名称,即便是实际用户的数量比这个数字多 10 倍。我什么地方做错了吗?

-- MC, Athens, GA

答:

你好,MC.孩子,如果我们每次被问到这个问题的时候都收一个五分硬币 —— 好,OK,我们已经有了一个硬币。但是,这仅仅是因为我们刚刚开始做这个展览;相信我们,总是有人问这个问题。

您在这里遇到的问题是由于 Active Directory 的默认设置:默认情况下,每次对 Active Directory 进行查询的时候,只能得到前 1,000 个对象。这就是问题所在。这与 Active Directory 中实际有多少个对象无关,也与您的域控制器配备了多少内存无关,问题的根源仅在于:您只能得到前 1,000 个对象。

幸运的是,有一个简单的解决办法。这里有一个脚本,可以返回 Active Directory 中的所有 用户帐户。是的,我刚才说的是“所有”;如果您有 100,000 个用户帐户,脚本可以返回全部帐户:

On Error Resume Next



Const ADS_SCOPE_SUBTREE = 2



Set objConnection = CreateObject("ADODB.Connection")

Set objCommand =   CreateObject("ADODB.Command")

objConnection.Provider = "ADsDSOObject"

objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection



objCommand.Properties("Page Size") = 1000

objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 



objCommand.CommandText = _

    "SELECT Name FROM 'LDAP://dc=fabrikam,dc=com' " & _

        "WHERE objectCategory='user'"  

Set objRecordSet = objCommand.Execute



objRecordSet.MoveFirst

Do Until objRecordSet.EOF

    Wscript.Echo objRecordSet.Fields("Name").Value

    objRecordSet.MoveNext

Loop

那么,诀窍在什么地方呢?诀窍就在于将 Page Size(页大小) 设为 1000 的那一行代码。那么它有什么特殊之处呢?好,如果您不指定 Page Size,Active Directory 就只返回前 1000 个项目。如果您 指定了 Page Size,那么 Active Directory 便会返回前 x 个项目,然后暂停,对记录进行分割,然后返回下面的 x 个项目,然后再暂停,如此反复。此过程会一直继续,直到返回所有项目。在本例中,我们将 Page Size 设置为 1000(最大值),所以会得到前 1000 个项目,然后是一个暂停(一般无法察觉),接着再得到 1000 个项目。此过程会一直继续,直到返回所有项目。

有关使用脚本搜索 Active Directory 的更多信息,请参阅先前录制的Scripting Guys Web 广播.

【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    blog的真正价值(腾讯为
    UPnP是用来干什么的?
    什么是千兆高速以太网
    什么是“恶意代码”?
    什么是Base64?
    为什么用telnet/ftp登录
    我如何确定计算机上安装
    为什么我的 Ping 脚本不
    并入子网后为什么无法连
    Yahoo!和MSN搜索里最热门

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览