PowerShellBlog - Glossary
0-9
#
The hash symbol is used to create comments in PowerShell scripts. Any text following the # on the same line is ignored by PowerShell.
$
The dollar sign is used to declare variables in PowerShell. For example, $variableName is how you create a variable.
$?
A special variable that contains the execution status of the last operation. It returns True if the last operation succeeded and False if it failed.
$Error
An automatic variable that holds an array of error objects that represent the most recent errors. The most recent error is the first error object in the array.
$Home
A built-in variable that contains the full path of the user’s home directory.
$PID
A built-in variable that contains the process identifier (PID) of the process that is running the current PowerShell session.
$PSVersionTable
A built-in variable that contains a read-only hash table that displays details about the version of PowerShell that is currently running.
$_
Represents the current object in the pipeline. Often used in script blocks to refer to the item currently being processed.
$args
An automatic variable that contains an array of the undeclared parameters or arguments that are passed to a function, script, or script block.
$null
Represents a null value in PowerShell. It is used to indicate the absence of a value or data.
()
Parentheses are used to control the order of operations and to enclose expressions, method calls, or sub-expressions.
. (Dot sourcing)
The dot operator can be used to run a script in the current scope rather than a new scope. This allows the functions and variables in the script to be available in the calling scope. For example, . ./script.ps1 will run script.ps1 in the current scope.
..
The range operator, as mentioned earlier, is used to create an array of numbers within a specified range. For example, 1..5 will produce the array 1, 2, 3, 4, 5.
0..9
Represents a range of integers from 0 to 9. In PowerShell, the range operator .. can create an array of numbers. For example, 0..9 will produce an array containing the numbers 0 through 9.
[]
Square brackets are used to denote array indices, type accelerators, and to declare strongly-typed variables or parameters. For example, [int]$i declares a variable $i as an integer.
{}
Curly braces are used to define script blocks in PowerShell. Script blocks are used in functions, loops, and other control structures.
A
AWS Tools for PowerShell
A set of PowerShell cmdlets provided by Amazon Web Services (AWS) to manage AWS services. It allows you to interact with AWS APIs from the PowerShell command line.
Advanced Function
A function in PowerShell that uses the CmdletBinding attribute and can include advanced features like parameter validation and support for common parameters.
Alias
A shorthand or alternate name for a cmdlet or command. For example, ls is an alias for Get-ChildItem.
Argument
A value that is passed to a function, script, or cmdlet. Arguments provide input data or parameters required for execution.
Argument Completer
A feature in PowerShell that provides dynamic tab completion for cmdlet parameters. It can be defined using the Register-ArgumentCompleter cmdlet.
Arithmetic Operators
Operators used for mathematical operations, such as + (addition), - (subtraction), * (multiplication), / (division), and % (modulus).
Array
A data structure used to store a collection of elements. Arrays in PowerShell can hold multiple values of different types. For example, $array = @(1, 2, 3).
ArrayList
A collection type that allows dynamic resizing and provides methods to manipulate the elements. It is part of the .NET Framework and can be used in PowerShell.
AsJob
A parameter that can be used with certain cmdlets to run the command as a background job. For example, Get-Process -AsJob.
Assert-Statement
A cmdlet used to verify that a condition is true. If the condition is false, it throws an error. Commonly used in testing scripts. For example, Assert-Statement -Condition ($a -eq $b).
Assignment Operator (=)
The equals sign = is used to assign values to variables. For example, $a = 5.
Asterisk (*)
A wildcard character used in PowerShell to represent zero or more characters. It is commonly used in pattern matching and file globbing. For example, Get-ChildItem *.txt lists all .txt files in a directory.
Authentication
The process of verifying the identity of a user or process. PowerShell supports various authentication methods for connecting to remote systems or services.
Authentication Mechanism
Specifies the method used to authenticate a user, such as Basic, Negotiate, Credential, etc. Used in cmdlets like Invoke-Command and New-PSSession.
Authorization
The process of determining whether an authenticated user or process has permission to perform an action or access a resource.
Automatic Variables
Predefined variables in PowerShell that store state information for PowerShell. Examples include $PSVersionTable, $Error, and $null.
B
BOM (Byte Order Mark)
A Unicode character used to signify the endianness (byte order) of a text file or stream. In PowerShell, you can specify the encoding with a BOM when working with text files.
Base64
A method for encoding binary data as ASCII text. PowerShell includes cmdlets like [Convert]::ToBase64String() and [Convert]::FromBase64String() for encoding and decoding data.
Bash
A Unix shell and command language, often compared to PowerShell. PowerShell is cross-platform and can be used alongside Bash, especially in environments like Windows Subsystem for Linux (WSL).
Begin Block
A section of an advanced function where you can place code that should run once before any objects are processed in the pipeline. It is defined using the begin {} syntax.
Begin, Process, End Blocks
These blocks define the three main stages of an advanced function’s execution in PowerShell. Begin runs once before processing, Process runs once for each object in the pipeline, and End runs once after all objects have been processed.
Binary Module
A PowerShell module that is implemented as a .NET assembly (DLL). Binary modules can be created using C# or other .NET languages and loaded into PowerShell using Import-Module.
Bitwise Operators
Operators used to perform bit-level operations on integer values, such as -band (bitwise AND), -bor (bitwise OR), -bxor (bitwise XOR), -bnot (bitwise NOT), -shl (shift left), and -shr (shift right).
Block
A group of statements enclosed in curly braces {} that are treated as a single unit. Common blocks include begin, process, end, and script blocks.
Boolean
A data type that represents two values: True or False. Used in conditional statements and logical operations.
Booleans
Used in PowerShell to represent True or False values. For example, $true and $false.
Break
A statement used to exit a loop or switch statement prematurely. For example, within a foreach loop, break will stop the loop from continuing to the next iteration.
Built-in Cmdlets
Cmdlets that are included with PowerShell by default, such as Get-Help, Get-Command, Get-Process, and Set-Location. These cmdlets provide core functionality for the PowerShell environment.
ByPropertyName
A parameter binding method in PowerShell that binds cmdlet parameters to properties of input objects by matching their names. Used in advanced functions to simplify parameter passing.
C
CIM (Common Information Model)
A standard for representing systems, applications, networks, devices, and other managed components. PowerShell provides CIM cmdlets, such as Get-CimInstance, to interact with CIM-compliant systems.
CSV (Comma-Separated Values)
A common file format used to store tabular data. PowerShell provides cmdlets like Import-Csv and Export-Csv to work with CSV files.
Catch Block
Used in error handling to catch exceptions. It is part of a try, catch, finally construct. Code in the catch block executes when an error occurs in the try block.
Certificate
A digital certificate used to verify the identity of a user, device, or server. PowerShell provides cmdlets like Get-ChildItem Cert:\ to interact with certificates.
CimCmdlets
A module in PowerShell that provides cmdlets for working with Common Information Model (CIM) classes on local and remote computers. Examples include Get-CimInstance, New-CimSession, and Invoke-CimMethod.
Class
A blueprint for creating objects that contain properties and methods. In PowerShell, you can define classes using the class keyword.
Clear-Host
A cmdlet that clears the console screen. Equivalent to the cls or clear command in other shells.
Cmdlet
Pronounced “command-let,” a cmdlet is a lightweight command used in the PowerShell environment. Cmdlets follow the verb-noun naming convention, such as Get-Process or Set-Item.
Command
Any instruction given to PowerShell to execute, including cmdlets, functions, scripts, and native commands.
Command Pipeline
A sequence of commands connected by pipeline operators (|). The output of one command serves as the input to the next. For example, Get-Process | Where-Object { $_.CPU -gt 100 }.
Comment-Based Help
A way to provide help documentation within scripts and functions using special comments. For example, using .SYNOPSIS, .DESCRIPTION, .PARAMETER, etc.
Comments
Text in a script that is not executed, used to explain code. Single-line comments start with #, and multi-line comments are enclosed in <# and #>.
Concatenate
The process of combining strings or arrays. In PowerShell, you can concatenate strings using the + operator or -join cmdlet.
Conditional Statements
Statements that perform different actions based on conditions. Common conditional statements include if, elseif, else, and switch.
Configuration
In the context of Desired State Configuration (DSC), a configuration is a declarative PowerShell script that defines the desired state of a system’s configuration.
Contains Operator
An operator that checks if a collection contains a specific value. For example, 5 -in (1, 2, 3, 4, 5) returns True.
Credential
An object that contains user name and password information. PowerShell provides cmdlets like Get-Credential to prompt for and create credential objects.
Credentials
A way to store and handle user names and passwords securely. Cmdlets like Get-Credential can prompt users for their credentials and create a credential object.
CultureInfo
A .NET class used in PowerShell to represent information about a specific culture, such as date formats, number formats, and currency symbols. You can get the current culture using [System.Globalization.CultureInfo]::CurrentCulture.
Custom Object
An object created by the user to hold data. You can create custom objects using [PSCustomObject] or New-Object cmdlets.
D
DSC (Desired State Configuration)
A management platform in PowerShell that enables the deployment and management of configuration data for software services and the environment on which these services run.
Data Section
A section in a PowerShell script where you can define data. The data section is marked by the data {} keyword. It is used to separate configuration data from script logic.
DateTime
A .NET class used in PowerShell to represent dates and times. You can create DateTime objects using [DateTime]::Now or [DateTime]::UtcNow.
Debugging
The process of finding and resolving errors or bugs in scripts. PowerShell provides cmdlets like Set-PSBreakpoint, Get-PSBreakpoint, Remove-PSBreakpoint, and the debug keyword for debugging purposes.
Default Parameter Values
PowerShell allows you to set default values for cmdlet parameters using the $PSDefaultParameterValues automatic variable.
Delimiter
A character or string used to separate items in a text string. For example, a comma , is commonly used as a delimiter in CSV files.
Diff
Short for “difference,” often used in the context of comparing objects or files. The Compare-Object cmdlet is commonly used to find differences between two sets of objects.
Diffie-Hellman
A method of securely exchanging cryptographic keys over a public channel. PowerShell supports various cryptographic protocols, including those using Diffie-Hellman key exchange.
Digest Authentication
A type of HTTP authentication that uses MD5 hashing to ensure that user credentials are not sent in plain text. PowerShell supports digest authentication for web requests and remoting sessions.
Directory
A file system structure used to organize files. PowerShell cmdlets like Get-ChildItem, New-Item, Remove-Item, and Set-Location are commonly used to work with directories.
Disk Management
PowerShell cmdlets like Get-Disk, Get-Partition, New-Partition, and Format-Volume are used to manage disk storage on Windows systems.
DisplayHint
A property that specifies how a date and time value should be displayed. It can be set to values like Date, Time, or DateTime.
Dispose Method
A method that is used to release unmanaged resources. In PowerShell, objects that implement the IDisposable interface should have their Dispose method called to free resources explicitly.
Distribution Group
In the context of Exchange and Office 365, a distribution group is a collection of email recipients. PowerShell cmdlets like New-DistributionGroup, Get-DistributionGroup, and Add-DistributionGroupMember are used to manage these groups.
Dot Sourcing
A method of running a script in the current scope so that functions and variables defined in the script are available in the caller’s scope. For example, . .\script.ps1.
Drive
A logical container for data within the PowerShell environment. Drives are created using providers (such as the file system, registry, or certificate store). Cmdlets like Get-PSDrive and New-PSDrive manage these drives.
Dynamic Module
A PowerShell module that is created at runtime. Dynamic modules can be used to load cmdlets and functions on the fly.
Dynamic Parameters
Parameters that are added to a cmdlet or function at runtime based on conditions or the state of the system. You can define dynamic parameters using the DynamicParam keyword.
E
Eager Loading
A concept where data is loaded as soon as it is accessed. In PowerShell, this can refer to how certain cmdlets retrieve all data immediately rather than on demand.
Elevated Privileges
Running PowerShell with administrative rights. This is required for certain tasks like modifying system settings or accessing restricted resources.
Enum
A data type consisting of a set of named values called elements or members. Enums are used to create a collection of related constants in PowerShell.
Environment Variable
A variable that is available system-wide and can be accessed in PowerShell using the env: drive. For example, $env:PATH retrieves the system’s PATH variable.
Error Handling
The process of managing errors in scripts. PowerShell uses try, catch, finally, and throw statements for error handling.
Error View
A setting that controls how error messages are displayed in PowerShell. The default view is NormalView, but it can be set to CategoryView or other custom views.
ErrorAction Parameter
A common parameter that specifies how PowerShell responds to non-terminating errors. Values include Continue, Stop, SilentlyContinue, Inquire, and Ignore.
ErrorActionPreference
A built-in variable that determines how PowerShell responds to errors. The default value is Continue, but it can be changed to other values like Stop or SilentlyContinue.
ErrorRecord
An object that represents an error. It contains detailed information about the error, such as the error message, the object that caused the error, and the location in the script where the error occurred.
ErrorVariable Parameter
A common parameter that specifies the name of the variable in which to store error information. For example, Get-Process -ErrorVariable myError.
Event
An action or occurrence recognized by software, often resulting in a response from the software. PowerShell can subscribe to, handle, and generate events using cmdlets like Register-ObjectEvent.
Event Log
A system log used to record significant events on a computer. PowerShell provides cmdlets like Get-EventLog, New-EventLog, and Write-EventLog to interact with event logs.
Event Log
A system log used to record significant events on a computer. PowerShell provides cmdlets like Get-EventLog, New-EventLog, and Write-EventLog to interact with event logs.
Event Subscription
The process of subscribing to events generated by .NET objects, WMI objects, or PowerShell runspaces. This is done using Register-ObjectEvent and related cmdlets.
Execution Context
The environment in which a script or command runs, including variables, functions, aliases, and modules that are available.
Execution Policy
A setting that determines which scripts can be run on a system. Common policies include Restricted, RemoteSigned, Unrestricted, AllSigned, and Bypass. You can change the execution policy using Set-ExecutionPolicy.
Explicit Remoting
A method of using PowerShell remoting where sessions are explicitly created and managed using cmdlets like New-PSSession, Enter-PSSession, and Invoke-Command.
External Script
A PowerShell script that is stored in a separate file with a .ps1 extension and can be executed from the PowerShell command line or within other scripts.
F
File Encoding
The character encoding used when reading from or writing to files. PowerShell cmdlets like Out-File and Set-Content support specifying the file encoding.
FileSystem Provider
A PowerShell provider that enables access to the file system, allowing cmdlets like Get-ChildItem, Set-Location, and New-Item to interact with files and directories.
Filter
Similar to a function, but designed specifically for processing objects in the pipeline. Defined using the filter keyword.
Filter Definition
The syntax used to define a filter in PowerShell, which is a special kind of function designed for pipeline processing.
Filter Parameter
A parameter used with cmdlets like Get-ChildItem to filter items based on criteria.
ForEach Loop
A control flow statement that iterates over each item in a collection.
Force Parameter
A common parameter used with many cmdlets to override restrictions or perform actions that are otherwise disallowed.
Foreach Method
A method available on collections in PowerShell to iterate over items.
ForegroundColor
A property used to set the text color in the PowerShell console.
Format.ps1xml File
An XML file used to define custom views for formatting the output of PowerShell objects.
Forwarding
The process of sending the output of one command as the input to another command in the pipeline.
FullName Property
A property of file system objects that returns the fully qualified path of the object.
Fully Qualified Name (FQN)
The complete name of a cmdlet, including the module name. Used to avoid conflicts between cmdlets with the same name from different modules.
Function
A named block of code that performs a specific task. Functions can accept parameters, return values, and be reused throughout scripts. Defined using the function keyword.
Function Definition
The syntax used to define a function in PowerShell.
G
GAC (Global Assembly Cache)
A machine-wide code cache for the .NET framework. Assemblies stored in the GAC are shared among multiple applications.
GPO (Group Policy Object)
An object that contains Group Policy settings, used to define configurations for users and computers within an Active Directory environment.
GUID (Globally Unique Identifier)
A 128-bit integer used to uniquely identify information in computer systems. PowerShell can generate GUIDs using the [guid] type accelerator.
Garbage Collection
A form of automatic memory management used in .NET, including PowerShell. It reclaims memory occupied by objects that are no longer in use, thus preventing memory leaks.
Generic Type
A type that is defined with a placeholder for the data type it stores or uses. For example, System.Collections.Generic.List[T] where T can be any data type.
Get-Credential
A cmdlet that prompts the user for credentials (username and password) and returns a PSCredential object containing those credentials.
GetEnumerator
A method that returns an enumerator for iterating through a collection. In PowerShell, this can be used to iterate through items in a collection, especially when using .NET objects.
Git
A distributed version control system. PowerShell can interact with Git repositories using the git command if Git is installed, and through various PowerShell modules such as Posh-Git.
GitHub
A web-based platform used for version control and collaborative software development. PowerShell scripts and modules can be hosted on GitHub, and PowerShell can interact with GitHub repositories using the GitHub API.
Global Assembly Cache (GAC)
A machine-wide code cache for .NET assemblies. Assemblies in the GAC are available for use by multiple applications on the same machine.
Global Functions
Functions declared in the global scope. These functions are accessible from anywhere in the PowerShell session.
Global Scope
The top-level scope in PowerShell where variables and functions are accessible throughout the entire session. Variables can be declared in the global scope using the global: prefix.
Globally Unique Identifier (GUID)
A 128-bit number used to uniquely identify information in computer systems. In PowerShell, GUIDs can be generated using [guid]::NewGuid().
Graphical User Interface (GUI)
A type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators. PowerShell scripts can create GUI elements using Windows Forms or Windows Presentation Foundation (WPF).
Greenfield
A term used to describe a new project or environment without any constraints imposed by existing infrastructure or code.
Group Policy
A feature in Windows that provides centralized management and configuration of operating systems, applications, and users’ settings. PowerShell can interact with Group Policy using the Group Policy module.
Group Policy
A feature in Windows that provides centralized management and configuration of operating systems, applications, and user settings in an Active Directory environment. PowerShell can manage Group Policies using cmdlets from the GroupPolicy module.
Guard Clause
A programming practice where a function or method checks for certain conditions at the beginning and returns early if conditions are not met. This helps to improve readability and reduce nesting.
H
Hash Table Collisions
When two different keys in a hashtable hash to the same index. PowerShell handles collisions internally, but understanding them can help in optimizing performance.
Hashing
The process of converting data into a fixed-size string of characters, which typically represents the data’s hash code. PowerShell supports hashing algorithms like MD5, SHA1, and SHA256.
Hashtable
A collection of key-value pairs. Hashtables are used to store data in a way that makes it easy to retrieve values using keys.
Head
In the context of files or data streams, “head” refers to the beginning portion. PowerShell can retrieve the first few lines of a file using Get-Content with the -TotalCount parameter.
Header
In the context of web requests, a header is part of the HTTP request and response that provides metadata about the request or response. PowerShell can manipulate headers using cmdlets like Invoke-RestMethod and Invoke-WebRequest.
Help System
PowerShell’s integrated help system provides detailed information about cmdlets, functions, scripts, and concepts. Get-Help is used to access this information.
Helper Function
A small, reusable function that performs a specific task, often used to simplify larger scripts or other functions.
Heterogeneous Collection
A collection that can contain elements of different types. In PowerShell, arrays and hashtables can store heterogeneous data.
Hidden Property
A property of a file or directory that makes it invisible in typical directory listings. You can change the hidden attribute using Set-ItemProperty.
Hierarchical Data
Data organized in a tree-like structure with parent-child relationships. PowerShell can work with hierarchical data structures like XML and JSON.
History
A record of commands that have been executed in the current session. You can view and reuse previous commands using Get-History and Invoke-History.
Home Directory
The user-specific directory on a computer where personal files and configurations are stored. In PowerShell, the home directory path can be accessed using $HOME.
Host
The environment in which PowerShell runs. The PowerShell host handles input and output, including interaction with the console or a graphical interface.
Host Application
The application that hosts the PowerShell engine, such as the PowerShell console, Windows PowerShell ISE, Visual Studio Code, or custom host applications.
Hyper-Converged Infrastructure (HCI)
An IT framework that combines storage, computing, and networking into a single system. PowerShell can be used to manage HCI environments, often through specialized modules.
Hyper-V
A virtualization platform from Microsoft. PowerShell provides a module for managing Hyper-V, allowing you to create and manage virtual machines and other virtual resources.
Hyper-V Module
A PowerShell module that includes cmdlets for managing Hyper-V virtual machines and other virtualization tasks.
Hypertext Transfer Protocol (HTTP)
The protocol used for transmitting web pages over the internet. PowerShell can make HTTP requests using Invoke-WebRequest and Invoke-RestMethod.
Hypertext Transfer Protocol Secure (HTTPS)
The secure version of HTTP, using encryption to provide secure communication over a computer network.
I
IDisposable Interface
An interface that contains the Dispose method, which is used to release unmanaged resources. In PowerShell, you should call Dispose on objects that implement this interface to free resources.
IP Address
An identifier assigned to each device connected to a network that uses the Internet Protocol for communication. PowerShell can retrieve IP address information using networking cmdlets.
If Statement
A control flow statement that executes code blocks based on a condition.
Implicit Remoting
A method that uses a local proxy function to run commands on a remote computer as if they were run locally. This is achieved using Import-PSSession.
In-Line Comments
Comments within a line of code, using the # symbol. They are useful for adding context or explanations to specific parts of code.
In-Place Edit
Editing a file directly within the shell or script without creating a new file. PowerShell cmdlets like Set-Content and Add-Content can be used for in-place edits.
In-Process
Running within the same process. In PowerShell, this usually means running code within the same PowerShell session or runspace.
Index
The position of an item in a collection or array. PowerShell uses zero-based indexing.
Inheritance
An object-oriented programming concept where a class can inherit properties and methods from another class. In PowerShell, classes can inherit from other classes using the : ClassName syntax.
Initialize
The process of setting up an object or variable with an initial value or state. In PowerShell, you often initialize variables at the start of scripts or functions.
Input
Data provided to a script or cmdlet, often via parameters, pipeline input, or user interaction. PowerShell cmdlets and scripts can accept input in various ways.
InputObject Parameter
A parameter that specifies the objects to be processed by a cmdlet, typically used in pipeline scenarios.
Instance
An individual object created from a class. In PowerShell, you can create instances of .NET classes or custom classes defined in scripts.
Instance Method
A method that operates on an instance of a class. In PowerShell, you call instance methods on objects.
Integrated Console
A console integrated into an IDE or script editor (such as Visual Studio Code or PowerShell ISE) that allows for running and debugging scripts within the same environment.
Integrated Scripting Environment (ISE)
A graphical host application for PowerShell. It includes a script editor and a console, making it easier to write, debug, and run scripts.
Interface
A contract that defines a set of methods and properties that implementing classes must provide. In PowerShell, you can define and implement interfaces using the interface keyword.
Invoke
A term used to describe executing a method or a command. In PowerShell, you can invoke methods on objects or use the Invoke-Command cmdlet to run commands.
J
JEA (Just Enough Administration)
A security technology that enables delegated administration for anything managed by PowerShell. It allows you to create constrained runspaces with limited permissions.
JSON (JavaScript Object Notation)
A lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate. PowerShell can work with JSON data using ConvertTo-Json and ConvertFrom-Json.
JSON Web Token (JWT)
A compact, URL-safe token format used to represent claims between two parties. PowerShell can work with JWTs when interacting with APIs that require authentication.
JSONPath
A query language for JSON, similar to XPath for XML. While PowerShell does not natively support JSONPath, you can use custom scripts or modules to query JSON data in a similar manner.
JavaScript Object Notation (JSON)
A lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate. PowerShell can work with JSON data using ConvertTo-Json and ConvertFrom-Json.
Job
A background task that runs a PowerShell command or script asynchronously. Jobs allow you to perform multiple tasks at the same time without waiting for each task to complete.
Job Control
The ability to start, stop, manage, and monitor background jobs in PowerShell. This allows for multitasking and parallel processing within scripts.
Job Metadata
Information about a job, such as its ID, name, state, and command. This metadata can be accessed to manage and track the status of jobs.
Job Output
The results produced by a background job. Job output can be retrieved and processed once the job has completed.
Job Queue
A system that manages the execution of jobs, ensuring that they are run in order or according to specified rules. PowerShell can manage job queues using job-related cmdlets.
Job Scheduling
The process of scheduling jobs to run at specific times or intervals. PowerShell can interact with task schedulers or use custom scheduling scripts for job scheduling.
Job State
The current status of a PowerShell job. Common states include Running, Completed, Failed, Stopped, and Suspended.
Jump List
A feature in Windows that provides quick access to recently or frequently used files, folders, or tasks associated with an application. PowerShell can interact with Jump Lists via the Windows API.
Junction Point
A type of symbolic link in the Windows file system that acts as a pointer to another directory. Junction points can be created using the New-Item cmdlet with the -ItemType Junction parameter.
Just-in-Time (JIT) Compilation
A runtime process where code is compiled to machine code just before execution. PowerShell scripts are typically interpreted, but certain .NET components used within PowerShell can benefit from JIT compilation.
Just-in-Time Debugging
A feature that allows debugging of applications at runtime when an exception occurs. In PowerShell, debugging can be performed using breakpoints and the Set-PSBreakpoint cmdlet.
K
Keep-Alive
A mechanism to maintain an open network connection by periodically sending a signal to keep the connection active. PowerShell can configure and manage keep-alive settings for network connections.
Kerberos
A network authentication protocol designed to provide strong authentication for client/server applications. PowerShell supports Kerberos for authentication in remoting sessions.
Kernel
The core component of an operating system, responsible for managing system resources and communication between hardware and software. PowerShell can interact with the operating system at a low level to perform tasks that require kernel-level access.
Kernel-Mode
A processor mode in which code has unrestricted access to all system resources. Some advanced PowerShell tasks, particularly those involving system drivers or hardware interfaces, may involve kernel-mode operations.
Key
An identifier used in key-value pairs within data structures like hashtables and dictionaries. In a hashtable, each key is unique and is used to access its corresponding value.
Key Derivation Function (KDF)
A cryptographic algorithm used to derive keys from a password or passphrase. PowerShell can utilize .NET cryptographic libraries to implement KDFs for secure password storage.
Key Management Service (KMS)
A Microsoft service used for automating the activation of Windows and other Microsoft products. PowerShell can interact with KMS to manage activation settings and status.
Key Signing Key (KSK)
In DNS security (DNSSEC), a KSK is a cryptographic key used to sign other keys (the zone signing keys). PowerShell can manage DNS settings and configurations, including DNSSEC.
Key-Value Pair
A fundamental data representation where each key is associated with a specific value. Commonly used in hashtables and dictionaries.
Key-Value Store
A type of non-relational database that uses key-value pairs to store data. PowerShell can interact with various key-value stores such as Redis and Azure Table Storage.
Keyword
A reserved word in PowerShell that has a special meaning and cannot be used as an identifier for variables, functions, or other user-defined elements. Examples include function, if, else, foreach, while, etc.
Kibibyte (KiB)
A unit of digital information storage equal to 1024 bytes. PowerShell can handle data sizes and conversions between different units, including KiB.
Kill
To forcefully terminate a process. In PowerShell, processes can be terminated using various methods, often involving the Stop-Process cmdlet, though this term is more conceptual and the cmdlet is not listed per user request.
Knowledge Base (KB)
A repository of information and solutions related to software products, often used for troubleshooting and support. Microsoft maintains a vast knowledge base for Windows and other products, which can be accessed programmatically.
Knowledge Management
The process of capturing, distributing, and effectively using knowledge. PowerShell scripts and tools can be part of an organization’s knowledge management strategy by automating the collection and dissemination of information.
Kusto Query Language (KQL)
A powerful query language used for searching and analyzing structured, semi-structured, and unstructured data. KQL is often used with Azure Data Explorer and Log Analytics. PowerShell can interact with services that use KQL.
L
LHS (Left-Hand Side)
Refers to the left side of an assignment statement. In PowerShell, the LHS is the variable or property being assigned a value.
Lambda Expression
An anonymous function used to create delegates or expression tree types. In PowerShell, script blocks can be used similarly to lambda expressions in other programming languages.
Lazy Initialization
A technique to delay the creation of an object until it is actually needed. PowerShell can implement lazy initialization using script blocks or System.Lazy objects.
Least Privilege
A security principle that states users and processes should operate using the minimum set of privileges necessary to complete their tasks. PowerShell can enforce least privilege through role-based access control (RBAC) and other mechanisms.
Line Continuation
A way to break long lines of code into multiple lines for better readability. In PowerShell, the backtick (`) is used as a line continuation character.
Linguistic Comparison
A comparison method that takes into account cultural and linguistic rules. PowerShell can perform linguistic comparisons using .NET’s System.Globalization namespace.
Link-Local Address
An IP address that is valid only for communications within the network segment that a host is connected to. PowerShell can retrieve link-local addresses using networking cmdlets.
List
A collection of items, often implemented as arrays or array lists in PowerShell. Lists can be used to store multiple values in a single variable.
Literal Path
A path that is taken exactly as it is typed, without any wildcard interpretation. In PowerShell, many cmdlets have a -LiteralPath parameter to specify that the provided path should be treated literally.
Literal Strings
Strings that are taken exactly as they are typed, without interpreting escape sequences or variables. In PowerShell, single-quoted strings are treated as literal strings.
LiteralPath Parameter
A parameter used in many cmdlets to specify a path that should be interpreted literally, without expanding any wildcards.
Load Assembly
The process of loading a .NET assembly into the PowerShell session. This is often done using the Add-Type cmdlet or [System.Reflection.Assembly]::Load method.
Local Scope
The current scope in which a variable or function is defined. Variables declared in a local scope are only accessible within that scope.
Locale
Settings that define regional and language preferences for a user. PowerShell can retrieve and set locale information using the Get-Culture cmdlet and .NET classes.
Log
To record information for auditing, debugging, or monitoring purposes. PowerShell can log information to files, event logs, or other logging systems.
Logging
The process of recording events or messages to provide an audit trail or debug information. PowerShell supports logging through various mechanisms, including writing to log files, the event log, or other centralized logging systems.
Logging Levels
Categories of logging information, such as Debug, Info, Warn, Error, and Fatal. PowerShell scripts can use different logging levels to control the verbosity and importance of log messages.
Logging Provider
A component or service that handles logging messages from an application. PowerShell can interact with various logging providers, including the event log and third-party logging systems.
Logon Script
A script that runs automatically when a user logs on to a system. PowerShell logon scripts can be used to configure the environment, map network drives, or perform other setup tasks.
Loop
A control flow statement that allows code to be executed repeatedly based on a condition. Common loops in PowerShell include for, foreach, while, and do-while.
Lvalue
An expression that refers to a memory location and allows us to assign a value to it. In PowerShell, variables and properties that can appear on the left side of an assignment are lvalues.
M
MIME Type (Multipurpose Internet Mail Extensions)
A standard that indicates the nature and format of a file or data. PowerShell can handle MIME types when working with web requests or email messages.
MSI (Microsoft Installer)
A file format used by Windows to install software. PowerShell can interact with MSI files to install or uninstall applications programmatically.
Macro
A sequence of instructions that automate repetitive tasks. PowerShell can create macros by scripting common tasks into reusable functions or scripts.
Managed Code
Code that is executed by the .NET runtime (Common Language Runtime), which provides services like garbage collection, exception handling, and type safety. PowerShell scripts and modules can be considered managed code.
Managed Service Account (MSA)
A type of domain account that provides automatic password management and simplified service principal name (SPN) management. PowerShell can create and manage MSAs.
Manifest
A file that contains metadata about a software package, such as a module or an application. In PowerShell, module manifests (.psd1 files) describe the contents and attributes of a module.
Mapping
The process of associating one set of values with another. PowerShell can perform mapping operations using hashtables, arrays, and custom functions.
Marshal
The process of transforming data as it is transferred between different parts of a program or between different programs. PowerShell can marshal data when interacting with APIs or COM objects.
Memory Leak
A situation where a program continuously consumes more memory by not releasing memory that is no longer needed. PowerShell scripts should manage resources carefully to avoid memory leaks.
Memory Management
The process of controlling and coordinating computer memory, including the allocation and deallocation of memory blocks. PowerShell relies on the .NET runtime for memory management.
Message Queue
A communication method used by distributed applications to send and receive messages asynchronously. PowerShell can interact with message queues like MSMQ (Microsoft Message Queuing).
Message Signing
The process of digitally signing messages to ensure their integrity and authenticity. PowerShell supports message signing to secure communication and script execution.
Metadata
Data that provides information about other data. In PowerShell, metadata can include information about modules, cmdlets, functions, parameters, and objects.
Method
A function associated with an object or class that performs an action or operation. In PowerShell, methods are called on objects using the dot notation.
Metric
A standard of measurement used to quantify system performance, capacity, or other attributes. PowerShell can collect and analyze metrics from various sources, including performance counters and logs.
Middleware
Software that acts as a bridge between different systems or applications. PowerShell can interact with middleware components to facilitate communication and data exchange.
Middleware
Software that acts as a bridge between different systems or applications. PowerShell can interact with middleware components to facilitate communication and data exchange.
Module
A package that contains PowerShell commands, including cmdlets, functions, workflows, variables, and aliases. Modules allow for better organization and reuse of code. They can be imported into a session using Import-Module.
Module Manifest
A file that describes the contents and attributes of a PowerShell module. The manifest file typically has a .psd1 extension and includes metadata such as version, author, and dependencies.
Module Path
The file system location where PowerShell modules are stored. PowerShell searches these paths to locate and import modules.
Module Versioning
The practice of assigning and managing version numbers for PowerShell modules. Versioning helps track changes and dependencies between different versions of a module.
Monolithic Script
A large script that contains all the code needed to perform a task in one file, without modularization. Monolithic scripts can be harder to maintain and debug compared to modular scripts.
Multiline String
A string that spans multiple lines. In PowerShell, multiline strings can be created using here-strings or by concatenating strings with newline characters.
Multiplexing
A method of combining multiple signals or data streams into one. PowerShell can handle multiplexed data streams when working with network communications or file I/O.
Multithreading
The ability of a CPU or a single core in a multi-core processor to provide multiple threads of execution concurrently. PowerShell can utilize multithreading using background jobs, runspaces, or workflows.
Mutable Object
An object whose state or data can be changed after it is created. In PowerShell, most objects are mutable unless explicitly defined as immutable.
N
NIC (Network Interface Card)
A hardware component that connects a computer to a network. PowerShell can retrieve and configure NIC settings using appropriate networking cmdlets and .NET classes.
NTFS (New Technology File System)
A file system used by Windows operating systems. PowerShell can manage NTFS file system features such as permissions, quotas, and encryption.
NTP (Network Time Protocol)
A protocol used to synchronize the clocks of computers over a network. PowerShell can interact with NTP servers to retrieve and set system time.
Named Argument
An argument passed to a function or cmdlet using the parameter name, allowing for more readable and maintainable code.
Named Parameter
A parameter that is specified by name in a command or function call, as opposed to a positional parameter.
Named Pipe
A method for inter-process communication using a pipe that has a specific name. PowerShell can interact with named pipes for communication between processes.
Namespace
A container that holds a set of identifiers for classes, functions, variables, and other entities to avoid naming conflicts. In PowerShell, namespaces are used primarily in conjunction with .NET types.
Namespace Collision
A situation where two or more elements have the same name within the same namespace. PowerShell can avoid namespace collisions by using fully qualified names.
Nested Function
A function defined within another function. Nested functions have access to the variables in the scope of the outer function.
Nested Module
A module that is contained within another module. PowerShell allows nested modules to be included and managed within a parent module.
Network Adapter
A hardware component that connects a computer to a network. PowerShell can retrieve and configure network adapter settings using appropriate networking cmdlets and .NET classes.
Network Drive
A storage device on a local access network that is accessible from multiple computers. PowerShell can map and manage network drives using appropriate commands.
Network Protocol
A set of rules and conventions for communication between network devices. PowerShell can interact with various network protocols such as HTTP, FTP, and SMB.
Network Security Group (NSG)
A firewall security feature in Azure that controls inbound and outbound traffic to network interfaces, VMs, and subnets. PowerShell can manage NSGs through Azure modules.
Network Share
A resource on a network that is accessible to multiple users or devices. PowerShell can manage network shares using appropriate commands and .NET classes.
Newline Character
A character or sequence of characters that signifies the end of a line of text. In PowerShell, newline characters can be represented by "n”orr"n”`.
Node
In the context of Desired State Configuration (DSC), a node is a target machine that is managed by a DSC configuration. A node block specifies the configuration settings for that machine.
Non-Blocking
A term used to describe operations that do not block the execution thread, allowing other operations to continue. PowerShell can perform non-blocking operations using asynchronous methods and jobs.
Non-Interactive Mode
Running a script or command without user interaction. PowerShell can execute scripts in non-interactive mode, often used in automated tasks and scheduled jobs.
Non-Primitive Type
A complex data type that is composed of primitive types or other non-primitive types. In PowerShell, arrays, hashtables, and custom objects are examples of non-primitive types.
Non-Terminating Error
An error that does not stop the execution of a script or cmdlet. Non-terminating errors are typically handled using error action preferences or the -ErrorAction parameter.
Normalization
The process of organizing data to minimize redundancy and improve data integrity. PowerShell can be used to normalize data within scripts and data processing tasks.
Normalization
The process of organizing data to reduce redundancy and improve data integrity. In PowerShell, this can involve transforming data structures or cleaning data.
Notification
A message or alert that informs a user or system of an event or condition. PowerShell can generate notifications for various events, such as job completions or error conditions.
Noun
The second part of a PowerShell cmdlet name, indicating the entity upon which the cmdlet acts. For example, in Get-Process, Process is the noun.
Null
A special value indicating the absence of data or an object. In PowerShell, $null is used to represent null values.
Null-Coalescing Operator (??)
An operator that returns the left-hand operand if it is not null, otherwise it returns the right-hand operand. Introduced in PowerShell 7.
Numeric Type
A data type that represents numbers. PowerShell supports various numeric types, including integers (int), floating-point numbers (float, double), and decimals.
O
Object
An instance of a class or data structure that contains data and methods to manipulate that data. In PowerShell, everything is an object, including files, processes, and even numbers.
Object Methods
Functions or procedures that are associated with an object and can perform actions on that object’s data.
Object Pipeline
The mechanism in PowerShell that passes objects from one command to another. This allows for chaining commands and processing data in a sequential manner.
Object Property
An attribute of an object that holds data. Properties can be accessed and modified using the dot notation.
Object Serialization
The process of converting an object into a format that can be easily stored or transmitted and then reconstructed later. PowerShell supports serialization to formats like XML and JSON.
Object-Oriented Programming (OOP)
A programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. PowerShell supports OOP principles and allows for the creation and manipulation of objects.
Observable
A design pattern in which an object maintains a list of its dependents (observers) and notifies them of any state changes. PowerShell can implement observable patterns for event-driven programming.
OnError Resume Next
A programming concept where errors are ignored, and the script continues execution. PowerShell can achieve similar behavior using try and catch blocks with appropriate error handling.
One-Liner
A single line of PowerShell code that performs a task, often used for simplicity and quick operations.
Operator
A symbol that tells the PowerShell engine to perform a specific operation, such as addition (+), subtraction (-), or comparison (-eq).
Operator Precedence
The rules that determine the order in which operators are evaluated in expressions. Understanding operator precedence helps in writing correct and predictable code.
Optional Parameter
A parameter that is not required for a cmdlet or function to run. Optional parameters provide additional functionality but are not mandatory.
Order of Execution
The sequence in which PowerShell executes commands and statements. Understanding the order of execution is important for writing accurate and efficient scripts.
Ordered Dictionary
A collection that maintains the order of items as they were added. PowerShell provides [ordered] hashtables for maintaining order.
Orphaned Process
A process that continues to run after its parent process has terminated. PowerShell can manage and clean up orphaned processes to ensure system stability.
Out-Default
The default output function that sends output to the console. PowerShell implicitly uses Out-Default to display command output unless redirected or piped to another cmdlet.
Out-File Encoding
The character encoding used when writing to files. PowerShell allows specifying the encoding to ensure compatibility with other systems and applications.
Out-of-Process
Running code in a separate process from the main PowerShell session. This can be used for isolation and to prevent memory and state interference between different tasks.
Output
Data that is produced by a command or script and displayed in the console or passed through the pipeline. PowerShell functions and cmdlets typically produce output that can be used in subsequent commands.
Output Formatting
The process of defining how the output is displayed to the user. PowerShell provides various ways to format output, such as tables, lists, and custom formatting using format files.
Output Redirection
The process of sending output to a location other than the default console. This can include files, printers, or other devices.
Overload
A feature in object-oriented programming where multiple methods share the same name but have different parameters. PowerShell can call overloaded methods based on the arguments provided.
P
PSDrive
A data store location exposed as a drive. PowerShell providers create PSDrives to represent different data stores, such as the file system, registry, or certificate store.
PSSession
A persistent connection to a remote computer. PSSessions allow for multiple commands to be run on a remote machine using the same session context.
PSSnapin
A binary module that adds cmdlets and providers to PowerShell. PSSnapins were more common in earlier versions of PowerShell but have largely been replaced by modules.
Parameter
An argument that provides input to a function or cmdlet. Parameters can be positional or named and may have attributes like Mandatory or DefaultValue.
Parameter Set
A group of parameters that work together. Cmdlets and functions can define multiple parameter sets to handle different combinations of parameters.
Parameter Validation
The process of ensuring that parameters meet certain criteria before a function or cmdlet executes. PowerShell supports parameter validation attributes like ValidateNotNull, ValidateRange, and ValidatePattern.
Pester
A testing framework for PowerShell used to write and run unit tests. Pester is commonly used to validate scripts and modules to ensure they work as expected.
Pipeline
A core feature of PowerShell that allows the output of one command to be used as the input to another command. This is done using the | (pipe) character.
Pipeline Execution
The process of passing objects through the pipeline from one cmdlet to the next. Each cmdlet processes the input and passes output to the next cmdlet in the pipeline.
Pipeline Input
Input that is passed to a cmdlet or function through the pipeline. Cmdlets and functions can accept pipeline input by value or by property name.
Pipeline Variable ($_)
A special variable that represents the current object in the pipeline. Often used in script blocks to refer to the item currently being processed.
Plain Text
Unformatted text that does not contain any special formatting or binary data. PowerShell can work with plain text files using cmdlets like Get-Content and Set-Content.
Posh-Git
A PowerShell module that provides Git enhancements, including Git status information in the prompt and tab completion for Git commands.
Positional Parameter
A parameter that is identified by its position in the command rather than by name. Positional parameters are determined by the order in which arguments are provided.
PowerShell Core
A cross-platform version of PowerShell built on .NET Core. PowerShell Core (now referred to as PowerShell 7 and later) runs on Windows, macOS, and Linux.
PowerShell Gallery
An online repository for PowerShell modules, scripts, and DSC resources. Users can publish and download items from the PowerShell Gallery.
PowerShell Remoting
The ability to run PowerShell commands on remote computers. Remoting is typically done over WS-Management (WSMan) or SSH.
Private Variable
A variable that is accessible only within the scope in which it is defined. Private variables are declared using the private keyword.
Process
An instance of a running application. PowerShell can retrieve information about processes, start new processes, and stop existing ones.
Profile
A script that runs automatically when PowerShell starts. Profiles can be used to customize the environment, load modules, and define functions. Profiles are typically stored in $PROFILE.
Prompt Function
A special function in PowerShell that defines the appearance and content of the command prompt. Customizing the prompt function allows you to modify the PowerShell prompt.
Property
An attribute of an object that holds data. Properties can be accessed and modified using dot notation.
Property Method
A method associated with a property that allows for getting, setting, or other operations. In PowerShell, properties can have methods that provide additional functionality.
Provider
A component that exposes data stores as file system drives. PowerShell providers include the file system, registry, certificate store, and others.
Proxy Command
A command that acts as an intermediary, modifying or extending the behavior of another command. Proxy commands can be used to wrap existing cmdlets with additional functionality.
Proxy Function
A function that wraps another command, adding or modifying functionality. Proxy functions are often used to extend or customize the behavior of existing cmdlets.
Q
Qualifiers
Additional information or parameters that refine or specify the criteria for a command or operation. In PowerShell, qualifiers are often used in WMI queries and command parameters.
Quality Assurance (QA)
The process of ensuring that a product or service meets specified requirements and standards. PowerShell can be used to automate QA processes such as testing and validation scripts.
Quantitative Analysis
The process of using statistical and mathematical techniques to analyze numerical data. PowerShell can perform quantitative analysis by manipulating and calculating data sets.
Quasi-Random Numbers
Numbers that are generated in a sequence that appears random but is actually deterministic. PowerShell can generate quasi-random numbers for simulations and testing purposes.
Query
A request for information from a data source. PowerShell can perform queries on various data sources such as databases, directories, and services using different methods and cmdlets.
Query Language
A programming language used to make queries in databases and information systems. Examples include SQL (Structured Query Language) and KQL (Kusto Query Language). PowerShell can interact with these languages for data retrieval.
Query Optimization
Techniques used to improve the performance of database queries. PowerShell can assist in query optimization by analyzing and tuning queries.
Query Plan
A sequence of steps used by a database management system to execute a query. PowerShell can retrieve and analyze query plans from databases to optimize performance.
Queue
A data structure that follows the First-In-First-Out (FIFO) principle. PowerShell can use queues for managing tasks or processing data in order.
Queueing Theory
The mathematical study of waiting lines or queues. PowerShell can implement queueing mechanisms for managing tasks and resources.
Quick Access
A feature that provides easy access to frequently used files and locations. PowerShell can configure and manage Quick Access settings in Windows environments.
Quick Format
A method of formatting a disk quickly by removing file allocation information but not overwriting the data sectors. PowerShell can perform quick formats using relevant disk management commands.
Quick Start
A guide or script designed to help users quickly set up or use a system or application. PowerShell quick start scripts can automate initial configuration and setup tasks.
Quiescing
he process of pausing or altering the state of running processes or services to achieve a consistent state, often used before taking snapshots or backups.
Quiet Mode
An operation mode where output and prompts are minimized or suppressed to streamline execution. PowerShell scripts can use parameters or switches to enable quiet mode for certain commands.
Quorum
In clustering and high-availability systems, a quorum is the minimum number of votes needed for the cluster to operate. PowerShell can manage and configure quorum settings for Windows Server Failover Clustering.
Quota
A limit on the amount of resources that can be used. PowerShell can manage quotas for various resources, such as disk space and user accounts.
Quota Management
The process of setting and enforcing limits on resource usage. PowerShell can manage quotas for file systems, storage, and other resources using appropriate cmdlets and modules.
Quotation Marks
Characters used to denote the beginning and end of a string. In PowerShell, single (') and double (") quotation marks are used.
Quoted String
A sequence of characters enclosed in quotation marks. PowerShell supports single-quoted and double-quoted strings, with double-quoted strings allowing variable interpolation.
R
REST API
Representational State Transfer Application Programming Interface. A set of rules for interacting with web services. PowerShell can send HTTP requests to REST APIs and process the responses.
RHS (Right-Hand Side)
Refers to the right side of an assignment statement. In PowerShell, the RHS is the value or expression being assigned to a variable or property.
Raw String
A string that is taken literally and does not process escape sequences. In PowerShell, this can be achieved using single-quoted strings.
Reference Type
A type that stores a reference to the data rather than the data itself. In PowerShell, objects are reference types.
Reflection
The ability to inspect metadata about types at runtime. PowerShell can use reflection to dynamically discover information about objects and their members.
Regex Pattern
A specific sequence of characters that define a search pattern in regular expressions. PowerShell uses regex patterns for text matching and manipulation.
Registry
A hierarchical database used by Windows to store configuration settings and options. PowerShell can interact with the Windows registry using the Registry provider.
Regular Expression (Regex)
A sequence of characters that define a search pattern. PowerShell supports regular expressions for pattern matching and text manipulation.
Remote Execution
The process of running commands on a remote computer. PowerShell supports remote execution through remoting sessions.
Remote Management
The ability to manage and administer computers from a remote location. PowerShell remoting allows you to execute commands on remote systems using WS-Management or SSH.
Repository
A storage location where scripts, modules, and other resources are kept. PowerShell can interact with repositories such as the PowerShell Gallery or private repositories.
Resiliency
The ability of a system to recover from failures and continue operating. PowerShell can be used to implement and manage resiliency features in IT environments.
Resource
An entity that can be managed by PowerShell, such as files, processes, services, or network connections. In DSC (Desired State Configuration), a resource defines the configuration of a specific aspect of the system.
Resource Kit
A collection of tools, scripts, and utilities provided by Microsoft to help administrators manage and troubleshoot Windows environments. PowerShell scripts and modules are often included in resource kits.
Resource Manager
A component that manages resources, such as Azure Resource Manager (ARM) which handles the deployment and management of Azure resources.
Retry Logic
The implementation of mechanisms to retry operations that fail, often with a delay between attempts. PowerShell can include retry logic in scripts to handle transient failures.
Return Statement
A statement used to exit a function and optionally return a value. In PowerShell, the return keyword is used.
Robustness
The ability of a script or application to handle errors and unexpected conditions gracefully. PowerShell scripts can be made more robust using error handling and validation techniques.
Role Assignment
The process of assigning roles to users or groups to control access to resources. PowerShell can automate role assignments in various systems.
Role-Based Access Control (RBAC)
A method of regulating access to resources based on the roles of individual users within an organization. PowerShell can manage RBAC settings in various systems, such as Azure and Exchange.
Root Module
The primary script or binary file that is loaded when a module is imported. The root module is specified in the module manifest file.
Rounding
The process of reducing the number of significant digits in a number. PowerShell provides methods for rounding numbers to the nearest integer or specified decimal places.
Runspace
An isolated environment in which PowerShell commands are executed. Runspaces allow for concurrent execution of commands in separate contexts.
Runspace Pool
A collection of runspaces that can be used to execute multiple tasks concurrently. PowerShell allows for the creation and management of runspace pools to improve performance in parallel processing scenarios.
Runtime
The period during which a program is running. PowerShell operates within the .NET runtime, providing services such as garbage collection, exception handling, and type safety.
S
SMB (Server Message Block)
A network file sharing protocol that allows applications and users to read and write to files and request services from server programs in a network. PowerShell can interact with SMB shares and servers.
Scope
The context in which variables and functions are defined and accessible. PowerShell has several scopes, including global, script, local, and private.
Scope Modifier
A keyword that specifies the scope in which a variable or function is defined. Scope modifiers include global:, script:, local:, and private:.
Script Block
A collection of statements or expressions enclosed in curly braces {}. Script blocks can be assigned to variables, passed as parameters, or used in control statements.
Script Execution Policy
A setting that determines which scripts can run on a system. PowerShell execution policies include Restricted, RemoteSigned, Unrestricted, AllSigned, and Bypass.
Script Module
A file with a .psm1 extension that contains PowerShell functions, variables, and other code. Script modules are used to organize and reuse code across multiple scripts.
Secure String
A string that is encrypted in memory to protect sensitive information. PowerShell uses secure strings to handle passwords and other confidential data.
Security Descriptor
A data structure that contains security information associated with a securable object, such as permissions and ownership. PowerShell can manipulate security descriptors for files, folders, and other objects.
Serialization
The process of converting an object into a format that can be easily stored or transmitted and later reconstructed. PowerShell supports serialization to formats like XML and JSON.
Serialized Object
An object that has been converted into a format that can be easily stored or transmitted and later reconstructed. PowerShell supports serialization to formats like XML and JSON.
Service
A long-running executable that performs specific functions and operates independently of user interaction. PowerShell can manage Windows services by retrieving their status, starting, stopping, and configuring them.
Session
A PowerShell session, or PSSession, is an instance of a PowerShell environment that runs on a local or remote computer. Sessions allow for persistent connections and command execution across multiple invocations.
Session State
The current state of the PowerShell session, including variables, functions, aliases, and other settings. Session state can be saved and restored to maintain consistency across sessions.
Shebang (#!)
A character sequence at the beginning of a script that indicates which interpreter should be used to execute the script. PowerShell scripts on Unix-like systems can include a shebang to specify the PowerShell interpreter.
Splatting
A method of passing a collection of parameter values to a command using a hashtable or array. Splatting simplifies the code and improves readability.
Stream
A sequence of data elements made available over time. PowerShell can work with various streams, including file streams, input/output streams, and error streams.
String Interpolation
The process of including variables or expressions inside a string. In PowerShell, double-quoted strings allow for interpolation.
Structured Data
Data that is organized and formatted in a predefined manner, such as CSV, XML, or JSON. PowerShell provides cmdlets to work with structured data formats.
Substring
A part of a string extracted using a starting position and length. PowerShell provides methods to extract substrings from strings.
Switch Statement
A control flow statement that selects one of many code blocks to execute based on a condition. PowerShell’s switch statement can match simple values, regular expressions, or use complex logic.
Symbolic Link (Symlink)
A file-system object that points to another file-system object. PowerShell can create and manage symbolic links using appropriate commands.
Synchronous Execution
The execution of tasks in a sequential manner, where each task must complete before the next one begins. PowerShell commands are typically executed synchronously unless explicitly specified otherwise.
T
Tab Completion
A feature that allows users to press the Tab key to auto-complete commands, parameter names, and values. PowerShell’s tab completion improves efficiency and reduces errors.
Template
A predefined structure or format used as a starting point for creating new documents or configurations. PowerShell scripts can use templates to standardize outputs.
Temporary File
A file created to store data temporarily during script execution. PowerShell can create and manage temporary files for intermediate data storage.
Test
The process of verifying that a script, function, or module works as intended. PowerShell provides Pester, a testing framework, for writing and running tests.
Thread
The smallest unit of execution in a process. PowerShell can manage threads, especially in runspaces and workflows, to perform concurrent tasks.
Thread-Safe
Code that can be safely executed by multiple threads at the same time without causing data corruption or inconsistencies. PowerShell scripts and functions may need to be designed to be thread-safe in multi-threaded environments.
ThrottleLimit
A parameter that controls the number of concurrent operations. It is used in cmdlets that perform parallel processing to limit the resource usage.
Throw
A keyword used to raise an exception in a script. When throw is encountered, script execution stops, and the error is propagated.
TimeSpan
A .NET structure that represents a time interval. PowerShell can use TimeSpan objects to measure durations and perform date arithmetic.
Token
A fundamental unit of code, such as a keyword, operator, or identifier. PowerShell parses scripts into tokens as part of the execution process.
Tokenization
The process of breaking down a script or command into individual tokens for parsing and execution. PowerShell uses tokenization to interpret and execute code.
Trace
The process of monitoring the execution of a script or command to diagnose issues. PowerShell provides tracing capabilities to help debug and optimize scripts.
Transaction
A sequence of operations performed as a single unit of work. Transactions ensure that either all operations succeed or none do, maintaining data integrity. PowerShell supports transactions with certain providers.
Transcript
A record of all commands and output in a PowerShell session. Transcripts can be started and stopped to create logs of session activity.
Transcript File
A file that records the output of a PowerShell session, created by the Start-Transcript cmdlet. It is useful for auditing and debugging.
Transformation
The process of converting data from one format or structure to another. PowerShell can transform data using custom functions, script blocks, or cmdlets like Select-Object.
Trap
A statement used for error handling in PowerShell. It can catch exceptions and execute code in response, but it is less commonly used than try-catch.
Trim
The process of removing leading and trailing whitespace from a string. PowerShell provides methods like Trim(), TrimStart(), and TrimEnd().
Try-Catch-Finally
A construct used for error handling in PowerShell scripts. The try block contains the code that might throw an exception, the catch block contains code to handle the exception, and the finally block contains code that runs regardless of whether an exception was thrown.
Tuple
A fixed-size collection of values of potentially different types. PowerShell can create and use tuples for simple data structures.
Type
The definition of the structure and behavior of an object. In PowerShell, types are defined by .NET classes and include primitives (e.g., int, string) and complex types (e.g., System.DateTime).
Type Accelerator
A shortcut or alias for a .NET type that simplifies the syntax. Common type accelerators include [int] for System.Int32, [string] for System.String, and [datetime] for System.DateTime.
Type Constraint
A way to specify the type of a parameter or variable. PowerShell uses type constraints to enforce data types and improve script reliability.
Type Conversion
The process of converting a value from one type to another. PowerShell supports implicit and explicit type conversion.
Type Definition
The declaration of a new type, including its properties and methods. PowerShell 5.0 and later supports class definitions to create custom types.
Type Hierarchy
The structure that defines the inheritance relationships between types. In PowerShell, types can inherit members from their base types.
Typed DataSet
A strongly-typed version of a DataSet that includes tables, columns, and relationships. PowerShell can work with typed DataSets when interacting with databases.
U
URI (Uniform Resource Identifier)
A string of characters used to identify a resource on the internet. PowerShell can work with URIs when making web requests or accessing web services.
URI Parameterization
The practice of using variables or placeholders in URIs to dynamically construct URLs for web requests or API calls.
UTC (Coordinated Universal Time)
The primary time standard by which the world regulates clocks and time. PowerShell can convert and work with UTC times.
UTF-8
A standard encoding format for Unicode characters, commonly used for text files. PowerShell supports UTF-8 encoding for reading and writing files.
Unblock
The process of removing restrictions or security blocks from a file. PowerShell can unblock files that are flagged as downloaded from the internet.
Uncaught Exception
An error that is not handled by a try-catch block. Uncaught exceptions can cause a script to terminate unexpectedly.
Undeclared Variable
A variable that has not been initialized or assigned a value before being used. Accessing undeclared variables can lead to errors in PowerShell scripts.
Undo
The process of reversing changes made by a previous action. PowerShell can implement undo functionality in scripts to revert changes and maintain system integrity.
Unicode
A standard for encoding text characters from multiple writing systems. PowerShell supports Unicode for string manipulation and file operations.
Uninstall
The process of removing software or modules from a system. PowerShell scripts can automate uninstallation tasks for various applications and modules.
Unique Identifier
A value used to uniquely identify an object or entity. GUIDs (Globally Unique Identifiers) are commonly used for this purpose in PowerShell.
Unmanaged Code
Code that executes outside the control of the .NET runtime (CLR). PowerShell can interact with unmanaged code through P/Invoke and COM objects.
Unstructured Data
Data that does not have a predefined format or organization, such as text files, images, and videos. PowerShell can process and analyze unstructured data using various techniques.
Untrusted Source
A source of data or software that has not been verified as safe. PowerShell can handle data from untrusted sources with caution, implementing security best practices.
Unzip
The process of extracting files from a compressed archive. PowerShell can automate unzipping tasks using .NET classes or third-party modules.
Update
The process of modifying or replacing existing software or data with newer versions. PowerShell scripts can automate update tasks for software applications and system components.
Uptime
The amount of time a system has been running without interruption. PowerShell can retrieve system uptime information using WMI or other system utilities.
Usability
The ease with which users can interact with a system or application. PowerShell can enhance usability through clear prompts, helpful messages, and intuitive scripts.
User Account Control (UAC)
A security feature in Windows that helps prevent unauthorized changes to the operating system. PowerShell scripts can trigger UAC prompts when elevated permissions are required.
User Context
The security context in which a script or command is executed, determined by the user account and its associated permissions. PowerShell scripts can run in different user contexts to perform various tasks.
User Input
Data provided by the user during script execution. PowerShell can collect user input using cmdlets like Read-Host.
User Profile
The set of directories and configuration files associated with a user account. PowerShell can manage user profiles by accessing environment variables and profile scripts.
User Rights Assignment
The process of granting specific permissions to user accounts or groups. PowerShell can manage user rights assignments using Group Policy or security cmdlets.
User Role
A set of permissions assigned to a user or group to define their access level. PowerShell can manage user roles in systems like Active Directory and Azure.
V
VHD (Virtual Hard Disk)
A file format representing a virtual hard disk drive. PowerShell can manage VHDs using disk management commands and Hyper-V modules.
VLAN (Virtual Local Area Network)
A network within a network that partitions and isolates segments at the data link layer (OSI layer 2). PowerShell can manage VLAN settings on network devices via appropriate cmdlets or modules.
VM Snapshot
A saved state of a virtual machine at a specific point in time. PowerShell can create and manage snapshots for VMs in virtualization platforms like Hyper-V.
VSS (Volume Shadow Copy Service)
A technology that creates backup copies or snapshots of computer files or volumes. PowerShell can interact with VSS for creating and managing shadow copies.
Validation
The process of checking input values to ensure they meet certain criteria. PowerShell supports parameter validation attributes like ValidateNotNull, ValidateRange, and ValidatePattern.
Value Type
A data type that directly contains its value. In PowerShell, common value types include integers ([int]), floating-point numbers ([float]), and structures.
Variable
A storage location identified by a name that holds data. In PowerShell, variables are prefixed with $.
Variable Expansion
The process of replacing a variable reference in a string with its value. In PowerShell, this is done in double-quoted strings.
Variable Scope
The context in which a variable is accessible. PowerShell has several scopes, including global, local, script, and private.
Vault
A secure storage location for sensitive information such as credentials, keys, and secrets. PowerShell can interact with vaults like Azure Key Vault for secure secret management.
Vector
A one-dimensional array that represents a sequence of elements. PowerShell can manipulate vectors using arrays and array operations.
Verb-Noun Naming Convention
The standardized format for naming cmdlets in PowerShell, where the name consists of a verb and a noun. This convention helps with discoverability and consistency.
Verbose
A parameter and preference variable in PowerShell that provides detailed information about command execution. Verbose messages can help with debugging and understanding script behavior.
Verbose Output
Detailed information about the execution of commands, useful for debugging and understanding what a script is doing. Enabled with the -Verbose parameter or by setting $VerbosePreference.
Version Control
The management of changes to documents, scripts, and other information stored as computer files. PowerShell scripts can be versioned using systems like Git.
Viewport
The visible area of the console window. PowerShell can adjust the size and position of the viewport to enhance user interaction.
Virtual Directory
A directory that maps to a physical location on a server but appears as a different directory to users. PowerShell can manage virtual directories in web servers like IIS.
Virtual Machine (VM)
An emulation of a computer system that runs on a physical host. PowerShell can create, configure, and manage VMs using Hyper-V or other virtualization platforms.
Virtual Private Network (VPN)
A technology that creates a secure network connection over a public network. PowerShell can configure and manage VPN connections using appropriate networking cmdlets.
Visibility
The accessibility of variables and functions in different scopes. In PowerShell, visibility can be controlled using scope modifiers like private, script, and global.
Visual Studio Code (VSCode)
A popular source code editor that supports PowerShell through the PowerShell extension, providing syntax highlighting, debugging, and other development tools.
Volume
A storage area with a single file system, typically a partition on a hard drive. PowerShell can manage volumes using disk management commands.
W
WMI (Windows Management Instrumentation)
A set of specifications from Microsoft for consolidating the management of devices and applications in a network. PowerShell can interact with WMI to manage various aspects of Windows systems.
WMI Query Language (WQL)
A SQL-like language for querying WMI objects. PowerShell can use WQL to retrieve specific information from WMI providers.
WPF (Windows Presentation Foundation)
A graphical subsystem for rendering user interfaces in Windows-based applications. PowerShell can create and manage WPF elements for graphical scripts.
Wildcard
A character used to substitute for any other character or characters in a string. In PowerShell, wildcards like * (asterisk) and ? (question mark) are used for pattern matching.
Wildcard Expansion
The process of matching wildcard patterns to specific items. PowerShell automatically expands wildcard patterns in cmdlets to match relevant items.
Wildcard Pattern
A string that includes wildcard characters to match multiple items. PowerShell uses wildcard patterns in many cmdlets for filtering results.
Win32 API
The Windows application programming interface used for interacting with Windows operating system components. PowerShell can call Win32 API functions using P/Invoke or COM objects.
WinRM (Windows Remote Management)
A protocol used by PowerShell for remote management and execution. WinRM allows PowerShell to run commands on remote systems.
Windows Defender
The built-in antivirus and security solution for Windows. PowerShell can interact with Windows Defender to run scans, update definitions, and configure settings.
Windows Event Log
A service that logs system, security, and application events. PowerShell can query and manage event logs to monitor system health and diagnose issues.
Windows Firewall
A security application that filters incoming and outgoing network traffic. PowerShell can configure Windows Firewall settings using appropriate networking cmdlets.
Windows PowerShell
The original version of PowerShell built on the .NET Framework, primarily used for Windows automation tasks. It is superseded by PowerShell Core and PowerShell 7+ for cross-platform compatibility.
Windows Registry
A hierarchical database used by Windows to store configuration settings and options. PowerShell can read from and write to the registry using the Registry provider.
Windows Services
Long-running executable applications that run in their own Windows sessions. PowerShell can start, stop, and configure Windows services.
Windows Update
A service that provides updates for the Windows operating system and other Microsoft software. PowerShell can manage Windows Update settings and automate update installations.
Workflow
A feature in PowerShell that allows for the creation of long-running, repeatable tasks. Workflows are defined using the workflow keyword and can include parallel execution and checkpoints.
Workflow Activities
Units of work that can be executed within a workflow. They include commands, script blocks, and other workflows. Workflow activities allow for complex task automation in PowerShell workflows.
Workstation
A powerful desktop computer designed for technical or scientific applications. PowerShell can manage workstations by automating configuration, software deployment, and other administrative tasks.
X
X.509 Certificate
A standard defining the format of public key certificates. PowerShell can manage X.509 certificates for secure communications and authentication.
X64 (64-bit)
A designation for processors and applications that use a 64-bit wide address bus. PowerShell has both 32-bit (x86) and 64-bit (x64) versions.
X86 (32-bit)
A designation for processors and applications that use a 32-bit wide address bus. PowerShell can run in either 32-bit or 64-bit mode depending on the version installed and the system architecture.
XAML (Extensible Application Markup Language)
A markup language used for initializing structured values and objects. PowerShell can use XAML to create and manage Windows Presentation Foundation (WPF) user interfaces.
XML (Extensible Markup Language)
A markup language used for encoding documents in a format that is both human-readable and machine-readable. PowerShell can read, manipulate, and write XML data.
XML Namespaces
A method of qualifying element and attribute names in XML documents to avoid name conflicts. PowerShell can work with XML namespaces when querying and manipulating XML data.
XMLEncoding
The process of converting data into a format that can be safely included in XML documents. PowerShell can encode and decode XML data to ensure it conforms to XML standards.
XOR (Exclusive OR)
A logical operation that returns true if exactly one of its operands is true. In PowerShell, XOR can be used in binary operations and conditional statements.
XPath
A language used for navigating through elements and attributes in an XML document. PowerShell can use XPath to query XML data.
XPathNavigator
A class in the .NET framework used to navigate and edit XML data using XPath. PowerShell can leverage this class for advanced XML manipulation.
XSD (XML Schema Definition)
A schema language for XML used to define the structure and data types of XML documents. PowerShell can validate XML documents against an XSD schema.
XSLT (Extensible Stylesheet Language Transformations)
A language for transforming XML documents into other XML documents or different formats such as HTML. PowerShell can perform XSLT transformations using .NET classes.
Y
YAML (YAML Ain’t Markup Language)
A human-readable data serialization standard that can be used in conjunction with all programming languages. PowerShell can read and write YAML using third-party modules such as YamlDotNet.
YAML Deserialization
The process of converting a YAML formatted string into a PowerShell object. This requires third-party modules or custom code.
YAML Front Matter
A section at the top of a file that contains metadata about the document, written in YAML. It’s commonly used in static site generators. PowerShell can process these files by parsing the YAML front matter.
Yank
A term from text editing meaning to copy text to a clipboard or buffer. In the context of PowerShell, it can refer to copying data from one place to another within a script.
Yarn
A package manager for JavaScript. PowerShell can automate tasks involving Yarn, such as installing dependencies and running scripts, by invoking Yarn commands.
Yes/No Prompt
A user prompt that requires a Yes or No response. PowerShell can create such prompts using the Read-Host cmdlet or graphical interfaces.
Yield
A keyword used in some programming languages to produce a value and then pause execution, resuming from the same point when called again. PowerShell does not have a direct yield keyword, but similar behavior can be achieved using enumerators and script blocks.
Yield Return
In the context of iterators in some programming languages, it is used to return each element one at a time. PowerShell can implement similar functionality using foreach loops and output streams.
Z
Z-Buffering
A graphics rendering technique used to manage image depth coordinates in 3D graphics. While not directly related to PowerShell, understanding Z-buffering can be useful for scripting graphics-related tasks.
Z-Index
In graphical interfaces, the Z-index represents the stacking order of elements along the Z-axis. Higher Z-index values appear in front of lower values. PowerShell can manipulate Z-index values in WPF or other UI frameworks.
Z-Order
The order in which overlapping elements are displayed. Elements with higher Z-order are displayed above those with lower Z-order. PowerShell can manage Z-order in GUI applications.
Z-Shell (Zsh)
A powerful Unix shell that includes features like improved scripting, command-line editing, and history mechanisms. PowerShell can interoperate with Zsh on systems where both are available.
Z-Transform
A mathematical tool used in signal processing and control theory. While not directly related to PowerShell, understanding Z-transform can be useful for advanced data analysis tasks that may be scripted.
ZFS (Zettabyte File System)
An advanced file system and logical volume manager designed for high storage capacities and data integrity. PowerShell can interact with ZFS on supported systems to manage storage.
Zero Trust Security
A security model that assumes no part of a network is inherently secure and requires verification for every access request. PowerShell can be used to implement and manage zero trust security principles in IT environments.
Zero-Based Indexing
A way of numbering array elements starting with zero. PowerShell uses zero-based indexing for arrays and collections.
Zero-Day Exploit
A vulnerability that is exploited by attackers before it is known to the software developer. PowerShell can be part of an incident response strategy to detect and mitigate zero-day exploits.
Zero-Length String
An empty string (""). In PowerShell, zero-length strings are often used for initialization or resetting variables.
Zip File
A compressed archive file format that can contain multiple files and folders. PowerShell can create and extract zip files using .NET classes or third-party modules.
Zipped Folder
A folder compressed into a single zip file. PowerShell can compress and decompress folders using the System.IO.Compression namespace.
Zombie Process
A process that has completed execution but still has an entry in the process table. PowerShell can identify and clean up zombie processes to maintain system performance.
Zone Identifier
Metadata added to files downloaded from the internet, indicating their origin. PowerShell can remove zone identifiers to unblock files.
Zone Policy
Security settings applied to files based on their zone identifier. PowerShell scripts may need to handle zone policies when executing downloaded scripts or files.
Zone-Aware Application
An application that recognizes and responds to the security zones of the files it processes. PowerShell scripts can incorporate zone awareness for enhanced security.
Zoom
Adjusting the magnification level of a graphical interface. PowerShell can control zoom levels in applications that support such features, particularly in WPF applications.