joeware - never stop exploring... :)

Information about joeware mixed with wild and crazy opinions...

ADMOD updates still moving along nicely…

by @ 12:52 am on 7/11/2006. Filed under tech

Well I just got a majority of the CSV import new object code into admod and debugged and just wanted to share how cool it is…

Check this out… The command being run is on the spot pulling all of the OUs in a domain (all 13160 of them…) and creating them in ADAM…. One command line… It took approximately 8 minutes to run, it went that slow because there is a lot of debug code in admod and the ADAM instance was running on the same machine and it is an older Dell Laptop with a slow RPM harddrive and only 512MB of RAM… I am quite happy with the perf I saw… I can’t wait to see it without the debug code…

The adfind command is exporting the objectclass and description attributes of all OU’s in the domain joe.com running on 2k3dc02. The admod command is importing into the local host’s ADAM instance and replacing any string of dc=joe,dc=com in the DNs with ou=import,ou=mytestou. The import says to pull in all attributes in the CSV listing (though I have some hardcode filters for things like objectsid, objectguid, etc).

My biggest concern right now around this new functionality is debugging issues that could occur, I think I am going to have to add logging to the app so that it will output all of the misc things it has done to build the ldap mod structure for the adds to a file so it can be checked in case there is a failure.

(Excuse the formatting, it is the blog software, not admod’s output. 🙂

F:\Dev\CPP\AdMod>adfind -h 2k3dc02 -default -f objectcategory=organizationalunit -adcsv objectclass description |admod -h . -replacedn “dc=joe,dc=com:ou=import,ou=mytestou” -add -import -unsafe -exterr >out.txt

AdMod V01.07.00cpp_ALPHA Joe Richards (joe@joeware.net) July 2006

……………………………………………………………………………………………………………………
DN Count: 13160
Using server: 2k38500.joe.com
Adding specified objects…
DN: OU=Exchange,ou=import,ou=mytestou…
DN: OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=MailUsers,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=Domain Controllers,ou=import,ou=mytestou…
DN: OU=MailGroups,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=Contacts,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=TestOU,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=tmptestou,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=DLTest,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=Users,OU=DLTest,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=TestOU,ou=import,ou=mytestou…
DN: OU=GroupTestOU,OU=TestOU,ou=import,ou=mytestou…
DN: OU=UserTestOU,OU=TestOU,ou=import,ou=mytestou…
DN: OU=test,OU=TestOU,ou=import,ou=mytestou…
DN: OU=(Test),OU=TestOU,ou=import,ou=mytestou…
DN: OU=DupeUsers,OU=DLTest,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=Misc,OU=TestOU,ou=import,ou=mytestou…
DN: OU=RuleCheck,OU=joeware2,OU=Exchange,ou=import,ou=mytestou…
DN: OU=TestGroupsOU,OU=TestOU,ou=import,ou=mytestou…
DN: OU=TestGroupsOU2,OU=TestOU,ou=import,ou=mytestou…
DN: OU=HideInside,OU=TestOU,ou=import,ou=mytestou…
DN: OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj0,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj1,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj2,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj3,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj4,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj5,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj6,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj7,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj8,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj9,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
[SNIP]
DN: OU=vlvtestobj13113,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13114,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13115,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13116,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13117,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13118,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13119,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13120,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13121,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13122,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13123,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13124,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13125,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13126,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=vlvtestobj13127,OU=joeou,OU=TestOU,ou=import,ou=mytestou…
DN: OU=Test&Me,OU=TestOU,ou=import,ou=mytestou…
DN: OU=TestOUWithAccentÕÚCharacters,OU=TestOU,ou=import,ou=mytestou…
DN: OU=OU1,OU=TestOU,ou=import,ou=mytestou…
DN: OU=OU2,OU=TestOU,ou=import,ou=mytestou…
DN: OU=pwdrst,OU=TestOU,ou=import,ou=mytestou…
DN: OU=Smiths,OU=TestOU,ou=import,ou=mytestou…
DN: OU=JoeTest20060613,OU=TestOU,ou=import,ou=mytestou…
DN: OU=20060613,OU=TestOU,ou=import,ou=mytestou…
DN: OU=_JoeERTest,OU=TestOU,ou=import,ou=mytestou…
DN: OU=AutoUsers,ou=import,ou=mytestou…

The command completed successfully
 

The actual import code was pretty easy, it is all of the cool functionality I added around it that I didn’t use here that lets you dynamically build the DNs and other attribute based on attributes in the CSV file.

     joe

Rating 3.00 out of 5

2 Responses to “ADMOD updates still moving along nicely…”

  1. Steve Kelly says:

    Great news Joe. I hadn’t thought about this before, but with the new functionality, it would be great to have a /diff or something like it to compare 2 directories for differences and report on them or add only new object from the primary to the secondary. This is not a feature request, more a dare to dream scenario.

    Keep up the great work. Many of us appreciate it (even if we fail to tel you)

    Steve

  2. joe says:

    Thanks Steve!

[joeware – never stop exploring… :) is proudly powered by WordPress.]