What you will learn in Learn PowerShell in a Month of Lunches: Fourth Edition, Covers Windows, Linux, and macOS
Covers Windows, Linux, and macOS
Chapter by chapter
Chapter 1: Before you begin
This introduction frames PowerShell as a command-line shell that beginners can start using without learning to script first.
What you learn in chapter 1 →Chapter 2: Meet PowerShell
Defines the terms needed to distinguish PowerShell versions and understand the difference between a shell and a terminal.
What you learn in chapter 2 →Chapter 3: Using the help system
Introduces PowerShell’s help system as a discoverability feature that makes its commands easier to learn.
What you learn in chapter 3 →Chapter 4: Running commands
The introduction positions running commands as the beginner’s starting point for PowerShell, despite the advanced scripting examples often found online.
What you learn in chapter 4 →Chapter 5: Working with providers
Introduces providers as PowerShell’s way to present specialized data stores as drives for easier viewing and management.
What you learn in chapter 5 →Chapter 6: The pipeline: Connecting commands
The introduction contrasts ordinary command execution with PowerShell’s ability to connect commands in one-line sequences.
What you learn in chapter 6 →Chapter 7: Adding commands
Introduces PowerShell’s extensibility through its growing set of commands for Azure products.
What you learn in chapter 7 →Chapter 8: Objects: Data by another name
The introduction emphasizes that objects are central to PowerShell and directs readers to a starting section based on their programming experience.
What you learn in chapter 8 →Chapter 9: A practical interlude
Introduces a real-world exercise that applies earlier PowerShell knowledge and models how to work out a solution independently.
What you learn in chapter 9 →Chapter 10: The pipeline, deeper
This introduction illustrates how a PowerShell pipeline can accomplish a multi-step task in one line and previews a deeper look at passing data between commands.
What you learn in chapter 10 →Chapter 11: Formatting: And why it’s done on the right
This introduction recaps how object properties and PowerShell’s defaults affect the output readers have seen so far.
What you learn in chapter 11 →Chapter 12: Filtering and comparisons
The chapter introduces filtering as a way to narrow broad shell output to the items you want.
What you learn in chapter 12 →Chapter 13: Remote control: One-to-one and one-to-many
Introduces PowerShell remoting as a shell-wide way to run commands on other computers without requiring every cmdlet to provide its own remote-connection parameter.
What you learn in chapter 13 →Chapter 14: Multitasking with background jobs
Introduces PowerShell’s ability to do more than one thing at a time, especially for long-running work involving multiple computers.
What you learn in chapter 14 →Chapter 15: Working with many objects, one at a time
This introduction frames PowerShell administration as work that often needs to be repeated across multiple targets.
What you learn in chapter 15 →Chapter 16: Variables: A place to store your stuff
Introduces variables as a way to keep PowerShell objects for later use, including outside long scripts.
What you learn in chapter 16 →Chapter 17: Input and output
The introduction explains why scripts may need user input and more control over displayed output, while limiting these techniques to scripts that interact with people.
What you learn in chapter 17 →Chapter 18: Sessions: Remote control with less work
The introduction explains why repeatedly opening remote connections is tedious and motivates reusable PowerShell sessions.
What you learn in chapter 18 →Chapter 19: You call this scripting?
The introduction contrasts what administrators can accomplish at the PowerShell command line with the reason to start using simple scripts: avoiding repeated typing.
What you learn in chapter 19 →Chapter 20: Improving your parameterized script
The introduction explains that parameters let people run a script without changing its contents.
What you learn in chapter 20 →Chapter 21: Using regular expressions to parse text files
The introduction positions regular expressions as an occasional PowerShell tool for parsing text files, such as logs.
What you learn in chapter 21 →Chapter 22: Using someone else’s script
This introduction explains why understanding and reusing other people’s PowerShell scripts matters, even when those scripts are imperfect or contain unfamiliar features.
What you learn in chapter 22 →Chapter 23: Adding logic and loops
Introduces looping as a way to process objects one at a time or execute a block of code repeatedly in PowerShell.
What you learn in chapter 23 →Chapter 24: Handling errors
The chapter introduces two ways to retain PowerShell errors for later handling: the automatic $Error variable and the ErrorVariable common parameter.
What you learn in chapter 24 →Chapter 25: Debugging techniques
The introduction distinguishes bugs from anticipated errors and frames debugging as finding mistakes in scripts.
What you learn in chapter 25 →Chapter 26: Tips, tricks, and techniques
This section explains how PowerShell profile scripts customize shell startup and how their location, host, and execution policy affect when they run.
What you learn in chapter 26 →Chapter 27: Never the end
The chapter introduction encourages readers to continue exploring PowerShell and previews guidance for doing so.
What you learn in chapter 27 →Concepts explained in this book
- PowerShellPowerShell 3 is the third major version of the PowerShell command-line shell.
- bindingA variable is a named storage location that holds a value or collection of values and can be assigned a new value.
- Select-ObjectSelect-Object is a PowerShell cmdlet that selects specified properties or creates customized objects from input objects.
- Get-HelpHelp is a PowerShell command that displays help content for commands and other PowerShell elements.
- PowerShell help systemA help system is an integrated facility that provides software documentation and assistance for discovering and understanding available commands and features.
- regular expressionA regular expression is a pattern notation for matching and processing text according to specified character sequences.
- commandA command is an executable instruction that a shell can invoke to perform an operation.
- stringA string, represented by the .NET System.String type, is a sequence of characters representing text data.
- Where-ObjectWhere-Object is a PowerShell cmdlet that filters objects in the pipeline according to specified criteria.
- cmdletA cmdlet is a specialized PowerShell command that performs a focused operation and is typically implemented as a .NET class.
- methodA method is a callable operation associated with an object that can direct the object to perform an action.
- formattingThe formatting system is PowerShell's subsystem for converting objects into instructions for human-readable textual or onscreen output.
- positional parameterA positional parameter is a command or script parameter whose value can be supplied by its position without naming the parameter explicitly.
- Invoke-CommandInvoke-Command is a PowerShell cmdlet that runs commands or script blocks on local or remote computers.
- pipeline parameter binding bypropertynamePipeline parameter binding byPropertyName is PowerShell's mechanism for binding a pipeline input object's property value to a command parameter with a matching name.
- background processingA job is a PowerShell-managed background operation that can run asynchronously and be monitored or controlled separately from the interactive pipeline.
- remotingRemoting is the execution of commands or management operations on a computer or service over a network connection.
- Get-MemberGet-Member is a PowerShell cmdlet that displays the members, including properties and methods, of input objects.
- script blockA script block is a PowerShell language construct that groups executable statements inside braces for invocation or deferred execution.
- providerThe FileSystem provider is a PowerShell provider that exposes the local file system through PowerShell drives and item cmdlets.
- parameter bindingPipeline parameter binding byValue is PowerShell's mechanism for binding a pipeline input object to a command parameter based on the input object's type.
- remoting sessionA session object is a PowerShell object that represents an established remoting session and its connection information.
- aliasA parameter alias is an alternate name accepted by a command for one of its parameters.
- exceptionAn exception is a runtime condition representing an abnormal operation that can interrupt execution and be handled by an exception handler.
- integerAn integer is a whole number with no fractional or decimal portion.
- character classA character class is a regular-expression construct that matches a character selected from, or excluded by, a specified set or range.
- non-word characterA nonword character is a regular-expression character that is not a letter, digit, or underscore, including whitespace and punctuation.
- word characterA word character is a character included in the regular-expression word-character class, typically a letter, digit, or underscore.
- Visual Studio CodeVisual Studio Code is a cross-platform source-code editor with an extensible extension system.
- comparisonA comparison is an expression that evaluates a relationship between values and produces a Boolean result.
- data conversionCasting is the operation of treating a value as a specified type, optionally converting it to an object of that type.
- Enter-PSSessionEnter-PSSession is a PowerShell cmdlet that creates an interactive session with a local or remote computer.
- Get-CommandGet-Command is a PowerShell cmdlet that retrieves commands matching specified names, verbs, nouns, or command types.
- default display property setA default display property set is a declared collection of object properties selected for default presentation.
- format fileA format file is a PowerShell XML configuration file that defines how specific object types are displayed.
- viewA predefined view is a stored set of formatting rules targeted at a particular object type.
- subexpressionA subexpression is an expression nested within a larger expression and evaluated as one operand or component.
- wildcardA wildcard is a pattern-matching character or expression that represents one or more possible characters in a name or search.
- custom objectPSCustomObject is a PowerShell wrapper object type that exposes a selected set of properties.
- PowerShell hostA PowerShell host is an interface environment or application that receives PowerShell output and provides interaction with a PowerShell session.
- command-line interfaceA command-line shell is an interactive text-based interface that interprets and runs commands.
- moduleA module is a packaged unit of reusable code and related resources that can be loaded into a software environment.
- Get-PSSessionGet-PSSession is a PowerShell cmdlet that retrieves remoting sessions managed by the current PowerShell session.
- atomic typeA data type defines the kind of value represented and the operations applicable to that value.
- Out-FileOut-File is a PowerShell cmdlet that writes command output to a file.
- PowerShell extensionThe PowerShell extension is a Visual Studio Code extension that adds PowerShell editing and development support.
- Format-TableFormat-Table is a PowerShell cmdlet that displays objects in a tabular format using selected properties or calculated expressions.
- Get-ItemGet-Item is a PowerShell cmdlet that retrieves an item such as a file, directory, or registry key.
- try-catch statementTry/catch is an error-handling language construct that attempts operations and handles exceptions raised during execution.
- PowerShell profileA PowerShell profile is a user-specific script that runs when a PowerShell session starts and can configure the session environment.
- Sort-ObjectSort-Object is a PowerShell cmdlet that orders input objects according to specified property values.
- -Syntax-Syntax is a Get-Command parameter that displays the syntax of a command.
- external commandAn external command is an executable program invoked from PowerShell rather than a PowerShell cmdlet or function.
- filteringFiltering is the technique of selecting values or objects that satisfy specified criteria and excluding the rest.
- format-listFormat-List is a PowerShell cmdlet that displays selected properties and their values for objects in a list-oriented layout.
- help topicAn about topic is a PowerShell help document that explains background concepts, features, or capabilities rather than a specific cmdlet.
- quotation marksA double quotation mark delimits a PowerShell expandable string in which variable references can be replaced by their values.
- driveA PSDrive is a PowerShell drive abstraction that provides access to a filesystem or another provider-backed data store.
- scopeScope is the region of a script or session in which a variable or other name is accessible.
- Windows Management InstrumentationWMI is Windows Management Instrumentation, a Windows management technology for querying and administering system resources.
- object typeAn object type is the runtime classification that determines an object's available structure and behavior.
- verb-noun naming formatVerb-noun naming is a command and script naming convention that combines an action verb with a descriptive noun.
- Write-HostWrite-Host is a PowerShell cmdlet that writes text to the host application's screen and to the information stream.
- parsingText parsing is the process of analyzing textual content to identify, extract, or transform structured information.
- assignmentAn assignment operator is a language operator that assigns a value to a variable.
- filter leftFilter left is a result-narrowing technique in which the retrieving cmdlet is instructed to return only matching objects.
- deserializationDeserialization is the conversion of a stored or transmitted representation back into an in-memory object or data structure.
- serializationSerialization is the conversion of an in-memory object or data structure into a representation suitable for storage or transmission.
- -ErrorAction-ea is a PowerShell parameter alias for -ErrorAction.
- Import-ModuleImport-Module is a PowerShell cmdlet that loads a module into the current session from a module name or path.
- information streamThe information stream is a PowerShell output channel for informational messages that can be recorded or consumed separately from ordinary pipeline output.
- Export-CSVExport-CSV is a PowerShell cmdlet that converts objects to comma-separated values and writes them to a file.
- column headerA column header is the displayed label identifying a column in tabular output, which may differ from the underlying property name.
- param blockA param block is a PowerShell language construct that declares the parameters and default values of a script or function.
- child jobA child job is an individual background job associated with a parent job, such as one created for a separate target or execution unit.
- f8 debuggingF8 debugging is an interactive debugging technique that executes a script one line or selected snippet at a time while preserving the console state.
- full helpFull help is the detailed help view for a PowerShell command, including comprehensive parameter descriptions and metadata.
- Write-VerboseWrite-Verbose is a PowerShell cmdlet that writes diagnostic or progress messages to the verbose stream.
- arrayAn array is an ordered collection of values that can be accessed as a single sequence.
- switch parameterA switch parameter is a Boolean-style command parameter whose presence enables an option without requiring an input value.
- Update-HelpUpdate-Help is a PowerShell cmdlet that downloads and installs updated help files for available commands.
- WinRMWinRM is Microsoft's Windows Remote Management service and protocol for transporting administrative communications between computers and applications.
- collectionA collection is a container that groups multiple values as a single data object.
- Run SelectionRun Selection is a Visual Studio Code editor action that executes selected PowerShell code, or the current line when no code is selected.
- Exit-PSSessionExit-PSSession is a PowerShell cmdlet that ends the current interactive PowerShell session and returns to the originating shell.
- Export-ClixmlExport-Clixml is a PowerShell cmdlet that converts objects to PowerShell XML representation and saves the result to a file.
- -parallel-Parallel is a ForEach-Object parameter that runs the supplied script block concurrently for multiple input objects.
- type nameA typename is the unique name identifying an object's type.
- whitespace characterWhitespace is nonprinting spacing such as spaces, tabs, or carriage returns that separates elements in source text.
- ErrorVariableErrorVariable is a PowerShell common parameter that directs command errors to a named variable for later access.
- Common Information ModelCIM, the Common Information Model, is a standard information model for representing managed computing resources and their relationships.
- Invoke-CimMethodInvoke-CimMethod is a PowerShell cmdlet that invokes a method on one or more CIM objects.
- Win32_NetworkAdapterConfigurationWin32_NetworkAdapterConfiguration is a Windows CIM class representing the configuration of a network adapter.
- implicit remotingImplicit remoting is a PowerShell technique that exposes commands from a remote session as local proxy commands while executing them on the remote computer.
- one-to-one remotingOne-to-one remoting is an interactive remoting mode that provides a shell session on a single remote computer.
- remote chainingRemote chaining is the practice of initiating a second remote connection from within an existing remote session.
- Enable-PSRemotingEnable-PSRemoting is a PowerShell cmdlet that configures a computer to receive PowerShell remoting connections.
- Install-ModuleInstall-Module is a PowerShell cmdlet that downloads and installs PowerShell modules from a package repository.
- PowerShell GalleryPowerShell Gallery is an online repository for discovering and distributing PowerShell modules, scripts, and related packages.
- end anchorAn end-of-string anchor is a regular-expression assertion that requires a match to occur at the end of the input string.
- MatchInfoA MatchInfo object is a PowerShell object representing a text match found by Select-String, including information such as the path, line number, and matching line.
- Select-StringSelect-String is a PowerShell cmdlet that searches text for matches to specified strings or regular expressions.
- Get-ModuleGet-Module is a PowerShell cmdlet that lists or retrieves information about modules available in or loaded into a session.
- help fileA cmdlet help file is a documentation file that describes a PowerShell cmdlet, including its syntax, parameters, and behavior.
- -expandproperty-ExpandProperty is a Select-Object parameter that outputs the values of a specified property instead of objects containing that property.
- escape characterA backslash is the regular-expression character used to escape characters with special meaning or represent a literal backslash.
- literal matchA literal match is a regular-expression match that requires a specified sequence of characters without pattern variation.
- nonwhitespace characterA nonwhitespace character is a regular-expression character that is not whitespace.
- regular-expression anchorAn anchor is a regular-expression construct that constrains a match to a position such as the beginning or end of a string.
- -scriptblock-ScriptBlock is an Invoke-Command parameter that specifies executable PowerShell statements to run remotely.
- PowerShell execution policyAn execution policy is a machine-wide PowerShell setting that controls whether and under what conditions scripts can run.
- -ExecutionPolicy-ExecutionPolicy is a PowerShell startup parameter that specifies an execution policy for the launched session.
- Set-ExecutionPolicySet-ExecutionPolicy is a PowerShell command that changes the execution policy.
- invocation operatorThe invocation operator is the PowerShell ampersand operator that executes a command whose name or path is supplied as an expression.
- default valueA default parameter value is an input automatically supplied to a command parameter when the caller does not provide one.
- batch cmdletA batch cmdlet is a PowerShell cmdlet technique for applying an operation to multiple targets in a single command invocation.
- expressionAn expression is a PowerShell construct that evaluates to a value.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
