Como Executar um Script PowerShell Sem Mostrar uma Janela
-
Use o parâmetro
-WindowStyle Hidden
do PowerShell para executar um script do PowerShell sem exibir uma janela - Use o Agendador de Tarefas para executar um script do PowerShell sem exibir uma janela
- Use Ferramentas de Terceiros para Executar um Script do PowerShell Sem Exibir uma Janela
- Conclusão

O PowerShell da Microsoft é uma ferramenta que vem padrão com os sistemas operacionais Windows, permitindo que os usuários do Windows utilizem funções de automação baseadas em interfaces de linha de comando e comandos.
O PowerShell é uma ferramenta de script e uma ferramenta de automação; portanto, às vezes requer que a aplicação seja executada em segundo plano silenciosamente. Através deste artigo, veremos como executar a aplicação PowerShell silenciosamente em segundo plano, executando comandos em segundo plano.
Existem ferramentas de terceiros que você pode incorporar às ferramentas do PowerShell para alcançar a funcionalidade oculta do PowerShell. Contudo, existem maneiras fáceis de fazer isso apenas com o PowerShell.
Use o parâmetro -WindowStyle Hidden
do PowerShell para executar um script do PowerShell sem exibir uma janela
Uma maneira simples de ocultar a janela do script seria usando o tipo hidden
como estilo de janela. Uma janela do PowerShell aparecerá brevemente no início e depois será oculta durante a execução do script.
O parâmetro -WindowStyle
no PowerShell permite que você controle a aparência da janela do PowerShell. O parâmetro -WindowStyle Hidden
, quando aplicado, garante que a janela do PowerShell não seja exibida durante a execução do script.
Isso é especialmente útil para tarefas que requerem automação sem interação do usuário ou quando você não quer interromper o fluxo de trabalho do usuário.
Executar um script do PowerShell com o parâmetro -WindowStyle Hidden
é simples. Abra uma janela do PowerShell e use o seguinte comando:
PowerShell.exe -WindowStyle Hidden { Script you want to execute.. }
Aqui está o que cada parte do comando faz:
PowerShell.exe
: Inicia um novo processo do PowerShell.-WindowStyle Hidden
: Define o estilo da janela como oculto, impedindo que a janela do PowerShell seja exibida.- O script que você deseja executar está encerrado entre chaves
{}
.
A execução do PowerShell do comando acima é mostrada na imagem abaixo.
Uma vez inserido, a janela desaparece, mas a aplicação continuará a ser executada em segundo plano. Como mostrado na imagem abaixo dos processos em segundo plano, o PowerShell é executado como um processo em segundo plano.
Neste método, o usuário veria inicialmente o PowerShell. Portanto, não está verdadeiramente oculto para os usuários finais. Mesmo que a tarefa seja agendada previamente, a janela apareceria e seria rapidamente oculta.
Use um arquivo Batch
Se você está lidando com um script mais complexo ou planeja executá-lo várias vezes, este método (arquivo batch com comando PowerShell) pode ser mais organizado e eficiente.
Crie um arquivo batch (por exemplo, run_script.bat
) com o seguinte conteúdo:
@echo off
powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
@echo off
: Este comando impede que o arquivo batch exiba seus comandos na janela do console.powershell -WindowStyle Hidden -File "C:\caminho\para\script.ps1"
: Esta linha chama o PowerShell com os parâmetros necessários e o caminho para o script.
Ambos os códigos acima alcançam o mesmo objetivo de executar um script do PowerShell sem exibir uma janela, mas usam abordagens ligeiramente diferentes. Contudo, existem outros métodos simples para alcançar a verdadeira funcionalidade oculta do PowerShell.
Use o Agendador de Tarefas para executar um script do PowerShell sem exibir uma janela
O Agendador de Tarefas é uma ferramenta do Windows que permite automatizar tarefas em horários ou eventos específicos. Ele oferece uma ampla gama de opções de personalização, tornando-o uma ferramenta versátil para gerenciar várias tarefas em seu computador.
Criando uma Nova Tarefa
- Abra o Agendador de Tarefas: Você pode fazer isso pesquisando por
"Agendador de Tarefas"
no menu Iniciar do Windows. - Navegue até
"Ações"
: Clique em"Criar Tarefa"
no painel à direita.
Configurando a Tarefa
- Nomeie a Tarefa: Forneça um nome e descrição para sua tarefa. Isso deve ser algo descritivo que reflita o que a tarefa faz.
- Escolha o Gatilho da Tarefa: Selecione como você deseja disparar a tarefa. As opções incluem diariamente, semanalmente, mensalmente, ao fazer logon, etc. Escolha o gatilho que melhor se adapta às suas necessidades.
Configurando Gatilhos
- Selecione os detalhes do Gatilho: Dependendo do gatilho escolhido, você precisará fornecer detalhes adicionais. Por exemplo, se escolher
"Diário"
, você especificará a hora e a frequência. - Configurações Avançadas: Você pode definir opções mais avançadas clicando em
"Configurações Avançadas"
. Isso permite que você personalize ainda mais quando e com que frequência a tarefa é executada.
Especificando Ações
- Selecione Ação: Na etapa
"Ações"
, escolha"Novo"
>"Iniciar um programa"
já que estaremos executando um script do PowerShell. - Programa/script: Navegue e selecione
powershell.exe
em seu sistema. - Adicionar argumentos (opcional): Digite o seguinte:
-WindowStyle Hidden -File "C:\path\to\script.ps1"
Substitua "C:\caminho\para\seu\script.ps1"
pelo caminho real para seu script do PowerShell.
Habilitando Opções de Segurança
Marque a caixa que diz "Executar com os maiores privilégios"
. Isso garante que o script será executado com privilégios de administrador se necessário.
Você também pode clicar em Executar se o usuário estiver logado ou não
, e isso nunca mostrará a janela do PowerShell quando a tarefa for executada.
Concluindo e Testando a Tarefa
Revise o resumo da tarefa e clique em "OK"
para criá-la.
Você pode testar a tarefa clicando com o botão direito sobre ela no Agendador de Tarefas e selecionando "Executar"
. Isso executará a tarefa imediatamente de acordo com os gatilhos que você definiu.
O Agendador de Tarefas permite automatizar tarefas em intervalos ou eventos especificados. Ao usá-lo para disparar o PowerShell com os argumentos apropriados, você pode executar scripts silenciosamente.
No entanto, este método pode afetar a funcionalidade de alguns scripts que você tenta usar. Portanto, você também pode usar ferramentas de terceiros ou extensões da comunidade para o PowerShell.
Use Ferramentas de Terceiros para Executar um Script do PowerShell Sem Exibir uma Janela
Ferramentas de terceiros estendem as capacidades do PowerShell ao fornecer funcionalidades e recursos adicionais. Quando se trata de executar scripts do PowerShell sem exibir uma janela, essas ferramentas desempenham um papel crucial na automação de tarefas de forma fluida.
Use o PSExec
PSExec
é uma ferramenta versátil do Sysinternals
(agora parte da Microsoft) que permite executar processos remotamente. Pode ser usado para executar scripts do PowerShell silenciosamente.
psexec -d -s powershell -WindowStyle Hidden -File "C:\path\to\script.ps1"
psexec
: Inicia oPSExec
.-d
: Instruções para oPSExec
não esperar o comando ser concluído.-s
: Executa o comando com permissões de sistema.powershell -WindowStyle Hidden -File "C:\caminho\para\script.ps1"
: Executa o script do PowerShell silenciosamente.
Use o NSSM (Non-Sucking Service Manager)
NSSM
é um gerenciador de serviços para Windows que permite executar qualquer aplicação como um serviço. Isso pode ser particularmente útil para executar scripts silenciosamente em segundo plano.
- Baixe e instale o NSSM do site oficial.
- Abra um prompt de comando com privilégios administrativos.
- Execute o seguinte comando para criar um novo serviço:
nssm install <ServiceName> "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\path\to\script.ps1"
nssm install <NomeDoServico>
: Instala um novo serviço com o nome especificado."C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
: Especifica o caminho para o executável do PowerShell."-NoLogo -NonInteractive -ExecutionPolicy Bypass -File C:\caminho\para\script.ps1"
: Passa parâmetros para o PowerShell, instruindo-o a executar o script silenciosamente.
Conclusão
O PowerShell é uma ferramenta poderosa de automação para usuários do Windows, oferecendo extensas capacidades de linha de comando. Em cenários onde a execução silenciosa em segundo plano é necessária, vários métodos estão disponíveis.
- Usando o parâmetro
-WindowStyle Hidden
: Isso permite uma breve visibilidade da janela do PowerShell antes de ocultá-la durante a execução do script. É adequado para tarefas que requerem automação sem interação do usuário. - Arquivos Batch: Organizados para executar scripts complexos ou repetidos. Arquivos batch chamam o PowerShell com os parâmetros necessários.
- Agendador de Tarefas: Oferece automação em horários ou eventos específicos. Ao configurá-lo para executar o PowerShell com os parâmetros corretos, os scripts podem ser executados silenciosamente.
- Ferramentas de Terceiros (por exemplo,
PSExec
,NSSM
): Estendem as capacidades do PowerShell, permitindo a execução de scripts sem janelas.
Escolha o método que melhor se adapta às suas necessidades e fluxo de trabalho específicos.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.