Added the ability to stamp mailboxes with a mailbox plan as well as those

mailboxes that have no mailbox plan assigned yet.

The following SQL statement will 'upgrade' the user data to work with the new
exchange 2010 SP2 provider. Ensure you replace the variables with values that
matches your environment.

DECLARE  @NetBIOSDomain nvarchar(20)
DECLARE  @ExchangeOrgRoot nvarchar(256)

SET @NetBIOSDomain = 'MYDOMAIN'
SET @ExchangeOrgRoot = 'CN=First Organization,CN=Microsoft Exchange,CN=Services,
CN=Configuration,DC=mydomain,DC=local'

UPDATE ExchangeAccounts SET SamAccountName = @NetBIOSDomain+'\'+AccountName
WHERE AccountID IN  (SELECT AccountID FROM ExchangeAccounts
WHERE AccountType IN (3,7) AND SamAccountName = '')

INSERT INTO ServiceItemProperties (ItemID, PropertyName, PropertyValue)
(SELECT SP.ItemID, 'AddressBookPolicy',
PV = 'CN='+SP.PropertyValue+' Address Policy,CN=AddressBook Mailbox Policies,'
+ @ExchangeOrgRoot
FROM         ServiceItemProperties AS SP
WHERE     (PropertyName = 'OrganizationID') AND (ItemID IN
 (SELECT     ItemID
 FROM          ServiceItemProperties AS ServiceItemProperties_1
 WHERE      (PropertyName = 'GlobalAddressList') AND (PropertyValue <> ''))))

UPDATE SP SET PropertyValue='CN='+SP2.PropertyValue+' Rooms,CN=All Address Lists
,CN=Address Lists Container,'+@ExchangeOrgRoot
FROM ServiceItemProperties AS SP
JOIN ServiceItemProperties AS SP2 ON SP.ItemID = SP2.ItemID
AND SP.PropertyName='RoomsAddressList'
WHERE (SP2.PropertyName = 'OrganizationID') AND (SP2.ItemID IN
 (SELECT     ItemID
 FROM          ServiceItemProperties AS ServiceItemProperties_1
 WHERE      (PropertyName = 'GlobalAddressList') AND (PropertyValue <> '')))
This commit is contained in:
robvde 2012-07-12 17:14:19 +04:00
parent 80672a555f
commit 43b73aee66
15 changed files with 469 additions and 36 deletions

View file

@ -944,6 +944,13 @@ namespace WebsitePanel.EnterpriseServer
DataProvider.GetExchangeAccounts(itemId, (int)accountType));
}
public static List<ExchangeAccount> GetExchangeAccountByMailboxPlanId(int itemId, int mailboxPlanId)
{
return ObjectUtils.CreateListFromDataReader<ExchangeAccount>(DataProvider.GetExchangeAccountByMailboxPlanId(itemId, mailboxPlanId));
}
public static List<ExchangeAccount> GetExchangeMailboxes(int itemId)
{
return ObjectUtils.CreateListFromDataReader<ExchangeAccount>(DataProvider.GetExchangeMailboxes(itemId));