Skip to main content

List All User Object Attributes in Active Directory Schema.. Whew!

·2 mins

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

'*  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

Related

Software for CTARNG

The other day I was contacted by a Cpt Miller with the Connecticut Army National Guard (CTARNG). It turns out that the entire CTARNG uses the program I wrote called Active Directory UserMod Assistant. Cpt Miller needed some modifications made to make it work in his environment. I was able to help him out with his mods. It was a bit odd getting a request like that in Iraq. He didn’t know I was here but it was nice knowing that the program I wrote is helping out the Military.

AD UserMod Assistant 9.0

I finally got around to a new release of Active Directory UserMod Assistant -> adumass. This was a major release as it fixed some pretty serious bugs and also greatly improved the UI and back end code. I also added a few functions for data validation. Thanks to all those that have helped and submitted support requests. The next version should have a translation pack for those users that want to help with translations.

VBScript: Delete Files Older Than One Hour

·2 mins
So, I am constantly looking for ways of automating tasks. Too many admins do not take advantage of scripting and scheduled tasks/cron. Just this last week, I was implementing a new print server. Besides just building up the new server, I wanted to actually offer the users something new and useful. I’ve been wanting to setup a network pdf printer for quite some time. I have played around with setting up a network PDF printer using cups. However, we seem to be so MS centric these days that I decided to use PDFCreator’s print server. It was really a piece of cake. Just install the server portion, setup the service, create a share and watch the PDF’s spool.