index
Symbols
[int] type 214, 301
* wildcard 30
*.log filename pattern 262
$_ placeholder 155 – 156
$comp variable 268
$computer variable 283
$computer_to_query_for_data variable name 215
$computername variable 206, 208, 220, 239 – 240
$computers variable 209 – 210
$ConfirmPreference setting 80
$DebugContext variable 299
$Error automation variable 279
$ErrorActionPreference variable 280 – 281
$filepath variable 239
$home built-in variable 298
$matches collection 265
$nestedpromptlevel variable 299
$number variable 213
$phrase variable 206
$process variable 216
$processes variable 211 – 212
$processName variable 292
$properties variable 268
$props variable 272
$PSDefaultParameterValues variable 307
$pshome built-in variable 298
$PSVersionTable console type 6
$PSVersionTable variable 173
$session variable 235
$session01 variable 229, 231
$session02 variable 229
$sessions variable 228
$time variable 299
$VerbosePreference variable 256
A
action cmdlet 197
ActionPreferenceStopException object 281
actions 95
ActiveDirectory module 231 – 232
Add keyword 153
Add() method 307 – 308
advanced scripts 250
aliases 40, 49 – 50, 253 – 254
AliasProperty property 99
Alignment 143
AllSigned setting 45
-and operator 151
applications 48
arrays 40
artifacts 287
-as operator 142, 300 – 301
-AsJob parameter 178 – 179, 186
assignment operator 203
asynchronous multitasking 175
awk tool 53, 97
Az.* module 130
Az.Accounts module 130
Az.Storage module 128
Azure PowerShell 126
B
BackgroundColor parameter 220
bash command line utility 53
batch cmdlet 197
batch files 236 – 237
breakpoint debugging 293 – 295
breakpoints 293
brew cask install powershell command 12
Bypass setting 45
ByPropertyName parameter 119
ByPropertyName pipeline 119 – 123
ByValue pipeline 116 – 118
C
-ceq operator 149
-cge operator 149
-cgt operator 149
Change Directory command 62
[char] object type 214
child items 60
child jobs 182 – 183
ChildItem noun 62
ChildJobs property 180
CI (continuous integration) 108
CIM (Common Information Model) 4, 188 – 191
CimClassMethods property 189
-cle operator 150
Clear verb 61
Clear-Variable command 215
-clt operator 149
Cmdlet variety 88
[CmdletBinding()]directive 251
cmdlets 187 – 188
enumerating objects 193 – 194
modifying system with 79 – 80
overview 48
typing names 55 – 56
-cne operator 149
code $profile command 298
code command 16
collections 95
colors 299 – 300
columns 141 – 143
-Columns parameter 140
Command Explorer 17
command line 40
command line model, iterative 153 – 155
commands 42 – 57
adding 84 – 93
command conflicts and removing extensions 90
confusion points 92
finding and adding modules 87 – 89
finding and installing modules 84 – 87
general discussion of 84
process of 91 – 92
aliases 49 – 50
anatomy of 47 – 48
cmdlet naming convention 48
confusion points with 55 – 56
typing cmdlet names 55 – 56
typing parameters 56
differences between remote and local 168 – 171
deserialized objects 168 – 170
local vs. remote processing 170 – 171
error messages 54 – 55
examples in help system 37
external commands 52 – 54
finding
task example 106 – 107
with help system 29 – 30
for managing jobs 183 – 185
for working with variables 215
learning to use 108 – 112
making repeatable 237 – 238
parameterizing 238 – 239
scripting vs. running commands 46 – 47
security 42 – 46
shortcuts 50 – 52
truncating parameter names 50
using parameter name aliases 50 – 51
using positional parameters 51 – 52
comment-based help 243
-Common parameter 50
common parameters 51
Compare-Object command 76
comparison operators 150 – 152
-Composite parameter 50
Compress-Archive command 91 – 92
-ComputerName parameter 50, 129, 157, 233, 251, 253 – 254, 257
-computername parameter 165, 227, 239, 253
ComputerName property 230
-Computers parameter 268
-Confirm parameter 59, 80
console host 218
-contains operator 302 – 303
Continue variable 280
ConvertFrom cmdlet 73
ConvertFrom-Json cmdlet 73
ConvertFromDateTime() method 307
ConvertTo cmdlets 73
ConvertTo verb 78
ConvertTo- cmdlets 79
ConvertTo-CSV cmdlet 69
ConvertTo-HTML cmdlet 180
ConvertTo-Html command 114
ConvertTo-Json cmdlet 73, 110
ConvertTo-Xml cmdlet 79
ConvertToDateTime() method 307
Copy verb 61
-count parameter 70
CPU property 101, 103, 203
-Credential parameter 32, 59, 307
cross-platform remoting 158 – 159
CSV file 71 – 72
D
d alias 123
Data property 265
date manipulation 304 – 306
Date String object 304
DateTime String object 304
[datetime] type 301
debugging techniques 287 – 295
line by line 289 – 293
output everything 287 – 289
with breakpoints 293 – 295
default formatting 132 – 137
Delete() method 201
-Department parameter 124
dept property 124
-Descending parameter 101
deserialized objects 168 – 170
-Difference parameter 75
-DifferenceObject parameter 75
Dir alias 64, 246
Dir command 70
disconnected sessions 233 – 234
displaying information 218 – 219
documenting script 241 – 243
double quotes 211 – 212
[double] type 214, 301
-drivetype parameter 253 – 254
E
-EA SilentlyContinue command 281
early filtering, 149
Enable-PSRemoting cmdlet 163
EnableDHCP method 190 – 191
endpoints 163
Enter-PSSession 164 – 166, 226, 229 – 231
enumerating objects 192 – 194
enumerations 22
Env provider 59
Environment provider 59
Environment PSProvider 62
error messages 54 – 55
ErrorAction common parameter 279
-ErrorAction parameter 50, 281, 284
errors 279, 282 – 286
exceptions vs. 280 – 281
handling badly 281 – 282
handling exceptions 282 – 284
for noncommands 284
going further with 284 – 285
reasons for 282
ErrorVariable common parameter 283
ErrorVariable common parameter variable 279
-Example parameter 37
-Example switch 92
exceptions
errors vs. 280 – 281
handling 282 – 284
for noncommands 284
reasons for 282
execution policy 43 – 46
-ExecutionPolicy command-line switch 43
Exit-PSSession 164 – 166
-ExpandProperty parameter 128
Export verb 78
Export-Clixml cmdlet 74, 80
Export-CSV cmdlet 71, 74, 80, 82, 180
exporting pipeline data 70 – 76
comparing files 75 – 76
Out-File 74
to CSV 71 – 72
to JSON 72 – 73
to XML 74
Expression key 143, 308
Extensible Markup Language (XML) 74
extensions 90
external commands 52 – 54
F
F8 debugging 290, 292
FileInfo object 118
-FilePath parameter 176
files
exporting pipeline to 70 – 76
comparing files 75 – 76
CSV 71 – 72
JSON 72 – 73
Out-File 74
XML 74
formatting output to 143
piping to 77 – 78
filesystem
navigating 62 – 63
organization of 60 – 62
FileSystem provider 59, 62
FileSystem PSProvider 60
-Filter parameter 31, 33 – 34, 59, 68
filtering 149 – 156
$_ placeholder 155 – 156
filtering left 150, 155
objects out of pipeline 152
overview 149
using comparison operators 150 – 152
using iterative command-line model 153 – 155
-FilterScript parameter 152, 308
folders 60
-Force switch 92
ForEach alias 200
ForEach loop 272, 283
ForEach-Object cmdlet 193 – 194, 200
-ForegroundColor parameter 220
Format- cmdlets 143 – 146, 148, 172
-Format-List cmdlet 180
Format-Table cmdlet 146
Format-Table parameter 139
Format-Wide cmdlet 140
FormatString 143
formatting 132 – 148
confusion points 144 – 148
always format right 145 – 146
one type of object at time 146 – 147
creating custom columns and list entries 141 – 143
default formatting 132 – 137
directing output
GridView 144
to file or to host 143
general discussion of 132
lists 139 – 140
tables 137 – 139
wide lists 140
full help 34 – 35
-Full parameter 34, 37
-Full switch 92
full-form syntax of a command 47
func command-line utility 53 – 54
functions 28, 48
G
gc alias 302
Get verb 48, 61, 156
Get- cmdlet 72
Get- commands 269
Get-AzContext command 130
Get-AzStorageBlob command 94
Get-AzSubscription command 130
Get-AzVm command 94
Get-ChildItem cmdlet 34, 123, 156, 239, 295
Get-CimClass command 189
Get-Command cmdlet 47 – 48, 70, 74, 115, 156
Get-Credential command 307
Get-DNSClientCache cmdlet 265
get-help about_* command 38
Get-Help about_CommonParamaters command 51
Get-Help cmdlet 28, 97
Get-History -count 10 (or h) command 70
Get-Job cmdlet 48, 179
Get-LastOn command 271
Get-Location cmdlet 299
Get-Member command 97 – 98
Get-Module command 86
Get-Noun cmdlet 48
Get-Process (or gps) command 70
Get-Process cmdlet 48, 50, 73, 94, 96, 114, 141, 156, 295
Get-User cmdlet 90
Get-Variable command 215
Get-WindowsFeature command 235
GetType() method 170
global scope 245
gm alias 98
go alias 123
GPO (Group Policy object) 43, 164
grep tool 53, 97
GridView 144
-GroupBy parameter 138, 148
H
Help command 34, 37, 48, 78, 247
Help keyword 28
help system 25 – 41
accessing 38
accessing online help 38 – 39
asking for help 28 – 29
finding commands with 29 – 30
interpreting help 31 – 37
finding command examples 37
optional and mandatory parameters 32 – 33
parameter sets and common parameters 31 – 32
parameter values 35 – 37
positional parameters 33 – 35
overview 25 – 26
updatable help 27 – 28
host 77, 135
host alias 257
host application 218
host, formatting output to 143
hostname alias 257
-HostName parameter 157, 165, 168, 227
HTML, converting pipeline to 78 – 79
I
ID property 99, 103
Id property 150, 203
Id property name 192
IdleTimeout 234
if statement 272
ifconfig command-line utility 52
implicit remoting 226, 231 – 233
Import- cmdlets 81
Import-Clixml cmdlet 74
Import-CSV cmdlet 74
import-excel module 93
importing sessions 231 – 233
-in operator 302 – 303
-Include parameter 68
-IncludeTypeInformation parameter 83
-IncludeTypeInformation switch 81
IndexOf() String method 304
input 218 – 225
other ways to write 223 – 224
prompting for information 218 – 219
Read-Host 219 – 220
Write-Host 220 – 221
Write-Output 222 – 223
Install-Module -Name Az command 86
installing
PowerShell 6 – 7
Linux (Ubuntu 18.04) 14
macOS 12 – 13
Visual Studio Code and PowerShell extension 15 – 16
Integrated Console 17
integrated host 218
Invoke-CimMethod generic cmdlet 189
-Invoke-Command cmdlet 226, 231
Invoke-ScriptBlock 167 – 168
ipconfig command line utility 48, 52
-is operator 300 – 301
Item cmdlets 63 – 64
Item noun 61
ItemProperty noun 62
iterative command-line model 153 – 155
J
-JobName parameter 177
jobs 174 – 186
commands for managing jobs 183 – 185
confusion points 185 – 186
creating process job 175 – 176
creating thread job 176 – 177
getting job results 179 – 182
multitasking in PowerShell 174
remoting as 177
synchronous vs. asynchronous 175
working with child jobs 182 – 183
-join operator 301 – 302, 304
Join() String method 304
JSON (JavaScript Object Notation) 19, 72 – 73
K
KeyHandler object 135
Kill() method 100, 198 – 199, 201
kills terminals 17
L
Learn PowerShell Toolmaking in a Month of Lunches (Jones and Hicks) 108
Length property 148, 208, 210, 223
-like operator 302
line-by-line examination 269, 289 – 293
Linux
PowerShell 3
remoting on 158
SSH (Secure Shell) on 159 – 160
Linux (Ubuntu 18.04) 13 – 14
-ListAvailable parameter 86
lists
creating custom entries 141 – 143
formatting 139 – 140
literal paths 63 – 64
-LiteralPath parameter 31, 64
login property 124
M
macOS 3, 12 – 13
remoting on 158
SSH (Secure Shell) on 159 – 160
mandatory parameters 32 – 33, 251 – 253
-Match operator 262, 265
MatchInfo object 263
MaxConcurrentUsers 234
MaxConnections 234
-MaxEvents parameter 271
MaxShellRunTime 234
MaxShellsPerUser 234
Measure keyword 153
Measure-Command cmdlet 194
MemberDefinition object 104
members 98
Message property 263 – 264
methods 100
documentation 199 – 200
invoking 188 – 191
unrolling in PowerShell 210 – 211
Microsoft.PowerShell.Archive command 117
Microsoft.PowerShell.KeyHandler objects 135
mkdir command 63
-Module parameter 47, 126, 131
modules 84
adding 87 – 89
installing 84 – 87
more command 70
Move verb 61
Move-AdObject cmdlet 187
Move-Item cmdlet 187
multitasking 174 – 186
commands for managing jobs 183 – 185
confusion points 185 – 186
creating process job 175 – 176
creating thread job 176 – 177
getting job results 179 – 182
PowerShell and 174
remoting, as job 177
synchronous vs. asynchronous 175
working with child jobs 182 – 183
My Variable variable 204
N
Name key 143
-Name parameter 67, 83, 116 – 121, 156, 176, 192, 194
Name property 103, 119, 121, 123 – 124, 129, 140 – 141, 203, 210
nested property 72
New verb 48, 61
New-ADUser command 123
New-AzKeyVault cmdlet 193
New-AzVm command 178
New-Item cmdlet 57, 63
New-PSSession cmdlet 227, 282 – 283
New-Variable command 215
-not operator 151
NoteProperty property 99
nslookup command-line utility 52
O
objects 40, 94 – 105, 187 – 201
Common Information Model (CIM) way 188 – 191
confusion points 104, 197 – 200
diminishing returns of Parallel ForEach 198 – 199
ForEach-Object 200
method documentation 199 – 200
defined 94 – 95
deserialized 168 – 170
Enter-PSSession with session 229 – 231
enumerating 192 – 194
filtering out of pipeline 152
formatting one type at time 146 – 147
Get-Member command 97 – 98
Invoke-Command with session 231
methods 100
PowerShell using 95 – 97
properties 99
saving time 194 – 197
selecting properties 101 – 102
sorting 100 – 101
storing in variables 207 – 211
multiple objects in variable 209
other ways to work with multiple objects 209 – 210
single objects in variable 207 – 208
unrolling properties and methods in PowerShell 210 – 211
until end 102 – 104
one-to-many remoting 167 – 168
one-to-one remoting 164 – 166
online help 38 – 39
-Online parameter 34, 38
operators 300 – 303
-as and -is 300 – 301
-contains and -in 302 – 303
-join and -split 301 – 302
-replace 301
optional parameters 32 – 33
-or operator 151
Out- cmdlets 77 – 78, 135, 137, 143, 145 – 146
Out-Default cmdlet 77, 134, 152
Out-File cmdlet 40, 74, 103, 146, 180
Out-File procs.html command 114
Out-GridView cmdlet 144
out-of-scope variable 215
output 218 – 225
debugging techniques 287 – 289
formatting
GridView 144
to file or to host 143
other ways to write 223 – 224
prompting for information 218 – 219
Read-Host 219 – 220
Write-Host 220 – 221
Write-Output 222 – 223
P
Parallel ForEach 198 – 199
Param() block 240 – 241, 247
parameter block 268
parameter sets 31
parameter values 35 – 37, 307 – 308
parameterized script 240 – 241, 249 – 258
adding parameter aliases 253 – 254
making parameters mandatory 251 – 253
starting point 249 – 250
using PowerShell 250 – 251
validating parameter input 254 – 255
verbose output 255 – 257
parameterizing commands 238 – 239
parameters
optional and mandatory parameters 32 – 33
parameter sets 31 – 32
parameterized script
adding parameter aliases 253 – 254
making mandatory 251 – 253
validating parameter input 254 – 255
positional parameters 33 – 35
finding in full help 34 – 35
finding in syntax summary 33 – 34
shortcuts with
truncating parameter names 50
using parameter name aliases 50 – 51
using positional parameters 51 – 52
typing 56
parenthetical commands 126 – 127
-PassThru parameter 188
-Path parameter 31 – 34, 51, 63 – 64, 92, 149, 239, 307
path parameter 239
PATH variable 68
Pause verb 48
ping command line utility 48, 52 – 53
pipelines 83, 114, 131
confusion points 80 – 82
converting to HTML 78 – 79
custom properties 123 – 126
enabling power with less typing 114
exporting to file 70 – 76
comparing files 75 – 76
Out-File 74
to CSV 71 – 72
to JSON 72 – 73
to XML 74
extracting value from single property 127 – 129
input ByPropertyName 119 – 123
input ByValue 116 – 118
killing processes 79 – 80
overview 69 – 70
parenthetical commands 126 – 127
piping to file 77 – 78
PowerShell passing data down 114 – 116
script and 243 – 245
working with Azure PowerShell 126
PM property 203
positional parameters 33 – 35
finding in full help 34 – 35
finding in syntax summary 33 – 34
shortcuts 51 – 52
PowerShell 1 – 24
advantages of 1 – 3
audiences using 3 – 4
being immediately effective with 7
installing 6 – 7
multitasking and 174
on Linux 3
on Linux (Ubuntu 18.04) 13 – 14
on macOS 3, 12 – 13
on Windows 3, 12
passing data down pipeline 114 – 116
profiles 296 – 298
resources for help 7
setting up lab environment 6
typing 21 – 22
using objects 95 – 97
version, determining 23
Visual Studio Code and PowerShell extension 14 – 21
customizing 18 – 21
installing 15 – 16
overview 16 – 18
PowerShell extension 14 – 21
customizing 18 – 21
installing 15 – 16
overview 16 – 18
PowerShell script 46
private scope 245
process block 268
process job 175 – 176
Process objects 156, 243 – 245
-Process parameter 194, 308
processing, local vs. remote 170 – 171
ProcessName column 97
profile scripts 296
prompt
customizing 298 – 299
for information 218 – 219
Prompt function 298
properties
custom pipeline 123 – 126
extracting value from single property 127 – 129
objects
overview 99
selecting 101 – 102
unrolling in PowerShell 210 – 211
-Property parameter 75 – 76, 101, 125, 138 – 140
providers 58 – 68
filesystem
navigating 62 – 63
organization of 60 – 62
overview 58 – 60
wildcards and literal paths 63 – 64
working with other providers 64 – 67
PSComputerName property 181
PSDrive 59
PSModulePath environment variable 87 – 88
PSProvider 58
PSReadLine module 156
PSResourceGroup object 128
PSRP (PowerShell remoting protocol) 159 – 161
macOS and Linux 159 – 160
on Windows 160 – 161
overview 161 – 162
PSSession object 230
PSVersion property 173
pwsh command 12, 14
pwsh process 171
Q
quotes, tricks with 205 – 207
R
Read-Host cmdlet 219 – 220
Receive-Job cmdlet 79
-Recurse parameter 56
-ReferenceObject parameter 69, 75
regex (regular expressions) 259 – 265
purpose of 259 – 260
syntax primer 260 – 261
with -Match 262
with Select-String 262 – 264
rem prefix 232, 235
remote control 157 – 173
as job 177
confusion points 172
differences between remote and local commands 168 – 171
deserialized objects 168 – 170
local vs. remote processing 170 – 171
idea behind 157 – 159
cross-platform remoting 158 – 159
remoting on macOS and Linux devices 158
remoting on Windows devices 158
PSRP over standard Secure Shell (SSH) 159 – 162
macOS and Linux 159 – 160
on Windows 160 – 161
sessions 226 – 235
creating and using reusable 227 – 228
Enter-PSSession with session objects 229 – 231
importing 231 – 233
Invoke-Command with session objects 231
using disconnected 233 – 234
using Enter-PSSession and Exit-PSSession for one-to-one remoting 164 – 166
using Invoke-ScriptBlock for one-to-many remoting 167 – 168
WinRM 162 – 164
remote scripts 45
Remote Server Administration Tools (RSAT) 123, 231
RemoteSigned setting 45
remoting 157
remoting chain 166
Remove verb 61
Remove-Item command 215, 281
Remove-Job cmdlet 183
Remove-PSSession cmdlet 227
Remove-Variable command 215
Rename verb 61
-replace operator 301, 304
Replace() method 208
-ResourceGroupName parameter 128 – 129
resources 312
Responding property 148
Restricted setting 45
ReturnValue number 191
reusable sessions 227 – 228
risk mitigation parameters 38
RSAT (Remote Server Administration Tools) 123, 231
S
samAccountName property 124
scopes 245 – 247
script blocks 308 – 309
Script editor pane 17
script scope 245
-ScriptBlock parameter 168, 175, 308
scripting 236 – 248
batch files 236 – 237
creating parameterized script 240 – 241
documenting script 241 – 243
making commands repeatable 237 – 238
one script and one pipeline 243 – 245
other people's scripts 266 – 272
line-by-line examination 269
parameter block 268
process block 268
parameterizing commands 238 – 239
running commands vs. 46 – 47
scopes 245 – 247
scripting language 46
ScriptProperty property 99
scripts 46, 236, 238
Secrets of PowerShell Remoting (Jones & Weltner) 173
security 42 – 46
sed tool 53, 97
sel alias 123
Selecet-AZSubscription command 130
Select-Object -Property Name command 129
Select-Object cmdlet 101 – 102, 123, 128
Select-String command 262 – 264
selected objects 103 – 104
ServerManager module 235
session configurations 163
-session parameter 230 – 231
sessions 226 – 235
creating and using reusable 227 – 228
Enter-PSSession with session objects 229 – 231
importing 231 – 233
Invoke-Command with session objects 231
using disconnected 233 – 234
Set verb 48, 61
Set-ExecutionPolicy command 43
Set-Location cmdlet 62
Set-Service cmdlet 187
Set-Variable command 215
Set-WSManQuickConfig cmdlet 163
shells 46
shortcuts 50 – 52
truncating parameter names 50
using parameter name aliases 50 – 51
using positional parameters 51 – 52
ShouldProcess 59
[single] type 214, 301
snap install powershell – -classic command 14
Sort-Object cmdlet 101 – 102, 180
Sort-Object VM -desc command 114
sorting objects 100 – 101
-Source parameter 28
-Split operator 272, 301 – 302, 304
Split() String method 304
spooler service 283
SSH (Secure Shell) 159 – 161
macOS and Linux 159 – 160
on Windows 160 – 161
overview 161 – 162
sshd_config file 160
Start method 199
Start-Job cmdlet 48, 175, 308
Start-Process cmdlet 187
Stop error action 281
Stop-Job cmdlet 79 – 80, 183
Stop-Process cmdlet 48, 80, 201
strComputerName variable name 204
-Stream parameter 33
String input 35
string manipulation 303 – 304
String methods 304
String object 116, 118, 126 – 128, 155, 203, 210, 304
string replace() method 301
[string] type 214, 301
String types 207
String. Get-Module type 118
subexpressions 212
-Subscription parameter 130 – 131
-SubscriptionName parameter 130
Sum keyword 153
summary help 30
Switch scripting construct 265
switches 36
synchronous multitasking 175
-Syntax parameter 47
System.Diagnostics.Process object 103, 168
System.String object 203
System.String type 116, 203, 208
System.Uri object 137
System.Uri type 135
T
table columns 95
table rows 95
table view 133
tables 137 – 139
task example 106 – 113
defining 106
finding commands 106 – 107
learning to use commands 108 – 112
tips for teaching oneself 112
terminating exception 282
Test-Connection cmdlet 53
text parsing with regex 259 – 265
purpose of 259 – 260
syntax primer 260 – 261
with -Match 262
with Select-String 262 – 264
third formatting rule 137
thread job 176 – 177
Threads property 72 – 73
throttle limit 196
-ThrottleLimit parameter 167, 177, 196
TimeSpan objects 244 – 245
tips 296 – 309
customizing prompt 298 – 299
date manipulation 304 – 306
operators 300 – 303
-as and -is 300 – 301
-contains and -in 302 – 303
-join and -split 301 – 302
-replace 301
PowerShell profiles 296 – 298
script blocks 308 – 309
setting default parameter values 307 – 308
string manipulation 303 – 304
tweaking colors 299 – 300
WMI dates 306 – 307
ToLower() method 208 – 210, 304
tool making 310
ToString() method 170
ToUpper() method 208, 304
Trim() String method 304
TrimEnd() String method 304
TrimStart() String method 304
type alias 81
typing 21 – 22, 114
U
Unrestricted setting 45 – 46
updatable help 27 – 28
Update-Help command 88
-UseTransaction parameters 62
V
Value property 123
values 202 – 205
var variable name 203, 205
variables 202 – 217
best practices 215 – 216
commands for working with 215
confusion points 216
declaring type of 212 – 215
overview 202
storing objects in 207 – 211
multiple objects in variable 209
other ways to work with multiple objects 209 – 210
single objects in variable 207 – 208
unrolling properties and methods in PowerShell 210 – 211
storing values in 202 – 205
tricks with
double quotes 211 – 212
quotes 205 – 207
verb-noun naming convention 48
verbose output 255 – 257
-Verbose parameter 256
-Verbose switch 92
version, determining 23
Visual Studio Code 14 – 21
customizing 18 – 21
installing 15 – 16
overview 16 – 18
VM property 141, 203
W
Wait-Job cmdlet 79, 183
Weltner, Tobias 173
-WhatIf parameter 59, 80
where alias 150
Where verb 48
Where-Object cmdlet 102, 150, 152
wide lists 140
-Width parameter 143
wildcards 63 – 64
Win32_LogicalDisk WMI class 254
Win32_NetworkAdapterConfiguration CIM class 188
Win32_NetworkAdapterConfiguration objects 190
Win32_OperatingSystem class 306
Windows
PowerShell 3
PowerShell on 9
remoting on 158
SSH (Secure Shell) on 160 – 161
Windows Registry 65 – 67
WinRM (Windows Remote Management) 158, 162 – 164
WMI dates 306 – 307
-WorkingDirectory parameter 176
WorkingSet property 152, 156
-Wrap parameter 139
Write alias 222
Write command 246
Write-* statements 287
Write-Debug cmdlet 224
Write-Error cmdlet 224
Write-Host cmdlet 220 – 221
Write-Information cmdlet 221, 224
Write-Output 222 – 223
Write-Progress cmdlet 224
Write-Verbose cmdlet 221, 224
Write-Warning cmdlet 224
WSMan (Web Services for Management) 158
X
XML (Extensible Markup Language) 74