<?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>stevenha</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/stevenha/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/stevenha/feed.xml</link>
    <description>Exchange and Office365 Adventures from the world of Microsoft Premier Field Engineering</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:50:20 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>(New Script) Search for count of items older than specified date across all mailboxes</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/new-script-search-for-count-of-items-older-than-specified-date-across-all-mailboxes</link>
      <pubDate>Wed, 18 Jun 2014 11:28:00 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2014/06/18/new-script-search-for-count-of-items-older-than-specified-date-across-all-mailboxes/</guid>
      <description><![CDATA[So, you have deployed default retention tags to delete mail after a certain age.&nbsp; You have also...]]></description>
      <content:encoded><![CDATA[<p>So, you have deployed default retention tags to delete mail after a certain age.&nbsp; You have also given users access to a personal tag to let them keep some stuff longer.&nbsp; Now you want to audit to see if any of your users are abusing the personal tag.</p>
<p>&nbsp;</p>
<p>This script allows you to specify a date and outputs a count of emails older than that date in each user mailbox.</p>
<p>This script borrows much from Glen&#39;s Exchange Dev Blog (<a href="https://gsexdev.blogspot.ca/2014/05/ediscovery-script-for-reporting-on.html">https://gsexdev.blogspot.ca/2014/05/ediscovery-script-for-reporting-on.html</a>).</p>
<p>&nbsp;</p>
<p>This script utilizes the EWS Managed API, so you need to install that first: <a href="https://www.microsoft.com/en-us/download/details.aspx?id=35371"> https://www.microsoft.com/en-us/download/details.aspx?id=35371</a></p>
<p></p>
<p>See here: https://gallery.technet.microsoft.com/office/Search-for-count-of-items-d2ec2bfa</p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>From Inside the Cloud: Who has access to your data within Office 365?</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/from-inside-the-cloud-who-has-access-to-your-data-within-office-365</link>
      <pubDate>Wed, 04 Jun 2014 08:40:01 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2014/06/04/from-inside-the-cloud-who-has-access-to-your-data-within-office-365/</guid>
      <description><![CDATA[Great video from Perry Clarke and Vivek Sharma on the controls that are in place in O365 to assure...]]></description>
      <content:encoded><![CDATA[<p>Great video from Perry Clarke and Vivek Sharma on the controls that are in place in O365 to assure customers of the privacy of their data.</p>
<p><a title="From Inside the Cloud: Who has access to your data within Office 365?" href="https://blogs.office.com/2014/06/02/from-inside-the-cloud-who-has-access-to-your-data-within-office-365/">From Inside the Cloud: Who has access to your data within Office 365?</a></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Detect if a user is or isn't under a particular In-Place Hold</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/detect-if-a-user-is-or-isnt-under-a-particular-in-place-hold</link>
      <pubDate>Thu, 22 May 2014 10:02:00 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2014/05/22/detect-if-a-user-is-or-isnt-under-a-particular-in-place-hold/</guid>
      <description><![CDATA[Let&#39;s say that you want to put an 3 year time based in-place hold on all (or a large group) of...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Let&#39;s say that you want to put an 3 year time based in-place hold on all (or a large group) of your users.&nbsp; You set up a process, script or whatever to modify the hold whenever you need to add a user.&nbsp; </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Great.<br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">So, how can you make sure that you didn&#39;t miss someone?<br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">You can use a combination of the &quot;InPlaceHoldIdentity&quot; of the Mailbox Search object for your hold and the &quot;InPlaceHolds&quot; Multivalue string attribute of your mailboxes.<br /></span></p>
<p><span style="font-family:Calibri;font-size:medium;">First, find the ID of the hold you want to look for:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Here I am looking for a hold named &ldquo;demo&rdquo;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">PS C:\Users\stevenha&gt; Get-MailboxSearch demo | fl name,inplaceholdidentity</span><span style="font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Demo</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">InPlaceHoldIdentity : d14862810adc4f6a8621bd868b551660</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">That &ldquo;InPlaceHoldIdentity&rdquo; value is stored in every user that the hold applies to.&nbsp; Like this:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">PS C:\Users\stevenha&gt; get-mailbox sarad | fl name,inpla*</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">&nbsp;</span><span style="font-family:courier new,courier;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : SaraD</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">InPlaceHolds : {d37259985eae4cba8f795d53f8bafc84, 1e6cecf94b6641a088a484d6128bf77a, e850fa01c5f746f2b5d8d46dd5d2eee4,</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b223bed883f34071b279f58835472740...}</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">So, we can look for any users that have that hold in place like this:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">PS C:\Users\stevenha&gt; get-mailbox -resultsize unlimited | where {$_.inplaceholds -contains &quot;d14862810adc4f6a8621bd868b551660&quot;}</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Or, we can look for any users that DO NOT have the hold like this:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:courier new,courier;font-size:medium;">PS C:\Users\stevenha&gt; get-mailbox -resultsize unlimited | where {-not $_.inplaceholds -contains &quot;d14862810adc4f6a8621bd868b551660&quot;}</span></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>New Script to Get Percentage of Exchange t-logs per hour for Exchange design calculator</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/new-script-to-get-percentage-of-exchange-t-logs-per-hour-for-exchange-design-calculator</link>
      <pubDate>Fri, 04 Oct 2013 11:55:12 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2013/10/04/new-script-to-get-percentage-of-exchange-t-logs-per-hour-for-exchange-design-calculator/</guid>
      <description><![CDATA[The Exchange Server Role Requirements Calculator has a great if seldom used feature to allow...]]></description>
      <content:encoded><![CDATA[<p>The Exchange Server Role Requirements Calculator has a great if seldom used feature to allow estimating of bandwidth needs between datacenters for replication traffic.&nbsp; The key to making this work is filling in the little chart of what percentage of a day's log files are created during each hour of the day.&nbsp; Since this is based largely on messages sent/received you can use your existing Exchange Servers log creation rate to figure this out.&nbsp;</p>
<p>However, it is kind of a pain to examine log directories and count the number of files created during each hour of the day.</p>
<p>This script will look in one or more log directories and do the math for you.&nbsp; You can then copy the output straight from the powershell window into the calculator.</p>
<p><a href="https://gallery.technet.microsoft.com/office/Get-Percentage-of-Exchange-bf6ff1ea">https://gallery.technet.microsoft.com/office/Get-Percentage-of-Exchange-bf6ff1ea</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Updated Snapshot report of Public Folder Usage Script</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/updated-snapshot-report-of-public-folder-usage-script</link>
      <pubDate>Thu, 21 Feb 2013 11:13:24 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2013/02/21/updated-snapshot-report-of-public-folder-usage-script/</guid>
      <description><![CDATA[Updated my Snapshot report of Public Folder Usage Script:

Fixed Last Modified Time so it actually...]]></description>
      <content:encoded><![CDATA[<p>Updated my Snapshot report of Public Folder Usage Script:</p>
<ul>
<li>Fixed Last Modified Time so it actually works (dang typo)</li>
<li>Added "Email Enabled" to report</li>
<li>Added "Primary SMTP Address" to report if folder is email enabled</li>
<li>Added Progress bar so you can tell it is actually still running</li>
</ul>
<p>You can download it here:</p>
<p><a href="https://gallery.technet.microsoft.com/office/Snapshot-report-of-Public-21235573">https://gallery.technet.microsoft.com/office/Snapshot-report-of-Public-21235573</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Offline Address Book Full Download Fails if Hardware Load Balancer in use</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/offline-address-book-full-download-fails-if-hardware-load-balancer-in-use</link>
      <pubDate>Wed, 09 Jan 2013 11:26:00 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2013/01/09/offline-address-book-full-download-fails-if-hardware-load-balancer-in-use/</guid>
      <description><![CDATA[I came across an interesting scenario relating to the use of a Hardware Load Balancer publishing...]]></description>
      <content:encoded><![CDATA[<p>I came across an interesting scenario relating to the use of a Hardware Load Balancer publishing Exchange Client Access Servers. This relates specifically to how CAS distributes OAB and how Outlook decides which files it needs to perform an OAB update.</p>
<p>First, let's walk through how it is supposed to work starting from a new Outlook Profile (if you already know the OAB download/update process, feel free to skip to the next section):</p>
<ol>
<li>Outlook finds (via AutoDiscover) the url to use to connect to the OAB distribution server. It will look something like https://mail.contoso.com/OAB/&lt;guid of OAB&gt;/</li>
<li>Outlook attempts to download the OAB.XML file at that URL. This is the "manifest" file that lists out the other files that Outlook will need to download.</li>
<li>Outlook attempts to download the "template" file for whatever language Outlook is running. For English, it finds the entry in the oab.xml that specifies langid 0409. The line in the OAB.xml looks something like this:<br /><span style="font-family: Courier New;">&lt;Template <span style="background-color: yellow;">seq='7'</span> ver='7' size='6028' uncompressedsize='26470' SHA='df80ec818f23bb6b23aa55cbc49d45986604af34' langid='0409' type='windows'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;1efdeb0a-56fe-488d-aed7-b3d9179193a2-lng0409-7.lzx</span></li>
<li>Outlook attempts to download the template file <span style="font-family: Courier New;">1efdeb0a-56fe-488d-aed7-b3d9179193a2-lng0409-<span style="background-color: yellow;">7</span>.lzx </span></li>
<li>Outlook finds the file name for the full OAB download in the manifest<br /><span style="font-family: Courier New;">&lt;Full <span style="background-color: yellow;">seq='7'</span> ver='32' size='2408' uncompressedsize='11481' SHA='c3874445e4942eac788523db974e60a37463cabb'&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1efdeb0a-56fe-488d-aed7-b3d9179193a2-data-7.lzx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Full&gt; </span></li>
<li>Outlook attempts to download the full OAB file <span style="font-family: Courier New;">1efdeb0a-56fe-488d-aed7-b3d9179193a2-data-<span style="background-color: yellow;">7</span>.lzx </span></li>
</ol>
<p>Now Outlook has an up-to-date OAB. Outlook and the Server track OAB status using a sequence number. In the above manifest, you can see the current sequence number of the OAB is <span style="background-color: yellow;">7</span>.</p>
<p>Next time (say 24 hours later) Outlook goes to update OAB it goes through the following process.</p>
<ol>
<li>Outlook finds (via AutoDiscover) the url to use to connect to the OAB distribution server. It will look something like https://mail.contoso.com/OAB/&lt;guid of OAB&gt;/</li>
<li>Outlook attempts to download the OAB.XML file at that URL. This is the "manifest" file that lists out the other files that Outlook will need to download.</li>
<li>Outlook compares its own sequence number to that in the manifest. In our example, Outlook downloaded sequence 7. When looking at the manifest we can see that the server is up to sequence 9<br /><span style="font-family: Courier New;">&lt;OAL id='1efdeb0a-56fe-488d-aed7-b3d9179193a2' dn='/' name='\Global Address List'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Full <span style="background-color: yellow;">seq='9'</span> ver='32' size='2422' uncompressedsize='11496' SHA='6852ea7fc58cfe2788766efbec61bc27cf62a96e'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1efdeb0a-56fe-488d-aed7-b3d9179193a2-data-<span style="background-color: yellow;">9</span>.lzx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Full&gt;</span></li>
<li>Outlook looks in the manifest to see if there are differential files available to get from sequence 7 to sequence 9<br /><span style="font-family: Courier New;">&lt;Diff <span style="background-color: yellow;">seq='9'</span> ver='32' size='122' uncompressedsize='11496' SHA='05eed595e0fdf88245a48d42d80431337dff36cc'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1efdeb0a-56fe-488d-aed7-b3d9179193a2-binpatch-<span style="background-color: yellow;">9</span>.lzx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Diff&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;Diff <span style="background-color: yellow;">seq='8'</span> ver='32' size='132' uncompressedsize='11494' SHA='4e0e62a0c3af3786310f9bd6a9b802879bcde07f'&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1efdeb0a-56fe-488d-aed7-b3d9179193a2-binpatch-<span style="background-color: yellow;">8</span>.lzx<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Diff&gt; </span></li>
<li>They are there! Outlook grabs those 2 files and applies them in order. Outlook is now up-to-date at sequence 9.</li>
</ol>
<p>However, if either of these items are true:</p>
<ol>
<li>The diff files that Outlook needed to get current aren't available (they are kept for 30 days by default)</li>
<li>New profile</li>
</ol>
<p>Outlook will fall back to a full download and follow the first procedure.</p>
<h2>When good manifests go bad&hellip;</h2>
<p>&nbsp;</p>
<p>Now&hellip;on to the meat of the matter.</p>
<p>Consider this scenario:</p>
<ol>
<li>Client Access web based services live behind a hardware load balancer.</li>
<li>Outlook decides it needs to do a full OAB download.</li>
</ol>
<p>Outlook goes to the OAB URL and grabs the OAB.XML file. As laid out in the Full download procedure above, the first thing Outlook is going to look for is the template file.</p>
<p>And then&hellip;failure. If you initiated the download manually, you may see an 0x80200011 error code. You will also see an Event ID 27:</p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Log Name: Application </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Source: Outlook </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Date: 12/20/2012 1:20:01 PM </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Event ID: 27 </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Task Category: None </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Level: Warning </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Keywords: Classic </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">User: N/A </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Computer: workstation1.corp.contoso.com </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Description: </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">OAB Download Failed. (Result code in event data). </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">Event Xml: </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">&lt;Event xmlns="https://schemas.microsoft.com/win/2004/08/events/event"&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;System&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Provider Name="Outlook" /&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;EventID Qualifiers="16384"&gt;27&lt;/EventID&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Level&gt;3&lt;/Level&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Task&gt;0&lt;/Task&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Keywords&gt;0x80000000000000&lt;/Keywords&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;TimeCreated SystemTime="2012-12-20T19:20:01.000000000Z" /&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;EventRecordID&gt;38872&lt;/EventRecordID&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Channel&gt;Application&lt;/Channel&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Computer&gt;cas.corp.contoso.com&lt;/Computer&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Security /&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;/System&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;EventData&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Data&gt;OAB Download Failed. (Result code in event data).&lt;/Data&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;Binary&gt;<span style="background-color: yellow;">0C</span>00000094011980<span style="background-color: aqua;">0817</span>0000<span style="background-color: lime;">0C17</span>000008170000000000000000000000000000E9FD00000000000000000000784E000090500000344D0000FC2500009028000080BDF7080D5D0100000000005C000000200000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000&lt;/Binary&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;"> &lt;/EventData&gt; </span></p>
<p><span style="font-family: Lucida Console; font-size: 10pt;">&lt;/Event&gt; </span></p>
<p>&nbsp;</p>
<p><span style="font-size: 10pt;">If you review Dave Goldman's excellent blog post on this subject (<a href="https://blogs.msdn.com/b/dgoldman/archive/2006/06/19/troubleshooting-offline-address-book-downloads-with-outlook-diagnostic-logging-_2800_event-id-27_2900_.aspx">https://blogs.msdn.com/b/dgoldman/archive/2006/06/19/troubleshooting-offline-address-book-downloads-with-outlook-diagnostic-logging-_2800_event-id-27_2900_.aspx</a> ) you will see that the binary data starts with <span style="background-color: yellow;">0C</span> which indicates that Outlooks is doing a full download. You can also see Outlook's current OAB sequence number <span style="background-color: aqua;">0817</span> and the Server's current sequence number <span style="background-color: lime;">0C17</span>. To translate these hex sequence numbers into decimal, flip the bytes. The client translates to 5896 and the server to 5900 in this example. </span></p>
<p><span style="font-size: 10pt;">Having said all of that, there is little indication as to why the download failed. To attempt to see what is really going on, we can use the bitsadmin tool. The Binary Intelligent Transfer agent is the code that performs the OAB download for Outlook and it is a built-in part of Windows. </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New; font-size: 10pt;">C:\&gt;bitsadmin /list /verbose </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">BITSADMIN version 2.0 [ 6.6.2600.2180 ] </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">BITS administration utility. </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">(C) Copyright 2000-2004 Microsoft Corp. </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New; font-size: 10pt;">Listed 0 job(s). </span></p>
<p>&nbsp;</p>
<p><span style="font-size: 10pt;">Well, that is not very helpful&hellip;we need to run this tool at the moment of the failure. </span></p>
<p><span style="font-size: 10pt;">Let's try this batch file: </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">@echo off </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">:work </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">bitsadmin /list /verbose &gt;&gt; c:\bitsoutput.txt </span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">goto work </span></p>
<p><span style="font-size: 10pt;">Looking over the output file that was created, we see Outlook grabbing the OAB.xml file successfully and then it moves on to download the template file: </span></p>
<p><span style="font-family: Courier New;">BITSADMIN version 2.0 [ 6.6.2600.2180 ] </span></p>
<p><span style="font-family: Courier New;">BITS administration utility. </span></p>
<p><span style="font-family: Courier New;">(C) Copyright 2000-2004 Microsoft Corp. </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New;">GUID: {D5820AE4-24C8-4C43-8B1D-728E3C16CB4E} DISPLAY: Microsoft Outlook Offline Address Book </span></p>
<p><span style="font-family: Courier New;">TYPE: DOWNLOAD STATE: <span style="background-color: yellow;">CONNECTING</span> OWNER: CORP\owells </span></p>
<p><span style="font-family: Courier New;">PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / UNKNOWN </span></p>
<p><span style="font-family: Courier New;">CREATION TIME: 1/8/2013 11:23:46 AM MODIFICATION TIME: 1/8/2013 11:23:47 AM </span></p>
<p><span style="font-family: Courier New;">COMPLETION TIME: UNKNOWN ACL FLAGS: </span></p>
<p><span style="font-family: Courier New;">NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3 </span></p>
<p><span style="font-family: Courier New;">RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 0 </span></p>
<p><span style="font-family: Courier New;">PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL </span></p>
<p><span style="font-family: Courier New;">DESCRIPTION: Microsoft Outlook Offline Address Book Template </span></p>
<p><span style="font-family: Courier New;">JOB FILES: </span></p>
<p><span style="font-family: Courier New;">&nbsp;&nbsp;&nbsp;&nbsp;0 / UNKNOWN WORKING https://mail.contoso.com/OAB/9165d096-ff22-4a79-ba2d-b47d8645e220/418771d0-6766-4c27-ab27-b6068ffb56a8-lng0409-<span style="background-color: lime;">5958</span>.lzx -&gt; C:\Documents and Settings\owells\Local Settings\Application Data\Microsoft\Outlook\tmplts.tm_ </span></p>
<p><span style="font-family: Courier New;">NOTIFICATION COMMAND LINE: none </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New;">Listed 1 job(s). </span></p>
<p>&nbsp;</p>
<p>Great. You can see it <span style="background-color: yellow;">connecting</span> to grab the template file for English with the sequence number <span style="background-color: lime;">5958</span>.</p>
<p>&nbsp;</p>
<p>Uh oh!</p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New;">BITSADMIN version 2.0 [ 6.6.2600.2180 ] </span></p>
<p><span style="font-family: Courier New;">BITS administration utility. </span></p>
<p><span style="font-family: Courier New;">(C) Copyright 2000-2004 Microsoft Corp. </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New;">GUID: {D5820AE4-24C8-4C43-8B1D-728E3C16CB4E} DISPLAY: Microsoft Outlook Offline Address Book </span></p>
<p><span style="font-family: Courier New;">TYPE: DOWNLOAD STATE: ERROR OWNER: CORP\owells </span></p>
<p><span style="font-family: Courier New;">PRIORITY: NORMAL FILES: 0 / 1 BYTES: 0 / UNKNOWN </span></p>
<p><span style="font-family: Courier New;">CREATION TIME: 1/8/2013 11:23:46 AM MODIFICATION TIME: 1/8/2013 11:23:50 AM </span></p>
<p><span style="font-family: Courier New;">COMPLETION TIME: UNKNOWN ACL FLAGS: </span></p>
<p><span style="font-family: Courier New;">NOTIFY INTERFACE: UNREGISTERED NOTIFICATION FLAGS: 3 </span></p>
<p><span style="font-family: Courier New;">RETRY DELAY: 600 NO PROGRESS TIMEOUT: 1209600 ERROR COUNT: 1 </span></p>
<p><span style="font-family: Courier New;">PROXY USAGE: PRECONFIG PROXY LIST: NULL PROXY BYPASS LIST: NULL </span></p>
<p><span style="font-family: Courier New;">ERROR FILE: https://mail.contoso.com/OAB/9165d096-ff22-4a79-ba2d-b47d8645e220/418771d0-6766-4c27-ab27-b6068ffb56a8-lng0409-5958.lzx -&gt; C:\Documents and Settings\owells\Local Settings\Application Data\Microsoft\Outlook\tmplts.tm_ </span></p>
<p><span style="font-family: Courier New;">ERROR CODE: 0x80190191 - <span style="background-color: yellow;">The requested resource requires user authentication</span>. </span></p>
<p><span style="font-family: Courier New;">ERROR CONTEXT: 0x00000005 - The error occurred while the remote file was being processed. </span></p>
<p><span style="font-family: Courier New;">DESCRIPTION: Microsoft Outlook Offline Address Book Template </span></p>
<p><span style="font-family: Courier New;">JOB FILES: </span></p>
<p><span style="font-family: Courier New;">&nbsp;&nbsp;&nbsp;&nbsp;0 / UNKNOWN WORKING https://mail.contoso.com/OAB/9165d096-ff22-4a79-ba2d-b47d8645e220/418771d0-6766-4c27-ab27-b6068ffb56a8-lng0409-5958.lzx -&gt; C:\Documents and Settings\owells\Local Settings\Application Data\Microsoft\Outlook\tmplts.tm_ </span></p>
<p><span style="font-family: Courier New;">NOTIFICATION COMMAND LINE: none </span></p>
<p>&nbsp;</p>
<p><span style="font-family: Courier New;">Listed 1 job(s). </span></p>
<p>&nbsp;</p>
<p>Requires authentication??? I bet that is a bit of a misinterpretation of what happened. How about we go see what files are on the server? When we looked at the OAB directory (c:\program files\microsoft\exchange\v14\client access\oab) we see that there is a template file there&hellip;but it has a sequence number of 5961! Unlike the binpatch diff files, Exchange only keeps the latest template file. If we go looking for 5958 and the server has 5961, we will not find it. The above error really means "file not found".</p>
<p>&nbsp;</p>
<p>Why the heck did we go looking for an old template file? Looking at the OAB.xml file on the server, it has the proper sequence number and filename for the template file.</p>
<p>&nbsp;</p>
<p>Were we not looking at the current OAB.xml?</p>
<p>&nbsp;</p>
<p>We tried opening OAB.xml in IE on the client machine. What the&hellip;why does this OAB.xml seem to indicate the 5958 is the current sequence number?</p>
<p>&nbsp;</p>
<p>So, we now know what is not working&hellip;we can't go looking for old sequences&hellip;that won't work.</p>
<p>&nbsp;</p>
<p>But, how did this happen?</p>
<p>&nbsp;</p>
<h1>The Answer (at long last):</h1>
<p>&nbsp;</p>
<p>The default configuration on many hardware load balancers is to cache some http content. We were looking at a cached copy of the oab.xml! Thanks for the help, Mr. Load Balancer!</p>
<p>&nbsp;</p>
<h1>The Solution:</h1>
<p>&nbsp;</p>
<p>Turn off http caching on the load balancer. You can either disable it for all Exchange Web services, the OAB vdir only, or just the OAB.xml file depending on your preference and your load balancers capabilities.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Snapshot report of Public Folder Usage (name, last access, items, etc)</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/snapshot-report-of-public-folder-usage-name-last-access-items-etc</link>
      <pubDate>Fri, 04 Jan 2013 11:45:00 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2013/01/04/snapshot-report-of-public-folder-usage-name-last-access-items-etc/</guid>
      <description><![CDATA[This is a simple script that will dump info about your public folders to a csv file.&nbsp; The...]]></description>
      <content:encoded><![CDATA[<p>This is a simple script that will dump info about your public folders to a csv file.&nbsp; The tricky bit here is that it combines data values from get-publicfolder, get-publicfolderstatistics and get-publicfolderclientpermissions into one CSV report.</p>
<p>Find it at <a href="https://gallery.technet.microsoft.com/office/Snapshot-report-of-Public-21235573">https://gallery.technet.microsoft.com/office/Snapshot-report-of-Public-21235573</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>“The Public Group Cannot Be Displayed” error attempting to modify members of a large DL in Outlook with Exchange 2010</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/the-public-group-cannot-be-displayed-error-attempting-to-modify-members-of-a-large-dl-in-outlook-with-exchange-2010</link>
      <pubDate>Thu, 29 Nov 2012 09:42:00 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2012/11/29/the-public-group-cannot-be-displayed-error-attempting-to-modify-members-of-a-large-dl-in-outlook-with-exchange-2010/</guid>
      <description><![CDATA[&nbsp;
Ever see this error when you try to modify members of a large (1000+) member DL using...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Ever see this error when you try to modify members of a large (1000+) member DL using Outlook when your mailbox is on Exchange 2010?</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/33/3660.ThePublicGroup.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3660.ThePublicGroup.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/33/3660.ThePublicGroup.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3660.ThePublicGroup.JPG" alt="" border="0" /></a></p>
<p>"The public Group cannot be displayed. The operation failed"</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/96/33/3733.ThePublicGroup2.JPG" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3733.ThePublicGroup2.JPG"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/33/3733.ThePublicGroup2.JPG" original-url="https://blogs.technet.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3733.ThePublicGroup2.JPG" alt="" border="0" /></a></p>
<p>"The public group cannot be displayed. Too many names have been found in the directory service or the server has exceeded its time limit for searching. Type more letters of the name and try again"</p>
<p>If you clear this error, you may see a partial list of the DL members displayed. You will be able to successfully add members to the DL. You will also be able to remove members, if they managed to make it in the partial list.</p>
<p>Poking around in the application log of the Client Access Server you are connected to shows nothing out of the ordinary&hellip;even if you ramp up diagnostic logging.</p>
<p>The reason this error pops up, and the reason why nothing is logged, is because the CAS is doing exactly what you told it to do. Well&hellip;to be fair&hellip;it is doing exactly what its default settings told it to do. It is throttling your connection.</p>
<p>&nbsp;</p>
<p>The specific throttling policy parameter that relates to this is RCAPercentTimeInAB. By default, this parameter is blank in the Default Throttling Policy that ships with Exchange 2010. If I am reading TechNet right, blank mean default and default maps to a setting of '5'. For all of these *PercentTimeIn* parameters, the number indicates what percentage of a minute you can use in that minute. '5' would therefore equate to 3 seconds (5% of 60 seconds). If you use your budget of 3 seconds, you need to wait for the minute to roll over to get a new 3 second allocation. Outlook is not that patient (nor are most end-users) and blows the error above.</p>
<p>I have found that a setting of 20 (which would equate to 12 seconds) is adequate for most deployments, but your needs could differ. I highly recommend experimenting with this setting on a "test" throttling policy that you apply to a few test users before you roll anything into the default policy.</p>
<p>For more details on creating and setting Client Throttling Policies, see <a href="https://technet.microsoft.com/en-us/library/dd297964">Understanding Client Throttling -- TechNet</a></p>
<p>&nbsp;</p>
<h1>Bonus Track</h1>
<p>If you are using Outlook 2010 and the DL in question is 5000+ users, you may also see this error when you try to look at the properties of the DL:</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/33/3884.UnableToConnect.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3884.UnableToConnect.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/96/33/3884.UnableToConnect.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-96-33/3884.UnableToConnect.jpg" alt="" border="0" /></a></p>
<p>"Unable to connect to retrieve additional data"</p>
<p>To fix this one, you need an update to Outlook to get rid of a hard coded limit of 500 DL members.</p>
<p><a href="https://support.microsoft.com/kb/2598291">Member names are not displayed in a distribution list in Outlook 2010 KB2598291</a></p>
<p>This fix was delivered in the <a href="https://support.microsoft.com/kb/2598318">April 24, 2010 Outlook 2010 hotfix package</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Output Exchange 2010 RBAC Role Entries in HTML Report</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/output-exchange-2010-rbac-role-entries-in-html-report</link>
      <pubDate>Thu, 15 Nov 2012 13:08:28 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2012/11/15/output-exchange-2010-rbac-role-entries-in-html-report/</guid>
      <description><![CDATA[***THIS ONLY WILL WORK IN POWERSHELL V3 (Win8 and Server 2012)***
 
 The script will run in...]]></description>
      <content:encoded><![CDATA[<p><span style="color:black; font-family:Segoe UI; font-size:9pt">***THIS ONLY WILL WORK IN POWERSHELL V3 (Win8 and Server 2012)***
</span></p><p> 
 </p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">The script will run in Powershell V2, but the data in the output tables will contain only the type information and not the actual data.
</span></p><p> 
 </p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">To use this script, you must be connected to Exchange remote powershell. Replace the URI below with the URI for your CAS.  Replace "basic" with whatever authentication means you allow on the "powershell" IIS vdir on CAS.  This may be "kerberos" if you are on a domain joined machine.
</span></p><p style="background: white"><a href="https://gallery.technet.microsoft.com/Output-Exchange-2010-RBAC-c7c85816/description"><span style="color:#00749e; font-family:Times New Roman; font-size:9pt">Copy Code</span></a><span style="color:black; font-family:Segoe UI; font-size:9pt">
		</span></p><p style="background: white"><span style="color:#e66a38; font-family:Segoe UI; font-size:9pt"><strong>PowerShell
</strong></span></p><p style="background: white"><span style="color:black; font-family:Segoe UI; font-size:9pt">Edit|Remove
</span></p><p style="background: white"><span style="color:black; font-family:Courier New; font-size:10pt">$cred = get-credentials 
</span></p><p style="background: white"><span style="color:black; font-family:Courier New; font-size:10pt">$session = new-pssession -configurationname Microsoft.Exchange -connectionuri "https://mail.contoso.com/powershell" -authentication basic -credentials $cred 
</span></p><p style="background: white"><span style="color:black; font-family:Courier New; font-size:10pt">import-pssession $session
</span></p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">This script with iterate through all roles defined and then through each entry.
</span></p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">It will output all of the allowed Commandlets for each role and what parameters are available.
</span></p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Example Output:
</span></p><p><span style="color:#3a3e43; font-family:Segoe UI; font-size:11pt"><strong>Role:Recipient Policies
</strong></span></p><div><table style="border-collapse:collapse" border="0"><colgroup><col style="width:164px"/><col style="width:459px"/></colgroup><tbody valign="top"><tr><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #bbbbbb 0.75pt; border-left:  solid #bbbbbb 0.75pt; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p style="text-align: center"><span style="color:black; font-family:Segoe UI; font-size:9pt"><strong>Name</strong></span></p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  solid #bbbbbb 0.75pt; border-left:  none; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p style="text-align: center"><span style="color:black; font-family:Segoe UI; font-size:9pt"><strong>Parameters</strong></span></p></td></tr><tr><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  none; border-left:  solid #bbbbbb 0.75pt; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Write-AdminAuditLog</span></p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  none; border-left:  none; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Comment Confirm Debug DomainController ErrorAction ErrorVariable OutBuffer OutVariable Verbose WarningAction WarningVariable WhatIf</span></p></td></tr><tr><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  none; border-left:  solid #bbbbbb 0.75pt; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Set-ThrottlingPolicyAssociation</span></p></td><td vAlign="middle" style="padding-top: 1px; padding-left: 1px; padding-bottom: 1px; padding-right: 1px; border-top:  none; border-left:  none; border-bottom:  solid #bbbbbb 0.75pt; border-right:  solid #bbbbbb 0.75pt"><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Confirm Debug DomainController ErrorAction ErrorVariable Identity OutBuffer OutVariable ThrottlingPolicy Verbose WarningAction WarningVariable WhatIf</span></p></td></tr></tbody></table></div><p>
 </p><p>You can download it <a href="https://gallery.technet.microsoft.com/Output-Exchange-2010-RBAC-c7c85816">here</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Script to convert an MS Online Directory Immutable ID to an AD GUID (and Vice Versa)</title>
      <link>https://docs.microsoft.com/archive/blogs/stevenha/script-to-convert-an-ms-online-directory-immutable-id-to-an-ad-guid-and-vice-versa</link>
      <pubDate>Tue, 13 Nov 2012 10:25:13 GMT</pubDate>
      <dc:creator><![CDATA[Steve Halligan]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/stevenha/2012/11/13/script-to-convert-an-ms-online-directory-immutable-id-to-an-ad-guid-and-vice-versa/</guid>
      <description><![CDATA[This script can take an ImmutableID found in the DirSync Metaverse or via get-msoluser and output...]]></description>
      <content:encoded><![CDATA[<p><span style="color:black; font-family:Segoe UI; font-size:9pt">This script can take an ImmutableID found in the DirSync Metaverse or via get-msoluser and output the GUID of the corresponding object from the SOURCE AD.
</span></p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">It can also take the Source AD GUID and tell you what the ImmutableID should be.
</span></p><p> 
 </p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Useful in troubleshooting DirSync issues and determining which AD Object maps to which MSOD object.
</span></p><p><span style="color:black; font-family:Segoe UI; font-size:9pt">Examples:<br/>To convert a GUID to an Immutable ID: GUID2ImmutableID.ps1 '748b2d72-706b-42f8-8b25-82fd8733860f'<br/>To convert an ImmutableID to a GUID: GUID2ImmutableID.ps1 'ci2LdGtw+EKLJYL9hzOGDw=='
</span></p><p>It can be found at: <a href="https://gallery.technet.microsoft.com/office/Covert-DirSyncMS-Online-5f3563b1">https://gallery.technet.microsoft.com/office/Covert-DirSyncMS-Online-5f3563b1</a>
	</p>]]></content:encoded>
    </item>
  </channel>
</rss>