Instalar o PowerShell no Windows

Há várias maneiras de instalar o PowerShell no Windows. Cada método de instalação é projetado para funcionar em diferentes cenários e fluxos de trabalho. Escolha o tipo de instalação mais adequado às suas necessidades.

  • Winget – Maneira recomendada de instalar o PowerShell em clientes Windows.
  • Pacote MSI – Melhor opção para servidores Windows e cenários de implantação empresarial.
  • Pacote ZIP – Maneira mais fácil de instalar várias versões ou de fazer sideload delas.
    • Use esse método para Windows Nano Server, Windows IoT e sistemas baseados em ARM
  • Ferramenta global do .NET – uma boa opção para desenvolvedores do .NET que instalam e usam outras ferramentas globais.
  • Pacote da Microsoft Store – um jeito fácil de instalar para usuários casuais do PowerShell, mas tem limitações.

Observação

Os comandos de instalação neste artigo são para a versão estável mais recente do PowerShell. Para instalar uma versão diferente do PowerShell, ajuste o comando para corresponder à versão de que você precisa. Os links a seguir direcionam você para a página de lançamento de cada versão no repositório do PowerShell no GitHub.

Os links para download de cada pacote estão na seção Ativos da página de versões. A seção Ativos pode estar recolhida e, portanto, talvez você precise clicar para expandi-la.

O Winget, o Gerenciador de Pacotes do Windows, é uma ferramenta de linha de comando que permite que os usuários descubram, instalem, atualizem, removam e configurem aplicativos em computadores cliente Windows. Essa ferramenta é a interface do cliente para o serviço Gerenciador de Pacotes do Windows. A ferramenta de linha de comando winget vem no pacote do Windows 11 e das versões modernas do Windows 10 por padrão como o Instalador de Aplicativo.

Observação

Confira a documentação do winget para obter uma lista de requisitos do sistema e de instruções de instalação. Winget atualmente não é executado em servidores Windows.

Os seguintes comandos podem ser usados para instalar o PowerShell com os pacotes do winget publicados:

Pesquisar a versão mais recente do PowerShell

winget search Microsoft.PowerShell
Name               Id                           Version   Source
-----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.1.0   winget
PowerShell Preview Microsoft.PowerShell.Preview 7.4.0.101 winget

Instalar o Powershell ou a versão prévia do PowerShell com o parâmetro id

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

Observação

Em sistemas Windows que usam processador X86 ou X64, o winget instala o pacote MSI. Em sistemas que usam o processador Arm64, o winget instala o pacote MSIX (Microsoft Store). Para obter mais informações, confira Instalar da Microsoft Store.

Instalando o pacote MSI

Para instalar o PowerShell no Windows, use os links a seguir e baixe o pacote de instalação do GitHub.

Após o download, clique duas vezes no arquivo de instalação e siga as instruções.

O instalador cria um atalho no Menu Iniciar do Windows.

  • Por padrão, o pacote é instalado em $env:ProgramFiles\PowerShell\<version>
  • Você pode iniciar o PowerShell por meio do Menu Iniciar ou $env:ProgramFiles\PowerShell\<version>\pwsh.exe

Observação

O PowerShell 7.4 é instalado em um novo diretório e executado lado a lado com o Windows PowerShell 5.1. O PowerShell 7.4 é uma atualização in-loco que remove versões anteriores do PowerShell 7. Versões prévias do PowerShell podem ser instaladas juntamente com outras versões do PowerShell.

  • O PowerShell 7.4 é instalado em $env:ProgramFiles\PowerShell\7
  • A pasta $env:ProgramFiles\PowerShell\7 é adicionada ao $env:PATH

Se você precisar executar o PowerShell 7.4 lado a lado com outras versões, use o método de instalação por zip para instalar a outra versão em uma pasta diferente.

Suporte para Microsoft Update no PowerShell 7.2 e versões mais recentes

O PowerShell 7.2 e versões mais recentes dá suporte para Microsoft Update. Ao habilitar esse recurso, você receberá as atualizações mais recentes do PowerShell 7 em seu fluxo de gerenciamento tradicional do Microsoft Update (MU), seja com o Windows Update para Empresas, o WSUS, o Microsoft Endpoint Configuration Manager ou a caixa de diálogo interativa do MU em Configurações.

O pacote MSI do PowerShell inclui as seguintes opções de linha de comando:

  • USE_MU – essa propriedade tem dois valores possíveis:
    • 1 (padrão) – opta por atualizar por meio do Microsoft Update, do WSUS ou do Configuration Manager
    • 0 – Não aceitar atualizar por meio do Microsoft Update, do WSUS ou do Configuration Manager
  • ENABLE_MU
    • 1 (padrão) – opta por usar o Microsoft Update para Atualizações Automáticas
    • 0 – Não aceitar usar o Microsoft Update

Observação

A habilitação de atualizações pode ter sido definida em uma instalação anterior ou por meio de configuração manual. Usar ENABLE_MU=0 não remove as configurações existentes. Além disso, essa configuração pode ser substituída por configurações de Política de Grupo controladas pelo administrador.

Para saber mais, confira as Perguntas frequentes sobre o Microsoft Update para PowerShell.

Instalar o pacote MSI da linha de comando

É possível instalar os pacotes MSI por linha de comando, permitindo que os administradores implantem pacotes sem interação do usuário. O pacote MSI inclui as seguintes propriedades para controlar as opções de instalação:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL – Esta propriedade controla a opção de adicionar o item Open PowerShell ao menu de contexto no Windows Explorer.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL – Esta propriedade controla a opção de adicionar o item Run with PowerShell ao menu de contexto no Windows Explorer.
  • ENABLE_PSREMOTING – Esta propriedade controla a opção para habilitar a comunicação remota do PowerShell durante a instalação.
  • REGISTER_MANIFEST – Esta propriedade controla a opção para registrar o manifesto do Log de eventos do Windows.
  • ADD_PATH – Essa propriedade controla a opção de adicionar o PowerShell à variável de ambiente PATH do Windows.
  • DISABLE_TELEMETRY – Essa propriedade controla a opção para desabilitar a telemetria do PowerShell definindo a variável de ambiente POWERSHELL_TELEMETRY_OPTOUT.
  • INSTALLFOLDER - Essa propriedade controla o diretório de instalação. O padrão é $env:ProgramFiles\PowerShell\. Esse é o local em que o instalador cria a subpasta com versão. Não é possível alterar o nome da subpasta com versão.
    • Para versões atuais, a subpasta com versão é 7
    • Para versões anteriores, a subpasta com versão é 7-preview

Os exemplos a seguir mostram como instalar silenciosamente o PowerShell com todas as opções de instalação habilitadas.

msiexec.exe /package PowerShell-7.4.1-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

Confira a lista completa das opções de linha de comando para Msiexec.exe em Opções de linha de comando.

Instalando o pacote ZIP

Arquivos binários de ZIP do PowerShell são fornecidos para habilitar cenários de implantação avançada. Baixe um dos arquivos ZIP a seguir da página da versão atual.

Dependendo de como você baixar o arquivo, poderá ser necessário desbloqueá-lo usando o cmdlet Unblock-File. Descompacte o conteúdo para o local de sua escolha e execute pwsh.exe desse local. Ao contrário da instalação de pacotes MSI, a instalação do arquivo ZIP não verifica os pré-requisitos. Para que a comunicação remota pelo WSMan funcione corretamente, certifique-se de atender aos pré-requisitos.

Use esse método para instalar a versão baseada em ARM do PowerShell em computadores como o Microsoft Surface Pro X. Para obter melhores resultados, instale o PowerShell na pasta $env:ProgramFiles\PowerShell\7.

Instalar como uma ferramenta global do .NET

Se você já tiver o SDK do .NET Core instalado, será possível instalar o PowerShell como uma ferramenta Global do .NET.

dotnet tool install --global PowerShell

O instalador da ferramenta dotnet adiciona $HOME\.dotnet\tools à sua variável de ambiente $env:PATH. No entanto, o shell atualmente em execução não tem o $env:PATH atualizado. Você pode iniciar o PowerShell em um novo shell digitando pwsh.

Instalar pela Microsoft Store

O PowerShell pode ser instalado por meio da Microsoft Store. Você pode encontrar a versão do PowerShell no site da Microsoft Store ou no aplicativo da Store no Windows.

Benefícios do pacote da Microsoft Store:

  • Atualizações automáticas integradas diretamente no Windows
  • Integra-se a outros mecanismos de distribuição de software, como Intune e Configuration Manager
  • Pode ser instalado em sistemas Windows usando processadores x86, x64 ou Arm64

Limitações conhecidas

Por padrão, os pacotes da Microsoft Store são executados em uma área restrita do aplicativo que virtualiza o acesso a alguns sistemas de arquivos e locais de Registro. As alterações em locais de arquivo e Registro virtualizados não persistem fora da área restrita do aplicativo.

Essa área restrita bloqueia todas as alterações na pasta raiz do aplicativo. Nenhuma definição de configuração no nível do sistema armazenada em $PSHOME pode ser modificada. Isso inclui a configuração do WSMAN. Isso impede que as sessões remotas se conectem a instalações baseadas na Store do PowerShell. Há suporte para configurações no nível do usuário e para comunicação remota SSH.

Os comandos a seguir precisam ser escritos em $PSHOME. Esses comandos não têm suporte em uma instância da Microsoft Store do PowerShell.

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

Para obter mais informações, confira Noções básicas sobre como os aplicativos da área de trabalho empacotados são executados no Windows.

Alterações no PowerShell 7.2

A partir do PowerShell 7.2, o pacote do PowerShell está isento da virtualização de arquivos e Registro. As alterações em locais de Registro e de arquivo virtualizados agora persistem fora da área restrita do aplicativo. No entanto, as alterações na pasta raiz do aplicativo ainda estão bloqueadas.

Importante

Você precisa estar executando no Windows build 1903 ou superior para que essa isenção funcione.

Instalar uma versão prévia

Versões preliminares do PowerShell 7 são instaladas em $env:ProgramFiles\PowerShell\7-preview para que possam ser executadas lado a lado com versões não preliminares do PowerShell. O PowerShell 7.4 é a nova versão prévia.

Atualizar uma instalação existente

Para obter melhores resultados ao atualizar, você deve usar o mesmo método de instalação usado ao instalar o PowerShell pela primeira vez. Se você não tiver certeza de como o PowerShell foi instalado, poderá verificar o valor da variável $PSHOME, que sempre aponta para o diretório que contém o PowerShell que a sessão atual está em execução.

  • Se o valor for $HOME\.dotnet\tools, o PowerShell foi instalado com a ferramenta Global do .NET.
  • Se o valor for $Env:ProgramFiles\PowerShell\7, o PowerShell foi instalado como um pacote MSI ou com Winget em um computador com um processador X86 ou x64.
  • Se o valor começar com $Env:ProgramFiles\WindowsApps\, o PowerShell foi instalado como um pacote da Microsoft Store ou com Winget no computador com um processador ARM.
  • Se o valor for qualquer outra coisa, é provável que o PowerShell tenha sido instalado como um pacote ZIP.

Se você tiver instalado por meio do pacote MSI, essas informações também aparecerão no Painel de Controle de Programas e Recursos.

Para determinar se o PowerShell pode ser atualizado com o Winget, execute o seguinte comando:

winget list --name PowerShell --upgrade-available

Se houver uma atualização disponível, a saída indicará a versão mais recente disponível.

Observação

Ao atualizar, o PowerShell não atualizará de uma versão LTS para uma versão não LTS. Ele só atualiza para a versão mais recente do LTS, por exemplo, da 7.2.3 a 7.2.18. Para atualizar de uma versão LTS para uma versão estável mais recente ou a próxima LTS, você precisa instalar a nova versão com o MSI dessa versão.

Quando a versão instalada não é uma versão LTS, o PowerShell atualiza para a versão estável mais recente.

Implantar no Windows 10 IoT Enterprise

O Windows 10 IoT Enterprise vem com o Windows PowerShell, que pode ser usado para implantar o PowerShell 7.

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.4.1-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.4.1-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.1-win-arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

Ao configurar o PowerShell Remoting, você obtém uma mensagem de erro e é desconectado do dispositivo. O PowerShell precisa reiniciar o WinRM. Agora, você pode conectar-se ao ponto de extremidade do PowerShell 7 no dispositivo.


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.1

Implantar no Windows 10 IoT Core

O Windows 10 IoT Core adiciona o Windows PowerShell quando você inclui o recurso IOT_POWERSHELL, que pode ser usado para implantar o PowerShell 7. As etapas definidas acima para o Windows 10 IoT Enterprise também podem ser seguidas para o IoT Core.

Para adicionar o PowerShell mais recente na imagem de remessa, use o comando Import-PSCoreRelease para incluir o pacote na área de trabalho e adicione o recurso OPENSRC_POWERSHELL à imagem.

Observação

Para a arquitetura ARM64, o Windows PowerShell não é adicionado quando você inclui IOT_POWERSHELL. Portanto, a instalação baseada em zip não funciona. Você precisa usar o comando Import-PSCoreRelease para adicioná-lo à imagem.

Implantação no Nano Server

Estas instruções pressupõem que o Nano Server é um sistema operacional sem periféricos que tem uma versão do PowerShell já em execução. Confira mais informações na documentação do Construtor de Imagens do Nano Server.

Os binários do PowerShell podem ser implantados usando dois métodos diferentes.

  1. Offline – monte o VHD do Nano Server e descompacte o conteúdo do arquivo zip para o local escolhido na imagem montada.
  2. Online – transfira o arquivo zip em uma sessão do PowerShell e descompacte-o em seu local escolhido.

Em ambos os casos, você precisa do pacote de versão ZIP do Windows x64. Execute os comandos em uma instância de "Administrador" do PowerShell.

Implantação offline do PowerShell

  1. Use o utilitário zip favorito para descompactar o pacote para um diretório na imagem montada do Nano Server.
  2. Desmonte a imagem e inicialize-a.
  3. Conecte-se à instância interna do Windows PowerShell.
  4. Siga as instruções para criar um ponto de extremidade de comunicação remota usando a "outra técnica de instância".

Implantação online do PowerShell

Implante o PowerShell no Nano Server usando as etapas a seguir.

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.4.1-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.4.1-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

Se você deseja comunicação remota baseada no WSMan, siga as instruções para criar um ponto de extremidade de comunicação remota usando a "outra técnica de instância".

Comunicação remota do PowerShell

O PowerShell dá suporte ao protocolo PSRP (comunicação remota do PowerShell) por WSMan e SSH. Para obter mais informações, consulte:

Os pré-requisitos a seguir devem ser atendidos para habilitar a remoção do PowerShell por WSMan em versões mais antigas do Windows.

  • Instale o Windows Management Framework (WMF) 5.1 (se necessário). Saiba mais sobre o WMF em Visão geral do WMF.
  • Instale o Universal C Runtime em versões do Windows anteriores ao Windows 10. Ele está disponível por meio do Windows Update ou de download direto. Os sistemas totalmente corrigidos já têm esse pacote instalado.

Versões com suporte do Windows

A tabela a seguir é uma lista de versões do PowerShell e as versões do Windows nas quais elas têm suporte. Essas versões serão compatíveis até que a versão do PowerShell atinja o fim do suporte ou a versão do Windows atinja o fim do suporte.

  • O ícone Supported indica que a versão do sistema operacional ou do PowerShell ainda tem suporte
  • O ícone Out of Support indica que a versão do PowerShell não tem mais suporte nesta versão do sistema operacional
  • O ícone In Test indica que ainda não terminamos de testar o PowerShell neste sistema operacional
  • O ícone Not Supported indica que a versão do sistema operacional ou do PowerShell não tem suporte
  • Quando a versão do sistema operacional e a versão do PowerShell têm um ícone Supported, há suporte para essa combinação
Windows 7.2 (LTS – versão prévia) 7.3 7.4 (LTS – atual)
Supported Windows Server 2016, 2019 ou 2022 Supported Supported Supported
Supported Windows Server Nano (1809 ou superior) Supported Supported Supported
Supported Windows 11 Supported Supported Supported
Supported Windows 10 1607+ Supported Supported Supported

Observação

O suporte para uma versão específica do Windows é determinado pelas políticas de ciclo de vida de Suporte da Microsoft. Para obter mais informações, consulte:

O PowerShell tem suporte no Windows para as arquiteturas de processador a seguir.

Windows 7.2 (LTS – atual) 7.3 7.4 (LTS – atual)
Windows Server 2016 e posterior x64, x86 x64, x86 x64, x86
Windows Server Core 2016+ x64, x86 x64, x86 x64, x86
Nano Server versão 1803+ x64 x64 x64
Cliente Windows 11 x64, Arm64 x64, Arm64 x64, Arm64
Cliente do Windows 10 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64

Você pode verificar qual versão está usando ao executar winver.exe.

Suporte à instalação

A Microsoft dá suporte aos métodos de instalação neste documento. Pode haver outros métodos de instalação de terceiros disponíveis de outras fontes. Embora essas ferramentas e métodos possam funcionar, a Microsoft não pode dar suporte a esses métodos.