PowerShell Logo Small

Get-Command



This is the built-in help made by Microsoft for the command 'Get-Command', in PowerShell version 5 - as retrieved from Windows version 'Microsoft Windows Server 2012 R2 Standard' PowerShell help files on 2016-06-23.

For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.

SYNOPSIS

Gets all commands.

SYNTAX


Get-Command [[-ArgumentList] [<Object[]>]] [-All] [-FullyQualifiedModule [<ModuleSpecification[]>]] [-ListImported] [-Module [<String[]>]] [-Noun [<String[]>]]
[-ParameterName [<String[]>]] [-ParameterType [<PSTypeName[]>]] [-ShowCommandInfo] [-Syntax] [-TotalCount [<Int32>]] [-Verb [<String[]>]] [<CommonParameters>]
Get-Command [[-Name] [<String[]>]] [[-ArgumentList] [<Object[]>]] [-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | Workflow
| Configuration | All}] [-FullyQualifiedModule [<ModuleSpecification[]>]] [-ListImported] [-Module [<String[]>]] [-ParameterName [<String[]>]] [-ParameterType
[<PSTypeName[]>]] [-ShowCommandInfo] [-Syntax] [-TotalCount [<Int32>]] [<CommonParameters>]



Search powershellhelp.space

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 you can use the
command immediately. To enable, disable, and configure automatic importing of modules, use the $PSModuleAutoLoadingPreference preference variable. For more information, see
about_Preference_Variables (http://go.microsoft.com/fwlink/?LinkID=113248).


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 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.



<

RELATED LINKS

Online Version: http://go.microsoft.com/fwlink/p/?linkid=289583
Export-PSSession
Get-Help
Get-Member
Get-PSDrive
Import-PSSession
about_Command_Precedence

REMARKS

<

Examples


-------------------------- EXAMPLE 1 --------------------------

PS C:\>Get-Command



This command gets the Windows PowerShell cmdlets, functions, and aliases that are installed on the computer.






-------------------------- EXAMPLE 2 --------------------------

PS C:\>Get-Command -ListImported



This command uses the ListImported parameter to get only the commands in the current session.






-------------------------- EXAMPLE 3 --------------------------

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 displays them in noun-based groups. This display can help you find
the cmdlets for a task.






-------------------------- EXAMPLE 4 --------------------------

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 --------------------------

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 configuration automatic importing of modules, use the $PSModuleAutoLoadingPreference preference variable. For more information, see
about_Preference_Variables (http://go.microsoft.com/fwlink/?LinkID=113248).






-------------------------- EXAMPLE 6 --------------------------

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, to the Get-ChildItem cmdlet.

For more information about the Certificate provider, see Certificate Provider.






-------------------------- EXAMPLE 7 --------------------------

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
----
CodeSigningCert



The 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 --------------------------

PS C:\>Get-Command *



This command gets all commands of all types on the local computer, including executable files in the paths of the Path 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 --------------------------

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 --------------------------

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 --------------------------

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.EXE



This 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 --------------------------

PS C:\>(Get-Command Get-Date).ModuleName
Microsoft.PowerShell.Utility



This 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 --------------------------

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 sends the 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 --------------------------

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.