Welcome to the PowerShell scripting blog! If you’ve ever delved into writing advanced functions, you know the importance of naming conventions and syntax. In PowerShell, verbs and nouns play a crucial role in creating commands that are not only functional but also intuitive and standardized. This post will guide you through the verbs and nouns required for advanced functions, providing examples and best practices to elevate your scripting.
The Importance of Verbs and Nouns in PowerShell
PowerShell uses a Verb-Noun
naming convention for cmdlets and functions, which helps scripters and users quickly understand what a command does.
Verbs
Verbs are action words that describe what the function does. PowerShell provides a set of approved verbs to standardize the functions.
- Get: Retrieves data.
- Set: Modifies data.
- New: Creates new data.
- Remove: Deletes data.
These are just a few examples. You can get a full list of approved verbs by running Get-Verb
in PowerShell.
PS C:\windows\system32> 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
PowerShellNouns
Nouns describe the entity that the verb is acting upon. It’s a practice to use singular nouns for commands.
- User: Refers to a user entity.
- File: Refers to a file entity.
Examples
Example 1: Creating a Simple Function
function Get-FileList {
[CmdletBinding()]
param (
[parameter(Mandatory)]
[string]$Path
)
Get-ChildItem -Path $Path
}
This function uses the Get
verb to indicate that it retrieves data, specifically a list of files from a given path.
Example 2: Adding a New User
function New-UserAccount {
[CmdletBinding()]
param (
[parameter(Mandatory)]
[string]$UserName,
[parameter(Mandatory)]
[string]$Password
)
# Logic to create a new user account
}
This function uses the New
verb, indicating it creates a new user account.
Best Practices
- Use Approved Verbs: Always use verbs from the list provided by
Get-Verb
to ensure consistency. - Singular Nouns: Use singular nouns to make it clear you’re acting on a single entity.
- Clarity: Choose verbs and nouns that clearly describe the function’s action and the entity it acts upon.
- Avoid Abbreviations: Do not abbreviate verbs or nouns. It might make the command less intuitive.
- Consistency: Stick with the same verb for functions that perform similar actions.
- Documentation: Provide comment-based help to explain what your function does, especially if the function’s name alone isn’t enough.
Series – Functions
Conclusion
Understanding and following the standard naming conventions in PowerShell is vital for writing clear, effective, and reusable advanced functions. Using the correct verbs and nouns not only helps in creating a consistent scripting environment but also aids in self-documenting your scripts, making them more accessible to others. Happy scripting!
Remember: Good naming conventions are the hallmark of a skilled PowerShell scripter. They enhance code readability, maintainability, and user experience.
Stay tuned for more PowerShell tips, tricks, and best practices in our upcoming posts!
Pingback: Basic Functions in PowerShell: A Guide to Best Practices – Infrastructure through PowerShell