Partilhar via


Find-Command

Localiza comandos do PowerShell em módulos.

Syntax

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

Description

O Find-Command cmdlet localiza comandos do PowerShell, como cmdlets, aliases, funções e fluxos de trabalho. Find-Command procura módulos em repositórios registados.

Para cada comando encontrado pelo Find-Command, é devolvido um objeto PSGetCommandInfo . O objeto PSGetCommandInfo pode ser enviado pelo pipeline para o Install-Module cmdlet . Install-Module instala o módulo que contém o comando .

Exemplos

Exemplo 1: localizar todos os comandos num repositório especificado

O Find-Command cmdlet procura módulos num repositório registado.

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 utiliza o parâmetro Repositório para especificar o nome de um repositório registado. Os objetos são enviados pelo pipeline. Select-Object recebe os objetos e utiliza o primeiro parâmetro para apresentar os primeiros 10 resultados.

Exemplo 2: Localizar um comando por nome

Find-Command pode utilizar o nome de um comando para localizar o módulo num repositório. É possível que exista um nome de comando em vários 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 utiliza o parâmetro Repository para procurar no PSGallery. O parâmetro Name especifica o comando Get-TargetResource.

Exemplo 3: localizar comandos por nome e instalar o módulo

Find-Command pode localizar o comando e o módulo e, em seguida, enviar o objeto para Install-Module. Se um comando estiver incluído em vários módulos, utilize o parâmetro ModuleName dos Find-Command cmdlets. Caso contrário, poderão ser instalados módulos que não queria instalar.

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 utiliza o parâmetro Nome para especificar o comando Get-TargetResource. O parâmetro Repository procura na PSGallery. O parâmetro ModuleName especifica o módulo que pretende instalar, SystemLocaleDsc. O objeto é enviado pelo pipeline para Install-Module e o módulo é instalado. Após a conclusão da instalação, pode utilizar Get-InstalledModule para apresentar os resultados.

Exemplo 4: localizar um comando e guardar o módulo

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 utiliza os parâmetros Nome e Repositório para procurar o comando Invoke-ScriptAnalyzer no repositório PSGallery . O objeto é enviado pelo pipeline para Save-Module. O parâmetro Path determina a localização para guardar o módulo. Verboso é um parâmetro opcional, mas apresenta a saída do estado na consola do PowerShell. A saída verbosa é benéfica para a resolução de problemas.

Parâmetros

-AllowPrerelease

Inclui módulos marcados como pré-lançamento nos resultados.

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

-AllVersions

Indica que este cmdlet obtém todas as versões de um módulo.

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

-Filter

Localiza módulos com base na sintaxe de pesquisa do fornecedor PackageManagement . Por exemplo, especifique palavras a procurar nas propriedades ModuleName e Description .

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

-MaximumVersion

Especifica a versão máxima do módulo a incluir nos resultados. Os parâmetros MaximumVersion e RequiredVersion não podem ser utilizados no mesmo comando.

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

-MinimumVersion

Especifica a versão mínima do módulo a incluir nos resultados. Os parâmetros MinimumVersion e RequiredVersion não podem ser utilizados no mesmo comando.

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

-ModuleName

Especifica o nome de um módulo para procurar comandos. A predefinição são todos os módulos.

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

-Name

Especifica o nome do comando a procurar num repositório. Utilize vírgulas para separar uma matriz de nomes de comandos.

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

-Proxy

Especifica um servidor proxy para o pedido, em vez de uma ligação direta ao recurso da Internet.

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

-ProxyCredential

Especifica uma conta de utilizador que tem permissão para utilizar o servidor proxy especificado pelo parâmetro Proxy .

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

-Repository

Especifica o repositório para procurar comandos. Utilize vírgulas para separar uma matriz de nomes de repositório. A predefinição é todos os repositórios.

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

-RequiredVersion

Especifica a versão do módulo a incluir nos resultados.

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

-Tag

Especifica etiquetas que categorizam módulos num repositório. Utilize vírgulas para separar uma matriz de etiquetas.

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

Saídas

PSGetCommandInfo

Find-Command produz um objeto PSGetCommandInfo .

Notas

Importante

A partir de abril de 2020, o Galeria do PowerShell já não suporta as versões 1.0 e 1.1 do Transport Layer Security (TLS). Se não estiver a utilizar o TLS 1.2 ou superior, receberá um erro ao tentar aceder ao Galeria do PowerShell. Utilize o seguinte comando para garantir que está a utilizar o TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Para obter mais informações, veja o anúncio no blogue do PowerShell.