Parameters Command Line Parameters param() and $args[] Pipelines Pass objects down the pipeline. Objects Working with objects. Looping commands: Do, foreach, ForEach-Object, Switch, While Date&Time Date and Time Format patterns (DateTimeFormatInfo) Redirection Spool output to a file. Statements Looping, If-Then-Else. Tab Completion for Cmdlets, Filenames & Variables. Transaction Manage transactions.
Variables
Create Variables and assign values - basic Operators: + - / = Arrays and Hash tables. Automatic variables ($_, $Args etc) Preference variables Verbosity, Confirmations, ErrorAction, $Debug Ref vars Pass a reference variable to a function.
Environment variables ($Env:) & PowerShell providers.
Evaluate expressions
Escape chars, delimiters, Here Strings and "quotes". Comparison -like, -lt, -gt, -eq, -ne, -match DataTypes PowerShell data types. Methods ToUpper(), PadRight(), Split(), Substring(), Replace() etc. .Net Math Round(), Ceiling(), Max(), Min() Operators Format strings and arrays @( ) -f [ ] $( ) :: & Concat Several methods to combine strings together. Regular Expressions Search and/or Replace. Replace Basic Search/Replace in strings and files. Wildcards Match multiple items.
Functions and Modules
Scriptblock A collection of statements: { … } Functions and Filters Write a named block of code. Function Input Processing (Begin..Process..End) Advanced Functions a template to copy. Modules Combine functions into a module for easy re-use.
Example scripts and functions
Base36 Convert numbers to/from base 36. CD - Jump to the previous working directory. Console Size Set the PowerShell console window size. DelOlder Delete files and folders older than n days. DisplayRes Get the display resolution of multiple computers. Check-Backups Check multiple locations for files that have changed. Get-Bandwidth List the average IO for a Network interface. Get-DiskSpace List the free disk space for multiple computers. Get-OSVersion Get the OS and Service pack level of a remote machine (inventory). Get-Programs List Installed Software (Add/Remove programs) Get-Uptime Get the system Uptime for one or more computers. Logged On Who is logged in / where is a user logged in. LastLogon Find when an account last logged in. MsgBox A function to display messages in a popup message box. Password expiry Reminder email. pshInfo List Ram, Disk Space, Service pack, Uptime. psp PowerShell Ping. Set-LastWrite Reset Folder Last Modified to the most recent file in the folder. ServiceStatus List installed services and service status. set-eol Change the line endings (CR/LF) of a text file. StampMe Rename a file with the current Date/Time. Touch Change the date/time of a file/folder. Video Converter A simple GUI front end for the FFmpeg video converter (compress/resize).
Reference / How to
Run a script How to run a .ps1 script by calling PowerShell.exe Elevate Run with elevated permissions (As Admin). Comments How to comment your scripts. Circular Find circular nested AD groups. Event IDs The most common Windows Event IDs. Keyboard Keyboard shortcuts. LDAP Lightweight Directory Access Protocol (LDAP) queries. Open Here Open PowerShell from any folder. PS verbs Naming convention (Technet) $Profile The PowerShell startup $Profile. Prompt Configure the PowerShell prompt. PS Remoting Run PowerShell on remote machines. #requires Prevent a script from running without a required element. Template Starting point for new PowerShell scripts. Verbs Approved Verbs for PowerShell OS Version How to retrieve the OS version in PowerShell.
See also: Links to PowerShell Websites, Utilities and Books.