Articles

Adam o Automador

p>Está pronto para fazer a sua actualização do PowerShell 7 e ter acesso a todas as novas funcionalidades? Se sim, este artigo é para si.

Quando o PowerShell 6 foi lançado, era para trazer uma versão básica do PowerShell a todas as plataformas (PowerShell Core). Com PowerShell 7 (que é a última versão PowerShell a partir deste artigo), procuramos agora que todas as plataformas sejam iguais no PowerShell que podem fornecer (tanto PowerShell para Windows como PowerShell Core).

Neste artigo, aprenderá como realizar uma actualização PowerShell 7 manualmente e como automatizar o processo de actualização com implementações em massa via GPO e PowerShell Remoting.

Na altura da redacção deste artigo, a versão actual do PowerShell 7 é Preview 3. A maioria das referências neste artigo aplicar-se-á a esta versão.

Table of Contents

Como actualizar a versão PowerShell numa máquina

Tal como o PowerShell Core 6.0, o processo de instalação do PowerShell Core 7 é semelhante. Vejamos algumas formas diferentes de instalar o PowerShell 7 numa única máquina.

Antes de irmos demasiado longe, vale a pena mencionar alguns pré-requisitos antes de instalar a versão 7 do PowerShell. Notará que estes são os mesmos requisitos que para PowerShell versão 6.

  • O Universal C Runtime deve ser instalado
  • Windows Management Framework (WMF) 4.0 ou mais recente – apenas se estiver numa versão do Windows 7 ou Windows Server 2008R2. Versão posterior do Windows como Windows 8.1, Windows 10 e Windows Server 2016, WMF não é necessário.

Instalação manual do PowerShell 7

P>Primeiro, descarregar PowerShell 7. Para o fazer, vá à página de lançamentos do GitHub para PowerShell e encontre a versão que pretende instalar. Para este artigo, estamos a utilizar a versão PowerShell 7.0.0 preview 3 release. No Windows, desça um pouco e descarregue o PowerShell-7.0.0-preview.3-pacote win-x86.msi MSI e execute-o.

PowerShell 7 instala ecrã de boas-vindas
PowerShell 7 instala ecrã de boas-vindas

>p> O assistente irá fazer-lhe algumas perguntas simples como onde quer que o PowerShell seja instalado. Se desejar executar múltiplas versões do PowerShell lado a lado, certifique-se de que utiliza pastas de instalação separadas.

O assistente irá também perguntar se deseja registar o PowerShell na variável de ambiente PATH. Adicionar a pasta de instalação PowerShell à variável de ambiente PATH permite chamar PowerShell a partir de qualquer outro terminal, tal como uma versão diferente de PowerShell ou mesmo cmd.exe.

Outra opção é Registar PowerShell no Manifesto de Registo de Eventos do Windows. Quando activada, esta opção tira partido do registo robusto que é enviado com esta versão do PowerShell.

P>Próximo, pergunta-lhe se gostaria de activar o PowerShell Remoting desde o início que pode ajudar em todas as tarefas remotas.

Finalmente, ser-lhe-á perguntado se gostaria de adicionar menus de contexto ‘Abrir Aqui’ ao Explorer. Esta opção permite-lhe clicar com o botão direito em qualquer pasta quando navega no Explorador do Windows e abrir uma janela PowerShell dentro desse directório de trabalho.

Embora os dois últimos sejam completamente opcionais e até si, recomendo vivamente que active os dois primeiros, desta forma:

Escolhendo padrões no PowerShell 7 install
Escolhendo padrões no PowerShell 7 install

Após ter respondido a todas as suas perguntas, clique em Next e a instalação começará.

Abrindo PowerShell 7

Once instalado, pode executar PowerShell 7 abrindo qualquer terminal de linha de comando e digitando pwsh-preview.

Nota que não utilizará este nome de comando uma vez que a versão 7 do PowerShell esteja fora da fase de “pré-visualização”. Uma vez fora da fase de “preview”, poderá lançar PowerShell 7 com pwsh.

Instalar PowerShell 7 com PowerShell

O líder da equipa PowerShell da Microsoft, Steve Lee, tweeted uma maneira útil de instalar o PowerShell 7 usando o PowerShell Invoke-RestMethod cmdlet. Este trecho de código utiliza o comando para consultar o repositório PowerShell GitHub, descarregar um script de instalação que depois descarrega e instala PowerShell 7 com uma única linha.

Below encontrará a sintaxe para o fazer. Abra uma consola PowerShell do Windows e execute a linha única abaixo.

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Preview"

Este trecho de código está a utilizar o PowerShell Invoke-Expression cmdlet (iex na linha única) para aceitar uma string e executá-la como código PowerShell. Esta string chama o Invoke-RestMethod cmdlet (irm no one-liner) para descarregar o script que Steve escreveu. Recomendo vivamente a utilização do link e a verificação do código por si mesmo antes de executar este comando!

O snippet passa então o UseMSI e Preview parâmetros para o script para agarrar e instalar o último MSI.

Se desejar executar este script completamente silencioso e desacompanhado, pode usar o parâmetro Quiet. Na altura desta escrita, o parâmetro Preview ainda aponta para PowerShell 7 Preview 3.

Instalar PowerShell 7 com um Módulo

Outra forma de instalar o PowerShell 7 é utilizando o módulo PowerShell de Jeff Hicks chamado PSReleaseTools. Este módulo, tal como o de Steve, ajuda a manter a sua versão PowerShell actualizada.

Com duas linhas do PowerShell, pode descarregar o módulo com Install-Module e usando o comando Install-PSPreview que vem com o módulo PSRelaseTools, pode ter o PowerShell 7 pré-instalado.

PS51> Install-Module -name PSReleaseTools -ForcePS51> Install-PSPreview -mode Quiet

Implementar o PowerShell 7 através de uma Organização

Há algumas opções quando se trata de implementar o PowerShell 7 à escala. Vejamos duas formas comuns de o fazer.

Implementar o PowerShell 7 com uma GPO

PowerShell é fácil de implementar via GPO uma vez que se presta facilmente a outras tecnologias Microsoft enquanto é empacotado como um MSI. Quando implementar isto via GPO, há algumas coisas de que vai querer estar ciente.

Usar uma GPO baseada em computador

P>Primeiro certifique-se de usar uma política baseada em computador e não uma política baseada em utilizador. Pode ler mais sobre as diferenças entre estas duas políticas aqui. Nos servidores, na maioria das vezes, os utilizadores não estão a iniciar a sessão interactivamente, o que dá início a uma implementação.

Se estiver a implementar o PowerShell 7 em muitos servidores, vai querer que a implementação aconteça independentemente da interacção do utilizador com a máquina.

Configurar uma partilha de ficheiros de rede

Certifique-se igualmente de que a partilha de rede em que colocou o PowerShell 7 MSI tem a permissão apropriada definida para permitir que todos os servidores no seu ambiente o acedam. Embora para além do âmbito deste artigo, pode encontrar mais aqui sobre a criação de partilha de ficheiros.

Configure o GPO

Crie então o seu GPO com os seguintes passos:

  • Coloque o MSI na partilha de ficheiros atribuída a que os seus computadores podem aceder.
  • Criar um GPO inicial dentro da Consola de Gestão de Políticas de Grupo. Pode ler mais sobre os GPO iniciais aqui
  • A partir do momento em que o GPO é criado, abra-o e navegue para Configuração do Computador ->Configurações de Software.
  • Li>Instalação do Software e depois seleccionar New -> Package.
  • Na caixa de diálogo, adicionar o caminho UNC completo ao MSI. Por exemplo, se um ficheiro partilhado, chamado pasta, estiver no server.namef, o caminho seria {\i1}server.name\folder\powershell-7.msi
  • Click Open -> Assigned -> OK.

Anexar o GPO ao(s) OU requerido(s)

Após criação, anexar o GPO ao(s) OU requerido(s). Verifique novamente dentro de algumas horas e a implementação deverá estar quase sempre completa.

Verifique o progresso da instalação da GPO

Se preferir uma abordagem mais prática para verificar a implementação da sua Política de Grupo, verifique este pequeno script abaixo que criará um relatório com o objecto da Política de Grupo aplicado aos computadores numa OU específica.

Certifique-se de alterar o nome distinto da OU (OU=Domain Controllers,DC=mylab,DC=local) para a sua OU.

Nota que pode executar isto num controlador de domínio ou num computador de domínio com o módulo PowerShell ActiveDirectory instalado.

$computers = Get-ADComputer -Filter * -SearchBase 'OU=Domain Controllers, DC=mylab, DC=local'ForEach ($computer in $computers) { Get-GPResultantSetOfPolicy -Computer $computer -ReportType HTML -Path c:\temp\$computer.html}

Se desejar verificar servidores específicos, o comando abaixo será útil. Ele chega a um computador remoto ($computer) e verifica a versão do PowerShell instalado nesse computador com $PSVersionTable.PSVersion.

PS> Invoke-Command -Computername $computer -Scriptblock {$PSVersionTable.psversion}

Por último, se encontrar algum computador que não tenha a política de grupo aplicada, pode executar o seguinte comando e forçará a política de grupo a actualizar no computador alvo:

PS> Invoke-GPUpdate -Computer $computer

Implementar PowerShell 7 com PowerShell Remoting

Outra óptima forma de implementar PowerShell em máquinas remotas é com PowerShell! Embora isto possa parecer um pouco meta, PowerShell é uma linguagem de scripting suficientemente robusta para ajudar na instalação da sua substituição.

Antes de começar, assegure-se de que o comando PowerShell está activado e de que configurou as permissões apropriadas para executar comandos remotos em todo o seu ambiente. Pode encontrar um guia sobre como activar o comando PSRemoting via GPO aqui.

Desde que saiba sobre o comando de uma linha que para instalar PowerShell coberto anteriormente, terá de “embrulhar” esse comando num bloco de script e dizer ao comando Invoke-Command para o executar através de uma ou mais máquinas remotas.

Below é um exemplo de looping através de uma lista de computadores armazenados em $computers array e depois executar o script install-powershell.ps1 em todos eles.

$creds = $(Get-Credential)ForEach ($computer in $computers) { Invoke-Command -ComputerName $computer -Credential $creds {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Preview -Quiet"}}

Resumo

Existem tantas razões para manter a sua versão PowerShell actualizada, pelo menos na sua própria máquina se não no seu ambiente de produção. Poderá utilizar as funcionalidades mais recentes, tirar partido das melhorias de desempenho, e mesmo garantir que o seu código mais antigo não se partirá nas versões mais recentes.

Como pode ver, há muitas maneiras de descarregar e instalar novas versões do PowerShell. Escolha o método que funciona para si no seu ambiente e mantenha o PowerShellin’!

Leitura Adicional

    >li> Como verificar a sua versão PowerShell (All the Ways!)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *