Share via


Find-Command

Finds PowerShell commands in modules.

Syntax

Find-Command
    [[-Name] <String[]>]
    [-ModuleName <String>]
    [-MinimumVersion <Version>]
    [-MaximumVersion <Version>]
    [-RequiredVersion <Version>]
    [-AllVersions]
    [-Tag <String[]>]
    [-Filter <String>]
    [-Proxy <Uri>]
    [-ProxyCredential <PSCredential>]
    [-Repository <String[]>]
    [<CommonParameters>]

Description

The Find-Command cmdlet finds PowerShell commands such as cmdlets, aliases, functions, and workflows. Find-Command searches modules in registered repositories.

For each command found by Find-Command, a PSGetCommandInfo object is returned. The PSGetCommandInfo object can be sent down the pipeline to the Install-Module cmdlet. Install-Module installs the module that contains the command.

Examples

Example 1: Find all commands in a specified repository

The Find-Command cmdlet searches a registered repository for modules.

Find-Command -Repository PSGallery | Select-Object -First 10

Name                                Version    ModuleName          Repository
----                                -------    ----------          ----------
Disable-AzureRmDataCollection       5.8.3      AzureRM.profile     PSGallery
Disable-AzureRmContextAutosave      5.8.3      AzureRM.profile     PSGallery
Enable-AzureRmDataCollection        5.8.3      AzureRM.profile     PSGallery
Enable-AzureRmContextAutosave       5.8.3      AzureRM.profile     PSGallery
Remove-AzureRmEnvironment           5.8.3      AzureRM.profile     PSGallery
Get-AzureRmEnvironment              5.8.3      AzureRM.profile     PSGallery
Set-AzureRmEnvironment              5.8.3      AzureRM.profile     PSGallery
Add-AzureRmEnvironment              5.8.3      AzureRM.profile     PSGallery
Get-AzureRmSubscription             5.8.3      AzureRM.profile     PSGallery
Connect-AzureRmAccount              5.8.3      AzureRM.profile     PSGallery

Find-Command uses the Repository parameter to specify a registered repository's name. The objects are sent down the pipeline. Select-Object receives the objects and uses the First parameter to display the first 10 results.

Example 2: Find a command by name

Find-Command can use the name of a command to locate the module in a repository. It's possible that a command name exists in multiple ModuleNames.

Find-Command -Repository PSGallery -Name Get-TargetResource

Name                  Version    ModuleName                      Repository
----                  -------    ----------                      ----------
Get-TargetResource    3.1.0.0    xPowerShellExecutionPolicy      PSGallery
Get-TargetResource    1.0.0      xInternetExplorerHomePage       PSGallery
Get-TargetResource    1.2.0.0    SystemLocaleDsc                 PSGallery

Find-Command uses the Repository parameter to search the PSGallery. The Name parameter specifies the command Get-TargetResource.

Example 3: Find commands by name and install the module

Find-Command can locate the command and module, then send the object to Install-Module. If a command is included in multiple modules, use the Find-Command cmdlets Module-Name parameter. Otherwise, modules might be installed that you didn't want to install.

PS> Find-Command -Name Get-TargetResource -Repository PSGallery -ModuleName SystemLocaleDsc |
    Install-Module

PS> Get-InstalledModule

Version   Name               Repository   Description
-------   ----               ----------   -----------
1.2.0.0   SystemLocaleDsc    PSGallery    This DSC Resource allows configuration of the Windows...

Find-Command uses the Name parameter to specify the command Get-TargetResource. The Repository parameter searches the PSGallery. The ModuleName parameter specifies the module you want to install, SystemLocaleDsc. The object is sent down the pipeline to Install-Module and the module is installed. After the installation finishes, you can use Get-InstalledModule to display the results.

Example 4: Find a command and save its module

PS> Find-Command -Name Invoke-ScriptAnalyzer -Repository PSGallery | Save-Module -Path C:\Test\Modules -Verbose

VERBOSE: Downloading 'https://www.powershellgallery.com/api/v2/package/PSScriptAnalyzer/1.18.0'.
VERBOSE: Completed downloading 'https://www.powershellgallery.com/api/v2/package/PSScriptAnalyzer/1.18.0'.
VERBOSE: Completed downloading 'PSScriptAnalyzer'.
VERBOSE: Module 'PSScriptAnalyzer' was saved successfully to path 'C:\Test\Modules\PSScriptAnalyzer\1.18.0'.

Find-Command uses the Name and Repository parameters to search for the command Invoke-ScriptAnalyzer in the PSGallery repository. The object is sent down the pipeline to Save-Module. The Path parameter determines the ___location to save the module. Verbose is an optional parameter, but displays status output in the PowerShell console. The verbose output is beneficial for troubleshooting.

Parameters

-AllVersions

Indicates that this cmdlet gets all versions of a module.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Finds modules based on the PackageManagement provider's search syntax. For example, specify words to search for within the ModuleName and Description properties.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

Specifies the maximum version of the module to include in results. The MaximumVersion and the RequiredVersion parameters can't be used in the same command.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

Specifies the minimum version of the module to include in results. The MinimumVersion and the RequiredVersion parameters can't be used in the same command.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleName

Specifies the name of a module to search for commands. The default is all modules.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies the command name to search for in a repository. Use commas to separate an array of command names.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Proxy

Specifies a proxy server for the request, rather than a direct connection to the internet resource.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ProxyCredential

Specifies a user account that has permission to use the proxy server that is specified by the Proxy parameter.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Repository

Specifies the repository to search for commands. Use commas to separate an array of repository names. The default is all repositories.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

Specifies the version of the module to include in the results.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

Specifies tags that categorize modules in a repository. Use commas to separate an array of tags.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

PSGetCommandInfo

Find-Command outputs a PSGetCommandInfo object.