|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
15.21 ADSI. Работа с почтовыми ящиками пользователей средствами ADSI Работа с почтовыми ящиками Exchange Server скриптами ADSI на VBScript, создание почтовых ящиков из скрипта, настройка свойств почтовых ящиков в Active Directory Операции с почтовым ящиком пользователя обычно включают в себя две взаимосвязанные задачи: действия с учетной записью пользователя в Active Directory и действия с объектом почтового ящика на сервере Exchange Server. Обычно для выполнения различных операций с почтовым ящиком на Exchange Server используются одновременно средства ADSI и интерфейс IMailBoxStore, в котором предусмотрены методы CreateMailbox(), MoveMailbox() и DeleteMailbox(). Создание почтового ящика может выглядеть, например, так: strDCName = "LONDON3" ' e.g. "<DC>" strUserName = "ScriptUser" ' e.g. "jrandomuser" strFirstName = "Joe" strLastName = "Blow" strPassword = "G0bbeldygook!#" ' ------ END CONFIGURATION ------ Set oIADs = GetObject("LDAP://RootDSE") strDefaultNC = oIADs.Get("defaultnamingcontext") strConfigNC = oIADs.Get("configurationNamingContext") strContainer = "/CN=Users," & strDefaultNC Set objContainer = GetObject("LDAP://" & strDCName & strContainer) Set NewUser = objContainer.Create("User", "cn=" & strUserName) With NewUser .FirstName = strFirstName .LastName = strLastName .Put "sAMAccountName", strUserName .SetInfo End With With NewUser .AccountDisabled = False .SetPassword strPassword .SetInfo End With ' Open the connection. Set theConnection = CreateObject("ADODB.Connection") Set theCommand = CreateObject("ADODB.Command") Set theRecordSet = CreateObject("ADODB.Recordset") theConnection.Provider = "ADsDSOObject" theConnection.Open "ADs Provider" ' Build the query to find the private MDBs. Use the first ' one if any are found. strQuery = "<LDAP://" & strConfigNC & _ ">;(objectCategory=msExchPrivateMDB);name,adspath;subtree" theCommand.ActiveConnection = theConnection theCommand.CommandText = strQuery Set theRecordSet = theCommand.Execute If Not theRecordSet.EOF Then theRecordSet.MoveFirst firstMDB = CStr(theRecordSet.Fields("ADsPath").Value) Else firstMDB = "" End If ' create the mailbox With NewUser .CreateMailbox firstMDB .SetInfo End With Wscript.Echo "Mailbox created successfully" End Sub Перемещение почтового ящика: ' ------ SCRIPT CONFIGURATION ------ strServerName = "<dc>" ' e.g. "BATMAN" strForest= "<forestDN>" ' e.g. dc=robichaux, dc=net" strUser= "<userName>" ' e.g. "Missy Koslosky" strTargetName = "<targetMDB>" ' e.g. "/CN=Mailboxes,CN=First Storage Group, CN=InformationStore," strServerContainer = ",CN=servers,cn=<adminGroup>," &_ "CN=administrative groups,cn=<orgName>,cn=" &_ "Microsoft Exchange,cn=Services,cn=configuration," & strDomain ' e.g. ",CN=servers,cn=First Administrative Group,CN=administrative groups,cn=Robichaux and Associates,cn=Microsoft Exchange,cn=Services,cn=configuration," & strDomain ' ------ END CONFIGURATION --------- ' get the target user object what = "LDAP://" & strServerName & "/CN=" & strUser &_ ",CN=users," & strDomain Set objUser = GetObject(what) Set objMailbox = objUser strTargetMDB = "LDAP://" + strServerName + strTargetName strTargetMDB = strTargetMDB + "CN=" & strServerName &_ strServerContainer objMailbox.MoveMailbox strTargetMDB objUser.SetInfo WScript.Echo "Moved mailbox for " & strUser & " to & strTargetName
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||