Я ищу способ составить список учетных записей, для которых в Exchange 2003 установлен любой вариант доставки.
Я использовал WMI для запроса классов Exchange, описанных в http://msdn.microsoft.com/en-us/library/aa142577(EXCHG.65).aspx но пока я не нашел свойств, связанных с вариантами доставки.
Спасибо!
Вам нужно будет указать более конкретно, какие варианты доставки вы хотите, так как их несколько. Я дам вам этот VBScript, который предоставит вам каждого пользователя в вашей Active Directory, у которого есть набор почтовых ящиков для пересылки.
Я тестировал это на виртуальной машине, и он работает довольно быстро, но применяются обычные правила. Пожалуйста, протестируйте в лабораторной среде перед запуском в производственной среде, и я не несу ответственности за то, что мир рушится под собственным весом, когда вы запускаете этот скрипт.
Вызов в командной строке с помощью cscript /nologo altRecipient.vbs
'************************************************************************************
'* Script to find all users who have alternative recipients set
'*
'* This script was hacked together with information from the following sources.
'* I make no claim of ownership to any part of this script
'*
'* - http://support.microsoft.com/kb/817433
'* - http://blogs.technet.com/b/heyscriptingguy/archive/2006/03/22/how-can-i-get-a-list-of-all-the-users-who-have-an-alternate-recipient.aspx
'************************************************************************************
Dim sDomain, sADsPath, sPDC
Dim oCon ,oCmd, oRst
Set oRst = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.Command")
Set oCon = CreateObject("ADODB.Connection")
Dim oRoot, oDomain, oADInfo, oInfo
Set oADInfo = CreateObject("ADSystemInfo")
Set oInfo = CreateObject("WinNTSystemInfo")
sPDC = oInfo.PDC & "." & oADInfo.DomainDNSName
oCon.Provider = "ADSDSOObject"
oCon.Open "Active Directory Provider"
oCmd.ActiveConnection = oCon
Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sADsPath = "<" & oDomain.ADsPath & ">"
oCmd.CommandText = "SELECT altRecipient, Name FROM 'LDAP://" & sPDC & "/" & sDomain & "' WHERE objectCategory='user' and altRecipient = '*'"
Set oRst = oCmd.Execute
If oRst.RecordCount = 0 Then
WScript.Echo "no accounts found"
WScript.Quit
End If
Do While Not oRst.EOF
WScript.Echo "User " & oRst.Fields("Name") & " is forwarded to " & oRst.Fields("altRecipient")
WScript.Echo "=========================================="
oRst.MoveNext
Loop