NAME
Get-Command
SYNOPSIS
Gets all commands.SYNTAX
Get-Command [[-Name]
] [[-ArgumentList] Cmdlet | ExternalScript | Application | Script | Workflow | Configuration | All}] [-FullyQualifiedModule
] [-ListImported] [-Module ] [-ParameterName ] [-ParameterType
] [-ShowCommandInfo] [-Syntax] [-TotalCount ] [ ] Get-Command [[-ArgumentList]
[-Module
] [-Noun ] [-ParameterName ] [-ParameterType ] [-ShowCommandInfo] [-Syntax] [-TotalCount
] [-Verb ] [ ] DESCRIPTION
The Get-Command cmdlet gets all commands that are installed on the computer, including cmdlets, aliases,
functions, workflows, filters, scripts, and applications. Get-Command gets the commands from Windows PowerShell
modules and snap-ins and commands that were imported from other sessions. To get only commands that have been
imported into the current session, use the ListImported parameter.Without parameters, a Get-Command command gets all of the cmdlets, functions, workflows and aliases installed on
the computer. A `Get-Command *` command gets all types of commands, including all of the non-Windows PowerShell
files in the Path environment variable ($env:path), which it lists in the Application command type.
A Get-Command command that uses the exact name of the command, without wildcard characters, automatically imports
the module that contains the command so that you can use the command immediately. To enable, disable, andconfigure automatic importing of modules, use the $PSModuleAutoLoadingPreference preference variable. For more
information, see about_Preference_Variables (http://go.microsoft.com/fwlink/?LinkID=113248) in the MicrosoftTechNet library. Get-Command gets its data directly from the command code, unlike Get-Help, which gets its
information from help topics.In Windows PowerShell 2.0, Get-Command gets only commands in current session. It does not get commands from
modules that are installed, but not imported. To limit Get-Command in Windows PowerShell 3.0 and later versions to
commands in the current session, use the ListImported parameter.Starting in Windows PowerShell 5.0, results of the Get-Command cmdlet display a Version column by default. A new
Version property has been added to the CommandInfo class.PARAMETERS
-All [
Indicates that this cmdlet gets all commands, including commands of the same type that have the same name. By] default, Get-Command gets only the commands that run when you type the command name.
For more information about the method that Windows PowerShell uses to select the command to run when multiple commands have the same name, see about_Command_Precedence (http://go.microsoft.com/fwlink/?LinkID=113214) inthe TechNet library. For information about module-qualified command names and running commands that do not run
by default because of a name conflict, see about_Modules (http://go.microsoft.com/fwlink/?LinkID=144311). This parameter was introduced in Windows PowerShell 3.0.In Windows PowerShell 2.0, Get-Command gets all commands by default.
Required? false Position? named Default value FalseAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-ArgumentList
Specifies an array of arguments. This cmdlet gets information about a cmdlet or function when it is used with the specified parameters ("arguments"). The alias for ArgumentList is Args . To detect dynamic parameters that are available only when certain other parameters are used, set the value of ArgumentList to the parameters that trigger the dynamic parameters. To detect the dynamic parameters that a provider adds to a cmdlet, set the value of the ArgumentList parameter to a path in the provider drive, such as WSMan:, HKLM:, or Cert:. When the command is a Windows PowerShell provider cmdlet, enter only one path in each command. The provider cmdlets return only the dynamic parameters for the first path the value of ArgumentList . For information about the provider cmdlets, see about_Providers (http://go.microsoft.com/fwlink/?LinkID=113250) in the TechNet library. Required? false Position? 1 Default value None Accept pipeline input? False Accept wildcard characters? false-CommandType
Specifies the types of commands that this cmdlet gets. Enter one or more command types. Use CommandType orits alias, Type . By default, Get-Command gets all cmdlets, functions, and workflows, and aliases.
The acceptable values for this parameter are:- Alias. Gets the aliases of all Windows PowerShell commands. For more information, see about_Aliases.
- All. Gets all command types. This parameter value is the equivalent of `Get-Command *`.
- Application. Gets non-Windows-PowerShell files in paths listed in the Path environment variable ($env:path),
including .txt, .exe, and .dll files. For more information about the Path environment variable, seeabout_Environment_Variables. - Cmdlet. Gets all cmdlets.
- ExternalScript. Gets all .ps1 files in the paths listed in the Path environment variable ($env:path). -
Filter and Function. Gets all Windows PowerShell advanced and simple functions and filters.- Script. Gets all script blocks. To get Windows PowerShell scripts (.ps1 files), use the ExternalScript value.
- Workflow. Gets all workflows. For more information about workflows, see Introducing Windows PowerShell
Workflow. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-FullyQualifiedModule
Specifies modules with names that are specified in the form of ModuleSpecification objects, described by the Remarks section of Module Specification Constructor (Hashtable)http://msdn.microsoft.com/library/windows/desktop/jj136290(v=vs.85).aspx on the Microsoft Developer Network (MSDN). For example, the FullyQualifiedModule parameter accepts a module name that is specified in theformat @{ModuleName = "modulename"; ModuleVersion = "version_number"} or @{ModuleName = "modulename";
ModuleVersion = "version_number"; Guid = "GUID"}. ModuleName and ModuleVersion are required, but Guid is
optional. You cannot specify the FullyQualifiedModule parameter in the same command as a Module parameter. The two parameters are mutually exclusive. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-ListImported [
Indicates that this cmdlet gets only commands in the current session.] Starting in Windows PowerShell 3.0, by default, Get-Command gets all installed commands, including, but not
limited to, the commands in the current session. In Windows PowerShell 2.0, it gets only commands in the current session. This parameter was introduced in Windows PowerShell 3.0. Required? false Position? named Default value FalseAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-Module
Specifies an array of modules. This cmdlet gets the commands that came from the specified modules or snap-ins.
Enter the names of modules or snap-ins, or enter snap-in or module objects.
This parameter takes string values, but the value of this parameter can also be a PSModuleInfo or PSSnapinInfoobject, such as the objects that the Get-Module, Get-PSSnapin, and Import-PSSession cmdlets return.
You can refer to this parameter by its name, Module , or by its alias, PSSnapin . The parameter name that you choose has no effect on the command output. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-Name
Specifies an array of names. This cmdlet gets only commands that have the specified name. Enter a name or name pattern. Wildcard characters are permitted. To get commands that have the same name, use the All parameter. When two commands have the same name, bydefault, Get-Command gets the command that runs when you type the command name.
Required? false Position? 0 Default value NoneAccept pipeline input? True (ByPropertyName, ByValue)
Accept wildcard characters? false-Noun
Specifies an array of command nouns. This cmdlet gets commands, which include cmdlets, functions, workflows, and aliases, that have names that include the specified noun. Enter one or more nouns or noun patterns. Wildcard characters are permitted. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-ParameterName
Specifies an array of parameter names. This cmdlet gets commands in the session that have the specified parameters. Enter parameter names or parameter aliases. Wildcard characters are supported.The ParameterName and ParameterType parameters search only commands in the current session.
This parameter was introduced in Windows PowerShell 3.0. Required? false Position? named Default value None Accept pipeline input? False Accept wildcard characters? false-ParameterType
Specifies an array of parameter names. This cmdlet gets commands in the session that have parameters of the specified type. Enter the full name or partial name of a parameter type. Wildcard characters are supported.The ParameterName and ParameterType parameters search only commands in the current session.
This parameter was introduced in Windows PowerShell 3.0. Required? false Position? named Default value None Accept pipeline input? False Accept wildcard characters? false-ShowCommandInfo [
Indicates that this cmdlet displays command information. For more information about the method that Windows PowerShell uses to select the command to run when multiple] commands have the same name, see about_Command_Precedence. For information about module-qualified command
names and running commands that do not run by default because of a name conflict, see about_Modules. This parameter was introduced in Windows PowerShell 3.0.In Windows PowerShell 2.0, Get-Command gets all commands by default.
Required? false Position? named Default value False Accept pipeline input? False Accept wildcard characters? false-Syntax [
Indicates that this cmdlet gets only the following specified data about the command:] - Aliases. Gets the standard name.
- Cmdlets. Gets the syntax.
- Functions and filters. Gets the function definition.
- Scripts and applications or files. Gets the path and filename.
Required? false Position? named Default value FalseAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-TotalCount
Specifies the number of commands to get. You can use this parameter to limit the output of a command. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? false-Verb
Specifies an array of command verbs. This cmdlet gets commands, which include cmdlets, functions, workflows, and aliases, that have names that include the specified verb. Enter one or more verbs or verb patterns. Wildcard characters are permitted. Required? false Position? named Default value NoneAccept pipeline input? True (ByPropertyName)
Accept wildcard characters? falseThis cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. For more information, see about_CommonParameters (https:/go.microsoft.com/fwlink/?LinkID=113216). INPUTS
System.String You can pipe command names to this cmdlet.OUTPUTS
System.Management.Automation.CommandInfo This cmdlet returns objects derived from the CommandInfo class. The type of object that is returned depends onthe type of command that Get-Command gets.
System.Management.Automation.AliasInfo
Represents aliases. System.Management.Automation.ApplicationInfo Represents or applications and files. System.Management.Automation.CmdletInfo Represents cmdlets. System.Management.Automation.FunctionInfo Represents functions and filters. System.Management.Automation.WorkflowInfo Represents workflows.NOTES
When more than one command that has the same name is available to the session, Get-Command returns the command
that runs when you type the command name. To get commands that have the same name, listed in run order, usethe All* parameter. For more information, see about_Command_Precedence. * When a module is imported
automatically, the effect is the same as using the Import-Module cmdlet. The module can add commands, types
and formatting files, and run scripts in the session. To enable, disable, and configuration automaticimporting of modules, use the $PSModuleAutoLoadingPreference preference variable. For more information, see
about_Preference_Variables.Example 1: Get cmdlets, functions, and aliases
PS C:\>Get-Command
This command gets the Windows PowerShell cmdlets, functions, and aliases that are installed on the computer.Example 2: Get commands in the current session
PS C:\>Get-Command -ListImported
This command uses the ListImported parameter to get only the commands in the current session.Example 3: Get cmdlets and display them in order
PS C:\>Get-Command -Type Cmdlet | Sort-Object -Property Noun | Format-Table -GroupBy Noun
This command gets all of the cmdlets, sorts them alphabetically by the noun in the cmdlet name, and then displaysthem in noun-based groups. This display can help you find the cmdlets for a task.
Example 4: Get commands in a module
PS C:\>Get-Command -Module Microsoft.PowerShell.Security, PSScheduledJob
This command uses the Module parameter to get the commands in the Microsoft.PowerShell.Security and PSScheduledJob modules.Example 5: Get information about a cmdlet
PS C:\>Get-Command Get-AppLockerPolicy
This command gets information about the Get-AppLockerPolicy cmdlet. It also imports the AppLocker module, which
adds all of the commands in the AppLocker module to the current session.When a module is imported automatically, the effect is the same as using the Import-Module cmdlet. The module can
add commands, types and formatting files, and run scripts in the session. To enable, disable, and configurationautomatic importing of modules, use the $PSModuleAutoLoadingPreference preference variable. For more information,
see about_Preference_Variables.Example 6: Get the syntax of a cmdlet
PS C:\>Get-Command Get-Childitem -Args Cert: -Syntax
This command uses the ArgumentList and Syntax parameters to get the syntax of the Get-ChildItem cmdlet when it is
used in the Cert: drive. The Cert: drive is a Windows PowerShell drive that the Certificate Provider adds to the session. When you compare the syntax displayed in the output with the syntax that is displayed when you omit the Args ( ArgumentList ) parameter, you'll see that the Certificate provider adds a dynamic parameter, CodeSigningCert , tothe Get-ChildItem cmdlet.
For more information about the Certificate provider, see Certificate Provider.Example 7: Get dynamic parameters
PS C:\>function Get-DynamicParameters
{param ($Cmdlet, $PSDrive)
(Get-Command $Cmdlet -ArgumentList $PSDrive).ParameterSets | ForEach-Object {$_.Parameters} | Where-Object {
$_.IsDynamic } | Select-Object -Property Name -Unique
}PS C:\> Get-DynamicParameters -Cmdlet Get-ChildItem -PSDrive Cert:
Name
----
CodeSigningCertThe Get-DynamicParameters function in this example gets the dynamic parameters of a cmdlet. This is an alternative
to the method used in the previous example. Dynamic parameter can be added to a cmdlet by another cmdlet or a provider.The command in the example uses the Get-DynamicParameters function to get the dynamic parameters that the
Certificate provider adds to the Get-ChildItem cmdlet when it is used in the Cert: drive.
Example 8: Get all commands of all types
PS C:\>Get-Command *
This command gets all commands of all types on the local computer, including executable files in the paths of thePath environment variable ($env:path). It returns an ApplicationInfo object
(System.Management.Automation.ApplicationInfo) for each file, not a FileInfo object (System.IO.FileInfo).Example 9: Get cmdlets by using a name
PS C:\>Get-Command -ParameterName *Auth* -ParameterType AuthenticationMechanism
This command gets cmdlets that have a parameter whose name includes Auth and whose type is AuthenticationMechanism . You can use a command like this one to find cmdlets that let you specify the method that is used to authenticate the user. The ParameterType parameter distinguishes parameters that take an AuthenticationMechanism value from those that take an AuthenticationLevel parameter, even when they have similar names.Example 10: Get an alias
PS C:\>Get-Command dir
CommandType Name ModuleName
----------- ---- ----------
Alias dir -> Get-ChildItem
This example shows how to use the Get-Command cmdlet with an alias. Although it is typically used on cmdlets and
functions, Get-Command also gets scripts, functions, aliases, workflows, and executable files.
The output of the command shows the special view of the Name property value for aliases. The view shows the alias
and the full command name.Example 11: Get all instances of the Notepad command
PS C:\>Get-Command Notepad -All | Format-Table CommandType, Name, Definition
CommandType Name Definition
----------- ---- ----------
Application notepad.exe C:\WINDOWS\system32\notepad.exe Application NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXEThis example uses the All parameter of the Get-Command cmdlet to show all instances of the "Notepad" command on
the local computer. The All parameter is useful when there is more than one command with the same name in the session. Beginning in Windows PowerShell 3.0, by default, when the session includes multiple commands with the same name,Get-Command gets only the command that runs when you type the command name. With the All parameter, Get-Command
gets all commands with the specified name and returns them in execution precedence order. To run a command other than the first one in the list, type the fully qualified path to the command. For more information about command precedence, see about_Command_Precedence (http://go.microsoft.com/fwlink/?LinkID=113214).Example 12: Get the name of a snap-in or module that contains a cmdlet
PS C:\>(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.UtilityThis command gets the name of the snap-in or module in which the Get-Date cmdlet originated. The command uses the
ModuleName property of all commands.
This command format works on commands in Windows PowerShell modules and snap-ins, even if they are not imported
into the session.Example 13: Get cmdlets and functions that have an output type
PS C:\>Get-Command -Type Cmdlet | Where-Object OutputType | Format-List -Property Name, OutputType
This command gets the cmdlets and functions that have an output type and the type of objects that they return.The first part of the command gets all cmdlets. A pipeline operator (|) sends the cmdlets to the Where-Object
cmdlet, which selects only the ones in which the OutputType property is populated. Another pipeline operator sendsthe selected cmdlet objects to the Format-List cmdlet, which displays the name and output type of each cmdlet in a
list.The OutputType property of a CommandInfo object has a non-null value only when the cmdlet code defines the
OutputType attribute for the cmdlet.Example 14: Get cmdlets that take a specific object type as input
PS C:\>Get-Command -ParameterType (((Get-NetAdapter)[0]).PSTypeNames)
CommandType Name ModuleName
----------- ---- ----------
Function Disable-NetAdapter NetAdapter
Function Enable-NetAdapter NetAdapter
Function Rename-NetAdapter NetAdapter
Function Restart-NetAdapter NetAdapter
Function Set-NetAdapter NetAdapter
This command finds cmdlets that take net adapter objects as input. You can use this command format to find the cmdlets that accept the type of objects that any command returns.The command uses the PSTypeNames intrinsic property of all objects, which gets the types that describe the object.
To get the PSTypeNames property of a net adapter, and not the PSTypeNames property of a collection of net
adapters, the command uses array notation to get the first net adapter that the cmdlet returns.RELATED LINKS
Online Version: http://go.microsoft.com/fwlink/?LinkId=821482Get-Help