Administration and Automation with Windows PowerShell
Course Introduction • 5min
0 / 2 lessons complete
Getting Started with Windows PowerShell • 42min
0 / 7 lessons complete
The Basics of PowerShell
Video | 7 min
Installing and Updating PowerShell
Video | 7 min
The Text Based Console Part 1- An Overview
Video | 7 min
Text Based Console Part 2 - An Overview
Video | 5 min
The ISE (Intelligent Scripting Environment) Part 1
Video | 5 min
The ISE (Intelligent Scripting Environment) Part 2
Video | 5 min
Use the OGV Command to Easily View console data!
Video | 6 min
Getting Help and Finding Commands • 39min
0 / 6 lessons complete
Getting Help and Finding Commands Part 1
Video | 7 min
Getting Help and Finding Commands Part 2
Video | 3 min
Getting Help and Finding Commands Part 3
Video | 4 min
Help System LAB Questions
Video | 6 min
Help System Lab Answers 1-4
Video | 9 min
Help System Lab Answers 5-9
Video | 10 min
PowerShell Command Syntax • 33min
0 / 5 lessons complete
Command Syntax Part 1
Video | 8 min
Command Syntax Part 2
Video | 8 min
Command Syntax Part 3
Video | 5 min
Command Syntax Lab Questions
Video | 4 min
Command Syntax Lab Answers
Video | 8 min
PowerShell Objects and Properties • 35min
0 / 6 lessons complete
Objects, Properties and Methods Part 1
Video | 3 min
Objects, Properties and Methods Part 2
Video | 8 min
Objects, Properties and Methods Part 3
Video | 7 min
Questions 1-9 for Objects, Properties and Methods
Video | 2 min
Answers to Questions 1-7 O-P-M
Video | 11 min
Answers to Questions 8,9 O-P-M
Video | 4 min
The PowerShell Pipeline • 24min
0 / 2 lessons complete
PowerShell Providers • 30min
0 / 5 lessons complete
What are PowerShell Providers
Video | 3 min
Using PS Drive
Video | 6 min
PowerShell Provider CMDlets -1
Video | 12 min
PowerShell Providers CMDlets -2
Video | 7 min
Student Assignments
Text | 2 min
PowerShell Arrays and Variables • 28min
0 / 4 lessons complete
PowerShell Variables
Video | 9 min
PowerShell Arrays
Video | 12 min
PowerShell Variables Challenge
Video | 2 min
PowerShell Variables Solution
Video | 5 min
PowerShell Loops • 19min
0 / 3 lessons complete
PowerShell Conditional Statements • 11min
0 / 1 lessons complete
On Premises Lab Setup • 36min
0 / 8 lessons complete
Should You Watch This Section?
Video | 2 min
Downloading and Installing VirtualBox
Video | 2 min
Downloading Windows Server 2019
Video | 3 min
Creating Your Virtual Network
Video | 2 min
Creating Your Virtual Machines
Video | 7 min
Installing VirtualBox Guest Additions
Video | 2 min
Installing Windows Server
Video | 8 min
Installing the Active Directory Domain Services Role
Video | 10 min
Basic Domain Administration with Windows PowerShell • 2hr 27min
0 / 10 lessons complete
Configuring PowerShell Execution Policy with Group Policy
Video | 13 min
Installing Windows Server Roles and Features with Powershell
Video | 6 min
Running Powershell Scripts as Scheduled Tasks
Video | 8 min
Creating Organizational Units with Powershell
Video | 11 min
Creating and Managing Active Directory User Accounts with PowerShell
Video | 19 min
Move all AD Users in a Group to a Specific Organizational Unit
Video | 7 min
Generate a list of AD Users and their OU
Video | 5 min
PowerShell Splatting
Video | 5 min
Bulk Install Windows MSU Files Automatically with PowerShell
Video | 13 min
Lab: Domain Administration with Windows PowerShell
Lab | 60 min
Send Emails with PowerShell • 22min
0 / 2 lessons complete
Send Emails from Gmail with PowerShell
Video | 9 min
Create Password Expiration Notification Script
Video | 13 min
PowerShell Desired State Configuration (DSC) Basics • 1hr 48min
0 / 6 lessons complete
DSC Overview
Video | 9 min
Enabling PSRemoting with Group Policy
Video | 9 min
The DSC Resource Kit
Video | 7 min
Configuring The Local Config Manager for DSC Push
Free lesson
Video | 14 min
Uninstalling Windows Features with DSC
Video | 9 min
Lab: Desired State Configuration (DSC)
Lab | 60 min
Course Conclusion • 1min
0 / 1 lessons complete
Sign up to access this lesson
Click here to sign up and get access to this lesson!

Saving Progress...
PowerShell splatting is a method of passing a series of parameters to a command in a “single unit”. Splatting can make your code more human-readable and more accessible. In this lesson, we are going to look at how we can use splatting to simplify the code we use to create new Active Directory users - but keep in mind splatting can be used in any circumstance where you pass multiple parameters.
We are going to use the “Windows Server 2016 AD” lab from the IT Playground (link here). Launch the lab, log in to the Domain Controller and open the PowerShell ISE.
Once you’ve logged in, let’s take a look at what creating a new AD user account on a single line looks like:
New-ADUser -Name "Joe Friday" -GivenName “Joe” -Surname “Friday” -UserPrincipalName “joe.friday@serveracademy.com” -SamAccountName “joe.friday” -EmailAddress “joe@serveracademy.com” -Description “This is the users description” -OfficePhone “123-123-1234” -Path "OU=Domain Users,OU=ServerAcademy,DC=ServerAcademy,DC=local" -ChangePasswordAtLogon $true -AccountPassword $(ConvertTo-SecureString "Password!@#" -AsPlainText -Force) -Enabled $true
....Not very easy to read and definitely NOT easy to work with or modify at a later date. We could employ the use of backticks (`) to add each parameter on a new line. In PowerShell when you add the backtick, it allows you to continue the same command on a new line. You need to add a backtick for each new line that you want to add. It is much easier to read than a long one single line of code:
New-ADUser -Name "Joe Friday" `
-GivenName “Joe” `
-Surname “Friday” `
-UserPrincipalName “joe.friday@serveracademy.com” `
-SamAccountName “joe.friday” `
-EmailAddress “joe@serveracademy.com” `
-Description “This is the users description” `
-OfficePhone “123-123-1234” `
-Path "OU=Domain Users,OU=ServerAcademy,DC=ServerAcademy,DC=local" `
-ChangePasswordAtLogon $true `
-AccountPassword $(ConvertTo-SecureString "Password!@#" -AsPlainText -Force) `
-Enabled $true
Now let’s take a look at splatting and why that could be beneficial. First, we need to create a variable in the following format:
$parameters = @{}
Inside of the braces, we will put the name of our parameter, followed by the equals (=) character and finally the value. So something like this:
$parameters = @{
Name = “Joe Friday”
}
We can repeat this for all the parameters like so:
$parameters = @{
Name= "Joe Friday"
GivenName = “Joe”
Surname = “Friday”
UserPrincipalName = “joe.friday@serveracademy.com”
SamAccountName = “joe.friday”
EmailAddress = “joe@serveracademy.com”
Description = “This is the users description”
OfficePhone = “123-123-1234”
Path = "OU=Domain Users,OU=ServerAcademy,DC=ServerAcademy,DC=local"
ChangePasswordAtLogon = $true
AccountPassword = $(ConvertTo-SecureString "Password!@#" -AsPlainText -Force)
Enabled = $true
}
Now if we echo the $parameters variable, we get something like this:

What is cool is we can later access each individual parameter, such as the email address:

That could come in helpful later on depending on what type of scripting you want to do. But to use this variable to create a new AD user, we simply run the command with the splatting variable like so:
Sign up to access the rest of this lesson
You must either log in or sign up to access this lesson.

Saving Progress...