PowerShell Approved Verbs
Every approved PowerShell verb with its group, alias prefix and meaning, the synonyms to avoid, and a checker for your own function names.
PowerShell commands are named Verb-Noun, and the verb should come from Microsoft's approved list: it's how people guess
your commands (Get-Command -Verb Get), and Import-Module prints a warning when a module
exports anything else. Type a verb or a whole function name to check it, or browse all 100 verbs
with the synonyms Microsoft says to avoid. Verbs, groups, alias prefixes and meanings are Get-Verb's own
(PowerShell 7.6 and Windows PowerShell 5.1); the guidance follows
Approved Verbs for PowerShell Commands on Microsoft Learn.
Naming rules
- Verb-Noun, in Pascal case: an approved verb, a dash and a singular noun.
Get-Item, notget-item,Gets-ItemorGet-Items. - Pick the general action, refine with parameters.
Remove-Item -Recurse, not a separateDelete-Folder. Never a synonym of an approved verb: Remove, not Delete or Eliminate. - Add a prefix to the noun when your commands might clash with someone else's:
Get-ADUser,Get-AzVM. - Why it matters:
Import-Modulewarns when a module exports unapproved verbs (-DisableNameCheckinghides the warning, it doesn't fix it), and PSScriptAnalyzer's UseApprovedVerbs rule flags them. - Reserved: ForEach, Sort, Tee, Where are kept for the language and a few built-in cmdlets (ForEach-Object, Sort-Object, Tee-Object, Where-Object); Ping is deprecated in favour of Test.
- Version: Build and Deploy were added in PowerShell 6. Windows PowerShell 5.1 doesn't know them, so a module using them still gets the warning there.
- Alias prefixes are how built-in aliases are formed:
ip(Import) +mo(Module) =ipmo. Microsoft calls this a recommendation, not a rule.
Similar verbs, different jobs
- New or Add
- New creates something. Add puts something into a container that already exists: Add-Content appends to a file.
- New or Set
- Set changes something that exists, and may create it if it's missing (Set-Variable). New only creates.
- Get or Read
- Get returns information about a resource, or an object to work with it. Read opens a resource and takes out what's inside it.
- Invoke or Start
- Invoke runs something and waits for it to finish. Start begins something that keeps running on its own.
- Find or Search
- Find looks for an object. Search, in Microsoft's definition, creates a reference to a resource in a container.
- Ping or Test
- Test. Ping is deprecated.
100 approved verbs
Generic actions that fit almost any kind of resource: create, read, change, remove, move between states.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Add | a | Adds a resource to a container, or attaches an item to another item | Remove | Append, Attach, Concatenate, Insert | Add-Content, Add-Member, Add-Type |
| Clear | cl | Removes all the resources from a container but does not delete the container | — | Flush, Erase, Release, Unmark, Unset, Nullify | Clear-Item, Clear-Content, Clear-History |
| Close | cs | Changes the state of a resource to make it inaccessible, unavailable, or unusable | Open | — | — |
| Copy | cp | Copies a resource to another name or to another container | — | Duplicate, Clone, Replicate, Sync | Copy-Item, Copy-ItemProperty |
| Enter | et | Specifies an action that allows the user to move into a resource | Exit | Push, Into | Enter-PSSession, Enter-PSHostProcess |
| Exit | ex | Sets the current environment or context to the most recently used context | Enter | Pop, Out | Exit-PSSession, Exit-PSHostProcess |
| Find | fd | Looks for an object in a container that is unknown, implied, optional, or specified | — | Search | Find-Module, Find-Script, Find-Command |
| Format | f | Arranges objects in a specified form or layout | — | — | Format-Table, Format-List, Format-Hex |
| Get | g | Specifies an action that retrieves a resource | Set | Read, Open, Cat, Type, Dir, Obtain, Dump, Acquire, Examine, Find, Search | Get-ChildItem, Get-Content, Get-Process |
| Hide | h | Makes a resource undetectable | Show | Block | — |
| Join | j | Combines resources into one resource | Split | Combine, Unite, Connect, Associate | Join-Path, Join-String |
| Lock | lk | Secures a resource | Unlock | Restrict, Secure | — |
| Move | m | Moves a resource from one location to another | — | Transfer, Name, Migrate | Move-Item, Move-ItemProperty |
| New | n | Creates a resource | — | Create, Generate, Build, Make, Allocate | New-Item, New-Object, New-PSSession |
| Open | op | Changes the state of a resource to make it accessible, available, or usable | Close | — | — |
| Optimize | om | Increases the effectiveness of a resource | — | — | — |
| Pop | pop | Removes an item from the top of a stack | — | — | Pop-Location |
| Push | pu | Adds an item to the top of a stack | — | — | Push-Location |
| Redo | re | Resets a resource to the state that was undone | — | — | — |
| Remove | r | Deletes a resource from a container | Add | Clear, Cut, Dispose, Discard, Erase | Remove-Item, Remove-Module, Remove-Variable |
| Rename | rn | Changes the name of a resource | — | Change | Rename-Item, Rename-ItemProperty, Rename-Computer |
| Reset | rs | Sets a resource back to its original state | — | — | Reset-ComputerMachinePassword, Reset-PSResourceRepository |
| Resize | rz | Changes the size of a resource | — | — | — |
| Search | sr | Creates a reference to a resource in a container | — | Find, Locate | — |
| Select | sc | Locates a resource in a container | — | Find, Locate | Select-Object, Select-String, Select-Xml |
| Set | s | Replaces data on an existing resource or creates a resource that contains some data | Get | Write, Reset, Assign, Configure, Update | Set-Content, Set-Location, Set-ItemProperty |
| Show | sh | Makes a resource visible to the user | Hide | Display, Produce | Show-Command, Show-EventLog, Show-ControlPanelItem |
| Skip | sk | Bypasses one or more resources or points in a sequence | — | Bypass, Jump | — |
| Split | sl | Separates parts of a resource | Join | Separate | Split-Path |
| Step | st | Moves to the next point or resource in a sequence | — | — | — |
| Switch | sw | Specifies an action that alternates between two resources, such as to change between two locations, responsibilities, or states | — | — | — |
| Undo | un | Sets a resource to its previous state | — | — | Undo-Transaction |
| Unlock | uk | Releases a resource that was locked | Lock | Release, Unrestrict, Unsecure | — |
| Watch | wc | Continually inspects or monitors a resource for changes | — | — | — |
Links and messages between a source and a destination.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Connect | cc | Creates a link between a source and a destination | Disconnect | Join, Telnet, Login | Connect-PSSession, Connect-WSMan |
| Disconnect | dc | Breaks the link between a source and a destination | Connect | Break, Logoff | Disconnect-PSSession, Disconnect-WSMan |
| Read | rd | Acquires information from a source | Write | Acquire, Prompt, Get | Read-Host |
| Receive | rc | Accepts information sent from a source | Send | Read, Accept, Peek | Receive-Job, Receive-PSSession |
| Send | sd | Delivers information to a destination | Receive | Put, Broadcast, Mail, Fax | Send-MailMessage |
| Write | wr | Adds information to a target | Read | Put, Print | Write-Host, Write-Output, Write-Error |
Handling data: converting, storing, importing and exporting, comparing, compressing.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Backup | ba | Stores data by replicating it | — | Save, Burn, Replicate, Sync | — |
| Checkpoint | ch | Creates a snapshot of the current state of the data or of its configuration | — | Diff | Checkpoint-Computer |
| Compare | cr | Evaluates the data from one resource against the data from another resource | — | Diff | Compare-Object |
| Compress | cm | Compacts the data of a resource | Expand | Compact | Compress-Archive, Compress-PSResource |
| Convert | cv | Changes the data from one representation to another when the cmdlet supports bidirectional conversion or when the cmdlet supports conversion between multiple data types | — | Change, Resize, Resample | Convert-Path, Convert-String |
| ConvertFrom | cf | Converts one primary type of input (the cmdlet noun indicates the input) to one or more supported output types | — | Export, Output, Out | ConvertFrom-Json, ConvertFrom-Csv, ConvertFrom-SecureString |
| ConvertTo | ct | Converts from one or more types of input to a primary output type (the cmdlet noun indicates the output type) | — | Import, Input, In | ConvertTo-Json, ConvertTo-Csv, ConvertTo-SecureString |
| Dismount | dm | Detaches a named entity from a location | Mount | Unmount, Unlink | — |
| Edit | ed | Modifies existing data by adding or removing content | — | Change, Update, Modify | — |
| Expand | en | Restores the data of a resource that has been compressed to its original state | Compress | Explode, Uncompress | Expand-Archive |
| Export | ep | Encapsulates the primary input into a persistent data store, such as a file, or into an interchange format | Import | Extract, Backup | Export-Csv, Export-Clixml, Export-ModuleMember |
| Group | gp | Arranges or associates one or more resources | — | — | Group-Object |
| Import | ip | Creates a resource from data that is stored in a persistent data store (such as a file) or in an interchange format | Export | BulkLoad, Load | Import-Module, Import-Csv, Import-Clixml |
| Initialize | in | Prepares a resource for use, and sets it to a default state | — | Erase, Init, Renew, Rebuild, Reinitialize, Setup | — |
| Limit | l | Applies constraints to a resource | — | Quota | Limit-EventLog |
| Merge | mg | Creates a single resource from multiple resources | — | Combine, Join | — |
| Mount | mt | Attaches a named entity to a location | Dismount | Connect | — |
| Out | o | Sends data out of the environment | — | — | Out-File, Out-String, Out-GridView |
| Publish | pb | Makes a resource available to others | Unpublish | Deploy, Release, Install | Publish-Module, Publish-Script, Publish-PSResource |
| Restore | rr | Sets a resource to a predefined state, such as a state set by Checkpoint | — | Repair, Return, Undo, Fix | Restore-Computer |
| Save | sv | Preserves data to avoid loss | — | — | Save-Help, Save-Module, Save-Script |
| Sync | sy | Assures that two or more resources are in the same state | — | Replicate, Coerce, Match | — |
| Unpublish | ub | Makes a resource unavailable to others | Publish | Uninstall, Revert, Hide | — |
| Update | ud | Brings a resource up-to-date to maintain its state, accuracy, conformance, or compliance | — | Refresh, Renew, Recalculate, Re-index | Update-Help, Update-List, Update-Module |
Checking, measuring and troubleshooting.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Debug | db | Examines a resource to diagnose operational problems | — | Diagnose | Debug-Job, Debug-Process, Debug-Runspace |
| Measure | ms | Identifies resources that are consumed by a specified operation, or retrieves statistics about a resource | — | Calculate, Determine, Analyze | Measure-Object, Measure-Command |
| Ping | pi | Use the Test verb | — | — | — |
Note: Deprecated: use Test. | |||||
| Repair | rp | Restores a resource to a usable condition | — | Fix, Restore | — |
| Resolve | rv | Maps a shorthand representation of a resource to a more complete representation | — | Expand, Determine | Resolve-Path |
| Test | t | Verifies the operation or consistency of a resource | — | Diagnose, Analyze, Salvage, Verify | Test-Path, Test-Connection, Test-Json |
| Trace | tr | Tracks the activities of a resource | — | Track, Follow, Inspect, Dig | Trace-Command |
Moving something through its life: install, start, stop, approve, register.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Approve | ap | Confirms or agrees to the status of a resource or process | — | — | — |
| Assert | as | Affirms the state of a resource | — | Certify | — |
| Build | bd | Creates an artifact (usually a binary or document) out of some set of input files (usually source code or declarative documents) | — | — | — |
Note: PowerShell 6 and later. Windows PowerShell 5.1 doesn't list it, so Import-Module warns there. | |||||
| Complete | cmp | Concludes an operation | — | — | Complete-Transaction |
Note: Get-Verb gives the alias prefix cmp; Microsoft Learn's table shows cp, which is Copy's. | |||||
| Confirm | cn | Acknowledges, verifies, or validates the state of a resource or process | — | Acknowledge, Agree, Certify, Validate, Verify | — |
| Deny | dn | Refuses, objects, blocks, or opposes the state of a resource or process | — | Block, Object, Refuse, Reject | — |
| Deploy | dp | Sends an application, website, or solution to a remote target[s] in such a way that a consumer of that solution can access it after deployment is complete | — | — | — |
Note: PowerShell 6 and later. Windows PowerShell 5.1 doesn't list it, so Import-Module warns there. | |||||
| Disable | d | Configures a resource to an unavailable or inactive state | Enable | Halt, Hide | Disable-PSBreakpoint, Disable-PSRemoting, Disable-WSManCredSSP |
| Enable | e | Configures a resource to an available or active state | Disable | Start, Begin | Enable-PSBreakpoint, Enable-PSRemoting, Enable-WSManCredSSP |
| Install | is | Places a resource in a location, and optionally initializes it | Uninstall | Setup | Install-Module, Install-Script, Install-Package |
| Invoke | i | Performs an action, such as running a command or a method | — | Run, Start | Invoke-Command, Invoke-WebRequest, Invoke-RestMethod |
| Register | rg | Creates an entry for a resource in a repository such as a database | Unregister | — | Register-WmiEvent, Register-EngineEvent, Register-ObjectEvent |
| Request | rq | Asks for a resource or asks for permissions | — | — | — |
| Restart | rt | Stops an operation and then starts it again | — | Recycle | Restart-Service, Restart-Computer |
| Resume | ru | Starts an operation that has been suspended | Suspend | — | Resume-Job, Resume-Service |
| Start | sa | Initiates an operation | Stop | Launch, Initiate, Boot | Start-Process, Start-Service, Start-Job |
| Stop | sp | Discontinues an activity | Start | End, Kill, Terminate, Cancel | Stop-Process, Stop-Service, Stop-Job |
| Submit | sb | Presents a resource for approval | — | Post | — |
| Suspend | ss | Pauses an activity | Resume | Pause | Suspend-Job, Suspend-Service |
| Uninstall | us | Removes a resource from an indicated location | Install | — | Uninstall-Module, Uninstall-Script, Uninstall-Package |
| Unregister | ur | Removes the entry for a resource from a repository | Register | Remove | Unregister-Event, Unregister-PSRepository, Unregister-PackageSource |
| Wait | w | Pauses an operation until a specified event occurs | — | Sleep, Pause | Wait-Job, Wait-Process |
Access and protection.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Block | bl | Restricts access to a resource | Unblock | Prevent, Limit, Deny | — |
| Grant | gr | Allows access to a resource | Revoke | Allow, Enable | — |
| Protect | pt | Safeguards a resource from attack or loss | Unprotect | Encrypt, Safeguard, Seal | Protect-CmsMessage |
| Revoke | rk | Specifies an action that does not allow access to a resource | Grant | Remove, Disable | — |
| Unblock | ul | Removes restrictions to a resource | Block | Clear, Allow | Unblock-File |
| Unprotect | up | Removes safeguards from a resource that were added to prevent it from attack or loss | Protect | Decrypt, Unseal | Unprotect-CmsMessage |
Verbs that don't fit the other groups.
| Verb | Alias prefix | Meaning | Pairs with | Use it instead of | Built-in examples |
|---|---|---|---|---|---|
| Use | u | Uses or includes a resource to do something | — | — | Use-Transaction |