<?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>James Carroll</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jamec/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jamec/feed.xml</link>
    <description>Saving Corporate America one email server at a time</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:26:34 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Exchange 2013 - The case of the mysterious crashing RPC Proxy Application Pool</title>
      <link>https://docs.microsoft.com/archive/blogs/jamec/exchange-2013-the-case-of-the-mysterious-crashing-rpc-proxy-application-pool</link>
      <pubDate>Wed, 29 Jan 2014 13:31:00 GMT</pubDate>
      <dc:creator><![CDATA[jamec]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jamec/2014/01/29/exchange-2013-the-case-of-the-mysterious-crashing-rpc-proxy-application-pool/</guid>
      <description><![CDATA[We have seen some issues lately where application pools have been crashing.&nbsp; Usually this is...]]></description>
      <content:encoded><![CDATA[<p></p>
<p><span style="font-family:comic sans ms,sans-serif;">We have seen some issues lately where application pools have been crashing.&nbsp; Usually this is a brief service interruption and sometimes the users do not notice there was an issue.&nbsp; There have been a few cases recently where we are seeing the MSExchangeRPCProxyAppPool crashing.&nbsp; Usually you will see the following events in the System log</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">&nbsp;Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span><br /><span style="font-family:comic sans ms,sans-serif;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft-Windows-WAS</span><br /><span style="font-family:comic sans ms,sans-serif;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11/8/2013 9:16:32 AM</span><br /><span style="font-family:comic sans ms,sans-serif;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5011</span><br /><span style="font-family:comic sans ms,sans-serif;">Task Category: None</span><br /><span style="font-family:comic sans ms,sans-serif;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Warning</span><br /><span style="font-family:comic sans ms,sans-serif;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="font-family:comic sans ms,sans-serif;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="font-family:comic sans ms,sans-serif;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mailbox.Contoso.com</span><br /><span style="font-family:comic sans ms,sans-serif;">Description:</span><br /><span style="font-family:comic sans ms,sans-serif;">A process serving application pool &#39;MSExchangeRpcProxyAppPool&#39; suffered a fatal communication error with the Windows Process Activation Service. The process id was &#39;4356&#39;. The data field contains the error number.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">And</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">Log Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System</span><br /><span style="font-family:comic sans ms,sans-serif;">Source:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Service Control Manager</span><br /><span style="font-family:comic sans ms,sans-serif;">Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11/8/2013 9:16:53 AM</span><br /><span style="font-family:comic sans ms,sans-serif;">Event ID:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7031</span><br /><span style="font-family:comic sans ms,sans-serif;">Task Category: None</span><br /><span style="font-family:comic sans ms,sans-serif;">Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error</span><br /><span style="font-family:comic sans ms,sans-serif;">Keywords:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Classic</span><br /><span style="font-family:comic sans ms,sans-serif;">User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A</span><br /><span style="font-family:comic sans ms,sans-serif;">Computer:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mailbox.Contoso.com</span><br /><span style="font-family:comic sans ms,sans-serif;">Description:</span><br /><span style="font-family:comic sans ms,sans-serif;">The Microsoft Exchange RPC Client Access service terminated unexpectedly.&nbsp; It has done this 1 time(s).&nbsp; The following corrective action will be taken in 5000 milliseconds: Restart the service.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">Microsoft determined that in most cases this was an issue and have provided a fix in Exchange 2013 CU3.&nbsp; For most people, this resolves their issue.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">However, there is another reason that this could be happening, so if you have applied Exchange 2013 CU3 and you are still hitting this issue, please read on.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">In 2013 we move from a Public Folder database to a Public Folder Mailbox.&nbsp; We provide step by step migration instructions here <a href="https://technet.microsoft.com/en-us/library/jj150486(v=exchg.150).aspx">https://technet.microsoft.com/en-us/library/jj150486(v=exchg.150).aspx</a>.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">Sometimes when you delete things, AD doesn&#39;t always get the update that it should.&nbsp; We have seen this in the past with connectors or user objects where we see reference to a deleted object.&nbsp; That is what can be happening here.&nbsp; In some of the cases that I have worked, the Legacy Public Folder is showing as a deleted object in AD, specifically the msExchHomePublicMDB attribute.&nbsp; To check to see if this is populated, take the following steps</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">1. Open ADSIEdit</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">2. Connect to the Configuration container</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">3. Expand Services</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">4. Expand Microsoft Exchange</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">5. Expand your Organization name</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">6. Expand Administrative Groups</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">7. Highlight Databases</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">8. In the right hand pane you will see a list of databases.&nbsp;</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">9. Right click on the database object and chose Properties</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">10. Scroll down to msExchHomePublicMDB</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">11. If you see reference to the old database delete the value</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">12. Check the rest of the databases to make sure that they are not populated in the same way.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">Once this has been removed, you should stop seeing the System events noted above.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">Thanks to Carl McDaniel, Corey Callaway and JT Thompson for their valuable assistance with this.</span></p>
<p><span style="font-family:comic sans ms,sans-serif;">~JC</span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Changes in Exchange 2010 SP 3 that could affect companies that have a large Outlook Anywhere population</title>
      <link>https://docs.microsoft.com/archive/blogs/jamec/changes-in-exchange-2010-sp-3-that-could-affect-companies-that-have-a-large-outlook-anywhere-population</link>
      <pubDate>Fri, 30 Aug 2013 08:43:00 GMT</pubDate>
      <dc:creator><![CDATA[jamec]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jamec/2013/08/30/changes-in-exchange-2010-sp-3-that-could-affect-companies-that-have-a-large-outlook-anywhere-population/</guid>
      <description><![CDATA[Exchange 2010 SP3 was released recently.&nbsp; The big fanfare was that it allows for...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">Exchange 2010 SP3 was released recently.&nbsp; The big fanfare was that it allows for co-existence&nbsp;between Exchange 2010 and Exchange 2013.&nbsp; This is something that is routine when a new Exchange product is released, as the old product needs to be updated to know that there is a new product out there.&nbsp; This usually takes the form of Schema Updates and its pretty benign.&nbsp;</span></p>
<p><span style="font-size: small;">One thing that was done in service pack 3 for Exchange 2010 can cause an issue for companies who heavily use Outlook Anywhere.&nbsp; These companies may start to see users calling saying that they either cannot connect or are losing connectivity to their mailboxes.&nbsp;&nbsp;&nbsp;I plan to address this particular issue in this post.</span></p>
<p><span style="font-size: small;">In service pack 3, Exchange for the first time is going to utilize the ASP.NET runtime to process RPC over HTTP connections (Outlook Anywhere connections).&nbsp;ASP.NET runtime environment was architected according to design principles that place a premium on reliability and performance. The resultant ASP.NET process model </span><span style="font-size: small;">comprises two system elements&mdash;an in-process connector living inside the Web server process and an external worker process. In addition, the ASP.NET runtime infrastructure is scalable enough to automatically exploit any selected processor on multi-processor hardware.&nbsp;&nbsp;&nbsp;</span></p>
<p><span style="font-size: small;">ASP.NET has a connection limit of 25,000, by default.&nbsp; In some organizations, this may not be high enough.&nbsp; Once this limit is reached, users start getting dropped or they cannot connect at all.&nbsp; Think about it this way, once your Exchange server reaches the RPC Request limit of 500, users are disconnected or cannot connect, making for a poor user experience.&nbsp;&nbsp; <span style="color: black; line-height: 107%; font-family: 'Arial','sans-serif'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">This is a similar issue, just with a different component, ASP.NET.</span></span></p>
<p><span style="font-size: small;">There are a couple of ways of determining if you have hit this limit.&nbsp; The first is to fire up Performance Monitor, go to the object ASP.NET Apps V2.0.50727, expand that out and choose Requests Executing and choose the counter _LM_W3SVC_1_ROOT_Rpc&nbsp;and under the RPC/HTTP Proxy&nbsp;object add the counter "Current Number of Incoming RPC over HTTP Connections".&nbsp; Both these counters should be below 25,000.&nbsp; If you are close, watch the counter.&nbsp; If you see that the counter bumps to 25,001 and then drops to 24,994 you are exceeding this maximum.&nbsp; Below is what this looks like for the "Current Incoming of Incoming RPC over HTTP Connections":</span></p>
<p><span style="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/81/91/1106.rpchttp.PNG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-91/1106.rpchttp.PNG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/81/91/1106.rpchttp.PNG" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-81-91/1106.rpchttp.PNG" alt="" border="0" /></a></span></p>
<p><span style="font-size: small;">These 2 counters track the same exact way, so having only one or the other will be sufficient.&nbsp; I had to choose "Scale the selected counter" by Right Clicking on the counter.</span></p>
<p><span style="font-size: small;">The second way to see if you are running into this issue is to look in the IIS logs.&nbsp; You will see the following entries:</span></p>
<p><span style="font-size: small;">2013-03-21 23:06:14 10.0.0.1 RPC_OUT_DATA /rpc/rpcproxy.dll cas.contoso.com:6001 443 CONTOSO\user 10.0.0.10 MSRPC <strong>503 </strong>3 0 15</span><br /><br /><span style="font-size: small;">2013-03-21 23:06:15&nbsp;10.0.0.1 RPC_IN_DATA /rpc/rpcproxy.dll cas.contoso.com:6001 443 CONTOSO\user&nbsp;10.0.0.10 MSRPC <strong>503 </strong>3 0 46</span></p>
<p><span style="font-size: small;">These 2 items are clear indications that you are hitting this limit.&nbsp;</span></p>
<p><span style="font-size: small;">The good news is there is a simple fix for this.&nbsp; The following steps can be used to increase this limit:</span></p>
<ol>
<li><span style="font-size: small;">Verify which app pool the /RPC virtual directory is using appcmd:</span></li>
<ol>
<li><span style="font-size: small;"><strong>&nbsp;</strong><strong>cd %windir%\system32\inetsrv</strong><strong></strong></span></li>
<li><span style="font-size: small;">appcmd list app /path</span><br /><span style="font-size: small;">/RPC this will show which app pool for example</span></li>
</ol></ol>
<p><span style="font-size: small;">APP "Default Web Site/Rpc" (applicationPool:DefaultAppPool)</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">2. Verify the .net Framework the app pool is using for example:</span><br /><span style="font-size: small;">appcmd list apppool /name:DefaultAppPool</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)</span></p>
<p><span style="font-size: small;">In the above Example we </span><span style="font-size: small;">know the RPC\HTTP is using .net v2.0 managed framework (this is the default)&nbsp;and would use the</span><br /><span style="font-size: small;">following instructions:</span></p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><span style="font-size: small;">3. On the computer that is running the Client Access server role, locate the following file:</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Machine.config</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">4. Open the Machine.config file.</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">5. In the &lt;system.web&gt; section, locate the following line:</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">&lt;processModel</span><br /><span style="font-size: small;">requestQueueLimit="25000" autoConfig="true" /&gt;</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">6. Change the value of requestQueueLimit property to 65535.</span></p>
<p style="padding-left: 30px;"><span style="font-size: small;">7. Open a command prompt and type IISReset /noforce **</span></p>
<p><span style="font-size: small;">**Please note that if you have other applications running on your Exchange 2010 SP3 server that utilize IIS, doing an IISReset /noforce will also restart those applications, as well as your Exchange web applications.**</span></p>
<p><span style="font-size: small;">These recommendations are noted in&nbsp;<a title="Outlook Anywhere clients cannot connect to an Exchange server after you install Exchange Server 2010 SP3" href="https://support.microsoft.com/kb/2832198" target="_blank">Knowledge Base Article</a>&nbsp;2832198</span></p>
<p><span style="font-size: small;">How do you proactively get ahead of this?&nbsp; That's a good question.&nbsp; It is pretty simple though.&nbsp; I recommend that you start to look at the counters in Performance Monitor that are listed above.&nbsp; These counters are available for you to monitor in Exchange 2010 SP2.&nbsp; I would look at these counters over a span of a week or so to get an idea of what their daily average is.&nbsp; If they are well under 25,000 there will be no need to make the above changes to the machine.confg file.&nbsp; If you are close or going over the 25,000 limit that is imposed by ASP.NET you will need to make the changes to the machine.config file after applying SP3.</span></p>
<p><span style="font-size: small;">I would like to recognize Scott Oseychik, Bryan Talbert and Lou Prete for their assistance on this blog.&nbsp; Their knowledge and insight into Exchange and IIS, respectively, have been invaluable.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Calendaring, the recurring meeting and disaster</title>
      <link>https://docs.microsoft.com/archive/blogs/jamec/calendaring-the-recurring-meeting-and-disaster</link>
      <pubDate>Mon, 19 Apr 2010 13:45:00 GMT</pubDate>
      <dc:creator><![CDATA[jamec]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jamec/2010/04/19/calendaring-the-recurring-meeting-and-disaster/</guid>
      <description><![CDATA[End users are always looking for ways to make their life easier in their work life and there is one...]]></description>
      <content:encoded><![CDATA[<p>End users are always looking for ways to make their life easier in their work life and there is one area where that is glaringly evident, Calendaring.&nbsp; Users will make recurring meetings without any end dates, end dates that are so far out in advance that they might as well not have an end date, throw in attachments and other things that on the outside don&rsquo;t seem so bad,but given time and they will wreak havoc on your environment.</p>
<p>We have seen some cases in CSS where recurring meetings have brought an entire Exchange Organization to its knees and leaving everyone thinking, &ldquo;Why would someone do that?&rdquo;.&nbsp; It happens day in and day out and users are none the wiser because they have not been properly educated.&nbsp; And that is where the crux of the problem lies, user education.&nbsp; As Administrators, its not only our job to make sure that the environment runs smoothly, but also letting our user base know what is a best practice and what isn&rsquo;t.</p>
<p>When it comes to calendaring there is some great Office documentation that is out there already, however, in an effort to point customers to documentation on what would be best practices for recurring meetings, there were some things that were missing.&nbsp; As a Support Engineer, its easy for me to tell you what&rsquo;s wrong, but it goes a long way if I have something that says it as well.&nbsp; </p>
<p>One of the things that we see in CSS is when recurring meetings are modified.&nbsp; The first couple of times are no problem, but there comes a time when a simple change turns into a critical situation.&nbsp; Recurring meetings are special meetings and their history is very important, so it needs to be retained.&nbsp; So, when we make a change to that meeting, the original gets copied to the modification.&nbsp; We make another change and now the 1st modification and the original get copied to the 2nd modified meeting.&nbsp; Make a 3rd change and we start the process over again.&nbsp; At some point, there are too many copies attached to the message, so we go and clean it up and make it a nice neat embedded attachment.</p>
<p>Each time that meeting needs to be processed, because its been modified, store will take that meeting and expand out all the attachments and go through all the attendees before the modifications can be sent.&nbsp; Guess what all that processing does to the Exchange server?&nbsp; Uses up all its resources causing your users to complain of poor performance.&nbsp; </p>
<p>Here are some of the ways that I have seen this manifested:</p>
<p>1. Excessive transaction log creation.&nbsp; Using the steps from this <a target="_blank" href="https://blogs.msdn.com/scottos/archive/2007/07/12/rough-and-tough-guide-to-identifying-patterns-in-ese-transaction-log-files.aspx">blog</a> we can take a look into the logs and get a feel for what is going on.&nbsp; Its not a perfect world, but we really don&rsquo;t have anything better to view these with.&nbsp; What we are looking for is the last few lines and what they are telling us.&nbsp; Look for time zone info or anything that looks like a calendar appointment.&nbsp; The last case I worked with this, the bottom four lines were the same 2 individuals.&nbsp; In 200 log files those 2 names were mentioned over 4 million times!&nbsp; That was only the bottom 4 lines, there were many many more listings for the users.&nbsp; When we went to open the calendar item on one of the users mailbox, their Outlook locked up and became unusable.&nbsp; We had to go into the mailbox with MFCMapi to delete calendar item.&nbsp; We had to do this on the other calendars where this meeting showed up.&nbsp; </p>
<p>2. ESE 623 events &ldquo;The version store for instance&hellip;has reached its maximum size of&hellip;It is likely that a long-running transaction is preventing cleanup of the version store and causing it to build up in size.&rdquo;&nbsp; These events tell us that there is a long running transaction that is causing the store to stop responding to requests.&nbsp; These events are not exclusive to modified meetings.&nbsp; The only way we can tell is by getting 3 consecutive store dumps about 3 minutes apart.&nbsp; This will show us what we are waiting.&nbsp; In one case I worked with this, the EE that was reading the dump came over and asked me why the user was sending out a meeting request to 500 users.&nbsp; I started looking over their findings and started to see the same names over and over again.&nbsp; That is when we put 2 and 2 together.&nbsp; We got the originator on the phone and asked them about this meeting.&nbsp; The meeting only had a handful of users, but we were processing the same attendees over and over again and there were definitely attachments.&nbsp; That was when the user told me that they modify the meeting on a weekly basis.</p>
<p>Learning what user behavior went a long way in solving these cases.&nbsp; My first questions was why are we modifying a recurring meeting so many times?&nbsp; Doesn&rsquo;t that defeat the purpose?&nbsp; I think of a recurring meeting that happens for a specific period of time and during that time, it never changes, but that is me.&nbsp; Some of the answers to these questions make sense, but are what leads us to our problem.</p>
<p>&ldquo;I update the meeting agenda on a weekly basis.&nbsp; Its just easier to do it here&rdquo;</p>
<p>&ldquo;I need to send out the weekly sales statistics so that everyone is prepared for the meeting&rdquo;</p>
<p>&ldquo;This is just a place holder for that block of time, the meeting place changes each week&rdquo;</p>
<p>See, it makes their life easier.&nbsp; They just don&rsquo;t understand the consequences of their actions.&nbsp; Here are some good best practices when it comes to recurring meetings:</p>
<p>1. A recurring meeting should have an end date.&nbsp; That end date should be no further out then a year to two years.&nbsp; Think about it, do you know where you are going to be in a year?&nbsp; Will you still have the same job, the same company, the same boss even?&nbsp; Setting up a never ending recurring meeting with your boss doesn&rsquo;t ensure that you will have a job next year.</p>
<p>2. If you need to add an agenda to your meeting, send it in a separate email.&nbsp; Simply copy and paste the attendee list into a new email and send that.&nbsp; </p>
<p>3. If you need to send an attachment, send a link to where that data can be found.&nbsp; Make sure it is a file share that everyone can access and this way any changes to past and present documents are located in the same place.&nbsp; Now everyone can see the changes and we do not fill a mailbox with documents</p>
<p>4. Force the users to set end dates on their meetings.&nbsp; This doesn&rsquo;t prevent them from setting end dates that are 10-15-20 years out, but it makes them stop and think about it.&nbsp; Hopefully most of the users will follow your recommendation (1-2 years).&nbsp; You can set the following registry key DisableRecurNoEnd.&nbsp; </p>
<blockquote>
<p>For Outlook 2003: <a href="https://support.microsoft.com/kb/952144">https://support.microsoft.com/kb/952144</a></p>
</blockquote>
<blockquote>
<p>For Outlook 2007: <a href="https://support.microsoft.com/kb/955449">https://support.microsoft.com/kb/955449</a> </p>
</blockquote>
<p>For other great office tips, see the following link:</p>
<p>Outlook meeting requests: Essential do&rsquo;s and don&rsquo;ts: </p>
<p><a href="https://office.microsoft.com/en-us/help/HA011276781033.aspx">https://office.microsoft.com/en-us/help/HA011276781033.aspx</a> </p>
<p>~JC</p>]]></content:encoded>
    </item>
    <item>
      <title>Get-ExchangeServer | FL won’t return Static Domain Controllers</title>
      <link>https://docs.microsoft.com/archive/blogs/jamec/get-exchangeserver-fl-wont-return-static-domain-controllers</link>
      <pubDate>Fri, 26 Mar 2010 11:01:12 GMT</pubDate>
      <dc:creator><![CDATA[jamec]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jamec/2010/03/26/get-exchangeserver-fl-wont-return-static-domain-controllers/</guid>
      <description><![CDATA[Sometimes you need to set a statically controlled Domain Controller or Global Catalog server so that...]]></description>
      <content:encoded><![CDATA[<p>Sometimes you need to set a statically controlled Domain Controller or Global Catalog server so that Exchange will only use that particular DC or GC.&nbsp; In Exchange 2003 this was fairly easy.&nbsp; You would go into Exchange System Manager, right click the server object and choose properties.&nbsp; One of the tabs was for DSAccess.&nbsp; You would be able to uncheck the Automatically Detect AD servers.&nbsp; This made it really easy to see if a previous Exchange Administrator (its always someone else’s fault, isn’t it?) had made this change.&nbsp; Simply check the box and everything goes back to normal.</p> <p>In Exchange 2007, we don’t expose this in the UI anymore.&nbsp; In order to set this, we have to run Powershell commands.&nbsp; Even for a Powershell newb like me, that is not difficult to do.&nbsp; Microsoft even makes it easy for you to find out how to do this on Technet.&nbsp;&nbsp; The command we run is Set-ExchangeServer –Identity (Your Server name goes here) –StaticDomainControllers (Your DC name goes here). In the picture below, you will see that I set my CAS/Hub server to use win-19ichdu0fvs as my only DC.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/setstaticdc.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/setstaticdc.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="setstaticdc" border="0" alt="setstaticdc" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/setstaticdc_thumb.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/setstaticdc_thumb.png" width="925" height="45"></a> </p> <p>As you can also see I am going to run the Get-ExchangeServer | FL to make sure that it was set properly.&nbsp; What I expect to see is that I now have a statically set Domain Controller.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverfl.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverfl.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="getexchangeserverfl" border="0" alt="getexchangeserverfl" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverfl_thumb.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverfl_thumb.png" width="917" height="496"></a> </p> <p>But wait, where is it?&nbsp; Did the command run successfully?&nbsp; I didn’t get an error when I ran it, so it looks like I ran it properly.&nbsp; Let me run that again.&nbsp; Ok still no error let me run Get-ExchangeServer | FL again.&nbsp; And it still doesn’t show.&nbsp; I must be doing something wrong.&nbsp; Don’t worry your not, your just missing a switch that needs to be run in order for that to be populated.</p> <p>Before we get into that switch, let’s talk about where this gets set actually.&nbsp; Setting a static Domain Controller is not done in AD.&nbsp; It is actually done in the registry of the Exchange Server.&nbsp; Below is a snapshot of the regisrty before and after statically setting the Domain Controller.</p> <p>Before:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypre.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypre.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="registrypre" border="0" alt="registrypre" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypre_thumb.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypre_thumb.png" width="703" height="348"></a> </p> <p>After:</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypostset.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypostset.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="registrypostset" border="0" alt="registrypostset" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypostset_thumb.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/registrypostset_thumb.png" width="703" height="316"></a> </p> <p>As you can see we add the UserDC1 subfolder to Default after setting the static Domain Controller.&nbsp; Because this is not an AD setting, we need to call in to the Active Directory Topology server to pull this information.&nbsp; The Exchange product group determined that there was too much of performance hit when we called into the Active Directory Topology service, which calls into the Remote Registry Service to warrant populating this information.&nbsp; To offset that, they added the –status switch.&nbsp; When you run Get-ExchangeServer –Identity (Your server name goes here) –Status | FL you will be able to see the static Domain Controller.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverstatus.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverstatus.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="getexchangeserverstatus" border="0" alt="getexchangeserverstatus" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_technet/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverstatus_thumb.png" original-url="https://blogs.technet.com/blogfiles/jamec/WindowsLiveWriter/GetExchangeServerFLwontreturnStaticDomai_C454/getexchangeserverstatus_thumb.png" width="860" height="597"></a> </p> <p>Lately, Exchange Support has fielded some calls on the symptoms that are seen when you set the –StaticDomainControllers.&nbsp; The call usually starts out as, all my Domain Controllers are not reporting their information to Exchange properly.&nbsp; Only one seems to be able to communicate with Exchange.&nbsp; What the callers are looking at is the MSExchangeADAccess 2080 event.&nbsp; Below is how the 2080 event will look when you set a static Domain Controller (server names have been blacked out to protect the innocent)</p> <p>Event Type:&nbsp;&nbsp;&nbsp; Information<br>Event Source:&nbsp;&nbsp;&nbsp; MSExchange ADAccess<br>Event Category:&nbsp;&nbsp;&nbsp; Topology <br>Event ID:&nbsp;&nbsp;&nbsp; 2080<br>Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3/18/2010<br>Time:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12:51:32 PM<br>User:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; N/A<br>Computer:&nbsp;&nbsp; XXXXXXXXXXXXXX</p> <p>Description:</p> <p>Process IISIPM38882B6C-3365-4687-BC84-D5D0A52F5F59 -AP "MSEXCHANGEOWAAPPPOOL (PID=5704). Exchange Active Directory Provider has discovered the following servers with the following characteristics: <br>(Server name | Roles | Enabled | Reachability | Synchronized | GC capable | PDC | SACL right | Critical Data | Netlogon | OS Version) <br>In-site:<br>StaticDC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CD- 1 6 6 0 0 1 1 6 1&nbsp; <br>NotSet1&nbsp;&nbsp;&nbsp; --- 1 0 0 0 0 0 0 0 0<br>NotSet2&nbsp;&nbsp;&nbsp; --- 1 0 0 0 0 0 0 0 0<br>NotSet3&nbsp;&nbsp;&nbsp; --- 1 0 0 0 0 0 0 0 0<br>NotSet4&nbsp;&nbsp;&nbsp; --G 1 1 7 1 0 1 1 7 1&nbsp; <br>NotSet5&nbsp;&nbsp;&nbsp; --- 1 0 0 0 0 0 0 0 0<br></p> <p>At first glance this looks pretty bad and the natural instinct is to call PSS.&nbsp; There has to be something wrong with AD.&nbsp; But if you begin to break this event down, we can see a whole different story.&nbsp; In my troubleshooting, the first thing that struck me was how NotSet4 was reporting.&nbsp; Why would it only show a G?&nbsp; I know that G stands for Global Catalog server and in order for that to be a Global Catalog server, it would have to be a Domain Controller. Talking with the customer, I determined that the other servers were only Domain Controllers. So why doesn’t that show the D in the event?&nbsp; At this point this would tell me this is a configuration setting and not something wrong with AD.&nbsp; </p> <p>The previous Engineers were running Get_ExchangeServer | FL and were getting thrown off the path of what the true issue was.&nbsp; The customer was extremely confused because they thought it was a static Domain Controller as well, but the data we were getting back was not reflective of that.&nbsp; Once we ran Get-ExchangeServer –Status | FL we could see that it indeed was a static Domain Controller.&nbsp; To remove that we had to run Set-ExchangeServer –Identity (name of your Exchange Server goes here) –StaticDomainControllers $NULL.&nbsp; After running that and waiting 15 minutes, we could see that all of our Domain Controllers were back to speaking to the Exchange server.</p>]]></content:encoded>
    </item>
    <item>
      <title>RBAC and Exchange Trusted Subsystem</title>
      <link>https://docs.microsoft.com/archive/blogs/jamec/rbac-and-exchange-trusted-subsystem</link>
      <pubDate>Fri, 26 Feb 2010 08:28:12 GMT</pubDate>
      <dc:creator><![CDATA[jamec]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/jamec/2010/02/26/rbac-and-exchange-trusted-subsystem/</guid>
      <description><![CDATA[For years support has been saying “Don’t uncheck Allow Inheritable Permissions” but customers have...]]></description>
      <content:encoded><![CDATA[<p>For years support has been saying “Don’t uncheck Allow Inheritable Permissions” but customers have needs that require them to secure their environment and apply additional permissions and remove some of the permissions that are there.&nbsp; Usually, its not until later on that a problem arises, usually not until a reboot has been done.&nbsp; The call usually goes, “So Mr Customer what has changed?”&nbsp; Seeing as the permissions were changed weeks or even months ago, the customer honestly can say nothing.&nbsp; A little while later in the conversation or a look at the System log we come to find out a reboot happened.&nbsp; Ok great, let’s go find out what was changed.&nbsp; We usually find the customer needed to make a change to lock something down or add a special account to the permissions and inadvertently checks the wrong box or forgets to apply the permissions back in.&nbsp; Or as in some cases, left the lower level folders with the “Allow inheritable permissions to propagate from the parent” unchecked.&nbsp; Everything works fine until you introduce Exchange 2010.</p> <p>Our latest version of Exchange introduces a new character, the Exchange Trusted Subsystem.&nbsp; The Exchange Trusted Subsystem (ETS) was created to support the new Role Based Access Control (BAC) model.&nbsp; ETS is a highly-privileged Universal Security Group that has the Read and Write access on all Exchange related objects your Exchange Organization.&nbsp; If you take a look at the Technet Article <a href="https://technet.microsoft.com/en-us/library/ee681663.aspx" target="_blank">Exchange 2010 Deployment Permissions Reference</a> you will see just what permissions are set as you run each Setup /prepare* command (go ahead, expand out the bullets) .&nbsp; The point is, this is an extremely important account and should be treated with care.</p> <p>So now we know what the ETS is all about, lets go back to the “Allow Inheritable Permissions”.&nbsp; Security people are always trying to lock down their environment so that the right people have permissions to certain objects and others are locked out.&nbsp; Understandable, as most of corporate theft doesn’t come from the outside, it comes from within the corporation itself.&nbsp; There is always a fine line that when crossed creates one of the biggest headaches known to Support.&nbsp; I ran into a case yesterday that many moons ago, an IT Admin removed the “Include inheritable permissions from this object’s parent” on all containers under the Organization in AD.&nbsp; ETS got applied at the Organization level, but the lower level folders never got ETS. That is when the frustration begins.&nbsp; The customer was trying to work with one of our BETA products and needed to make sure that the Arbitration Mailboxes and the FederatedEamil mailbox were provisioned properly.&nbsp; In their installation they deleted their first databases and recreated them with distinct names.&nbsp; So we need to set the DiscoverySearchMailbox as an Arbitration mailbox. Not a big deal as we have well documented steps to do this.</p> <p>So we go and run the following command:</p> <p>Enable-Mailbox "DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}" –Arbitration and we get a cryptic response:</p> <p>The user's Active Directory account must be logon-disabled for linked, shared, or resource mailbox.<br>&nbsp;&nbsp;&nbsp; + CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : InvalidArgument: (Discovery Search Mailbox:ADUser) [Enable-Mailbox], RecipientTaskExcept<br>&nbsp;&nbsp; ion<br>&nbsp;&nbsp;&nbsp; + FullyQualifiedErrorId : BC7CCA19,Microsoft.Exchange.Management.RecipientTasks.EnableMailbox  <p>Hmm the DiscoverySearchMailbox is a default account that should already be disabled.&nbsp; We check and sure enough it is disabled.&nbsp; We start looking at the arbitration mailboxes to see if they are working correctly and we run get-mailbox –arbitration and get nothing returned, we just get sent back the command prompt.&nbsp; Well lets look what happens when we run this Enable-Mailbox in verbose mode:</p> <p>C:\Windows\system32&gt;Enable-Mailbox "DiscoverySearchMailbox {D919BA05-46A6-415f-80AD-7E09334BB852}" -Arbitration -De<br>bug -Verbose<br>VERBOSE: [14:47:19.205 GMT] Enable-Mailbox : Active Directory session settings for 'Enable-Mailbox' are:&nbsp; View Entire<br>Forest: 'False', Default Scope: 'XXXXXXX.com', Configuration Domain Controller: 'XXXX.com',<br>Preferred Global Catalog: 'XXXXX.com', Preferred Domain Controllers: '{<br>XXXXX.com, XXXXX.com }'<br>VERBOSE: [14:47:19.208 GMT] Enable-Mailbox : Runspace context: Executing user: Admin<br>Accounts/Enterprise Admin, Executing user organization: , Current organization: , RBAC-enabled: Enabled.<br>VERBOSE: [14:47:19.208 GMT] Enable-Mailbox : Beginning processing.<br>VERBOSE: [14:47:19.211 GMT] Enable-Mailbox : Instantiating handler with index 0 for cmdlet extension agent "Query Base<br>DN Agent".<br>VERBOSE: [14:47:19.212 GMT] Enable-Mailbox : Instantiating handler with index 1 for cmdlet extension agent "Rus Agent".<br>VERBOSE: [14:47:19.213 GMT] Enable-Mailbox : Instantiating handler with index 2 for cmdlet extension agent "Mailbox<br>Resources Management Agent".<br>VERBOSE: [14:47:19.214 GMT] Enable-Mailbox : Instantiating handler with index 3 for cmdlet extension agent<br>"Provisioning Policy Agent".<br>VERBOSE: [14:47:19.215 GMT] Enable-Mailbox : Instantiating handler with index 4 for cmdlet extension agent "Admin Audit<br>Log Agent".<br>VERBOSE: [14:47:19.699 GMT] Enable-Mailbox : Current ScopeSet is: {Domain Read Scope: {, }, Domain Write Scope : {,<br>}, Configuration Scope: {, }, Server Configuration Scope : {, }, , Exclusive Scope: {, }}<br>VERBOSE: [14:47:19.701 GMT] Enable-Mailbox : Searching objects "DiscoverySearchMailbox<br>{D919BA05-46A6-415f-80AD-7E09334BB852}" of type "ADUser" under the root "$null".<br>VERBOSE: [14:47:19.734 GMT] Enable-Mailbox : Previous operation run on domain controller XXXXX.com.  <p>Confirm<br>The user's Active Directory account must be logon-disabled for linked, shared, or resource mailbox.<br>[Y] Yes&nbsp; [A] Yes to All&nbsp; [H] Halt Command&nbsp; [?] Help (default is "Y"): Y<br>The user's Active Directory account must be logon-disabled for linked, shared, or resource mailbox.<br>&nbsp;&nbsp;&nbsp; + CategoryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : InvalidArgument: (Discovery Search Mailbox:ADUser) [Enable-Mailbox], RecipientTaskExcept<br>&nbsp;&nbsp; ion<br>&nbsp;&nbsp;&nbsp; + FullyQualifiedErrorId : BC7CCA19,Microsoft.Exchange.Management.RecipientTasks.EnableMailbox  <p>VERBOSE: [14:47:22.778 GMT] Enable-Mailbox : Ending processing.  <p>Ok, lets see if we can create a new user.&nbsp; We start seeing “Insufficient Rights to perform this action”.&nbsp; Looking at the RBAC rights we are a member of the Organizational Management group.&nbsp; That should be sufficient to complete the operation.&nbsp; So we log in with the Root Forest account and we are still getting an Access Denied.&nbsp; We add the Recipient Management Role to the user and still the same thing.&nbsp; So we have all the rights, yet we cannot create a user.&nbsp; There are 2 possible causes, there is a problem with the RBAC rights, which we know can’t be because we can verify we have the proper rights, but better yet, we actually can see the commands that are needed to be run.&nbsp; You see if you don’t have the proper RBAC roles, you won’t even be able to run the command.&nbsp; So in our case, we can run the command, so we must not have rights to AD.  <p>That leads us to what could be our second issue, rights to AD. Our account is an Enterprise Admin, Schema Admin, Domain Admin, etc. You get the point, we have rights to do whatever we want in AD.&nbsp; So we start at the top of the Organization and we see that the Exchange Trusted Subsystem is listed there with the proper AD rights.&nbsp; What about our sub-folders.&nbsp; We check the container where we are creating the user and low and behold, the ETS is not listed. Click the Advanced button and the “Allow inheritable permissions to propagate from the parent” was unchecked.&nbsp; Checked that button and replicate AD and run Get-Mailbox –Arbitration and we see our 3 arbitration mailboxes.&nbsp; <p>We like to call this “Defeated by Checkbox”.  <p>Hope this helps  ]]></content:encoded>
    </item>
  </channel>
</rss>