Logo faq-o-matic.net
Logo faq-o-matic.net

Mailadresse gezielt suchen

von veröffentlicht am27. April 2005, 14:43 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: AD: Erweiterte Abfragen, Exchange   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 8. September 2008

Um gezielt nach einer bestimmten Mailadresse im AD zu suchen, eignet sich das folgende Skript. Es fragt nach einem Fragment, das in einer Adresse vorkommen soll (z.B. „support“ oder „@unserefirma“) und gibt alle Adressen und die zugeordneten Objekte (Benutzer, Gruppen usw.) aus, die dieses Fragment enthalten.

Dies ist die korrigierte Fassung: Sie funktioniert ab sofort in jeder Domäne, nicht nur bei mir in der Firma. ,-) Voraussetzung ist, dass der aufrufende Rechner Domänenmitglied ist.

Wer zur Übersicht alle Mailadressen ausgeben will, nutzt das Skript aus diesem Artikel.

  1. ‚*****************************
  2. ‚ AD-Mailadressen_suchen.vbs
  3. ‚ Beschreibung
  4. ‚
  5. ‚ Version: 1.1a
  6. ‚ Datum: 27.04.2005/23.8.2005
  7. ‚ Autor: Nils Kaczenski (Vorname at Nachname .de)
  8. ‚ Letzte Änderungen:
  9. ‚
  10. ‚ Nils Kaczenski stellt dieses Skript ohne jede
  11. ‚ Gewährleistung zur Verfügung.
  12. ‚ Die Verwendung geschieht auf eigene Gefahr.
  13. ‚
  14. ‚*****************************
  15.  
  16. Option Explicit
  17. Dim strSuchstring ‚
  18. Dim strMail ‚
  19. Dim arrMember ‚
  20. Dim arrObjectClass ‚
  21. Dim arrProxyAddresses ‚
  22. Dim i ‚
  23. Dim objConn ‚
  24. Dim objExplorer ‚
  25. Dim objRSAD ‚
  26. Dim objRSlokal ‚
  27. Dim strAusgabe ‚
  28. Dim strConn ‚
  29. Dim strMember ‚
  30. Dim strObjectClass ‚
  31. Dim strSQL ‚
  32. Dim objRoot
  33. Dim strDomain
  34.  
  35. Set objConn = CreateObject(„ADODB.Connection“)
  36. Set objRSlokal = CreateObject(„ADODB.Recordset“)
  37.  
  38. strSuchstring = InputBox(„Wonach wird in der Mailadresse gesucht?“, _
  39. „Mailadresse suchen“)
  40.  
  41.  
  42. ‚ Domänenzugriff …
  43. set objRoot = GetObject(„LDAP://rootDSE“)
  44. strDomain = objRoot.Get(„DefaultNamingContext“)
  45.  
  46. ‚ Datenbankzugriff …
  47. strConn = „Provider=ADsDSOObject;“
  48. objConn.Open strConn
  49.  
  50. ‚ Zugriff auf die gesamte Tabelle
  51. strSQL = „SELECT name,mailNickname,mail,proxyAddresses,member,objectClass „ _
  52. & „FROM ‚LDAP://“ & strDomain & „‚ WHERE proxyAddresses=’*“ _
  53. & strSuchstring & „*'“
  54. Set objRSAD = objConn.Execute(strSQL)
  55.  
  56. ‚ lokales Recordset zur Anzeige definieren
  57. objRSlokal.Fields.Append „Mailadresse“, 202, 255
  58. objRSlokal.Fields.Append „Name“, 202, 255
  59. objRSlokal.Fields.Append „Alias“, 202, 255
  60. objRSlokal.Fields.Append „Typ“, 202, 255
  61. objRSlokal.Fields.Append „Mitglieder“, 202, 16384
  62.  
  63. objRSlokal.Open
  64.  
  65. Do Until objRSAD.EOF
  66. arrProxyAddresses = objRSAD(„proxyAddresses“)
  67. strMail = objRSAD(„mail“)
  68. If Not IsNull(objRSAD(„member“)) Then
  69. arrMember = objRSAD(„member“)
  70. strMember = Join(arrMember, „<br>“)
  71. Else
  72. strMember = „“
  73. End If
  74. arrObjectClass = objRSAD(„objectClass“)
  75. strObjectClass = arrObjectClass(UBound(arrObjectClass))
  76. For i=0 To UBound(arrProxyAddresses)
  77. If (InStr(LCase(arrProxyAddresses(i)), LCase(strSuchstring)) <> 0 _
  78. AND LCase(Left(arrProxyAddresses(i),5)) = „smtp:“) Then
  79. ‚ Neuen Datensatz lokal einfügen
  80. objRSlokal.AddNew
  81. objRSlokal(„Name“) = objRSAD(„name“)
  82. objRSlokal(„Alias“) = objRSAD(„mailNickname“)
  83. objRSlokal(„Typ“) = strObjectClass
  84. objRSlokal(„Mailadresse“) = Mid(arrProxyAddresses(i),6)
  85. objRSlokal(„Mitglieder“) = strMember
  86. objRSlokal.Update
  87. End If
  88. Next
  89. objRSAD.MoveNext
  90. Loop
  91.  
  92. If Not objRSlokal.EOF Then
  93. objRSlokal.Sort=„Mailadresse“
  94. objRSlokal.MoveFirst
  95. strAusgabe = objRSlokal.GetString(2, –1, „</TD><TD>“, „</TD></TR>“ _
  96.  & vbCrLf & „<TR><TD>“, “ „)
  97. strAusgabe = „<HTML><BODY style=“„font-family:sans-serif;“„>“ _
  98. & „<H1>Mailadressen mit dem Inhalt „ & strSuchstring & „</H1>“ _
  99. & „<TABLE border=“„1“„><TR><TD>“ _
  100. & strAusgabe & „</TD></TR></TABLE></BODY></HTML>“
  101. Else
  102. strAusgabe = „<HTML><BODY style=“„font-family:sans-serif;“„>“ _
  103. & „<p>Die Suche nach Mailadressen mit dem Inhalt „ _
  104. & strSuchstring & “ hatte kein Ergebnis.</p>“ _
  105. & „</BODY></HTML>“
  106. End If
  107.  
  108. Set objExplorer = CreateObject(„InternetExplorer.Application“)
  109. objExplorer.Navigate „about:blank“
  110. objExplorer.ToolBar = 0
  111. objExplorer.StatusBar = 0
  112. objExplorer.Width=500
  113. objExplorer.Height = 400
  114. objExplorer.Left = 0
  115. objExplorer.Top = 0
  116. objExplorer.Visible = 1
  117. objExplorer.document.writeln(strAusgabe)

© 2005-2025 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!