Added: Auto Distribution of New Mailboxes in Exchange (item #168)

This commit is contained in:
feodor_fitsner 2012-03-07 15:05:50 -08:00
parent d1708e267f
commit e903cc6273
2 changed files with 25 additions and 20 deletions

View file

@ -809,7 +809,7 @@ namespace WebsitePanel.Providers.HostedSolution
if (result.Count > 0) if (result.Count > 0)
{ {
virtualDir = ObjToString(GetPSObjectProperty(result[0], "Identity")); virtualDir = ObjToString(GetPSObjectProperty(result[0], "Identity"));
} }
} }
finally finally
@ -1827,7 +1827,8 @@ namespace WebsitePanel.Providers.HostedSolution
cmd = new Command("Enable-Mailbox"); cmd = new Command("Enable-Mailbox");
cmd.Parameters.Add("Identity", upn); cmd.Parameters.Add("Identity", upn);
cmd.Parameters.Add("Alias", accountName); cmd.Parameters.Add("Alias", accountName);
cmd.Parameters.Add("Database", mailboxDatabase); if (!(mailboxDatabase == "*" && exchangeVersion >= new Version(14, 0)))
cmd.Parameters.Add("Database", mailboxDatabase);
if (accountType == ExchangeAccountType.Equipment) if (accountType == ExchangeAccountType.Equipment)
cmd.Parameters.Add("Equipment"); cmd.Parameters.Add("Equipment");
else if (accountType == ExchangeAccountType.Room) else if (accountType == ExchangeAccountType.Room)
@ -1976,7 +1977,8 @@ namespace WebsitePanel.Providers.HostedSolution
cmd.Parameters.Add("DisplayName", displayName); cmd.Parameters.Add("DisplayName", displayName);
cmd.Parameters.Add("Password", securePassword); cmd.Parameters.Add("Password", securePassword);
cmd.Parameters.Add("ResetPasswordOnNextLogon", false); cmd.Parameters.Add("ResetPasswordOnNextLogon", false);
cmd.Parameters.Add("Database", mailboxDatabase); if (!(mailboxDatabase == "*" && exchangeVersion >= new Version(14, 0)))
cmd.Parameters.Add("Database", mailboxDatabase);
if (accountType == ExchangeAccountType.Equipment) if (accountType == ExchangeAccountType.Equipment)
cmd.Parameters.Add("Equipment"); cmd.Parameters.Add("Equipment");
else if (accountType == ExchangeAccountType.Room) else if (accountType == ExchangeAccountType.Room)
@ -5007,13 +5009,10 @@ namespace WebsitePanel.Providers.HostedSolution
cmd.Parameters.Add("AddressLists", addressListName); cmd.Parameters.Add("AddressLists", addressListName);
cmd.Parameters.Add("PublicFolderDistributionEnabled", true); cmd.Parameters.Add("PublicFolderDistributionEnabled", true);
cmd.Parameters.Add("IsDefault", false); cmd.Parameters.Add("IsDefault", false);
if (!string.IsNullOrEmpty(oabVirtualDirs))
//TODO: fix web distribution
/*if (!string.IsNullOrEmpty(oabVirtualDir))
{ {
cmd.Parameters.Add("VirtualDirectories", oabVirtualDirs); cmd.Parameters.Add("VirtualDirectories", oabVirtualDirs);
}*/ }
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd); Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
string id = GetResultObjectDN(result); string id = GetResultObjectDN(result);

View file

@ -202,18 +202,24 @@ namespace WebsitePanel.Providers.HostedSolution
{ {
ExchangeLog.LogStart("CreateMailboxDatabase"); ExchangeLog.LogStart("CreateMailboxDatabase");
string id; string id;
Command cmd = new Command("Get-MailboxDatabase"); if (name != "*")
cmd.Parameters.Add("Identity", name); {
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd); Command cmd = new Command("Get-MailboxDatabase");
if (result != null && result.Count > 0) cmd.Parameters.Add("Identity", name);
{ Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
id = GetResultObjectIdentity(result); if (result != null && result.Count > 0)
} {
else id = GetResultObjectIdentity(result);
{ }
throw new Exception(string.Format("Mailbox database {0} not found", name)); else
} {
throw new Exception(string.Format("Mailbox database {0} not found", name));
}
}
else
{
id = "*";
}
ExchangeLog.LogEnd("CreateMailboxDatabase"); ExchangeLog.LogEnd("CreateMailboxDatabase");
return id; return id;
} }