PowerShell is a brilliant automation and
configuration management framework. But
did you know there's a lot more to
PowerShell than what comes by default out
of the box? There's an entire ecosystem of
commands and functions that have been
written by individuals and companies to
enhance the usability of PowerShell,
enabling integration and management of
many other platforms and applications. Hi,
my name is Matt Allford, and I'm excited
to have you here with me on this course,
Extending PowerShell. We're going to focus
on working with PowerShell modules. As
noted in the course overview, I am
assuming you've been working with the
PowerShell console already and are
familiar with tasks such as running
commands, piping commands, PowerShell
parameters, and, in general, the
PowerShell language. For the scenario in
this course, I'd like to introduce you to
Jill Anderson, who is a desktop support
engineer for a company named Globomantics.
Globomantics still has a number of manual
IT processes in place, but Jill has been
skilling up on PowerShell with a goal to
automate and optimize tasks and processes,
and in doing so, showing value back to the
business. Through learnings from her
favorite online training platform, Jill
does have a fundamental understanding of
the PowerShell language and how to run
commands, filter results, and work with
data. But up to this point, she's been
working with commands that ship with the
operating system by default and would now
like to extend the usability of PowerShell
by using commands she's seen in articles
and guides online. Jill noticed these
commands aren't installed on her computer,
and she isn't really sure where to start.
Throughout this course, we'll help Jill
understand how authors of PowerShell code
publish their code and how she can find
and consume PowerShell modules to enhance
and extend her PowerShell experience,
making PowerShell even more powerful.
Throughout this course, we're going to
cover a range of topics. First up is
introducing PowerShell modules. We'll
cover what a PowerShell module is and
discuss why creators of PowerShell content
typically package their commands in
modules. We'll get hands on with some of
the modules that are preinstalled on an
out‑of‑the‑box Windows 10 machine, and
you'll learn how to import a module while
also understanding that PowerShell can
auto‑load modules under certain
circumstances. To wrap up, I'll show you
how to identify which commands are
available inside of a module, and that's
going to be critical because the commands
are the object that you'll be working with
most frequently in the PowerShell console.
In a later module, Managing PowerShell
Modules, you'll understand and work with
package management and repositories, and
then we'll spend some time in the console
going through demos to ensure you know how
to find, install, update, and manage
modules. I'll introduce that module a bit
more in depth in the first clip of that
module. I just wanted to give you a primer
here about some of the topics that we'll
end up covering. Now, one last thing
before we get stuck in. This course is
constructed in a way to be hands on, and
I'd love for you to follow along with me,
as that will absolutely help solidify the
concepts and techniques that I'm going to
be teaching you. I'm a huge believer in
hands on for learning concepts,
techniques, and tools. I want to spend a
moment to show you my environment, as
we'll be spending a lot of time here. I've
got a Windows 10 desktop and I've followed
the Installing PowerShell section of Jeff
Hicks' Installing and Running PowerShell
course, and that got me PowerShell 7
installed. If I run Get‑ComputerInfo and
then select the windowsproduct name and
the Windows version, we'll see that I'm
running Windows 10 Pro at version 2004.
But do note that you don't particularly
need to be on this build of Windows 10 to
follow along. As long as you've got
PowerShall 7, that's the main thing. If I
then run $PSVersionTable, you can see here
that I'm running version 7 of PowerShell,
but with that said, pretty much everything
in this course is applicable all the way
back to PowerShell version 3. Also, one
other thing to point out. For the duration
of this course, I'll be running PowerShell
with elevated privileges. This is required
when working with modules, especially when
we get to installing and uninstalling
modules. So I'm just going to run it
elevated by default, and if I'm not
running it elevated for a particular
reason, I'll make sure to call that out to you.