Powershell Commands And Notes


Powershell has great documentation inside of the shell, including examples. To turn on complete documentation add -full argument.

Get-Help [command name or topic]
Get-Help [command name or topic] -full

All powershell commands start with a verb and followed by a noun.


To get a list of commands:


All commands related to process or noun

get-command -noun process

All commands that have a verb

get-command -verb get


List of processes


To stop process and get help on the command, to see examples.

get-help stop-process -full	

What if?

Almost all commands have -WhatIf argument, you can try a command before executing.


One of the most powerful features. Take output and “Pipe” to the next command get-process sort-object
get-process | sort-object -property Id

To see the list of all available properties from the command

get-process | get-member


Think of it when you have a question, what do I have, or what does this object have.

Filtering and blocks

get-process | where-object { $_.processname -eq 'powershell' }

Curly braces represent the filter block. The $_ represents the current item.

get process | where-object { $_.CPU -gt 1 } | foreach-object { $_.processname + " is over threashold " }

Outputting to the file

get process | where-object { $_.CPU -gt 1 } | foreach-object { $_.processname + " is over threashold " } | out-file cpuinfo.txt

Execution policy


You won’t be able to run any scripts if the scripts are restricted. To change execution policy.

Set-ExecutionPolicy remotesigned


Once you have your execution policy set to remotesigned you can execute scripts that were created on the local machine. Save scripts with .ps1 extension. And script can be executed by providing a path to the script in the powershell. Like ./somescript.ps1. First dot stands for the current directory.

Great Topics with Get-Help

Get-Help About_Execution_Policies
Get-Help About_Operators
Get-Help About_Common_Parameters
Get-Help About_Pipelines
Get-Help About_Scripts
Get-Help About_*

#Creating scripts to start applications and more.

Typing is better than clicking. Automate tasks that are common with windows explorer.

Get your current location


To change your location:

set-location /.documents
chdir ..
cd ./documents

Push location will save your current location before moving to the new location. Once you are done use pop-location to get back to where you were before.

push-location /
pushd ~/desktop

Common use is to control the location inside of the script

Drive -> Folder -> file

Powershell treats many things like drives, for example registry, functions and system drives.


You can cd into certificate stores

cd cert:


cd env:


cd hkcu:

Push and pop work on custom drives.

Item commands

This are very useful.

get-command *item


Equivalent as double click, will open with default registered file. Alias

ii message.txt

Will open folder if set to the folder.

http://bit.ly/psphere to add to the windows explorer open in powershell

Automating projects

cd ~/documents/project
push-location "~/documents/project/test"

function push-project( $project ) 
	# 1: navigate powershll to the project folder
	pushd "~/document/project/$project"
	# 2: open windows explorer at the project folder
	invoke-item .;
	# 3: open any solution found in the project folder
	invoke-item *.sln;


Powershell saves scripts into the users profile


Create a profile script file

new-item -type file -path $profile
invoke-item $profile

You can add the function to your user profile. And you can add an alias for the function

new-alias -name pp -value push-project

There are 4 profile scripts in powershell

$profile | select *

Get-Help *Location
Get-Help *Item
Get-Help About_Providers
Get-Help About_Functions
Get-Help About_Profiles