Powershell Quick Reference Sheet

ADVERTISEMENT

PowerShell Quick Reference
v3.03 by Dimitri Koens -
Please contact me with questions, remarks, etc regarding this document at dimitrikoens at . Join me on
Linked in and Twitter to receive valuable information regarding PowerShell, SCOM, SQL Server and Virtualization.
Quick Start
Get-Process
# displays a list of running processes
Get-Process
|
Select-Object
Name,
Company
# selects several columns
Get-Process
|
Select-Object
Name,
Company
|
Format-Table
-AutoSize
# uses minimal column width
Get-Process
|
Select-Object
Name,
Company
|
Format-List
# displays a list instead of a table
Get-Process
|
Sort-Object
ID
–Descending
# sorts on process id instead of name
Get-Process
|
Where-Object
{ $_.vm
–gt
150MB
}
# selects processes where virtual memory is greater than 150MB
Get-Process
|
Select-Object
Name,
@{Name=”Virtual
Memory”; Expression={$_.vm}}
# changes the name of a column
Get-Process
|
Select-Object
Name,VM,WS,@{Label="TotalMemory";Expression={$_.vm
+
$_.ws}}
# introduces a calculated column
Get-Process
|
Select-Object
Name,VM,WS,@{Label="Total Memory in
MB";Expression={[int](($_.vm
+
$_.ws)/1MB)}}
# calculated column and rounded to integer
Built-in Help functionality
Get-Help
Get-Command
-CommandType
Cmdlet
# display all native PowerShell cmdlets
Get-Help
Get-Process
–full
Get-Process
|
Get-Member
# display the properties and methods of the output
Get-Help
Get-Process
–examples
# view the example commands
Get-Help
about*
# lists all the about-articles, use the full article name to view its
# The following two examples help you to protect you from ... you!
contents, e.g. about_scripts
Get-Process
PowerShell
|
Stop-Process
–whatif
# displays the command without
actually executing it
Get-Command
# display all commands
Get-Process
PowerShell
|
Stop-Process
–confirm
# asks for confirmation
Get-Command
*process*
# display all commands containing the word “process”
Aliases (and functions denoted by *)
All default cmdlets with “-Object” as a noun are aliased to their verb without “-Object”, e.g. Sort is an alias of Sort-Object, Select is an alias of Select-Object
Get-Alias
|
Group-Object
Definition
# display all possible aliases per command
Command
Alias
Command
Alias
Command
Alias
Clear-Host
cls, clear
Get-Help
help *, man
Rename-Item
rni, ren
Copy-Item
copy, cpi, cp
Get-Member
gm
Select-String
sls (Psv3+)
ForEach-Object
foreach, %
Get-Process
gps, ps
Set-Location
sl, cd, chdir
Format-List
FL
Get-WmiObject
gwmi
Start-Sleep
sleep
Format-Table
FT
Move-Item
mi, move, mv
Stop-Process
spps, kill
Get-ChildItem
gci, dir, ls
Out-Host
oh
Where-Object
where, ?
Get-Command
gcm
Powershell_ise.exe
ise (PSv2+)
Write-Output
echo, write
Get-Content
gc, type, cat
Remove-Item
ri, del, erase, rmdir, rd, rm
New alias expected in Windows 2015: Set-Alias Ping Test-Connection. Select-String has an alias in PSv3: sls. Shouldn’t this have been ‘grep’? ;)
Operators (most of them), Get-Help about _Operators
Operator
Meaning
Operator
Meaning
+, -, *, /, %
add, subtract, multiply, divide, remainder
=, +=, -=, *=, /=, %=
assign/change/append one or more values to variables
-eq, -ne
Equal, not equal: 5 –eq 5
-match, -notmatch, -cmatch
regular expression match: “Rick” -match "[DMNR]ick"
-gt, -ge
greater than, greater than or equals: 6 –gt 5
-contains, -notcontains
Array contains specific value: “red”, “blue” –contains “blue”
-lt, -le
less than, less than or equals: 5 –lt 6
-and, -or, -xor, -not, !
Logical operators
-like, -notlike, -clike
wildcard comparison: "Samantha" -like "sam*"
-f
Formatting: $a=2987654; “free space: {0:N0} bytes” -f $a
Punctuation Marks
( expression )
{ code block }
[ item in array ]
“string with automatic variable expansion”
` backtick is the escape character, mostly found on the key combined with tilde-sign ~
‘string without automatic variable expansion‘
Keyboard shortcuts
Ctrl , Ctrl : jump one word left or right
Tab: command completion
F7: display history popup, Alt-F7: clears command buffer
Esc: clear the command line
F8: lookup last command that starts with current input. Try
| More: <Ctrl-C> quit, <q> quit, <space> scroll page,
this: Get-Process; <enter>; Get<F8>
<enter> scroll one line
Use arrow up and down to browse previous commands
Home, End: jump to start or end of current command line
Within ISE: F5 = Run, F8 = Run Selection
Security
The .ps1 extension
Execution Policy (Set- and Get-ExecutionPolicy)
To prevent command hijacking
Associated with Notepad. When a user receives a
Restricted (default), AllSigned, RemoteSigned, Unrestricted (not
You can only run commands from the current
PowerShell script through e-mail and doubleclicks it
recommended)
location by specifying the path to the script.
then the script just opens in notepad instead of
Example: .\script.ps1 instead of script.ps1.
Remote scripts: not on local fixed disks, like CD’s/DVD’s, drive mappings to
executing (like the i-love-you virus did).
network shares, attachements in e-mail and chat-programs.
Variables
$_
# Current object in the pipeline
$Host
# Displays the PowerShell version
$Home
# Full path to the user’s home directory
$i
=
1
# storing value 1 in variable $i
$PSHome
# Full path to the installation directory
$i++
# incrementing $i with 1, resulting in 2
Working with files
Get-Process
|
Out-File
p.txt
–append
Get-Process
|
Export-CSV
p.csv
Get-Process
|
Export-CliXML
p.xml
Import-CSV
p.csv
# displays using Format-List because there are more than four columns and object type is not recognized
Import-CliXML
p.xml
# displays using Format-Table because object type is recognized (try to add: | Get-Member)
Compare-Object (Import-Clixml
p.xml) (Get-Process)
-Property
name
# compare processes stored in XML with current situation
Dir
–Recurse
|
Where
{ $_.length
–gt
100MB
}
|
Group
Length
|
Where
{ $_.count
–gt
1
}
# displays large files with exact same size, might be duplicate
This document is licensed under a Creative Commons Attribution-NonCommercial-NoDerivsCC BY-NC-ND license.

ADVERTISEMENT

00 votes

Related Articles

Related forms

Related Categories

Parent category: Education
Go
Page of 2