Fundamentals of PowerShell
4.7 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
199 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Fundamentals of PowerShell to your Wishlist.

Add to Wishlist

Fundamentals of PowerShell

Beef up your resume and become a power user by learning PowerShell.
4.7 (15 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
199 students enrolled
Created by Rusty Yonkers
Last updated 7/2017
Current price: $10 Original price: $150 Discount: 93% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • 9 Articles
  • 5 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand the PowerShell console and IDE
  • Be able to navigate the help system
  • Understand the basics of running PowerShell commands
  • Understand object oriented design of PowerShell
  • Understand what the PSProvider is and how to navigate it
View Curriculum
  • You should have an intermediate level of expertise in Windows and have a Windows system

When Microsoft first released PowerShell many simply saw it as an updated version of VBScript. However, Microsoft loaded it with power, and made the decision that it would be the technology to be used to administer all of their products. Over time modules came out for Exchange, SQL Server, Active Directory, and other environments. Other companies who sold software to run on Windows servers saw the advantages of PowerShell for administration of their software, and many have started to release PowerShell modules too. 

Now if you look at listings of skills companies are looking for when searching for new employees PowerShell is showing up as one of the prominent required or strongly desired skills. Knowledge of PowerShell could be the deciding factor on if you land that next job, or the promotion to a better position in your current company. 

This course is designed to teach you the fundamentals of the PowerShell environment. It will lay the groundwork and foundation for more advanced PowerShell skills. You will learn what a PowerShell cmdlet is, and how much power you will have at your fingertips. You will learn about the object oriented nature of PowerShell and how to leverage that to be a true power user or power administrator. 

Who is the target audience?
  • Beginning level Windows systems administrators
  • Windows power users
  • Windows desktop support people
  • Microsoft application administrators
Compare to Other PowerShell Courses
Curriculum For This Course
36 Lectures
Setting up a lab environment
3 Lectures 19:04

When you are learning a new skill on a computer you have the possibility of messing something up on the computer. A solid solution to keep from having issues on your workstation is to install a virtual computer. The process is simple and straight forward. You will install a hypervisor, in our case Oracle VirtualBox, and then install the guest operating system. 

Installing a guest computer is no different than installing an operating system on a physical computer. The steps are exactly the same. This video will walk you through both the installation of VirtualBox and Windows 10. 

Preview 12:08

Here you will find detailed information on the virtual environment. This lecture goes into more detail about different hypervisors. It also discusses how to back up a virtual computer. This is exceptionally good to do when you are getting ready to do something you might want to roll back.

Installing a virtual learning lab
Introduction to PowerShell
4 Lectures 16:12

Everyone is familiar with the graphical user interface, or GUI environment that you use for a Mac or Windows. However, most people are unfamiliar with a shell environment. The command line, or non-GUI, environment is not used by nearly as many people. For a long time Windows administration was all done in the GUI. However, the shell is where a power user, or power administrator will do most of their work. This is now as true in Windows as it is in Linux. 

This lecture will introduce you to what a shell environment is, and show examples for both Windows and Linux. You will also see that the command prompt window and the PowerShell console are different beasts too. 

Introduction to PowerShell environment

Some might think that PowerShell and the command prompt are the same thing. However, as we discuss some of the different cmdlets that are available and what they can do you will quickly see that there is much more to PowerShell then simply a different version of for you to use. This short lesson will expose you to some cmdlets to work with processes, services, and even Active Directory. 

The power in PowerShell

There are two different environments that are native to Windows for running PowerShell. These are the PowerShell console and the ISE or integrated scripting environment. They each have their advantages, and this lecture will cover the main differences between the two. 

Choosing the PowerShell environment

In this lesson you will learn how PowerShell is the new direction for Microsoft for administration of both the operating system, and applications that run on Windows. 

PowerShell new direction for Microsoft
Learning the help system
5 Lectures 19:19

The help system is powerful in PowerShell. But you need to update it before you will have full access. This lesson shows you how to update the help system, and also use wild card searches to find cmdlets to get the job done. 

Updating help and finding commands

It is one thing to say just ask the help system, it is another to be able to figure out what you need. But the help output is not as cryptic as you might think. Once we take a little time in this lecture you will be able to easily get your answer. The help system is actually very informative once you learn how to read the output. 

Interpreting the help system

Interpreting the Get-Help output

We are all familiar with using Google to find information. But the help system in PowerShell can be an even faster resource. There are a number of tricks to learn how to do things in PowerShell from PowerShell itself. This lesson will help you master the help system. 

Finding commands using the help system

Short quiz on the help system 

The PowerShell help system quiz
5 questions

Not only does the help system provide the syntax on how to run commands, and listings of the parameters for commands. It also has a substantial set of tutorials called about files that will help you gain in depth knowledge about many PowerShell topics. This lesson shows you those topics and how to access them. 

PowerShell About Helpfiles
Running commands
3 Lectures 11:26

Learning the basic structure of PowerShell commands will help you to both find the cmdlets you need to use and how to make them do what you want. This lesson will help you learn the basics of PowerShell cmdlets. 

Running PowerShell Commands

I regularly joke with people that I went into computers because I am lazy. I may not actually be lazy, but I love to be efficient. So I don't want to type more than I need to when I try to get something done. PowerShell has aliases that are shorter versions of cmdlets that you can use to reduce how much you need to type at the prompt. This lesson will teach you how to find out about those aliases. 

Preview 02:41

This quiz is on PowerShell command structure and on aliases to those commands. Hint: Remember the help system, and that cmdlet for aliases from the lectures. 

PowerShell commands and aliases
5 questions

This lesson is a quick overview of cmdlet structure and also on aliases and how to find them. 

Notes on Running PowerShell commands
Reformatting output
4 Lectures 11:01
Using Format-List

Using Format-Table

Although a lot of cmdlets have some level of filtering ability, there will be times you need to filter the output of a cmdlet that does not offer it natively. The nice thing is since PowerShell is object oriented it is really easy to pipe the output of a cmdlet into another cmdlet that will do the filtering. In this case the cmdlet is Where-Object. If you look at the help for Where-Object it will look a little overwhelming. But it is actually quite easy. Basically you have the cmdlet name, then the name of the property you want to filter on, then the comparison operator. It is not obvious in the help, but you can make a more complex filter by stringing multiple filters together using boolean operators.


With PowerShell version 3 and newer there are actually two ways we can type the command. I will use the more traditional way. You might see the other style in examples on line though. For this example we will use get-service. Let’s start with just running Get-Service and pipe it through more. You can see we are getting both running and stopped services.


But let’s say I only want to see running services? I will type Get-Service | Where-Object {$_.status -eq ‘running’} and press enter. We now have a listing of all the services that are currently running. All the services that are stopped are not displayed. The $_.status in the command is telling Where-Object to look at the current object, that is the $_ part, and specifically at the status property of the current object. This is used a lot in PowerShell.


I mentioned that we can make a more complex filter with boolean operators. Let’s see if we can get a listing of running services where the starttype is set to manual. So I am going to hit the up arrow to bring up the last command. Now at the end of the filter inside the curly brace I will type -and $_.starttype ‘manual’} and hit enter. You can see that the list is a lot shorter, but are we sure I got the list I wanted? Well let’s add the starttype property to the output. So I am going to take the output that we just got and pipe it through Select-Object with the properties of status,name,displayname,starttype and press enter. Now you can see that yes we have only the services that are running with a start type of manual. So using Where-Object allows us to filter the output of a cmdlet even when it does not natively support filtering on those properties.

Using Where-Object to filter results
PowerShell providers
4 Lectures 23:46

PowerShell is much more than a simple command prompt. With that said, sometimes you will need to move around the file system and perform file management tasks. The PSProvider allows access to the file system. It is a bit different than at the command prompt, but will also give you a lot more power too. 

PowerShell PSProviders - The File System

The PSProvider system in PowerShell goes well beyond access to the file system. You can access a number of different systems on the computer in a similar manner as the file system. This lesson shows how to access the registry using the PSProvider. The way this works for the registry is the same as you would use for other PSProvider "drives" like the Active Directory PSProvider. 

PowerShell PSProviders - The Registry

Installing remote support for Active Directory
The pipeline and the advantage of object oriented design of PowerShell
6 Lectures 25:39

Most programmers are familiar with object oriented design. But for many others the words sound scary. But the concepts are actually quite easy to comprehend. This short little lesson will help you to understand what object oriented really means. 

What is an object and object oriented design?

Now that we have the basics of what object oriented mean we have a lesson to make use of that knowledge. This lesson will start to move through cmdlets and their output and learn the power of being object oriented. 

Exploring objects and properties

Because of the object oriented nature of PowerShell we can easily manipulate the data we are gathering so that we can more easily understand it. In this lesson you will learn how to sort the output of cmdlets with sort-object so that you can put some order to life. 

Sorting objects

It is typical that any time we run commands on a computer we will only get a subset of the data available from a command. This is also true of PowerShell cmdlets. The select-object command will allow you to expose any of the properties of objects cmdlets access. 

Selecting objects

A short quiz on the selecting objects cmdlet. Feel free to use the Get-Help cmdlet in PowerShell to assist in this. 

Selecting objects quiz
3 questions

Using sort-object, where-object, and select-object are powerful tools. But we run the risk of shooting ourselves in the proverbial foot if we are not taking care of the order that we put commands into the computer. You could easily remove a property too early, before you need to use it to sort or something. This lesson talks about how information flows through the pipeline, and things to consider as you structure your commands. 

Process flow through the pipeline

Using Where-Object to filter results
Introduction to Variables
2 Lectures 10:30

Variables are a key for more advanced PowerShell usage. They are also vital when you start to do PowerShell scripting. This lecture will help you to learn exactly what a variable is, how to create it, and how to access it. 

Preview 06:46

Using the THIS variable
Introduction to managing Active Directory
2 Lectures 09:01

This lesson introduces you to using the Active Directory cmdlet Get-ADUser and how you can look up users in your AD directory. 

Preview 04:19

This lesson introduces you to the Get-ADGroup and Get-ADGroupMember cmdlets. You can use these cmdlets to query groups in your AD directory.

Using Get-ADGroup and Get-ADGroupMember
Bonus Material: Quick Reference Guides
3 Lectures 07:25
Punctuation Quick Reference

Using PowerShell for renaming batches of files
About the Instructor
Rusty Yonkers
4.7 Average rating
15 Reviews
199 Students
1 Course
Rusty the Atomic Super Geek

Hi, I am Rusty, and I am the Atomic Super Geek. I have worked in computers for over 30 years. I have worked as a network administrator, identity security engineer, network systems engineer, systems architect, and computer networking instructor. I have obtained a number of computer certifications over the years. Along with my computer certifications I also hold an MBA.

My goal is to share with you the skills I have learned over the years, and have helped me develop a very successful computer career.