Updated ABP Code to check Exchange Version for SP2 and App Setting

This commit is contained in:
omara 2012-01-11 20:58:13 -05:00
parent 2a5b26ba1c
commit 1ca6c02fd1
3 changed files with 68 additions and 35 deletions

View file

@ -67,6 +67,7 @@ namespace WebsitePanel.Providers.HostedSolution
#region Constants #region Constants
private const string CONFIG_CLEAR_QUERYBASEDN = "WebsitePanel.Exchange.ClearQueryBaseDN"; private const string CONFIG_CLEAR_QUERYBASEDN = "WebsitePanel.Exchange.ClearQueryBaseDN";
private const string CONFIG_ENABLESP2ABP = "WebsitePanel.Exchange.enableSP2abp";
#endregion #endregion
#region Properties #region Properties
@ -841,11 +842,19 @@ namespace WebsitePanel.Providers.HostedSolution
info.OfflineAddressBook = oabId; info.OfflineAddressBook = oabId;
//create ABP //create ABP
string abpId = CreateAddressPolicy(runSpace, organizationId);
transaction.RegisterNewAddressPolicy(abpId);
ExchangeLog.LogInfo(" Address Policy: {0}", abpId);
} bool enableSP2abp = false;
if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null)
enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]);
Version exchangeVersion = GetExchangeVersion();
if (enableSP2abp && (exchangeVersion >= new Version(14, 2)))
{
string abpId = CreateAddressPolicy(runSpace, organizationId);
transaction.RegisterNewAddressPolicy(abpId);
ExchangeLog.LogInfo(" Address Policy: {0}", abpId);
}
}
catch (Exception ex) catch (Exception ex)
{ {
ExchangeLog.LogError("CreateOrganizationOfflineAddressBookInternal", ex); ExchangeLog.LogError("CreateOrganizationOfflineAddressBookInternal", ex);
@ -930,16 +939,27 @@ namespace WebsitePanel.Providers.HostedSolution
//delete ABP //delete ABP
string adpstring = GetAddressPolicyName(organizationId); bool enableSP2abp = false;
try if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null)
enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]);
Version exchangeVersion = GetExchangeVersion();
if (enableSP2abp && (exchangeVersion >= new Version(14, 2)))
{ {
if (!string.IsNullOrEmpty(adpstring))
DeleteAddressPolicy(runSpace, adpstring);
} string adpstring = GetAddressPolicyName(organizationId);
catch (Exception ex)
{ try
ret = false; {
ExchangeLog.LogError("Could not delete Address Policy " + globalAddressList, ex); if (!string.IsNullOrEmpty(adpstring))
DeleteAddressPolicy(runSpace, adpstring);
}
catch (Exception ex)
{
ret = false;
ExchangeLog.LogError("Could not delete Address Policy " + globalAddressList, ex);
}
} }
//delete OAB //delete OAB
@ -1770,6 +1790,7 @@ namespace WebsitePanel.Providers.HostedSolution
int attempts = 0; int attempts = 0;
string id = null; string id = null;
Version exchangeVersion = GetExchangeVersion();
try try
@ -1828,7 +1849,13 @@ namespace WebsitePanel.Providers.HostedSolution
cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress); cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress);
cmd.Parameters.Add("PrimarySmtpAddress", upn); cmd.Parameters.Add("PrimarySmtpAddress", upn);
cmd.Parameters.Add("WindowsEmailAddress", upn); cmd.Parameters.Add("WindowsEmailAddress", upn);
cmd.Parameters.Add("AddressBookPolicy", adpstring);
bool enableSP2abp = false;
if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null)
enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]);
if (enableSP2abp && (exchangeVersion >= new Version(14, 2)))
cmd.Parameters.Add("AddressBookPolicy", adpstring);
cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false)); cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false));
cmd.Parameters.Add("UseDatabaseRetentionDefaults", false); cmd.Parameters.Add("UseDatabaseRetentionDefaults", false);
cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB)); cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB));
@ -1849,7 +1876,6 @@ namespace WebsitePanel.Providers.HostedSolution
bool clearQueryBaseDN = false; bool clearQueryBaseDN = false;
if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null) if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null)
clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]); clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]);
Version exchangeVersion = GetExchangeVersion();
if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1)))) if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1))))
SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN); SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN);
@ -1910,6 +1936,8 @@ namespace WebsitePanel.Providers.HostedSolution
ExchangeTransaction transaction = StartTransaction(); ExchangeTransaction transaction = StartTransaction();
Runspace runSpace = null; Runspace runSpace = null;
Version exchangeVersion = GetExchangeVersion();
try try
{ {
runSpace = OpenRunspace(); runSpace = OpenRunspace();
@ -1952,7 +1980,13 @@ namespace WebsitePanel.Providers.HostedSolution
cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress); cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress);
cmd.Parameters.Add("PrimarySmtpAddress", upn); cmd.Parameters.Add("PrimarySmtpAddress", upn);
cmd.Parameters.Add("WindowsEmailAddress", upn); cmd.Parameters.Add("WindowsEmailAddress", upn);
cmd.Parameters.Add("AddressBookPolicy", adpstring);
bool enableSP2abp = false;
if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null)
enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]);
if (enableSP2abp && (exchangeVersion >= new Version(14, 2)))
cmd.Parameters.Add("AddressBookPolicy", adpstring);
cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false)); cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false));
cmd.Parameters.Add("UseDatabaseRetentionDefaults", false); cmd.Parameters.Add("UseDatabaseRetentionDefaults", false);
cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB)); cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB));
@ -1970,7 +2004,6 @@ namespace WebsitePanel.Providers.HostedSolution
bool clearQueryBaseDN = false; bool clearQueryBaseDN = false;
if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null) if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null)
clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]); clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]);
Version exchangeVersion = GetExchangeVersion();
if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1)))) if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1))))
SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN); SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN);

View file

@ -15,7 +15,7 @@
<OldToolsVersion>3.5</OldToolsVersion> <OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation> <UpgradeBackupLocation>
</UpgradeBackupLocation> </UpgradeBackupLocation>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl> <PublishUrl>publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Disk</InstallFrom>
@ -80,31 +80,31 @@
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Common.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Common.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Data, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Data, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Data.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Data.Directory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Data.Directory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Directory.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Data.Directory.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Data.Storage, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Data.Storage, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Storage.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Data.Storage.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Diagnostics, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Diagnostics, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Diagnostics.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Diagnostics.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Extensibility.Internal, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Extensibility.Internal, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Extensibility.Internal.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Extensibility.Internal.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Exchange.Net, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Exchange.Net, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Net.dll</HintPath> <HintPath>..\..\Bin\Microsoft.Exchange.Net.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.SharePoint"> <Reference Include="Microsoft.SharePoint">
<HintPath>..\..\Lib\References\Microsoft\Microsoft.SharePoint.dll</HintPath> <HintPath>..\..\Lib\References\Microsoft\Microsoft.SharePoint.dll</HintPath>
@ -123,6 +123,14 @@
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Web.Services" /> <Reference Include="System.Web.Services" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="WebsitePanel.Providers.Base, Version=1.2.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\bin\WebsitePanel.Providers.Base.dll</HintPath>
</Reference>
<Reference Include="WebsitePanel.Server.Utils, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\bin\WebsitePanel.Server.Utils.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\VersionInfo.cs"> <Compile Include="..\VersionInfo.cs">
@ -145,16 +153,6 @@
<Compile Include="OrganizationProvider.cs" /> <Compile Include="OrganizationProvider.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WebsitePanel.Providers.Base\WebsitePanel.Providers.Base.csproj">
<Project>{684C932A-6C75-46AC-A327-F3689D89EB42}</Project>
<Name>WebsitePanel.Providers.Base</Name>
</ProjectReference>
<ProjectReference Include="..\WebsitePanel.Server.Utils\WebsitePanel.Server.Utils.csproj">
<Project>{E91E52F3-9555-4D00-B577-2B1DBDD87CA7}</Project>
<Name>WebsitePanel.Server.Utils</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<WebReferences Include="Web References\" /> <WebReferences Include="Web References\" />
</ItemGroup> </ItemGroup>

View file

@ -8,6 +8,8 @@
</configSections> </configSections>
<appSettings> <appSettings>
<add key="WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag" value="false"/> <add key="WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag" value="false"/>
<add key="WebsitePanel.Exchange.ClearQueryBaseDN" value="false" />
<add key="WebsitePanel.Exchange.enableSP2abp" value="false" />
<add key="SCVMMServerName" value=""/> <add key="SCVMMServerName" value=""/>
<add key="SCVMMServerPort" value=""/> <add key="SCVMMServerPort" value=""/>
</appSettings> </appSettings>