0

すべてのユーザーの Web サイト属性を変更するための小さなスクリプト (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

このタスクは、スレッドを使用して非常に効率的に実行できます。1 つのスレッドで、変更が必要なすべてのエントリが格納されているディレクトリ情報ツリー (DIT) 内のポイントをベース オブジェクトとする検索を実行します。whole subtree検索範囲と、変更が必要なエントリだけに検索結果を絞り込むフィルタに使用します。OID を使用する1.1要求された属性のリスト (これにより、ディレクトリ サーバーは識別名のみを返すようになります)。ディレクトリ管理者がこの検索を許可すると仮定すると (リソース上の理由、セキュリティ上の理由、またはその他の理由で拒否される場合があります)、検索結果が到着したら、別のスレッドを使用して、検索スレッドで返される識別名の変更を作成します。最大限の効率を得るには、複数のスレッドを使用して変更を行い、API に適切な同時実行メカニズムを使用します。

こちらもご覧ください

于 2012-04-20T14:39:15.897 に答える