Como Executar um Script PowerShell a Partir de um Arquivo em Lote

  1. Use o parâmetro -File para executar um script PowerShell a partir de um arquivo em lote
  2. Use RemoteSigned como -ExecutionPolicy para executar um script PowerShell a partir de um arquivo em lote
  3. Use o switch Bypass para executar um script PowerShell a partir de um arquivo em lote
  4. Execute um script PowerShell a partir de um arquivo em lote abrindo o PowerShell como administrador
  5. Conclusão
Como Executar um Script PowerShell a Partir de um Arquivo em Lote

Um script PowerShell é um arquivo de texto usando a extensão .ps1 contendo uma coleção de comandos. O PowerShell executa esses comandos em sequência.

Um arquivo em lote é um arquivo de texto usando a extensão .bat. Ele também contém uma coleção de comandos que são executados em sequência.

Os comandos podem ser executados abrindo o arquivo .bat. Este tutorial ensinará você a executar um script PowerShell a partir de um arquivo em lote.

Criamos um script PowerShell, myscript.ps1, contendo o seguinte comando. O comando pause interrompe a execução de um arquivo em lote até que você pressione a tecla Enter.

Write-Host "Your script is executed successfully."
Pause

Use o parâmetro -File para executar um script PowerShell a partir de um arquivo em lote

Executar um script PowerShell a partir de um arquivo em lote pode ser uma técnica útil para automatizar tarefas em ambientes Windows. O método do parâmetro -File permite a integração perfeita de scripts PowerShell em fluxos de trabalho de arquivos em lote.

O seguinte comando é usado no arquivo bat para executar um script PowerShell.

@echo off
powershell -File script.ps1

Neste trecho de código, usamos primeiro @echo off para suprimir a exibição dos comandos sendo executados, garantindo que apenas a saída do script será visível para o usuário. Em seguida, usamos o comando powershell com o parâmetro -File para executar um script PowerShell chamado script.ps1.

Este comando inicia uma sessão PowerShell e especifica o arquivo do script a ser executado. Ao combinar esses comandos, podemos executar perfeitamente um script PowerShell a partir de um arquivo em lote, simplificando o processo de execução de comandos PowerShell dentro de um ambiente de arquivo em lote.

Saída:

executar um script do powershell a partir de um arquivo em lote - saída 1

Use RemoteSigned como -ExecutionPolicy para executar um script PowerShell a partir de um arquivo em lote

O PowerShell possui diferentes políticas de execução que determinam quais scripts podem ser executados e de onde. Uma maneira de contornar essas restrições é especificando o parâmetro -ExecutionPolicy com um valor de RemoteSigned.

Esta política de execução permite que scripts criados localmente sejam executados sem exigir uma assinatura digital, enquanto scripts baixados da internet devem ser assinados por um editor confiável.

@echo off
powershell -ExecutionPolicy RemoteSigned -File script.ps1

No trecho de código fornecido, powershell -ExecutionPolicy RemoteSigned -File script.ps1 é usado para executar o script PowerShell chamado script.ps1 localizado no diretório de trabalho atual. Ao especificar o parâmetro -ExecutionPolicy como RemoteSigned, garantimos que scripts criados localmente possam ser executados sem uma assinatura digital, enquanto scripts baixados da internet devem ser assinados por um editor confiável.

Saída:

executar um script do powershell a partir de um arquivo em lote - saída 2

Use o switch Bypass para executar um script PowerShell a partir de um arquivo em lote

Para contornar as restrições e permitir que o script seja executado sem quaisquer limitações impostas pela política de execução, podemos usar o parâmetro -ExecutionPolicy com o valor Bypass. Este método fornece uma maneira simples de executar scripts PowerShell a partir de um arquivo em lote, contornando quaisquer restrições de política de execução.

@echo off
powershell -ExecutionPolicy Bypass -File C:\path\script.ps1

No trecho de código fornecido, powershell -ExecutionPolicy Bypass -File C:\path\script.ps1 é utilizado para executar o script PowerShell chamado script.ps1 localizado no diretório C:\path\scripts. Ao definir a política de execução como Bypass, instruímos o PowerShell a desconsiderar quaisquer restrições de política de execução, permitindo que o script seja executado sem qualquer obstáculo.

Saída:

executar um script PowerShell a partir de um arquivo em lote - saída 3

Você também pode executar o seguinte comando.

@echo off
powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\path\script.ps1'"

Neste comando fornecido, utilizamos -ExecutionPolicy Bypass para instruir o PowerShell a desconsiderar quaisquer restrições de política de execução, permitindo assim que o script seja executado sem limitações. Além disso, o parâmetro -NoProfile garante que o perfil do PowerShell do usuário não seja carregado, o que ajuda a manter um ambiente de execução limpo para o script.

Saída:

executar um script do powershell a partir de um arquivo em lote - saída 4

Execute um script PowerShell a partir de um arquivo em lote abrindo o PowerShell como administrador

Executar um script PowerShell a partir de um arquivo em lote com privilégios elevados, abrindo o PowerShell como administrador, é um método crucial para executar scripts que requerem acesso administrativo. Esta abordagem garante que a sessão do PowerShell tenha as permissões necessárias para realizar tarefas administrativas, como modificar configurações do sistema ou acessar recursos restritos.

@echo off
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1'"

Neste trecho de código, utilizamos powershell.exe para iniciar uma sessão PowerShell com privilégios elevados. O parâmetro -Verb RunAs no cmdlet Start-Process garante que o PowerShell seja aberto com privilégios administrativos.

Ao passar os argumentos necessários (-NoProfile -ExecutionPolicy Bypass -File C:\path\script.ps1) para a nova sessão do PowerShell, habilitamos a execução do script especificado (script.ps1) com permissões elevadas.

Saída:

executar um script do powershell a partir de um arquivo em lotes - saída 5

Conclusão

Neste artigo, exploramos vários métodos para executar um script PowerShell a partir de um arquivo em lote. Aprendemos como usar o parâmetro -File para executar um script diretamente, bem como como contornar restrições de política de execução usando os parâmetros RemoteSigned e Bypass.

Além disso, discutimos como abrir o PowerShell como administrador para executar scripts com privilégios elevados. Cada método oferece uma abordagem única para executar scripts PowerShell a partir de arquivos em lote, oferecendo flexibilidade e controle sobre o ambiente de execução.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Artigo relacionado - PowerShell Script