<?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>We're All In!</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kristinw/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kristinw/feed.xml</link>
    <description>Kris blogs from time to time on things she thinks folks might find useful. Enjoy!</description>
    <lastBuildDate>Mon, 07 Mar 2016 18:36:44 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Remove mailbox of disabled AD user accounts</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/remove-mailbox-of-disabled-ad-user-accounts</link>
      <pubDate>Tue, 19 Nov 2013 11:38:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/11/19/remove-mailbox-of-disabled-ad-user-accounts/</guid>
      <description><![CDATA[A downloadable copy of the script is available here.
&nbsp;
So...for my latest scripting foray, I...]]></description>
      <content:encoded><![CDATA[<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">A downloadable copy of the script is available <a href="https://gallery.technet.microsoft.com/scriptcenter/Remove-Mailbox-of-Disabled-0f8efb24">here</a>.</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">So...for my latest scripting foray, I came up with a little <span style="color: #ff0000;">script</span> to do the following:</span></p>
<ul>
<li>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">Find all User accounts that have a SamAccountName that matches a particular filter, and that DO NOT have their passwords set to Never Expire (so we don't hit service accounts, etc)<br /></span></div>
</li>
<li>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">If the account is a member of a particular group, leave the mailbox intact, but set a particular retention policy on it (in this case, a 14 day policy)<br /></span></div>
</li>
<li>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">If the disabled account is NOT a member of the aforementioned group, remove the Exchange attributes from the AD account, or essentially, disable the mailbox<br /></span></div>
</li>
<li>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: black; font-family: arial,helvetica,sans-serif; font-size: small; mso-fareast-font-family: 'Times New Roman';">And, that's pretty much it. I also <span style="color: #ff0000;">logged all accounts that we touch</span> to a file, and added a timer so I&rsquo;d know how long it takes the script to run. </span></div>
</li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;For this particular application, the script was written for and run against an Exchange 2007 environment FROM the Exchange management shell. Theoretically it should work with other versions as well, but I have yet to test that scenario.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;Also, please note that the script requires the Active Directory Module to be imported, so it cannot be run from instances of Exchange 2007 that are running on Windows Server 2003.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;For my purposes, all user account names have a 6 digit number in them. To make sure I grab only those accounts, a regex filter was used against the SamAccountName attribute so that only those accounts are matched, which is what the <span style="color: #ff0000;">"\d{6}"</span> is. <span style="background-color: #ffff00;">You can take out that portion, or update the filter to match your needs.</span></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Hopefully this is a good example of how you can automate your more routine tasks. Enjoy!</span></p>
<p><span style="background-color: #ffff00;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Here is a snippet of the script. Please go <a href="https://gallery.technet.microsoft.com/scriptcenter/Remove-Mailbox-of-Disabled-0f8efb24"><span style="background-color: #ffff00;">HERE</span></a> to download the full copy.</span><span style="background-position: 0% 0%; color: black; font-family: 'Arial','sans-serif'; font-size: 9pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-fareast-font-family: 'Times New Roman';">.</span>&nbsp;</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$stopwatch </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: blue; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">New-Object </span><span style="background: white; color: blueviolet; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">system.Diagnostics.Stopwatch</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$stopwatch</span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">Start();</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$date </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: blue; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">Get-Date </span><span style="background: white; color: navy; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">-format </span><span style="background: white; color: blueviolet; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">MMddyy</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$LogFile </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">"c:\LogFile_</span><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$date</span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.txt"</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$grouppath </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">"CN=GG-Termed-Retain,DC=contoso,DC=com" #Change this group name to match your environment!!!</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: darkgreen; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">write-host "Please wait while I import the active directory module..."</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: darkgreen; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">Import-Module ActiveDirectory</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: darkgreen; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">start-sleep -s 15</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$DisabledAccounts </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: blue; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">get-mailbox </span><span style="background: white; color: navy; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">-resultsize </span><span style="background: white; color: blueviolet; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">Unlimited </span><span style="background: white; color: navy; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;ErrorAction </span><span style="background: white; color: blueviolet; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">SilentlyContinue </span><span style="background: white; color: navy; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;WarningAction </span><span style="background: white; color: blueviolet; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">SilentlyContinue </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">| </span><span style="background: white; color: blue; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">where</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';"> {(</span><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$_</span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">UserAccountControl </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">-eq </span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">"AccountDisabled, NormalAccount"</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">) </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;and</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';"> (</span><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$_</span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">RecipientTypeDetails </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;ne </span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ldquo;RoomMailbox&rdquo;</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">) </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;and</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';"> (</span><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$_</span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">SamAccountName </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ndash;match </span><span style="background: white; color: darkred; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">&ldquo;\d{6}&rdquo;</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">)}</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$Count </span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">= </span><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">$DisabledAccounts</span><span style="background: white; color: #979797; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">.</span><span style="background: white; color: black; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';">Count</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;">&nbsp;</p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt;"><span style="background: white; color: orangered; font-family: 'Lucida Console'; font-size: 9pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman';"><strong><span style="background-color: #000000;">Thanks, Kris</span></strong>.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>ActiveSync Reporting with PowerShell - Users with a partnership and a list of their devices</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/activesync-reporting-with-powershell-users-with-a-partnership-and-a-list-of-their-devices</link>
      <pubDate>Thu, 01 Aug 2013 09:32:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/08/01/activesync-reporting-with-powershell-users-with-a-partnership-and-a-list-of-their-devices/</guid>
      <description><![CDATA[&nbsp;
This script was used by a colleague to gather information for licensing purposes. Since...]]></description>
      <content:encoded><![CDATA[<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="color: #000000; font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">This script was used by a colleague to gather information for licensing purposes. Since users can have more than one device partnership (which means its a multivalued attribute), and a user (in 2010, at least) can have a maximum of 10 partnerships, it was necessary to parse through that value so that we could get a list of ALL the devices. While this bit information may not be necessary for licensing purposes, I think it's still one of those "good to know" type of things. And, I just wanted to practice parsing through the information and writing it out to a file :).&nbsp;</span></span></span></span></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="color: #000000; font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">Just as an FYI, once the maximum of 10 devices&nbsp;is reached, a user will receive an error code of STATUS_CODE_MAXIMUMDEVICESREACHED when trying to create new partnerships. They will also see a warning in OWA when viewing the "Mobile Phones" tab indicating that they have reached the maximum number of allowed partnerships, and that no new partnerships can be created until some of the others have been removed.</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><hr style="width: 100%;" width="100%" /></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$output_file</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">=</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">"c:\scripts\test.txt"</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$users </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">= </span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">get-casmailbox </span></span><span style="color: navy; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&ndash;resultSize </span></span><span style="color: blueviolet; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">Unlimited</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;"> | where {$_.</span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">HasActiveSyncDevicePartnership </span></span><span style="color: navy; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">-eq </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$true</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">}</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$users </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">| </span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">foreach</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;"> {</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$id </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">= </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$_</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">identity; </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">= </span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">get-activesyncdevicestatistics </span></span><span style="color: navy; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">-mailbox </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$id</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="color: darkblue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">If</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;"> (</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">DeviceModel </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">-ne </span></span><span style="color: purple; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">1</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">) {</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$devices </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">= </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">DeviceModel; </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$Sync </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">= </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">LastSuccessSync</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: darkblue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">for</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;"> (</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$i</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">=</span></span><span style="color: purple; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">0</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">; </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$i</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">-lt </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$devices</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">count; </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$i</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">++</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">) {</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">"</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$report</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$id</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">, </span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$devices</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">[</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$i</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">]</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">, </span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$sync</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">[</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$i</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">]</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">" </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">| </span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">add-content </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$output_file</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">}</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; }</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;&nbsp;&nbsp; </span></span><span style="color: darkblue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">else</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;"> {</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">"</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$report</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$id</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">, </span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">DeviceModel)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">, </span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$(</span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$mbstats</span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">.</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">LastSuccessSync)</span></span><span style="color: darkred; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">" </span></span><span style="color: darkgray; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">| </span></span><span style="color: blue; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">add-content </span></span><span style="color: orangered; font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">$output_file</span></span><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">}</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">}</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">&nbsp;</span></span></span></span></div>
<div style="margin: 0px; background-color: white;"><hr style="width: 100%;" width="100%" /></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">So, given the fact that each user can have a maximum of 10 partnerships, what can we do if a user reaches the maximum number of partnerships?</span></span></span></span></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">Well, once again, PowerShell to the rescue!</span></span></span></span></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><hr style="width: 100%;" width="100%" /></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt; background-color: white;"><span style="font-family: Lucida Console; font-size: x-small;"><span style="font-size: 9pt;">This&nbsp;bit of code&nbsp;will delete all ActiveSync Partnerships that are older than 7 days. Be sure to adjust the time period to a number that suits your environment! This&nbsp;tidbit of code is courtesy of my friend Jim Martin (also a MSFT employee).</span></span></span></span></div>
<div style="margin: 0px; background-color: white;">&nbsp;</div>
<div style="margin: 0px; background-color: white;">
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><em>#Find all of your users who have ActiveSync Partnerships:</em></span></span></div>
<div style="margin: 0px 0px 0px 36pt; text-indent: -18pt;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #2e75b6;">1.)</span><span style="color: #ff0000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2e75b6;"><span style="color: #ff0000;">$eas</span> = <span style="color: #3366ff;">Get-CASMailbox</span> | where { $_.HasActiveSyncDevicePartnership -eq <span style="color: #ff0000;">$True</span> }&nbsp;</span></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><em>#Find all users within the ActiveSync Partnership list that has a &ldquo;LastSyncAttempttime&rdquo; less than X amount of days, here we set a week:</em></span></span></div>
<div style="margin: 0px 0px 0px 36pt; text-indent: -18pt;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #2e75b6;">2.)</span><span style="color: #ff0000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2e75b6;"><span style="color: #ff0000;">$del</span> = $eas | ForEach-Object { <span style="color: #3366ff;">Get-ActiveSyncDeviceStatistics</span> -Mailbox $_.Identity | where { $_.LastSyncAttempttime -lt (Get-date).adddays(-7) }}</span></span></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><em>#Remove all ActiveSync Partnerships older than 7 days:</em></span></span></div>
<div style="margin: 0px 0px 0px 36pt; text-indent: -18pt;"><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #2e75b6;">3.)</span><span style="color: #ff0000;">&nbsp;&nbsp;&nbsp; </span><span style="color: #2e75b6;"><span style="color: #ff0000;">$del</span> | ForEach-Object { Remove-ActiveSyncDevice $_.identity -Confirm:$False }</span></span></span></div>
<div style="margin: 0px 0px 0px 36pt; text-indent: -18pt;">&nbsp;<hr style="width: 100%;" width="100%" /></div>
<div style="margin: 0px 0px 0px 36pt; text-indent: -18pt;"><strong><em><span style="font-family: Calibri,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: #2e75b6;"><span style="color: #000000;">Many thanks to Ethan McConnell and Jim Martin for assisting with this post</span>.</span></span></span></em></strong></div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Server says NO! - IIS Error 500 0 2148074257 across a forest trust results in Autodiscover Failures</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/server-says-no-iis-error-500-0-2148074257-across-a-forest-trust-results-in-autodiscover-failures</link>
      <pubDate>Tue, 04 Jun 2013 11:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/06/04/server-says-no-iis-error-500-0-2148074257-across-a-forest-trust-results-in-autodiscover-failures/</guid>
      <description><![CDATA[This was an interesting issue. I had a customer who was integrating a smaller company they had...]]></description>
      <content:encoded><![CDATA[<p>This was an interesting issue. I had a customer who was integrating a smaller company they had recently acquired and we were in the process of getting the users from Company B onto Company A's mail system. Sounds like an easy enough task, right?</p>
<p>So, here's the scenario...</p>
<ul>
<li>Company A acquires Company B</li>
<li>Company B has it's own Forest/Own Domain</li>
<li>We need to get Company B's users onto Company A's Exchange servers ASAP</li>
<li>Company B's client computers WILL REMAIN on Company B's domain (they are not yet ready to join the client computers&nbsp;to Company A's domain)</li>
</ul>
<p>Using some of the techniques described <a href="https://blogs.technet.com/b/kristinw/archive/2013/04/19/controlling-outlook-autodiscover-behavior.aspx" target="_blank">here</a>, we were able to get Outlook Autodiscover to correctly locate the mailboxes that had been created for these users in Company A's forest/domain. No trust was yet in place between the two domains, and while there was network&nbsp;connectivity between the two forests, it was a rather complex web of tunnels, firewalls, NAT's, etc. So, it was difficult to determine which paths and ports were open between servers in which forest.</p>
<p>Now comes the fun part :). The trust between the two forests was brought up and shortly thereafter we found that users from Forest B were having symptoms indicative of Autodiscover not working. In short, no free/busy, no ability to set out of office, and unable to autoconfigure a new Outlook profile. I found it odd that only users from Forest B were affected, and immediatly suspected the problem had something to do with the trust, but I had no proof.</p>
<p>IIS logs for this customer were quite large, so I began pulling one of those down while doing some testing from an Outlook client. I used the Test E-mail AutoConfiguration option from the below menu. To bring up this option, hold down the &lt;ctrl&gt; key while right-clicking the Outlook icon in the BOTTOM RIGHT of your screen. Click the "Test E-mail AutoConfiguration", as noted below:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/2772.AutoDBlog2.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/2772.AutoDBlog2.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/2772.AutoDBlog2.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/2772.AutoDBlog2.JPG" alt="" width="269" height="171" border="0" /></a></p>
<p>Next, we uncheck the two "Guess" boxes, and I left the password option blank, like so:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/5518.AutoDBlog3.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/5518.AutoDBlog3.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/5518.AutoDBlog3.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/5518.AutoDBlog3.JPG" alt="" border="0" /></a></p>
<p>Again, the client computers were connected to Forest B. Since the trust was now in place, they theoretically should be able to present their Forest B credentials while hitting Autodiscover in Forest A and get authenticated just fine. What happened instead was that the client received a 500 error, and the autodisover test errored out. A 500 error USUALLY indicates some type of server error, but again, this issue was affecting only clients in Forest B. Clients from Forest A could authenticate just fine.</p>
<p>A review of the IIS log clearly showed the 500 error, but it had an unusual substatus code with it. The error looked something like this:</p>
<p>500 0 2148074257</p>
<p>Turning on friendly http error messages yielded the same 500 error along with&nbsp;0x80090311. <a href="https://www.iis.net/learn/troubleshoot/diagnosing-http-errors/how-to-use-http-detailed-errors-in-iis" target="_blank">This link</a> will show you how to turn on friendly errors in IIS.</p>
<p>Using the err utility, similar to the one you can download from <a href="https://www.microsoft.com/en-us/download/details.aspx?id=985" target="_blank">here</a>, I translated this numerical error code into something more meaningful:</p>
<p><strong>&ldquo;No authority could be contacted for authentication&rdquo;</strong></p>
<p>Now we're getting somewhere!</p>
<p>If we check in IIS, we can see that the Autodiscover directory has the following authentication methods enabled:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7230.AutoDBlog1.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7230.AutoDBlog1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7230.AutoDBlog1.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7230.AutoDBlog1.JPG" alt="" border="0" /></a></p>
<p>The key&nbsp;in this particular case is "Windows Authentication". Since "Windows Authentication" is enabled, the clients from Forest B were attempting to pass their Windows credentials along to IIS on the CAS in Forest A. The CAS in Forest A knew that it "should" be able to authenticate these users, but for some reason it was unable to do so, and it threw the</p>
<p>500 0 2148074257, 0x80090311, <strong>&ldquo;No authority could be contacted for authentication&rdquo;</strong></p>
<p>errors back at the client. At this point, Outlook simply continued with its autodiscover logic rather than trying Basic authentication.</p>
<p>What we wound up doing as a solution was to open communication between&nbsp;the subset of DC's that serviced the Exchange servers in Forest A, with DC's in Forest B. Once we did this, Integrated (NTLM in this case) authentication worked as expected and all was well.</p>
<p>RESOURCES:</p>
<ul>
<li>You&nbsp;can also use <a href="https://www.testexchangeconnectivity.com">www.testexchangeconnectivity.com</a> to do your testing.</li>
<li><a href="https://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx" target="_blank">Log Parser Studio</a> - the best way to parse unwieldly IIS logs!</li>
</ul>
<p>&nbsp;</p>
<hr style="width: 100%;" width="100%" /><hr style="width: 100%;" width="100%" />
<p>Thanks to Steve Wesa and <a title="Log Parser Studio" href="https://blogs.technet.com/b/karywa" target="_blank">Kary Wall</a> for their assistance with this issue!</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Controlling Outlook Autodiscover behavior</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/controlling-outlook-autodiscover-behavior</link>
      <pubDate>Fri, 19 Apr 2013 09:19:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/04/19/controlling-outlook-autodiscover-behavior/</guid>
      <description><![CDATA[It has come to my attention recently that there is still a lot of confusion around Autodiscover,...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">It has come to my attention recently that there is still a lot of confusion around <a href="https://technet.microsoft.com/en-us/library/bb124251(v=exchg.141).aspx" target="_blank">Autodiscover</a>, Outlook, and the way the two interact with one another. I'd like to try to clear some of that up by consolidating some of the information that I recently used to assist some of my own customers. Hopefully it will help you as well.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">By now, everyone SHOULD be familiar with Autodiscover and what it does. Essentially, Autodiscover does the following:</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Configures profile settings for Outlook 2007 and above clients as well as for various types of mobile devices</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Provides Outlook clients with the URL's they need to access Exchange Web Services and the OAB download URL. EWS provides free/busy and Out of Office services. </span></li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Autodiscover is a function of EXCHANGE. Outlook 2007 and above clients are coded in such a way that they can&nbsp;take advantage&nbsp;of Autodiscover. It all works together (or it should).&nbsp;For Outlook&nbsp;to take advantage of the new Autodiscover features in Exchange 2007 and above, Outlook must be told where to go, or who to talk to if you will, to get all those fancy new features. That's where the Outlook logic comes into play in these scenarios. The order of logic that Outlook uses when trying to figure out where to get that information from is as follows:</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://blogs.msdn.com/b/douggowans/archive/2007/06/28/serviceconnectionpoints.aspx" target="_blank">SCP</a> lookup - Outlook will get Autodiscover information from Active Directory. If that fails, Outlook begins it's "non-domain" connected logic (as I like to call it), and will go in order down this list </span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HTTPS root domain query - Outlook, if not domain joined, uses the RIGHT HAND SIDE of the users SMTP address to do this query. So using the domain from my example, it will search for <a href="https://wingtiptoys.com/autodiscover/autodiscover.xml">https://wingtiptoys.com/autodiscover/autodiscover.xml</a></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HTTPS Autodiscover domain query - If the above search yields no response, the next URL Outlook will try is <a href="https://autodiscover.wingtiptoys.com/autodiscover/autodiscover.xml">https://autodiscover.wingtiptoys.com/autodiscover/autodiscover.xml</a></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HTTP redirect method</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">SRV record query</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Local XML file</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">cached URL in the Outlook profile (new for Outlook 2013)</span></li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">There are some important points to remember so that you can determine what behavior to expect form Outlook. The first thing you need to&nbsp;know&nbsp;is:</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Is the Outlook client domain joined AND <span style="background-color: #ffff00;">can it currently CONTACT a DC in the domain</span>!</span></li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The highlighted portion of that statement is an important distinction. If you are running Outlook on a laptop and you&nbsp;disconnect the network cable from said&nbsp;laptop and then try to configure a new Outlook profile, for example,&nbsp;your Outlook client will&nbsp;use it's NON domain joined logic at that point, because it CANNOT CONTACT ACTIVE DIRECTORY!</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Where this becomes important is what I'd call "one off", or "unusal" circumstances, such as the absorption of one company by another. I ran across two&nbsp;such scenarios recently which is what prompted me to create this blog post. In these types of cases, it may be necessary to more fully control or tweak the Outlook to Exchange Autodiscover connection logic so that users will have a more robust experience, at least until the are fully absorbed into their new environment.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">In both recent cases, the client computers were connected to Domain A (the "old" company) but needed to connect to Exchange servers in Domain B (the "new" company). One case was complicated further by the presence of Exchange 2007 in BOTH Domain A AND Domain B. And we needed to "test" connecting users in Domain B back to mailboxes created for them in Domain A WITHOUT making any modifications to either environment.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/3465.Umat1.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/3465.Umat1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/3465.Umat1.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/3465.Umat1.JPG" alt="" border="0" /></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Since my client (meaning the actual computer I'm testing this with) is domain joined, and I am logged in with a domain account, Outlook automatically fills in my Name and E-mail address. If I just click next, Outlook will begin is logic and first try to locate Autodiscover settings via SCP. If my domain joined client can currently contact AD, it will get Autodiscover settings from AD and proceed with trying to configure the profile to connect to my mailbox (assuming I have a mailbox in that domain, assuming Exchange is installed and properly configured in the WingTipToys domain, etc).</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The problem in the scenarios I referenced earlier, is that the customer wanted the Outlook client to connect to a mailbox in a completely different forest/domain. While you can certainly use the "Manually configure server" option, there are a few other things you could do. </span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">At minimum, we must change the email address that has been autopopulated for us to the one that has been assigned to us from the "other" domain. For example purposes, I'll be using <a href="mailto:kris@corkandale.com">kris@corkandale.com</a>.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">For my customer, we decided to use a local autodiscover.xml file to override Outlook's default behavior, so that we could test some things without having to modify anything in either forest/domain. Think of this as a type of "hosts" file for Outlook. What you will do is create a file called autodiscover.xml that will look like this:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>&lt;?xml version="1.0" encoding="utf-8"?&gt; <br />&lt;Autodiscover xmlns="</em><a href="https://schemas.microsoft.com/exchange/autodiscover/responseschema/2006%22"><em>https://schemas.microsoft.com/exchange/autodiscover/responseschema/2006"</em></a><em>&gt; <br />&nbsp; &lt;Response xmlns="</em><a href="https://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a%22"><em>https://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a"</em></a><em>&gt; <br />&nbsp;&nbsp;&nbsp; &lt;Account&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;AccountType&gt;email&lt;/AccountType&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Action&gt;redirectUrl&lt;/Action&gt; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RedirectUrl&gt;</em><a href="https://autodiscover.sunshine.edu/autodiscover/autodiscover.xml"><em>https://autodiscover.corkandale.com/autodiscover/autodiscover.xml</em></a><em>&lt;/RedirectUrl&gt; <br />&nbsp;&nbsp;&nbsp; &lt;/Account&gt; <br />&nbsp; &lt;/Response&gt; <br />&lt;/Autodiscover&gt;</em></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Then you need to configure the client machine to query that XML file by adding the following registry key:</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Tell Outlook to use a local xml file:</span></p>
<blockquote>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>for Outlook 2007:</em></span></li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>HKCU\Software\Microsoft\Office\12.0\Outlook\Autodiscover</em></span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>for Outlook 2010:</em></span></li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>HKCU\Software\Microsoft\Office\14.0\Outlook\Autodiscover</em></span></p>
<p>&nbsp;<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>STRING_value &lt;your_namespace&gt; = path to XML file</em></span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><em>Or 15.0&nbsp;for Outlook 2013</em></span></p>
</blockquote>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Where&nbsp; &lt;your namespace&gt; would be the namespace that Outlook will be querying for (corkandale.com in my example), and path to xml is the path to file.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">NOTE: My client will STILL have to be able to resolve autodiscover.corkandale.com to an IP address. So, be sure that DNS is properly configured!</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Even with the xml file in place, we still found that there was a pretty significant delay in both profile autoconfiguration AND in free/busy lookups. Using information from&nbsp;<a href="https://support.microsoft.com/kb/2612922">https://support.microsoft.com/kb/2612922</a>&nbsp;we excluded the following per the article:</span></p>
<ul>
<li>
<div class="indent"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">SCP lookup</span></div>
</li>
</ul>
<ul>
<li>
<div class="indent"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HTTPS root domain query</span></div>
</li>
</ul>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Once this had been done, we found things moved along much more quickly. This allowed my customer to do some more testing before fully integrating clients from Forest B into their own Forest.</span></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Recommended Changes and Tweaks for Exchange Servers in an Enterprise Environment (whew!)</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/recommended-changes-and-tweaks-for-exchange-servers-in-an-enterprise-environment-whew</link>
      <pubDate>Thu, 28 Mar 2013 13:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/03/28/recommended-changes-and-tweaks-for-exchange-servers-in-an-enterprise-environment-whew/</guid>
      <description><![CDATA[Wow, that was a mouthful!!!
For my latest project, I decided to try to put together a list of...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Wow, that was a mouthful!!!</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">For my latest project, I decided to try to put together a list of various <a href="https://en.wikipedia.org/wiki/Tweak">tweaks</a>&nbsp;that I recommend for Enterprise environments that run Microsoft Exchange Server 2007 x64 or higher. Please remember that these are <span style="color: #ff0000;">RECOMMENDATIONS</span>, not hard and fast guidelines! YMMV, please test these yourself, etc. The main goal here was to consolidate these recommendations into one place, rather than having to visit various blogs and TechNet articles to piece&nbsp;them all together.</span>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Many of the settings described herein are&nbsp;</span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">the defaults that were in place for 32 bit (x32) systems (i.e., Windows 2000/2003).They </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">were never increased in the x64 versions of the product. Proactively increasing </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">these values can help insure that x64 servers are more fully utilized.</span>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Please visit my colleague <a href="https://blogs.technet.com/b/rmilne/archive/2013/09/23/exchange-2010-tweaks.aspx">Rhoderick Milne's blog post</a> for a few additional recommendations!</span></p>
<hr style="width: 100%;" width="100%" />
<p>&nbsp;</p>
<p>&nbsp;<span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Windows:&nbsp;MaxTokenSize</span></span><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"> &ndash; </span></span></strong><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">this setting can affect users with large tokens (also known as "</span></span><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://blogs.technet.com/b/shanecothran/archive/2010/07/16/maxtokensize-and-kerberos-token-bloat.aspx" target="_blank">token bloat</a>") . The default value is low, imo, and the issue can be very frustrating to troubleshoot. The following article recommends setting the default to 48,000: <a href="https://support.microsoft.com/kb/938118">https://support.microsoft.com/kb/938118</a></span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">, <a href="https://blogs.technet.com/b/surama/archive/2009/04/06/kerberos-authentication-problem-with-active-directory.aspx">https://blogs.technet.com/b/surama/archive/2009/04/06/kerberos-authentication-problem-with-active-directory.aspx</a></span></span></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters<br />Entry: MaxTokenSize<br />Data type: REG_DWORD<br />Value: 48000</span></span></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: #000000;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>NOTE</strong>: The default for this value in Windows 2012 IS <span style="color: #ff0000;">48000. The maximum value is 65535 - <a href="https://support.microsoft.com/kb/938118">https://support.microsoft.com/kb/938118</a></span></span></span></span></p>
<p style="padding-left: 30px;">&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="color: #000000;">IIS: MaxFieldLength</span></strong> and <strong>MaxRequestBytes</strong> &ndash; these settings control the maximum header length and maximum number of bytes that are allowed in http headers. Users with large tokens can experience logon failures if&nbsp;the defaults&nbsp;are left in place. This article discusses those concerns: <a href="https://support.microsoft.com/kb/2020943">https://support.microsoft.com/kb/2020943</a></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">From the above referenced KB:</span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong><span style="color: #ff0000;">NOTE</span>: </strong>If MaxFieldLength is configured to its maximum value of 64KB, then the <em>MaxTokenSize</em> registry value should be set to 3/4 * 64 = 48KB.&nbsp; For more information on the <em>MaxTokenSize</em> setting, please see the Microsoft knowledge base article <a href="https://support.microsoft.com/kb/327825" target="_blank">KB327825</a>. Note that many of settings detailed in this post are interrelated.</span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Article <a href="https://support.microsoft.com/kb/2491354">https://support.microsoft.com/kb/2491354</a> for Exchange server details a free/busy issue that can be caused by low/default values for these settings, and reccommends setting them to their maxiumum allowed values of <span style="color: #ff0000;">65534</span> for <strong>MaxFieldLength</strong> and <span style="color: #ff0000;">16777216</span> for <strong>MaxRequestBytes</strong></span></p>
<p style="padding-left: 30px;">&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>IIS: Queue Length</strong> for IIS application pools -&nbsp;I recommend changing the queue length value to at least <span style="color: #ff0000;">5000</span> (which is now the default) for&nbsp;all Exchange related&nbsp;application pools&nbsp;(Found in Advanced Settings on the properties of the Application Pools themselves). If you are still running Exchange 2007, your Queue Length is likely still at 1000. For example, if your application has its own App pool (such as OWAAppPool), the Advanced Settings of that App pool are where you would make this change. I have seen customers set this value higher (8000 or so) with no ill effects. PLEASE TEST IN YOUR ENVIRONMENT BEFORE MAKING DRASTIC CHANGES!</span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7080.Tweaker1.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7080.Tweaker1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7080.Tweaker1.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7080.Tweaker1.JPG" alt="" border="0" /></a></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The following article describes the effects on Lync of leaving the default value&nbsp;of <span style="color: #ff0000;">1000</span> in place - <a href="https://technet.microsoft.com/en-us/library/dd441171(v=office.13).aspx">https://technet.microsoft.com/en-us/library/dd441171(v=office.13).aspx</a></span></p>
<p style="padding-left: 30px;">&nbsp;To set the Queue Length for ALL app pools via appcmd, the syntax is as follows:</p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: x-small;">&ldquo;%systemroot%\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools /applicationPoolDefaults.queueLength:"5000"&nbsp; /commit:apphost&rdquo;</span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">&nbsp;- Many thanks to <strong>Finbar Ryan</strong> for contributing this syntax!</span></p>
<p style="padding-left: 30px;">&nbsp;</p>
<p><strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Windows: MaxConCurrentAPI </span></strong><span style="font-family: arial,helvetica,sans-serif; font-size: small;">(On DC&rsquo;s) &ndash; this setting affects certain types of authentication traffic (particularly NTLM) and </span><span style="font-family: arial,helvetica,sans-serif; font-size: small;">is described here: <a href="https://support.microsoft.com/kb/975363">https://support.microsoft.com/kb/975363</a>. </span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The maximum value on either 2003 OR 2008 DC&rsquo;s of any version (without the hotfix mentioned in the article) is <span style="background-color: #ffff00;">10</span>, and I see no reason at all not to <span style="color: #ff0000;">set ALL DC&rsquo;s to this value</span>, rather than leaving them at the default of 1. Please READ the article before making this change.</span></p>
<ul>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Start Registry Editor.</span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Locate the following registry subkey:</span>
<div class="indent">
<div class="reg_path"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters</span></div>
</div>
</li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Create the following registry entry:</span><br /><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong class="uiterm">Name:</strong>&nbsp; MaxConcurrentApi</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong class="uiterm">Type:</strong>&nbsp; REG_DWORD</span><br /><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong class="uiterm">Value:</strong><em>Set the value to the larger number, which you tested (any number greater than the default value).</em></span></li>
<li><span style="font-family: arial,helvetica,sans-serif; font-size: small;">At a command prompt, run <span class="userInput">net stop netlogon</span>, and then run <span class="userInput">net start netlogon</span>.</span></li>
</ul>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The MaxConcurrentApi SDP is available to help troubleshoot MaxConcurrentApi bottlenecks: <a href="https://support.microsoft.com/kb/2709071">https://support.microsoft.com/kb/2709071</a></span></p>
<p>&nbsp;</p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>IIS: ASP.NET Request Queue Limits</strong> - (requestQueueLimit and appConcurrentRequestLimit)- Changing the request queue limit to 65,535K</span>&nbsp;is known to resolve an issue&nbsp;that&nbsp;primarily exhibits itself on <span style="background-color: #ffff00;">Exchange 2010 sp3 and above</span>. However, there are other circumstances where changing this limit could be beneficial, and is another example of something that could be proactively changed before any box is put into production. <a href="https://technet.microsoft.com/en-us/library/dd425294(v=office.13).aspx">https://technet.microsoft.com/en-us/library/dd425294(v=office.13).aspx</a> (Lync article) says to set the limit for requestQueueLimit to 15,000. However,&nbsp;testing by the Exchange team has validated that a limit of&nbsp;65,535&nbsp;poses no problems&nbsp;in most circumstances.</span></p>
<p><span style="font-family: arial,helvetica,sans-serif; font-size: small;">As it specifically relates to Exchange, a change was made in the way Outlook Anywhere in SP3 and above traffic is processed that can cause it to bottleneck in ASP. This is typically&nbsp;seen only in very large environments, but I included this&nbsp;section anyway (just for thoroughness). In coming versions of Exchange, the rpc/http configurator will automatically set the requestQueueLimit to 65535 but ONLY for the rpc virtual directory. Thus, this it will be set not at the root level (as we are doing below), but at the rpc virtual directory level, so you will find the change in the web.config file specifc to the rpc virtual directory. See my IIS7 primer for more information about config files: <a href="https://blogs.technet.com/b/kristinw/archive/2012/11/28/iis7-primer-for-non-iis-admins-originally-written-for-exchange-engineers.aspx">https://blogs.technet.com/b/kristinw/archive/2012/11/28/iis7-primer-for-non-iis-admins-originally-written-for-exchange-engineers.aspx</a></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">To modify the values, do the following (copied from the above referenced TechNet article): </span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><span style="color: #ff0000;"><strong>PLEASE MAKE A BACKUP OF THE CURRENT FILES BEFORE MAKING ANY CHANGES!!</strong></span></span></p>
<ol style="font: 12px/16px 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; color: #000000; text-transform: none; text-indent: 0px; letter-spacing: normal; word-spacing: 0px; list-style-type: decimal; white-space: normal; font-size-adjust: none; font-stretch: normal; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;">Click<span class="Apple-converted-space">&nbsp;</span><strong>Start</strong><span class="Apple-converted-space">&nbsp;</span>and then click<span class="Apple-converted-space">&nbsp;</span><strong>Run</strong>.</p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;">In the<span class="Apple-converted-space">&nbsp;</span><strong>Run</strong><span class="Apple-converted-space">&nbsp;</span>dialog box, type<span class="Apple-converted-space">&nbsp;</span><strong>notepad %systemroot%\Microsoft.Net\Framework64\v2.0.50727\CONFIG\machine.config</strong>, and then click<span class="Apple-converted-space">&nbsp;</span><strong>OK</strong>.</p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Locate the processModel element that looks like this:<span class="Apple-converted-space">&nbsp;</span><span style="font-size: medium;"><strong><code>&lt;processModel autoConfig="true" /&gt;</code></strong></span></span></p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">Replace the processModel element with the following value:<span class="Apple-converted-space">&nbsp;</span><span style="font-size: medium;"><strong><code>&lt;processModel enable="true" requestQueueLimit="65535" /&gt;</code></strong></span></span></p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;">Save and close the Machine.config file</p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;">The above settings modify the global machine.config file. please notes that the below appConcurrentRequestLimit and the above requestQueueLimit are TWO DIFFERENT SETTINGS!</p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="background-color: #ffff00;"><span style="color: #000000; background-color: #ffffff;">Now to edit the ApplicationHost.Config, in the <strong>Run</strong> dialog box, type <strong>%systemroot%\system32\inetsrv\</strong></span><strong><span style="color: #000000; background-color: #ffffff;">appcmd.exe set config -section:System.Webserver/serverRuntime -appConcurrentRequestLimit:65535 -commitpath:APPHOST</span></strong></span></p>
</li>
<ol>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #000000; font-size: small; background-color: #ffff00;"><span style="background-color: #ffffff;">If you have problems running the above command (some people have reported errors trying to run the command in virtual environments), you can manually make this change by locating the <strong>ApplicationHost.Config</strong> file in <strong>%systemroot%\system32\inetsrv\config</strong> directory. (You can also check this file to verify the change)</span></span></p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #000000; font-size: small; background-color: #ffff00;"><span style="background-color: #ffffff;">After locating the file AND MAKING A BACKUP COPY, open the file and search for serverRuntime until you find the one that looks like this: <strong>&lt;serverRuntime /&gt;,</strong> located just underneath &lt;/security&gt;. </span></span></p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #000000; font-size: small; background-color: #ffff00;"><span style="background-color: #ffffff;">Change the line to <strong>&lt;serverRuntime appConcurrentRequestLimit="65535" /&gt;</strong></span></span></p>
</li>
<li>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #000000; font-size: small; background-color: #ffff00;"><span style="background-color: #ffffff;">Save and close the file.</span></span></p>
</li>
</ol></ol>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; padding-left: 30px; margin-top: 0px; margin-bottom: 0px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small; background-color: #ffffff;">NOTE: You are likely to hit other bottlenecks (notably port exhaustion) long before you ever hit the 65535 value noted in this post. This value CAN be set&nbsp;higher if you have configured port scaling. </span></p>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; padding-left: 30px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #ff0000;"><span style="font-family: Segoe UI;">PLEASE BE SURE THAT YOUR DO NOT FAT FINGER ANYTHING IN THE Machine.Config or ApplicationHost.config&nbsp;file!!! Bad things will happen if you do!</span></span></p>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; margin-top: 0px; margin-bottom: 0px;"><strong><span style="color: #000000;"><span style="font-family: Segoe UI;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">IIS - Speeding up Integrated Authentication</span></span></span></strong></p>
<p style="color: #2a2a2a; line-height: 18px; padding-bottom: 15px; padding-left: 30px; margin-top: 0px; margin-bottom: 0px;"><span style="color: #000000;"><span style="font-family: Segoe UI;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">The following is courtesy of <strong>Greg Askew</strong>. The logic here is that certain web services within Exchange primarily use integrated authentication (internal OWA, EWS, anything OTHER than basic or anonymous auth). An easy way to determine what type of authentication a particular web service is using is to ask this question: upon initially hitting the site or service, does the get prompted for a username/password? If the answer is yes (this includes mobile devices that 'store' such information), then its probably integrated authentication of some type.</span></span></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">If integrated authentication is used extensively (NTLM or Kerberos) and there are lots of connections, IIS can be configured to&nbsp;authenticate ONLY&nbsp;the first request by using the following command:</span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>appcmd set config /section:windowsAuthentication /authPersistNonNTLM:true</strong></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;">You may experience slow performance when you use Integrated Windows authentication together with the Kerberos authentication protocol in IIS 7.0 - <a href="https://support.microsoft.com/kb/954873">https://support.microsoft.com/kb/954873</a></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"><strong>Kerberos authPersistNonNTLM authentication, request based vs. session based authentication - </strong><a href="https://blogs.msdn.com/b/benjaminperkins/archive/2011/10/31/kerberos-authpersistnonntlm-authentication-request-based-vs-session-based-authentication.aspx">https://blogs.msdn.com/b/benjaminperkins/archive/2011/10/31/kerberos-authpersistnonntlm-authentication-request-based-vs-session-based-authentication.aspx</a></span></p>
<p style="padding-left: 30px;"><span style="font-family: arial,helvetica,sans-serif; font-size: small;"></span></p>
<p>&nbsp;</p>
<hr style="width: 100%;" width="100%" /><hr style="width: 100%;" width="100%" />
<p>Many thanks to <a href="https://blogs.technet.com/b/caseys/" target="_blank">Casey Spiller</a>, Steve Wesa, Chris Korff, David Santamaria, Finbar Ryan, <a href="https://blogs.technet.com/b/kpapadak/" target="_blank">Konstantin Papadakis</a> and Greg Askew for contributing to these recommendations.</p>
<p>&nbsp;</p>
<hr style="width: 100%;" width="100%" />
<p><!-- Site Meter -->
<script type="text/javascript" src="https://s51.sitemeter.com/js/counter.js?site=s51technet">// <![CDATA[

// ]]]]><![CDATA[></script>
</p>
<noscript>&lt;a href="https://s51.sitemeter.com/stats.asp?site=s51technet" target="_top"&gt; &lt;img src="https://s51.sitemeter.com/meter.asp?site=s51technet" alt="Site Meter" border="0"/&gt;&lt;/a&gt;</noscript>]]></content:encoded>
    </item>
    <item>
      <title>Windows 8 devices fail to Sync with Microsoft Exchange with 86000C2A, 8600C2B, 86000C29 Error (or similar) after an ActiveSync Mailbox Policy is applied</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/windows-8-devices-fail-to-sync-with-microsoft-exchange-with-86000c2a-8600c2b-86000c29-error-or-similar-after-an-activesync-mailbox-policy-is-applied</link>
      <pubDate>Fri, 15 Mar 2013 09:54:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2013/03/15/windows-8-devices-fail-to-sync-with-microsoft-exchange-with-86000c2a-8600c2b-86000c29-error-or-similar-after-an-activesync-mailbox-policy-is-applied/</guid>
      <description><![CDATA[Having trouble creating an ActiveSync Mailbox Policy to support your shiny new Windows Phone or...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">Having trouble creating an ActiveSync Mailbox Policy to support your shiny new Windows Phone or Surface devices without checking the dreaded "AllowNonProvisionableDevices" setting? <strong>Well, let's see if I can help you out!</strong></span></p>
<p><span style="font-size: small;">While it is documented that Windows devices only "support" certain policy settings:</span></p>
<p><span style="font-size: small;"><a href="https://support.microsoft.com/kb/2823900">https://support.microsoft.com/kb/2823900</a></span></p>
<p><span style="font-size: small;"><a href="https://support.microsoft.com/kb/2464593/en-us">https://support.microsoft.com/kb/2464593/en-us</a></span></p>
<p><span style="font-size: small;">There are <strong>SOME</strong> settings that can be configured that will prevent these devices from syncing <strong>AT ALL</strong>.</span></p>
<p><span style="font-size: small;">These settings are as follows:</span></p>
<p><span style="font-size: small;">-MaxCalendarAgeFilter</span><br /><span style="font-size: small;">-MaxEmailAgeFilter</span><br /><span style="font-size: small;">-AllowStorageCard</span><br /><span style="font-size: small;">-WSSAccessEnabled </span><br /><span style="font-size: small;">-UNCAccessEnabled</span></p>
<p><span style="font-size: small;">In my testing, I found that ANY of these settings being set to ANYTHING other than the values specified below will result in sync failure. I also included a sample of how I set the values using Exchange Management Shell:</span></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/5164.TestWP81.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/5164.TestWP81.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/5164.TestWP81.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/5164.TestWP81.JPG" alt="" border="0" /></a></p>
<p>Set-ActiveSyncMailboxPolicy $YourPolicy -MaxCalendarAgeFilter All<br />Set-ActiveSyncMailboxPolicy $YourPolicy -MaxEmailAgeFilter All<br />Set-ActivesSyncMailboxPolicy $YourPolicy -AllowStorageCard $true<br />Set-ActivesSyncMailboxPolicy $YourPolicy -WSSAccessEnabled $false<br />Set-ActivesSyncMailboxPolicy $YourPolicy -UNCAccessEnabled $false&nbsp;</p>
<p><span style="font-size: small;">Here is the final, working policy that I came up with:</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/0724.testwp8Final.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/0724.testwp8Final.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/0724.testwp8Final.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/0724.testwp8Final.JPG" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p>To APPLY the test policy that I created to my test mailbox, I ran the following:</p>
<p>PS C:\Windows\System32&gt; Get-CasMailbox "MyTestMailbox" | set-CasMailbox -ActiveSyncMailboxPolicy "TestWP8"</p>
<p><strong>Please note that:</strong></p>
<p><strong>DeviceEncryptionEnabled</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : False<br /><strong>RequireDeviceEncryption&nbsp;&nbsp;</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : True</p>
<p>&nbsp;Are <strong>NOT</strong> the same thing.</p>
<p>"The <strong>DeviceEncryptionEnabled</strong> parameter, when set to $true, requires that the storage card of the device be encrypted. The default value is $false. We recommend that you don't use this setting and use the <strong>RequireStorageCardEncryption</strong> parameter instead."</p>
<p><br />The documentation on these parameters isn't currently very clear (imo), and varies depending on which cmdlet you enumerate, <strong>get-help get-ActiveSyncMailboxPolicy -full</strong> vs <strong>get-help</strong> <strong>New-ActiveSyncMailboxPolicy -full</strong>, so please go with the ABOVE guidance and DON'T use the <strong>DeviceEncryptionEnabled</strong> parameter. If you want the actual DEVICE to be encrypted, use the <strong>RequireDeviceEncryption</strong> parameter.</p>
<p>Please note that NEITHER Win 7 NOR Win 8 currently support encryption of the storage card:<br /><a href="https://support.microsoft.com/kb/2464593/en-us">https://support.microsoft.com/kb/2464593/en-us</a></p>
<p>&nbsp;</p>
<p>During testing, I can see whether any applied parameters are working by running the following:</p>
<p>Get-ActiveSyncDevice | Get-ActiveSyncDeviceStatistics | select-object DeviceID,DeviceOS,DeviceOS,DeviceModel,DeviceAccessState,DevicePolicyApplied,DevicePolicyApplicationStatus</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/6406.TestWP86.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/6406.TestWP86.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/6406.TestWP86.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/6406.TestWP86.JPG" alt="" border="0" /></a></p>
<p>In the above example, you can see that the policy is listed as "<strong>AppliedInFull</strong>", and <strong>DeviceAccessState</strong> shows "<strong>Allowed</strong>".</p>
<p>If there are problems with any of your settings, you will see something like the following:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/2746.TestWP87.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/2746.TestWP87.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/2746.TestWP87.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/2746.TestWP87.JPG" alt="" border="0" /></a></p>
<p><span style="font-size: small;">Note in the above snapshot that the <strong>DeviceAcessState</strong> shows <strong>"Blocked",</strong> and that the <strong>DevicePolicyApplicationStatus</strong> is <strong>"PartiallyApplied".</strong></span></p>
<p><span style="font-size: small;">See <a href="https://help.outlook.com/en-us/140/cc952755.aspx">https://help.outlook.com/en-us/140/cc952755.aspx</a> for instructions on connecting to EMS via Remote Powershell.</span></p>
<p><span style="font-size: small;">These tests were performed against&nbsp;one of my&nbsp;Exchange Online (O365 for Education) domains. Results may vary slightly depending on YOUR version of Exchange. Enjoy!</span></p>
<hr style="width: 100%;" width="100%" />
<p>Many thanks to <strong>Jamie Tsottles</strong> and <strong>Charlotte Raymundo</strong> for assisting with this post and verifying the veracity of the content :)</p>]]></content:encoded>
    </item>
    <item>
      <title>IIS7 Primer for Non IIS Gurus (Originally written for Exchange engineers)</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/iis7-primer-for-non-iis-gurus-originally-written-for-exchange-engineers</link>
      <pubDate>Wed, 28 Nov 2012 07:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2012/11/28/iis7-primer-for-non-iis-gurus-originally-written-for-exchange-engineers/</guid>
      <description><![CDATA[&nbsp;
IIS 7 Primer (for those accustomed to IIS 6) 
This "Primer" was condensed down from a week...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>IIS 7 Primer (for those accustomed to IIS 6) </strong></span></p>
<p><strong>This "Primer" was condensed down from a week long IIS 7 class that I had the privilege of attending, which was delivered by <span style="color: #ff0000;">Patty Stoy</span>. You rock <span style="color: #ff0000;">Patty</span>! <span style="color: #ff0000;">Laura LaFleur</span> assisted with development of this content. Thanks <span style="color: #ff0000;">Laura</span>! And a BIG thank you to <span style="color: #ff0000;">Courtney Curry</span> for evangelizing this content and encouraging me to convert it to a blog post. Thanks <span style="color: #ff0000;">Courtney</span> :). </strong></p>
<p><strong>Props to <span style="color: #ff0000;">Scott Williams</span> for doing the technical review and proofing. Many thanks to <span style="color: #ff0000;">Jason Slaughter</span> for "The Case of the Missing G". :) And to <span style="color: #ff0000;">Brian Day</span>, for all his wonderful ideas ;). </strong></p>
<p><strong>And remember, The Wire Never Lies! - <a href="https://blogs.technet.com/b/kpapadak/">https://blogs.technet.com/b/kpapadak/</a></strong></p>
<p>&nbsp;</p>
<hr style="width: 100%;" width="100%" />
<p>&nbsp;</p>
<p><strong>Things to get used to&hellip;</strong><span style="color: #0000ff;">IIS7 is VERY different. So different, you can forget about IIS6 for the most part. Let's Rock &amp; Roll Peeps!</span></p>
<div>
<p><strong>Installation</strong></p>
</div>
<ul>
<li>ASP.NET and the .NET framework have been fully integrated into IIS7. This means that developers can fully extend the core server architecture by using ASP.NET and the NET framework.</li>
<li>IIS7 is now very <strong>'modular'</strong>. There are over 40 modules that <strong>'can'</strong> be installed. However, a 'default' install of IIS7 will include only the modules necessary to provide static web content with anonymous authentication. It IS possible to have 3rd party modules as well, so watch out for these!</li>
<li>IIS7 does NOT include POP3 or SMTP services by default</li>
<li>To Install IIS7 via GUI using Server Manager...&nbsp; For example, for a CAS server:</li>
<ul>
<li>Start&gt;Run&gt;All Programs&gt;Administrative Tools&gt;Server Manager</li>
<li>On the left, click Roles</li>
<li>On the right in the Roles frame, select Add Roles, click Next</li>
<li>In the Add Roles Wizard, ensure that the following is selected:&nbsp;</li>
</ul>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web Server</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web ISAPI-Ext</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web-Metabase</p>
<p style="padding-left: 30px;">IIS6 Compatibility Mode</p>
<p style="padding-left: 30px;">Basic Authentication</p>
<p style="padding-left: 30px;">Digest Authentication</p>
<p style="padding-left: 30px;">Windows Authentication</p>
<p style="padding-left: 30px;">Dynamic Content Compression</p>
<p style="padding-left: 30px;">HTTP Redirect (optional)</p>
<p style="padding-left: 30px;">RPC Proxy (optional)</p>
<p style="padding-left: 30px;">Windows Process Activation Services</p>
<p style="padding-left: 30px;">Active Directory CertificateServices (optional)</p>
<p>&nbsp;</p>
<ul>
<li>EVERYTHING that can be installed via GUI can beinstalled via the command line tool:&nbsp; servermanagercmd<br />
<ul>
<li>Try this from a CMD line:&nbsp; servermanagercmd -q</li>
<li>Details on how to install prerequisites for Exchange using the command line tool, servermanagercmd:</li>
</ul>
</li>
</ul>
<p><a href="https://technet.microsoft.com/en-us/library/bb691354(EXCHG.80).aspx">https://technet.microsoft.com/en-us/library/bb691354(EXCHG.80).aspx</a></p>
<p><span style="color: #0000ff;">Note</span>:&nbsp; It IS important that the prerequisites are installed in the proper order (for Exchange Server) when installing via command line!</p>
<ul>
<li>IIS services are dependent on the Windows Process Activation Service (WAS)!&nbsp; All features grouped under the IIS-Web server update depend on the WAS features so<br />WAS <span style="background-color: #ffff00;">must</span> be installed when they are selected.&nbsp;</li>
<li>The GUI will automatically install WAS, but when installing by CMD or script then WAS must be explicitly specified.
<ul>
<li>If you MUST troubleshoot by uninstalling IIS, you MUST remove the Windows Process Activation Service as well as IIS components to get a 'true' uninstall.&nbsp;</li>
<li>IIS7 install logs are located in %systemroot%\Windows\iis7.log</li>
</ul>
</li>
</ul>
<div>
<p><strong>Application Pools</strong></p>
</div>
<ul>
<li>By default, when you create a new site in IIS, IIS will automatically create a new application pool with the same name</li>
<li>Windows Process Activation Service (WAS) will create a special &lt;AppPoolName&gt;.config file for the worker processes to use and will be located in the \inetpub\temp\AppPools directory. WAS will ACL<br />it to only allow that &lt;AppPool&gt; SID to access it. <span>This means the app pool is isolated from all other app pools!</span></li>
<li>And, you&nbsp;should ALL&nbsp;know how <span style="color: #ff0000;">SUPER COOL</span> that is :)</li>
</ul>
<div>
<p><strong>Metabase versus Config files</strong></p>
</div>
<ul>
<li>IIS6 had one long, flat file, metabase.xml, known as the &ldquo;IIS Metabase&rdquo;, which contained ALL settings related to IIS, all web sites, vdirs, etc.</li>
<li>IIS7 no longer uses this single, long flat file. It was replaced by ApplicationHost.config.&nbsp;</li>
<li>Some lower level settings are delegated to web.config files.&nbsp; These are hierarchical files, all written in XML, that are easily viewable/editable in any text editor, e.g., Notepad.</li>
</ul>
<p>The 3 config files that make up the<br />basis of an IIS7 install are:</p>
<ol>
<li>The root config file: ApplicationHost.config</li>
</ol>
<ul>
<li>Contains definitions of all sites, applications, vDir's, app pools, as well as global defaults for the web server.</li>
<li>This will generally be the ONLY config file present after a default install of IIS7 (Exchange is an exception, of course)</li>
<li>This file is located in %windir%\system32\inetsrv\config</li>
</ul>
<p><strong>THE Two root .NET framework config files:</strong></p>
<ol>
<li><span style="color: #ff0000;">Machine.config</span></li>
<li><span style="color: #ff0000;">Web.config&nbsp;</span></li>
</ol>
<ul>
<li>Both of the .NET Framework files are located in<br />%windir%\Microsoft.NET\Framework\framework_version\CONFIG.</li>
<li>In addition to the root applicationhost.config file, there can be configuration files at any hierarchical level beneath it,<br />including site, application, virtual, and/or physical directories. These are called web.config files, and they store settings that are particular to the specific<br />level (site, virtual directory, etc) where they are stored.</li>
<li>Sites, applications, virtual directories, physical directories, and files, inherit configuration settings from the server-level<br />configuration files and from any parent configuration files. This means you 'could' have several configuration files that apply to any particular virtual directory.</li>
</ul>
<p>Reference: <a href="https://technet.microsoft.com/en-us/library/cc754617.aspx">https://technet.microsoft.com/en-us/library/cc754617.aspx</a></p>
<ul>
<li>Exchange 2007 requires a metabase, so you will be required to install II6 Compatibility Mode when installing Exchange.<br />Therefore, you <span style="background-color: #ffff00;">will</span> get a metabase.xml file.</li>
<li>web.config files are NOT machine specific! This means if you have an issue with the&nbsp;/owa vDir on Windows 2008 Exchange 2007/2010 server, you can copy your web.config from a "healthy" machine, to the "unhealthy" machine. <span style="background-color: #ffff00;"><span style="color: #ff0000;">COOL RIGHT</span>!</span> You can also do comparisons of "good" to "bad" using standard text comparison utilties. (windiff, etc)</li>
<li>If you make a "bad" edit to a web.config file, you'll get the dreaded 500.19 - error indicating an error/invalid reference in a config file. Pretty self explanatory!</li>
</ul>
<p><span style="background-color: #ffff00;">The GUI will 'show' you the lowest level file from which it is getting configuration settings</span>. Click on a configuration setting within the site or directory to get this information to appear in the GUI, e.g., in IIS Manager, in the Connections pane on the left expand the DWS and select OWA. In the Features View pane on theright, double-click Authentication. Now at the bottom of the screen on the left, it shows:&nbsp; Configuration:&nbsp; &lsquo;Default web site/owa&rsquo; web.config</p>
<p><br /> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7288.5thFromLast.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7288.5thFromLast.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7288.5thFromLast.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7288.5thFromLast.jpg" alt="" border="0" /></a><br />&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<strong>New IIS Accounts</strong></p>
<ul>
<li>Previously, IIS used LOCAL accounts,<br />IUSR_&lt;MachineName&gt; and IIS_WPG. There were drawbacks to these, as the LOCAL account and its SID were included in the metabase.xml and in ACLs, thus<br />if you tried to copy the metabase or ACLs to another machine, it would not work.</li>
<ul>
<li>To replace the IUSR_MachineName account, we now have IUSR</li>
<li>To replace IIS_WPG group, we now have the IIS_USRS group</li>
<li><strong>The IUSR account is a BUILT IN account. Since it is a built in account, <span style="background-color: #ffff00;">IT NO LONGER</span><br /><span style="background-color: #ffff00;">NEEDS A PASSWORD! NO more worrying about resetting or syncing passwords!</span></strong></li>
<li>Since the IUSR account is built-in, the SID will be the same on ALL machines with IIS7 (S-1-5-17)</li>
<li>Since there is no longer anything &lsquo;machine specific&rsquo;, config files and ACL&rsquo;s can be copied from one machine to another with no issue.</li>
</ul>
</ul>
<div>
<p><strong>Troubleshooting</strong></p>
</div>
<ul>
<li><strong>To view currently executing requests in a worker process, do the following!</strong></li>
<li><strong>Open IIS Manager.</strong></li>
<li>In the Connections pane, select the server node in the tree.</li>
<li>In Features View, double-click Worker Processes.</li>
<li>Select a worker process from the grid.</li>
<li>Click View Current Requests in the Actions pane.</li>
<li>View the list of requests in the grid.</li>
</ul>
<p>Reference: <a href="https://technet.microsoft.com/en-us/library/cc732518.aspx">https://technet.microsoft.com/en-us/library/cc732518.aspx</a></p>
<ul>
<li><strong>Failed Request Tracing</strong>
<ul>
<li>This is an EXCELLENT new troubleshooting resource available in IIS7. The module must be installed and tracing enabled to collect tracing, then rules must be created to define what you wish to trace.
<ul>
<li>Rather than write this out, instructions can be found here...</li>
</ul>
</li>
</ul>
</li>
</ul>
<p style="padding-left: 150px;"><a href="https://technet.microsoft.com/en-us/library/cc725948.aspx">https://technet.microsoft.com/en-us/library/cc725948.aspx</a></p>
<p><span style="background-color: #ffff00;">Everyone please try this out!</span></p>
<ul>
<li><strong>DETAILED ERRORS</strong></li>
<ul>
<li>By default, a remote browser will get a LESS detailed error message than what will be displayed locally on the server. To CHANGE this behavior so that remote browsers get the same detailed error message, run the following from the directory:&nbsp;<br />%systemroot%\system32\inetsrv:</li>
<li>Appcmd set config /section:httpErrors /errorMode:Detailed &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(default is DetailedLocalOnly)</li>
</ul>
</ul>
<p><strong><br clear="all" /></strong><strong>USEFUL TOOLS/ITEMS SUMMARY</strong></p>
<ul>
<li><strong>For the most part, FORGET ABOUT RIGHT CLICKING IN IIS7!! It will generally get you no where!</strong></li>
<li>The following details how to install prerequisites for Exchange using the command line tool, servermanagercmd</li>
</ul>
<p style="padding-left: 30px;"><a href="https://technet.microsoft.com/en-us/library/bb691354(EXCHG.80).aspx">https://technet.microsoft.com/en-us/library/bb691354(EXCHG.80).aspx</a></p>
<ul>
<li><strong>How to make/restore a backup </strong>&ndash; APPCMD, the new all purpose utility for IIS7,<br />located in %systemroot%\system32\inetsrv directory</li>
</ul>
<p style="padding-left: 30px;">AppCmd Add Backup "BackupName"</p>
<p style="padding-left: 30px;">AppCmd List Backup (to list all backups)</p>
<p style="padding-left: 30px;">AppCmd Restore Backup &ldquo;BackupName&rdquo;</p>
<p style="padding-left: 30px;"><span style="background-color: #ffff00;">AppCmd Backups do NOT backup web.config files!</span></p>
<ul>
<li><strong>Failed Request Tracing</strong></li>
</ul>
<p style="padding-left: 60px;"><a href="https://technet.microsoft.com/en-us/library/cc725948.aspx">https://technet.microsoft.com/en-us/library/cc725948.aspx</a></p>
<ul>
<li><strong>To turn on DETAILED error reporting</strong> for remote browsers</li>
</ul>
<p style="padding-left: 60px;">Appcmd set config /section:httpErrors /errorMode:Detailed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;<strong>If you are looking for something and cannot find it, <span style="background-color: #ffff00;">IT PROBABLY ISN&rsquo;T INSTALLED!</span></strong></p>
<ul>
<li>
<p>The redirect module is <strong>NOT</strong> installed bydefault.&nbsp;</p>
</li>
<li><strong>URLScan functionality</strong> comes included as an optional module. Be sure to watch out for this! This module includes something called File Extension Restrictions, which will give an error code of 404.7 when a restriction is triggered. Verbs can also be denied and will trigger a 404.6</li>
<ul>
<li>Other codes from this module&hellip;</li>
<ul>
<li>404.13 &ndash; content too large</li>
<li>404.14 - URL is too large</li>
<li>404.15 &ndash; query string is too large</li>
<li>Unless you have detailed logging turned on, the remote client will ONLY see the 404, not the sub status code! You will need to turn on detailed logging, browse locally, or check the IIS log files for the substatus code</li>
<li>Event Viewer logs in Windows 2008 are .evtx files by default.&nbsp;&nbsp;To view or configure IP addresses/port numbers assigned to a site&hellip;Highlight the site on the left, then click Bindings in the Actions pane on the far right. You can also view SSL certificates from this area.</li>
</ul>
</ul>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7028.4thFromLast.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7028.4thFromLast.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7028.4thFromLast.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7028.4thFromLast.jpg" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<ul>
<li>To view the Application Pools and Physical Path assigned to a vDir&hellip;</li>
<li>Click the vDir (not right click), CLICK application settings in the Feature name pane, and click Basic Settings in the Actions pane</li>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/6082.3rdFromLast.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/6082.3rdFromLast.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/6082.3rdFromLast.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/6082.3rdFromLast.jpg" alt="" border="0" /></a></p>
<p>&nbsp;&nbsp;</p>
<ul>
<li>To check or change App Pool Identity&hellip;Select application pools in the Connections pane, select the App Pool Identity , then click Advanced settings in the Actions pane.&nbsp;</li>
<li>The Advanced Settings window will pop up as shown below:</li>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/3630.2ndToLast.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/3630.2ndToLast.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/3630.2ndToLast.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/3630.2ndToLast.jpg" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<ul>
<li>To view handler mapping (script mapping) for a virtual directory, select a virtual directory, double click handler mappings in the middle screen. Below are settings for the RpcProxy mapping. &nbsp;</li>
<li><span style="background-color: #ffff00;">Note the &lsquo;request restrictions&rsquo; box</span>, which tells you what verbs are allowed, as well as what level of access is required by the handler</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/8838.LastPic.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/8838.LastPic.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/8838.LastPic.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/8838.LastPic.jpg" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<table class="TableBordered" style="width: 548px; height: 1184px;" border="1" cellpadding="0">
<tbody>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p><strong>I need to do X in IIS 6&hellip;.</strong></p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p><strong>In IIS 7, do this...</strong></p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Browse vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Select Exchange in Action<br /> Menu &gt; Select Browse*&gt;443</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check which App Pool a vDir is running under</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; Under "Actions"<br /> click "Basic Settings" or "Advanced Settings..."</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check SSL settings for a vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click &ldquo;SSL&rdquo;</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check Authentication settings for a vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click "Authentication"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check IP and Domain Name</p>
<p>restrictions settings for a vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>Use AppCMD.exe, see Help topic</p>
<p>&ldquo;Configuring IPv4 Address and Domain Name Rules"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check Script Mappings/Wildcard</p>
<p>Mapping for a vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click "Handler Mappings"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check MIME Types for a vDir</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p style="text-align: left;">IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p style="text-align: left;">double click "MIME Types"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check Web Service Extensions</p>
<p>allowed/denied status</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight Server &gt; In the middle</p>
<p>pane, double click "ISAPI and CGI Restrictions"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>ISAPI Filter Status</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight Server &gt; In the middle pane,</p>
<p>double click "ISAPI Filters"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check Logfile properties (Globally)</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight Server &gt; In the middle pane,<br /> double click "Logging"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Enable Windows Directory Service Mapper</p>
<p>(Cert based Auth)</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle<br /> pane, double click "SSL Settings" &gt; "Client<br /> Certificates"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Enable Windows Directory Service Mapper</p>
<p>(Cert based Auth)</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click "SSL Settings" &gt; "Client Certificates"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Change an HTTP error page</p>
<p>(e.g. for setting up a redirection)</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click "Error Pages"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Verify that ASP Server Side Debug flags are</p>
<p>on and Detailed error messages sent to client</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight vDir &gt; In the middle pane,</p>
<p>double click "Error Pages" then click</p>
<p>"Edit Feature Settings"</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Check for Host Headers</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>IIS manager &gt; Highlight DWS &gt; Edit Bindings</p>
<p>&gt; HTTP or HTTPS &gt; Edit &gt; Host Name Options</p>
</td>
</tr>
<tr>
<td valign="top" nowrap="nowrap" width="336">
<p>Backup/Restore the Metabase</p>
</td>
<td valign="top" nowrap="nowrap" width="420">
<p>From a Command Prompt in directory type</p>
<p>%systemroot%\system32\inetsrv, run:</p>
<p>appcmd add backup "backup name"</p>
<p>appcmd restore backup "backupname"</p>
</td>
</tr>
</tbody>
</table>
<div align="center">&nbsp;&nbsp;</div>
<div align="center">&nbsp;</div>
<div style="text-align: left;" align="center"><span style="font-size: x-small;">As always, I&nbsp;assign any "credit" I might&nbsp;get for this post to&nbsp;MY mentors.&nbsp;Being a&nbsp;"mentor" is like being a parent, its a job that never ends. Mucho Gusto to Gary Reyman, Chris Korff, Mike Edwards,&nbsp;David Lugaro, Sandra LaFrenia, Laura LaFleur, Cherry Canady, Brad Hughes, Matt Byrd, Teresa Walker, Harvey Yancey, Terry Lyons, Beth Bellardo,Wyatt Staples,&nbsp;Jill Yaklin, Nic Seago, Tim McMichael, Brad Hughes&nbsp;and everyone else who contributed not to MY success, but to <strong>our success as a team</strong>. </span></div>]]></content:encoded>
    </item>
    <item>
      <title>How to PROPERLY gather traces for Calendaring issues, including ExTra</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/how-to-properly-gather-traces-for-calendaring-issues-including-extra</link>
      <pubDate>Thu, 04 Oct 2012 10:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2012/10/04/how-to-properly-gather-traces-for-calendaring-issues-including-extra/</guid>
      <description><![CDATA[To enable server side logging for an Organizer &amp; Attendee(s), do the following:
&nbsp;
1.Open...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size:medium;"><strong>To enable server side logging for an Organizer &amp; Attendee(s), do the following:</strong></span></p>
<p>&nbsp;</p>
<p>1.Open Exchange Management Shell on the Organizer&rsquo;s mailbox server. - <span style="color:#ff0000;">you can use Start &gt; Run to do this btw (by the way) </span></p>
<p style="padding-left:30px;"><span style="color:#ff0000;"><span style="color:#000000;">a.</span> <span style="color:#000000;">The RUN box can be opened via Windows keyboard shortcuts as well - <span style="color:#888888;"><a href="https://support.microsoft.com/kb/126449"><span style="color:#888888;">https://support.microsoft.com/kb/126449</span></a></span></span></span></p>
<p style="padding-left:30px;"><span style="color:#000000;">b. And it looks like this...</span></p>
<p style="padding-left:30px;"><span style="color:#000000;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7776.Win8Run.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7776.Win8Run.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/7776.Win8Run.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/7776.Win8Run.png" border="0" /></a></span></p>
<p>2.Launch EXTRA</p>
<p style="padding-left:30px;"><span style="color:#333399;">TIP: You will get a pop up warning that states something to the effect of &quot;only do tracing when directed by MS Support, etc etc&quot; Click through the warning.</span></p>
<p>3.In the Exchange Troubleshooting Assistant that launches, select the task &ldquo;Trace Control&rdquo;</p>
<p>4.In the Configuring Trace File window, select the appropriate disk volume and folder, provide a file name with a .ETL extension, and change the file size to at least 200mb then select &ldquo;Set manual trace tags&rdquo;</p>
<p>5.To the Set Trace Tags Manually window:</p>
<p style="padding-left:30px;">a.Select all 8 &ldquo;Trace Types&rdquo;</p>
<p style="padding-left:30px;">b.Components to Trace select:</p>
<p style="padding-left:60px;">i.Data.Storage &ndash; &ldquo;ICal, MeetingMessage, Recurrence, UserConfiguration, WorkHours&rdquo;</p>
<p style="padding-left:60px;">ii.InfoWorker.Assistants.Calendar &ndash; &ldquo;Select All Tags&rdquo;</p>
<p style="padding-left:60px;">iii.MapiNet &ndash; &ldquo;MapiMessage, MapiNotification, MapiSynchroniser, tagDelegatedAuth&rdquo;</p>
<p style="padding-left:60px;">iv.MSExchangeWebServices &ndash; &ldquo;CalendarAlgorithm, CalendarCall, CalendarData&rdquo;</p>
<p style="padding-left:60px;">v.<strong>PtTrace</strong> &ndash; &ldquo;Select All Tags&rdquo;</p>
<p style="padding-left:60px;">vi.Store &ndash; &ldquo;tagCalendarChange, tagCalendarDelete, tagMtgMessageChange,tagMtgMessageDelete&rdquo;</p>
<p style="padding-left:60px;">vii.StoreDriver &ndash; &ldquo;CalendarProcessing&rdquo;</p>
<p style="padding-left:30px;">c.Expand &ldquo;Show mailbox trace filtering options&rdquo;</p>
<p style="padding-left:60px;">i.Check the box UserDN</p>
<p style="padding-left:60px;">ii.Fill in Alias in available text box and select &ldquo;Resolve Mailbox&rdquo;</p>
<p>d.Scroll down and select Start Tracing</p>
<p style="padding-left:30px;">6.Repeat steps 1 &ndash; 5 for Meeting Attendee&rsquo;s mailbox server to capture the Attendee&rsquo;s data.</p>
<p style="padding-left:30px;">7.Create meeting from Organizer to Attendee, have Attendee accept meeting, observe meeting change one hour ahead on Organizer&rsquo;s calendar.</p>
<p style="padding-left:30px;">8.Stop tracing on both mailbox servers.</p>
<p>While it IS preferable to have the <span style="color:#ff6600;">Outlook logging</span> running at the same time, there have been instances where this is not possible. <span style="color:#ff6600;">VERBOSE LOGGING MUST BE ENABLED!</span></p>
<p style="padding-left:30px;"><span style="color:#000000;">9. Enable Verbose Logging in Outlook by doing the following for Outlook 2003 and 2007:</span></p>
<p style="padding-left:30px;"><span style="color:#000000;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/8508.EnableLogging2007.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/8508.EnableLogging2007.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/8508.EnableLogging2007.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/8508.EnableLogging2007.JPG" border="0" /></a></span></p>
<p style="padding-left:30px;"><span style="color:#000000;">For Outlook 2010:</span></p>
<p style="padding-left:30px;"><span style="color:#000000;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/0412.EnableLogging2010.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/0412.EnableLogging2010.JPG"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/79/87/0412.EnableLogging2010.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-87/0412.EnableLogging2010.JPG" border="0" /></a></span></p>
<p style="padding-left:30px;">10.Close Outlook (So logging will start). <span style="color:#ff6600;">NO LOGS WILL BE COLLECTED UNTIL OUTLOOK IS RESTARTED!. </span></p>
<p style="padding-left:30px;"><span style="color:#0000ff;">TIP: This means that you could check the box ahead of time, and have the user restart later :)</span></p>
<p style="padding-left:30px;">11.Collect data (reproduce the issue, or leave logging running until the &quot;intermittent&quot; issue occurs)</p>
<p style="padding-left:60px;">a.Collect ETL file from Organizer&rsquo;s mailbox server</p>
<p style="padding-left:60px;">b.Collect ETL file from Attendee&rsquo;s mailbox server</p>
<p style="padding-left:60px;">c.Collect all files from user&rsquo;s workstation%TEMP%\OLKCALLogs\OLKCalLog&lt;date/time stamp&gt;.ETL</p>
<p style="padding-left:60px;">d.Include the subject, date and time of the meeting.</p>
<p style="padding-left:30px;">12. You can have the user disable Outlook logging at this point and continue working normally.</p>
<p>&nbsp;</p>
<p><span style="color:#ff6600;">Per the following KB:</span> <span style="color:#ff0000;">Logging can also be enabled/disabled via the registry. Keep in mind that&nbsp;ENABLING logging WILL cause a performance impact. There is no way to gauge the LEVEL of impact, as this depends on the nature of the issue as well as the usage habits of the affected user. And &quot;intermittent&quot; issues are often difficult (or impossible) to reproduce in a sanitized (lab) environment.</span></p>
<p><span style="color:#3366ff;">TIP: This means that yes, you can likely enable logging via GPO/script/whatever your favorite way is of hacking up the registry (i didn&#39;t say that and don&#39;t blame me!).</span></p>
<p>&nbsp;</p>
<p><strong>From the following article - <a href="https://support.microsoft.com/kb/831053">https://support.microsoft.com/kb/831053</a></strong></p>
<p>For Outlook 2003 and Oulook 2007:</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp; On the <strong>Tools</strong> menu, click <strong>Options</strong>.</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp; On the <strong>Other</strong> tab, click <strong>Advanced Options</strong>.</p>
<p>Click to select the <strong>Enable mail logging (troubleshooting) </strong>check box in Outlook 2003 and the <strong>Enable logging (troubleshooting)</strong> check<br />box in Outlook 2007, and then click <strong>OK</strong> two times.</p>
<p>&nbsp;</p>
<p>-or-</p>
<p>1.&nbsp;&nbsp;&nbsp;&nbsp; Click <strong>Start</strong> , and then click <strong>Run</strong> .</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp; In the <strong>Open</strong> dialog box, type <strong>regedit</strong> , and then click <strong>OK</strong> .</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp; In Registry Editor, locate the following key for Outlook 2010:</p>
<p>HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Options\Mail</p>
<p>Locate the following key for Outlook 2007:</p>
<p>HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\Options\Mail</p>
<p>Locate the following key for Outlook 2003:</p>
<p>HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\Options\Mail</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp; In the right pane, right-click <strong>EnableLogging</strong> , and then click <strong>Modify</strong></p>
<p>5.&nbsp;&nbsp;&nbsp;&nbsp; In the <strong>Edit DWORD Value</strong> dialog box, type <strong>1</strong> under <strong>Value data</strong> ,and then click <strong>OK</strong> .</p>
<p>6.&nbsp;&nbsp;&nbsp;&nbsp; Quit Registry Editor.</p>
<p><span style="color:#ff6600;">Upload the data to the SFT&nbsp;workspace provided to you by your Engineer or PFE to have it analyzed!!!</span></p>
<p>This info was dug out of the bowels of VKB, and my brain. And technet. I have no idea who to thank for helping me with this knowledge, but I&#39;ll start with Sandra Lafrenia, David Lugaro, Laura LeFLeur, Chris Korff, Kary Wall (log parser studio ftw!), Will Duff :), Tim McMichael, Tom Moore, Richard Roddy, Ragesh Gopinathan, Tak Chow, Mathew Barbee, Elizabeth Szpala (My grammar checker&nbsp; :)),&nbsp;Brad Hughes (testexchangeconnectivity.com), Adam Morris, Chad Lacy and Tam Pham, Cherry Canady,&nbsp;Harvey Lancey, Gerod Serafin, Chris Lineback, Steve Antonio, Konstantin Papadakis,&nbsp;Theo Browning (HB :), Scott Landry, Nino Bilic, Kalvin Koether, Dan Watson, Van Makriniotis&nbsp;(And the rest of Boston ;), Scott Oseycheck, Brian Day (HB)&nbsp;and Greg Mansius (Gold Star :)). Oh, and Brian Prince (SDP!). If I have forgotten anyone, just harangue me and I&#39;ll happily add your name :).</p>
<p>Oh. And Dave Goldman. And David Michael :)</p>
<p>I would thank TOM KERN, but we all know why that isn&#39;t necessary :p</p>
<p>Special thanks to <strong>Cherry Canady</strong> for grabbing most of&nbsp;the images from her lab!</p>
<p>hth,</p>
<p>/kris.</p>]]></content:encoded>
    </item>
    <item>
      <title>Procdump: How to PROPERLY gather dump (.dmp) files for crashes and hangs, CPU spikes, etc, including gathering PERF data, for Exchange issues</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/procdump-how-to-properly-gather-dump-dmp-files-for-crashes-and-hangs-cpu-spikes-etc-including-gathering-perf-data-for-exchange-issues</link>
      <pubDate>Wed, 03 Oct 2012 14:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2012/10/03/procdump-how-to-properly-gather-dump-dmp-files-for-crashes-and-hangs-cpu-spikes-etc-including-gathering-perf-data-for-exchange-issues/</guid>
      <description><![CDATA[Is your application crashing or hanging? Need to know why? 
&nbsp;
Well, prodcump may be able to...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: large;">Is your application crashing or hanging? Need to know why? </span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Well, prodcump may be able to help you.&nbsp; <span style="font-size: small;"><span style="color: #ff0000;">Procdump</span> is the newest thing around! You might remember adplus (eww!), well now its all about the Procdump! </span>Procdump allows us to "dump" the contents of the memory at the time (hopefully) that the "issue" occurs. </span></p>
<p><span style="font-size: small;"><a href="https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx">https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx</a>&nbsp;- download procdump from this link</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Here are some basic procdump usage note:</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><strong>-ma </strong></span><span style="font-size: small;">full memory dump, always do this on 2003 as 4gb is not much&nbsp;and it is good to have the heap</span></p>
<p><span style="font-size: small;"><strong>-mp </strong></span><span style="font-size: small;">miniplus, 2007 &ndash; 2010 grabs the essential linked heap memory</span></p>
<p><span style="font-size: small;"><strong>-n 3 </strong></span><span style="font-size: small;">Typical hang dump to get 3 dumps - We typically want 3 dumps, so we can see what changes, or what DOESN'T change, in memory (i.e., is the same thread waiting in all 3 dumps?). <span style="background-color: #ffff00;">A single dump file is typcially not that useful</span>.</span></p>
<p><span style="font-size: small;"><strong>-accepteula</strong> self explanatory</span></p>
<p><span style="font-size: small;"><strong>-e</strong> create a dump file only when an UNHANDLED exception occurs. We're typically not interested in HANDLED exceptions, because those types of exceptions get HANDLED and your program will continue to run. </span></p>
<p>&nbsp;</p>
<p><span style="font-size: small; background-color: #ffff00;">And last but not least, we need a place to store the dump file</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">So, an example of a dump of a typical Exchange store.exe hang would be something like this:&nbsp;</span></p>
<p><span style="font-size: small;"><strong>Procdump -e &ndash;mp store.exe &ndash;n 3 &ndash;accepteula &nbsp;d:\dumps\store_issue.dmp</strong></span></p>
<p><span style="font-size: small;">This will set up procdump to monitor&nbsp;store.exe and when/if an unhandled exception occurs, it will create 3 dump files and store them in the specified location.</span></p>
<p><span style="font-size: small;"><strong></strong>&nbsp;</span></p>
<p><span style="font-size: small;"><strong>Here's another fine example, courtesy of Edwin Huber. This was used to catch an MSFTEFD crash</strong></span></p>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: small;">You can use a combination of procdump v5 with the filter option and <a href="https://mail.microsoft.com/owa/redir.aspx?C=973B1GOzW0G_FGDyjJql5IOqwImjes8Iq0df3k48DjxDDaLs0TaCs_-vfTTGllqnZvVka-SOH_c.&amp;URL=http%3a%2f%2ftoolbox%2fgetmulticrash" target="_blank">https://toolbox/getmulticrash</a> to catch the culprit: (This is an MSFT internal only)</span></div>
<div style="margin: 0px;">&nbsp;<br />&nbsp;</div>
<div style="margin: 0px;"><span style="font-size: small;"><strong><span style="font-family: Calibri,sans-serif;"><span lang="de">ProcDump &ndash;ma &ndash;e 1 &ndash;f &ldquo;&rdquo;</span></span></strong></span></div>
<div style="margin: 0px;"><span style="font-family: Calibri,sans-serif; font-size: small;"><span lang="de">or</span></span></div>
<div style="margin: 0px;"><span style="font-size: small;"><strong><span style="font-family: Calibri,sans-serif;"><span lang="de">ProcDump &ndash;ma &ndash;e 1 &ndash;f *FailFastException</span></span></strong></span></div>
<p><span style="font-size: small;">Another neat trick is to trigger the dump off of a <strong>performance&nbsp;counter</strong>. Remember, you <span style="color: #ff0000;">MUST</span> get the RIGHT data if you want to help your customer resolve their issue!</span></p>
<p><span style="font-size: small;">In this Example, we will catch 3 hang dumps dumps when version bucket usage is 2480:</span></p>
<p><span style="font-size: small;">Procdump &ndash;mp store.exe -p &ldquo;\Database(Information store)\Version buckets allocated&rdquo; 2480 &ndash;n 3 &ndash;accepteula d:\dumps\store_issue.dmp</span></p>
<p>&nbsp;</p>
<p><span style="color: #000080; font-size: small;">Often times it can be beneficial to get perf data when gathering a procdump. This will allow the EE reviewing your dump (or you, if you're that awesome!) to get a better idea of WHERE in the dump to look. Usually you will want to gather threads in this type of perf. The easiest way to do this is to use ExPerfWiz: </span><span style="font-size: small;"><a href="https://experfwiz.codeplex.com/">https://experfwiz.codeplex.com/</a></span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">You will want to be sure to grab <strong>threads</strong> with the <strong>-threads</strong> switch, so your command might look something like this:</span></p>
<p><span style="font-size: small;">Here's a sample command:</span></p>
<p><span style="font-size: small;">.\experfwiz.ps1 -circular &ndash;maxsize 1024 &ndash;StoreExtendedOn &ndash;EseExtendedOn -threads -interval 30 -filepath D:\Logs</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">To STOP the perfwiz, run <strong>.\experwiz.ps1 -stop</strong>. The files will be of type .blg</span></p>
<p><span style="font-size: small;">Zip the files and upload them to the workspace provided to you.</span></p>
<p><span style="color: #ff0000; font-size: small;">NOTE: you might need to adjust which switches you use based on your particular issue!!</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">ExPerfWiz can be downloaded from <a href="https://experfwiz.codeplex.com">https://experfwiz.codeplex.com</a></span></p>
<p><span style="color: #000000; font-size: small;">Once you have gathered your dump files, you will need to submit them to CTS for review. If possible, please make sure the dumps are on a share LOCAL to the office where the EE reviewing is located. So, if the EE is in Charlotte, NC, and you have a desk/cube, etc, in that location, pull the files down locally and share them out (unzipped).</span></p>
<p><span style="color: #000000; font-size: small;"></span></p>
<p><span style="color: #000000; font-size: small;">For IIS issues, or anything that involves w3wp or application pool crashes, procdump may not be your best bet. Below are detailed posts on using debugdiag to generate dump files in such circumstances:</span></p>
<p>&nbsp;</p>
<p><a href="https://blogs.msdn.com/b/kaushal/archive/2012/05/09/using-debugdiag-to-capture-a-dump-on-first-chance-exception.aspx">https://blogs.msdn.com/b/kaushal/archive/2012/05/09/using-debugdiag-to-capture-a-dump-on-first-chance-exception.aspx</a></p>
<p><a href="https://blogs.msdn.com/b/pfedev/archive/2012/09/30/troubleshooting-event-id-5010-iis-application-pool-availability.aspx">https://blogs.msdn.com/b/pfedev/archive/2012/09/30/troubleshooting-event-id-5010-iis-application-pool-availability.aspx</a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Many thanks to <strong>Mark Russinovich, Mike Lagase</strong>, <strong>Edwin Huber, Theo Browning,&nbsp;<a href="https://blogs.technet.com/b/kpapadak/">Konstantin Papadakis</a> and Jamie Tsottles </strong>for assistance with this blog post. And thank you to <strong>Jeff Stokes</strong> for making the suggestion :)</span></p>]]></content:encoded>
    </item>
    <item>
      <title>The case of Outlook Autodiscover and Error 0x80072ee4</title>
      <link>https://docs.microsoft.com/archive/blogs/kristinw/the-case-of-outlook-autodiscover-and-error-0x80072ee4</link>
      <pubDate>Thu, 23 Feb 2012 12:37:00 GMT</pubDate>
      <dc:creator><![CDATA[Kris-MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kristinw/2012/02/23/the-case-of-outlook-autodiscover-and-error-0x80072ee4/</guid>
      <description><![CDATA[I had a customer who was having issues with a certain subset of Windows 7 machines. The issue...]]></description>
      <content:encoded><![CDATA[<p>I had a customer who was having issues with a certain subset of Windows 7 machines. The issue presented itself as "users are unable to set out of office (otherwise known as oof) settings from within Outlook". Upon syncing up with the client, I had them do a quick test to see if we could see availability for other users when attempting to create a meeting request. We could not, so given the fact that both oof and availability were broken, this was a pretty clear sign that Autodiscover was not functioning properly for these Outlook 2007 clients.</p>
<p>These were domain joined machines, which means we would be contacting Active Directory to get our Autodiscover url. Since this problem was only affecting a small subset of machines, it was assumed that autodiscover was properly configured in the environment. So, from&nbsp;an affected&nbsp;client we hovered over the Outlook icon in the bottom right corner of the machine, held down the ctrl key and right clicked, and ran Test E-mail Autoconfiguration. Since this was a domain joined client there was no need to enter credentials, so we just unchecked the "Use Guessmant and "Secure Guessmart" boxes, and hit the Test button (there should be no need to change the default populated E-mail address OR enter a password on a domain joined machine).</p>
<p>During the test, Outlook contacted the SCP like it should, but then returned an error I had never seen before...<strong>0x80072ee4</strong>.</p>
<p>Looking this error up, I found the following information...</p>
<p>&nbsp;ERROR_INTERNET_INTERNAL_ERROR&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; inetmsg.h<br />&nbsp;ERROR_WINHTTP_INTERNAL_ERROR&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; winhttp.h<br />&nbsp;ERROR_INTERNET_INTERNAL_ERROR&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; wininet.h</p>
<p>So, now I felt like we were getting somewhere, but I still wasn't quite sure yet "where" this was :)</p>
<p>Sometimes proxy configurations can interfere with Autodiscover communication, so we entered the autodiscover SCP value (in the form of <a href="https://exchangeservername.domain.com/autodiscover/autodiscover.xml">https://exchangeservername.domain.com/autodiscover/autodiscover.xml</a>) into the client's web browser, and we got the expected response (an xml page with a 600 error). I felt like this ruled out any possible proxy configuration issues (even though we excluded the proxy in other ways).</p>
<p>In the past I have seen non Microsoft programs cause this type of problem, so we decided to "clean boot" the machine as described here: <a href="https://support.microsoft.com/kb/331796">https://support.microsoft.com/kb/331796</a></p>
<p>We also disabled all non-Microsoft Outlook add-ins as described here: <a href="https://office.microsoft.com/en-us/outlook-help/enable-or-disable-add-ins-in-office-programs-HA010034127.aspx">https://office.microsoft.com/en-us/outlook-help/enable-or-disable-add-ins-in-office-programs-HA010034127.aspx</a></p>
<p>We then rebooted the machine but were still out of luck :(</p>
<p>Feeling like I was running out of options, I decided to do some netsh tracing, as described here: <a href="https://technet.microsoft.com/en-us/library/dd878517(v=WS.10).aspx">https://technet.microsoft.com/en-us/library/dd878517(v=WS.10).aspx</a>, using the "internetclient" scenario. Upon reviewing the trace, I found that none of the traffic seemed to be getting past winsock.</p>
<p>As a last ditch effort, I had the client reset winsock by running the following from an administrative command prompt:</p>
<p><strong>netsh winsock reset</strong></p>
<p>This command requires a reboot, and after rebooting we found that Outlook was now able to successfully contact Autodiscover (which also fixed our oof and availability issues). It turns out that a program that had been installed on the affected machines had modified Winsock in such a way as to break Outlook communication over SSL back to Exchange.</p>
<p>Hope this information helps you out if you ever happen to run into this error :)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
  </channel>
</rss>