Exchange+Outlook:Besitzer einer Emailadresse finden (Benutzer, Gruppe, Öffentlicher Ordner)
Aus znilwiki
Das nachfolgende Skript stammt von dieser Webseite:
http://www.faq-o-matic.net/2005/04/27/mailadresse-gezielt-suchen/
Author ist Nils Kaczenski, http://www.kaczenski.de/ der auch das bekannte José - Tool geschrieben hat.
Das Skript wird hier einmal "gecached" sowie in einer Download-Version angeboten. Auf der Originalwebseite werden beim herauskopieren zudem die Zeilennummern mit kopiert.
Deshalb hier etwas einfacher.
Sie legen einen neuen Benutzer an - aber der bekommt nicht die Email-Adresse "Sport@znil.de" sondern "Sport1@znil.de"?
Wer verflixt noch mal hat denn die Adresse?
Laden Sie nachfolgendes Script herunter (Dateiendung .vbs) und starten Sie es:
Geben Sie ein Stichwort zur Adresse ein - hier sport'
Und so sieht das Ergebnis aus:
Bitte den Typ (Group, User, Public Folder) beachten! Bei Gruppen listet er auch noch alle Mitglieder auf
Download: AD-Mailadressen_suchen.vbs
'*****************************
' AD-Mailadressen_suchen.vbs
' Beschreibung
'
' Version: 1.1a
' Datum: 27.04.2005/23.8.2005
' Autor: Nils Kaczenski (Vorname at Nachname .de)
' Letzte Änderungen:
'
' Nils Kaczenski stellt dieses Skript ohne jede
' Gewährleistung zur Verfügung.
' Die Verwendung geschieht auf eigene Gefahr.
'
'*****************************
Option Explicit
Dim strSuchstring '
Dim strMail '
Dim arrMember '
Dim arrObjectClass '
Dim arrProxyAddresses '
Dim i '
Dim objConn '
Dim objExplorer '
Dim objRSAD '
Dim objRSlokal '
Dim strAusgabe '
Dim strConn '
Dim strMember '
Dim strObjectClass '
Dim strSQL '
Dim objRoot
Dim strDomain
Set objConn = CreateObject("ADODB.Connection")
Set objRSlokal = CreateObject("ADODB.Recordset")
strSuchstring = InputBox("Wonach wird in der Mailadresse gesucht?", "Mailadresse suchen")
' Domänenzugriff …
set objRoot = GetObject("LDAP://rootDSE")
strDomain = objRoot.Get("DefaultNamingContext")
' Datenbankzugriff …
strConn = "Provider=ADsDSOObject;"
objConn.Open strConn
' Zugriff auf die gesamte Tabelle
strSQL = "SELECT name,mailNickname,mail,proxyAddresses,member,objectClass " _
& "FROM 'LDAP://" & strDomain & "' WHERE proxyAddresses='*" _
& strSuchstring & "*'"
Set objRSAD = objConn.Execute(strSQL)
' lokales Recordset zur Anzeige definieren
objRSlokal.Fields.Append "Mailadresse", 202, 255
objRSlokal.Fields.Append "Name", 202, 255
objRSlokal.Fields.Append "Alias", 202, 255
objRSlokal.Fields.Append "Typ", 202, 255
objRSlokal.Fields.Append "Mitglieder", 202, 16384
objRSlokal.Open
Do Until objRSAD.EOF
arrProxyAddresses = objRSAD("proxyAddresses")
strMail = objRSAD("mail")
If Not IsNull(objRSAD("member")) Then
arrMember = objRSAD("member")
strMember = Join(arrMember, "<br>")
Else
strMember = ""
End If
arrObjectClass = objRSAD("objectClass")
strObjectClass = arrObjectClass(UBound(arrObjectClass))
For i=0 To UBound(arrProxyAddresses)
If (InStr(LCase(arrProxyAddresses(i)), LCase(strSuchstring)) <> 0 _
AND LCase(Left(arrProxyAddresses(i),5)) = "smtp:") Then
' Neuen Datensatz lokal einfügen
objRSlokal.AddNew
objRSlokal("Name") = objRSAD("name")
objRSlokal("Alias") = objRSAD("mailNickname")
objRSlokal("Typ") = strObjectClass
objRSlokal("Mailadresse") = Mid(arrProxyAddresses(i),6)
objRSlokal("Mitglieder") = strMember
objRSlokal.Update
End If
Next
objRSAD.MoveNext
Loop
If Not objRSlokal.EOF Then
objRSlokal.Sort="Mailadresse"
objRSlokal.MoveFirst
strAusgabe = objRSlokal.GetString(2, -1, "</TD><TD>", "</TD></TR>" _
& vbCrLf & "<TR><TD>", " ")
strAusgabe = "<HTML><BODY style=""font-family:sans-serif;"">" _
& "<H1>Mailadressen mit dem Inhalt " & strSuchstring & "</H1>" _
& "<TABLE border=""1""><TR><TD>" _
& strAusgabe & "</TD></TR></TABLE></BODY></HTML>"
Else
strAusgabe = "<HTML><BODY style=""font-family:sans-serif;"">" _
& "<p>Die Suche nach Mailadressen mit dem Inhalt " _
& strSuchstring & " hatte kein Ergebnis.</p>" _
& "</BODY></HTML>"
End If
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate "about:blank"
objExplorer.ToolBar = 0
objExplorer.StatusBar = 0
objExplorer.Width=500
objExplorer.Height = 400
objExplorer.Left = 0
objExplorer.Top = 0
objExplorer.Visible = 1
objExplorer.document.writeln(strAusgabe)
--Bernhard Linz 10:17, 24. Apr. 2012 (CEST)