PowerShell Commands Structure
As in every command line interface you have to know the commands and the difficult part is to remember them. In this tutorial we will see a few things regarding PowerShell commands structure that will help you out to have a better understanding and may help you to memorize commands easier. PowerShell uses cmdlets, which follow one simple rule Verb-Noun -Parameter.
Verb
Every single command will start with the Verb which indicates the action that we want to perform. The most common verbs, in my opinion, are Get and Set. Each Verb is easily recognizable and memorable to help you remember or find out the cmdlet that you need to use. You are able to get the full list of PowerShell’s approved verbs using the following command:
PS C:\Users\Stephanos> Get-Verb
Verb Group
---- -----
Add Common
Clear Common
Close Common
Copy Common
Enter Common
Exit Common
Find Common
Format Common
Get Common
Hide Common
Join Common
Lock Common
Move Common
New Common
Open Common
Optimize Common
Pop Common
Push Common
Redo Common
Remove Common
Rename Common
Reset Common
Resize Common
Search Common
Select Common
Set Common
Show Common
Skip Common
Split Common
Step Common
Switch Common
Undo Common
Unlock Common
Watch Common
Backup Data
Checkpoint Data
Compare Data
Compress Data
Convert Data
ConvertFrom Data
ConvertTo Data
Dismount Data
Edit Data
Expand Data
Export Data
Group Data
Import Data
Initialize Data
Limit Data
Merge Data
Mount Data
Out Data
Publish Data
Restore Data
Save Data
Sync Data
Unpublish Data
Update Data
Approve Lifecycle
Assert Lifecycle
Complete Lifecycle
Confirm Lifecycle
Deny Lifecycle
Disable Lifecycle
Enable Lifecycle
Install Lifecycle
Invoke Lifecycle
Register Lifecycle
Request Lifecycle
Restart Lifecycle
Resume Lifecycle
Start Lifecycle
Stop Lifecycle
Submit Lifecycle
Suspend Lifecycle
Uninstall Lifecycle
Unregister Lifecycle
Wait Lifecycle
Debug Diagnostic
Measure Diagnostic
Ping Diagnostic
Repair Diagnostic
Resolve Diagnostic
Test Diagnostic
Trace Diagnostic
Connect Communications
Disconnect Communications
Read Communications
Receive Communications
Send Communications
Write Communications
Block Security
Grant Security
Protect Security
Revoke Security
Unblock Security
Unprotect Security
Use Other
As you can see above, Get-Verb
gives you a list of all verbs and the group that it belongs to.
Noun
The verb then is followed by a dash (-) and a Noun. The noun is the object or object type that you want to perform the action. Lets take two different objects and find out any cmdlets that they are related to these two. We will look at the Process and Service cmdlets.
PS C:\Users\Stephanos> Get-Command -Noun Service CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Get-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet New-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Restart-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Resume-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Set-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Start-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Stop-Service 3.1.0.0 Microsoft.PowerShell.Management Cmdlet Suspend-Service 3.1.0.0 Microsoft.PowerShell.Management
PS C:\Users\Stephanos> Get-Command -Noun Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 3.1.0.0 Microsoft.PowerShell.Management
As you can see above all commands related they follow the same pattern of Verb-Noun.
Some nouns have prefixes based on the module and the object that you are working on. Below is the list of those prefixes:
- PS – Powershell
- AD – Active Directory
- DHCP – DHCP Server
- DNS – DNS Server and Client
- NET – Networking
- GP – Group Policy
- VM – Hyper-V
- SQL – SQL Server
- Web – Web Administration
- IIS – IIS Administration
- SP – SharePoint
- SPO – SharePoint Online
- Azure – Azure
- MSMQ – Microsoft Messaging Queue
After the cmdlet name, parameters maybe supplied. It is not always nessesary to state the name of The parameter, and while some parameters are mandatory, others van be ommited entirely. The are common parameters for all cmdlets and specific parameters for each of the cmdlets. The common parameters are the below:
- WhatIf
- Confirm
- Verbose
- Debug
- Warn
- ErrorAction
- ErrorVariable
- OutVariable
- OutBuffer
I hope the tutorial about PowerShell commands structure is helpful.
Please let me know your comments and thoughts. You feedback is appreciated.
Related Links:


Leave a Reply