Teaching myself Powershell

Hi there,

I’ve been hitting Powershell pretty hard for the past 4-5 months. Worked through the lunches book, working on the step-by-step book at the moment, did the MVA video lectures with Snover and Helmick, listening to the Powershell podcast (from the first one in 2007-8)…just basically trying to immerse myself in Powershell and pick up something new everyday.

I’m not in a role right now where I would actually need to use it. I work in a DataCenter as a technician and use my free time (in between break-fixes, decomms, and deployments), to try and study as much as I can and it just doesn’t seem to stick. Are there any games or projects that a person who is not an Admin that would help to get a better understanding of it? Or is the only way to continue from book to book? At this point, I’ve invested too much time to turn back now so one way or another I will learn this. I can see the benefits of Powershell and the potential that I could experience if I can become proficient in Powershell and really want to get better at it.

Thanks in advance for any tips!

Well, you need to use it for something, even if it’s not at work yet. :slight_smile: I was in a similar situation where my full-time job required very little PowerShell at first, so I just hit the forums (here and on TechNet) and started answering questions. Figuring out how to solve people’s problems was a good exercise to help me learn more and stay sharp. In some cases, I would polish up the solutions and release them in a module as well.

You can also build out a couple of boxes with Hyper V Server 2012 R2. It’s an unlimited Server Core eval. I stood up a couple at home to play with.

Good luck!

Build your own lab using Hyper V and instead of using the GUI, start using powershell. Create AD users, AD groups, etc. I have a Windows 8.1 laptop running Hyper V, that is how I am learning. Check out Pluralsight.com it has powershell lessons with Don Jones, Jeff Snover and many more.

I agree with what everyone here said, however I have mainly used the method that Dave Wyatt mentions above.
Even if you are not answering questions directly, if you can take the persons problem and try to solve it on your own, in your own lab, it is an amazing learning tool.
Then eventually you will notice that answers other have given match what you were able to do in your environment.

Anyway, good luck.

im glad I’m not the only one that went back to episode zero! I am lucky enough that I need to use it everyday. I just never got on the stick and started learning, now I’m years behind but trying to use if in everything I do.

I am still learning, although I have found a great number of quick fixes and created a few scripts to make things easier in my day-to-day administration. Here are a couple ideas to expand on the concepts of powershell without really administrating anything.

  1. One of the first things that amazed me about powershell and lured me in, was what you can do with powershell that really isn’t administration. Say, for instance, that you want to send a quick email, you can start doing that by powershell. Or build a script that sends email for you with a couple of mandatory parameter fields.
  2. Start using the “start-transcript” to record and document whatever you do, and review it later.
  3. Write a few startup scripts to append those transcript files to text messages, or write-host to create a job log throughout the day.
  4. If you go the route of home lab setup, practice the setup line by line with netsh, netdom, and others. Then script the entire domain setup through hyper-v. One of the biggest things that continually helps me move forward is the practice of building pieces of powershell upon each other, and orchestrating it to do large jobs after it has been fine tuned.

That last one is the biggest concept, since when you run into errors when you think something should work, you start researching “why”, and discover the concept of the cmdlet context and how to properly apply it.

Thanks for the input everyone! I’ll definitely give these a go.