Here is a little script I put together for one of our developers here at Aerojet. Feel free to use, abuse, change, tweak, fix, etc.

Here is a zip file of the script: list-all-attributes.zip

'*  Script name:   List All Attributes.vbs
'*  Created on:    01/28/2009
'*  Author:        Andrew J Healey
'*  Purpose:       Exports all attributes from the user object type within
'*                 the Active Directory schema.
'*  Usage:         cscript /nologo "list all attributes.vbs" > Attributes.csv
'*  History:       Andrew J Healey 01/28/2009
'*                  - Created script
'
Option Explicit
 
'Declarations
Dim objUserClass : Set objUserClass = GetObject("LDAP://schema/user")
Dim objSchemaClass : Set objSchemaClass = GetObject(objUserClass.Parent)
 
wscript.echo chr(34) & "Mandatory" & chr(34) & "," & _
			 chr(34) & "Name" & chr(34) & "," & _
			 chr(34) & "Syntax" & chr(34) & "," & _
			 chr(34) & "Single/Multi Valued" & chr(34)
 
Call GetAttributes(objUserClass.MandatoryProperties,objSchemaClass,True)
Call GetAttributes(objUserClass.OptionalProperties,objSchemaClass,False)
 
Private Sub GetAttributes(x,y,z)
	Dim strAttribute
 
	'Loop through all attributes
	For Each strAttribute in x
		Dim strOut : strOut = ""
 
		'Compares whether the attribute is mandatory or optional
		'Prints whether mandatory/optional and name of attribute
		If z = True then
			strOut = strOut & chr(34) & "Yes" & chr(34) & "," & _
							  chr(34) & strAttribute & chr(34) & ","
		Else
			strOut = strOut & chr(34) & "No" & chr(34) & "," & _
							  chr(34) & strAttribute & chr(34) & ","
		End If
 
		'Get the attributes syntax: i.e. Integer, String, NumericString, etc.
		Dim objAttribute : Set objAttribute = y.GetObject("Property",  strAttribute)
		strOut = strOut & chr(34) & objAttribute.Syntax & chr(34) & ","
 
		'Determines whether column holds multi or single values
		If objAttribute.MultiValued Then
			strOut = strOut & chr(34) & "Multi" & chr(34)
		Else
			strOut = strOut & chr(34) & "Single" & chr(34)
		End If
 
		'Print string to screen. Each line its own CSV.
		wscript.echo strOut
		strOut = Empty
	Next
	Set objAttribute = Nothing
	strAttribute = Empty
End Sub
 

3 Responses to “List All User Object Attributes in Active Directory Schema.. Whew!”

  1. Mark says:

    Thanks for the script!

    There’s a typo in the file name in the Usage section though :)

  2. Glen says:

    Most impressive! Thanks mate.

  3. Dom says:

    works well, thanks!

Leave a Reply to Glen

Comment moderation is enabled. Your comment may take some time to appear.