Input for a 1 day "Getting started with PowerShell" session

This topic contains 9 replies, has 7 voices, and was last updated by Profile photo of Christian Sandfeld Christian Sandfeld 1 year ago.

  • Author
  • #30111
    Profile photo of Christian Sandfeld
    Christian Sandfeld

    Hi guys,

    I have been tasked with delivering an internal 1 day (2 x 3 hours or so) "Getting started with PowerShell" training session, and am looking for input and resources.

    Does anybody have something to share about key content, order of delivery, topics I can expect to get through in one day (considering that the audience is expected to be beginners) etc.

    Any input and/or resources you can share, will be greatly appreciated.



  • #30114
    Profile photo of Rob Simmers
    Rob Simmers

    I need to do something like this too.

    • Data Types – common data types and how to determine what the type is (common reason for errors is passing the wrong data type)
    • Objects – understanding how Powershell passes information
    • Get-Help – understanding what the command params mean, e.g. string[], ValueFromPipelineByPropertyName, etc.
    • Filtering – examples of where
    • Analysis – measure, group, sort
    • Exporting\Importing data – html, csv, xml
    • Errors – common errors and what they mean
  • #30117
    Profile photo of Don Jones
    Don Jones

    I think if you look at the outline for "Learn PowerShell in a Month of Lunches" you'll find it's a pretty good sequence for topics.

  • #30119
    Profile photo of Mark Hammonds
    Mark Hammonds

    yup I have your both of your books I'm 4 weeks into PowerShell now and I'm hooked 😀 Wow I cant believe the real Don Jones is here.. This awesome!!! I tell all my coworkers to get your books of course they cant use mine because the pages are so marked up by me and they have little page tags hanging off nearly every page. Thank you so much for your contribution to the community.

  • #30156
    Profile photo of Christian Sandfeld
    Christian Sandfeld

    @Rob: I was thinking something along those lines as well.

    @Don: That is indeed a good book and outline. However squeezing all of that into a compressed 1-day session, will be quite the challenge 🙂

    Thank you both for taking the time to reply to this thread.

  • #30159
    Profile photo of Warren Frame
    Warren Frame

    I've gone the "try to teach them in a few short hours" route, it was quite hit or miss. What's important enough to include? Will you leave 1/2 the audience in the dust if you try to fit it all in? Will you scare anyone away? How effective will a single presentation / lecture be?

    I like the ideas mentioned in this post

    Nowadays, if a similar request for a few hours of training comes up, I might try to keep it informal. For example:

    • Mention some core ideas – Importance of scripting / tooling / automation, why PowerShell, focus on re-usable tools, etc.
    • Show them what they need to learn more (discovery, getting help, exploring objects, etc.)
    • Whet their appetites with a few demos that solve pain points they can relate to (both core PowerShell and community advanced functions or modules)
    • Point out that they need to spend at least a few minutes every day
    • Give them some resources to follow up on (Month of Lunches is usually a good fit), including contact info for folks open to helping them out.

    Part of it might just be me, but it seems teaching PowerShell in a few hours would be a very, very tough challenge : )

    Whichever route you go, these are usually fun, and even if you only convert a few folks over, it's awesome to see your co-workers start realizing the power behind this, dive into it, and become advocates themselves.


  • #30160
    Profile photo of Vasken

    One of the key points that made PowerShell "click" for me when learning was realizing that a majority of the time you are dealing with objects as opposed to dealing with text like you would in another environment like Bash.

    Case in point, if I run ps on a Unix box to tell me what processes are running, what does this return in the strict sense? It returns text that is output to standard out. If I want to interact with this output somehow, I would need to interact with it as text (sed and awk to tokenize different "columns", pretty heavy use of regular expressions, etc)

    Now if I run ps on PowerShell (alias for Get-Process), I get an array of Process objects back (of type System.Diagnostics.Process) which allows me to interact with these Process objects using any of the methods or properties available to objects of that type- It just happens to be the case that PowerShell is intelligent enough to output these objects to standard out in a way that makes them readable.

  • #30162
    Profile photo of Christian Sandfeld
    Christian Sandfeld

    @Warren: I read the same post on Windows IT Pro a while back, and inspiration from that, is actually part of the reason I am now asked to do this 1-day session, as a starting point for an ongoing initiative with an internal user group/forum type setup, with monthly meetups etc.. Thank you for sharing your own experiences, I will definately take your advice into consideration.

    @Vasken: Yeah ... objects will obviously be a key part of it.

    Thank you both for sharing

  • #30165
    Profile photo of Bob McCoy
    Bob McCoy

    If, by the end of the day, they are not thoroughly familiar with Get-Help and Get-Member, you have failed.

  • #30168
    Profile photo of Christian Sandfeld
    Christian Sandfeld

    @Bob: That goes without saying – but thanks for sharing 🙂

You must be logged in to reply to this topic.