[Postfixbuch-users] gültige Empfänger aus dem ADS CSVDE Problem
Hartmut Wöhrle
hartmut.woehrle at mail.pcom.de
Sa Sep 8 16:01:21 CEST 2007
Hallo,
bei mir hat ein Perlscript bis jetzt wunderbare Arbeit verrichtet (2600
Accounts).
Ausgangspunkt ist dieses:
http://www-personal.umich.edu/~malth/gaptuning/postfix/getadsmtp.pl
dann anpassen und loslegen.
Gruss
Hartmut
Am Samstag, 8. September 2007 14:29 schrieb Andreas Winkelmann:
> On Saturday 08 September 2007 14:11, Yves Bilgeri wrote:
> > > Als ich mich mal damit beschäftigt hatte, habe ich keinen sonderlich
> > > einfachen Weg gefunden dieses Limit zu vergrössern, und da wir schon
> > > weit mehr wie 1000 User hatten, habe ich mir VB-Scripte gebastelt um
> > > das AD zu durchlaufen. Ist zwar etwas langsamer, aber dann ist es egal
> > > wieviele Einträge gefunden werden sollen.
> >
> > Ja so ein VB-Script wäre in meinem Fall sicher auch besser geeignet, auf
> > die Geschwindigkeit kommt es ja nicht so an. Leider habe ich nicht so
> > viel Erfahrung mit VB-Scripts. Kannst Du das Vorgehen evtl. mal posten?
>
> Habe gerade mal ein bestehendes von mir modifiziert. Ist aber ungetestet.
> Speicher es als irgendwas.vbs und führe es erstmal aus einem cmd-Fenster
> mit "cscript irgendwas.vbs" aus.
>
> Das sucht im ganzen AD nach SMTP-Adressen und schreibt sie in die
> Datei "mailrelay_recipients.txt" mit einem "OK" dahinter.
>
> ---------------------------------------------------------------------------
>-- Option Explicit
>
> Dim objRootDSE, strRootDomain
> Dim objADS, objMember
> Dim objFSO, objFile
>
> Set objFSO = CreateObject("Scripting.FileSystemObject")
>
> Set objRootDSE = GetObject("LDAP://rootDSE")
> strRootDomain = "LDAP://" & objRootDSE.Get("rootDomainNamingContext")
>
> Set objADS = GetObject( strRootDomain )
>
> Set objFile = objFSO.CreateTextFile( "c:\mailrelay_recipients.txt", True)
>
> ScanContainer objADS
>
> objFile.Close
>
> Sub ScanContainer( objContainer )
>
> Dim objMember
>
> If ( LCase( objContainer.Class ) = "user" ) Then
> PrintMember objContainer
> Elseif ( LCase( objContainer.Class ) = "contact" ) Then
> PrintMember objContainer
> Elseif ( LCase( objContainer.Class ) = "group" ) Then
> PrintMember objContainer
> Elseif ( LCase( objContainer.Class ) = "publicfolder" ) Then
> PrintMember objContainer
> End If
>
> On Error Resume Next
>
> For Each objMember In objContainer
> If Err.Number <> 0 Then
> Err.Clear
> On Error goto 0
> Exit Sub
> Else
> ScanContainer objMember
> End IF
> Next
>
> End Sub
>
> Sub PrintMember( objUser )
>
> Dim strAlias
>
> On Error Resume Next
>
> If Not IsEmpty( objUser.proxyAddresses ) Then
> For Each strAlias in objUser.proxyAddresses
> If ( 0 = StrComp( Left( strAlias, Len("SMTP:")), "SMTP:", 1 )) Then
> objFile.Write Mid( strAlias, Len( "SMTP:" ) + 1 ) & " OK" & vbCrLf
> End If
> End If
> Next
> End If
>
> On Error goto 0
>
> End Sub
> ---------------------------------------------------------------------------
>--
>
>
> --
> Andreas
--
===========================================
Hartmut Woehrle
EMail: hartmut.woehrle at mail.pcom.de
Mehr Informationen über die Mailingliste Postfixbuch-users