Introdução à Galeria do PowerShell

A Galeria do PowerShell é um repositório de pacotes contendo scripts, módulos e recursos DSC que você pode baixar e utilizar. Use os cmdlets no módulo do PowerShell para instalar os pacotes da Galeria do PowerShell. Não é necessário entrar para baixar itens da Galeria do PowerShell.

Observação

É possível baixar o pacote diretamente da Galeria do PowerShell, mas essa não é uma abordagem recomendada. Para saber mais detalhes, confira Download manual do pacote.

É possível encontrar pacotes na Galeria do PowerShell usando o controle Pesquisar na página inicial da Galeria do PowerShell ou navegando pelos Módulos e Scripts na página Pacotes. Você pode também encontrar pacotes da Galeria do PowerShell executando os cmdlets Find-Module, Find-DscResource e Find-Script, dependendo do tipo de pacote, com -Repository PSGallery.

É possível filtrar os resultados da Galeria usando os seguintes parâmetros:

  • Name
  • AllVersions
  • MinimumVersion
  • RequiredVersion
  • Marca
  • Includes
  • DscResource
  • RoleCapability
  • Comando
  • Filtrar

Se estiver interessado apenas em descobrir recursos de DSC específicos na galeria, você poderá executar o cmdlet Find-DscResource. Find-DscResource retorna dados em recursos de DSC contidos na Galeria. Como os recursos de DSC sempre são enviados como parte de um módulo, você ainda precisará executar Install-Module para instalar esses recursos de DSC.

Depois de identificar um pacote no qual tem interesse, talvez você queira aprender mais sobre ele. Você pode fazer isso examinando a página específica do pacote na Galeria. Nessa página, você poderá ver todos os metadados carregados com o pacote. Esses metadados do pacote são fornecidos pelo autor dele e não são verificados pela Microsoft. O Proprietário do pacote está intimamente ligado à conta da Galeria usada para publicar o pacote e é mais confiável do que o campo Autor.

Se você descobrir que um pacote que acredita que não tenha sido publicado de boa fé, clique em Relatar Abuso na página do pacote.

Se estiver executando Find-Module ou Find-Script, você poderá ver esses dados no objeto PSGetModuleInfo retornado. O exemplo a seguir retorna dados sobre o módulo PSReadLine na Galeria.

Find-Module -Name PSReadLine -Repository PSGallery | Get-Member

Recomendamos o processo a seguir para baixar pacotes da Galeria do PowerShell:

Inspecionar

Para baixar um pacote da Galeria para inspeção, execute o cmdlet Save-Module ou Save-Script, dependendo do tipo de pacote. Isso permite que você salve o pacote localmente sem instalá-lo e inspecione o conteúdo do pacote. Lembre-se de excluir o pacote salvo manualmente.

Alguns desses pacotes são criados pela Microsoft e outros são criados pela comunidade do PowerShell. A Microsoft recomenda que você examine o conteúdo e o código dos pacotes nesta galeria antes da instalação.

Se você descobrir que um pacote que acredita que não tenha sido publicado de boa fé, clique em Relatar Abuso na página do pacote.

Instalar

Para instalar um pacote da Galeria para uso, execute o cmdlet Install-Module ou Install-Script, dependendo do tipo de pacote.

Install-Module instala o módulo em $env:ProgramFiles\WindowsPowerShell\Modules, por padrão. Isso requer uma conta de administrador. Se você adicionar o parâmetro -Scope CurrentUser, o módulo será instalado em $HOME\Documents\WindowsPowerShell\Modules.

Install-Script instala o script em $env:ProgramFiles\WindowsPowerShell\Scripts, por padrão. Isso requer uma conta de administrador. Se você adicionar o parâmetro -Scope CurrentUser, o script será instalado em $HOME\Documents\WindowsPowerShell\Scripts.

Por padrão, Install-Module e Install-Script instalam a versão mais recente de um pacote. Para instalar uma versão mais antiga do pacote, adicione o parâmetro -RequiredVersion.

Implantar

Para implantar um pacote da Galeria do PowerShell na Automação do Azure, clique em Automação do Azure e, em seguida, em Implantar na Automação do Azure na página de detalhes do pacote. Você é redirecionado ao Portal de Gerenciamento do Azure, onde entra usando suas credenciais da conta do Azure. Observe que implantar pacotes com dependências implanta todas as dependências da Automação do Azure. O botão "Implantar na Automação do Azure" pode ser desabilitado adicionando a marca AzureAutomationNotSupported aos metadados do pacote.

Para saber mais sobre a Automação do Azure, confira a documentação da Automação do Azure.

Para atualizar pacotes instalados da Galeria do PowerShell, execute o cmdlet Update-Module ou Update-Script. Quando executado sem nenhum parâmetro adicional, o Update-Module tenta atualizar todos os módulos instalados executando o Install-Module. Para atualizar os módulos seletivamente, adicione o parâmetro -Name.

Da mesma forma, quando executado sem parâmetros adicionais, o Update-Script também tenta atualizar todos os scripts instalados executando o Install-Script. Para atualizar os scripts seletivamente, adicione o parâmetro -Name.

Para descobrir quais módulos você instalou da Galeria do PowerShell, execute o cmdlet Get-InstalledModule. Esse comando lista todos os módulos no seu sistema que foram instalados diretamente da Galeria do PowerShell.

De forma semelhante, para descobrir quais scripts você instalou da Galeria do PowerShell, execute o cmdlet Get-InstalledScript. Esse comando lista todos os scripts no seu sistema que foram instalados diretamente da Galeria do PowerShell.

Esses nomes do host devem ser adicionados às listas de permissões que controlam o acesso da sua rede.

Hosts necessários para descoberta e download de pacotes:

  • onegetcdn.azureedge.net – nome do host CDN

Hosts necessários ao usar o site da Galeria do PowerShell:

  • devopsgallerystorage.blob.core.windows.net – nome do host da conta de armazenamento
  • *.powershellgallery.com – site
  • go.microsoft.com – serviço de redirecionamento

Importante

A partir de abril de 2020, a Galeria do PowerShell não dará mais suporte às versões 1.0 e 1.1 do protocolo TLS. Se você não estiver usando o TLS 1.2 ou posterior, receberá um erro ao tentar acessar a Galeria do PowerShell. Use o seguinte comando para garantir que esteja usando o TLS 1.2:

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

Para obter mais informações, confira o comunicado no blog do PowerShell.