<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>System Administration on Zachary Loeber's Blog</title><link>https://blog.zacharyloeber.com/tags/system-administration/</link><description>Recent content in System Administration on Zachary Loeber's Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 28 Sep 2018 16:49:46 +0000</lastBuildDate><atom:link href="https://blog.zacharyloeber.com/tags/system-administration/index.xml" rel="self" type="application/rss+xml"/><item><title>DevOps – Automating Kubernetes Deployments</title><link>https://blog.zacharyloeber.com/blog/2018/09/28/devops-automating-kubernetes-deployments/</link><pubDate>Fri, 28 Sep 2018 16:49:46 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2018/09/28/devops-automating-kubernetes-deployments/</guid><description>&lt;p>If you are deploying your own Kubernetes clusters you already know that:&lt;/p>
&lt;div id="attachment_1802" style="width: 310px" class="wp-caption aligncenter">
 &lt;a href="https://blog.zacharyloeber.com/wp-content/uploads/2018/09/k8s_is_hard.png">&lt;img src="https://blog.zacharyloeber.com/wp-content/uploads/2018/09/k8s_is_hard.png" alt="Kubernetes is hard" width="300" height="257" srcset="https://blog.zacharyloeber.com/wp-content/uploads/2018/09/k8s_is_hard.png" />&lt;/a>
 &lt;p class="wp-caption-text">
 Kubernetes is hard
 &lt;/p>
&lt;/div>
&lt;p>But there is hope!&lt;/p>
&lt;p>There are a few great projects to keep an eye on in this space. I’ve covered some of them in &lt;a href="https://spr.com/4-tools-to-automate-kubernetes-cluster-deployments/">an article you can read on the Lumen&lt;/a>.&lt;/p>
&lt;p>Cheers!&lt;/p></description></item><item><title>Email Reputation and Design: A Condensed Guide</title><link>https://blog.zacharyloeber.com/blog/2018/02/24/email-reputation-and-design-a-condensed-guide/</link><pubDate>Sat, 24 Feb 2018 15:59:26 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2018/02/24/email-reputation-and-design-a-condensed-guide/</guid><description>&lt;p>Very few domains implement the holy grail of email identity reputation frameworks, &lt;a href="https://dmarc.org/">DMARC&lt;/a>. This guide will cover all the steps required to get it implemented for your domain along with some best practices for overall email reputation design.&lt;/p></description></item><item><title>PowerShell: AzureAD Dynamic Groups</title><link>https://blog.zacharyloeber.com/blog/2018/02/04/powershell-azuread-dynamic-groups/</link><pubDate>Sun, 04 Feb 2018 17:36:57 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2018/02/04/powershell-azuread-dynamic-groups/</guid><description>&lt;p>A few code snippets for Azure AD dynamic groups. One for creating standard groups for your environment. Another for finding duplicates.&lt;/p></description></item><item><title>PowerShell: Office 365 Group Based Licencing Cleanup</title><link>https://blog.zacharyloeber.com/blog/2018/01/10/powershell-office-365-group-based-licencing-cleanup/</link><pubDate>Thu, 11 Jan 2018 03:35:52 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2018/01/10/powershell-office-365-group-based-licencing-cleanup/</guid><description>&lt;p>A script to remove directly assigned licenses from user accounts if they overlap with group assigned licenses in Office 365.&lt;/p></description></item><item><title>PowerShell: Office 365 Group Based Licencing Cleanup</title><link>https://blog.zacharyloeber.com/blog/2018/01/10/powershell-office-365-group-based-licencing-cleanup/</link><pubDate>Thu, 11 Jan 2018 03:35:52 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2018/01/10/powershell-office-365-group-based-licencing-cleanup/</guid><description>&lt;p>A script to remove directly assigned licenses from user accounts if they overlap with group assigned licenses in Office 365.&lt;/p></description></item><item><title>Cloud PBX: Polycom VVX Master Directory</title><link>https://blog.zacharyloeber.com/blog/2017/09/10/cloud-pbx-polycom-vvx-master-directory/</link><pubDate>Sun, 10 Sep 2017 20:38:59 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2017/09/10/cloud-pbx-polycom-vvx-master-directory/</guid><description>&lt;p>Reverse number lookup in Skype for Business online (cloud PBX) doesn’t give you much control. If you are deploying Polycom VVX phones you can get around this with a directory file.&lt;/p></description></item><item><title>PowerShell: Azure ARM Site Overview</title><link>https://blog.zacharyloeber.com/blog/2017/01/30/powershell-azure-arm-site-overview/</link><pubDate>Tue, 31 Jan 2017 03:23:32 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2017/01/30/powershell-azure-arm-site-overview/</guid><description>&lt;p>Visualizing an Azure deployment can be a bit tricky. This short Azure summary script is a good way to start though.&lt;/p></description></item><item><title>PowerShell: PowerShellGet Helper Functions</title><link>https://blog.zacharyloeber.com/blog/2016/12/21/powershell-powershellget-helper-functions/</link><pubDate>Wed, 21 Dec 2016 21:21:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/12/21/powershell-powershellget-helper-functions/</guid><description>&lt;p>With the PowerShell Gallery at your fingertips in PowerShell v5 you are able to find and install modules and scripts quickly. Here are a few helper functions you may want to add to your profile to help automate some of these tasks.&lt;/p></description></item><item><title>PowerShell: PowerShellGet Helper Functions</title><link>https://blog.zacharyloeber.com/blog/2016/12/21/powershell-powershellget-helper-functions/</link><pubDate>Wed, 21 Dec 2016 21:21:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/12/21/powershell-powershellget-helper-functions/</guid><description>&lt;p>With the PowerShell Gallery at your fingertips in PowerShell v5 you are able to find and install modules and scripts quickly. Here are a few helper functions you may want to add to your profile to help automate some of these tasks.&lt;/p></description></item><item><title>Powershell: PSCloudflare Module</title><link>https://blog.zacharyloeber.com/blog/2016/12/03/powershell-pscloudflare-module/</link><pubDate>Sat, 03 Dec 2016 16:27:51 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/12/03/powershell-pscloudflare-module/</guid><description>&lt;p>A well documented API without a PowerShell Module is like an itch begging to be scratched.&lt;/p></description></item><item><title>Powershell: New-ADPasswordReminder</title><link>https://blog.zacharyloeber.com/blog/2016/10/13/powershell-new-adpasswordreminder/</link><pubDate>Thu, 13 Oct 2016 19:03:55 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/10/13/powershell-new-adpasswordreminder/</guid><description>&lt;p>A single, self-extracting, self-scheduling, AD password change notice PowerShell script.&lt;/p></description></item><item><title>Powershell: New-ADPasswordReminder</title><link>https://blog.zacharyloeber.com/blog/2016/10/13/powershell-new-adpasswordreminder/</link><pubDate>Thu, 13 Oct 2016 19:03:55 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/10/13/powershell-new-adpasswordreminder/</guid><description>&lt;p>A single, self-extracting, self-scheduling, AD password change notice PowerShell script.&lt;/p></description></item><item><title>PowerShell: My Profile</title><link>https://blog.zacharyloeber.com/blog/2016/05/04/powershell-my-profile/</link><pubDate>Thu, 05 May 2016 02:31:54 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/05/04/powershell-my-profile/</guid><description>&lt;p>I’m always interested to see how other people setup their working environment or get things done. But rarely do I share my own environment. Since I’m putting the effort into pushing my scripting environment publicly to github I may as well explain a bit more about some of what I’ve setup.&lt;/p></description></item><item><title>Office 365: Some Scripts</title><link>https://blog.zacharyloeber.com/blog/2016/04/19/office-365-some-scripts/</link><pubDate>Tue, 19 Apr 2016 21:25:58 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2016/04/19/office-365-some-scripts/</guid><description>&lt;p>Hello again world, it sure has been a while since I’ve last written to nameless masses. I’ve got some new scripts to share for those who are interested.&lt;/p></description></item><item><title>PowerShell: Thoughts on Module Design</title><link>https://blog.zacharyloeber.com/blog/2015/10/03/powershell-thoughts-on-module-design/</link><pubDate>Sat, 03 Oct 2015 18:57:04 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/10/03/powershell-thoughts-on-module-design/</guid><description>&lt;p>I’ve finally decided to grow up and start making modules out of my rather large PowerShell code base. Here are a few things I’ve learned.&lt;/p></description></item><item><title>Exchange: Stop Email Exfiltration</title><link>https://blog.zacharyloeber.com/blog/2015/09/24/excxhange-stop-email-exfiltration/</link><pubDate>Fri, 25 Sep 2015 01:41:25 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/09/24/excxhange-stop-email-exfiltration/</guid><description>&lt;p>When your users leave or get removed from the organization they may still be getting company confidential information. Here is how you can find out and stop this from happening.&lt;/p></description></item><item><title>Exchange: Stop Email Exfiltration</title><link>https://blog.zacharyloeber.com/blog/2015/09/24/excxhange-stop-email-exfiltration/</link><pubDate>Fri, 25 Sep 2015 01:41:25 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/09/24/excxhange-stop-email-exfiltration/</guid><description>&lt;p>When your users leave or get removed from the organization they may still be getting company confidential information. Here is how you can find out and stop this from happening.&lt;/p></description></item><item><title>Skype For Business: Planning for Voice – Part 3</title><link>https://blog.zacharyloeber.com/blog/2015/09/12/skype-for-business-planning-for-voice-part-3/</link><pubDate>Sat, 12 Sep 2015 20:05:26 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/09/12/skype-for-business-planning-for-voice-part-3/</guid><description>&lt;p>If you have been following along this series you already know the importance of getting a recent PSTN provider bill and performing an onsite visit. Next we will go into more depth on how the site PSTN is configured with your PBX at a site. There is lots of ground to cover so lets dive right in!&lt;/p></description></item><item><title>Skype For Business: Planning for Voice – Part 2</title><link>https://blog.zacharyloeber.com/blog/2015/09/03/skype-for-business-planning-for-voice-part-2/</link><pubDate>Fri, 04 Sep 2015 03:18:40 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/09/03/skype-for-business-planning-for-voice-part-2/</guid><description>&lt;p>I’ve already gone over the basic phases of a Skype for Business enterprise voice deployment &lt;a href="https://blog.zacharyloeber.com/2015/08/25/skype-for-business-planning-for-voice-part-1/">in my prior article&lt;/a>. Now it is time to skip right over the first two of those phases and start preparing to replace your existing PBXs. To prepare you need to know what you are going to be replacing. In this article we will be focusing on beginning the information gathering process.&lt;/p></description></item><item><title>Powershell: Login As Batch Job Security Rights</title><link>https://blog.zacharyloeber.com/blog/2015/07/17/powershell-login-as-batch-job-security-rights/</link><pubDate>Sat, 18 Jul 2015 04:09:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/07/17/powershell-login-as-batch-job-security-rights/</guid><description>&lt;p>Here is a quick bit of PowerShell. It is some snippets of C# code wrapped up with PowerShell which will allow you to assign accounts to the ‘login as batch job’ local security rights of a local machine. The code is no great shakes but it is a good example of how you might take some existing online code and modify to suit your needs in PowerShell. This function also compliments another script I’ve released in the past for automatically scheduling PowerShell scheduled tasks rather well.&lt;/p></description></item><item><title>Lync/S4B Client: Call Forwarding Options Compared</title><link>https://blog.zacharyloeber.com/blog/2015/05/01/lyncs4b-client-call-forwarding-options-compared/</link><pubDate>Fri, 01 May 2015 19:00:48 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/05/01/lyncs4b-client-call-forwarding-options-compared/</guid><description>&lt;p>Here is a comparison chart I put together describing the different call forwarding options available to end users or their teams. This covers everything which can be setup by users in Lync as well as team calling (setup by the admin).&lt;/p></description></item><item><title>Exchange: Database Leveling Redux</title><link>https://blog.zacharyloeber.com/blog/2015/04/06/exchange-database-leveling-redux/</link><pubDate>Tue, 07 Apr 2015 00:12:33 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/04/06/exchange-database-leveling-redux/</guid><description>&lt;p>Some time ago I &lt;a href="https://blog.zacharyloeber.com/2014/01/07/exchange-20102013-database-leveling-script/">tackled the challenge&lt;/a> of constructing a variant of the bin packing algorithm for leveling out Exchange databases’ size with the least amount of mailbox migrations necessary. Since then, I’ve been approached by a few people in dreadfully large environments looking for help with errors and compatibility issues around the script I released. I’ve finally rounded back to this script to do it some justice.&lt;/p></description></item><item><title>Powershell: WPF/Treeview OU Selection Dialog</title><link>https://blog.zacharyloeber.com/blog/2015/03/22/powershell-wpftreeview-ou-selection-dialog/</link><pubDate>Sun, 22 Mar 2015 16:13:54 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/03/22/powershell-wpftreeview-ou-selection-dialog/</guid><description>&lt;p class="projectSummary">
 This is a self-contained organizational unit selection dialog box using powershell, xaml, wpf, and ADSI. Should be useful in any number of one off Powershell projects I imagine.
&lt;/p>
&lt;p class="projectSummary"></description></item><item><title>Lync Book Review: Lync Server Cookbook</title><link>https://blog.zacharyloeber.com/blog/2015/03/14/lync-book-review-lync-server-cookbook/</link><pubDate>Sun, 15 Mar 2015 01:51:53 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2015/03/14/lync-book-review-lync-server-cookbook/</guid><description>&lt;p>I had planned to purchase this book at some point but instead was pleasantly surprised by an offer from one of the authors to provide an objective review of ‘&lt;a href="http://www.amazon.com/Lync-Server-Cookbook-Fabrizio-Volpe-ebook/dp/B00SVBFBQS/ref=dp_kinw_strp_1">Lync Server Cookbook&lt;/a>‘! As I have worked with the product in some form since LCS/OCS days I believe I can speak with some authority on subject matter and readily agreed. With that being said, lets start with the book’s overarching scope and structure.&lt;/p></description></item><item><title>Powershell: Check For Misplaced Certificates</title><link>https://blog.zacharyloeber.com/blog/2014/12/10/powershell-check-for-misplaced-certificates/</link><pubDate>Thu, 11 Dec 2014 03:02:28 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/12/10/powershell-check-for-misplaced-certificates/</guid><description>&lt;p>Here is a script I absentmindedly put together one evening while power watching a TV series on Netflix with the wife. The general idea of this script is to check local machine, trusted root, and intermediate trusted root stores for misplaced or duplicate certificates.&lt;/p></description></item><item><title>Powershell: Check For Misplaced Certificates</title><link>https://blog.zacharyloeber.com/blog/2014/12/10/powershell-check-for-misplaced-certificates/</link><pubDate>Thu, 11 Dec 2014 03:02:28 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/12/10/powershell-check-for-misplaced-certificates/</guid><description>&lt;p>Here is a script I absentmindedly put together one evening while power watching a TV series on Netflix with the wife. The general idea of this script is to check local machine, trusted root, and intermediate trusted root stores for misplaced or duplicate certificates.&lt;/p></description></item><item><title>Exchange 2013: Server Component State Script</title><link>https://blog.zacharyloeber.com/blog/2014/12/08/exchange-2013-server-component-state-script/</link><pubDate>Tue, 09 Dec 2014 01:28:23 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/12/08/exchange-2013-server-component-state-script/</guid><description>&lt;p>Exchange 2013 includes some powershell commands which allow you to set and view several components in the messaging infrastructure. This is important to be aware of as it means all Exchange related services can be running when looking at them in service manager (services.msc) but not actually doing anything. I went ahead put together a script to better gather this information for administrators.&lt;/p></description></item><item><title>Exchange 2013: Server Component State Script</title><link>https://blog.zacharyloeber.com/blog/2014/12/08/exchange-2013-server-component-state-script/</link><pubDate>Tue, 09 Dec 2014 01:28:23 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/12/08/exchange-2013-server-component-state-script/</guid><description>&lt;p>Exchange 2013 includes some powershell commands which allow you to set and view several components in the messaging infrastructure. This is important to be aware of as it means all Exchange related services can be running when looking at them in service manager (services.msc) but not actually doing anything. I went ahead put together a script to better gather this information for administrators.&lt;/p></description></item><item><title>Lync UCS Contacts Reporting with Powershell</title><link>https://blog.zacharyloeber.com/blog/2014/11/21/lync-ucs-contacts-reporting-with-powershell/</link><pubDate>Fri, 21 Nov 2014 17:37:30 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/11/21/lync-ucs-contacts-reporting-with-powershell/</guid><description>&lt;p>By default a Lync enabled account within a Lync/Exchange 2013 environment will be enabled for UCS (Unified Contact Store). This means that the Lync contacts get saved in the Lync user’s mailbox and not the Lync database. In order to get a list of the contacts associated with these accounts you have to export data to a zip file with some debug Lync commands and, even then, the information is buried in a hard to interpret XML file.&lt;/p></description></item><item><title>Lync and UM Correlation with Powershell</title><link>https://blog.zacharyloeber.com/blog/2014/11/13/lync-and-um-correlation-with-powershell/</link><pubDate>Fri, 14 Nov 2014 03:31:13 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/11/13/lync-and-um-correlation-with-powershell/</guid><description>&lt;p>I’ve been working on an Exchange/Lync voice deployment lately and have found a new level of frustration for the lack of connectivity between the several voice components involved in turning up such a solution. That being said it is not very difficult to validate your deployment with a bit of Powershell.&lt;/p>
&lt;p>There are a few necessary results to gather where I believe it can be easy to ‘miss’ configuration steps when turning up or disabling users:&lt;/p></description></item><item><title>Powershell: System Report Script Design</title><link>https://blog.zacharyloeber.com/blog/2014/10/09/powershell-system-report-script-design/</link><pubDate>Thu, 09 Oct 2014 21:29:24 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/10/09/powershell-system-report-script-design/</guid><description>&lt;p>In this post I go back and explain some of my reasoning behind decisions I made in the design of an already released script, &lt;a href="https://gallery.technet.microsoft.com/Excel-and-HTML-Asset-0ffbf569">Get-AssetReport&lt;/a>. This was written over a year ago and forgotten about as one of the many unpublished drafts on my blog. The code behind the script I discuss has been upgraded and used in several of my more popular scripts (&lt;a href="https://gallery.technet.microsoft.com/Active-Directory-Audit-7754a877">AD Asset Report&lt;/a>, &lt;a href="https://gallery.technet.microsoft.com/Big-IP-F5-LTM-Load-3fc9a2af">F5 LTM Report&lt;/a>, and &lt;a href="https://gallery.technet.microsoft.com/Lync-2013-Mirrored-SQL-132c2f06">Lync 2013 Status Report&lt;/a>). Some of this content is slightly dated as I’ve since changed some of the coding but the core concepts are the same. Those digging through my crazy work or learning powershell may get some value from this content so I tidied it up a bit and here it is. Cheers!&lt;/p></description></item><item><title>Exchange: Handling Old Log and Other Files</title><link>https://blog.zacharyloeber.com/blog/2014/09/26/exchange-handling-old-log-and-other-files/</link><pubDate>Fri, 26 Sep 2014 19:41:59 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/09/26/exchange-handling-old-log-and-other-files/</guid><description>&lt;p>In Exchange old logs can really build up fast. Not database transaction logs but rather temporary transport, client access, IIS, and other debug related crap that typically default to locations either on your system drive or Exchange install path. Of course, Powershell scripting can provide a decent solution for this problem.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>More than any other version, Exchange 2013 seems to like logging information to disk. By default, much of what gets logged will not auto-rotate (or if it does, it happens infrequently) either so you end up with this slow ticking time-bomb in your environment.&lt;/p></description></item><item><title>Exchange: Handling Old Log and Other Files</title><link>https://blog.zacharyloeber.com/blog/2014/09/26/exchange-handling-old-log-and-other-files/</link><pubDate>Fri, 26 Sep 2014 19:41:59 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/09/26/exchange-handling-old-log-and-other-files/</guid><description>&lt;p>In Exchange old logs can really build up fast. Not database transaction logs but rather temporary transport, client access, IIS, and other debug related crap that typically default to locations either on your system drive or Exchange install path. Of course, Powershell scripting can provide a decent solution for this problem.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>More than any other version, Exchange 2013 seems to like logging information to disk. By default, much of what gets logged will not auto-rotate (or if it does, it happens infrequently) either so you end up with this slow ticking time-bomb in your environment.&lt;/p></description></item><item><title>Exchange: Receive Connector Tango! – Part 2</title><link>https://blog.zacharyloeber.com/blog/2014/08/23/exchange-receive-connector-tango-part-2/</link><pubDate>Sat, 23 Aug 2014 21:20:31 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/08/23/exchange-receive-connector-tango-part-2/</guid><description>&lt;p>&lt;a href="https://blog.zacharyloeber.com/2014/07/06/exchange-receive-connector-tango-part-1/">In part 1 of this series&lt;/a> I discussed some basic knowledge requirements to get a better grip on receive connectors in Exchange. I continue that conversation with some examples of improperly configured connectors and the issues they may cause. I finish up the discussion with a script you can use to scan your environment for such configurations.&lt;/p></description></item><item><title>Powershell GUI Script Wrapper Utility</title><link>https://blog.zacharyloeber.com/blog/2014/02/02/powershell-gui-script-wrapper-utility/</link><pubDate>Mon, 03 Feb 2014 03:32:39 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/02/02/powershell-gui-script-wrapper-utility/</guid><description>&lt;p>Creating GUIs for your scripts can be a tedious process. That is why I don’t do so for each powershell project I release. Instead of wasting my precious little free time putting together yet another GUI for a one off script I decided to create a tool which will create the GUI scripts for me automatically!&lt;/p></description></item><item><title>AD Audit Report with Powershell: Part 3</title><link>https://blog.zacharyloeber.com/blog/2014/01/10/ad-audit-report-with-powershell-part-3/</link><pubDate>Sat, 11 Jan 2014 04:16:29 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/01/10/ad-audit-report-with-powershell-part-3/</guid><description>&lt;p>This is my third and final major update to my AD auditing script. This includes a handful of new useful sections such as domain published printers, NPS servers, DHCP servers, as well as SCCM sites and DPs. Other improvements include easier to use script parameters and bug fixes.&lt;/p></description></item><item><title>Exchange 2010/2013: Database Leveling Script</title><link>https://blog.zacharyloeber.com/blog/2014/01/07/exchange-20102013-database-leveling-script/</link><pubDate>Tue, 07 Jan 2014 22:08:16 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/01/07/exchange-20102013-database-leveling-script/</guid><description>&lt;p>It is common to randomly choose mailbox databases when creating or migrating user mailboxes in Exchange. I actually recommend this practice unless you are setting up a tiered user/storage environment. Unfortunately this may result in an unequal distribution of data which, in turn, can result in an environment where mailbox databases are wildly different in size. In this post I will discuss an approach to leveling the databases so they are equal in size by moving mailboxes between them.&lt;/p></description></item><item><title>Big-IP F5 LTM Load Balancer Documentation Script with Powershell</title><link>https://blog.zacharyloeber.com/blog/2014/01/03/big-ip-f5-ltm-load-balancer-documentation-script-with-powershell/</link><pubDate>Fri, 03 Jan 2014 18:11:18 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2014/01/03/big-ip-f5-ltm-load-balancer-documentation-script-with-powershell/</guid><description>&lt;p>Here is a script I whipped up to perform a report on your Big-IP LTM load balancers using powershell. The report currently includes the virtual servers, pools, and various bits of status information on both. &lt;a href="https://devcentral.f5.com/d/microsoft-powershell-with-icontrol">Big-IP iControl modules&lt;/a> are needed (for obvious reasons).&lt;/p></description></item><item><title>Gather (and Diagram) Installed Roles and Features With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/12/18/gather-and-diagram-installed-roles-and-features-with-powershell/</link><pubDate>Wed, 18 Dec 2013 18:53:18 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/12/18/gather-and-diagram-installed-roles-and-features-with-powershell/</guid><description>&lt;p>Use this powershell script to gather installed features and roles from remote systems. This uses two wmi classes in an attempt to gather as much information as possible. Win32_ServerFeature will contain roles and their dependencies on systems running Windows 2008 and above. For these systems we can use this hierarchy to also produce pretty diagrams using graphviz and techniques I’ve exhibited in some of my other scripts (I added this last part in cause it is easy to do, not really certain how useful it is other than maybe exploring the dependencies between windows roles/features).&lt;/p></description></item><item><title>Lync 2013: Monitoring Mirrored SQL Databases With PowerShell</title><link>https://blog.zacharyloeber.com/blog/2013/11/25/lync-2013-monitoring-mirrored-sql-databases-with-powershell/</link><pubDate>Mon, 25 Nov 2013 18:16:24 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/11/25/lync-2013-monitoring-mirrored-sql-databases-with-powershell/</guid><description>&lt;p>In Lync 2013 you are given a powerful new backend redundancy option for your important databases in the form of SQL mirroring. In this article I’ll discuss which services are able to be mirrored, the databases they encompass, and provide a PowerShell script to generate a report on the database mirror status. I also threw in Lync CMS replication and service status sections because it is the civil thing to do…&lt;/p></description></item><item><title>Lync 2013: Monitoring Mirrored SQL Databases With PowerShell</title><link>https://blog.zacharyloeber.com/blog/2013/11/25/lync-2013-monitoring-mirrored-sql-databases-with-powershell/</link><pubDate>Mon, 25 Nov 2013 18:16:24 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/11/25/lync-2013-monitoring-mirrored-sql-databases-with-powershell/</guid><description>&lt;p>In Lync 2013 you are given a powerful new backend redundancy option for your important databases in the form of SQL mirroring. In this article I’ll discuss which services are able to be mirrored, the databases they encompass, and provide a PowerShell script to generate a report on the database mirror status. I also threw in Lync CMS replication and service status sections because it is the civil thing to do…&lt;/p></description></item><item><title>Gather Remote Event Logs With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/10/16/gather-remote-event-logs-with-powershell/</link><pubDate>Wed, 16 Oct 2013 17:01:13 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/10/16/gather-remote-event-logs-with-powershell/</guid><description>&lt;h3 id="about">About&lt;/h3>
&lt;p>Gather the remote event log information for one or more systems using wmi, alternate credentials, and multiple runspaces. Function supports custom timeout parameters in case of wmi problems and returns Event Log information for the specified number of past hours. You can view verbose information on each runspace thread in realtime with the -Verbose option.&lt;/p>
&lt;h3 id="version-history">&lt;strong>Version History&lt;/strong>&lt;/h3>
&lt;p>&lt;strong>1.0.0 – 10/16/2013&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Initial release&lt;/li>
&lt;/ul>
&lt;h3 id="notes">Notes&lt;/h3>
&lt;p>By default 24 hours is what we filter against for the results. I’m retroactively releasing this function individually from the new-assetreport project I’ve released a little while ago.&lt;/p></description></item><item><title>Retrieve Remote Scheduled Task Information With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/10/06/retrieve-remote-scheduled-task-information-with-powershell/</link><pubDate>Sun, 06 Oct 2013 23:32:48 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/10/06/retrieve-remote-scheduled-task-information-with-powershell/</guid><description>&lt;p>This function uses multiple runspaces with along with COM objects to gather information about the scheduled tasks of remote systems. Getting this to work with alternate credentials may be possible but I wasn’t able to discern a usable method to make it happen so I resorted to PSremoting. What this means is that this script will work against multiple remote systems which do not have psremoting enabled as long as you are running the script with an account that has administrative rights to them. If you do pass a credential to the function then psremoting will be used instead. You can also force psremoting to be used if you are using that across the board in your environment.&lt;/p></description></item><item><title>Visualize Active Directory Site Connections</title><link>https://blog.zacharyloeber.com/blog/2013/10/06/visualize-active-directory-site-connections/</link><pubDate>Sun, 06 Oct 2013 22:50:35 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/10/06/visualize-active-directory-site-connections/</guid><description>&lt;h4 id="in-this-post-i-use-powershell-with-graphviz-to-create-an-active-directory-diagram-of-all-site-connections-between-servers-additionally-ive-included-some-code-which-displays-site-connection-options-you-may-be-able-to-use-this-to-find-isolated-dcs-or-just-to-see-a-pretty-diagram">&lt;span style="color: #bbbbbb; font-size: 12px; font-weight: normal; line-height: 1.6;">In this post I use powershell with graphviz to create an Active Directory diagram of all site connections between servers. Additionally, I’ve included some code which displays site connection options. You may be able to use this to find isolated DCs or just to see a pretty diagram.&lt;/span>&lt;/h4></description></item><item><title>Gather Remote Command Results With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/09/19/gather-remote-command-results-with-powershell/</link><pubDate>Thu, 19 Sep 2013 16:22:41 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/09/19/gather-remote-command-results-with-powershell/</guid><description>&lt;p>Send a remote command using wmi, alternate credentials, and multiple runspaces then retrieve the results serially using mapped secure channels to the remote host. The remote command execution function supports custom timeout parameters in case of wmi problems and returns the remote tmp file information containing the command results. You can view verbose information on each runspace thread in realtime with the -Verbose option.&lt;/p></description></item><item><title>Get Remote Shadow Volume Information With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/09/14/get-remote-shadow-volume-information-with-powershell/</link><pubDate>Sun, 15 Sep 2013 02:57:55 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/09/14/get-remote-shadow-volume-information-with-powershell/</guid><description>&lt;p>Gather the remote shadow volume information for one or more systems using wmi, alternate credentials, and multiple runspaces. Function supports custom timeout parameters in case of wmi problems and returns shadow volume information, shadow copies, their providers, and settings. You can view verbose information on each runspace thread in realtime with the -Verbose option.&lt;/p></description></item><item><title>Gather Local Group Membership With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/09/11/gather-local-group-membership-with-powershell/</link><pubDate>Wed, 11 Sep 2013 14:11:52 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/09/11/gather-local-group-membership-with-powershell/</guid><description>&lt;p>Gather system local groups and their members for one or more systems using wmi, alternate credentials, and multiple runspaces. Function supports custom timeout parameters in case of wmi problems, a switch for inclusion of empty groups in the results, and returns group names with their members. You can view verbose information on each runspace thread in realtime with the -Verbose option.&lt;/p>
&lt;h3 id="version-history">&lt;strong>Version History&lt;/strong>&lt;/h3>
&lt;p>&lt;strong>1.0.0 – 09/11/2013&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Initial release&lt;/li>
&lt;/ul>
&lt;h3 id="notes">Notes&lt;/h3>
&lt;p>None, this is an independent release of a function I’ve recently included in a larger project.&lt;/p></description></item><item><title>Excel and HTML Asset Reports With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/09/08/excel-and-html-asset-reports-with-powershell/</link><pubDate>Sun, 08 Sep 2013 05:07:29 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/09/08/excel-and-html-asset-reports-with-powershell/</guid><description>&lt;p>This set of powershell functions collates and generates reports upon system information it gathers. Information gathered includes hardware health, system information, networking information and much much more. Multiple types of html reports can be generated and all data can be exported directly to an excel workbook, saved as individual reports, and emailed.&lt;/p></description></item><item><title>Gather Remote Installed Programs With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/08/28/gather-remote-installed-programs-with-powershell/</link><pubDate>Wed, 28 Aug 2013 13:25:22 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/08/28/gather-remote-installed-programs-with-powershell/</guid><description>&lt;p>&lt;span style="line-height: 1.6;">Gather program install information for one or more systems using wmi, alternate credentials, and multiple runspaces. Function supports custom timeout parameters in case of wmi problems and returns from the registry program name, manufacturer, and uninstall information. You can view verbose information on each runspace thread in realtime with the -Verbose option.&lt;/span>&lt;/p></description></item><item><title>Multithreaded HP Server Health Check with Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/08/22/multithreaded-hp-server-health-check-with-powershell/</link><pubDate>Thu, 22 Aug 2013 17:32:45 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/08/22/multithreaded-hp-server-health-check-with-powershell/</guid><description>&lt;h2 id="about">About&lt;/h2>
&lt;p>This function attempts to query the HP WBEM WMI provider information to ascertain the general health of a physical server. By default just the general health status is returned. Optionally you can include the following components in the results: ethernet teams, array controllers , ethernet adapters, fans, HBAs, power supplies, and temperature sensors.&lt;/p></description></item><item><title>Multithreaded Remote Registry Gathering with Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/08/06/multithreaded-remote-registry-gathering-with-powershell/</link><pubDate>Wed, 07 Aug 2013 03:11:49 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/08/06/multithreaded-remote-registry-gathering-with-powershell/</guid><description>&lt;p>Gather specific subkey values or an entire registry key’s subkey values with powershell and multithreading.&lt;/p></description></item><item><title>Multithreaded System Asset Gathering with Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/08/05/multithreaded-system-asset-gathering-with-powershell/</link><pubDate>Mon, 05 Aug 2013 17:35:31 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/08/05/multithreaded-system-asset-gathering-with-powershell/</guid><description>&lt;p>This function gathers a plethora of useful system information via WMI and multithreading with powershell.&lt;/p></description></item><item><title>Determine if a computer is virtual with powershell</title><link>https://blog.zacharyloeber.com/blog/2013/07/26/determine-if-a-computer-is-virtual-with-powershell/</link><pubDate>Fri, 26 Jul 2013 18:22:43 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/07/26/determine-if-a-computer-is-virtual-with-powershell/</guid><description>&lt;p>This function attempts to connect to a computer and find out if it is virtual or not using WMI. If it is virtual, a best guess at the type of virtual platform it is running upon is returned as well.&lt;/p></description></item><item><title>Exchange 2010 Mailbox Audit Report GUI</title><link>https://blog.zacharyloeber.com/blog/2013/06/28/exchange-2010-mailbox-audit-report-gui/</link><pubDate>Fri, 28 Jun 2013 20:17:29 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/28/exchange-2010-mailbox-audit-report-gui/</guid><description>&lt;p>I’ve updated the original &lt;a href="https://blog.zacharyloeber.com/2013/05/09/exchange-2010-mailbox-audit-report-script/">Exchange Mailbox Audit Report Script&lt;/a> with some new features and bug fixes. These updates have also set the stage for the entire script to be wrapped with a GUI! Here is the initial release of the Mailbox Audit Report GUI for your auditing needs.&lt;/p></description></item><item><title>Enhanced Remote Server Connectivity Testing With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/06/25/enhanced-remote-server-connectivity-testing-with-powershell/</link><pubDate>Tue, 25 Jun 2013 14:22:18 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/25/enhanced-remote-server-connectivity-testing-with-powershell/</guid><description>&lt;p>Test the following connectivity methods to a server: RDP, ping, rpc, wsman, sccm agent, scom agent, and remote registry. Optionally an alternate credential can be used. Versatility is added with options to return only true/false when singular tests are performed.&lt;/p></description></item><item><title>Use Powershell to Gather Disk/Partition/Mount Point Information</title><link>https://blog.zacharyloeber.com/blog/2013/06/23/use-powershell-to-gather-diskpartitionmount-point-information/</link><pubDate>Mon, 24 Jun 2013 04:41:01 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/23/use-powershell-to-gather-diskpartitionmount-point-information/</guid><description>&lt;p>I put together a function for remotely gathering Windows disk information. This was specifically written to accommodate alternate credentials. This script also accounts for the glaring disconnect between win32_Volume and win32_DiskDrive within WMI.&lt;/p></description></item><item><title>Audit User Profile Folders With Powershell</title><link>https://blog.zacharyloeber.com/blog/2013/06/21/audit-user-profile-folders-with-powershell/</link><pubDate>Fri, 21 Jun 2013 18:46:09 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/21/audit-user-profile-folders-with-powershell/</guid><description>&lt;p>This function will aggregate sub-folders within a folder on a server and attempt to associate them with user IDs within a domain and provide additional information. This script can also be used to move folders for disabled or non-existent accounts.&lt;/p></description></item><item><title>Book Review: PowerShell 3.0 Advanced Administration Handbook</title><link>https://blog.zacharyloeber.com/blog/2013/06/18/book-review-powershell-3-0-advanced-administration-handbook/</link><pubDate>Wed, 19 Jun 2013 01:44:40 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/18/book-review-powershell-3-0-advanced-administration-handbook/</guid><description>&lt;p>A fast-paced PowerShell guide with real-world scenarios and detailed solutions&lt;/p></description></item><item><title>Use Powershell to Create a Windows Service Dependency Diagrams</title><link>https://blog.zacharyloeber.com/blog/2013/06/17/use-powershell-to-create-a-windows-service-dependency-diagrams/</link><pubDate>Mon, 17 Jun 2013 15:32:42 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/06/17/use-powershell-to-create-a-windows-service-dependency-diagrams/</guid><description>&lt;p>I use powershell with graphviz to generate color coded service dependency diagrams for windows services. Besides creating useful and beautiful diagrams for your environment, this will also provide some interesting functions for gathering remote service information with alternate credentials.&lt;/p></description></item><item><title>Exchange 2010 Mailbox Audit Report Script</title><link>https://blog.zacharyloeber.com/blog/2013/05/09/exchange-2010-mailbox-audit-report-script/</link><pubDate>Fri, 10 May 2013 02:33:54 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/05/09/exchange-2010-mailbox-audit-report-script/</guid><description>&lt;h1 id="exchange-2010-mailbox-audit-report-script">Exchange 2010 Mailbox Audit Report Script&lt;/h1>
&lt;p>Recently I’ve released a number of scripts such as the &lt;a href="http://gallery.technet.microsoft.com/Colorize-HTML-Table-Cells-2ea63acd">HTML Table Colorizer&lt;/a>, &lt;a href="http://gallery.technet.microsoft.com/Get-Exchange-Calendar-5bb4f527">Exchange Mailbox Calendar Permission Function&lt;/a>, and the &lt;a href="http://gallery.technet.microsoft.com/Exchange-Mailbox-GUI-5b204590">Exchange Mailbox GUI&lt;/a>. These were all actually created specifically as support scripts for a report generation powershell tool I’ve been working on, the Exchange Mailbox Auditing Tool.&lt;/p></description></item><item><title>Powershell: Colorize-Table.ps1 Updated</title><link>https://blog.zacharyloeber.com/blog/2013/04/28/powershell-colorize-table-ps1-updated/</link><pubDate>Sun, 28 Apr 2013 18:00:43 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/04/28/powershell-colorize-table-ps1-updated/</guid><description>&lt;p>A little while ago I released a script which uses custom linq assemblies to quickly modify an html table based on column header and an arbitrary scriptblock to test the values within that entire column (by default it is a simple -eq comparison). If the scriptblock evaluates to be true then you can either change just the cell style or the entire row style.&lt;/p></description></item><item><title>Exchange: Get Calendar Permissions (multilingual edition)</title><link>https://blog.zacharyloeber.com/blog/2013/04/28/exchange-get-calendar-permissions-multilingual-edition/</link><pubDate>Sun, 28 Apr 2013 17:35:54 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/04/28/exchange-get-calendar-permissions-multilingual-edition/</guid><description>&lt;p>Some time ago I released &lt;a href="http://gallery.technet.microsoft.com/Exchange-2010-Calendar-21695fde" title="Exchange 2010 Calendar Permission GUI">a rather simplistic GUI for viewing Exchange 2010 mailbox calendar permissions&lt;/a>. Because of a semi-related script I’m working on currently I rounded back and recreated that GUI script to be a powershell function instead. This is the result.&lt;/p></description></item><item><title>Powershell: Colorize-Table Function</title><link>https://blog.zacharyloeber.com/blog/2013/04/17/powershell-colorize-table-function/</link><pubDate>Thu, 18 Apr 2013 03:03:36 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/04/17/powershell-colorize-table-function/</guid><description>&lt;p>Here is a function I modified for quickly modifying the attributes of a table’s rows or individual cells. It uses Linq and is blistering fast. The results are pretty as well so that doesn’t hurt either.&lt;/p></description></item><item><title>VMware: VMware Report Generation GUI</title><link>https://blog.zacharyloeber.com/blog/2013/02/17/vmware-vmware-report-generation-gui/</link><pubDate>Sun, 17 Feb 2013 17:11:52 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/02/17/vmware-vmware-report-generation-gui/</guid><description>&lt;p>Its been a while since I posted something new. This GUI is meant to configure regular vmware report generation. You are able to select reporting scoped to the whole farm down to individual hosts. Reports can be emailed or saved and be generated based on custom thresholds.&lt;/p></description></item><item><title>Exchange: Co-existence Client Access Preparation Report</title><link>https://blog.zacharyloeber.com/blog/2013/01/15/exchange-co-existence-client-access-preparation-report/</link><pubDate>Wed, 16 Jan 2013 03:36:50 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2013/01/15/exchange-co-existence-client-access-preparation-report/</guid><description>&lt;p>If you upgrade Exchange in a co-existence scenario (you want to keep the same client access namespace) there is one crucial moment of truth which must be overcome. This is the phase of the migration I’ve come to call the “dns flip-over” or the “client access part”. Without preparation this part of the migration can be a real headache as issues are directly experienced by your end users.  This is a simple report card you can use to prepare you for this moment.&lt;/p></description></item><item><title>Defining Best of Breed in IT</title><link>https://blog.zacharyloeber.com/blog/2012/12/11/defining-best-of-breed-in-it/</link><pubDate>Tue, 11 Dec 2012 06:00:42 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/12/11/defining-best-of-breed-in-it/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>Soon I’ll be starting a new position with a company which produces some of the highest quality products in their industry. The company’s products are of such high quality that they typically set the bar in their industry. This made me think of what a truly comprises an excellent solution within the Information Technology.  This article is a non-technical personal view of what defines the “Best of breed” technical solutions.&lt;/p></description></item><item><title>Create Your Own Network Assessment Appliance: Additional Tools</title><link>https://blog.zacharyloeber.com/blog/2012/11/28/create-your-own-network-assessment-appliance-additional-tools/</link><pubDate>Thu, 29 Nov 2012 02:24:46 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/11/28/create-your-own-network-assessment-appliance-additional-tools/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>I &lt;a href="https://blog.zacharyloeber.com/2012/04/08/create-your-own-network-assessment-appliance/" title="Create your own network assessment appliance">previously did a write up&lt;/a> on a personal virtual machine I like to keep at hand for performing network analysis and discovery. I’ve since added a few tools to the VM and documented how they were installed so I figured I’d share on how it was done. Even if you don’t setup everything in this post it may be worthwhile to glance through it for some network engineering tools which are free to setup and use but not highly publicized. Anyone who cares to read this post has likely heard of Solarwinds but I highly doubt you have heard of all the tools in this list (let alone how to set them up). Regardless, I’ll start with a tool anyone worth their salt has heard of though, Cacti…&lt;/p></description></item><item><title>Exchange – The State Of External Client Access</title><link>https://blog.zacharyloeber.com/blog/2012/11/22/exchange-the-state-of-external-client-access/</link><pubDate>Thu, 22 Nov 2012 19:58:04 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/11/22/exchange-the-state-of-external-client-access/</guid><description>&lt;h1 id="introduction">Introduction&lt;/h1>
&lt;p>Most within the messaging and collaboration industry are hyped up about the next wave of Microsoft collaboration and messaging products which are soon to be released. Among these products is Exchange 2013 RTM. This type of release typically precedes yet another wave of architecture upgrades across the corporate landscape. Some of these (beta testers) will be will undoubtedly upgrade to Exchange 2013.&lt;/p>
&lt;p>Other corporations will start to feel the burn to upgrade as well. These will be organizations which realize that their Exchange 2003/2007 infrastructure is nearing a decade old existence and cannot meet the demands of their ever growing mobile workforce. Realizing they are behind the curve, they may feel hastened to upgrade as well, possibly just to Exchange 2010. Regardless the reason in choosing to upgrade their messaging infrastructure, there are critical design decisions which need to be made in how clients access this infrastructure both internally and externally. This article focuses solely on the external access aspect of the infrastructure.&lt;/p></description></item><item><title>Exchange 2010: Poor Mans Monitoring 1.5</title><link>https://blog.zacharyloeber.com/blog/2012/08/27/exchange-2010-poor-mans-monitoring-1-5/</link><pubDate>Tue, 28 Aug 2012 02:40:20 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/08/27/exchange-2010-poor-mans-monitoring-1-5/</guid><description>&lt;p>Just a quick upgrade to the script I posted earlier. This script is for monitoring and/or maintaining your Exchange 2010 mailboxes. It is meant to help an admin be proactive in their exchange environment. I updated the script to be a bit more customizable and fixed some obvious issues. The primary changes are removing the requirement for the MS chart controls as well as introducing an area of code just for custom scripts. There is always room for improvement but this version is a good start. &lt;del>Download &lt;a href="https://blog.zacharyloeber.com/wp-content/uploads/2012/08/Troubleshoot-MailboxServer.ps1">Troubleshoot-MailboxServer&lt;/a>or. Or&lt;/del> Grab the recent updates at the &lt;a href="http://gallery.technet.microsoft.com/scriptcenter/Troubleshoot-Exchange-2010-aecdc23f">MS script repository&lt;/a> (Edit: Just to to the script repository as any newest version will be dropped there first. I already have a 1.6 version available there).&lt;/p></description></item><item><title>Exchange 2010: Poor Man’s Monitoring</title><link>https://blog.zacharyloeber.com/blog/2012/07/22/exchange-2010-poor-mans-monitoring/</link><pubDate>Sun, 22 Jul 2012 20:11:16 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/07/22/exchange-2010-poor-mans-monitoring/</guid><description>&lt;p>I quietly released a new script into the wild the other day, Troubleshoot-MailboxServer.ps1. This script is meant for monitoring, fixing, and reporting on Exchange 2010 database servers. It pretty much just wraps around and reports on troubleshooting scripts found in %ExchangeInstallPath%Scripts. I also set it so you can have an email sent including warning/error color coded report upon completion.&lt;/p></description></item><item><title>Exchange 2010: Even More Migration Tips</title><link>https://blog.zacharyloeber.com/blog/2012/07/10/exchange-2010-even-more-migration-tips/</link><pubDate>Wed, 11 Jul 2012 00:34:32 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/07/10/exchange-2010-even-more-migration-tips/</guid><description>&lt;p>It has been a while since I passed on some personal experiences when performing Exchange 2010 migrations. I thought it was about time to update my list to include some more of the lesser known aspects of an Exchange 2010 migration.&lt;/p></description></item><item><title>Lync 2010: IP/DNS Workbook</title><link>https://blog.zacharyloeber.com/blog/2012/06/23/lync-2010-ipdns-workbook/</link><pubDate>Sat, 23 Jun 2012 20:24:40 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/06/23/lync-2010-ipdns-workbook/</guid><description>&lt;p>I just ran across &lt;a href="http://blogs.technet.com/b/nexthop/archive/2011/12/07/useful-tips-for-testing-your-lync-edge-server.aspx" title="Useful Tips For Testing Your Lync Edge Server">a Lync article&lt;/a> with all kinds of nice tables which distilled the myriad of DNS/IP addresses in a Lync deployment down to an easy to read format. I happen to have created one of these tables myself for a Lync deployment which included a standard Lync pool, XMPP gateway, Lync Mobility, and a single edge server. I figured others may find some use from it as it auto-populates the dns entries and what they are supposed to point to based on what you fill out for the highlighted cells. Sure you get some of this in the Lync Server 2010 Planning Tool but this offers a slightly different view of the environment as well as a nice one page overview.&lt;/p></description></item><item><title>Active Directory: Best Practices Workbook</title><link>https://blog.zacharyloeber.com/blog/2012/05/28/active-directory-best-practices-workbook/</link><pubDate>Mon, 28 May 2012 21:57:58 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/05/28/active-directory-best-practices-workbook/</guid><description>&lt;p>This is a checklist for technicians performing Active Directory assessments. It is broken down by category and best practice. Some items listed are not really a best practice, but rather something which you may find in an environment which should be rectified (as part of an audit perhaps).&lt;/p></description></item><item><title>Create Your Own Network Assessment Appliance</title><link>https://blog.zacharyloeber.com/blog/2012/04/08/create-your-own-network-assessment-appliance/</link><pubDate>Mon, 09 Apr 2012 00:49:19 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/04/08/create-your-own-network-assessment-appliance/</guid><description>&lt;p>In this write-up I setup several network assessment tools which can be used in the discovery process of a new environment. This can be useful for a newly hired sysadmin or a consultant in rapidly gathering information to assess the health and/or state of a network.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>I often find myself assessing a foreign network infrastructure for performance or other issues. Depending on the size of the environment, digesting everything can be daunting without the help of some third party tools. I’ve been using a custom Linux VM on my workstation that has all kinds of tools specifically for gathering information about a network’s performance, layout, and statistics. I’ve decided to retool the VM I currently use and take better notes on what I install so others may do the same if they so desire.&lt;/p></description></item><item><title>Exchange 2010: Changing an invalid DNS suffixed server</title><link>https://blog.zacharyloeber.com/blog/2012/02/29/exchange-2010-changing-an-invalid-dns-suffixed-server/</link><pubDate>Thu, 01 Mar 2012 05:30:13 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2012/02/29/exchange-2010-changing-an-invalid-dns-suffixed-server/</guid><description>&lt;p>I ran into an interesting Exchange 2010/2007 co-existence issue today. After a new Exchange 2010 (all-in-one) server was introduced into the environment traffic would only flow from the 2010 server to the 2007 hub/cas server and not the other way around. The mail queues stated the last error to be&lt;/p>
&lt;pre>“Initial error: 451 4.4.0 dns query failed. The error was: SMTPsend.dns.nonexistentdomain; nonexistent”&lt;/pre></description></item><item><title>Linux: Headless Ubuntu Torrent Home Server</title><link>https://blog.zacharyloeber.com/blog/2011/09/11/linux-headless-ubuntu-torrent-home-server/</link><pubDate>Sun, 11 Sep 2011 21:45:15 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/09/11/linux-headless-ubuntu-torrent-home-server/</guid><description>&lt;p>So it got to that time of the year where I feel the itch to upgrade my aging home server. I assessed the situation and realized that, for what it does, my current server does not need any kind of hardware upgrade. So I just decided to rebuild it with Ubuntu 11.04 64 bit and change up the server software a bit to be more accessible to my wife as well as to be a bit more modern (torrentflux and derivatives have been dead for a while now).&lt;/p></description></item><item><title>Exchange 2010 One-liner: Get All Network Interface Information</title><link>https://blog.zacharyloeber.com/blog/2011/08/19/exchange-2010-one-liner-get-all-network-interface-information/</link><pubDate>Fri, 19 Aug 2011 16:57:15 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/08/19/exchange-2010-one-liner-get-all-network-interface-information/</guid><description>&lt;p>Here are a few quick powershell one-liners to get all the network interface information in your exchange environment:&lt;/p>
&lt;pre>$ExchServers=(Get-ExchangeServer); @(foreach ($Srv in $ExchServers) {Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName $Srv.Name | select @{Name="Server";Expression={$Srv.Name}},@{Name="DNS Host Name";Expression={$_.DNSHostName}},@{Name="Server Role";Expression={$Srv.ServerRole}},Description,@{Name="IP Address";Expression={$_.IPAddress}},@{Name="IP Subnet";Expression={$_.IPSubnet}},@{Name="Default Gateway";Expression={$_.DefaultIPGateway}},@{Name="Mac Address";Expression={$_.MacAddress}},@{Name="DNS Suffix Search Order";Expression={$_.DNSDomainSuffixSearchOrder}},@{Name="DNS Server Search Order";Expression={$_.DNSServerSearchOrder}},FullDNSRegistrationEnabled}) |Export-Csv -NoTypeInformation "C:\Temp\Exchange-network.csv"&lt;/pre>
&lt;p>If you just want interface information for Exchange 2010 servers:&lt;/p>
&lt;pre>$ExchServers=(Get-ExchangeServer | where {$_.ServerRole -ne "None"}); @(foreach ($Srv in $ExchServers) {Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName $Srv.Name | select @{Name="Server";Expression={$Srv.Name}},@{Name="DNS Host Name";Expression={$_.DNSHostName}},@{Name="Server Role";Expression={$Srv.ServerRole}},Description,@{Name="IP Address";Expression={$_.IPAddress}},@{Name="IP Subnet";Expression={$_.IPSubnet}},@{Name="Default Gateway";Expression={$_.DefaultIPGateway}},@{Name="Mac Address";Expression={$_.MacAddress}},@{Name="DNS Suffix Search Order";Expression={$_.DNSDomainSuffixSearchOrder}},@{Name="DNS Server Search Order";Expression={$_.DNSServerSearchOrder}},FullDNSRegistrationEnabled}) |Export-Csv -NoTypeInformation "C:\Temp\Exchange2010-network.csv"&lt;/pre>
&lt;p> &lt;/p></description></item><item><title>Exchange 2010: A Few More Migration Tips</title><link>https://blog.zacharyloeber.com/blog/2011/08/13/exchange-2010-a-few-more-migration-tips/</link><pubDate>Sat, 13 Aug 2011 23:43:04 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/08/13/exchange-2010-a-few-more-migration-tips/</guid><description>&lt;p>Here are a few more notes from the field to consider when you are planning your Exchange 2010 deployment and migration. Some of these items are good to know even after you have completed your migration and may help with overall system stability.&lt;/p>
&lt;h2>&lt;/h2></description></item><item><title>Active Directory: Essential Tools</title><link>https://blog.zacharyloeber.com/blog/2011/08/11/active-directory-essential-tools/</link><pubDate>Thu, 11 Aug 2011 18:35:00 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/08/11/active-directory-essential-tools/</guid><description>&lt;p>During my many years of working with active directory I’ve used several tools. Here are some of the best that I’ve used which are not baked into windows. Good thing about this list is that most of these tools are fee! Another bonus is that most of the information gathering tools don’t require elevated rights as, by default, domain users have read-only access to active directory.&lt;/p>
&lt;h2>&lt;/h2></description></item><item><title>CSS: Pretty Code Snippet Formatting</title><link>https://blog.zacharyloeber.com/blog/2011/08/05/css-pretty-formatting/</link><pubDate>Fri, 05 Aug 2011 12:58:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/08/05/css-pretty-formatting/</guid><description>&lt;p>I forgot where I dredged this up from but here is how I do my code/script posts. I modified the default theme css and add the following for pre-formatted text:&lt;/p>
&lt;pre>pre {
white-space: pre-wrap; /* css-3 */
white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
background: #000000;
color: #21FF2C;
}&lt;/pre></description></item><item><title>Exchange 2010: Network Communication Table</title><link>https://blog.zacharyloeber.com/blog/2011/07/30/exchange-2010-network-communication-table/</link><pubDate>Sat, 30 Jul 2011 17:06:36 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/07/30/exchange-2010-network-communication-table/</guid><description>&lt;p>I figured I’d post the massive table of firewall rules I compiled for my Exchange 2010 firewall generation script. It has both the source and destination roles for many aspects of an Exchange environment. Where there are ???’s is where I’m simply not certain (mainly around encryption between certain roles). If anyone spots any mistakes or omissions please let me know and I’ll update the accordingly.&lt;/p>
&lt;p>&lt;a title="Exchange 2010 Network Communication Table By Role" href="https://blog.zacharyloeber.com/wp-content/uploads/2011/07/FirewallRules.html" target="_blank">Exchange 2010 Network Communication Table By Role&lt;/a>&lt;/p></description></item><item><title>Exchange 2010: Automated Firewall Rule Generation 1.4</title><link>https://blog.zacharyloeber.com/blog/2011/07/29/exchange-2010-automated-firewall-rule-generation-1-4/</link><pubDate>Fri, 29 Jul 2011 15:28:07 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/07/29/exchange-2010-automated-firewall-rule-generation-1-4/</guid><description>&lt;p>I made some updates to the automated firewall rule generation script. This includes some updates to the firewall rule spreadsheet to give information on setting setic ports and port ranges for RPC based services. This csv file may be a good general reference even without the script.&lt;/p></description></item><item><title>Exchange 2010: Automated Firewall Rule Generation 1.2</title><link>https://blog.zacharyloeber.com/blog/2011/07/20/exchange-2010-automated-firewall-rule-generation-1-2/</link><pubDate>Wed, 20 Jul 2011 16:35:08 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/07/20/exchange-2010-automated-firewall-rule-generation-1-2/</guid><description>&lt;p>I made a few changes to this script to make it more modular and to allow for more exceptions in regards to DAGs and sites. Enjoy!&lt;/p>
&lt;p>&lt;a href="https://blog.zacharyloeber.com/wp-content/uploads/2011/07/ExchangeFirewallRequestGenerator1_2.zip" title="Exchange 2010: Automated Firewall Rule Generation">Exchange 2010 Firewall Rule Generation Script&lt;/a>&lt;/p></description></item><item><title>Exchange 2010: Certificate Install Script</title><link>https://blog.zacharyloeber.com/blog/2011/06/30/exchange-2010-certificate-install-script/</link><pubDate>Thu, 30 Jun 2011 15:39:27 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/06/30/exchange-2010-certificate-install-script/</guid><description>&lt;p>Many of the cert providers require that you install both an intermediary and a root trusted cert on the servers which you are configuring your newly requested Unified Communications certificate on. If you are doing an Exchange migration including several ISA/TMG/Exchange (2003 and 2010) servers this can be a tedious process. Here is the quick way to install all three certificates once they are on the server&lt;/p></description></item><item><title>Exchange 2010: Automated Firewall Rule Generation</title><link>https://blog.zacharyloeber.com/blog/2011/06/24/exchange-2010-automated-firewall-rule-generation/</link><pubDate>Fri, 24 Jun 2011 16:40:50 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/06/24/exchange-2010-automated-firewall-rule-generation/</guid><description>&lt;p>A single, or even a dual site Exchange 2010 deployment does not usually require too much internal firewall manipulation. But if you have to setup a Exchange 2010 environment where there are many global sites or a heavily segmented network, the number of firewall requests required to get a fully functioning configuration working can be daunting. Wouldn’t it be nice to have some of those firewall rules automatically generated for you?&lt;/p></description></item><item><title>Exchange 2010: Protect VIP Mailboxes with Exclusive Scopes</title><link>https://blog.zacharyloeber.com/blog/2011/05/04/exchange-2010-protect-vip-mailboxes-with-exclusive-scopes/</link><pubDate>Wed, 04 May 2011 21:26:37 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/05/04/exchange-2010-protect-vip-mailboxes-with-exclusive-scopes/</guid><description>&lt;p> &lt;/p>
&lt;p>Prior to starting my new job I wanted to ensure that my previous employer was able to protect VIP mailboxes in their Exchange 2010 SP1 organization. I had to do this with exclusive scopes and these are the steps I had to follow. A general knowledge of role based security is assumed in this post.&lt;/p></description></item><item><title>OCS 2007 R2: CRL Issue Causing Address Book Download Error</title><link>https://blog.zacharyloeber.com/blog/2011/03/31/ocs-2007-r2-crl-issue-causing-address-book-download-error/</link><pubDate>Thu, 31 Mar 2011 15:21:09 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/03/31/ocs-2007-r2-crl-issue-causing-address-book-download-error/</guid><description>&lt;p>I ran into this issue recently. End users experienced a red splat in communicator exhibiting that there was an issue syncing the corporate address book. I found &lt;a title="OCS 2007 R2 CRL Issue" href="http://blog.danovich.com.au/2009/11/04/office-communicator-error-cannot-synchronize-address-book/" target="_blank">this excellent article&lt;/a> explaining how an invalid Certificate Revocation List error may be causing this issue. My issue was slightly similar in nature but with some caveats.&lt;/p></description></item><item><title>Windows: 2003 to 2008 R2 RADIUS Migration</title><link>https://blog.zacharyloeber.com/blog/2011/03/17/windows-2003-to-2008-r2-radius-migration/</link><pubDate>Thu, 17 Mar 2011 12:58:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/03/17/windows-2003-to-2008-r2-radius-migration/</guid><description>&lt;p>I found myself doing yet another Windows 2003 IAS Radius server migration to 2008 R2 NPS. I found that I had my prior notes and was able to do this quickly but, hell, if I’m looking this up in my own notes I may as well just post this succinct little procedure.&lt;/p></description></item><item><title>Windows: 2003 to 2008 R2 RADIUS Migration</title><link>https://blog.zacharyloeber.com/blog/2011/03/17/windows-2003-to-2008-r2-radius-migration/</link><pubDate>Thu, 17 Mar 2011 12:58:12 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/03/17/windows-2003-to-2008-r2-radius-migration/</guid><description>&lt;p>I found myself doing yet another Windows 2003 IAS Radius server migration to 2008 R2 NPS. I found that I had my prior notes and was able to do this quickly but, hell, if I’m looking this up in my own notes I may as well just post this succinct little procedure.&lt;/p></description></item><item><title>BIG-IP: Quick Tip</title><link>https://blog.zacharyloeber.com/blog/2011/02/28/big-ip-quick-tip/</link><pubDate>Tue, 01 Mar 2011 00:35:06 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/02/28/big-ip-quick-tip/</guid><description>&lt;p>They silently (well maybe not so silent as I didn’t check if it was announced) published an internal tool that the F5 support engineers use for troubleshooting Big-ip load balancer configuration dumps. With a login account you can access this tool at the aptly named URL of &lt;a href="http://ihealth.f5.com">http://ihealth.f5.com&lt;/a>. This has some really cool info that you might fine useful in resolving load balancer issues in your environment.&lt;/p></description></item><item><title>Active Directory: Role Based Access Modeling</title><link>https://blog.zacharyloeber.com/blog/2011/02/21/active-directory-role-based-access-modeling/</link><pubDate>Tue, 22 Feb 2011 04:22:28 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/02/21/active-directory-role-based-access-modeling/</guid><description>&lt;p>Much of my time is spend delving into the minutia of a particular technology to resolve issues or improve department processes. But sometimes understanding and implementing a technology is not the best “fix” for an issue. Sometimes it is a mindset or a model that needs to change. I came up with this security grouping model to address some of the pains of managing permissions across large groups of systems in our environment. Ok, I modified a long standing Microsoft recommendation of &lt;a href="http://en.wikipedia.org/wiki/AGDLP">AGDLP (an abbreviation of “account, global, domain local, permission”)&lt;/a> to meet our needs. Regardless here is a quick rundown of this security group model I devised if anyone is interested.&lt;/p></description></item><item><title>Virtual Connect: Cisco MDS 9500 Fiber Connectivity</title><link>https://blog.zacharyloeber.com/blog/2011/02/03/virtual-connect-cisco-mds-9500-fiber-connectivity/</link><pubDate>Fri, 04 Feb 2011 01:14:02 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/02/03/virtual-connect-cisco-mds-9500-fiber-connectivity/</guid><description>&lt;p>I’ve done quite a bit of work with HP’s Virtual Connect  and C7000 blade enclosures in a contained (almost pure HP) environment. Today I ran into an issue which flummoxed both myself and an on-site engineer while attempting to connect the VC 8gb interconnect bays to the Cisco MDS fiber module for an upcoming (and exciting!) VMAX implementation.&lt;/p></description></item><item><title>Outlook 2010: Photo Sizing Tool</title><link>https://blog.zacharyloeber.com/blog/2011/02/01/outlook-2010-photo-sizing-tool/</link><pubDate>Tue, 01 Feb 2011 15:35:24 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/02/01/outlook-2010-photo-sizing-tool/</guid><description>&lt;p>We are about to get into full swing with our Exchange 2010 mailbox migrations and, soon afterwards, Office 2007 to 2010 upgrades as well. Unfortunately, we don’t have our Sharepoint farm upgraded to 2010 yet so there will be no automatic syncing of user photos into the GAL for those nice vanity pics which you can view in Outlook 2010. I know people like to be seen so I found a nice &lt;a title="This little hack rocks!" href="http://www.mikepfeiffer.net/2010/05/manage-exchange-2010-thumbnail-photos-with-a-powershell-based-gui/" target="_blank">powershell based GUI &lt;/a>for our (awesome) service desk team to use to upload these photos for users as requested. But you still have to get these photos thumbnailed to approximately 96×96 before uploading. Repeated manual labor is the anathema of any self respecting sysadmin who knows how to hack other people’s code to suit their needs. So I whipped up a very dirty (as in, “wow, get the bar of soap” dirty) hack which combines &lt;a title="How to batch optimize your Exchange GAL Photos before importing to Active Directory" href="http://www.stevieg.org/2011/01/batch-optimize-exchange-gal-photos-importing-active-directory/comment-page-1/#comment-1085" target="_blank">this person’s clever photo-sizing hack&lt;/a> with the prior mentioned gui.&lt;/p></description></item><item><title>Exchange – Notify Forwarded Accounts Script</title><link>https://blog.zacharyloeber.com/blog/2011/01/10/exchange-notify-forwarded-accounts-script/</link><pubDate>Mon, 10 Jan 2011 20:00:19 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2011/01/10/exchange-notify-forwarded-accounts-script/</guid><description>&lt;p>In cleaning up a large number of disabled user accounts in AD I wanted a way to notify a large number of users specifically that they were being forwarded e-mail from another account. This was part of an effort to clean up AD a bit before moving everyone over to Exchange 2010 but it can be used independently of any one project as part of a general AD maintenance plan.&lt;/p></description></item><item><title>Exchange 2010 (SP1): Pre-Deployment Tips</title><link>https://blog.zacharyloeber.com/blog/2010/12/17/exchange-2010-sp1-pre-deployment-tips/</link><pubDate>Fri, 17 Dec 2010 18:55:00 +0000</pubDate><guid>https://blog.zacharyloeber.com/blog/2010/12/17/exchange-2010-sp1-pre-deployment-tips/</guid><description>&lt;p>I recently had the opportunity to experience all of the blood, sweat, and tears of migrating a minimally maintained Exchange 2003 infrastructure to Exchange 2010 (and mid-way through, an upgrade to 2010 SP1). All of the docs out on the web for migrations make it seem soooo easy. But if you are going to do anything other than a single server install and are doing things like, oh say; hardware load balancing, Exchange 2003 co-existence, or working in an old multi-domain forest then you are in for some punishment. I think I ran into every possible issue that you can have with an Exchange 2010 migration. One guide that helped me in this endeavor was the &lt;a title="Rapid Exchange 2003 to 2010 Transition Guide" href="http://msexchangegeek.com/2010/01/30/rapid-transition-guide-from-exchange-2003-to-exchange-2010/" target="_blank">rapid transition guide from Exchange 2003 to Exchange 2010&lt;/a>. This guide didn’t cover every aspect for me though, here are a few things that may save you a little bit of hassle. I’ve been meaning to publish this for a while and I have a whole lot more notes from this experience but this is a start.&lt;/p>
&lt;h2>&lt;/h2></description></item></channel></rss>