se você é novo na Linguagem de script do PowerShell e deseja aprender como executar um script do PowerShell, você veio para a postagem certa no blog. Este blog será um tutorial cobrindo maneiras comuns de executar scripts e alguns problemas que podem aparecer.

Tabela de Conteúdo

pré-Requisitos

Este artigo será um guia passo a passo para você sobre como executar o PowerShell no computador local. Se você quiser acompanhar, certifique-se de ter os seguintes pré-requisitos antes de iniciar este artigo.

  • um computador Windows 10 com privilégios de administrador.
  • Windows PowerShell versão 5 ou superior. Você também pode usar o PowerShell v7. Este tutorial se concentrará no Windows PowerShell, já que o Sistema Operacional Windows já o possui.
  • qualquer editor de arquivos de texto

lidando com a Política de execução

se esta é a primeira vez que você está tentando executar um script do Windows PowerShell, você pode encontrar um problema comum. O PowerShell provavelmente retornará uma mensagem de erro informando que um script “não pode ser carregado porque a execução de scripts está desativada neste sistema”.

PS> .\GetServices.ps1 File C:\Temp\GetServices.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. At line:1 char:1 .\GetServices.ps1 ~~~~~ CategoryInfo : SecurityError: (:) , PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess 

PowerShell retorna a mensagem de erro acima quando você tenta executar um PowerShell com uma política de execução definida como Restrito, remoto assinado ou todos assinados.

Restricted

Restricted é a Política padrão definida para computadores cliente Windows. Se você estiver usando o PowerShell pela primeira vez, sua política padrão provavelmente será definida para restringir todos os scripts.

você ainda pode executar comandos individuais em um terminal, mas não em um arquivo de script. A restrição inclui qualquer arquivo que termine com .ps1xml, .psm1ou .ps1.

irrestrito

irrestrito permite que você execute qualquer script no entanto, ele avisa antes da execução se o script for baixado da internet. Essa política geralmente é o padrão para qualquer dispositivo que não seja do windows.

Remote Signed

Remote Signed policy permite que você execute qualquer script que seja (a) assinado digitalmente ou (b) qualquer script escrito em seu computador local com ou sem uma assinatura.

se um script for baixado da internet e não assinado, você precisará desbloquear o arquivo. Você pode fazer isso clicando com o botão direito do mouse no arquivo e escolhendo Propriedades. Ou, você pode usar o cmdlet Unblock-File PowerShell para esse arquivo de script específico.

usar uma política assinada Remota seria uma opção ideal ao executar um script baixado da internet.

todos assinados

todos assinados exigem que todos os scripts sejam assinados digitalmente por um editor confiável. Isso inclui os scripts baixados da internet e escritos localmente no seu computador.

alterar a Política de execução do PowerShell

para alterar a Política de execução:

  1. abra o Windows PowerShell com Executar como Administrador para garantir que você tenha a permissão mais alta para fazer as alterações da política.
Pesquisa PowerShell no Menu 'Iniciar'
Pesquisa PowerShell no Menu Iniciar

2. Quando aberto, execute o seguinte comando PowerShell para definir a Política de execução do seu computador. A Política de execução, conforme coberta acima, pode ser um dos três tipos diferentes. Este tutorial está usando uma política de execução útil, mas ainda segura, do RemoteSigned.

como este tutorial assume que você baixou da Internet O arquivo de script GetServices.ps1, defina a Política de execução como RemoteSigned.

PS> Set-ExecutionPolicy RemoteSigned

a Política de execução RemoteSigned força você a assinar criptograficamente cada script do PowerShell baixado da Internet antes que o PowerShell o execute em seu sistema.

3. Você deve ver uma saída solicitando para confirmar a ação. Digite Y e pressione enter para confirmar a alteração da política.

Execution Policy Change The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy? Yes Yes to All No No to All Suspend Help (default is "N"): 

neste ponto, siga as próximas etapas para explorar diferentes métodos para executar o script do PowerShell no computador.

Como Executar um Script do PowerShell

Para demonstrar a execução de um script do PowerShell, você realmente precisa de um arquivo de script para executar! Se você não tiver um Acessível, baixe este arquivo ZIP e extraia o arquivo PS1 dentro. Você encontrará um arquivo de script simples dentro chamado GetServices. ps1.

Write-Output "Listing Computer Services"Get-Service

cada script do PowerShell deve terminar com uma extensão .ps1.

usando o Console

depois de ter um script pronto, existem algumas maneiras diferentes de executar um arquivo de script do PowerShell. Uma das maneiras mais comuns é através do console PowerShell.

para fazer isso:

  1. abra o Console do PowerShell como mostrado acima.

2. Navegue até o local do sistema de arquivos seu script está localizado usando o cmdlet Set-Location PowerShell ou o alias cd. O script deste tutorial é encontrado no C:\Temp directório.

PS> cd C:\Temp\

3. Execute o script usando uma notação dot (.). PowerShell é um shell que também procura nomes de comandos. Para diferenciar entre um comando PowerShell e um script, você deve prefaciar o script com um ponto. Este ponto representa o diretório atual.

 PS> .\GetServices.ps1

Como Executar um Script do PowerShell partir da Linha de Comando através do PowerShell Local

Se você não pode ou não deseja executar scripts via PowerShell console, você também pode fazê-lo com o bom e velho’ de linha de comando (prompt de comando).

para executar scripts através do prompt de comando, você deve primeiro iniciar o executável PowerShell (powershell.exe), com a localização do PowerShell de C:\Program Files\WindowsPowerShell\powershell.exe e, em seguida, passar o caminho do script como um parâmetro para ele.

você pode executar scripts com parâmetros em qualquer contexto simplesmente especificando – os enquanto executa o executável PowerShell como powershell.exe -Parameter 'Foo' -Parameter2 'Bar'.

depois de abrir o cmd.exe, você pode executar um script PowerShell como abaixo. Este exemplo está executando o mecanismo e passando o caminho do script de C:\Temp\GetServices.ps1.

Observe abaixo que o exemplo abaixo está usando o caminho de localização do PowerShell para executar o script. Você terá que fazer isso se a pasta não estiver em seu caminho em algum lugar.

CMD> C:\Program Files\WindowsPowerShell\powershell.exe "C:\Temp\GetServices.ps1"

o local do PowerShell para o PowerShell 7 usa um executável diferente chamado pwsh.exe normalmente localizado em C:\Program arquivos \ PowerShell \ 7 \ pwsh.exe.

abaixo está um vídeo útil do YouTube que cobre a execução de um script por meio de um arquivo em lote que o cmd.exe executa.

Usando o PowerShell ISE

Se você criar os seus próprios scripts ou editar outros’, você provavelmente vai estar usando um editor de script, como o PowerShell ISE, ou talvez Visual Studio (VS) de Código. Como o ISE vem com o Windows, Vamos nos concentrar nesse método para este tutorial.

para invocar um script através do ISE:

  1. navegue até o Menu Iniciar, procure o PowerShell ISE e abra-o.
Pesquisa PowerShell ISE no Menu 'Iniciar'
Pesquisa PowerShell ISE no Menu Iniciar

2. Clique em Arquivo → Abrir e encontre seu script.

abrir Script usando o menu Arquivo
abrir Script usando o menu Arquivo

3. Com o script aberto, clique no botão verde executar para executar o script. Este botão invocará o script no terminal PowerShell integrado na parte inferior.

Executar Script usando PowerShell ISE
Executar Script usando PowerShell ISE

a saída do Script de amostra

um script PowerShell às vezes pode retornar a saída. Isso acontece quando o script que você está executando é construído para retornar objetos que é um componente fundamental do PowerShell.

se você executar o script GetServices.ps1 de exemplo, verá o seguinte. Este script executa o cmdlet Get-Service que retorna todos os serviços instalados em seu computador Windows local.

PS> .\GetScripts.ps1Listing Computer ServicesStatus Name DisplayName------ ---- -----------Running aakore Acronis Agent Core ServiceStopped AarSvc_1b668d Agent Activation Runtime_1b668dRunning AcronisActivePr... Acronis Active Protection ServiceRunning AcronisCyberPro... Acronis Cyber Protection ServiceRunning AcrSch2Svc Acronis Scheduler2 ServiceRunning AdobeARMservice Adobe Acrobat Update ServiceRunning AdobeUpdateService AdobeUpdateServiceRunning AGMService Adobe Genuine Monitor ServiceRunning AGSService Adobe Genuine Software Integrity Se...----Truncated----

executando um Script PowerShell de dentro de um Script

digamos que você tenha dois scripts e gostaria que um chamasse o outro. Talvez você tem um script chamado GetUser.ps1 e um chamado ResetPassword.ps1. Dentro do GetUser.ps1 script, você gostaria de executar o ResetPassword.ps1 para redefinir uma senha de usuário.

dentro do script de chamada (GetUser.ps1), você adicionaria uma linha para executar o outro script, assim como chamaria o script da linha de comando.

você pode ver abaixo você tem algumas opções. Normalmente, você deve optar por executar o outro script na mesma sessão ou escopo para simplificar as coisas, a menos que tenha um motivo específico para executar o script em outra sessão do PowerShell.

## To run the other script in a new sessionpowershell.exe .\ResetPassword.ps1## To run the other script in the same session.\ResetPassword.ps1

Deixe uma resposta

O seu endereço de email não será publicado.