[Postfixbuch-users] Postfix und Exchange Server

Andreas Winkelmann ml at awinkelmann.de
Sa Okt 1 15:13:36 CEST 2005


Am Saturday 01 October 2005 13:06 schrieb Mailinglisten:

> > > > Nur kann man das VBScript soweit abändern, das auch die
> > Mailadressen
> > > > von Verteilerlisten mit angezeigt werden ?
> > >
> > > Bestimmt geht das.
> >
> > Ja kann man. Dafür mußt du im AD nur Gruppen anlegen und den
> > eine Email-Adresse geben.
>
> Hm, also ich hab eine Universelle Verteilergruppe "Mailinglisten" angelegt,
> mit der Mailaddy maillinglist at city-box.de die dann in einen öffentlichen
> Ordner bereitstellt (was ja auch klappt, mit dem Account poste ich ja hier
> *g*)
>
> Aber wenn ich das Script ausführe, zeigt er nur die Adressen der wirklich
> realexistierenden Benutzer an (und deren zusätzliche Aliase).

Habe das Script gerade mal eben ein wenig angepasst. Gruppen sind dann auch 
dabei und die Ausgabe muss nicht mehr mit awk o.ä. umgewandelt werden.

'---------------------------------------------------------------------------------------------------------------
' Export all valid recipients (= proxyAddresses) into a
' file virtual.txt
'
' Ferdinand Hoffmann & Patrick Koetter
' 20021100901
' Shamelessly stolen from 
' http://www.microsoft.com/windows2000/techinfo/ \
' planning/activedirectory/bulksteps.asp

Option Explicit

'Global variables
Dim Container
Dim OutPutFile
Dim FileSystem
Dim objRootDSE
Dim strRootDomain

'Initialize global variables
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile("c:\\virtual.txt", True)

Set objRootDSE = GetObject("LDAP://rootDSE")
strRootDomain = "LDAP://" & objRootDSE.Get("rootDomainNamingContext")

Set Container = GetObject( strRootDomain )

'Enumerate Container
EnumerateUsers Container

'Clean up
OutPutFile.Close
Set FileSystem = Nothing
Set Container = Nothing

'Say Finished when your done
WScript.Echo "Finished"
WScript.Quit(0)

'List all Users
Sub EnumerateUsers(Cont)
Dim User

'Go through all Users and select them
For Each User In Cont
	Select Case LCase(User.Class)
'If you find Users
		Case "user", "group"
		  'Select all proxyAddresses
			Dim Alias
  			If Not IsEmpty(User.proxyAddresses) Then
				For Each Alias in User.proxyAddresses
		    		If ( 0 = StrComp( Left(Alias,Len("smtp:")),"smtp:", 1 )) Then
					    OutPutFile.WriteLine Mid( Alias, Len( "smtp:" ) + 1 ) & vbTab & "OK"
			    	End If
  				Next
			  End If
		Case "organizationalunit" , "container"
  			EnumerateUsers User
	End Select
Next
End Sub
'---------------------------------------------------------------------------------------------------------------


-- 
	Andreas



Mehr Informationen über die Mailingliste Postfixbuch-users