diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs index 02dead74..28e536b7 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution.Exchange2013/Exchange2013.cs @@ -4479,7 +4479,7 @@ namespace WebsitePanel.Providers.HostedSolution { ExchangeLog.LogStart("CheckOrganizationPublicFolderMailbox"); - Collection result = GetPublicFolderMailbox(runSpace, orgCanonicalName, GetPublicFolderMailboxName(organizationId)); + Collection result = GetPublicFolderMailbox(runSpace, orgCanonicalName, GetPublicFolderMailboxName(organizationId), true); if (result == null || result.Count == 0) { ExchangeTransaction transaction = StartTransaction(); @@ -4501,7 +4501,7 @@ namespace WebsitePanel.Providers.HostedSolution { ExchangeLog.LogStart("CheckOrganizationRootFolder"); - Collection result = GetPublicFolderObject(runSpace, orgCanonicalName+"/"+GetPublicFolderMailboxName(organizationId), "\\" + folder); + Collection result = GetPublicFolderObject(runSpace, orgCanonicalName+"/"+GetPublicFolderMailboxName(organizationId), "\\" + folder, true); if (result == null || result.Count == 0) { ExchangeTransaction transaction = StartTransaction(); @@ -4617,22 +4617,22 @@ namespace WebsitePanel.Providers.HostedSolution ExchangeLog.LogEnd("DeletePublicFolderInternal"); } - private Collection GetPublicFolderObject(Runspace runSpace, string mailbox, string id) + private Collection GetPublicFolderObject(Runspace runSpace, string mailbox, string id, bool checkExist = false) { Command cmd = new Command("Get-PublicFolder"); cmd.Parameters.Add("Identity", id); //cmd.Parameters.Add("Mailbox", mailbox); - Collection result = ExecuteShellCommand(runSpace, cmd); + Collection result = ExecuteShellCommand(runSpace, cmd, true, !checkExist); return result; } - private Collection GetPublicFolderMailbox(Runspace runSpace, string organizationDistinguishedName, string name) + private Collection GetPublicFolderMailbox(Runspace runSpace, string organizationDistinguishedName, string name, bool checkExist) { Command cmd = new Command("Get-Mailbox"); cmd.Parameters.Add("Identity", name); cmd.Parameters.Add("PublicFolder"); cmd.Parameters.Add("OrganizationalUnit", organizationDistinguishedName); - Collection result = ExecuteShellCommand(runSpace, cmd); + Collection result = ExecuteShellCommand(runSpace, cmd, true, !checkExist); return result; } @@ -5369,7 +5369,7 @@ namespace WebsitePanel.Providers.HostedSolution string resultObjectDN = null; Command cmd = new Command("Get-AddressList"); cmd.Parameters.Add("Identity", id); - Collection result = this.ExecuteShellCommand(runSpace, cmd); + Collection result = this.ExecuteShellCommand(runSpace, cmd, true, false); if ((result != null) && (result.Count > 0)) { resultObjectDN = this.GetResultObjectDN(result); @@ -6242,13 +6242,19 @@ namespace WebsitePanel.Providers.HostedSolution internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd) { - return ExecuteShellCommand(runSpace, cmd, true); + return ExecuteShellCommand(runSpace, cmd, true, true); } internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, bool useDomainController) { object[] errors; - return ExecuteShellCommand(runSpace, cmd, useDomainController, out errors); + return ExecuteShellCommand(runSpace, cmd, useDomainController, out errors, true); + } + + internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, bool useDomainController, bool writeErrorExchangeLog) + { + object[] errors; + return ExecuteShellCommand(runSpace, cmd, useDomainController, out errors, writeErrorExchangeLog); } internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, ResultObject res) @@ -6272,10 +6278,10 @@ namespace WebsitePanel.Providers.HostedSolution internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, out object[] errors) { - return ExecuteShellCommand(runSpace, cmd, true, out errors); + return ExecuteShellCommand(runSpace, cmd, true, out errors, true); } - internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, bool useDomainController, out object[] errors) + internal Collection ExecuteShellCommand(Runspace runSpace, Command cmd, bool useDomainController, out object[] errors, bool writeErrorExchangeLog) { ExchangeLog.LogStart("ExecuteShellCommand"); List errorList = new List(); @@ -6309,8 +6315,12 @@ namespace WebsitePanel.Providers.HostedSolution foreach (object item in pipeLine.Error.ReadToEnd()) { errorList.Add(item); - string errorMessage = string.Format("Invoke error: {0}", item); - ExchangeLog.LogWarning(errorMessage); + + if (writeErrorExchangeLog) + { + string errorMessage = string.Format("Invoke error: {0}", item); + ExchangeLog.LogWarning(errorMessage); + } } } }