Przedstawiony tu skrypt wyszukuje w całej domenie Active Directory użytkowników serwera Exchange 2000/2003, którzy mają włączoną obsługę protokołu Outlook Web Access (OWA). Wyniki zapisywane są w pliku w formacie CSV, który może zostać otwarty np. w Excel'u w celu łatwiejszego ich przeglądania. Jak uruchomić skrypt we własnym środowisku? Skrypt należy zapisać w pliku o dowolnej nazwie z rozszerzeniem .VBS. Nie musi on być zapisany bezpośrednio na komputerze z serwerem Exchange, wystarczy jeśli będzie to stacja kliencka należąca do Active Directory. Po uruchomieniu pliku wygenerowany zostanie na dysku C: plik wynikowy o nazwie output.csv (wartości pól będą rozdzielone znakiem | strumienia, jeśli wartość pola składa się z kilku innych wartości, np. kilka aliasów, będą one rozdzielone znakiem #). Dla każdego użytkownika z włączonym OWA skrypt eksportuje do pliku wynikowego pola Active Directory: givenName, sn, mail, czyli odpowiednio: imię, nazwisko, główny adres SMTP. W linii oznaczonej (*1) należy wpisać nazwę własnej domeny, przykład jest dla codetwo.com. Jeśli chcemy wyeksportować inne albo dodatkowe pola Active Directory, należy wypisać je odpowiednio rozdzielając przecinkami w linii oznaczonej (*2).
' Domain
strDomain = "DC=codetwo,DC=com" '(*1)
' LDAP fields
strLdapFields = "givenName,sn,mail,protocolSettings" '(*2)
' LDAP query string
strLdapQuery = "(&(objectClass=User)(|(homeMDB=*)(msExchHomeServerName=*)))"
' Output file
Set fso = WScript.CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("C:\output.csv", True)
Set con = WScript.CreateObject("ADODB.Connection")
Set rs = WScript.CreateObject("ADODB.Recordset")
Set Com = WScript.CreateObject("ADODB.Command")
' Open a Connection object.
con.Provider = "ADsDSOObject"
con.Properties("ADSI Flag") = 1
'con.Properties("User ID") = strDomain + "\" + strUserID
'con.Properties("Password") = strPassword
con.Open "Active Directory Provider"
' Create a command object on this connection.
Set Com.ActiveConnection = con
' Set the query string.
Com.CommandText = "<LDAP://" & strDomain & ">;" & strLdapQuery & ";" & strLdapFields & ";SubTree"
' Execute the query.
Set rs = Com.Execute
' Header
file.WriteLine Replace( strLdapFields, ",", "|" )
If Not rs.EOF Then
' Navigate the record set.
rs.MoveFirst
While Not rs.EOF
strLine = ""
bOWAEnabled = True
For i = 0 To rs.Fields.Count - 1
If rs.Fields(i).Type = 12 And Not (IsNull(rs.Fields(i).Value)) Then
strValue = ""
vValue = rs.Fields(i).Value
For j = LBound(rs.Fields(i).Value) To UBound(rs.Fields(i).Value)
If j <> LBound(rs.Fields(i).Value) Then strValue = strValue & "#"
strValue = strValue & vValue(j)
Next
Else
strValue = rs.Fields(i).Value
End If
If rs.Fields(i).Name = "protocolSettings" Then
If InStr(strValue, "HTTP§0") > 0 Then bOWAEnabled = False
Else
If i <> 0 Then strLine = strLine & "|"
If Not IsNull(strValue) Then strLine = strLine & strValue
End If
Next
If bOWAEnabled Then
file.WriteLine strLine
End If
rs.MoveNext
Wend
rs.MoveLast
End If
Jeśli masz jakieś pytania lub komentarze dotyczące tego artykułu, napisz na forum. (c) CodeTwo Wszelkie prawa zastrzeżone. Artykuł ten nie może być kopiowany lub publikowany bez wyraźnej zgody autora. Słowa kluczowe: Exchange Server 2003, serwer Exchange 200, skrypt do wyszukiwania w Active Directory wszystkich uyżtkownikw z włączoną usługą Outlook Web Access - OWA. Jak wylistować z automatu, albo skryptem, wszystkich użytkowników którzy mają włączone lub wyłączonu protokół OWA? Skrypt do eksportu skrzynek z włączonym OWA do pliku CSV albo TXT. |
||