Wednesday, October 29, 2014

Exchange 2013 Management Pack Update

Microsoft has released an update to the Exchange 2013 Management Pack for SCOM. The update added nice Dashboards to give you a better overall view of the health of your environment.


It also added additional reports and views. The updated management pack version 15.0.652.19 can be downloaded here: http://www.microsoft.com/en-us/download/details.aspx?id=39039

For detailed information on how to update and use the management pack look here http://technet.microsoft.com/en-us/library/ee758046(v=exchg.150).aspx

You can view additional screenshots on the SCOM blog page here http://blogs.technet.com/b/momteam/archive/2014/10/29/exchange-server-2013-management-pack-update.aspx

Monday, October 27, 2014

Get-MailboxQuarantine

I previously wrote about poison mailbox detection in Exchange 2010 and how to find mailboxes that have been quarantined. In Exchange 2013 there are 2 additional cmdlets to assist with troubleshooting mailboxes. The new cmdlets that were added were Enable-MailboxQuarantine and Disable-MailboxQuarantine. With Enable-MailboxQuarantine it gives you the ability to manually quarantine a mailbox at your discretion. This can be useful for testing the functionality of quarantining a mailbox or, more importantly, quarantining a mailbox that is causing issues issues on a server. 

As great as the new cmdlets are, there is still a hole that needs to be filled. There is no Get-MailboxQuarantine cmdlet to check/verify if a mailbox has been quarantined. We still have to resort to digging through event logs or registry keys. So I wrote a script to do just that. 

Currently version 1 of the script just searches the event logs for users that have been quarantined. The script has a one optional parameter where you can specify a specific server if you wish. I plan on updating the script to search through the registry as well in the event that your environment has many event logs that would remove the quarantine event log. I will update this blog when that happens.

The download for the script is

https://gallery.technet.microsoft.com/office/Find-Poison-Exchange-6e7cc945

You can read more about the new cmdlets in 2013 at the link below:

http://blogs.technet.com/b/rmilne/archive/2014/01/13/how-to-set-mailbox-quarantine-in-exchange.aspx

Wednesday, October 22, 2014

Exchange 2013 DSC Module

Yes!!! Microsoft has completed work on a DSC (Desired State Configuration) module for Exchange 2013. This beauty has 24 resources in the module to setup and configure Exchange 2013. I plan on getting knees deep in this one and blogging more as I start playing with everything. You can find the module here. For a series of blogs explaining the module, check here.

Wednesday, October 1, 2014

Windows 10 won't start on Hyper V

So you're like a kid on Christmas signing up for the Windows 10 technical preview. You download the iso (zzzzzzzz), load up Hyper-V and create a new VM off of the ISO. As soon as you start the VM you're hit with this error:




Fortunately, I have only seen this issue with the Enterprise version of Windows 10 and the Server technical preview but there is a quick fix. When creating the VM, you need to make it a 'Generation 1' machine instead of 'Generation 2'.

 Of course, you cannot change the generation after the machine is created so you will need to delete and recreate the VM. Party on!



Monday, June 23, 2014

ADMT Server 2012

Microsoft has finally released a version of ADMT that can be installed on Server 2012 & Server 2012 R2. Details from the ADMT migration guide:

ADMT v3.2 has recently been updated and re-released. The version remains v3.2 because it’s functionally the same as its predecessor (that is, there are no new features). This final release includes various bug fixes and can be used with all supported Windows operating systems and versions of Windows Server Active Directory:

  • The server where you install ADMT can run any supported version of Windows Server, including Windows Server 2012 R2 and Windows Server 2012. 
  • The source and target domain controllers must be writeable, but they can run any supported version of Windows Server with a user interface (not Server Core), including Windows Server 2012 R2 and Windows Server 2012.
  • The source and target domains must be at Windows Server 2003 domain functional level or higher.
  • The computers that can be migrated can run any supported version of Windows, including Windows 8.1.
  • You can use any version of SQL Server for the ADMT database.

You can download the new version on the Connect site. The updated migration guide is also available here.

Wednesday, May 7, 2014

PowerShell Summit NA Recap


The 2014 PowerShell summit has now come and gone. This was my first time attending the PowerShell summit, or any PowerShell specific conference, and it has shot up the list as my favorite conferences to attend. It is definitely one of the smaller conferences out there (about 200-250 attendees), but the content and the knowledge gathered is second to none.

Sunday, there was a Pre-Conference mixer at the Blue Martini that was basically a laid back meet and greet. It was nice to see and be able to talk to so many people that I follow on blogs and twitter. Everyone was open to any conversation including the "Godfather" himself Jeffrey Snover. The perfect networking event.

The conference officially kicked of with Don Jones and Jeffrey Snover giving welcome and brief house keeping talk over breakfast. Which was some of the best food I have ever had at a conference. I usually wondering off site to the nearest restaurant to get some decent food. The first session of the day for most people was a talk by Jeffrey Snover about JEA or Just Enough Admin. The presentation centered around dropping the old convention of granting someone "keys to the castle" to perform 1 specific tasks. If you are familiar with Exchange server 2007 and higher, it similar to Roles Based Access Control or RBAC. Although it is far more extensible as you can limit a user access to specific servers and command as well as limit the amount of time the access is granted. He will be speaking more about it during TechEd 2014.

For me, day 1 included a lot of talk on Desired State Configuration (DSC). Let me just say that was the recurring theme throughout the conference as it is Microsoft's main focus for PowerShell. So if you don't know about DSC yet then put high on your priority lists of things to learn as you will only see and hear more about it. The sessions were given by the current king of DSC Steven Murawski. He walked through a number of DSC scenarios as well as dropped those little nuggets of information that you won't find on TechNet but only by trial and error.

To end day 1, was the Iron Scripter challenge. It involved 3 challenges in the theme of a chef making a 3 course meal. There was a appetizer task which involved getting BIOS and OS information from a computer in a specific format while keeping it to the shortest one-liner possible. The Main course, was a task of creating a full script to also gather computer information while yielding specific results with proper error handling. The last "dessert" task was a good debugging a already written script to make sure it runs correctly.

The highlights of Day 2 for me involved a session by GoateePFE about AD recovery. It takes a different twist on recovery than what you normally know about recovery. Using AD snapshots to do attribute level restores, yep attribute level. Read more about it at aka.ms/ADSnapshot.

The day ended with a series of lightning demos by members of the PowerShell development team. Just about all of the individuals that were present worked/are working on DSC. Once again, I can't stress enough how much attention DSC is getting. They included demos showing debugging in DSC, DSC to build Azure VMs, and using DSC against Linux boxes. Yep managing Linux from Windows via DSC!

Day 3 was cut a little short for me because of travel plans but the session on using web services in PowerShell given by Trond Hindenes was awesome. I code against internal web services at work for many different things and the session was able to break down different methods of connecting to web services whether they be SOAP based or RestApi's. Check out his slides for more details.

Quotes of Note
"Invoke-Expression is the path to hell" -Jeffrey Snover
"It is inevitable that we will open source PowerShell" -Jeffrey Snover
"Put a pager on a developers belt and you get better code" -Jeffrey Snover
"Q:What do you call a group of developers? - A: A merge conflict!" -Jim Christopher

If you use PowerShell in your job, you NEED to make plans to attend the next PowerShell Summit (in Charlotte, NC) or the Summit Europe. There is no conference that you will get this amount of content with such a dedicated group of individuals.  See ya next year!

Sunday, April 27, 2014

PowerShell Summit NA

I am here in Seattle for the 2014 PowerShell summit. I will be attending all the sessions on Desired State Configuration (DSC) and a few others to help sharpen my PowerShell toolkit. Below is my tentative schedule of sessions I will be going to.

Monday, April 28, 2014
PowerShell Just in Time / Just Enough Admin – Security in a Post-Snowden World Jeffrey Snover
The Life and Times of a DSC Resource  Steven Murawski
Building Scalable Configurations  Steven Murawski
Patterns for Implementing Configuration with a DSC Pull Server  Steven Murawsk
Leverage Multi-Threading for Speeding Up Your Scripts  Jason Walker
Advanced PowerShell Eventing Scripting Techniques  Matt Graeber
Proper Tooling Through PowerShell  Jim Christopher

Tuesday, April 29, 2014
On the Job: Putting PowerShell Scheduled Jobs to Work  Jeffery Hicks
PowerShell Active Directory Attribute-level Recovery ...  Ashley McGlone
WSMan Cmdlets  Richard Siddaway
Windows PowerShell as a Platform  Krishna Vutukuri
Kerberos Delegation, CredSSP, and Windows PowerShell  Aleksandar Nikolic
Windows Hooking with PowerShell  Adam Driscoll


Wednesday, April 30, 2014
Trending and Reporting  Don Jones
PowerShell and the Web – Leveraging Web Services with PowerShell  Trond Hindenes
Monitoring Using PowerShell  Josh Swenson
Cmdlet-ize the Registry  Richard Siddaway

Sunday, March 23, 2014

Conference Season in Swing

Its time to knock the dust off this blog and get some content going on here. I will be attending a few noteworthy conferences in the coming weeks so I plan on giving updates, followups and overall reviews on the sessions that I attend and things to look out for.

I will be attending:

  • MEC (Microsoft Exchange Conference) -- March 31st - April 2nd
  • PowerShell Summit -- April 28th - April 30th
I will post the sessions I plan on attending in separate posts shortly as I figure all that stuff out. Also be on the lookout for Exchange Saturday, which is an free event coworkers and I are looking at creating soon in Austin, TX. 

Friday, January 10, 2014

Simplify the OWA URL

Below is a quick powershell one-liner to setup your OWA URL to redirect nicely from mail.contoso.com to mail.contoso.com\owa as documented in http://technet.microsoft.com/en-us/library/aa998359(v=exchg.150).aspx


  1. Import-Module WebAdministration  
  2. Set-WebConfiguration system.webServer/httpRedirect "IIS:\sites\Default Web Site" -Value @{enabled="true";destination="https://mail.contoso.com/owa";exactDestination="false";httpResponseStatus="Found";childOnly="true"}   

or you can do it via the ol' Error Pages with this command


  1. .\appcmd.exe set config -section:system.webServer/httpErrors /+"[statusCode='403',responseMode='Redirect' ,path='https://mail.contoso.com/owa']" /commit:apphost