Uncategorized

Drinking the PowerShell Kool-Aid…Repost

This is a reposted blog from my now dead wordpress site so formatting may be poor…

So I’ve recently drank the kool-aid and I’m all in on PowerShell. After TechEd this year and speaking with lots of IT Pros & Industry folks, I knew it was time for me to get up to speed on PS or be left behind.

To this end, I have been working through Learn Windows PowerShell 3 in a Month of Lunches, 2nd Edition by Don Jones and Jeffery Hicks. This IS the place you should start if you are a PS newb like my self, or is the proper term PoSHnewb. Don and Jeff do a remarkable job of teaching PowerShell the way IT Pros work. For the most part, we are not programmers; we’re technicians, administrators , or architects, and that is how we need to use PowerShell; as a tool in which to perform singular or repetitive tasks, mostly from the CLI and sometimes as a script.

I like this book so much that I am having my 4th semester students go through the book to learn PowerShell in a way that will prepare them for the real world. They’ll need the help as I threw a curveball into the usual mix of work for my Windows Server Pro class. Normally, each student completes an individual case study where they build out an SMB windows network in VMs. This semester, I scaled back some of the case study tasks to reduce complexity of the overall network, and now I am requiring them to build the entire Windows Server 2012 network with PowerShell. How crazy is that???? I am doing the project along with them so I can hopefully catch and “gotchas” before they do.

So as I’m working my way through my PowerShell journey, I thought it would be cool to share code examples as they get created. Let me warn you…I can barely script my way out of a paper bag so scripts will be functional but probably could use some streamlining.

In any case, here’s the first useful script I wrote called DumpHistory.ps1. This script is a simple PS script to display and create a text file of all commands executed in the CLI during a specific session. The reason I came up with this was I teach my students to use get-history as a way to see what they have done, as well as keep track of their work. I wanted a way to easily create dumps of my history so I can review them at a later date as well as prep for demos. Again, I am sure someone else has done this, and probably cooler. That’s not the point. For me, it’s about thinking about process I do on a regular basis and seeing if I can create a tool to automate that process to some level.
####dumphistory.ps1
##Create a text file containing history of PowerShell Commands based on input file name and current date
##Created by Michael Bender
##Created/Revised 10/9/2013
##
##Create variable for current date
$Date=get-date
$Dy=$Date.Day
$Mo=$date.Month
$yr=$date.Year
##Get User Input for Name of File
$History=Read-Host “Enter Name for History file”
##Retrieve current CLI history and output to file
Get-History
Get-History | Out-File C:UsersmikebSkyDriveMatcFall2013ServerProPowerShellhistoryfiles$History.$mo-$dy-$yr.txt

Note: I have the out-file location hard-coded since I use the same location all the time. If you needed to specify the location at each running, the script could be modified by creating a variable for the location with read-host.

A zipped copy of the file is located http://sdrv.ms/1gqqHGe
If you have any suggestions on cleaning this up, please add in the comments.

Till next time…Mike

About Michael Bender

Just a geek trying to "share the wealth" with the rest of the world... Michael is a teacher at heart. Coming from a career teaching at a community college and work for 19 years as a system engineer, his passion is for helping people learn the skills necessary to ‘level-up’ their careers, and helping businesses achieve their customer goals. Sharing everything is how he guides his career as everyone wins when you share what you know. Currently, he is a Cloud Ops Advocate at Microsoft. This team focuses on engaging and advocating for Operations-focused communities to the engineering teams in Windows Azure. You’ll find Michael and his #AzOps team at conferences, online, and building great content at docs.com. Michael specializes in Windows Server, Virtualization, PowerShell and Windows Azure. As part of his goal of sharing his knowledge, he has a number of courses published on Pluralsight.com covering PowerShell and Windows Server. He is passionate about the IT Operations community. For the last 8 years, he has led up a global user group called The Krewe.he is the current president and a founding member of The Krewe, a worldwide networking group for IT Pros and Developers. This group provides a global network for the sharing of ideas and solutions for many in the Operations community. For more information, check out The Krewe on Facebook or Twitter.
View all posts by Michael Bender →

1 thought on “Drinking the PowerShell Kool-Aid…Repost

  1. Hey Mike! Great to see PS is the scripting language of choice these days. Really wish I would have had the chance to take the PS class at MC. Luckily, my current job has been a great advocate of my learning PS. I've been completely addicted to automating frequently completed tasks and the vast ability to pull info that can't be gained from a GUI is amazing. Its definitely my favorite administration tool.

    I dig the script. I prefer to process the date a bit differently and put the file output in list form to prevent truncation in the log. Here's how I do it:

    ###
    $History = read-host “Enter Name for History file”
    get-history
    get-history | format-list | out-file ( 'C:foo' + $History + '.' + (get-date -format MM-dd-yyyy) + '.txt' )
    ###

    -Justin Lewis

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.