The programs on this site are designed to work on as many client operating systems as possible. However, a few take advantage of new features available in Windows 2000 and newer operating systems. An alternative is generally provided in another program, since many networks still must support older operating systems. The program requirements are given in the documentation for each.

The programs are designed to be as generic as possible. Hopefully, this makes them useful in more situations. This is done by assuming as little as possible. For example, most of the programs determine the domain name programmatically. Where appropriate, error trapping is used to handle problems commonly encountered.

The programs have been coded to demonstrate important concepts. These include enumerating items in a collection or container, performing the same task on many objects, documenting a property for all users in the domain, and searching Active Directory for objects meeting your criteria.

The programs have been coded to demonstrate good programming practice. For example, each begins with an "Option Explicit" statement, because using this makes it much easier to troubleshoot. Each variable used in the program is declared. As much as possible, consistent nomenclature is used throughout to avoid confusion.

So called "Hungarian" notation has been used to name variables. This convention uses a three letter lower case prefix to indicate the type of variable. For example, strArgument refers to a variable used to store string data. The prefixes are: str=String, obj=Object, int=Integer, lng=Long, dbl=Double, sng=Single, dtm=Date/Time, bln=Boolean (True or False), byt=Byte, arr=Array, col=Collection, ado=ADO object.

Comments are included in the programs to explain the code. Of course, if you use any of the programs you will probably need to edit the program to reflect your environment and meet your needs.

You are free to use, copy, modify, reproduce, and distribute the programs in any way you find useful, provided that you agree that the copyright owner has no warranty, obligation, or liability for such use. The purpose is to learn and make administrative tasks easier.