Article ID: 306866
Article Last Modified on 2/23/2007
APPLIES TO
- Microsoft Exchange Server 2003 Standard Edition
- Microsoft Windows 2000 Server
- Microsoft Exchange 2000 Enterprise Server
- Microsoft Exchange 2000 Server Standard Edition
- Microsoft Active Directory Service Interfaces 2.5
- Microsoft Active Directory Service Interfaces 2.5
This article was previously published under Q306866
SUMMARY
This article demonstrates how to start the Exchange 2000 Recipient Update Service (RUS) programmatically. You may want to do this if you want the RUS to start running without having to wait for the next scheduled time.
MORE INFORMATION
The following code sets the msExchReplicateNow attribute on the RUS for the domain to "true".
Private Sub Command1_Click() ' This sample finds the first Exchange Organization and ' starts the server RUS. If you have multiple Exchange ' organizations you will want to modify the code. ' This sample does a serverless bind finding the first DC ' to respond. You may want to modify the code to specify ' a specific server in the Bind statement. Dim RootDse Set RootDse = GetObject("LDAP://RootDSE") strdn = RootDse.Get("defaultNamingContext") Set oConfig = GetObject("LDAP://" & strdn) strDomainName = oConfig.Get("name") strConfigurationNC = RootDse.Get("ConfigurationNamingContext") strExchangeOrg = FindAnyOrg(strConfigurationNC) strRUS = "CN=Recipient Update Service (" & strDomainName & "),CN=Recipient Update Services," & _ "CN=Address Lists Container,CN=" & strExchangeOrg & ",CN=Microsoft Exchange,CN=Services," & _ "CN=Configuration," & strdn Set objRUS = GetObject("LDAP://" & strRUS) objRUS.Put "msExchReplicateNow", True objRUS.SetInfo End Sub Function FindAnyOrg(strConfigurationNC) Set oConnection = CreateObject("ADODB.Connection") Set oCommand = CreateObject("ADODB.Command") Set oRecordSet = CreateObject("ADODB.RecordSet") Dim strQuery ' Open the Connection oConnection.Provider = "ADsDSOObject" oConnection.Open "ADs Provider" ' Build the query to find the private Exchange Organization strQuery = "<LDAP://" & strConfigurationNC & ">;(objectCategory=msExchOrganizationContainer);name,adspath;subtree" oCommand.ActiveConnection = oConnection oCommand.CommandText = strQuery Set oRecordSet = oCommand.Execute ' If we have an Organization then return the first one If Not oRecordSet.EOF Then oRecordSet.MoveFirst FindAnyOrg = CStr(oRecordSet.Fields("name").Value) Else FindAnyOrg = "" End If 'Clean Up oRecordSet.Close oConnection.Close Set oRecordSet = Nothing Set oCommand = Nothing Set oConnection = Nothing End Function
REFERENCES
For information on Finding the Exchange Organization Name using Microsoft Visual C++, see:
Finding the Exchange Organization Name Using ADSI
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_clb_finding_the_exchange_organization_name_using_adsi_cpp.asp
For information on checking the progress of the RUS, see:
246127 XADM: How to Check the Progress of the Recipient Update Service
Keywords: kbhowto kbdswadsi2003swept KB306866