Table of Contents

Learn PowerShell in a Month of Lunches Index

Return to Learn PowerShell in a Month of Lunches, PowerShell, In a Month of Lunches

Symbols

Symbols

int type 214, 301

$_ 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 debuging 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

debuging 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 debuging 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

debuging 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

PowerShell Programming Language, PowerShell Shell, PowerShell Script, PowerShell .ps1 File, PowerShell Pipeline, PowerShell PowerShell.exe Executable, PowerShell pwsh Executable, PowerShell Core, PowerShell ISE (Integrated Scripting Environment), PowerShell Module, PowerShell Cmdlet, PowerShell Get-Command Cmdlet, PowerShell Get-Help Cmdlet, PowerShell Get-Process Cmdlet, PowerShell Get-Service Cmdlet, PowerShell Get-Item Cmdlet, PowerShell Set-Item Cmdlet, PowerShell Remove-Item Cmdlet, PowerShell Get-Content Cmdlet, PowerShell Set-Content Cmdlet, PowerShell Add-Content Cmdlet, PowerShell Out-Host Cmdlet, PowerShell Out-File Cmdlet, PowerShell Out-Null Cmdlet, PowerShell Out-GridView Cmdlet, PowerShell Select-Object Cmdlet, PowerShell Where-Object Cmdlet, PowerShell ForEach-Object Cmdlet, PowerShell Sort-Object Cmdlet, PowerShell Measure-Object Cmdlet, PowerShell Group-Object Cmdlet, PowerShell Format-Table Cmdlet, PowerShell Format-List Cmdlet, PowerShell Format-Wide Cmdlet, PowerShell Format-Custom Cmdlet, PowerShell Compare-Object Cmdlet, PowerShell Tee-Object Cmdlet, PowerShell New-Item Cmdlet, PowerShell Copy-Item Cmdlet, PowerShell Move-Item Cmdlet, PowerShell Rename-Item Cmdlet, PowerShell Test-Path Cmdlet, PowerShell Join-Path Cmdlet, PowerShell Split-Path Cmdlet, PowerShell Resolve-Path Cmdlet, PowerShell Push-Location Cmdlet, PowerShell Pop-Location Cmdlet, PowerShell Set-Location Cmdlet, PowerShell Get-ChildItem Cmdlet, PowerShell Invoke-Item Cmdlet, PowerShell Clear-Host Cmdlet, PowerShell Clear-Content Cmdlet, PowerShell Get-Date Cmdlet, PowerShell Get-Variable Cmdlet, PowerShell Set-Variable Cmdlet, PowerShell New-Variable Cmdlet, PowerShell Remove-Variable Cmdlet, PowerShell New-Alias Cmdlet, PowerShell Get-Alias Cmdlet, PowerShell Set-Alias Cmdlet, PowerShell Import-Module Cmdlet, PowerShell Get-Module Cmdlet, PowerShell Remove-Module Cmdlet, PowerShell Export-ModuleMember Cmdlet, PowerShell Update-Help Cmdlet, PowerShell Save-Help Cmdlet, PowerShell Set-ExecutionPolicy Cmdlet, PowerShell Get-ExecutionPolicy Cmdlet, PowerShell Invoke-Command Cmdlet, PowerShell Enter-PSSession Cmdlet, PowerShell Exit-PSSession Cmdlet, PowerShell New-PSSession Cmdlet, PowerShell Remove-PSSession Cmdlet, PowerShell Import-PSSession Cmdlet, PowerShell Export-PSSession Cmdlet, PowerShell New-PSSessionOption Cmdlet, PowerShell Enable-PSRemoting Cmdlet, PowerShell Disable-PSRemoting Cmdlet, PowerShell Set-StrictMode Cmdlet, PowerShell Get-PSProvider Cmdlet, PowerShell Get-PSDrive Cmdlet, PowerShell New-PSDrive Cmdlet, PowerShell Remove-PSDrive Cmdlet, PowerShell Set-PSBreakpoint Cmdlet, PowerShell Remove-PSBreakpoint Cmdlet, PowerShell Get-PSBreakpoint Cmdlet, PowerShell Start-Job Cmdlet, PowerShell Get-Job Cmdlet, PowerShell Stop-Job Cmdlet, PowerShell Receive-Job Cmdlet, PowerShell Remove-Job Cmdlet, PowerShell Wait-Job Cmdlet, PowerShell Start-Process Cmdlet, PowerShell Stop-Process Cmdlet, PowerShell Wait-Process Cmdlet, PowerShell New-Object Cmdlet, PowerShell Select-String Cmdlet, PowerShell Invoke-Expression Cmdlet, PowerShell Write-Host Cmdlet, PowerShell Write-Output Cmdlet, PowerShell Write-Error Cmdlet, PowerShell Write-Warning Cmdlet, PowerShell Write-Verbose Cmdlet, PowerShell Write-Debug Cmdlet, PowerShell Write-Information Cmdlet, PowerShell Get-Credential Cmdlet, PowerShell ConvertTo-SecureString Cmdlet, PowerShell ConvertFrom-SecureString Cmdlet, PowerShell Read-Host Cmdlet, PowerShell Get-Random Cmdlet, PowerShell New-TemporaryFile Cmdlet, PowerShell Start-Transcript Cmdlet, PowerShell Stop-Transcript Cmdlet, PowerShell Show-Command Cmdlet, PowerShell Add-Type Cmdlet, PowerShell Invoke-RestMethod Cmdlet, PowerShell Invoke-WebRequest Cmdlet, PowerShell Out-String Cmdlet, PowerShell Out-Printer Cmdlet, PowerShell Out-Default Cmdlet, PowerShell Out-Clipboard Cmdlet, PowerShell Get-Clipboard Cmdlet, PowerShell Set-Clipboard Cmdlet, PowerShell Start-Sleep Cmdlet, PowerShell Start-BitsTransfer Cmdlet, PowerShell ConvertTo-Json Cmdlet, PowerShell ConvertFrom-Json Cmdlet, PowerShell ConvertTo-Xml Cmdlet, PowerShell ConvertFrom-StringData Cmdlet, PowerShell ConvertTo-CSV Cmdlet, PowerShell ConvertFrom-CSV Cmdlet, PowerShell Import-CSV Cmdlet, PowerShell Export-CSV Cmdlet, PowerShell Import-Clixml Cmdlet, PowerShell Export-Clixml Cmdlet, PowerShell ConvertFrom-Markdown Cmdlet, PowerShell Get-InstalledModule Cmdlet, PowerShell Install-Module Cmdlet, PowerShell Update-Module Cmdlet, PowerShell Uninstall-Module Cmdlet, PowerShell Find-Module Cmdlet, PowerShell Save-Module Cmdlet, PowerShell Test-ModuleManifest Cmdlet, PowerShell Publish-Module Cmdlet, PowerShell Register-PSRepository Cmdlet, PowerShell Unregister-PSRepository Cmdlet, PowerShell Set-PSRepository Cmdlet, PowerShell Get-PSRepository Cmdlet, PowerShell Install-Package Cmdlet, PowerShell Get-Package Cmdlet, PowerShell Uninstall-Package Cmdlet, PowerShell Save-Package Cmdlet, PowerShell Find-Package Cmdlet, PowerShell Register-PackageSource Cmdlet, PowerShell Unregister-PackageSource Cmdlet, PowerShell Set-PackageSource Cmdlet, PowerShell Get-PackageSource Cmdlet, PowerShell Trace-Command Cmdlet, PowerShell Set-PSDebug Cmdlet, PowerShell Register-ScheduledJob Cmdlet, PowerShell Unregister-ScheduledJob Cmdlet, PowerShell Get-ScheduledJob Cmdlet, PowerShell Disable-ScheduledJob Cmdlet, PowerShell Enable-ScheduledJob Cmdlet, PowerShell Set-ScheduledJob Cmdlet, PowerShell Start-Job -InitializationScript Parameter, PowerShell Foreach-Object -Parallel Feature, PowerShell New-PSRoleCapabilityFile Cmdlet, PowerShell Suspend-Job Cmdlet, PowerShell Resume-Job Cmdlet, PowerShell Start-ThreadJob Cmdlet, PowerShell Get-ThreadJob Cmdlet, PowerShell New-Guid Cmdlet, PowerShell Get-PSCallStack Cmdlet, PowerShell Add-History Cmdlet, PowerShell Get-History Cmdlet, PowerShell Invoke-History Cmdlet, PowerShell Clear-History Cmdlet, PowerShell Set-PSReadlineKeyHandler Cmdlet, PowerShell Get-PSReadlineKeyHandler Cmdlet, PowerShell Remove-PSReadlineKeyHandler Cmdlet, PowerShell Set-PSReadlineOption Cmdlet, PowerShell Get-PSReadlineOption Cmdlet, PowerShell Format-Hex Cmdlet, PowerShell ConvertFrom-String Cmdlet, PowerShell ConvertTo-Html Cmdlet, PowerShell Select-XML Cmdlet, PowerShell Test-Json Cmdlet, PowerShell Get-TypeData Cmdlet, PowerShell Update-TypeData Cmdlet, PowerShell Remove-TypeData Cmdlet, PowerShell Register-ObjectEvent Cmdlet, PowerShell Register-WmiEvent Cmdlet, PowerShell Register-EngineEvent Cmdlet, PowerShell Unregister-Event Cmdlet, PowerShell Get-EventSubscriber Cmdlet, PowerShell Remove-Event Cmdlet, PowerShell Get-Event Cmdlet, PowerShell Wait-Event Cmdlet, PowerShell New-Event Cmdlet, PowerShell Send-MailMessage Cmdlet, PowerShell Test-Connection Cmdlet, PowerShell Get-WmiObject Cmdlet, PowerShell Get-CimInstance Cmdlet, PowerShell New-CimInstance Cmdlet, PowerShell Remove-CimInstance Cmdlet, PowerShell Set-CimInstance Cmdlet, PowerShell Invoke-CimMethod Cmdlet, PowerShell Import-Counter Cmdlet, PowerShell Export-Counter Cmdlet, PowerShell Get-Counter Cmdlet, PowerShell Add-Computer Cmdlet, PowerShell Rename-Computer Cmdlet, PowerShell Restart-Computer Cmdlet, PowerShell Stop-Computer Cmdlet, PowerShell Test-ComputerSecureChannel Cmdlet, PowerShell Reset-ComputerMachinePassword Cmdlet,

PowerShell: Effective PowerShell, PowerShell Standard Library, PowerShell Fundamentals - PowerShell Basic Commands, PowerShell Inventor - PowerShell Language Designer: Jeffrey Snover, Bruce Payette, James Truher (et al.) of Microsoft on November 14, 2006; PowerShell DevOps - PowerShell SRE, PowerShell in the Cloud (Azure PowerShell - AWS PowerShell - GCP PowerShell - VMware PowerShell), PowerShell Core, Windows PowerShell, Windows Server PowerShell, Linux PowerShell (PowerShell on Ubuntu, PowerShell on Debian, PowerShell on RHEL, PowerShell on Fedora - brew install powershell), macOS PowerShell - brew install powershell, Cloud Native PowerShell - PowerShell on Kubernetes - PowerShell on AWS - PowerShell on Azure - PowerShell on GCP), PowerShell Microservices, PowerShell Containerization (PowerShell Docker - PowerShell on Docker Hub), Serverless PowerShell, PowerShell Data Science - PowerShell DataOps - PowerShell and Databases (PowerShell ORM), PowerShell ML - PowerShell DL, Functional PowerShell (1. PowerShell Immutability, 2. PowerShell Purity - PowerShell No Side-Effects, 3. PowerShell First-Class Functions - PowerShell Higher-Order Functions, PowerShell Lambdas - PowerShell Anonymous Functions - PowerShell Closures, PowerShell Lazy Evaluation, 4. PowerShell Recursion), Reactive PowerShell), PowerShell Concurrency - PowerShell Parallel Programming - Async PowerShell, PowerShell Networking, PowerShell Security - PowerShell DevSecOps - PowerShell OAuth, PowerShell Memory Allocation (PowerShell Heap - PowerShell Stack - PowerShell Garbage Collection), PowerShell CI/CD - PowerShell Dependency Management - PowerShell DI - PowerShell IoC - PowerShell Build Pipeline, PowerShell Automation - PowerShell Scripting, PowerShell Package Managers, PowerShell Modules - PowerShell Packages, PowerShell Installation (PowerShell Windows - Chocolatey PowerShell (choco search powershell, choco install powershell-core), PowerShell macOS - Homebrew PowerShell, PowerShell on Linux), PowerShell Configuration, PowerShell Observability (PowerShell Monitoring, PowerShell Performance - PowerShell Logging), PowerShell Language Spec - PowerShell RFCs - PowerShell Roadmap, PowerShell Keywords, PowerShell Data Structures - PowerShell Algorithms, PowerShell Syntax, PowerShell OOP (1. PowerShell Encapsulation - 2. PowerShell Inheritance - 3. PowerShell Polymorphism - 4. PowerShell Abstraction), PowerShell Design Patterns - PowerShell Best Practices - PowerShell Style Guide - Clean PowerShell - PowerShell BDD, PowerShell Generics, PowerShell I/O, PowerShell Serialization - PowerShell Deserialization, PowerShell APIs, PowerShell REST - PowerShell JSON - PowerShell GraphQL, PowerShell gRPC, PowerShell Virtualization, PowerShell Development Tools: PowerShell SDK, PowerShell Compiler - PowerShell Transpiler, PowerShell Interpreter - PowerShell REPL, PowerShell IDEs (JetBrains PowerShell, PowerShell Visual Studio Code), PowerShell Linter, PowerShell Community - PowerShellaceans - PowerShell User, PowerShell Standard Library - PowerShell Libraries - PowerShell Frameworks, PowerShell Testing - PowerShell TDD, PowerShell History, PowerShell Versions, PowerShell Research, PowerShell Topics, PowerShell Uses - List of PowerShell Software - Written in PowerShell - PowerShell Popularity, PowerShell Bibliography - Manning PowerShell Series - PowerShell Courses, PowerShell Glossary - PowerShell Official Glossary, PowerShell GitHub, Awesome PowerShell, PowerShell Versions. (navbar_powershell)


Cloud Monk is Retired ( for now). Buddha with you. © 2025 and Beginningless Time - Present Moment - Three Times: The Buddhas or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.