<?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>Karsten Palmvig's blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kpalmvig/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kpalmvig/feed.xml</link>
    <description>Notes from the field on Office 365...</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:44:24 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Monitor Office 365 with IFTTT</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/monitor-office-365-with-ifttt</link>
      <pubDate>Sun, 09 Nov 2014 04:08:42 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2014/11/09/monitor-office-365-with-ifttt/</guid>
      <description><![CDATA[The Internet service IFTTT (IF This Then That) https://ifttt.com can be used for all kinds of...]]></description>
      <content:encoded><![CDATA[<p>The Internet service IFTTT (IF This Then That) <a title="https://ifttt.com" href="https://ifttt.com">https://ifttt.com</a> can be used for all kinds of incident based actions, from weather changes over facebook updates to stock changes. A very powerful function is its ability to monitor RSS feeds, such as those published for Office 365.</p> <p>I’m describing two different monitors below but others can of course be made. The only limitation is your creativity and, well, published RSS feeds. The monitors described here will require that you create an IFTTT account.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/61/40/metablogapi/IFTTTRSS_040FD29B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-61-40-metablogapi/IFTTTRSS_5F00_040FD29B.jpg"><img title="IFTTT-RSS" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;" border="0" alt="IFTTT-RSS" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/61/40/metablogapi/IFTTTRSS_thumb_7397619F.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-61-40-metablogapi/IFTTTRSS_5F00_thumb_5F00_7397619F.jpg" width="244" height="64" /></a> </p> <p>&nbsp;</p> <p><strong>Office 365 IP Addresses</strong></p> <p>As you probably know, the IP address scopes for Office 365 change frequently, and if your firewall rules depend on known IP addresses in Office 365 it’s very important that you update those in a timely manner. To get a notification in your inbox (or whereever IFTTT supports) which, for me, works better that just a RSS subscription, create the following recipe.</p> <p>Create trigger:</p> <ul> <li>This: RSS Feed</li> <li>Trigger: “New feed item”</li> <li>Feed URL: <a title="https://onlinehelp.microsoft.com/en-us/office365-enterprises/o365ip.rss.xml" href="https://onlinehelp.microsoft.com/en-us/office365-enterprises/o365ip.rss.xml">https://onlinehelp.microsoft.com/en-us/office365-enterprises/o365ip.rss.xml</a></li></ul> <p>Create action</p> <ul> <li>That: Email</li> <li>Action: Send me an email</li> <li>Subject: Office 365 IP address change</li> <li>Body: Leave the default</li></ul> <p>Save recipe</p> <p>&nbsp;</p> <p><strong>Office 365 Service Health Notifications</strong></p> <p>Detailed descriptions of Office 365 service events can be found in the dashboard on your Office 365 tenant but if you want to be notified whenever there’s a new entry, create the following recipe.</p> <p>Create trigger:</p> <ul> <li>This: RSS Feed </li> <li>Trigger: “New feed item” OR “New feed item matches” (to filter on specific type of events)</li> <li>Feed URL: <a title="https://rss.servicehealth.microsoftonline.com/feed/en-US/AA23D93D86BAA98841423D3CEB5FBCA5" href="https://rss.servicehealth.microsoftonline.com/feed/en-US/AA23D93D86BAA98841423D3CEB5FBCA5">https://rss.servicehealth.microsoftonline.com/feed/en-US/AA23D93D86BAA98841423D3CEB5FBCA5</a></li></ul> <p>Create action</p> <ul> <li>That: Email</li> <li>Action: Send me an email (multiple addresses or text message as option)</li> <li>Subject: Office 365 Service Health Notification</li> <li>Body: Leave the default</li></ul> <p>Save recipe</p> <p>Hope you find this useful… :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Office 365: Finding the name of the Calendar folder</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/office-365-finding-the-name-of-the-calendar-folder</link>
      <pubDate>Fri, 10 Oct 2014 04:14:18 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2014/10/10/office-365-finding-the-name-of-the-calendar-folder/</guid>
      <description><![CDATA[When setting permissions on your users’ Calendar folders to allow (or disallow) them to view each...]]></description>
      <content:encoded><![CDATA[<p>When setting permissions on your users’ Calendar folders to allow (or disallow) them to view each others Free/Busy status, you may encounter the problem that a user has localized the folder names and you don’t know what the name of the folder is in his/her language. Even worse; you’re doing this in a script, that’s just using the “username:\Calendar” label.</p> <p>The solution here is to not use hard coded names but instead detect the name of the folder and use in in your script (or command line). To make that really simple, you can use this bit of PowerShell code:</p> <ol> <li>$path = $user.Identity + &quot;:\&quot; + (<strong>Get-MailboxFolderStatistics</strong> $user.Identity | <strong>Where-Object</strong> { $_.Foldertype -eq &quot;Calendar&quot; } | <strong>Select-Object</strong> -First 1).Name</li> <li><strong>Set-MailboxFolderPermission</strong> -Identity $path -User Default -AccessRights LimitedDetails</li></ol> <p>The first line will search the MailboxFolderStatistics for folders of the type “Calendar” and return the first match.</p> <p>Second line will use the variable $path to set AccessRights on the folder regardless of localization.</p> <p>The $user variable could have been populated with Get-User or an input file.</p> <p>Enjoy! :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Now Available: GetLogFileUsage.ps1 script</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/now-available-getlogfileusage-ps1-script</link>
      <pubDate>Tue, 11 Mar 2014 01:45:28 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2014/03/11/now-available-getlogfileusage-ps1-script/</guid>
      <description><![CDATA[Please see the following article on the Exchange Product Group Blog:...]]></description>
      <content:encoded><![CDATA[<p>Please see the following article on the Exchange Product Group Blog: <a title="https://blogs.technet.com/b/exchange/archive/2014/03/07/now-available-getlogfileusage-ps1-script.aspx" href="https://blogs.technet.com/b/exchange/archive/2014/03/07/now-available-getlogfileusage-ps1-script.aspx">https://blogs.technet.com/b/exchange/archive/2014/03/07/now-available-getlogfileusage-ps1-script.aspx</a></p> <p>The script associated with the article can be downloaded here: <a title="https://gallery.technet.microsoft.com/scriptcenter/GetLogFileUsage-8c981605" href="https://gallery.technet.microsoft.com/scriptcenter/GetLogFileUsage-8c981605">https://gallery.technet.microsoft.com/scriptcenter/GetLogFileUsage-8c981605</a></p> <p>Enjoy!</p>]]></content:encoded>
    </item>
    <item>
      <title>Easy progress bar in your Powershell scripts…</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/easy-progress-bar-in-your-powershell-scripts</link>
      <pubDate>Tue, 29 Oct 2013 09:54:26 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2013/10/29/easy-progress-bar-in-your-powershell-scripts/</guid>
      <description><![CDATA[Ever wondered how far a long running Powershell script has come?  I use this piece of code in pretty...]]></description>
      <content:encoded><![CDATA[<p>Ever wondered how far a long running Powershell script has come?</p>  <p>I use this piece of code in pretty much all my scripts to keep track, very useful if you process large amounts of data:</p>  <p>   <div id="codeSnippetWrapper" style="margin: 20px 0px 10px; padding: 4px; border: 1px solid silver; width: 97.5%; text-align: left; line-height: 12pt; overflow: auto; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; cursor: text; direction: ltr; max-height: 200px; background-color: rgb(244, 244, 244);">     <div id="codeSnippet" style="padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);">       <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum1" style="color: rgb(96, 96, 96);">   1:</span> $i = 1</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span id="lnum2" style="color: rgb(96, 96, 96);">   2:</span>&#160; </pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum3" style="color: rgb(96, 96, 96);">   3:</span> <span style="color: rgb(0, 0, 255);">foreach</span> ($item <span style="color: rgb(0, 0, 255);">in</span> $collection) {</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span id="lnum4" style="color: rgb(96, 96, 96);">   4:</span>&#160; </pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum5" style="color: rgb(96, 96, 96);">   5:</span>     $pct = (($i / $collection.count)*100)</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span id="lnum6" style="color: rgb(96, 96, 96);">   6:</span>     Write-Progress -activity <span style="color: rgb(0, 96, 128);">&quot;Processing...&quot;</span> -status <span style="color: rgb(0, 96, 128);">&quot;Progress: $([int]$pct)%&quot;</span> -PercentComplete $pct</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum7" style="color: rgb(96, 96, 96);">   7:</span>     </pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span id="lnum8" style="color: rgb(96, 96, 96);">   8:</span>     # processing stuff goes here</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum9" style="color: rgb(96, 96, 96);">   9:</span>&#160; </pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: rgb(244, 244, 244);"><span id="lnum10" style="color: rgb(96, 96, 96);">  10:</span>     $i++</pre>
<!--CRLF-->

      <pre style="margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: &quot;Courier New&quot;, courier, monospace; font-size: 8pt; direction: ltr; background-color: white;"><span id="lnum11" style="color: rgb(96, 96, 96);">  11:</span> }</pre>
<!--CRLF--></div>
  </div>
</p>

<p>Feel free to use it wherever you want… :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Office 365: Convert User Mailbox to Shared Mailbox</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/office-365-convert-user-mailbox-to-shared-mailbox</link>
      <pubDate>Thu, 28 Feb 2013 10:43:33 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2013/02/28/office-365-convert-user-mailbox-to-shared-mailbox/</guid>
      <description><![CDATA[Many administrators need to convert regular User Mailboxes to a Shared Mailbox after migration to...]]></description>
      <content:encoded><![CDATA[<p><font size="2">Many administrators need to convert regular User Mailboxes to a Shared Mailbox after migration to Office 365. While the task is not very complex in itself, it is admittedly quite boring and you need to remember quota sizes and not least the syntax for removing the license.</font></p> <p><font size="2">I’ve put together a small script that will automate this task given two command line arguments in the format:</font></p> <blockquote> <p><font size="2">.\convertUserToShared.ps1 &lt;user@domain.com&gt; &lt;sec-gr-shared-mailbox-name&gt;</font></p></blockquote> <p><font size="2"><strong></strong></font></p> <p><font size="2"><strong>Note:</strong></font></p> <p><font size="2">Remember to assign an email address to the security group or you won’t be able to use it in Exchange Online. You may also want to hide it from the address book (set attribute: msExchHideFromAddressBook to True).</font></p> <p><font size="2"></font></p> <p><font size="2">Now, to be able to perform the necessary operations you need the following plug-ins:</font></p> <ul> <li><font size="2">Microsoft Online Services Sign-In Assistant: </font><a href="https://www.microsoft.com/en-us/download/details.aspx?id=39267"><font size="2">https://www.microsoft.com/en-us/download/details.aspx?id=39267</font></a></li> <li><font size="2">Windows Azure AD Module: </font><a href="https://technet.microsoft.com/library/jj151815.aspx"><font size="2">https://technet.microsoft.com/library/jj151815.aspx</font></a></li></ul> <p><font size="2">And I really recoomend upgrading Powershell as well:</font></p> <ul> <li><font size="2">Powershell 3.0: </font><a href="https://www.microsoft.com/en-us/download/details.aspx?id=34595"><font size="2">https://www.microsoft.com/en-us/download/details.aspx?id=34595</font></a></li></ul> <p>&nbsp;</p> <p><font size="2">Connect to Exchange Online AND Office 365 with the following syntax prior to running the script:</font></p> <div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:&#39;Courier New&#39;, courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;"> <div id="codeSnippet" style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;line-height:12pt;padding-right:0px;"><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum1">   1:</span> $LiveCred = Get-Credential</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum2">   2:</span> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri <span>&quot;https://ps.outlook.com/powershell/&quot;</span> -Credential $LiveCred -Authentication Basic -AllowRedirection</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum3">   3:</span> Import-PSSession $Session</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum4">   4:</span> Connect-MsolService -Credential $LiveCred</pre><!--CRLF--></div></div>
<p>&nbsp;</p>
<p><font size="2">I’ve commented directly in the source where needed, so the script should be fairly self explanatory:</font></p>
<div id="codeSnippetWrapper" style="overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;height:303px;font-family:&#39;Courier New&#39;, courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;">
<div id="codeSnippet" style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;line-height:12pt;padding-right:0px;"><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum1">   1:</span> $count = $args.Count</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum2">   2:</span> <span>if</span> ($count -lt 2) {</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum3">   3:</span>     Write-Host</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum4">   4:</span>     Write-Host <span>&quot;You need to specify username and security group as arguments: .\convertUserToShared.ps1 &lt;username@domain.ext&gt; &lt;securitygroup&gt;&quot;</span> -ForegroundColor Red</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum5">   5:</span>     Write-Host</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum6">   6:</span> }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum7">   7:</span> <span>else</span> {</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum8">   8:</span>     $mbx = $args[0]</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum9">   9:</span>     $secGroup = $args[1]</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum10">  10:</span>     Write-Host Processing user: $mbx -ForegroundColor Yellow</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum11">  11:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum12">  12:</span>     # Verify <span>if</span> group exist, remember <span>to</span> DirSync it first</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum13">  13:</span>     $test = Get-Group $secGroup -ErrorAction SilentlyContinue</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum14">  14:</span>     <span>if</span> ($test -ne $null) {</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum15">  15:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum16">  16:</span>         # Verify <span>if</span> mailbox exist</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum17">  17:</span>         $test = Get-Mailbox $mbx -ErrorAction SilentlyContinue</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum18">  18:</span>         <span>if</span> ($test -ne $null) {</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum19">  19:</span>     </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum20">  20:</span>             # <span>Do</span> the <span>&quot;clever&quot;</span> stuff <span>to</span> find out <span>if</span> mbx is less than 4500 MB (leaves a little room up <span>to</span> 5 GB)</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum21">  21:</span>             $stat = Get-MailboxStatistics $mbx</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum22">  22:</span>             $tmp = $stat.TotalItemSize.Value.ToString().Split(<span>&quot;(&quot;</span>)[0].Replace(<span>&quot; &quot;</span>,<span>&quot;&quot;</span>)</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum23">  23:</span>             $mb = Invoke-Expression $tmp/1MB</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum24">  24:</span>             <span>if</span> ([int]$mb -lt 4500) {</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum25">  25:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum26">  26:</span>                 # Setting the actual mailbox parameters</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum27">  27:</span>                 Write-Host Converting user $mbx <span>to</span> shared and setting quota <span>to</span> 5 GB...</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum28">  28:</span>                 Set-Mailbox -Identity $mbx -Type <span>&quot;Shared&quot;</span> -ProhibitSendReceiveQuota 5GB -ProhibitSendQuota 4.75GB -IssueWarningQuota 4.5GB</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum29">  29:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum30">  30:</span>                 # Adding permissions</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum31">  31:</span>                 Write-Host Adding permissions <span>for</span> $secGroup on $mbx</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum32">  32:</span>                 Add-MailboxPermission $mbx -User $secGroup -AccessRights FullAccess</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum33">  33:</span>                 Add-RecipientPermission $mbx -Trustee $secGroup -AccessRights SendAs -Confirm:$<span>false</span></pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum34">  34:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum35">  35:</span>                 # Remove the license, Shared Mailboxes <span>with</span> a 5GB limit are free of charge</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum36">  36:</span>                 Write-Host Removing license <span>for</span> $mbx</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum37">  37:</span>                 $MSOLSKU = (Get-MSOLUser -UserPrincipalName $mbx).Licenses[0].AccountSkuId</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum38">  38:</span>                 Set-MsolUserLicense -UserPrincipalName $mbx -RemoveLicenses $MSOLSKU</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum39">  39:</span>                 Write-Host Done! -ForegroundColor Green</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum40">  40:</span>&nbsp; </pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum41">  41:</span>             }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum42">  42:</span>             <span>else</span> { Write-Host Mailbox is ([int]$mb) MB which is too large <span>for</span> conversion <span>to</span> a nonlicensed shared mailbox, reduce size and try again. -ForegroundColor Red }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum43">  43:</span>         }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum44">  44:</span>         <span>else</span> { Write-Host Mailbox: $mbx does not exist! -ForegroundColor Red    }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum45">  45:</span>     }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum46">  46:</span>     <span>else</span> { Write-Host Group: $secGroup does not exist! -ForegroundColor Red    }</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;"><span id="lnum47">  47:</span> Write-Host</pre><!--CRLF--><pre style="overflow:visible;font-size:8pt;font-family:&#39;Courier New&#39;, courier, monospace;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;"><span id="lnum48">  48:</span> }</pre><!--CRLF--></div></div>
<p>&nbsp;</p>
<p><strong><font size="2">Important:</font></strong></p>
<p><font size="2">If you’re synchronizing your accounts with Active Directory using DirSync (or FIM), please make sure that the following attributes are set on the modified Shared Mailbox objects in Active Directory:</font></p>
<p><font size="2">msExchRemoteRecipientType = 100<br />msExchRecipientTypeDetails = 34359738368 (Optional but will set correct Remote Mailbox type on-prem)<br /></font></p>
<p><font size="2">If these attributes are not set correctly, you will risk that DirSync converts the cloud object back to a regular mailbox.</font></p>
<p><font size="2"><strong></strong></font>&nbsp;</p>
<p><font size="2"><strong>Note:</strong> </font></p>
<p><font size="2">If you can make a regex that will do the job of line 22, you will be credited on this page! :)</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Office 365: Common mistakes when configuring Hybrid Deployment</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/office-365-common-mistakes-when-configuring-hybrid-deployment</link>
      <pubDate>Mon, 18 Feb 2013 01:36:05 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2013/02/18/office-365-common-mistakes-when-configuring-hybrid-deployment/</guid>
      <description><![CDATA[I am putting together a list of common mistakes made when configuring Hybrid Deployment. Items...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana">I am putting together a list of common mistakes made when configuring Hybrid Deployment. Items will be added to the list as I see them or are made aware of their existence, feel free to send me suggestions.</font></p>  <p><font size="2" face="Verdana">Always use the HCW (Hybrid Configuration Wizard) when configuring Hybrid Deployment.</font></p>  <p><font size="2" face="Verdana"></font></p>  <h2>Admin account not mail enabled</h2>  <p><font size="2" face="Verdana">I think that this is probably the most common mistake, especially in hosted environments where multiple people from different organizations are administrators on the the Exchange Organization.</font></p>  <p><font size="2" face="Verdana">Always mail enable Exchange Admin accounts, or the wizard may fail during Set-HybridConfiguration or Update-HybridConfiguration.</font></p>  <p><font size="2" face="Verdana">You may see errors such as: “ERROR:Updating hybrid configuration failed with error 'Subtask ValidateConfiguration execution failed: Configure Legacy Exchange Support” as a symptom of the Admin account not being mail enabled.</font></p>  <p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana"></font></p>  <h2>DNS TXT record</h2>  <p><font size="2" face="Verdana">When running the Hybrid Configuration Wizard, you are asked to create a DNS TXT record as proof of domain ownership. Do not ignore this step, as the wizard will fail in the end.</font></p>  <p><font size="2" face="Verdana">Create the record and wait 15-20 minutes before continuing.</font></p>  <p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana"></font></p>  <h2>Three strikes and you’re out</h2>  <p><font size="2" face="Verdana">If the Hybrid Configuration Wizard fails for any reason; troubleshoot the problem instead of just running the wizard again. If configuring a hybrid relationship fails three times, you need to wait 24 hours before trying again.</font></p>  <p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana">I hope this will ease your planning and troubleshooting. Enjoy…</font></p>  <p><font size="2" face="Verdana">&#160;</font></p>]]></content:encoded>
    </item>
    <item>
      <title>Find ActiveSync User by Device ID or IMEI</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/find-activesync-user-by-device-id-or-imei</link>
      <pubDate>Sun, 23 Sep 2012 12:25:32 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2012/09/23/find-activesync-user-by-device-id-or-imei/</guid>
      <description><![CDATA[Have you ever needed to find out which user is using a given mobile device and all you have is the...]]></description>
      <content:encoded><![CDATA[<p>Have you ever needed to find out which user is using a given mobile device and all you have is the Device ID or IMEI code? The other way around is very simple but doesn’t really solve the problem.</p>  <p>I put together the following piece of code to simplify the operation:</p>  <p>$Mailboxes = Get-CASMailbox -ResultSize Unlimited | Where {$_.HasActiveSyncDevicePartnership -eq $True }    <br />$User = $Mailboxes | %{Get-ActiveSyncDeviceStatistics -Mailbox $_.Identity} | `?{$_.DeviceImei -like &quot;0123456789ABCDEF&quot;}     <br />$User | fl Mailbox, DeviceType</p>  <p>You can of course substitute $_.DeviceImei with $_.DeviceId if that’s what you’re looking for.</p>  <p>Enjoy :)</p>]]></content:encoded>
    </item>
    <item>
      <title>Accessing PerfMon counters from Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/accessing-perfmon-counters-from-powershell</link>
      <pubDate>Thu, 02 Feb 2012 03:09:33 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2012/02/02/accessing-perfmon-counters-from-powershell/</guid>
      <description><![CDATA[These lines of code can be used for all sorts of purposes where Performance Monitor counters are...]]></description>
      <content:encoded><![CDATA[<p><font size="2" face="Verdana">These lines of code can be used for all sorts of purposes where Performance Monitor counters are needed in a Powershell script or just as a one time deal on the command line.</font></p>  <p><font size="2" face="Verdana">I’ve been using the example below to get “snapshots” of how a Jetstress test is going. Jetstress tests, as you know, can run for an extensive period of time before showing the final result, so it’s nice to get an indication of the result beforehand (without having to launch perfmon and adding counters etc.).</font></p>  <p><font size="2" face="Courier New"></font></p>  <p><font size="2" face="Courier New">$jetstresscounters=@()      <br />      <br />&quot;MBX01&quot;, &quot;MBX02&quot;, &quot;MBX03&quot; | % {       <br />$jetstresscounters+= &quot;\\$_\MSExchange Database(JetstressWin)\</font><font size="2" face="Courier New">I/O Database Reads Average Latency&quot;      <br />$jetstresscounters+= &quot;\\$_\MSExchange Database(JetstressWin)\I/O Log Writes Average Latency&quot;       <br />}       <br />Get-Counter -Counter $jetstresscounters -ErrorAction:SilentlyContinue -MaxSamples 1 -SampleInterval 1</font></p>  <p><font size="2" face="Verdana"></font></p>  <p><font size="2" face="Verdana">The example will read one sample of each counter from each of the servers (can be executed remote) and present the result when all counters have been read. </font></p>  <p><font size="2" face="Verdana">Increase MaxSamples to get more samples for each counter and SampleInterval to have the samples further apart. Notice that this of course will increase the run time of the script.</font></p>  <p><font size="2" face="Verdana">Hope you will find it useful in your deployment and testing.</font></p>  <p><font size="2" face="Verdana">Thanks to Bo Eschricht for idea and creative coding… <img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/61/40/metablogapi/3036.wlEmoticon-smile_0CB84869.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-61-40-metablogapi/3036.wlEmoticon_2D00_smile_5F00_0CB84869.png" /></font></p> <font size="2" face="Verdana">   <p><font size="2" face="Verdana"></font></p>    <p><font size="2" face="Verdana"></font></p>    <p><font size="2" face="Verdana"></font></p> </font>  <p><font size="2" face="Verdana"></font></p>]]></content:encoded>
    </item>
    <item>
      <title>Automating updating of Exchange configuration files</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/automating-updating-of-exchange-configuration-files</link>
      <pubDate>Mon, 14 Nov 2011 03:06:37 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2011/11/14/automating-updating-of-exchange-configuration-files/</guid>
      <description><![CDATA[When configuring the Transport Role in Exchange 2010, you often change the paths of the Queue...]]></description>
      <content:encoded><![CDATA[<p>When configuring the Transport Role in Exchange 2010, you often change the paths of the Queue Database and Logs. This is done by editing the EdgeTransport.exe.config file. This is a tedious task if deploying multiple servers and the risk of typo’s is always present when doing manual editing.</p>  <p>To automate this, use Powershell to parse and edit the file for you, as shown in the example below. Non-default installation path is used, so modify to suit your needs. The same code can be used when updating web.config or other configuration files.</p>  <p>&#160;</p>  <p>$TransportConfig = &quot;\D$\Exchange\Bin\EdgeTransport.exe.config&quot;</p>  <p>$FullServerName = “server1.contoso.com”</p>  <p>$newcontent = &quot;&quot;</p>  <p>$RemoteFile = &quot;\\&quot; + $FullServerName + $TransportConfig   <br />(Get-Content $RemoteFile) | Foreach-Object {     <br />&#160;&#160;&#160; $line = $_     <br />&#160;&#160;&#160; if ($line -like &quot;*QueueDatabasePath*&quot;) {$line = '&#160;&#160;&#160;&#160;&#160; &lt;add key=&quot;QueueDatabasePath&quot; value = &quot;E:\Exchange\TransportRoles\data\Queue&quot; /&gt;' }     <br />&#160;&#160;&#160; if ($line -like &quot;*QueueDatabaseLoggingPath*&quot;) {$line = '&#160;&#160;&#160;&#160;&#160; &lt;add key=&quot;QueueDatabaseLoggingPath&quot; value = &quot;E:\Exchange\TransportRoles\data\Queue&quot; /&gt;'}     <br />&#160;&#160;&#160; if ($line -like &quot;*TemporaryStoragePath*&quot;) {$line = '&#160;&#160;&#160;&#160;&#160; &lt;add key=&quot;TemporaryStoragePath&quot; value = &quot;E:\Exchange\TransportRoles\data\Temp&quot; /&gt;'}     <br />&#160;&#160;&#160; $newcontent += $line + [char]13 + [char]10     <br />}     <br />Set-Content $RemoteFile $newcontent</p>  <p>&#160;</p>  <p>Hope this will save you some time configuring Exchange.</p>]]></content:encoded>
    </item>
    <item>
      <title>Easy URL for Office 365 OWA</title>
      <link>https://docs.microsoft.com/archive/blogs/kpalmvig/easy-url-for-office-365-owa</link>
      <pubDate>Thu, 15 Sep 2011 05:09:00 GMT</pubDate>
      <dc:creator><![CDATA[Karsten Palmvig]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kpalmvig/2011/09/15/easy-url-for-office-365-owa/</guid>
      <description><![CDATA[You may have a hard time remembering the URL for your Office 365 OWA. The URL is usually something...]]></description>
      <content:encoded><![CDATA[<p><font face="Arial">You may have a hard time remembering the URL for your Office 365 OWA. The URL is usually something along the lines of: </font><font face="Arial">https://pod12345.outlook.com/OWA/, which may not make a lot of sense if you’re accessing OWA from the random kiosk browser and struggling to remember various URLs, user names and passwords…</font></p>  <p><font face="Arial">The really easy way, which is not very well documented in the Office 365 documentation is simply:</font></p>  <p><font face="Arial"><strong>https://outlook.com/contoso.com</strong></font></p>  <p><font face="Arial">Needless to say, you have to replace the “contoso.com” part with your own domain… Another advantage is that this URL will take you directly to your inbox instead of the common landing page.</font></p>  <p><font face="Arial">Don’t forget to sign out, if you’re accessing your mail account from a public computer.</font></p>  <p><font face="Arial">Happy emailing! <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/61/40/metablogapi/4604.wlEmoticon-smile_095192E9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-61-40-metablogapi/4604.wlEmoticon_2D00_smile_5F00_095192E9.png" /></font></p>]]></content:encoded>
    </item>
  </channel>
</rss>