<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pennic Consulting</title>
	<atom:link href="http://blog.pennic.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.pennic.com</link>
	<description>Nick Cottrell&#039;s IT Blog</description>
	<lastBuildDate>Sun, 05 Sep 2010 21:14:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Of Exchange 2010, Mobile Phones, and the AdminSDHolder or Why Doesn’t My Phone Work Anymore?</title>
		<link>http://blog.pennic.com/?p=35</link>
		<comments>http://blog.pennic.com/?p=35#comments</comments>
		<pubDate>Sun, 15 Aug 2010 02:23:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Active Sync]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://blog.pennic.com/?p=35</guid>
		<description><![CDATA[If a user with a phone is (or has ever been) in a protected group, directly or transitively through group nesting, even via distribution group, their phone will not work with their mailbox on an Exchange 2010 MBX role server.]]></description>
			<content:encoded><![CDATA[<p>I seldom get time to write here but when I see the same issue come up multiple times, I try to get something on-line about it.</p>
<p>In this case it is Exchange 2010 and Active Sync phones.</p>
<p><span id="more-35"></span></p>
<p>A little background:  Exchange 2010 adds a passel of schema and security extensions.  I am not going to discuss the schema extensions here but focus on the security additions.  The security that is of interest here is all at the domain level – on the domain object.  Two new security groups are added for Exchange 2010: ‘Exchange Trusted Subsystem’ and ‘Exchange Windows Permissions’ each with 17 aces (if I count correctly).    Additional aces are also added for the ‘Exchange Servers’ group.  The important Aces here are:</p>
<ul>
<li>Allow create/delete rights for msExchangeActiveSyncDevices child objects to a user object,</li>
<li>Allow create/delete rights for msExchangeActiveSyncDevice child objects to the above msExchangeActiveSyncDevices object, and</li>
<li>Read/ write all properties of these new objects.</li>
</ul>
<p>I am not privy to why Microsoft does things but prior to Exchange 2010 there was no structure to contain ActiveSync device information other than the user account or the mailbox itself.  With the msExchangeActiveSyncDevices object acting as a container a user can now have multiple msExchangeActiveSyncDevice objects for multiple Active Sync devices.  I.e. a Phone and an iPad.  Forward thinking.  Very good Microsoft.  Oops, I said I wasn&#8217;t going to discuss schema extensions.</p>
<p>So why does any of this matter?  Here is why.  The security that allows Exchange to create, delete, and use these new objects is all inherited from the Domain object.  If it does not inherit to a user object, Exchange cannot create the new the objects.  The result is simple.  Move the user’s mailbox to an Exchange 2010 server and their phone stops syncing.</p>
<p>There can be various reasons the security is not inherited.  On one extreme, you could be in a hosted environment running some variant of Microsoft Provisioning Services (MPS).  On the other, a network admin that is no longer there was too clever by half and blocked security on OU’s for reasons no one remembers.  Whatever the case, you can allow the security to inherit and then block it again if there is good reason.  In any case, this represents a relatively permanent solution.</p>
<p>Finally to the issue I have seen multiple times already.  There is this process that lives in relative obscurity and has been running on DC’s since the NT5 Betas—the Security Descriptor Propagator (SDPROP).  It actually does the inheritance of security from parent to child objects in Active Directory.  On the PDC role holder it has an additional function &#8212; it protects the security on security principles that have elevated rights.  ‘Elevated Rights’ is defined as the user being a member of one of a list of built-in groups.  These groups are defined as ‘Protected Groups’.  Any ‘User’ that is a member of a ‘Protected Group’ has its security overwritten by the security descriptor on the AdminSDHolder object in the ‘System’ container by SDPROP and its ‘adminCount’ attribute set to ‘1’.  Since inheritance is blocked on the AdminSDHolder’s security descriptor, inheritance is also blocked on the user object.   This happens every time SDPROP runs on the PDC role holder.  By default, that is once an hour.</p>
<p>The list of Protected Groups has varied from Windows 2000 RTM till now.  The groups in 2008 R2 are:</p>
<ul>
<li>Account Operators,</li>
<li>Administrators,</li>
<li>Backup Operators,</li>
<li>Domain Admins,</li>
<li>Domain Controllers,</li>
<li>Enterprise Admins,</li>
<li>Print Operators,</li>
<li>Read-Only Domain Controllers,</li>
<li>Replicator,</li>
<li>Schema Admins, and</li>
<li>Server Operators. </li>
</ul>
<p>If a user with a phone is (or has ever been) in any of these groups, directly or transitively through group nesting, even via distribution group, their phone will not work with their mailbox on an Exchange 2010 MBX role server.</p>
<p>The solution is obvious.  Give people that need administrative rights, administrative accounts and tie their phone to a normal user account.  This is best practice anyway.</p>
<p>If you are determined to not do this, you have several options:</p>
<ul>
<li>Remove the users from the groups that are causing the issue.  This also requires you clear the ‘adminCount’ attribute in their account since SDPROP will not clear it for you.  Then enable inheritance.</li>
<li>Alter the Security on the AdminSDHolder object security descriptor by adding the new Exchange security to it. Since the aces added in Exchange 2010 are numerous, this can be a bit tedious but it will work if you get it right.  Don’t forget to maintain it in the future.<strong><em></em></strong></li>
<li>Change the behavior of SDPROP.  Only four groups were protected in Windows 2000 RTM.  As the list of Groups has expanded, Microsoft has provided a vehicle to modify the list.  This is done by setting the dsHeuristics attribute of the Directory Service object in the configuration container.  Using this attribute, you can selectively exclude Account Operators, Print Operators, Server Operators, or Backup Operators from the list of Protected Groups.  <strong><em><span style="text-decoration: underline;">Realize when you do this you are weakening the security of your forest.</span></em></strong></li>
<li>Alter the Security on the AdminSDHolder object security descriptor by allowing inheritance.  <strong><em><span style="text-decoration: underline;">Again, realize when you do this you are weakening the security of your forest.</span></em></strong></li>
</ul>
<p>Details of these options are discussed here: </p>
<p style="padding-left: 30px;"><a href="http://support.microsoft.com/kb/817433">http://support.microsoft.com/kb/817433</a></p>
<p>If you want to be proactive before you start moving mailboxes, you can search for all users in you forest that have an ‘adminCount’ of ‘1’.  Lots of ways to do this.  Here is an Ldifde example:</p>
<p style="text-align: left; padding-left: 30px;"><em>ldifde -f AdminUsers.txt -d dc=&lt;domain DN&gt;  -r &#8220;(&amp;(objectcategory=person)(objectclass=user)(admincount=1))&#8221; -l  samAccountName</em></p>
<p>Nick</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pennic.com/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The msExchQueryBaseDN Attribute Meets the Exchange Availability Service or Why Can’t I See Your Free/Busy Information?</title>
		<link>http://blog.pennic.com/?p=32</link>
		<comments>http://blog.pennic.com/?p=32#comments</comments>
		<pubDate>Sun, 15 Aug 2010 02:14:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Availability Service]]></category>
		<category><![CDATA[Exchange]]></category>
		<category><![CDATA[msExchQueryBaseDN attribute]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://blog.pennic.com/?p=32</guid>
		<description><![CDATA[I ran into a rather obscure Exchange Availability Service behavior that will be of little interest to most.  So, if you are not working at a hosting company or have never heard of the ‘msExchQueryBaseDN’ attribute, save yourself some time and skip this post.]]></description>
			<content:encoded><![CDATA[<p>I ran into a rather obscure Exchange Availability Service behavior that will be of little interest to most.  So, if you are not working at a hosting company or have never heard of the ‘msExchQueryBaseDN’ attribute, save yourself some time and skip this post.</p>
<p>The ‘msExchQueryBaseDN’ attribute is used to restrict Outlook Web Access’ (OWA) search for mail enabled objects in Active Directory (when simulating the Global Address List) &#8212; or at least that is what it was originally used for.  Rather than searching for all mail enabled objects, it will search only a portion of Active Directory.  The attribute is usually not set because most Exchange organizations have only one Global Address List – The ‘Default Global Address List’ which contains all mail enabled objects.</p>
<p>If you don’t understand why there would be more than one GAL, stop reading here. </p>
<p><span id="more-32"></span></p>
<p>Hosting companies supply services to many groups or enterprises and therefore have many GAL’s.  They set this attribute in each user account to control that users ‘view’ of other users via OWA. It is also sometime set in very large organizations when the GAL becomes very large.</p>
<p>Prior to Exchange 2007, when set, the attribute contained a Distinguished Name (DN) of an OU that was the base of the LDAP query.  In Exchange 2007, this attribute could also be set to the DN of an address list in the ‘All Address Lists Container’.  In this situation, OWA would use the Address List’s filter for the query.  This provided more flexibility in controlling the ‘experience’ of users, especially when they were in different OUs.</p>
<p>Notice that everything I have discussed here is about OWA:  Not Outlook.  Outlook accesses GAL’s based on security.  It had, to my knowledge, never been affected by this attribute.  It appears that the new ‘Availability Service’ in Exchange 2007 and 2010 does use it.</p>
<p>When an Outlook 2007 or above user wants the free/busy information for a user it asks the Availability Service on a Clint Access Server (CAS) in its site for the information.  When that user’s mailbox is on a 2007 or above Exchange server, the CAS server gets the information directly from the user’s calendar in the user’s mailbox.  If the Users mailbox is in another site, the request is proxied to a CAS in that site which gets the information from the users mailbox and passes it back to the requesting CAS and then the requesting user.  Note: the requesting user can be an OWA, Outlook Anywhere, or Outlook user. </p>
<p>Nothing controls whether the ‘msExchQueryBaseDN’ attribute for a particular user, the Global Address List for that user, or the Offline Address List (if the user is cached) for that user produce the same result.</p>
<p>So here is what happens:  User A tries to set up a meeting with User B in Outlook 2007 or above.  User B is in their GAL and is added to the meeting request’s scheduling assistant.  Outlook asks a local CAS for the User B’s free/busy information.   The CAS does not return it.  Outlook shows it as unavailable.  Why?</p>
<p>In these cases it was discovered that the ‘msExchQueryBaseDN’ attribute for User A was more restrictive than the GAL.  It did not include User B so User B’s free/busy was not returned.  Change the user’s ‘msExchQueryBaseDN’ attribute to include User B and User A retrieves it. </p>
<p>One reason for this behavior could be that, as mentioned, The Availability Service is servicing requests from multiple sources so it applies the most restrictive rules for all of them.  Another possibility is that Auto Discover is somehow involved.  If you run ‘Test E-mail Configuration’ from User A’s Outlook and put in User B as the E-mail Address being tested, it is not successful if the ‘msExchQueryBaseDN’ attribute excludes User B.  It is successful when the msExchQueryBaseDN’ attribute includes User B. </p>
<p>No matter what the reason, it is necessary make sure that the ‘msExchQueryBaseDN’ attribute is not more restrictive than a user’s GAL if you want to avoid this problem. </p>
<p>Nick</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pennic.com/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adventures Installing Exchange 2007 SP2 — Error 5506</title>
		<link>http://blog.pennic.com/?p=20</link>
		<comments>http://blog.pennic.com/?p=20#comments</comments>
		<pubDate>Mon, 08 Mar 2010 01:30:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[Exchange 2007 SP2]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://blog.pennic.com/?p=20</guid>
		<description><![CDATA[Clean up your certificates and make sure you have only one enabled for any service before you apply Exchange 2007 SP2 to avoid Error 5506.]]></description>
			<content:encoded><![CDATA[<p>When I did the installation on my first CAS server I got the following error during the CAS Role Install:</p>
<p><em>[ERROR] An unexpected error occurred while the forms-based authentication settings for path /LM/W3SVC/1 were being modified. The error returned was 5506</em></p>
<p><span id="more-20"></span></p>
<p>After a few failed attempts, I solved the problem by removing the certificate binding to 443 in IIS and restarting the install.  When the install was done, I found the original &#8216;Exchange&#8217; generated certificate bound to 443 rather than the certificate I was using.   I just bound the correct one and everything seemed to work.</p>
<p>It seems the install is trying to bind a different certificate than the one in the meta base.  The HASH doesn&#8217;t match causing the error.</p>
<p>Looking deeper, I found I had BOTH the self signed &#8216;Exchange&#8217; certificate and my current certificate enabled for IMAP and POP.  Since I do not use either IMAP or POP, I had never removed the certificate generated by the original Exchange install.  I believe that caused the confusion.</p>
<p>The lesson, check to see if multiple certificates are enabled for any CAS services and eliminate the unused ones.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pennic.com/?feed=rss2&amp;p=20</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How do I restore a deleted Exchange 2007 user? or A funny thing happened on the way to a reconnect?</title>
		<link>http://blog.pennic.com/?p=12</link>
		<comments>http://blog.pennic.com/?p=12#comments</comments>
		<pubDate>Tue, 03 Jun 2008 01:13:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[Exchange 2007]]></category>

		<guid isPermaLink="false">http://blog.pennic.com/?p=12</guid>
		<description><![CDATA[This post is the result of an experience one of my clients had.  I hope it helps other Exchange 2007 SP1 users. Here is the scenario, a loyal administrator somewhere deletes Robert Smith when they meant to delete Roberta Smith.  It could also be that someone was confused by the ‘newspeak’ in the Exchange Management [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">This post is the result of an experience one of my clients had.  I hope it helps other Exchange 2007 SP1 users.</p>
<p style="text-align: left;">Here is the scenario, a loyal administrator somewhere deletes Robert Smith when they meant to delete Roberta Smith.  It could also be that someone was confused by the ‘newspeak’ in the Exchange Management Console (EMC) and did not realize that ‘Remove’ equates to ‘Delete User’ not to ‘Remove Exchange Attributes’ under ‘Exchange Tasks…’ in the 2000/2003 Exchange extended ADUC and deleted the user object by mistake.  The conflicting terminology is another subject I will pass over here.</p>
<p style="text-align: left;">Your phone rings.  Easy right?  Just put it all back the way it was.  Well, it is a little more complicated than that.  Let’s get started…<br />
<span id="more-12"></span><br />
If you have Exchange 2007 installed with the defaults, Robert’s mailbox is safe for the moment and should remain in the exchange database for 30 days.</p>
<p style="text-align: left;">The only short term consequence it that that new mail to Robert is getting NDR’s because he no longer exists either in Exchange or Active Directory.</p>
<p style="text-align: left;">So, the first task is to get Robert back in Active Directory.  If you are running AD 2003, this is most easily accomplished using the ADRestore utility written by Mark Russinovich.  Originally a Winternals tool, it is available from Microsoft as a free since Winternals was purchased by Microsoft.</p>
<p style="text-align: left;">From a command prompt, on a DC run ADRestore to find the deleted account:</p>
<p style="text-align: left;"><strong>C:\&gt;adrestore “smith, robert”</strong></p>
<p style="text-align: left;"><em>AdRestore v1.1<br />
by Mark Russinovich<br />
Sysinternals &#8211; </em><a href="http://www.sysinternals.com/"><em>www.sysinternals.com</em></a></p>
<p style="text-align: left;"><em>Enumerating domain deleted objects:cn: Smith, Robert<br />
DEL:5f9f2273-1302-4bbc-99b9-9aa6dd2ade6d<br />
distinguishedName: CN=Smith\, Robert\0ADEL:5f9f2273-1302-4bbc-99b9-9aa6dd2ade6d,<br />
CN=Deleted Objects,DC=pennic,DC=com<br />
lastKnownParent: CN=Users,DC=pennic,DC=com<br />
Found 1 item matching search criteria.</em></p>
<p style="text-align: left;">Now that you have found the deleted account, rerun the command with the -r option and restore it:</p>
<p style="text-align: left;"><strong>C:\&gt;adrestore “smith, robert” -r</strong></p>
<p style="text-align: left;"><em>AdRestore v1.1</em><br />
<em>by Mark Russinovich<br />
Sysinternals &#8211; www.sysinternals.com</em></p>
<p style="text-align: left;"><em>Enumerating domain deleted objects:cn: Smith, Robert<br />
DEL:5f9f2273-1302-4bbc-99b9-9aa6dd2ade6d<br />
distinguishedName: CN=Smith\, Robert\0ADEL:5f9f2273-1302-4bbc-99b9-9aa6dd2ade6d,<br />
CN=Deleted Objects,DC=pennic,DC=com<br />
lastKnownParent: CN=Users,DC=pennic,DC=com</em></p>
<p style="text-align: left;"><em>Do you want to restore this object (y/n)? y</em></p>
<p style="text-align: left;"><em>Restore succeeded.</em></p>
<p style="text-align: left;"><em>Found 1 item matching search criteria.</em></p>
<p style="text-align: left;">The AD account is restored but it is not 100%.  The important thing is that the account has the same SID and GUID and all Active Directory related function that utilizes these will still work.  Three dimensions of the pre-deletion account, however, are missing and one is different:</p>
<ol style="text-align: left;">
<li>The user is no longer mail enabled or mailbox enabled. There are some artifacts in that the attributes ms-ExchMailboxGuid, legacyExchangeDN, and ms-ExchHomeServer are still set.  Nonetheless, Robert is just a normal user.</li>
<li>The user is no longer a member of any groups accept Doman Users.  AD group membership actually exists in the ‘group’ object(s).  The attribute memberOf is back populated based on those memberships.  When the account was deleted, Active directory deleted the users membership from each group. the restored user’s membersOf attribute is empty. </li>
<li> If the user had a primary group of anything other than Domain Users, that has also been lost and must be recreated after the user is added to the appropriate group.</li>
<li> The account is disabled</li>
</ol>
<p style="text-align: left;">Items 2, and 3 must be repaired manually and can be done easily with ADUC although, depending on the complexity of your environment, you may need to do some sleuthing to determine the proper group memberships.  Microsoft <a href="http://support.microsoft.com/?kbid=840001">KB840001</a> discusses the complexity involved in group membership recovery.</p>
<p style="text-align: left;">Item 4 is simple.  <strong>Enable the user before proceeding.</strong></p>
<p style="text-align: left;">Item 1 should be easy too.  That mailbox is still there.  You just need to open the EMC, browse to the Recipient Configuration container, Disconnected Mailbox item, select the correct server, refresh the screen, select Robert’s mailbox, and reconnect Optimal Results.  Oops, this is where the problem starts.  It is not there?  Why?</p>
<p style="text-align: left;">My testing indicates that as of E2K7 SP1, only users deleted ( ‘removed’ — remember that terminology stuff ) using the EMC will appear immediately in the EMC as Disconnected Mailboxes.  A user deleted in ADUC whether extended with the Exchange 2003 ESM, or native, does not appear.  Also, even a user deleted using the EMC may ‘disappear’ soon after the account is restored using ADRestore.  I can only speculate on what is going on, but a disconnected mailbox that appears in EMC has the DisconnectDate attribute set: One that does not appear does not.  The EMC must set the attribute: ADUC does not.  Also, restoring the user object previously associated with the mailbox appears to clear the attribute.</p>
<p style="text-align: left;">In any case, all the mailboxes will appear as disconnected ‘later’ — as in the next day.  The once-a-day database maintance activity will identify mailboxes that do not have a cooresponding AD account and set the DisconnectDate.</p>
<p style="text-align: left;">This process can be started manually using the ‘Clean-MailboxDatabase’ cmdlet (analagous to ‘Run Cleanup Agent’ in the 2003 ESM). If your orginization has a lot of Servers and Mailbox Databases this can take a while unless you know what database the mailbox is in.</p>
<p style="text-align: left;">So much for conjecture — if it is not exposed in the EMC and Mail to Robert is still getting NDRs.  How do you get it back?</p>
<p style="text-align: left;">There are two options:</p>
<p style="text-align: left;">First, try the easy way — if you know what database the mailbox is in, fire up the Exchange Management Shell (EMS) and enter the following:</p>
<p style="text-align: left;"><em><strong>[PS]c:\&gt;clean-mailboxdatabase &lt;Mailbox Database Name&gt;</strong></em><br />
Check the disconnected mailbox display in the EMC.  If the mailbox is esposed, use the EMC to reconnect it.  You are done.</p>
<p style="text-align: left;">If not, do the harder way — in the EMS enter the following:</p>
<p style="text-align: left;"><strong><em>[PS] C:\&gt;get-mailboxdatabase | get-mailboxstatistics  |  select  Displayname,DisconnectDate,mailboxguid,database</em></strong></p>
<p style="text-align: left;">This will give you a list of all user mailboxes with their GUIDs, and databases.  If you have 20 users this will be a useable list if you have 20,000, it will not.</p>
<p style="text-align: left;">You can pipe the output to a file:</p>
<p style="text-align: left;"><em><strong>[PS] C:\&gt;get-mailboxdatabase | get-mailboxstatistics |  select Displayname,DisconnectDate,mailboxguid ,database&gt;&gt; c:\MyOutput.txt</strong></em></p>
<p style="text-align: left;">Or filter on an attribute like display name to make it more manageable:</p>
<p style="text-align: left;"><em>[PS]c:\get-mailboxdatabase | get-mailboxstatistics  | where {$_.Displayname -eq “Smith, Robert”} | select Displayname,mailboxguid,database</em><br />
<em>DisplayName       MailboxGuid                                                 Database<br />
———–                ———-                                                       ——–<br />
Smith, Robert      b61027c3-78ac-4b12-963d-c97f3fb30ed4  gemini-mbx\SG01\MBX01</em></p>
<p style="text-align: left;">Now you have the mailboxGUID of the disconnected mailbox and you know the database it is in (note: gemini-mbx is the virtual server on my SCC cluster).  You can now do the easy option since you know the database that contains the mailbox, or you can just connect it in the EMS.</p>
<p style="text-align: left;">To reconnect it:</p>
<p style="text-align: left;"><em><strong>[PS] C:\&gt;connect-mailbox -database gemini-mbx.pennic.com\mbx01 -identity b61027c3-78ac-4b12-963d-c97f3fb30ed4 -user “Smith, Robert”</strong><br />
WARNING: The operation completed successfully but the change will not become effective until Active Directory replication occurs.</em></p>
<p style="text-align: left;">(Note: you must be specific enough to uniquely qualify the mailbox database. If all the databases were mbx01 then I would need to include the storage group.  Just one case, among many, for naming all mailbox databases in your organization uniquely.)</p>
<p style="text-align: left;">And you are done!</p>
<p style="text-align: left;">The reconnect mailbox-enabled the user account.  RUS will re-stamp the email addresses from email policy.</p>
<p style="text-align: left;">Wait for replication in AD and the mailbox should be useable.</p>
<p style="text-align: left;">Don’t forget, you still need to fix those group memberships.  </p>
<p style="text-align: left;">Then you can sit back and wait for that phone to ring again.  It won’t be long, you are an Exchange Administrator.</p>
<p style="text-align: left;">Nick</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pennic.com/?feed=rss2&amp;p=12</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to redirect an HTTP connection to HTTPS for OWA — the easy way.</title>
		<link>http://blog.pennic.com/?p=9</link>
		<comments>http://blog.pennic.com/?p=9#comments</comments>
		<pubDate>Tue, 03 Jun 2008 01:01:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Exchange]]></category>

		<guid isPermaLink="false">http://blog.pennic.com/?p=9</guid>
		<description><![CDATA[It is best practice to require users to use a secure connection for OWA.  It is impractical to ‘train’ then to type a specific URL such as https://owa.myorg.com/exchange. But, if you configure your OWA site to require SSL, when they type http://owa.myorg.com or just owa.myorg.com (which will default to http) they will not connect successfully. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">It is best practice to require users to use a secure connection for OWA.  It is impractical to ‘train’ then to type a specific URL such as <a href="https://owa.myorg.com/exchange">https://owa.myorg.com/exchange</a>.</p>
<p style="text-align: left;">But, if you configure your OWA site to require SSL, when they type <a href="http://owa.myorg.com/">http://owa.myorg.com</a> or just owa.myorg.com (which will default to http) they will not connect successfully.</p>
<p style="text-align: left;">So, how to allow them to use the lowest common denominator of owa.myorg.com but still connect them SSL?<br />
<span id="more-9"></span><br />
Microsoft has a couple of KB articles describing method(s) that accomplish this by using a custom Active Server Page and in one case modified security: KB555053 and KB839357. They will both work but seem like overkill to solve a simple problem.</p>
<p style="text-align: left;">I have been accomplishing this for a number of clients over a number of years using the simple technique described here.  It does not change the OWA site.  It works for all versions of Exchange.  It works for IIS 5, and 6, and should work for IIS 4 and 7.  It works in an NLBWLB environment.  It is compatible with Default Web Site applications other than Exchange installed.</p>
<p style="text-align: left;">Here how it would work for Exchange 2003 and IIS 6…</p>
<p style="text-align: left;">Log on as an administrator and open the IIS management snapin on the OWA server.</p>
<p style="text-align: left;">Create a new site:</p>
<p style="text-align: left;">Right click on the Web Sites node and select New&gt;Web Site…  When the Wizard opens select Next and give the new site a name such as ‘OWA Redirect’.  Select Next and enter a host header that reflects your OWA URL such as owa.myorg.com.  Select Next again and enter a path.  Any path will do, we are going to change this in a moment.  I just enter ‘c:’, leave the ‘Allow anonymous access to this site’ box checked and select Next twice and select Finish.</p>
<p style="text-align: left;">Modify the site:</p>
<p style="text-align: left;">Right Click on the newly created site and select ‘Properties’.  Select the ‘Home Directory’ tab.  Change ‘The content for this resource should come from:’ to ‘A redirection to a URL’.  In the ‘Redirect to:’ box enter the same the same host header you used above preceded by ‘https://’ and followed by ‘/exchange’.  For example:  <a href="https://owa.myorg.com/exchange">https://owa.myorg.com/exchange</a>.  Check the boxes ‘The exact URL entered above’ and ‘A permanent redirection for this resource’.  Select Apply and OK to exit.  Restart IIS.</p>
<p style="text-align: left;">If you now open a browser and connect with just owa.myorg.com, the host header will take you to the redirect site you just created which will in turn send you to <a href="https://owa.myorg.com/exchange">https://owa.myorg.com/exchange</a>.  Since it is SSL (port 443) the host header is not applicable, you will connect to the Default Web Site and be prompted to log in.</p>
<p style="text-align: left;">Simple.</p>
<p style="text-align: left;">If you have more than one OWA server you will obviously need to repeat this process on each of them.</p>
<p style="text-align: left;">Don’t forget to lock down the Default Web Site containing OWA per Microsoft’s recommendations and always use Forms Authentication where it is an option.  This technique only makes it easier on the user (and hopefully you), it does not secure OWA.</p>
<p style="text-align: left;">I have yet to use this technique with an IIS 7 CAS server (installed on Server 2008) but it works for Exchange 2007 installed on 2003 and IIS 6.  I have also never used it for IIS 4.</p>
<p style="text-align: left;">Whenever I think something simple will work and Microsoft recommends something more complex, I think I must be missing something.</p>
<p style="text-align: left;">Maybe I am.  </p>
<p style="text-align: left;">If anyone can find an issue with this technique, please leave a comment.</p>
<p style="text-align: left;">Nick</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pennic.com/?feed=rss2&amp;p=9</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
