Litigation hold partial check in
This commit is contained in:
parent
cf547da56e
commit
57483fbf7f
5 changed files with 200 additions and 3 deletions
|
@ -98,6 +98,10 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
DateTime lastLogon;
|
DateTime lastLogon;
|
||||||
DateTime lastLogoff;
|
DateTime lastLogoff;
|
||||||
|
|
||||||
|
bool enableLitigationHold;
|
||||||
|
long recoverabelItemsSpace;
|
||||||
|
long recoverabelItemsWarning;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public string DisplayName
|
public string DisplayName
|
||||||
|
@ -399,5 +403,26 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
get { return fullAccessAccounts; }
|
get { return fullAccessAccounts; }
|
||||||
set { fullAccessAccounts = value; }
|
set { fullAccessAccounts = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool EnableLitigationHold
|
||||||
|
{
|
||||||
|
get { return enableLitigationHold; }
|
||||||
|
set { enableLitigationHold = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public long RecoverabelItemsSpace
|
||||||
|
{
|
||||||
|
get { return this.recoverabelItemsSpace; }
|
||||||
|
set { this.recoverabelItemsSpace = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public long RecoverabelItemsWarning
|
||||||
|
{
|
||||||
|
get { return this.recoverabelItemsWarning; }
|
||||||
|
set { this.recoverabelItemsWarning = value; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1934,6 +1934,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
else
|
else
|
||||||
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
||||||
|
|
||||||
|
if (enabledLitigationHold)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", true);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
|
@ -2276,6 +2284,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("Identity", accountName);
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
cmd.Parameters.Add("CustomAttribute2", (disabled ? "disabled" : null));
|
cmd.Parameters.Add("CustomAttribute2", (disabled ? "disabled" : null));
|
||||||
|
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2420,6 +2430,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
info.KeepDeletedItemsDays =
|
info.KeepDeletedItemsDays =
|
||||||
ConvertEnhancedTimeSpanToDays((EnhancedTimeSpan)GetPSObjectProperty(mailbox, "RetainDeletedItemsFor"));
|
ConvertEnhancedTimeSpanToDays((EnhancedTimeSpan)GetPSObjectProperty(mailbox, "RetainDeletedItemsFor"));
|
||||||
|
|
||||||
|
info.EnableLitigationHold = (bool)GetPSObjectProperty(mailbox, "LitigationHoldEnabled");
|
||||||
|
|
||||||
|
info.RecoverabelItemsSpace =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsQuota"));
|
||||||
|
info.RecoverabelItemsWarning =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsWarningQuota"));
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
Command cmd = new Command("Get-CASMailbox");
|
Command cmd = new Command("Get-CASMailbox");
|
||||||
cmd.Parameters.Add("Identity", accountName);
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
@ -2492,6 +2509,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
||||||
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
||||||
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
||||||
|
|
||||||
|
if (enabledLitigationHold)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", true);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
|
|
|
@ -2339,7 +2339,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeLog.LogEnd("SetMailboxMailFlowSettingsInternal");
|
ExchangeLog.LogEnd("SetMailboxMailFlowSettingsInternal");
|
||||||
}
|
}
|
||||||
|
|
||||||
private ExchangeMailbox GetMailboxAdvancedSettingsInternal(string accountName)
|
internal virtual ExchangeMailbox GetMailboxAdvancedSettingsInternal(string accountName)
|
||||||
{
|
{
|
||||||
ExchangeLog.LogStart("GetMailboxAdvancedSettingsInternal");
|
ExchangeLog.LogStart("GetMailboxAdvancedSettingsInternal");
|
||||||
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
||||||
|
@ -2412,7 +2412,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetMailboxAdvancedSettingsInternal(string organizationId, string accountName, bool enablePOP, bool enableIMAP,
|
internal virtual void SetMailboxAdvancedSettingsInternal(string organizationId, string accountName, bool enablePOP, bool enableIMAP,
|
||||||
bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB,
|
bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB,
|
||||||
long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB,
|
long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB,
|
||||||
int maxReceiveMessageSizeKB, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
int maxReceiveMessageSizeKB, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
|
@ -2435,6 +2435,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
||||||
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
||||||
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
|
@ -2866,7 +2867,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Collection<PSObject> GetMailboxObject(Runspace runSpace, string id)
|
virtual internal Collection<PSObject> GetMailboxObject(Runspace runSpace, string id)
|
||||||
{
|
{
|
||||||
Command cmd = new Command("Get-Mailbox");
|
Command cmd = new Command("Get-Mailbox");
|
||||||
cmd.Parameters.Add("Identity", id);
|
cmd.Parameters.Add("Identity", id);
|
||||||
|
|
|
@ -77,6 +77,144 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeLog.LogEnd("SetCalendarSettings");
|
ExchangeLog.LogEnd("SetCalendarSettings");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
internal override ExchangeMailbox GetMailboxAdvancedSettingsInternal(string accountName)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("GetMailboxAdvancedSettingsInternal");
|
||||||
|
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
||||||
|
|
||||||
|
ExchangeMailbox info = new ExchangeMailbox();
|
||||||
|
info.AccountName = accountName;
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
Collection<PSObject> result = GetMailboxObject(runSpace, accountName);
|
||||||
|
PSObject mailbox = result[0];
|
||||||
|
|
||||||
|
info.IssueWarningKB =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "IssueWarningQuota"));
|
||||||
|
info.ProhibitSendKB =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "ProhibitSendQuota"));
|
||||||
|
info.ProhibitSendReceiveKB =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "ProhibitSendReceiveQuota"));
|
||||||
|
info.KeepDeletedItemsDays =
|
||||||
|
ConvertEnhancedTimeSpanToDays((EnhancedTimeSpan)GetPSObjectProperty(mailbox, "RetainDeletedItemsFor"));
|
||||||
|
|
||||||
|
info.EnableLitigationHold = (bool)GetPSObjectProperty(mailbox, "LitigationHoldEnabled");
|
||||||
|
|
||||||
|
info.RecoverabelItemsSpace =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsQuota"));
|
||||||
|
info.RecoverabelItemsWarning =
|
||||||
|
ConvertUnlimitedToKB((Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(mailbox, "RecoverableItemsWarningQuota"));
|
||||||
|
|
||||||
|
|
||||||
|
//Client Access
|
||||||
|
Command cmd = new Command("Get-CASMailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
mailbox = result[0];
|
||||||
|
|
||||||
|
info.EnableActiveSync = (bool)GetPSObjectProperty(mailbox, "ActiveSyncEnabled");
|
||||||
|
info.EnableOWA = (bool)GetPSObjectProperty(mailbox, "OWAEnabled");
|
||||||
|
info.EnableMAPI = (bool)GetPSObjectProperty(mailbox, "MAPIEnabled");
|
||||||
|
info.EnablePOP = (bool)GetPSObjectProperty(mailbox, "PopEnabled");
|
||||||
|
info.EnableIMAP = (bool)GetPSObjectProperty(mailbox, "ImapEnabled");
|
||||||
|
|
||||||
|
//Statistics
|
||||||
|
cmd = new Command("Get-MailboxStatistics");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
if (result.Count > 0)
|
||||||
|
{
|
||||||
|
PSObject statistics = result[0];
|
||||||
|
Unlimited<ByteQuantifiedSize> totalItemSize =
|
||||||
|
(Unlimited<ByteQuantifiedSize>)GetPSObjectProperty(statistics, "TotalItemSize");
|
||||||
|
info.TotalSizeMB = ConvertUnlimitedToMB(totalItemSize);
|
||||||
|
uint? itemCount = (uint?)GetPSObjectProperty(statistics, "ItemCount");
|
||||||
|
info.TotalItems = ConvertNullableToInt32(itemCount);
|
||||||
|
DateTime? lastLogoffTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogoffTime"); ;
|
||||||
|
DateTime? lastLogonTime = (DateTime?)GetPSObjectProperty(statistics, "LastLogonTime"); ;
|
||||||
|
info.LastLogoff = ConvertNullableToDateTime(lastLogoffTime);
|
||||||
|
info.LastLogon = ConvertNullableToDateTime(lastLogonTime);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
info.TotalSizeMB = 0;
|
||||||
|
info.TotalItems = 0;
|
||||||
|
info.LastLogoff = DateTime.MinValue;
|
||||||
|
info.LastLogon = DateTime.MinValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//domain
|
||||||
|
info.Domain = GetNETBIOSDomainName();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("GetMailboxAdvancedSettingsInternal");
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
internal override void SetMailboxAdvancedSettingsInternal(string organizationId, string accountName, bool enablePOP, bool enableIMAP,
|
||||||
|
bool enableOWA, bool enableMAPI, bool enableActiveSync, long issueWarningKB, long prohibitSendKB,
|
||||||
|
long prohibitSendReceiveKB, int keepDeletedItemsDays, int maxRecipients, int maxSendMessageSizeKB,
|
||||||
|
int maxReceiveMessageSizeKB, bool enabledLitigationHold, long recoverabelItemsSpace, long recoverabelItemsWarning)
|
||||||
|
{
|
||||||
|
ExchangeLog.LogStart("SetMailboxAdvancedSettingsInternal");
|
||||||
|
ExchangeLog.DebugInfo("Account: {0}", accountName);
|
||||||
|
|
||||||
|
Runspace runSpace = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
runSpace = OpenRunspace();
|
||||||
|
|
||||||
|
|
||||||
|
Command cmd = new Command("Set-Mailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendQuota", ConvertKBToUnlimited(prohibitSendKB));
|
||||||
|
cmd.Parameters.Add("ProhibitSendReceiveQuota", ConvertKBToUnlimited(prohibitSendReceiveKB));
|
||||||
|
cmd.Parameters.Add("RetainDeletedItemsFor", ConvertDaysToEnhancedTimeSpan(keepDeletedItemsDays));
|
||||||
|
cmd.Parameters.Add("RecipientLimits", ConvertInt32ToUnlimited(maxRecipients));
|
||||||
|
cmd.Parameters.Add("MaxSendSize", ConvertKBToUnlimited(maxSendMessageSizeKB));
|
||||||
|
cmd.Parameters.Add("MaxReceiveSize", ConvertKBToUnlimited(maxReceiveMessageSizeKB));
|
||||||
|
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", enabledLitigationHold);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
//Client Access
|
||||||
|
cmd = new Command("Set-CASMailbox");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
cmd.Parameters.Add("ActiveSyncEnabled", enableActiveSync);
|
||||||
|
if (enableActiveSync)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("ActiveSyncMailboxPolicy", organizationId);
|
||||||
|
}
|
||||||
|
cmd.Parameters.Add("OWAEnabled", enableOWA);
|
||||||
|
cmd.Parameters.Add("MAPIEnabled", enableMAPI);
|
||||||
|
cmd.Parameters.Add("PopEnabled", enablePOP);
|
||||||
|
cmd.Parameters.Add("ImapEnabled", enableIMAP);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
|
||||||
|
CloseRunspace(runSpace);
|
||||||
|
}
|
||||||
|
ExchangeLog.LogEnd("SetMailboxAdvancedSettingsInternal");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Distribution Lists
|
#region Distribution Lists
|
||||||
|
|
|
@ -414,6 +414,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
else
|
else
|
||||||
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
cmd.Parameters.Add("HiddenFromAddressListsEnabled", hideFromAddressBook);
|
||||||
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
cmd.Parameters.Add("AddressBookPolicy", addressBookPolicy);
|
||||||
|
|
||||||
|
if (enabledLitigationHold)
|
||||||
|
{
|
||||||
|
cmd.Parameters.Add("LitigationHoldEnabled", true);
|
||||||
|
cmd.Parameters.Add("RecoverableItemsQuota", ConvertKBToUnlimited(recoverabelItemsSpace));
|
||||||
|
cmd.Parameters.Add("RecoverableItemsWarningQuota", ConvertKBToUnlimited(recoverabelItemsWarning));
|
||||||
|
}
|
||||||
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//Client Access
|
//Client Access
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue