I was waiting for the t-shirt before using it. If it's already there, that would be great. Now if only I could read... <dg>
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of joe Sent: Tuesday, October 11, 2005 5:10 PM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] ADFIND mods Hey Al, have you actually used any of my tools? <eg> I added the CSVDelim and CSVMVDelim switches before I added the CSV switch. ValidOptions.push_back("csvdelim"); // CSV Delimiter ValidOptions.push_back("csvmvdelim"); // CSV Multivalue Delimiter ValidOptions.push_back(":list"); // List mode ValidOptions.push_back(":soao"); // Sort Ordered Attribute Output ValidOptions.push_back(":oao"); // Ordered Attribute Output ValidOptions.push_back(":csv"); // CSV Output string CSVDelim=","; string CSVMVDelim=";"; if (CmdLine.HasSwitch("csv")) { bQuiet=true; bNoDN=true; bCSV=true; bNoLabel=false; if (!CmdLine.NumArgs()) CmdLine.AddArg("name"); if (CmdLine.HasSwitch("csvdelim")) CSVDelim=CmdLine.GetSwitch("csvdelim"); if (CmdLine.HasSwitch("csvmvdelim")) CSVMVDelim=CmdLine.GetSwitch("csvmvdelim"); ... -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Al Mulnick Sent: Tuesday, October 11, 2005 11:07 AM To: ActiveDir@mail.activedir.org Subject: RE: [ActiveDir] ADFIND mods Yay!!! Uh, one thing though. While you're mod'ing the CSV output, can you make it so that we can pick the separator character? I know the purists out there wouldn't like to call something a csv if it's not, well comma separated, but it's sometimes useful to utilize other separator characters. Please? -ajm -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of joe Sent: Tuesday, October 11, 2005 1:30 AM To: ActiveDir@mail.activedir.org Subject: [ActiveDir] ADFIND mods Not trying to scare anyone but I actually might have somehow hacked CSV support into the V1.* version of adfind. Jerry[1] pulled me off to the side at the MVP summit during the Exec sessions and threatened to thrash me if I didn't add the ability to support sorting the attribute output order for objects into adfind. Well actually he said it very nicely, Jerry is a very nice guy. I say this in case you don't know him personally. Then Marty List said that is a great idea and then Dean said it was a good idea which almost made me not do it because Dean doesn't like me but I decided I liked Jerry and Marty enough to overcome the dislike Dean has. Yup. ;o) So I got home from the summit, received my email to myself to remind myself that I needed to make that mod for Jerry so I didn't have to keep looking in the rearview mirror and sending my cat out to start the truck. So I pulled up the adfind code and scrolled through it (since I hadn't looked at the overall flow in months) to reaquaint myself with how hacked it is (it really is at this point, positively evil). Then I closed it and waiting until the bug bit me to tell me my mind had somehow figured out how to insert the new code... Well it bit me tonight while watching My Name is Earl on the Media Center PC. I had worked out where I needed to further hack the code and opened it up and started slinging code and have been doing so for the last couple of hours though now I have to rewatch Earl because I lost the thread of what was happening. After I stuck in Jerry's attribute sort so that an object will return the attributes in an order sorted by attribute name say >cn: Users >dSCorePropagationData: 20050805040803.0Z >dSCorePropagationData: 20050805040622.0Z >dSCorePropagationData: 20050805032808.0Z >dSCorePropagationData: 20050805031109.0Z >dSCorePropagationData: 16010714223649.0Z >description: Default container for upgraded user accounts >distinguishedName: CN=Users,DC=joe,DC=com >instanceType: 4 >memberOf: CN=MyDL,OU=contacts,DC=joe,DC=com >name: Users >objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=joe,DC=com >objectClass: top >objectClass: container >objectGUID: {48F745DD-7E01-4151-A1EA-C7D16085DAE6} >uSNChanged: 3021990 >uSNCreated: 16365 >whenChanged: 20050805051458.0Z >whenCreated: 20040309041843.0Z instead of the default return order from the server of >objectClass: top >objectClass: container >cn: Users >description: Default container for upgraded user accounts >distinguishedName: CN=Users,DC=joe,DC=com >instanceType: 4 >whenCreated: 20040309041843.0Z >whenChanged: 20050805051458.0Z >uSNCreated: 16365 >memberOf: CN=MyDL,OU=contacts,DC=joe,DC=com >uSNChanged: 3021990 >name: Users >objectGUID: {48F745DD-7E01-4151-A1EA-C7D16085DAE6} >objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=joe,DC=com >dSCorePropagationData: 20050805040803.0Z >dSCorePropagationData: 20050805040622.0Z >dSCorePropagationData: 20050805032808.0Z >dSCorePropagationData: 20050805031109.0Z >dSCorePropagationData: 16010714223649.0Z I decided to add a quick list function which combines -nodn -nolabel and inserts the attribute specified into the -sort or -rsort without having to type the attribute again which I have wanted for some time because I was tired of typing all of that stuff all of the time. I then decided since it was all going too smoothly I should take a shot at CSV output because I really need to crash it good when I am adding new things so I can slap my forehead and think, what in the world do I do this for. Plus the mechanism I had set up to pull off Jerry's option I had architected in such a way that CSV was at least remotely possible theoretically and how dare I not test the theory. This CSV option only works with DN and name if you don't specify specific attributes or it works with the attributes you specify though DN will always be the first column. Amazingly, it seems to be working and it isn't entirely slow. I have to play with it some more and I thought of a couple of other options to try and stick in and break things before I start officially beta testing it. Once I get to that point I may annoy some folks into testing it out for me. If you use adfind a lot and would like to test the new version when I am ready to let someone find the holes, respond to me with this email and why you would like to test it and I will put you in the hat. Oh here is what the csv output looks like at the moment.... F:\Dev\CPP\AdFind>adfind -h 2k3dc01 -default -s one name objectclass whenchanged -csv -sort name "dn","name","objectclass","whenchanged" "CN=Builtin,DC=joe,DC=com","Builtin","top;builtinDomain","20040625234526.0Z" "OU=CleanOU,DC=joe,DC=com","CleanOU","top;organizationalUnit","2005080401461 3.0Z" "CN=Computers,DC=joe,DC=com","Computers","top;container","20040625234526.0Z" "OU=contacts,DC=joe,DC=com","contacts","top;organizationalUnit","20050821222 039.0Z" "OU=Domain Controllers,DC=joe,DC=com","Domain Controllers","top;organizationalUnit","20040625234526.0Z" "OU=Exchange,DC=joe,DC=com","Exchange","top;organizationalUnit","20040625234 707.0Z" "CN=ForeignSecurityPrincipals,DC=joe,DC=com","ForeignSecurityPrincipals","to p;container","20040625234526.0Z" "CN=Infrastructure,DC=joe,DC=com","Infrastructure","top;infrastructureUpdate ","20050613155937.0Z" "CN=LostAndFound,DC=joe,DC=com","LostAndFound","top;lostAndFound","200406252 34526.0Z" "CN=Microsoft Exchange System Objects,DC=joe,DC=com","Microsoft Exchange System Objects","top;container;msExchSystemObjectsContainer","20050330022442.0Z" "CN=NTDS Quotas,DC=joe,DC=com","NTDS Quotas","top;msDS-QuotaContainer","20040625234526.0Z" "CN=Program Data,DC=joe,DC=com","Program Data","top;container","20040625234655.0Z" "OU=Sales,DC=joe,DC=com","Sales","top;organizationalUnit","20050920020829.0Z " "OU=someapp,DC=joe,DC=com","someapp","top;organizationalUnit","2005082405111 4.0Z" "CN=someapp2,DC=joe,DC=com","someapp2","top;person;organizationalPerson;user ","20050824051145.0Z" "CN=System,DC=joe,DC=com","System","top;container","20040625234526.0Z" "OU=TestOU,DC=joe,DC=com","TestOU","top;organizationalUnit","20050715071524. 0Z" "CN=Users,DC=joe,DC=com","Users","top;container","20050805051458.0Z" joe [1] Yes that Jerry, Jerold Schulman, of the reghacks / JSI Inc web site. http://www.jsiinc.com/aboutJSI.htm List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/ List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/ List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/ List info : http://www.activedir.org/List.aspx List FAQ : http://www.activedir.org/ListFAQ.aspx List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/