This example shows how to provision a Microsoft Exchange 2000 or Exchange 2003 resource mailbox object.

Attribute Inclusion List

You must select the following attributes from the Select Attributes property page for your Active Directory Domain Services (AD DS) management agent to provision an Exchange resource mailbox:

  • mailNickname

  • homeMDB

  • msExchMailboxSecurityDescriptor

  • msExchMasterAccountSid

  • nTSecurityDescriptor

  • userAccountControl

The following examples show how to provision an Exchange resource mailbox. You must add a reference to logging.dll to use the LogException method.

Visual Basic  Copy Code
Public Sub Provision(ByVal mventry As MVEntry) _
	Implements IMVSynchronization.Provision

	Dim adMA As ConnectedMA
	Dim csentry As CSEntry
	Dim nickName, mailboxMDB As String
	Dim dn as ReferenceValue
	Dim sid as byte()

	try
		adMA = mventry.ConnectedMAs("Fabrikam AD MA")

		nickName   = mventry("mailNickname").Value
		mailboxMDB = mventry("homeMDB").Value
		sid		= mventry("objectSID").BinaryValue

		' Construct the distinguished name.
		dn = adMA.EscapeDNComponent("CN=" + mventry("cn").Value).Concat("ou=mailboxes,dc=fabrikam,dc=com")

		If 0 = adMA.Connectors.Count then
			csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB, sid)
		End If

		' Log and rethrow any exception.
		Catch ex As Exception
			Logging.Logging.LogException(ex, "Provision", "Caught exception", False)
			Throw
	End Try
End Sub
C#  Copy Code
void IMVSynchronization.Provision (MVEntry mventry)
{
	ConnectedMA adMA;
	CSEntry csentry;
	String nickName, mailboxMDB;
	ReferenceValue dn;
	byte[] sid;

	try
	{
		adMA = mventry.ConnectedMAs["Fabrikam AD MA"];

		nickName   = mventry["mailNickname"].Value;
		mailboxMDB = mventry["homeMDB"].Value;
		sid		= mventry["objectSID"].BinaryValue;

		// Construct the distinguished name.
		dn = adMA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("ou=mailboxes,dc=fabrikam,dc=com");

		if(0 == adMA.Connectors.Count)
		{
			csentry = ExchangeUtils.CreateMailbox(adMA, dn, nickName, mailboxMDB, sid);
	}
}

	// Log and rethrow any exception.
	catch(Exception ex)
	{
		Logging.Logging.LogException(ex, "Provision", "Caught exception", false);
		throw;
}
}

See Also

Reference

CreateMailbox

Concepts

Microsoft Exchange Connected Data Sources