Final Approved Verb List for Windows PowerShell 2.0

Final Approved Verb List for Windows PowerShell 2.0

  • Comments 4

First, I want to say thanks to everyone who posted suggestions for the verb list on the blog post at http://blogs.msdn.com/powershell/archive/2009/04/22/soliciting-new-verbs.aspx. In addition to the blog comments, we received a lot of feedback from our MVPs and internal partners.

I wanted to loop back with everyone on the outcome of the verb list update and post the final approved verb list for Windows PowerShell 2.0. I also wanted to give visibility into what some of the verbs were that we considered but ultimately did not approve and what we feel are the best matches for those on the approved list. In total, we received nearly 80 proposals for new verbs - a partial list is below. Of the roughly 80, we added 20 new verbs, 4 of which were added in RC.

We'll be working to update the MSDN documentation with this list in the coming weeks. In the meantime, feel free to use the list below as the official list for PowerShell 2.0. As mentioned previously, you can also use the Get-Verb function in PowerShell to retrieve the list of approved verbs.

Final List of Approved Verbs for Windows PowerShell 2.0

Verb Group New?
---- ----- ----
Add Common
Approve Lifecycle New in RTM
Assert Lifecycle New in RTM
Backup Data
Block Security
Checkpoint Data
Clear Common
Close Common New in RTM
Compare Data
Complete Lifecycle
Compress Data
Confirm Lifecycle New in RTM
Connect Communications
Convert Data
ConvertFrom Data
ConvertTo Data
Copy Common
Debug Diagnostic
Deny Lifecycle New in RTM
Disable Lifecycle
Disconnect Communications
Dismount Data
Edit Data
Enable Lifecycle
Enter Common
Exit Common
Expand Data
Export Data
Find Common New in RTM
Format Common New in RC
Get Common
Grant Security
Group Data New in RTM
Hide Common
Import Data
Initialize Data
Install Lifecycle
Invoke Lifecycle
Join Common
Limit Data
Lock Common
Measure Diagnostic
Merge Data
Mount Data
Move Common
New Common
Open Common New in RTM
Out Data
Ping Diagnostic
Pop Common
Protect Security New in RTM
Publish Data
Push Common
Read Communications
Receive Communications
Redo Common
Register Lifecycle
Remove Common
Rename Common
Repair Diagnostic
Request Lifecycle New in RTM
Reset Common New in RC
Resolve Diagnostic
Restart Lifecycle
Restore Data
Resume Lifecycle
Revoke Security
Save Data
Search Common New in RC
Select Common
Send Communications
Set Common
Show Common
Skip Common New in RTM
Split Common
Start Lifecycle
Step Common New in RTM
Stop Lifecycle
Submit Lifecycle New in RTM
Suspend Lifecycle
Switch Common New in RC
Sync Data New in RTM
Test Diagnostic
Trace Diagnostic
Unblock Security
Undo Common
Uninstall Lifecycle
Unlock Common
Unprotect Security New in RTM
Unpublish Data
Unregister Lifecycle
Update Data
Use Other
Wait Lifecycle
Watch Common New in RTM
Write Communications


Partial List of Verbs Considered (these were not approved)

Verb Approved Alternatives
---- -----
Activate Enable
Aggregate Join, Group
Apply Set, Set -Apply, Invoke, Convert
Assign Set
Bind Join, Set, Connect
Bridge Connect
Certify Confirm, Assert
Check Test
Choose Select, Select -Show
Clean Clear, Initialize, Update
Continue Resume
Deactivate Disable
Decode Convert, ConvertTo, ConvertFrom
Decrypt Unprotect -Decrypt
Delete Remove, Remove -Delete, Remove -Force
Deprovision Remove, Uninstall
Discover Search, Find
Encode Convert, ConvertTo, ConvertFrom
Encrypt Protect, Protect -Encrypt, Protect -Sign
Evict Remove, Exit, Uninstall, Unregister
Extract Get, Move, Copy, Select, Convert
Failover Switch
Generate New
GoTo Set
Hash Get
Heartbeat Test
Load Import, Add
Offline Disconnect, Disable, Set
Online Connect, Enable, Set
Options Set -Option, Get -Option
Perform Invoke
Play Start, Invoke
Post Submit
Put Send, Set
Reconnect Connect, Connect -Retry
Recover Restore
Reject Deny
RemoveFrom Remove
Replicate Start, Invoke, Copy, Enable
Reseed Initialize, Initialize -Retry, Restore
Resize Set
Resynchronize Sync, Sync -Retry
Retry Use as a parameter
Script ConvertTo, New
Seal Use as a parameter or noun
SearchFor Find
Seed Initialize
Seek Set
Setup Set, Initialize, Install
Shutdown Stop, Stop -Force
Sign Set
Switchover Switch
Take Set
Toggle Switch
Unbind Split, Set, Disconnect
Unseal Use as a parameter or noun
Verify Test

Dan Harman
Program Manager
Windows PowerShell

Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post
  • when is the next CTP or beta being released for PowerShell 2.0

  • I am curious to learn why some of those were not approved? I don't know if you can share?

    Bill, I am guessing PowerShell 2.0 will not be released prior to Windows 7 or Windows 2008 release date.

  • When I first encountered PowerShell, the concept of a list of approved verbs struck me as strange - why do I have to use a list of verbs MS decided on?  They will always be some actions in my product that do not fit into any of these verbs, and my existing customers will have to relearn what the commands mean.  However, after a while I came to believe that perhaps a small set of verbs does make sense, in that it provides a uniform way to address actions.  E.g., Instead of "Assign-User" I can use "Add-UserAssignment".  Fine.

    But now there are 96 verbs.  The list of "approved" verbs is well on its way to complete dilution.  What is point of having 96 approved verbs?  It's not like users are going to understand or care about the difference between GET or SELECT or FIND or REQUEST.  They want whatever is easy and fits the product.  I'm sure PS3 will have 134 approved verbs.  I see my example "assign" has been [arbitrarily] rejected for PS2.

    Seriously, is there a point to these anymore?  Why not just suggest the best-practice of using the verb-noun syntax for your cmdlets and forget the whole approved-verbs thing?

  • Will you be updating the Microsoft Command Line Standard also?

    http://www.microsoft.com/technet/scriptcenter/topics/winpsh/cmdline_std.mspx

Page 1 of 1 (4 items)