1
00:00:01,040 --> 00:00:03,330
PowerShell is a brilliant automation and

2
00:00:03,330 --> 00:00:06,080
configuration management framework. But

3
00:00:06,080 --> 00:00:07,430
did you know there's a lot more to

4
00:00:07,430 --> 00:00:10,010
PowerShell than what comes by default out

5
00:00:10,010 --> 00:00:13,440
of the box? There's an entire ecosystem of

6
00:00:13,440 --> 00:00:15,350
commands and functions that have been

7
00:00:15,350 --> 00:00:17,600
written by individuals and companies to

8
00:00:17,600 --> 00:00:19,810
enhance the usability of PowerShell,

9
00:00:19,810 --> 00:00:22,220
enabling integration and management of

10
00:00:22,220 --> 00:00:25,780
many other platforms and applications. Hi,

11
00:00:25,780 --> 00:00:27,780
my name is Matt Allford, and I'm excited

12
00:00:27,780 --> 00:00:29,770
to have you here with me on this course,

13
00:00:29,770 --> 00:00:32,380
Extending PowerShell. We're going to focus

14
00:00:32,380 --> 00:00:35,170
on working with PowerShell modules. As

15
00:00:35,170 --> 00:00:37,110
noted in the course overview, I am

16
00:00:37,110 --> 00:00:38,490
assuming you've been working with the

17
00:00:38,490 --> 00:00:40,670
PowerShell console already and are

18
00:00:40,670 --> 00:00:42,650
familiar with tasks such as running

19
00:00:42,650 --> 00:00:45,180
commands, piping commands, PowerShell

20
00:00:45,180 --> 00:00:47,620
parameters, and, in general, the

21
00:00:47,620 --> 00:00:51,050
PowerShell language. For the scenario in

22
00:00:51,050 --> 00:00:53,530
this course, I'd like to introduce you to

23
00:00:53,530 --> 00:00:55,860
Jill Anderson, who is a desktop support

24
00:00:55,860 --> 00:00:58,840
engineer for a company named Globomantics.

25
00:00:58,840 --> 00:01:01,190
Globomantics still has a number of manual

26
00:01:01,190 --> 00:01:03,960
IT processes in place, but Jill has been

27
00:01:03,960 --> 00:01:06,510
skilling up on PowerShell with a goal to

28
00:01:06,510 --> 00:01:09,040
automate and optimize tasks and processes,

29
00:01:09,040 --> 00:01:11,570
and in doing so, showing value back to the

30
00:01:11,570 --> 00:01:13,780
business. Through learnings from her

31
00:01:13,780 --> 00:01:16,190
favorite online training platform, Jill

32
00:01:16,190 --> 00:01:18,470
does have a fundamental understanding of

33
00:01:18,470 --> 00:01:20,380
the PowerShell language and how to run

34
00:01:20,380 --> 00:01:22,770
commands, filter results, and work with

35
00:01:22,770 --> 00:01:25,990
data. But up to this point, she's been

36
00:01:25,990 --> 00:01:27,570
working with commands that ship with the

37
00:01:27,570 --> 00:01:30,240
operating system by default and would now

38
00:01:30,240 --> 00:01:32,600
like to extend the usability of PowerShell

39
00:01:32,600 --> 00:01:35,140
by using commands she's seen in articles

40
00:01:35,140 --> 00:01:38,090
and guides online. Jill noticed these

41
00:01:38,090 --> 00:01:40,050
commands aren't installed on her computer,

42
00:01:40,050 --> 00:01:42,640
and she isn't really sure where to start.

43
00:01:42,640 --> 00:01:44,700
Throughout this course, we'll help Jill

44
00:01:44,700 --> 00:01:47,490
understand how authors of PowerShell code

45
00:01:47,490 --> 00:01:49,910
publish their code and how she can find

46
00:01:49,910 --> 00:01:52,360
and consume PowerShell modules to enhance

47
00:01:52,360 --> 00:01:54,670
and extend her PowerShell experience,

48
00:01:54,670 --> 00:01:57,400
making PowerShell even more powerful.

49
00:01:57,400 --> 00:01:59,230
Throughout this course, we're going to

50
00:01:59,230 --> 00:02:02,050
cover a range of topics. First up is

51
00:02:02,050 --> 00:02:04,400
introducing PowerShell modules. We'll

52
00:02:04,400 --> 00:02:06,760
cover what a PowerShell module is and

53
00:02:06,760 --> 00:02:09,220
discuss why creators of PowerShell content

54
00:02:09,220 --> 00:02:10,770
typically package their commands in

55
00:02:10,770 --> 00:02:13,290
modules. We'll get hands on with some of

56
00:02:13,290 --> 00:02:15,260
the modules that are preinstalled on an

57
00:02:15,260 --> 00:02:17,680
out‑of‑the‑box Windows 10 machine, and

58
00:02:17,680 --> 00:02:19,750
you'll learn how to import a module while

59
00:02:19,750 --> 00:02:22,110
also understanding that PowerShell can

60
00:02:22,110 --> 00:02:24,020
auto‑load modules under certain

61
00:02:24,020 --> 00:02:27,220
circumstances. To wrap up, I'll show you

62
00:02:27,220 --> 00:02:28,900
how to identify which commands are

63
00:02:28,900 --> 00:02:31,390
available inside of a module, and that's

64
00:02:31,390 --> 00:02:33,260
going to be critical because the commands

65
00:02:33,260 --> 00:02:35,110
are the object that you'll be working with

66
00:02:35,110 --> 00:02:38,540
most frequently in the PowerShell console.

67
00:02:38,540 --> 00:02:40,890
In a later module, Managing PowerShell

68
00:02:40,890 --> 00:02:42,820
Modules, you'll understand and work with

69
00:02:42,820 --> 00:02:45,630
package management and repositories, and

70
00:02:45,630 --> 00:02:47,780
then we'll spend some time in the console

71
00:02:47,780 --> 00:02:50,320
going through demos to ensure you know how

72
00:02:50,320 --> 00:02:53,050
to find, install, update, and manage

73
00:02:53,050 --> 00:02:55,680
modules. I'll introduce that module a bit

74
00:02:55,680 --> 00:02:57,710
more in depth in the first clip of that

75
00:02:57,710 --> 00:02:59,980
module. I just wanted to give you a primer

76
00:02:59,980 --> 00:03:02,130
here about some of the topics that we'll

77
00:03:02,130 --> 00:03:05,500
end up covering. Now, one last thing

78
00:03:05,500 --> 00:03:07,870
before we get stuck in. This course is

79
00:03:07,870 --> 00:03:10,420
constructed in a way to be hands on, and

80
00:03:10,420 --> 00:03:12,670
I'd love for you to follow along with me,

81
00:03:12,670 --> 00:03:15,540
as that will absolutely help solidify the

82
00:03:15,540 --> 00:03:17,700
concepts and techniques that I'm going to

83
00:03:17,700 --> 00:03:20,660
be teaching you. I'm a huge believer in

84
00:03:20,660 --> 00:03:22,420
hands on for learning concepts,

85
00:03:22,420 --> 00:03:25,020
techniques, and tools. I want to spend a

86
00:03:25,020 --> 00:03:27,040
moment to show you my environment, as

87
00:03:27,040 --> 00:03:29,740
we'll be spending a lot of time here. I've

88
00:03:29,740 --> 00:03:32,470
got a Windows 10 desktop and I've followed

89
00:03:32,470 --> 00:03:35,250
the Installing PowerShell section of Jeff

90
00:03:35,250 --> 00:03:37,480
Hicks' Installing and Running PowerShell

91
00:03:37,480 --> 00:03:39,260
course, and that got me PowerShell 7

92
00:03:39,260 --> 00:03:43,010
installed. If I run Get‑ComputerInfo and

93
00:03:43,010 --> 00:03:44,990
then select the windowsproduct name and

94
00:03:44,990 --> 00:03:46,740
the Windows version, we'll see that I'm

95
00:03:46,740 --> 00:03:49,170
running Windows 10 Pro at version 2004.

96
00:03:49,170 --> 00:03:52,310
But do note that you don't particularly

97
00:03:52,310 --> 00:03:54,600
need to be on this build of Windows 10 to

98
00:03:54,600 --> 00:03:56,400
follow along. As long as you've got

99
00:03:56,400 --> 00:03:59,480
PowerShall 7, that's the main thing. If I

100
00:03:59,480 --> 00:04:02,810
then run $PSVersionTable, you can see here

101
00:04:02,810 --> 00:04:05,130
that I'm running version 7 of PowerShell,

102
00:04:05,130 --> 00:04:07,760
but with that said, pretty much everything

103
00:04:07,760 --> 00:04:10,110
in this course is applicable all the way

104
00:04:10,110 --> 00:04:13,760
back to PowerShell version 3. Also, one

105
00:04:13,760 --> 00:04:15,770
other thing to point out. For the duration

106
00:04:15,770 --> 00:04:17,890
of this course, I'll be running PowerShell

107
00:04:17,890 --> 00:04:20,750
with elevated privileges. This is required

108
00:04:20,750 --> 00:04:22,810
when working with modules, especially when

109
00:04:22,810 --> 00:04:24,720
we get to installing and uninstalling

110
00:04:24,720 --> 00:04:26,370
modules. So I'm just going to run it

111
00:04:26,370 --> 00:04:28,870
elevated by default, and if I'm not

112
00:04:28,870 --> 00:04:30,500
running it elevated for a particular

113
00:04:30,500 --> 00:04:34,000
reason, I'll make sure to call that out to you.

