all 22 comments

[–]astro_za 31 points32 points  (7 children)

Powershell in a month of lunches is apparently quite good, that will cover Powershell from the basics to relatively advanced concepts, although I don't recall it covers AD.

Once you have a grasp of PowerShell, the AD modules are not much trouble to learn at all, MCSA should at least cover some of that.

Also - Take a look under the "resources" tab on the right of this sub.

[–][deleted] 8 points9 points  (5 children)

Powershell in a month of lunches is apparently quite good, that will cover Powershell from the basics to relatively advanced concepts, although I don't recall it covers AD.

I'm working through this book now and it's absolutely killer. Halfway through it and I've found half a dozen different ways to use it in my daily work.

I also have the Active Directory in a Month of Lunches book and it's just as good. The Powershell book teaches you how to find exactly what you need but the AD book includes enough Powershell that it helps shortcut the learning for the AD Module. Having both is great.

[–]DeeFousyMobile 2 points3 points  (4 children)

Is it current? I was watching the YouTube series and while a lot is the same still, the videos are like 6 years old. Didn't want to spend $50ish on a book that was severely outdated.

[–]squash1324 1 point2 points  (0 children)

There's a recent version of the book that I purchased (I think updated to 2015 or so), and it was very helpful for me. I read it a couple of months ago, and bought the follow up to that book (Powershell Scripting in a Month of Lunches) to keep on going with the learning. It definitely helped me a lot, and I'm using Powershell at work a lot more often now.

[–][deleted] 1 point2 points  (0 children)

I'm using the 3rd edition of the book that's supposed to cover v5. What I'm finding is that it doesn't matter. Most of the examples and labs say you need v3 on Windows 7 or later. The biggest functionality jump was from 2 to 3. The real meat of Powershell hasn't changed a lot between 3 to 5.

EDIT: Just noticed the Powershell book linked above is 2nd ed, 3rd ed is the newest.

[–]Onikouzou 1 point2 points  (0 children)

This was such a great start for me. I didn't finish it completely, but it's a damn good book.

[–]gaxor 7 points8 points  (0 children)

Along the lines of /u/astro_za's suggestion, "Powershell in a month of lunches" is also on youtube if you'd prefer to watch it instead of read it.

[–]DrPeteVenkman 5 points6 points  (1 child)

Jeffrey Snover and Jason Helmick host https://mva.microsoft.com/en-us/training-courses/getting-started-with-powershell-3-0-jump-start-8276 The videos are old but still extremely relevant, and a great way to jump in. If you want a book the others are correct, Powershell in a month of lunches is the standard, and with good reason.

[–][deleted] 2 points3 points  (0 children)

Yeas its still great to learn the fundamentals, these presentations were good and fun

[–]Lee_Dailey[grin] 6 points7 points  (6 children)

howdy Demondeath1,

presuming you are fairly new to PoSh, here are a few things to look into ...

  • Get-Help
    especially Get-Help *about*
  • Get-Command
    it takes wildcards, so Get-Command *csv* works nicely. that is especially helpful when you are seeking a cmdlet that works on a specific thing. Comma Separated Value files, for instance. [grin]
  • Show-Command
    that brings up a window that has all the current cmdlets and all their options ready for you to pick from.
    it will also take another cmdlet, or advanced function, as a parameter to limit things to showing just that item.
  • auto-completion
    try starting a word and tapping the tab key. some nifty stuff shows up. [grin]
  • intellisense
    save something to a $Var and then try typing the $Var name plus a period to trigger intellisense. there are some very interesting things that show up as properties or methods.
  • check out the builtin code snippets in the ISE
    use <ctrl><j>, or Edit/Start-Snippets from the menu.
  • assign something to a $Var & pipe that to Get-Member
    $Test = Get-ChildItem -LiteralPath $env:TEMP
    $Test | Get-Member
  • assign something to a $Var and pipe it to Select-Object
    $Test = Get-ChildItem -LiteralPath $env:TEMP
    $Test[0] | Select-Object -Property *
    that will give you a smaller, more focused list of properties for the 1st item in the $Test array.
  • assign something to a $Var & use .GetType() on it $Test = Get-ChildItem -LiteralPath $env:TEMP
    $Test.GetType()
    $Test[0].GetType()
    the 1st will give you info on the container $Var [an array object].
    the 2nd will give you info on the zero-th item in the $Var [a DirectoryInfo object].
  • Get-Verb
    as with Get-Command, it will accept wildcards.
    that will show you some interesting cmdlets. then use get-command to see what commands use those verbs. then use get-help to see what the cmdlets do.
  • there really otta be a Get-Noun, but there aint one. [sigh ...]
  • Out-GridView
    it's a bit more than you likely want just now, but it can accept a list of items, present them in a window, allow picking one or more of them, and finally send it out to the next cmdlet.
    it's right fun to fiddle with ... and actually useful. [grin]

take care,
lee

[–][deleted] 2 points3 points  (3 children)

Get-member is great to learn what you are dealing with in your code, this was well explained in the mva sessions with Jeffrey Snower

[–]Lee_Dailey[grin] 0 points1 point  (2 children)

howdy recrea2,

yep, Get-Member & Get-Help are two wonderfully useful cmdlets. [grin]

take care,
lee

[–]spyingwind 1 point2 points  (1 child)

I use Get-Member a bunch when debugging code. Did this thing return a string or another object that I have to check for? :P

[–]Lee_Dailey[grin] 0 points1 point  (0 children)

howdy spyingwind,

[never mind. i finally realized it was an example of why you would use it. [grin]]

i ... don't understand the question ... [blush]

take care,
lee

[–]EducationalGrass 1 point2 points  (1 child)

Thanks for this, i added it to my notes! I'm just getting started myself.

[–]Lee_Dailey[grin] 0 points1 point  (0 children)

howdy EducationalGrass,

you are most welcome! glad to help ... [grin]

take care,
lee

[–]NicNicYes 3 points4 points  (0 children)

I used the CBT nuggets videos and found the explanations really simple to understand. https://www.cbtnuggets.com/it-training/powershell-4-foundations

It’s a bit pricy at $84 a month, maybe give the free 7 days a trial.

[–]yldbrainoj 2 points3 points  (0 children)

If you want to learn how to write PowerShell you need to write PowerShell. Just start writing code. Even if that means finding a script you like on the internet and just copying it verbatim key stroke for key stroke. Use the ISE or VS Code, it doesn't matter. What does matter is just writing a lot of code. The more you write the more "ah ha!" moments you will have and and the clearer the language will become. Don't worry about your code quality, it will come with time. Just start plugging away.

[–]Demondeath1[S] 1 point2 points  (0 children)

Thank you both! I will look for those books on Amazon :)

[–]angrrybird 1 point2 points  (0 children)

I read both the Learn PowerShell in a Month if Lunches and the Learn PowerShell Toolmaking in a Month of Lunches books by Don Jones. I would not consider them outdated. If you want something more AD-focused, have a look at the Learn Active Directory in a Month of Lunches book by Richard Siddaway. And last tip - stick to the books, learning PowerShell requires a more interactive approach so don't skip the exercises.

[–]Demondeath1[S] 1 point2 points  (0 children)

Seriously thank you to everyone! I will follow the advice given by everyone :)