Worldscope

cmdlets List

Palavras-chave:

Publicado em: 29/08/2025

Understanding and Working with Cmdlets in PowerShell

Cmdlets are the fundamental building blocks of PowerShell. They are lightweight commands that perform a single function. This article will guide you through the concept of cmdlets, how to list available cmdlets, and how to use them effectively in PowerShell scripting.

Fundamental Concepts / Prerequisites

To understand this article, you should have a basic understanding of PowerShell. This includes familiarity with the PowerShell console, the concept of objects and pipelines, and the ability to execute simple commands. Knowing how to access the PowerShell help system is also beneficial.

Listing Available Cmdlets

PowerShell provides the Get-Command cmdlet to discover and list available cmdlets. This is crucial for understanding what capabilities PowerShell offers and for discovering the commands you need for specific tasks.


# Get all cmdlets
Get-Command -CommandType Cmdlet

# Get cmdlets with a specific noun (e.g., process)
Get-Command -Noun Process

# Get cmdlets with a specific verb (e.g., Get)
Get-Command -Verb Get

# Get cmdlets with a specific module (e.g., Microsoft.PowerShell.Utility)
Get-Command -Module Microsoft.PowerShell.Utility

# Find cmdlets whose names contain a string (e.g., file)
Get-Command *file*

Code Explanation

The first example, Get-Command -CommandType Cmdlet, retrieves all cmdlets available in your PowerShell environment. The -CommandType parameter specifies that we are interested only in cmdlets.

The second example, Get-Command -Noun Process, uses the -Noun parameter to filter the list and only show cmdlets that operate on "Process" objects. This is helpful when you know the object type you want to manipulate.

The third example, Get-Command -Verb Get, uses the -Verb parameter to filter cmdlets based on their verb. PowerShell cmdlets follow a Verb-Noun naming convention, making it easier to discover commands. Common verbs include Get, Set, Add, Remove, and Invoke.

The fourth example, Get-Command -Module Microsoft.PowerShell.Utility, uses the -Module parameter to display cmdlets belonging to a specific module. Modules group related cmdlets together and often need to be imported before use.

The final example, Get-Command *file*, uses wildcards to find cmdlets whose names contain the word "file". This is useful when you don't know the exact name of the cmdlet but have a keyword in mind.

Complexity Analysis

The time complexity of Get-Command depends on the number of cmdlets installed on your system. In the worst case, it may need to iterate through all available cmdlets to find the ones that match your criteria. However, PowerShell optimizes this process using indexing and caching, so the practical performance is generally good. The space complexity is dependent on the number of cmdlets found and the amount of data associated with each cmdlet, such as its name, parameters, and module.

Alternative Approaches

While Get-Command is the primary way to list cmdlets, you can also explore modules using Get-Module -ListAvailable to see the available modules and then examine the cmdlets within those modules using Get-Command -Module ModuleName. This approach is helpful when you want to focus on cmdlets within specific modules.

Conclusion

Cmdlets are the core of PowerShell, and understanding how to list and discover them is essential for effective scripting and automation. Get-Command provides a powerful way to explore available cmdlets based on various criteria, enabling you to find the right commands for your tasks. By mastering cmdlet discovery, you can significantly enhance your PowerShell capabilities.