O PowerShell fornece opções avançadas para controlar e gerenciar todos os processos em seu sistema. Portanto, se você deseja automatizar qualquer processo ou vários deles, o PowerShell é o caminho certo.
Ao contrário dos prompts de comando, o PowerShell usa cmdlets. Esses cmdlets não são executáveis autônomos, mas processam entradas de um pipeline e fornecem saída para outro para o mesmo objeto. Portanto, você pode usar vários cmdlets para o mesmo objeto e executá-los como uma única tarefa. Essa propriedade torna a automação de scripts do PowerShell extremamente eficaz.
Se você quiser saber como automatizar os scripts do PowerShell, este artigo deve fornecer todas as informações necessárias.
Como automatizar scripts do PowerShell?
Dependendo do seu sistema, talvez você não consiga executar scripts do PowerShell em seu computador. Isso ocorre porque o PowerShell inclui uma configuração chamada diretiva de execução para proteger seu computador impondo um determinado nível de restrição a esses scripts. E a maioria dos sistemas tem essa configuração habilitada por padrão.
Portanto, antes de automatizar os scripts, você precisa remover ou diminuir a restrição. Primeiro, abra o PowerShell como administrador e digite o seguinte comando:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned
Se você precisar executar scripts não assinados da Internet ou de uma fonte externa, use o seguinte comando:
Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy Unrestricted
Em seguida, use um dos métodos abaixo para automatizar scripts do PowerShell no Windows:
Usando o Agendador de Tarefas
O A ferramenta gráfica Agendador de Tarefas fornece uma maneira fácil de automatizar scripts do PowerShell. É a melhor opção se você deseja agendar um script que baixou ou obteve de uma fonte externa e não tem muita ideia de como usar o PowerShell.
Abra Executar. Digite taskschd.msc e pressione Enter para abrir o Agendador de Tarefas. Clique com o botão direito do mouse em Biblioteca do Agendador de Tarefas e selecione Criar Tarefa.
Na guia Geral , forneça qualquer nome e descrição que desejar para a tarefa para automatizar os scripts. Escolha entre Executar somente quando o usuário estiver conectado e Executar com o usuário conectado ou não, dependendo da sua necessidade.
Se você quiser usar outra conta de usuário para executar a tarefa, clique em Alterar usuário ou grupo > Avançado > Localizar agora. Selecione sua conta na lista e clique em OK > OK.
Defina outras opções, como se deseja privilégios de administrador, se deseja tornar a tarefa Oculta ou configurá-la para outra versão do sistema operacional. Agora, vá para a guia Acionadores e clique em Novo.
Escolha a programação ou instância em que deseja executar o script na caixa suspensa ao lado de Iniciar a tarefa. Se você escolheu Em uma programação, você precisa definir a frequência e a data de início. Caso contrário, para a maioria das opções, você precisa especificar o usuário. Em seguida, defina as configurações avançadas, se desejar. Certifique-se de marcar Ativado se fizer isso. Clique em OK.
Você sempre pode edite o Acionador clicando nele e selecionando Editar. Você também pode adicionar outro gatilho para a tarefa. Agora, vá para a guia Ações e selecione Novo. Digite powershell ou powershell.exe na caixa de texto Programa/script. Digite-Arquivo”caminho completo para o script”ao lado de Adicionar argumentos. Por exemplo,-Arquivo “D:\Novo\script.ps1″
Pressione OK. Vá para as guias Condições e Configurações e especifique as opções lá. Clique em OK para criar a tarefa.
Usando o PowerShell
Se você estiver familiarizado com o uso do PowerShell para scripts, o método mais fácil de automatizar qualquer script é criar uma tarefa agendada por meio do próprio PowerShell.
Primeiro, nós discuta os cmdlets que você precisa usar para criar tais agendamentos. Se você já sabe o que são, pode pular para as etapas principais. Caso contrário, você precisará passar por eles para entender como executar o processo.
New-ScheduledTaskTrigger
Ele cria um objeto de gatilho para especificar quando para agendar a tarefa. Você precisa atribuir este cmdlet a uma variável para criar um objeto acionador.
Você pode usar os seguintes atributos com este cmdlet para acionar uma tarefa em intervalos regulares:
-At: especifica a hora em que você deseja executar a tarefa-Once: Inicia a tarefa uma vez Por exemplo, $trigger=New-ScheduledTaskTrigger-Once-At 4am
-Daily: Inicia a tarefa diariamente. Você também pode usar-DaysInterval # juntamente com-Daily para executar a tarefa uma vez a cada # dias. Por exemplo, $trigger=New-ScheduledTaskTrigger-Daily-DaysInterval 5-At 4am cria um gatilho para executar uma tarefa uma vez a cada 5 dias.
-Weekly: Inicia a semana de tarefas. Você também pode usar-WeeksInterval # juntamente com-Weekly para executar uma tarefa uma vez a cada # semanas.
Se você deseja executar a tarefa na inicialização, precisa usar o atributo-AtStartup. Da mesma forma, você precisa usar-AtLogon para executar tarefas no logon do usuário. Você pode usar o atributo-User para especificar a conta de usuário exata.
New-ScheduledTaskAction
Ele especifica qual aplicativo você deseja executar. Você também precisa criar um objeto de ação de tarefa atribuindo-o a outro valor se desejar registrar a tarefa em seu computador.
Os principais atributos que você pode usar são:
-Execute: Especifica o arquivo executável que você precisa automatizar; neste caso, powershell.exe-Argumento: Especifica o arquivo while a ser aberto com o arquivo executável acima. É melhor inserir o caminho completo do script, caso contrário, o PowerShell o procurará no diretório de trabalho. Por exemplo, $action=New-ScheduledTaskAction-Execute “powershell.exe”-Argument “D:\New\script.ps1″
-WorkingDirectory: Descreva o diretório de trabalho onde seu sistema executa a tarefa. O padrão é %WinDir%\System32
Register-ScheduledTask
Ele registra a tarefa em seu computador local. Você precisa usar os objetos criados usando os cmdlets acima nos argumentos desse cmdlet para automatizar os scripts do PowerShell. Os atributos necessários são:
-TaskName: Qualquer nome que você queira para a tarefa.-Trigger: Aqui, você anexa o objeto de gatilho criado usando New-ScheduledTaskTrigger-User: Especifique a conta de usuário à qual a tarefa se aplica. Você também pode especificar um computador se quiser automatizar os scripts para um computador conectado à rede.-Action: aqui, você anexa o objeto de tarefa que o cmdlet New-ScheduledTaskAction cria.
Por exemplo, Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action
Há muitos cmdlets adicionais que você pode usar para essa finalidade, bem como atributos que você pode usar com eles. Como são opcionais e não são relevantes na maioria dos casos, não os incluímos aqui. Mas você ainda pode visitar a documentação sobre a plataforma da Microsoft se quiser saber mais sobre eles.
Finalmente, veja como você pode usar esses cmdlets para automatizar scripts do PowerShell:
Abra Executar pressionando Win + R. Digite powershell e pressione Enter para abra o Windows PowerShell. Se você quiser usar o núcleo do PowerShell (versões 6.x, 7.x), precisará usar o comando Executar pwsh.
Crie um objeto acionador usando o cmdlet New-ScheduledTaskTrigger. Em seguida, crie um objeto de tarefa para executar um script do PowerShell. Finalmente, registre a tarefa agendada. Por exemplo, você pode inserir os seguintes cmdlets no PowerShell: $Trigger=New-ScheduledTaskTrigger-Once-At 10am $Action=New-ScheduledTaskAction-Execute “powershell.exe”-Argument “D:\New\script.ps1″$User=”DESKTOP\User”Register-ScheduledTask-TaskName”PowerShell Script”-Trigger $Trigger-User $User-Action $Action