Tag Archives: Microsoft

GriffinMonitor Module v1.5 – Additional Functionality

This evening I’ve decided to add additional functionality to the GriffinMonitor Module. I noticed that I am filling up my storage on my lab server fairly quickly. With that in mind I knew I needed to know once I am about to max it out. I’ve decided to write a fairly simple alert for remaining disk space per volume. Before we dive into how to use the cmdlet and the code itself please reference the previous blog post on Monitoring Storage Pool Health – GriffinMonitor Module.

Using Alert-GMLowDiskSpace:

This cmdlet is very similar to the Alert-GMUnhealthyStoragePool as it has 3 mandatory parameters. There is a 4th parameter that is optional so you can specify the threshold at which it alerts. As I mentioned in the previous blog post at some point I intend to add additional functionality for TLS or SSL secured SMTP servers along with the ability to pass authentication. That functionality is still not there, but it is still on my to-do list.

Example:

-OR-

 The Module Code:

 Update Instructions:

  1. Open C:\Users\<username>\Documents\WindowsPowerShell\Modules\GriffinMonitor with the PowerShell ISE or your favorite text editing document
  2. Replace the code with the above script
  3. Create a Scheduled Job for the new PowerShell cmdlet

Installation Instructions:

  1. Navigate to C:\Users\<username>\Documents\WindowsPowerShell\Modules\GriffinMonitor
    1. (Note: If the directory doesn’t exists you must create it.)
  2. Save the above code in a file named GriffinMonitor.psm1 under the above directory
  3. Create a Scheduled Job using PowerShell

Once it is scheduled, keep an active eye on your inbox for when your Storage Pool goes unhealthy!

Miscellaneous Notes:

  • This module was built and tested using PowerShell v4 on Server 2012 R2 running a single Storage Pool.
  • This module “should” work with Server 2012 running PowerShell v3 with one or many Storage Pools
  • This module comes with no guarantee or support, this is a run at your own risk and I take no responsibility for any repercussions that may occur by running this.
    • With that being said I’ll try my best to assist anyone who may have questions if you post in the comments of this thread.

Monitoring Storage Pool Health – GriffinMonitor Module

There have been times in the past (more than I like to remember) where I’ve had a hard drive fail, a raid 5 fail, and eventually I am sure I’ll have a Storage Pool fail at some point with my lab environment. The best way to avoid this is by introducing active and heavy monitoring. In my work world I am very good and forward thinking when it comes to this; however no matter how many times it happens in my home environment I still fail at maintaining the system.

When Server 2012 was released with the introduction of Storage Pools I had just lost my RAID 5, I decided it was the right time to implement Storage Pools as my primary storage at home. It uses parity which is basically a software raid, and I was able to use cheap consumer drives along with USB drives (YAY! more space since I was out of it inside of the server.)

I’ve been running Storage Pools for over a year, knowing one major issue with my setup. I have absolutely no monitoring in place, and if I were to have a drive fail it could be weeks… maybe months before I realize an issue exists. I recently went through updating my home lab from Server 2012 to 2012 R2 and decided I needed to stop fooling around with my data and get some monitoring in place.

Well the first issue came along… how am I going to monitor my Storage Pool? Sadly there is no easy alerting of an unhealthy Storage Pool built in… I’m sure there are third party tools, but do I really want to go through the hassle of setting that up for just my Storage Pool? The good news is that PowerShell has some fantastic cmdlet’s available for working with storage.

When I started building my monitoring solution I initially thought… a simple script on a scheduled task will get the job done. As I built it out, I decided that I needed to go further than I have in the past, I needed to build a cmdlet, then once I finished that I thought why stop there? Why not built my first module? This module currently only contains a single PowerShell cmdlet, but as time goes on I hope to build out many more that I can continue to use in my environment at home. Below is the entire source of the psm1 file that is stored in my Modules directory along with installation instructions and directions on how to use the cmdlet.

Using Alert-GMUnhealthyStoragePool:

This is a fairly straightforward cmdlet, only 3 mandatory parameters and it works. There are quite a few restrictions surrounding the SMTP Server including it cannot use TLS or SSL (Currently) and it doesn’t accept Authentication. These will be added in the future but for the first iteration of it I was going for quick and dirty for a lab environment.

Example:

 The Module Code:

Installation Instructions:

  1. Navigate to C:\Users\<username>\Documents\WindowsPowerShell\Modules\GriffinMonitor
    1. (Note: If the directory doesn’t exists you must create it.)
  2. Save the above code in a file named GriffinMonitor.psm1 under the above directory
  3. Create a Scheduled Job using PowerShell

Once it is scheduled, keep an active eye on your inbox for when your Storage Pool goes unhealthy!

Miscellaneous Notes:

  • This module was built and tested using PowerShell v4 on Server 2012 R2 running a single Storage Pool.
  • This module “should” work with Server 2012 running PowerShell v3 with one or many Storage Pools
  • This module comes with no guarantee or support, this is a run at your own risk and I take no responsibility for any repercussions that may occur by running this.
    • With that being said I’ll try my best to assist anyone who may have questions if you post in the comments of this thread.

PowerShell Summit Round Up

I’ve been fairly distant from my blog for quite a few months… work has been very busy and preparing for the PowerShell Summit really took quite a bit of time. On top of all of that I was also traveling to Microsoft TechEd shortly after the PowerShell Summit.

The PowerShell Summit was an amazing event, probably the most well prepared conference I’ve attended. The venue was great, the evening events were very cool and the food was fantastic! I was lucky enough that my presentations were Monday morning, so I was able to relax and enjoy the remainder of the conference.

One fun thing that wasn’t well known is that the Sunday before the conference I did a quick run through my VM’s to validate my demos would work… I started walking through my SharePoint Demo and guess what… no go. Luckily I had all of the media on my local machine, after troubleshooting a bit I gave up and rebuilt the demo day before presenting it. Everything went smoothly the next day.

I was also lucky enough that Aaron Hoover sat in on my PowerCLI: How to Automate Your VMware Environment Reports session and recorded everything. The recording was done on a webcam, so you will see it have to refocus occasionally. I have the slides posted on the blog so you can follow along with those.


It was a great experience presenting at the PowerShell Summit and I hope present in coming years. Now the very exciting information at the Summit did not come from my session, but sessions from Jeffrey Snover and the PowerShell Product team.

Read more »

PowerShell Summit: PowerShell Makes SharePoint oh so Magical – PowerPoint

My second session of the PowerShell Summit 2014 covered Automating the installation of SharePoint 2013 SP1 using multiple community based tools. Once we installed SharePoint we started exploring how we can browse the SharePoint API to find information we are looking for. Below is the PowerPoint that was used.

New Year New Changes

It’s been quite a bit of time since I’ve made a true blog post. Things have been very exciting in my life lately and I’ve been chugging along to keep up with it.

The first thing I’d like to talk about is the first thing that happened this year. Starting January 1st 2014 I became a Technical Team Lead at Apparatus. I oversee 5 technical resources while maintaining myself as a technical resource also. It is a new challenge and one I am very eager to execute on. This position has given me the ability not only to expand my technical knowledge across multiple technologies but also to gain experience in management. I am one of the first 7 people in this role at Apparatus and I get to be part of the formation of this new level of management and it is a fantastic opportunity for me to grow.

The next thing that happened this year is the first time I’ve taught a Microsoft Official Course (MOC) which was the 20410, Installing and Configuring Windows Server 2012. It was a lot of work to prepare for this course; however it was well worth every minute of prep work as this was an extremely exciting course to teach. I had 12 people in attendance and I received lots of positive feedback on my teaching technique. The best part of that week was not the experience, or how much fun it was to present. It was the fact that one of the students in the course decided to sketch a picture of me while I was talking about IPv4 Sub-netting which I’ve included below.

Sketch223134341