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

© 2005-2019 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!