<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Miguel Ortiz</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/miguelo/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/miguelo/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:47:20 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Language Pack error when recovering or installing Exchange 2013</title>
      <link>https://docs.microsoft.com/archive/blogs/miguelo/language-pack-error-when-recovering-or-installing-exchange-2013</link>
      <pubDate>Fri, 06 Feb 2015 10:05:49 GMT</pubDate>
      <dc:creator><![CDATA[Miguel Ortiz (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/miguelo/2015/02/06/language-pack-error-when-recovering-or-installing-exchange-2013/</guid>
      <description><![CDATA[The other day one of&nbsp; my virtual machines became corrupted, and it happened to be an Exchange...]]></description>
      <content:encoded><![CDATA[<p>The other day one of&nbsp; my virtual machines became corrupted, and it happened to be an Exchange 2013 server with CU7. The domain controllers were still intact and operating correctly. The only server that was having an issue was the Exchange server, so this was a good opportunity to run the recovery switch and restore&nbsp;all its previous configuration.&nbsp;The virtual&nbsp;machine was in a failed state and it was not booting, so I&nbsp;created a new one. The new&nbsp;virtual machine&nbsp;had&nbsp;Windows 2012 R2&nbsp;OS installed&nbsp;with the latest updates. After joining the new server to the domain and installing all the prerequisites it was&nbsp;time to recover the Exchange server.&nbsp; I started by opening the command prompt in Administrator mode, navigating to where the Exchange media files&nbsp;were located, then ran &quot;Setup /m:RecoverServer /IAcceptExchangeServerLicenseTerms&quot; . Everything was going fine until it reached the &quot;Prerequisite Analysis&quot;, then the server&nbsp;encountered an error about corrupted language pack.&nbsp; More details about the error displayed in the console below:</p>
<p>G:\Exchange&gt;Setup /m:RecoverServer /IAcceptExchangeServerLicenseTerms&nbsp;</p>
<p>Welcome to Microsoft Exchange Server 2013 Cumulative Update 7 Unattended Setup</p>
<p>Copying Files...</p>
<p>File copy complete. Setup will now collect additional information needed for</p>
<p>installation.</p>
<p>Languages</p>
<p>Mailbox role: Transport service</p>
<p>Mailbox role: Client Access service</p>
<p>Mailbox role: Unified Messaging service</p>
<p>Mailbox role: Mailbox service</p>
<p>Management tools</p>
<p>Client Access role: Client Access Front End service</p>
<p>Client Access role: Front End Transport service</p>
<p>Performing Microsoft Exchange Server Prerequisite Check</p>
<p>&nbsp;&nbsp;&nbsp; Configuring Prerequisites&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COMPLETED</p>
<p>&nbsp;&nbsp;&nbsp; <span style="background-color:#ffff00;">Prerequisite Analysis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAILED</span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; The language pack bundle could not be found or is corrupt.</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; For more information, visit: <a href="https://technet.microsoft.com/library(EXCHG.15">https://technet.microsoft.com/library(EXCHG.15</a></p>
<p><span style="background-color:#ffff00;">)/ms.exch.setupreadiness.LangPackBundleCheck.aspx</span></p>
<p></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;"><span style="font-weight:bold;text-decoration:underline;">exchangesetup.log </span></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">Log sequence</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">[01/20/2015 01:08:36.0915] [1] <span style="background-color:#ffff00;">Failed [Rule:LangPackBundleCheck] [Message:The language pack bundle could not be found or is corrupt.]</span></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">[01/20/2015 01:08:37.0008] [1] [<span style="background-color:#ffff00;">REQUIRED] The language pack bundle could not be found or is corrupt</span>.</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">[01/20/2015 01:08:37.0008] [1] Help URL: <a href="https://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.LangPackBundleCheck.aspx">https://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.LangPackBundleCheck.aspx</a></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">[01/20/2015 01:08:37.0039] [1] Ending processing test-SetupPrerequisites</p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;"></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;"></p>
<p><span style="text-decoration:underline;"><strong>The Solution</strong></span></p>
<p>I&nbsp;tried to repair the installation by reinstalling the server and client language packs but the error still persisted. After&nbsp;checking under the Exchange&nbsp;registry keys I found&nbsp;a key called &quot;Language Packs&quot;. The exact location of the reg key&nbsp;was &quot;HKEYLMACHINE\SOFTWARE\Microsoft\ExchangeServer\v15\Language Packs&quot; .&nbsp;Once I removed&nbsp;the &quot;Language Packs&quot; registry key,&nbsp;and ran the&nbsp;recovery setup again, the setup completed&nbsp;successfully.</p>
<p></p>
<p style="margin:0in;font-family:Calibri;font-size:11pt;">Special thanks to Sainath Vijayaraghavan and Rob McCarthy for assisting with the article.</p>]]></content:encoded>
    </item>
    <item>
      <title>Exchange 2013 Clients not able to connect using Outlook Anywhere</title>
      <link>https://docs.microsoft.com/archive/blogs/miguelo/exchange-2013-clients-not-able-to-connect-using-outlook-anywhere</link>
      <pubDate>Mon, 04 Aug 2014 22:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Miguel Ortiz (MSFT)]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/miguelo/2014/08/04/exchange-2013-clients-not-able-to-connect-using-outlook-anywhere/</guid>
      <description><![CDATA[I would like to share an issue occurring frequently with Exchange 2013 deployments. The behavior...]]></description>
      <content:encoded><![CDATA[<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-family:book antiqua,palatino;font-size:medium;">I would like to share an issue occurring frequently with Exchange 2013 deployments. The behavior being reported by users is their Outlook clients cannot connect to any of the Exchange Web Services (OWA, EWS).&nbsp; Prior to exhibiting the behavior, there were no reported configuration changes made to the web services by the Exchange Admins, so what changed? The first place that you need to look at is that Exchange back end web site certificate bindings on port 444.&nbsp; Normally, if you check the IIS logs and the HTTP proxy logs you can see that you get&nbsp;Status code 500 when the connection proxy to the Exchange 2013 back end website. Another symptom that you see is the Exchange PowerShell console won&#39;t open a session to the server. The reason that this issue happens is due to the way connection flow happens in Exchange 2013. Below you can see the data flow when outlook client connects to exchange 2013 mailbox, and the explanation of the connection. I will cover the normal flow first and then we&rsquo;ll go over why this breaks when missing or having a third party certificate bound to 444 on the Exchange Back End Web Site.</span></p>
<p><span style="font-size:medium;text-decoration:underline;"><strong>Exchange 2013 Mailbox</strong></span></p>
<ol>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">Outlook &gt;&gt;&gt;&gt;&gt; 2013 CAS DWS:443</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">2013 CAS &gt;&gt;&gt;&gt; 2013 MBX:444</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">2013 CAS &lt;&lt;&lt;&lt; 2013 MBX:444</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">Outlook &lt;&lt;&lt;&lt;&lt; 2013 CAS DWS:443&nbsp;&nbsp;</span></p>
</li>
</ol>
<p><span style="font-family:book antiqua,palatino;font-size:medium;text-decoration:underline;"><em><strong>Step by Step Connection Flow&nbsp;</strong></em></span></p>
<ul>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">IIS authenticates the request and Microsoft.Exchange.FrontEndHttpProxy.dll running in the MSExchangeRpcProxyAppPool.&nbsp; HTTP Proxy determines the Mailbox Anchor, accessing Active Directory to look up the user, then maps to the user object that contains the mailbox GUID.&nbsp; As soon as we obtain the GUID, HTTP Proxy refers to Active Manager to locate the database where the mailbox resides.&nbsp; At this point, HTTP Proxy then builds the URL to the mailbox server that contains the user&#39;s mailbox <a href="mailto:GUID@Domain.com">GUID@Domain.com</a>.</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">HTTP Proxy takes the authenticated request and creates a serialized blob (that contains SID, user groups, and more. Then a new header is attached that contains the Client Access server name, in order to use CSC (serialized access token authentication, also known as server to server authentication) and sends this new http request URL to the Mailbox server over SSL on port 444.&nbsp; The new URL contains the Mailbox server name so that the Mailbox server knows the request belongs to this server.&nbsp;</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">The request is sent to the Mailbox server&#39;s RPC Virtual Directory that is running in the MSExchangeRpcProxyAppPool by using by default, integrated authentication.</span></p>
</li>
<li>
<p><span style="font-family:book antiqua,palatino;"><span style="font-size:medium;">RPCProxy.dll on the Mailbox server is responsible for extracting the RPC packet from the tunnel and forwarding it to the local RPC Client Access Service on Port 6001.</span> &nbsp;</span></p>
</li>
</ul>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">Now that we went over the connection flow when a mailbox is located on an&nbsp;Exchange 2013 mailbox server, we can cover why this breaks and why is so important of not changing or having a third party certificate bound to port 444 on the Exchange Back End Web Site. When the client connects to the CAS, and HTTP Proxy determines where the mailbox is located, it builds an URL to the destination mailbox server on port 444. The URL is built using the hostname. Once we have the URL we try to connect on secure port 444 using SSL. In the process of the SSL handshake there is several validation task that have to take place before the connection is allowed. If the name being used on the URL is not in the certificate the request will fail and your client can&rsquo;t connect.</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">But I see 200 status codes in the IIS logs&hellip;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:medium;">The reason you &lsquo;ll see the 200 status codes on IIS is due to the initial communication that is occurring on port 443 and on the Default website. Where the process breaks is during the second part of connecting to the mailbox server on port 444.&nbsp;If you look closely at the HTTP proxy logs, you will have two columns one for HTTP status and one for backend status. In that log&nbsp;you can see the 200 on the first hop but when passing it to the mailbox server on port 444 it fails with the 500 error. Another log that you can check is the IIS log for W3SVC2. In this folder you have the logs for all traffic going thru the Exchange Back End web site.</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">Screenshot 1 shows wrong binding configuration</span><span style="font-weight:bold;"><br /></span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/0334.IIS_Bindings_444.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/0334.IIS_5F00_Bindings_5F00_444.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/0334.IIS_Bindings_444.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/0334.IIS_5F00_Bindings_5F00_444.png" border="0" /></a><br /></span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">Screen Shot 2 of Exchange Shell Error when certificate is misconfigured</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/1425.PowerShell_Session_Bad.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/1425.PowerShell_5F00_Session_5F00_Bad.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/1425.PowerShell_Session_Bad.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/1425.PowerShell_5F00_Session_5F00_Bad.png" border="0" /></a><br /></span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">&nbsp;</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">&nbsp;<span style="font-weight:bold;">Screenshot 3 after editing (corrected) the Exchange Back End Certificate Binding</span></span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/PowerShell_Session_good.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/PowerShell_5F00_Session_5F00_good.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/PowerShell_Session_good.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/PowerShell_5F00_Session_5F00_good.png" border="0" /></a></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">Screenshot 4</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/PowerShell_Session_good_Continuation.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/PowerShell_5F00_Session_5F00_good_5F00_Continuation.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/PowerShell_Session_good_Continuation.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/PowerShell_5F00_Session_5F00_good_5F00_Continuation.png" border="0" /></a></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">Screenshot 5 and 6 of OWA behavior when certificate binding incorrect on the Exchange Back End Web Site</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/owa_Session_bad.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/owa_5F00_Session_5F00_bad.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/owa_Session_bad.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/owa_5F00_Session_5F00_bad.png" border="0" /></a></span><span style="font-weight:bold;">&nbsp;</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;">After logging in you get a blank page</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-weight:bold;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/owa_Session_bad2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/owa_5F00_Session_5F00_bad2.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/09/owa_Session_bad2.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-09/owa_5F00_Session_5F00_bad2.png" border="0" /></a></span><span style="text-decoration:underline;"><span style="font-weight:bold;">&nbsp;</span></span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="color:black;font-family:&#39;Segoe UI&#39;;font-size:12pt;margin-top:0pt;margin-bottom:6pt;"><span style="font-family:book antiqua,palatino;font-weight:bold;">Conclusion</span></p>
<p style="font-family:Cambria;font-size:11pt;margin-top:0pt;margin-bottom:6pt;"></p>
<p style="color:black;font-family:&#39;Segoe UI&#39;;font-size:12pt;margin-top:0pt;margin-bottom:10pt;"><span style="font-family:book antiqua,palatino;font-size:medium;">The main point of this article is that&nbsp;if you have incorrect certificate bindings on the Exchange Back End web site, it can cause the web services on Exchange 2013 server not to work properly. This incorrect certificate binding will break the connection flow, causing clients to have a bad experience. Always make sure the Exchange Back End certificate bindings for 444 always is configured to use the self-signed certificate.</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>