0

我有一个小脚本(VBS)来更改所有用户的网站属性:

    dim objOU, objUser 

    objOU="OU=Users,DC=mysociety,DC=local"  

    Set objOU = GetObject("LDAP://" & objOU)  

on error resume next 
For each objUser in objOU  
    If objUser.Class="user" Then  
            Set objUser = GetObject("LDAP://" & objUser.distinguishedName) 
        objUser.Put "wWWHomePage", "http://mysite.mysociety.local/Person.aspx?accountname=mysociety\" & objUser.mailNickname
        objUser.setInfo 
        if err.number <> 0 then 
            wscript.echo "Error processing " & objUser.givenName & ":" & err.number & ", " & err.Description 
            err.clear 
        end if 
    End if 
Next  

所以我的问题是,如果我将我的 objOU 精确到最深的目录,它就可以完美地工作。但它不是递归脚本,并且由于子目录的原因,使用此代码它不起作用。我是 VBS 的初学者,你能帮我把这个脚本递归吗?

提前谢谢你,对不起我的英语不好

4

1 回答 1

0

使用线程可以非常有效地完成此任务。在一个线程中,执行搜索,其中基础对象是目录信息树 (DIT) 中存储所有必须修改的条目的点。用于whole subtree搜索范围和将搜索结果缩小到仅需要修改的条目的过滤器。使用 OID1.1对于请求的属性列表(这将导致目录服务器仅返回可分辨名称)。假设目录管理员允许此搜索——它可能由于资源原因或安全原因或其他原因而被拒绝——当搜索结果到达时,使用另一个线程来构造对搜索线程中返回的可分辨名称的修改。为获得最大效率,请使用多个线程进行修改并为您的 API 使用适当的并发机制。

也可以看看

于 2012-04-20T14:39:15.897 回答