Active Directory Turns 4
As far as AD being "hard", I think that is largely in the eyes of the deployer. The reason why many people feel AD is hard is because it is so integrated with technologies such as LDAP, Kerberos and DNS. Administrators that could get away in the past w/o knowing DNS, can't anymore. Microsoft toed the LDAP line pretty closely, so if you have experience with an LDAP directory previously, the learning curve isn't quite as steep, but if you don't, then that is something else you have to learn. Also, migrating away from something like NT4 to AD adds enourmous complexity while you juggle multiple environments. Those that are building AD from the ground up w/o any legacy baggage find it much easier to deploy.
To sum up, I've been a happy AD customer (or I guess I wouldn't have written 3 books on the subject), but that doesn't mean I don't see room for improvement. I have a long list of new features or enhancements I'd like to see added, but compared to the alternatives out there, I'd take AD any day.
Solution Guide for Windows Security and Directory Services for UNIX
Sun to provide Microsoft ID management
NetPro Announces Change Auditing Solution for Active Directory
NetPro Announces Directory Experts Conference for Active Directory Europe 2004
Eight year old boy passes MS Cert Test
Army Begins Active Directory Rollout
Virtual Server 2004 RTM Slips To Mid-2004
Active Directory Performance Testing Tool (ADTest.exe)
Here is the syntax for the tool to give you an idea of what it can do:
C:\>adtest /?
Active Directory Performance Test
Release Version: 5.2.3790.1064 (3790)
Usage: adtest -r testname [options]
-adam Test ADAM
-apppart or -ap Adam Application Partition
-bindfrequency or -bf Bind Frequency
-bindperthread or -bt Use One Bind for each thread
-debug or -d Debug level (0-5)
-dmusers or -dm Directory Mark Users
-domain or - Domain to connect to
-encrypted or -e Enable Encryption
-fail or - fail on error
-file or -f File to read tests from
-h or -? Display command line help
-hats or - Display command line help for ATS
-interval or -i Report interval in seconds
-ldapfile or -lf Generate LDIF file
-userfile or -uf File Containing UserNames
-ldapinit or -li Use LDAP_INIT instead of LDAP_OPEN
-ldapver or -lv Set LDAP Version mode DEFAULT=3
-log or -o Filename of log file
-logerr or -oe Filename of error log file
-logrnd or -or Filename of random log file
-loop or -l Number of loops to run
-mms or - Metadirectory
-mult or -m Multiple root values
-nds or - Skip W2K domain discovery
-nobindperthread or -nobt Use One Bind for all threads
-nomult or -nom Single root for all threads
-noqb or - Skip initial Kerberos bind
-notad or - Make no assumptions about Server
-nounbind or - Skip unbind between binds
-password or - Password to bind with
-pause or -p Pause after initial setup
-port or - LDAP Port ( 389=LDAP, 3268=GC )
-quiet or -q Run in quiet mode
-quicktest or -qt Dump first thread; first action
-root or - Value for [ROOT]
-rootMin or - Smallest value for [ROOT]
-rootMax or - Largest value for [ROOT]
-run or -r Test to run
-sam or - Test SAM
-sequential or -seq Loop sequentially. Ignore ATS
-server or - Server to connect to
-set or -s Variable -set x=1:y=2 (exact case)
-showfail or -sf Dump failures to screen
-simple or -sb ldap_simple_bind
-signed or - Enable LDAP Signing
-threads or -t Number of threads to launch
-user or -u User account to bind
-verify or -v Verify level (0-5)
-noclear or -x Do not clear context
Please send bugs/comments/suggestions to adptool@microsoft.com
C:\>
myITforum.com : Book Review - Active Directory Cookbook
New command-line tool to find inactive computer accounts in AD
Here is the syntax and help info for the tool, which should give you an idea of just how powerful it is:
C:\>oldcmp /?
OldCmp V01.04.00cpp Joe Richards (joe@joeware.net) January 2004
Usage:
OldCmp [switches]
Switches: (designated by - or /)
-report Write report of objects
-disable Disable objects
-delete Delete objects
Delete will only work on disabled objects.
-stamp When used with delete w/ expire account as well
The idea being you can see the date it was done then.
-safety x How many objects to modify. (Default 10)
With this set, stops updating after x mods.
I did this because it is very easy to hurt yourself.
-unsafe Update ALL of the objects identified.
-forreal REALLY MAKE THE MODS, this is the final safety.
-h host Host to use. (Default is to autofind DC)
-s scope Scope of search. OneLevel, Subtree. (Default Subtree)
-b basedn RFC 1779 DN to start search at (Default domain root)
-f filter RFC 2254 LDAP filter (Default is confusing :)
-af addon RFC 2254 LDAP filter to add to builtin filter
-t xxx Timeout value in seconds. (Default 300 seconds)
-bit Bitwise operator filter conversion enable
:AND:= converts to :1.2.840.113556.1.4.803:=
:OR:= converts to :1.2.840.113556.1.4.804:=
-ps size Page size. (Default 100)
-nodc Exclude DCs from queries
-norefer No LDAP referrals
-onlydisabled Only disabled accounts (Default All)
-age x Min Days Old. (Default 90 days)
-maxage x Max Days Old. (Default Infinity)
-format x Report Format (Default HTML)
CSV - Delimited Text
HTML - Standard HTML
DHTML - Dynamic HTML (IE Only)
-sh Will autodisplay HTM/HTML/TXT files after run
-file x File to write to. (Default oldcmp-
-append Append to file instead of overwrite
-delim x Delimiter for CSV. (Default ;)
Specify TAB for \t (tab character)
-nolc Do not normalize machine names to lc - RAW Case
-nohtmlheader Don't insert base HTML (title, body...)
-sort x Sort by various fields. (Default Password Age)
cn = name
pwage = password age
age = object age
OS = operating system version
Ex1:
oldcmp
Display this help
Ex2a:
oldcmp -report
Generate html report of all cmpaccs > 90 days old
Ex2a:
oldcmp -report -format dhtml -sh
Generate dhtml report of all cmpaccs > 90 days old
Open the report after generating it
Ex2c:
oldcmp -report -format csv
Generate csv report of all cmpaccs > 90 days old
Ex3a:
oldcmp -report -age 0
Generate html report of all cmpaccs
Ex3b:
oldcmp -report -age 0 -format csv -delim tab
Generate csv (tab delimited) report of all cmpaccs
Ex4:
oldcmp -report -age 0 -onlydisabled
Generate html report of all disabled cmpaccs
Ex5:
oldcmp -report -age 0 -onlydisabled -sort cn
Generate html report of all disabled cmpaccs, sort on name
Ex6:
oldcmp -delete -age 0 -onlydisabled
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. Only up to 10.
Ex7:
oldcmp -delete -age 0 -onlydisabled -safety 100
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. Only up to 100.
Ex8:
oldcmp -delete -age 0 -onlydisabled -unsafe
Generate html report of all disabled cmpaccs, sort on pwage
Will show you what it would try to delete. All cmpaccs.
Ex9:
oldcmp -delete -age 0 -onlydisabled -unsafe -forreal
Generate html report of all disabled cmpaccs, sort on pwage
Will REALLY DELETE all accounts identified.
Ex10:
oldcmp -disable -unsafe -forreal
Generate html report of all cmpaccs > 90 days, sort on pwage
Will REALLY DISABLE all accounts identified.
Ex11:
oldcmp -report -sort OS -age 0 -maxage 60
Generate html report of all cmpaccs still valid, sort on OS
Ex12:
oldcmp -report -af "(operatingsystem=Windows XP Professional)" -onlydisabled
-age 0
Generate html report of all disabled Windows XP machines
Ex13:
oldcmp -report -b ou=mycmps,dc=domain,dc=com
Generate html report of cmpaccs >90 days in specified OU
Note: This tool is VERY POWERFUL and could be VERY DANGEROUS!
I put a lot of safety locks in it ON PURPOSE!!!
This thing can be used for quite a bit of different computer
auditing if you know what you are doing.
Thanks to many of the members of the activedir.org listserv. Lots
of good feedback came in from them when they betatested this tool
for me. Special thanks to Ryan Durant and Bob Free for helping me
with the DHTML option. It wouldn't have made it this soon without
that needed assistance. Thanks everyone!
This software is Freeware. Use it as you wish at your own risk.
If you have improvement ideas, bugs, or just wish to say Hi, I
receive email 24x7 and read it in a semi-regular timeframe.
You can usually find me at joe@joeware.net
