<?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>Brandon Everhardt</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/brandev/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/brandev/feed.xml</link>
    <description>Administrators Perspective!  Exchange - O365 - PowerShell</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:24:11 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>PowerShell: Quick HTML Reports using CSS Stylesheet</title>
      <link>https://docs.microsoft.com/archive/blogs/brandev/powershell-quick-html-reports-using-css-stylesheet</link>
      <pubDate>Fri, 26 Jun 2015 17:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Brandon Everhardt [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brandev/2015/06/26/powershell-quick-html-reports-using-css-stylesheet/</guid>
      <description><![CDATA[Updated 07/01/2015 &ndash; Refined CSS file and script. 
&nbsp;
As IT administrators we&#39;re...]]></description>
      <content:encoded><![CDATA[<p><span style="color:red;font-family:Times New Roman;font-size:10pt;">Updated 07/01/2015 &ndash; Refined CSS file and script. </span></p>
<p>&nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">As IT administrators we&#39;re frequently asked to provide a report related to one thing or another.&nbsp; As an Exchange administrator, for example, it&#39;s a rather common occurrence to receive a request from management requesting something like a list of inactive mailboxes for license reconciliation. &nbsp;Perhaps an inquiry sourced from the audit team requesting a list of employees capable of&nbsp;accessing&nbsp;corporate data on mobile devices?&nbsp; Maybe you&#39;re the source.&nbsp; You have a reporting need for some task you&#39;re performing. &nbsp;Examples here could be a PowerShell script where you&#39;re performing&nbsp;some maintenance or bulk changes&nbsp;and you want a report&nbsp;making it easier&nbsp;to monitor its activity. </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Although many organizations leverage reporting&nbsp;tools like SCOM/SCCM, a 3<sup>rd</sup> party product or Office 365 Reporting services to handle their reporting needs. &nbsp;I&#39;ve found myself in many of these ad-hoc situations where there was&nbsp;no reporting tool available that met my requirements or the overhead involved to create a custom report&nbsp;using SCOM/SCCM&nbsp;tools available outweighed the effort involved with just working with the PowerShell results myself.&nbsp; Still,&nbsp;this left me with some text files or Excel spreadsheets to manipulate, manually, into a usable report.&nbsp; NOT IDEAL... </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Setting off to solve the problem at hand, I found some examples&nbsp;on TechNet, used&nbsp;Visual Studio to explore HTML and CSS a bit deeper then refined a process that has served me well for some time now.&nbsp; I wanted to share what I&#39;ve been using&nbsp;and hopefully you&#39;ll find this approach is easy to use, easy to reproduce and it fits in your toolbox nicely. </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">With that said, Exchange has been my primary technology focus for many years and the context of this post is aligned to Exchange related tasks.&nbsp; However, the process outlined here is&nbsp;agnostic in that any PowerShell results, regardless of source, can be used to generate the same simple report. </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">&nbsp;</span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">&nbsp;</span></p>
<div></div>
<div></div>
<div style="margin-left:60px;"><img width="788" height="407" style="border-color:currentColor;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/77/20150626-153719-0001.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/788x407/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-77/20150626_2D00_153719_2D00_0001.png" /></div>
<p>&nbsp; &nbsp;</p>
<p>&nbsp; &nbsp;</p>
<p>&nbsp; &nbsp;</p>
<h2><span style="font-size:14pt;">Overview </span></h2>
<p><span style="font-family:Times New Roman;font-size:12pt;">The examples here are very basic. We are creating a solid base where we can build more elaborate solutions from later on and this will also make it easier to navigate through the steps. That said, the CSS file and script examples here are fairly lean and that is the intent. In a follow up post, we will explore creating a Function out of our reporting script, adding multiple tables to a single report and perhaps a sortable table? Also, a special thank you to Dustin Dortch for providing some suggestions that allowed for even more refinement. More on that later. </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Ok - let&#39;s get right into it. </span></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">The steps required to get a nice report like the one above is as follows: </span></p>
<ul>
<li><span style="font-family:Times New Roman;font-size:12pt;"><strong>PowerShell cmdlet</strong>: Build a PowerShell cmdlet to gather some set of data. </span></li>
<li><span style="font-family:Times New Roman;font-size:12pt;"><strong>CSS (Cascading Style Sheet) file</strong>: A CSS (Cascading Style Sheet) file contains predefined HTML styles you can reference.&nbsp; This is the key that makes this simple.&nbsp; A CSS file can contain many style definitions.&nbsp; For example, you may have several table styles defined where one style would be called when you want your table to be colored black and white while another style is defined with blue and white.&nbsp; You can think of this file as a list of predefined and reusable templates and you can reference these styles throughout the HTML document to get the desired formatting effect&nbsp;and results. </span></li>
<li>
<div><span style="font-family:Times New Roman;font-size:12pt;"><strong>ConvertTo-HTML cmdlet:</strong> Using this cmdlet allows you to build an HTML page. That&#39;s it! </span></div>
<p>&nbsp;</p>
</li>
</ul>
<p><span style="font-family:Times New Roman;font-size:12pt;">To generate a report like the one pictured above, I used the following CSS style.&nbsp; Save this to a file&nbsp;named table.css. </span></p>
<div>
<table style="margin-left:30px;border-collapse:collapse;" border="0"><colgroup><col style="width:865px;" /></colgroup>
<tbody valign="top">
<tr style="height:102px;">
<td valign="middle" style="padding-top:1px;padding-left:7px;padding-bottom:1px;padding-right:7px;border:solid 0.5pt;"><ol>
<li>
<div style="background:white;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">h1<span style="color:black;">, <span style="color:maroon;">h5<span style="color:black;">, <span style="color:maroon;">th<span style="color:black;"> { <span style="color:red;">text-align<span style="color:black;">: <span style="color:blue;">center<span style="color:black;">; } </span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">table<span style="color:black;"> { <span style="color:red;">margin<span style="color:black;">: <span style="color:blue;">auto<span style="color:black;">; <span style="color:red;">font-family<span style="color:black;">: <span style="color:blue;">Segoe<span style="color:black;"> <span style="color:blue;">UI<span style="color:black;">; <span style="color:red;">box-shadow<span style="color:black;">: <span style="color:blue;">10px<span style="color:black;"> <span style="color:blue;">10px<span style="color:black;"> <span style="color:blue;">5px<span style="color:black;"> <span style="color:blue;">#888<span style="color:black;">; <span style="color:red;">border<span style="color:black;">: <span style="color:blue;">thin<span style="color:black;"> <span style="color:blue;">ridge<span style="color:black;"> <span style="color:blue;">grey<span style="color:black;">; } </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">th<span style="color:black;"> { <span style="color:red;">background<span style="color:black;">: <span style="color:blue;">#0046c3<span style="color:black;">; <span style="color:red;">color<span style="color:black;">: <span style="color:blue;">#fff<span style="color:black;">; <span style="color:red;">max-width<span style="color:black;">: <span style="color:blue;">400px<span style="color:black;">; <span style="color:red;">padding<span style="color:black;">: <span style="color:blue;">5px<span style="color:black;"> <span style="color:blue;">10px<span style="color:black;">; } </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">td<span style="color:black;"> { <span style="color:red;">font-size<span style="color:black;">: <span style="color:blue;">11px<span style="color:black;">; <span style="color:red;">padding<span style="color:black;">: <span style="color:blue;">5px<span style="color:black;"> <span style="color:blue;">20px<span style="color:black;">; <span style="color:red;">color<span style="color:black;">: <span style="color:blue;">#000<span style="color:black;">; } </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">tr<span style="color:black;"> { <span style="color:red;">background<span style="color:black;">: <span style="color:blue;">#b8d1f3<span style="color:black;">; } </span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">tr:nth-child(even)<span style="color:black;"> { <span style="color:red;">background<span style="color:black;">: <span style="color:blue;">#dae5f4<span style="color:black;">; } </span></span></span></span></span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:maroon;font-family:Consolas;font-size:10pt;">tr:nth-child(odd)<span style="color:black;"> { <span style="color:red;">background<span style="color:black;">: <span style="color:blue;">#b8d1f3<span style="color:black;">; }</span></span></span></span></span></span></div>
</li>
</ol></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp; &nbsp;</p>
<p>&nbsp; &nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Next, I need some data right?&nbsp; I&#39;ve decided to gather some migration statistics from an Office 365&nbsp;mailbox migration to.&nbsp; I&#39;ve connected to <a href="https://technet.microsoft.com/en-us/library/jj984289(v=exchg.150).aspx">Exchange Online using Remote PowerShell </a>and here is the Cmdlet&nbsp;I&#39;ll run to preview my results: &nbsp; </span></p>
<div>
<table style="margin-left:30px;border-collapse:collapse;" border="0"><colgroup><col style="width:768px;" /></colgroup>
<tbody valign="top">
<tr style="height:36px;">
<td valign="middle" style="padding-top:1px;padding-left:7px;padding-bottom:1px;padding-right:7px;border:solid 0.5pt;">
<p style="background:white;"><span style="color:#2b91af;"><span style="font-family:Consolas;font-size:10pt;">Get-MoveRequest<span style="color:black;"> -BatchName MigrationService:MigrationBatch1 | <span style="color:#2b91af;">Get-MoveRequestStatistics<span style="color:black;"> | <br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">Select-Object<span style="color:black;"> MailboxIdentity,StatusDetail,PercentComplete,TotalInProgressDuration,StartTimestamp</span></span></span></span></span></span><span style="color:#2b91af;font-family:Times New Roman;font-size:12pt;"> </span></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp; &nbsp;</p>
<p>&nbsp; &nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">And the results.&nbsp; Nothing super exciting here but I wanted to note that I&#39;m not using any output&nbsp;formatting like Format-Table or Format-List with my cmdlet.&nbsp; I just run the cmdlet and select the objects I want returned. </span></p>
<p style="margin-left:60px;"><img style="border-color:currentColor;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/77/psexample.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/333x219/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-77/psexample.png" /></p>
<p>&nbsp; &nbsp;</p>
<p></p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Now, let&#39;s form a basic script and use the ConvertTo-HTML cmdlet to generate the HTML code needed for the report.&nbsp; I&#39;ve highlighted some key talking points that pertain to the parameters I used.&nbsp; </span></p>
<div style="margin-left:30px;">
<table style="margin-left:30px;border-collapse:collapse;" border="0"><colgroup><col style="width:1005px;" /></colgroup>
<tbody valign="top">
<tr style="height:174px;">
<td valign="middle" style="padding-top:1px;padding-left:7px;padding-bottom:1px;padding-right:7px;border:solid 0.5pt;"><ol>
<li>
<div style="background:white;"><span style="color:darkgreen;font-family:Consolas;font-size:10pt;"># Environment Variables<span style="color:black;"> </span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:orangered;">$HTMLReport<span style="color:black;"> <span style="color:darkgray;">=<span style="color:black;"> <span style="color:darkred;">&quot;D:\Report.html&quot;<span style="color:black;"> </span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:orangered;">$ReportTitle<span style="color:black;"> <span style="color:darkgray;">=<span style="color:black;"> <span style="color:darkred;">&quot;Migration Report&quot;<span style="color:black;"> </span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:darkgreen;font-family:Consolas;font-size:10pt;"># Collect Data<span style="color:black;"> </span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:orangered;">$ResultSet<span style="color:black;"> <span style="color:darkgray;">=<span style="color:black;"> <span style="color:blue;">Get-MoveRequest<span style="color:black;"> <span style="color:navy;">-BatchName<span style="color:black;"> <span style="color:blueviolet;">MigrationService:MigrationBatch1<span style="color:black;"> <span style="color:darkgray;">|<span style="color:black;"> <span style="color:blue;">Get-MoveRequestStatistics<span style="color:black;"> <span style="color:darkgray;">|<span style="color:black;"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">select<span style="color:black;"> <span style="color:blueviolet;">MailboxIdentity<span style="color:darkgray;">,<span style="color:blueviolet;">StatusDetail<span style="color:darkgray;">,<span style="color:blueviolet;">PercentComplete<span style="color:darkgray;">,<span style="color:blueviolet;">TotalInProgressDuration<span style="color:darkgray;">,<span style="color:blueviolet;">StartTimestamp<span style="color:black;"> <span style="color:navy;">-First<span style="color:black;"> <span style="color:purple;">10<span style="color:black;"> <span style="color:darkgray;">|<span style="color:black;"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:white;"><span style="font-family:Consolas;font-size:10pt;"><span style="color:black;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">ConvertTo-Html<span style="color:black;"> </span><span style="background-color:yellow;">-CssUri</span></span><span style="background-color:yellow;"> </span></span><span style="background-color:yellow;">&quot;D:\table.css&quot;</span> <span style="background-color:aqua;">-Title $ReportTitle</span> <span style="background-color:lime;">-Body &quot;&lt;h1&gt;$ReportTitle&lt;/h1&gt;`n&lt;h5&gt;Updated: on $(Get-Date)&lt;/h5&gt;&quot;</span><span style="color:black;"> </span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:darkgreen;font-family:Consolas;font-size:10pt;"># Write Content to Report.<span style="color:black;"> </span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Add-Content<span style="color:black;"> <span style="color:orangered;">$HTMLReport<span style="color:black;"> <span style="color:orangered;">$ResultSet<span style="color:black;"> </span></span></span></span></span></span></span></div>
</li>
<li>
<div style="background:#f3f3f3;"><span style="color:darkgreen;font-family:Consolas;font-size:10pt;"># Call the results or open the file.<span style="color:black;"> </span></span></div>
</li>
<li>
<div style="background:white;"><span style="color:black;font-family:Consolas;font-size:10pt;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Invoke-Item<span style="color:black;"> <span style="color:orangered;">$HTMLReport</span></span></span></span></div>
</li>
</ol></td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp; &nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">The parameters are pretty straight forward. </span></p>
<ul style="margin-left:54pt;">
<li><span style="font-family:Times New Roman;font-size:12pt;"><span style="background-color:yellow;">CSSUri</span> &ndash; A reference to the table.css style sheet. </span></li>
<li><span style="font-family:Times New Roman;font-size:12pt;"><span style="background-color:aqua;">Title</span> &ndash; Give the HTML document a title. This is not required but a nice touch. We reference our previously defined variable. </span></li>
<li><span style="font-family:Times New Roman;font-size:12pt;"><span style="background-color:lime;">Body</span> &ndash; Adding a Title for the table itself then (<strong>`n</strong>) generates a new line which is&nbsp;followed by a time stamp when the report is run using another variable. </span></li>
</ul>
<p>&nbsp; &nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">If we execute the $ResultSet variable from PowerShell we can see a fully function HTML document with a&nbsp;reference to the CSS Style Sheet, title, body and some table data. </span></p>
<p style="margin-left:60px;"><span style="font-family:Times New Roman;font-size:12pt;"><img width="1042" height="396" style="border-color:currentColor;" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/77/20150626-174828-0001.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/1042x396/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-77/20150626_2D00_174828_2D00_0001.png" />&nbsp;</span></p>
<p style="margin-left:36pt;">&nbsp;</p>
<p style="margin-left:36pt;">&nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">Finally, the script is very straight forward. Stepping through it: </span></p>
<div style="margin-left:30px;">
<table style="margin-left:30px;border-collapse:collapse;" border="0"><colgroup><col style="width:1013px;" /></colgroup>
<tbody valign="top">
<tr style="height:46px;">
<td style="padding-left:7px;padding-right:7px;">
<p style="background:white;"><span style="font-family:Times New Roman;font-size:12pt;">Line 2:&nbsp;&nbsp;&nbsp;&nbsp;I use a variable, $HTMLReport, to represent my final .html file.<br />Line 3:&nbsp;&nbsp;&nbsp;&nbsp;I use a variable, $ReportTitle, to be used for the page and table title.<br />Line 5:&nbsp;&nbsp;&nbsp;&nbsp;I use a variable, $ResultSet, to store the data returned by my Cmdlet including the HTML formatted output and the css styles noted above.<br />Line 8:&nbsp;&nbsp;&nbsp;&nbsp;I write the contents of the $ResultSet variable to the .html file I&#39;ve defined as $HTMLReport. <br />Line 12:&nbsp;&nbsp;I call for the Report and a browser opens up and displays the final webpage.</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp; &nbsp;</p>
<p style="margin-left:36pt;">&nbsp; &nbsp;</p>
<p><span style="font-family:Times New Roman;font-size:12pt;">&nbsp;And that&#39;s that!&nbsp; Simple, clean, nice looking report. Part II we will talk about using a Function to make this even easier; adding multiple tables to a single report and sortable tables! Stay tuned.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Exchange - Parsing Admin Audit Logs with Style</title>
      <link>https://docs.microsoft.com/archive/blogs/brandev/exchange-parsing-admin-audit-logs-with-style</link>
      <pubDate>Thu, 18 Jun 2015 11:47:43 GMT</pubDate>
      <dc:creator><![CDATA[Brandon Everhardt [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brandev/2015/06/18/exchange-parsing-admin-audit-logs-with-style/</guid>
      <description><![CDATA[Have you ever wished you could reveal more details within&nbsp;the admin audit logs...]]></description>
      <content:encoded><![CDATA[<p>Have you ever wished you could reveal more details within&nbsp;the admin audit logs for&nbsp;Exchange or Office 365 - Exchange Online?&nbsp; Well, you can!&nbsp;&nbsp;My colleague, <a href="/b/matthew_byrd/">Matthew Byrd</a>, wrote a PowerShell Script that allows you to reveal details within the audit logs like no other!</p>
<p>The script can be <a href="https://gallery.technet.microsoft.com/scriptcenter/Get-SimpleAuditLogReport-19e9e51a">downloaded from TechNet Gallery</a> and you&rsquo;ll find it&rsquo;s well documented and commented throughout.</p>
<p>&nbsp;</p>
<p><strong>Check out the full article and walkthrough over on the <a href="/b/exchange/archive/2015/06/15/parsing-the-admin-audit-logs-with-powershell.aspx">EHLO Team Blog</a> site.</strong></p>
<p><strong>&nbsp;<br /></strong></p>
<p><strong>&nbsp; <br /></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Office 365 – Getting Started</title>
      <link>https://docs.microsoft.com/archive/blogs/brandev/office-365-getting-started</link>
      <pubDate>Mon, 09 Mar 2015 20:06:00 GMT</pubDate>
      <dc:creator><![CDATA[Brandon Everhardt [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/brandev/2015/03/09/office-365-getting-started/</guid>
      <description><![CDATA[Migrating&nbsp;from any one system to another is a technical challenge that requires training,...]]></description>
      <content:encoded><![CDATA[<p><em><span style="font-size:small;">Migrating&nbsp;from any one system to another is a technical challenge that requires training, preparation, testing and a good plan.&nbsp; That is, if you want a stress free migration.&nbsp; The difference between a stress free or &#39;boring&#39; migration and a very bad experience is simple.&nbsp;&nbsp;How well can you&nbsp;respond to&nbsp;the unexpected?&nbsp; Do&nbsp;you&nbsp;know the product and technologies you&#39;re working with? Can you creatively find a solution by leveraging that knowledge?&nbsp; Migrating to Office 365 is no different.&nbsp; The most common problems encountered during migrations are easily mitigated and well defined.&nbsp; I see days or even weeks of migration time lost due to an issue that end up being a misconfiguration or misunderstanding -- In other words, lack of preparation.&nbsp; I&#39;m frequently asked if I&nbsp;can share&nbsp;any guides, documentation or training opportunities to help someone who is a beginner or just getting started with either Exchange Online or Office 365 as a whole.&nbsp; This blog post attempts to accomplish that.&nbsp; Whether&nbsp;you&#39;re just getting started or an old veteran, the websites and guidance below should be in your toolbox.</span></em></p>
<p><em><span style="font-size:small;">&nbsp;</span></em></p>
<p><span style="font-size:x-small;"><em>Update - 5/11/2015 - Added new link for Office 365 URLs and IP Address Ranges.</em><em><br /></em></span></p>
<p><em><span style="font-size:small;"><span style="font-size:x-small;">Update - 5/11/2015 - Office 365 Knowledge Base Library</span><br /></span></em></p>
<p><em><span style="font-size:small;">&nbsp;</span></em></p>
<h2><span style="font-weight:bold;"><span style="text-decoration:underline;">News, Blogs and Important URLs</span> </span></h2>
<p><em>These URLs are great places to frequent to stay up to date on Office 365 news and updates.</em></p>
<p><span style="font-size:medium;"><strong>Exchange Team Blog:</strong></span>&nbsp; <span style="font-size:small;">This should be your homepage. Really, it should.&nbsp; Is it your homepage yet? </span><a href="https://aka.ms/ehlo"><span style="font-size:small;">https://aka.ms/ehlo</span></a></p>
<p><span style="font-size:medium;"><strong>Office 365 Community Portal:&nbsp; </strong></span><span style="font-size:small;">Community Portal site with a wealth of knowledge and self-help. Always check here second! </span><a href="https://community.office365.com/en-us/default.aspx"><span style="font-size:small;">https://community.office365.com/en-us/default.aspx</span></a>&nbsp;</p>
<p><span style="font-size:medium;"><strong>Office 365 Blog Site:&nbsp; </strong></span><span style="font-size:small;">Another fantastic resource allowing you to stay current on Office 365. </span><a href="https://blogs.office.com/?filter=true&amp;amp;filter-product=office-365"><span style="font-size:small;">https://blogs.office.com/?filter=true&amp;amp;filter-product=office-365</span></a></p>
<p><strong><span style="font-size:medium;">Office Updates:</span></strong>&nbsp; <span style="font-size:small;">News about security updates, public updates, service packs and product lifecycle from the Microsoft Office sustained Engineering team. </span><a href="/b/office_sustained_engineering/"><span style="font-size:small;">https://blogs.technet.com/b/office_sustained_engineering/</span></a>&nbsp;</p>
<p><span style="font-size:medium;"><strong>Exchange Server Updates:&nbsp; </strong></span><span style="font-size:small;">A patched Exchange Environment is a happy one! </span><a href="https://technet.microsoft.com/en-us/library/hh135098(v=exchg.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/hh135098(v=exchg.150).aspx</span></a><span style="font-size:small;"> </span></p>
<p><span style="font-size:medium;"><strong>IP Addresses and URL firewall exclusions:</strong></span>&nbsp; <span style="font-size:small;">Microsoft publishes a list of URLs and IP addresses that MUST be allowed through your firewall.&nbsp; This list is updated frequently and I highly suggest you keep an eye on this.&nbsp; The URL has changed --&nbsp;<a href="https://support.office.com/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2">Office 365 URLs and IP address ranges</a>&nbsp; I suggest subscribing to the RSS feed and note you can now access the IP addresses programmatically... <a title="We now offer all updates via XML" class="ocpExternalLink" href="https://go.microsoft.com/fwlink/?LinkId=533185" target="_blank">via XML</a>.</span></p>
<p><span style="font-size:small;"><span style="font-size:medium;"><strong>Office 365 Knowledge Base Library</strong></span> -&nbsp;Wow.&nbsp; Really... wow.. Thanks to Patrick Murray for the link!&nbsp; &nbsp;<a href="https://social.technet.microsoft.com/wiki/contents/articles/13276.office-365-knowledge-base-library.aspx">https://social.technet.microsoft.com/wiki/contents/articles/13276.office-365-knowledge-base-library.aspx</a>&nbsp; <br /></span></p>
<p></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<h2><span style="font-weight:bold;"><span style="text-decoration:underline;">Training </span></span></h2>
<p><span style="font-size:medium;"><strong>Office 365 Guide on Office Ignite Online:</strong></span> <span style="font-size:small;">Short, topic specific training sessions. </span><a href="https://officeignitelabs.cloudguides.com/Office%20365%20Guides.htm"><span style="font-size:small;">https://officeignitelabs.cloudguides.com/Office%20365%20Guides.htm</span></a></p>
<p><span style="font-size:medium;"><strong>End User Training Resources for Office 2013 and Office 365:</strong></span> <span style="font-size:small;">You wanted resources? Here you will find TONS. </span><a href="https://technet.microsoft.com/en-us/library/jj871004.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj871004.aspx</span></a></p>
<p><strong><span style="font-size:medium;">Office 365 for IT Pros: </span></strong><a title="https://technet.microsoft.com/en-us/office/dn788774.aspx" href="https://technet.microsoft.com/en-us/office/dn788774.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/office/dn788774.aspx</span></a></p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<h2><span style="font-weight:bold;"><span style="text-decoration:underline;">Deployment and Troubleshooting </span></span></h2>
<p><span style="font-size:medium;"><strong>Guided walkthroughs for Exchange, Lync, SharePoint, and Office 365:</strong></span> <a href="https://support2.microsoft.com/kb/2934107"><span style="font-size:small;">https://support2.microsoft.com/kb/2934107</span></a>&nbsp;</p>
<p><span style="font-size:medium;"><strong>Office 365 DIY Troubleshooter: </strong></span><a href="https://community.office365.com/en-us/p/troubleshooting.aspx#31609269-0"><span style="font-size:small;">https://community.office365.com/en-us/p/troubleshooting.aspx#31609269-0</span></a>&nbsp;</p>
<p><span style="font-size:medium;"><strong>Office 365 Deployment Center:</strong></span> <span style="font-size:small;">Another great place to start for general information if you&#39;re just starting out. </span><a href="https://deploy.office.com/"><span style="font-size:small;">https://deploy.office.com/</span></a></p>
<p><span style="font-size:medium;"><strong>Office 365 System Requirements:</strong></span> <a href="https://technet.microsoft.com/en-us/library/office-365-system-requirements.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/office-365-system-requirements.aspx</span></a>&nbsp;</p>
<p><span style="font-size:medium;"><strong>Office365 Deployment Guide:</strong></span> <a href="https://technet.microsoft.com/en-us/library/hh852466.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/hh852466.aspx</span></a><span style="font-size:small;">&nbsp; </span></p>
<p><span style="font-size:small;"><span style="font-size:medium;"><strong>The Cloud On Your Terms:</strong></span> <a href="https://aka.ms/ehlo">The Exchange Team Blog (EHLO)</a> posted this fantastic overview for a hybrid deployment.&nbsp; <a href="/b/exchange/archive/2012/09/20/the-cloud-on-your-terms-part-ii-managing-hybrid.aspx">Part II</a> talks about managing your Hybrid deployment. <a href="/b/exchange/archive/2012/09/20/the-cloud-on-your-terms-part-i-deploying-hybrid.aspx">https://blogs.technet.com/b/exchange/archive/2012/09/20/the-cloud-on-your-terms-part-i-deploying-hybrid.aspx</a> </span><span style="font-size:small;"><br /></span></p>
<p><span style="font-size:small;"><span style="font-size:medium;"><strong>Autodiscover:</strong></span>&nbsp;This is not a deployment guide, guided walkthrough&nbsp;nor is it a troubleshooter.&nbsp;&nbsp;However, a&nbsp;functional and healthy Audosicover configuration is critical should&nbsp;you want that stress free migration.&nbsp; Know Autodiscover.&nbsp; Ensure your Autodiscover implementation <a href="https://aka.ms/exrca">works</a>. Here is a great article that describes client connectivity and&nbsp;how Autodiscover plays a role in it.&nbsp;<a href="/b/exchange/archive/2014/03/12/client-connectivity-in-an-exchange-2013-coexistence-environment.aspx">https://blogs.technet.com/b/exchange/archive/2014/03/12/client-connectivity-in-an-exchange-2013-coexistence-environment.aspx</a> <br /></span></p>
<p><span style="font-size:medium;"><strong>Exchange Deployment Assistant:</strong></span> <span style="font-size:small;">The Exchange Deployment Assistant allows you to plan deployments and upgrades. It&#39;s a fantastic troubleshooting tool. REPEAT, it&#39;s a fantastic troubleshooting tool. Use it as a baseline reference to check health or configuration during a break/fix situation. It also provides great references through each step should you have more questions regarding the step details. </span><a href="https://aka.ms/exdeploy"><span style="font-size:small;">https://aka.ms/exdeploy</span></a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />** The following tools are available from your tenant within the Office 365 Admin Center under &quot;Tools&quot;</p>
<p><span style="font-size:medium;"><strong>Office 365 Best Practice Analyzer:</strong></span>&nbsp; <span style="font-size:small;">Check your on-premises Exchange Server with the Office 365 Best Practices Analyzer (beta). </span><a href="https://community.office365.com/en-us/w/deploy/office-365-best-practices-analyzer-for-exchange-server-2013.aspx"><span style="font-size:small;">https://community.office365.com/en-us/w/deploy/office-365-best-practices-analyzer-for-exchange-server-2013.aspx</span></a></p>
<p><span style="font-size:medium;"><strong>Office 365 Readiness checks:</strong></span> <span style="font-size:small;">The readiness checks for Office 365 are part of an automated tool that gathers configuration requirements for the services you want to set up and performs readiness checks against your on-premises environment to ensure that requirements are met. </span><a href="https://community.office365.com/en-us/w/deploy/office-365-readiness-checks.aspx"><span style="font-size:small;">https://community.office365.com/en-us/w/deploy/office-365-readiness-checks.aspx</span></a></p>
<p><span style="font-size:medium;"><strong>ECPA Exchange Client Performance Tool:</strong></span> <span style="font-size:small;">You can use the Exchange Client Performance Analyzer (ECPA) tool to identify issues that affect performance between your company&#39;s client PCs and Office 365. </span><a href="https://technet.microsoft.com/en-us/library/Dn774958(l=en-us,v=EXCHG.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/Dn774958(l=en-us,v=EXCHG.150).aspx</span></a></p>
<p><span style="font-size:medium;"><strong>Microsoft Connectivity Analyzer:</strong></span> <span style="font-size:small;">The Microsoft Connectivity Analyzer Tool is a downloadable client program that is used to identify connectivity issues that occur between email clients and a server that is running Microsoft Exchange Server. The tool can also be used to identify connectivity issues between email clients and Office 365. The tool can be used both by email users, to identify common problems, and by IT Administrators, to troubleshoot issues that are affecting their Exchange Server deployments. </span><a href="https://technet.microsoft.com/library/jj851141(v=exchg.80).aspx"><span style="font-size:small;">https://technet.microsoft.com/library/jj851141(v=exchg.80).aspx</span></a>&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<h2><span style="font-weight:bold;"><span style="text-decoration:underline;">Common Questions </span></span></h2>
<p><span style="font-size:small;"><strong>Q:</strong></span> <strong><span style="font-size:small;">We use Forefront Threat Management Gateway. Do I have to configure it for Exchange Online and Office 365?</span></strong></p>
<p><span style="font-size:small;">A: Yes, you sure do! More details can be found here: </span><a href="https://community.office365.com/en-us/w/exchange/1042.how-to-configure-tmg-for-office-365-exchange-hybrid-deployments.aspx"><span style="font-size:small;">https://community.office365.com/en-us/w/exchange/1042.how-to-configure-tmg-for-office-365-exchange-hybrid-deployments.aspx</span></a></p>
<p style="margin-left:30px;"><span style="font-size:small;">If you want more information on Reverse Proxies with Office 365 here is the droid you seek: <a href="/b/exchange/archive/2013/07/19/reverse-proxy-for-exchange-server-2013-using-iis-arr-part-1.aspx">https://blogs.technet.com/b/exchange/archive/2013/07/19/reverse-proxy-for-exchange-server-2013-using-iis-arr-part-1.aspx</a> <br /></span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong><span style="font-size:small;">Q:</span></strong> <span style="font-size:small;"><strong>How do I migrate Mailboxes?</strong></span></p>
<p><span style="font-size:small;">A: Use the following resources to get you started.&nbsp; </span></p>
<ul>
<li><span style="font-size:small;">Start here: </span><a href="https://technet.microsoft.com/en-us/library/jj863291(v=exchg.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj863291(v=exchg.150).aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Overview: </span><a href="https://technet.microsoft.com/en-us/library/jj200581(v=exchg.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj200581(v=exchg.150).aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Step-by-step: </span><a href="https://technet.microsoft.com/en-us/library/jj906432(v=exchg.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj906432(v=exchg.150).aspx</span></a>&nbsp;</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong><span style="font-size:small;">Q:</span></strong> <span style="font-size:small;"><strong>What is ADFS and Single Sign On or should I use Directory Sync (Dirsync)?</strong></span></p>
<p><span style="font-size:small;">A: This really varies depending on your organization&#39;s needs. See the following for more information. </span></p>
<ul>
<li><span style="font-size:small;">Overview of single sign-on for Office 365 - </span><a href="https://technet.microsoft.com/en-us/library/hh852486.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/hh852486.aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Checklist: Use AD FS to implement and manage single sign-on - </span><a href="https://technet.microsoft.com/en-us/library/jj205462.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj205462.aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Prerequisites for SSO - </span><a href="https://technet.microsoft.com/en-us/library/jj151786.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj151786.aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Deployment Options - ADFS -- </span><a href="https://technet.microsoft.com/en-us/library/jj573653.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj573653.aspx</span></a><span style="font-size:small;"> </span></li>
</ul>
<p></p>
<ul>
<li><span style="font-size:small;">Install and Configure - </span><a href="https://technet.microsoft.com/en-us/library/jj205462.aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj205462.aspx</span></a>&nbsp;</li>
</ul>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong><span style="font-size:small;">Q:</span></strong> <span style="font-size:small;"><strong>What attributes are synchronized when Dirsync runs?</strong></span></p>
<p><span style="font-size:small;">A: Check out the following link. I want to note a handy reference at the bottom of the page. Direct your attention to the section noted: &#39;How directory synchronization determines what isn&#39;t synced from the on-premises environment to Windows Azure AD&#39;.&nbsp; Here are some defined methods where object filters are applied.&nbsp; This is a great thing to know when troubleshooting and say you want to exclude an object from the next synchronization schedule. <a href="https://social.technet.microsoft.com/wiki/contents/articles/19901.dirsync-list-of-attributes-that-are-synced-by-the-azure-active-directory-sync-tool.aspx">https://social.technet.microsoft.com/wiki/contents/articles/19901.dirsync-list-of-attributes-that-are-synced-by-the-azure-active-directory-sync-tool.aspx</a> </span></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong><span style="font-size:small;">Q:</span></strong> <span style="font-size:small;"><strong>How do I initiate a full Directory Sync from PowerShell and is there a GUI for Directory Sync?</strong></span>&nbsp;</p>
<p><span style="font-size:small;">A: For a full synchronization from PowerShell execute: </span></p>
<blockquote>
<div class="code"><span style="font-family:Courier New;font-size:small;">Import-Module DirSync</span></div>
<div class="code"><span style="font-family:Courier New;font-size:small;">Start-OnlineCoexistenceSync &ndash;FullSync</span></div>
</blockquote>
<p><span style="font-size:small;"> To access the GUI for Azure Active Directory Sync, you will want to create a shortcut for the following: </span></p>
<blockquote>
<p><span style="font-size:small;"><span style="font-size:xx-small;"><span style="font-family:Courier New;font-size:small;"><em>&quot;C:\Program Files\Windows Azure Active Directory Sync\SYNCBUS\Synchronization Service\UIShell\miisclient.exe&quot;</em></span><strong> </strong></span></span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Q: <strong><span style="font-size:small;">How do I connect to Azure Active Directory with PowerShell?</span></strong></p>
<p><span style="font-size:small;">A: Details can be found here: </span><a href="https://aka.ms/aadposh"><span style="font-size:small;">https://aka.ms/aadposh</span></a></p>
<p></p>
<p><span style="font-size:small;">First install both the Microsoft Online Services Sign-In Assistant for IT Professionals (<a href="https://go.microsoft.com/fwlink/?LinkID=286152">https://go.microsoft.com/fwlink/?LinkID=286152</a></span><span style="font-size:small;">)</span><span style="font-size:small;"> and Azure Active Directory Module for Windows PowerShell (<a href="https://go.microsoft.com/fwlink/p/?linkid=236297">https://go.microsoft.com/fwlink/p/?linkid=236297</a></span><span style="font-size:small;">)</span><span style="font-size:small;">.&nbsp; </span></p>
<p></p>
<p><span style="font-size:small;">Once you have read the information above and installed the two pre-requisites, o</span><span style="font-size:small;">pen Microsoft Azure Active Directory Module for Windows PowerShell and type:</span></p>
<blockquote>
<p><span style="font-family:Courier New;font-size:small;">$msolcred = get-credential </span></p>
<p><span style="font-family:Courier New;font-size:small;">connect-msolservice -credential $msolcred</span></p>
</blockquote>
<p><br /><span style="font-size:small;">Let&#39;s test. The following example will list all unlicensed users in Azure Active Directory.</span></p>
<blockquote>
<p><span style="font-family:Courier New;font-size:small;">Get-MSOLUser | where {$_.Islicensed &ndash;eq $false}</span></p>
</blockquote>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /><strong><span style="font-size:small;">Q: How do I connect to Exchange Online with PowerShell?</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><span style="font-size:small;">A: Details can be found here - </span><a href="https://technet.microsoft.com/en-us/library/jj984289(v=exchg.150).aspx"><span style="font-size:small;">https://technet.microsoft.com/en-us/library/jj984289(v=exchg.150).aspx</span></a><span style="font-size:small;">&nbsp;&nbsp;&nbsp; </span></p>
<p></p>
<p><span style="font-size:small;">Open Windows PowerShell and execute the following:</span></p>
<blockquote>
<p><span style="font-family:Courier New;font-size:small;">$UserCredential = Get-Credential</span></p>
<p><span style="font-family:Courier New;font-size:small;">$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri </span><span style="font-family:Courier New;font-size:small;">https://outlook.office365.com/powershell-liveid/</span><span style="font-family:Courier New;font-size:small;"> -Credential $UserCredential -Authentication Basic &ndash;AllowRedirection</span></p>
<p><span style="font-family:Courier New;font-size:small;">Import-PSSession $Session</span></p>
<p>&nbsp;</p>
</blockquote>
<p><span style="font-size:small;"><span style="font-family:Segoe UI;">Let&#39;s test by listing some of our Office 365 Mailboxes.</span> </span></p>
<p></p>
<blockquote>
<p><span style="font-family:Courier New;font-size:small;"> Get-mailbox</span></p>
</blockquote>
<p></p>
<p><span style="font-size:small;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />That&#39;s it for now!</span></p>
<p></p>]]></content:encoded>
    </item>
  </channel>
</rss>