Comando Powershell.exe: sintaxe, parâmetros e exemplos

18 de dezembro de 2021 15812 Visualizações Limitações do Verificador de Compatibilidade do Windows 11

À medida que você progride em suas habilidades de script do PowerShell, logo percebe que precisa usar o comando Powershell.exe.

Nesta Zona S, você aprenderá a usar o comando PowerShell.exe e seus argumentos.

Na primeira seção do guia, você aprenderá sobre os locais do arquivo executável do PowerShell.

Em seguida, na segunda seção, você aprenderá como corrigir a mensagem de erro do comando PowerShell.exe não encontrado. Eu sinto a necessidade de começar daqui porque se você não consegue nem executar o comando, como você o usa?

A terceira e quarta seções cobrem a ajuda do comando PowerShell.exe e seus argumentos, respectivamente. Além disso, na seção cinco, você aprenderá sobre os parâmetros comuns do PowerShell.exe.

Finalmente, na sexta e última seção, mergulho em alguns exemplos de SysAdmin reais.

Este guia foi escrito para iniciantes e usuários avançados. Se você for um usuário avançado do PowerShell e precisar de um tópico específico, expanda Browse Post Topics e selecione um tópico. No entanto, se você é novo no PowerShell, recomendo fortemente a leitura do guia.

Procurar tópicos de postagem

A localização do executável PowerShell.exe no Windows 10

Localização do executável do comando PowerShell.exe

Antes de chegarmos à parte em que você aprende sobre os comandos do PowerShell.exe, acredito que seja essencial que você saiba a localização do executável. Na próxima seção, você verá o primeiro benefício desse conhecimento.

No Windows 10, o PowerShell.exe está localizado em duas pastas. Você pode encontrá-lo aqui – %SystemRoot%SysWOW64WindowsPowerShellv1.0

Além disso, você também pode encontrar o PowerShell.exe em %SystemRoot%system32WindowsPowerShellv1.0.

Se você executar a versão de 32 bits do Windows 10, seu Windows 10 terá apenas %SystemRoot%system32WindowsPowerShellv1.0. No entanto, se você executar os 64 bits, terá os dois caminhos.

Você pode não achar esta informação útil agora. No entanto, à medida que você faz o script, pode ser útil no futuro.

Como corrigir o erro de comando PowerShell.exe não encontrado

Se você não estiver recebendo essa mensagem de erro, não precisará passar por esta seção.

Antes de continuar a discutir o comando PowerShell.exe, deixe-me lidar com um erro que algumas pessoas podem receber quando executam PowerShell.exe – Comando não encontrado.

Essa mensagem de erro também pode se apresentar de outras maneiras. Por exemplo, você pode receber uma mensagem de erro Powershell' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote .

Se você receber uma dessas mensagens de erro, o possível culpado é a variável pathenvironment. A solução é adicionar o caminho %SYSTEMROOT%System32WindowsPowerShellv1.0 à variável de ambiente do caminho.

Se você está tendo esse problema, siga as etapas abaixo para corrigi-lo…

  1. Entrar avançado na caixa de pesquisa do Windows 10. Então clique Exibir configurações avançadas do sistema a partir dos resultados da pesquisa.
  1. Abaixo Inicialização e Recuperação seção, clique em Variáveis ​​de Ambiente.
  1. Então, no Variáveis ​​de Sistemas seção, clique duas vezes no Caminho variável.
  1. Quando a lista de variáveis ​​de caminho for aberta, clique em Novo .
  2. Em seguida, digite %SYSTEMROOT%System32WindowsPowerShellv1.0 e pressione a tecla Enter no teclado.
  1. Depois de confirmar que o caminho foi inserido com sucesso, clique em OK 3 vezes.
  2. Por fim, feche e abra novamente o Powershell. Em seguida, execute o comando Powershell.exe novamente. Desta vez, deve funcionar.

Ajuda da linha de comando do PowerShell.exe

Ajuda da linha de comando do PowerShell.exe

Como a maioria, se não todos os comandos do Windows, o PowerShell.exe tem algumas informações de ajuda. Para acessar as informações de ajuda do comando PowerShell.exe, execute um dos comandos abaixo:

|_+_| Você também pode executar o comando sem o .exe incluído no PowerShell.

Aqui está a aparência das informações de ajuda do PowerShell.exe….

Ajuda da linha de comando do PowerShell.exe

As informações de ajuda listam a sintaxe do comando, seus argumentos/parâmetros e alguns exemplos. Abordaremos tudo isso nas seções subsequentes deste guia.

Sintaxe do comando PowerShell.exe

A sintaxe do comando PowerShell.exe é…

|_+_| Você não precisa incluir .Exe no comando. É opcional.

Os argumentos completos da linha de comando serão discutidos na próxima seção.

Argumentos/parâmetros da linha de comando do PowerShell.exe

Argumentos/parâmetros da linha de comando do PowerShell.exe

Você já viu como listar informações de ajuda para PowerShell.exe. Quando você lista as informações de ajuda do PowerShell, elas incluem seus argumentos e parâmetros de linha de comando.

Eu listei todos os argumentos de linha de comando do PowerShell.exe na tabela abaixo:

S/NArgumento de linha de comando do PowerShell.exe Objetivo do argumento de linha de comando
1Política de ExecuçãoUse esse parâmetro para definir a política de execução padrão para a sessão atual do PowerShell.
doisSem saídaSe você usar o parâmetro NoExit, o PowerShell não sairá após a execução de comandos de inicialização
3Sem perfilUse este argumento se não quiser carregar o perfil do Windows PowerShell
4Não interativoSe você usar o parâmetro NonInteractive, o PowerShell não apresentará um prompt interativo ao usuário
5ArquivoEste parâmetro é usado para executar um script especificado no escopo local – as funções e variáveis ​​criadas pelo script estão disponíveis na sessão atual
6Sem logotipoOculta as informações da Microsoft exibidas quando o PowerShell.exe é inicializado. Ele também oculta todas as outras informações de inicialização.
7VersãoO parâmetro Version é usado para iniciar o PowerShell em uma versão especificada.
8Estilo da janelaDetermina o estilo do Windows PowerShell. Os valores válidos são Normal, Minimizado, Maximizado ou Oculto
9ComandoUse o parâmetro Command para especificar um comando que você deseja que o PowerShell.exe execute.
10PSConsoleFileUsado para especificar um arquivo de console do Windows PowerShell. Você pode criar um arquivo de console com o comando Export-Console
onzeÉInicia o shell do PowerShell usando o apartamento de thread único. Este é o padrão.
12MtaInicie o shell do PowerShell usando um apartamento multithread. O padrão é sta
13Formato de entradaUse este parâmetro para descrever o tipo de dados enviados ao PowerShell. Os valores válidos são XML ou Texto.
14Formato de saídaEsse parâmetro é usado para especificar como o PowerShell deve formatar seus valores de saída. Os valores válidos são XML ou Texto
quinzeComando CodificadoUsado para enviar comandos complexos ao PowerShell. O parâmetro EncodedCommand aceita uma versão de string codificada em base 64 de um comando
16ConfigurationNameUse o argumento ConfigurationName para especificar um ponto de extremidade de configuração para o PowerShell
17AjudaExibe as informações completas de ajuda, incluindo os argumentos do comando PowerShell.exe

Exemplos de parâmetros de comando comuns do PowerShell.exe

Exemplos de parâmetros de comando comuns do PowerShell.exe

Na última seção, listei todos os argumentos de linha de comando do comando PowerShell.exe. Nesta seção, vou me aprofundar em alguns dos parâmetros comuns e como usá-los.

Parâmetro de política de execução do comando PowerShell.exe

Conforme explicado na última seção, o parâmetro ExecutionPolicy é usado para definir o padrão política de execução para a sessão atual do PowerShell. A política de execução padrão definida pelo parâmetro ExecutionPolicy é salva no $env:PSExecutionPolicyPreference variável de ambiente.

Observe que a política de execução definida por esse parâmetro é válida apenas para a sessão atual do PowerShell. Além disso, ele não modifica a política de execução do PowerShell definida no registro do Windows.

Passando para os exemplos, talvez seja necessário definir uma política de execução diferente se a política de execução atual for muito restritiva. Por exemplo, se você quiser chamar um script PowerShell baixado e não assinado, poderá usar o parâmetro ExecutionPolicy para especificar uma política de execução menos restritiva.

Os valores válidos para o argumento ExecutionPolicy são Restrito , ou Tudo assinado . Além disso, você pode definir Assinado Remoto , Sem restrições , Desviar , ou Indefinido .

Para saber mais sobre essas políticas de execução e como elas funcionam, leia nosso Explicação da política de execução do PowerShell guia.

Finalmente, para terminar esta seção com um exemplo, para definir a política de execução da sessão atual para Sem restrições , execute o comando abaixo…

|_+_|

Aqui está o comando no PowerShell…

Mencionei anteriormente nesta subseção que a política de execução definida por esse parâmetro é salva no arquivo $env:PSExecutionPolicyPreference variável de ambiente.

Para confirmar isso, execute o comando abaixo na mesma sessão do PowerShell em que você executou o último comando…

|_+_|

Aqui está… o comando mostra que a política de execução é Sem restrições !

Exemplos de parâmetros de comando comuns do PowerShell.exe

Depois de definir essa política, você pode executar scripts do PowerShell não assinados. dentro da sessão atual.

Parâmetro NoExit do comando PowerShell.exe

Por padrão, quando você executa o comando PowerShell.exe, após executar os comandos de inicialização, o shell será encerrado. Se você não quiser que o shell saia, especifique o parâmetro NoExit.

Este é um parâmetro de chave – o que significa que não requer nenhuma entrada adicional.

A melhor maneira de mostrar como isso funciona é usar cmd. Primeiro, abra o prompt de comando do Windows.

Em seguida, abra o Gerenciador de Tarefas e expanda Processador de Comandos do Windows – não terá nenhuma instância do PowerShell.

Parâmetro NoExit do comando PowerShell.exe

Volte para o prompt de comando do Windows e execute powershell.exe .

Ao verificar o Processador de Comandos do Windows no Gerenciador de Tarefas, agora ele terá uma instância do PowerShell.

Parâmetro NoExit do comando PowerShell.exe

Para demonstrar que quando você executa o comando PowerShell.exe SEM o parâmetro NoExit, ele sai, retorne ao prompt de comando do Windows e execute o seguinte comando…

|_+_|

Mais uma vez, retorne ao Gerenciador de Tarefas do Windows. Ele ainda deve ter uma instância do PowerShell, mesmo que você tenha acabado de executar um comando PowerShell.exe.

Isso ocorre porque, por padrão, quando você executa um comando do PowerShell.exe quando o comando é concluído, ele sai do shell.

Parâmetro NoExit do comando PowerShell.exe

Por fim, agora execute este comando do PowerShell.exe com o parâmetro NoExit…

|_+_|

Se você olhar para o Gerenciador de Tarefas do Windows, o Processador de Comandos do Windows terá uma instância adicional do PowerShell.

Parâmetro NoExit do comando PowerShell.exe

Para tornar isso ainda mais óbvio, retorne ao prompt de comando do Windows e execute o saída comando. O Gerenciador de Tarefas agora mostrará apenas uma instância do PowerShell!

Executando o saída O comando sai da última sessão do PowerShell iniciada pelo último comando.

Parâmetro NoProfile do comando PowerShell.exe

Por padrão, quando você executa o PowerShell.exe, ele carrega o Perfil do PowerShell . No entanto, se você quiser alterar esse comportamento padrão, use o Sem saída parâmetro.

Como Sem saída , Sem perfil é um parâmetro de chave – não requer nenhuma entrada.

Um perfil do PowerShell é um script que é executado automaticamente sempre que o PowerShell é iniciado. Este script não é criado por padrão.

No entanto, se você precisar personalizar seu ambiente do PowerShell com alguns comandos, aliases ou funções, poderá criar um script de perfil. Em seguida, salve o script como Microsoft.PowerShell_profile.ps1 no local abaixo:

|_+_|

Entrei em alguns detalhes sobre os perfis do PowerShell para que você entenda por que não deseja carregar nenhum perfil do PowerShell existente. Para ler mais sobre os perfis do PowerShell, visite about_Profiles .

Por fim, para executar o comando PowerShell.exe sem carregar nenhum perfil, use o comando Sem perfil parâmetro. Aqui está um exemplo de comando…

|_+_|

Parâmetro não interativo do comando PowerShell.exe

Alguns comandos do PowerShell têm alguns parâmetros obrigatórios. Por exemplo, se você executar Obter credencial sem fornecer credenciais, o PowerShell solicitará que você forneça as credenciais.

Esse comportamento do PowerShell é chamado de interativo comportamento. Isso significa que o PowerShell interage solicitando entradas.

Está tudo bem e bom. No entanto, em cenários de script automatizados, convém interromper a solicitação de entradas do PowerShell.

É aqui que o Não interativo parâmetro entra.

Voltando ao meu Obter credencial exemplo de comando, se eu executar o comando abaixo, serei solicitado a fornecer o Credencial parâmetro.

|_+_| Parâmetro NoLogo do comando PowerShell.exe

No entanto, se eu não quiser que o PowerShell me solicite credenciais, modificarei o comando conforme mostrado abaixo…

|_+_|

Quando executo este comando, ele simplesmente falha, em vez de promover uma entrada.

Para apreciar a importância do Não interativo parâmetro, pense em um script sendo executado automaticamente. Se você não usar esse parâmetro, o script interromperá a execução enquanto aguarda uma entrada.

Parâmetro NoLogo do comando PowerShell.exe

Se você executar o comando PowerShell.exe, ele exibirá algumas informações de direitos autorais. Veja a parte destacada da captura de tela abaixo.

Parâmetro de versão do comando PowerShell.exe

No entanto, se você não quiser que o PowerShell exiba essas informações de direitos autorais quando for iniciado, inclua o Sem logotipo parâmetro. Aqui está um exemplo…

|_+_|

Agora, com o Sem logotipo parâmetro, o PowerShell abre sem exibir essas informações.

Parâmetro de versão do comando PowerShell.exe

Parâmetro de versão do comando PowerShell.exe

Se você criar um script do PowerShell com cmdlets compatíveis até uma versão do PowerShell, poderá usar o Versão parâmetro para forçar o PowerShell a iniciar em uma versão especificada.

Antes de dar um exemplo, deixe-me verificar a versão atual do PowerShell no meu computador. Para fazer isso, vou executar o comando abaixo…

|_+_|

Os comandos mostram que minha versão atual do PowerShell é 5.1…

Mesmo que a versão atual do PowerShell no meu PC seja 5.1, posso forçar o PowerShell a executar a versão 2. Para fazer isso, executarei o comando abaixo…

|_+_|

Agora, se eu correr, $PSVersionTable , isso mostra que minha sessão do PowerShell agora está aberta na versão 2.0!

Para que esse comando funcione, a versão do PowerShell que você deseja carregar deve estar instalada no computador.

Por fim, para esta subseção, para sair da versão do PowerShell e carregar seu padrão, execute saída . Agora, estou de volta à versão 5.1!

Parâmetro do arquivo de comando do PowerShell.exe

Parâmetro WindowStyle do comando PowerShell.exe

Mais uma vez, em um cenário de script, se você não quiser exibir a janela do PowerShell. Você pode usar o Estilo da janela parâmetro para ocultar a janela do PowerShell.

Além disso, você também pode usar o parâmetro para exibir a janela do PowerShell Minimizado , ou Maximizado .

Vamos ver como o comando PowerShell.exe se comporta se especificarmos escondido como o WindowStyle…

|_+_|

Quando você executa esse comando, conforme o esperado, a janela do PowerShell é fechada.

Da mesma forma, se você usar o Minimizado WindowStyle, a janela do PowerShell será fechada. Porém, ao contrário do que acontece com o estilo Oculto, desta vez, ele fica na barra de tarefas.

|_+_|

Eu acredito que agora, você entendeu a essência. Você pode usar o Estilo da janela parâmetro para controlar o comportamento da janela do PowerShell.

Parâmetro de comando do comando PowerShell.exe

Eu já usei o parâmetro Command em vários exemplos neste guia. Esse parâmetro é usado para especificar um comando do PowerShell que você deseja executar.

O comando geralmente é colocado entre um colchete {}. Além disso, se você quiser executar comandos múltiplos ou complexos, adicione o e comercial antes do colchete {} e coloque tudo entre aspas duplas.

Aqui está como usar o e comercial com o parâmetro Command…

|_+_|

Seguindo em frente, o comando pode ser um Cmdlet PowerShell normal, um bloco de script ou até mesmo uma string. Por exemplo, posso fazer com que o PowerShell exiba o texto esta é uma string com o comando abaixo…

|_+_|

Parâmetro do arquivo de comando do PowerShell.exe

O Arquivo é outro parâmetro importante do PowerShell.exe. Você pode usar esse parâmetro para chamar um script do PowerShell.

Vou dar um exemplo com um dos meus scripts do PowerShell que cria um arquivo CSV no caminho, D:PS-Tutorial . O script cria um nome de arquivo para o arquivo CSV com a data e hora atuais.

Aqui está uma captura de tela da pasta – ela tem apenas um arquivo CSV com a data atual…

Exemplos de linha de comando do PowerShell.exe

Agora, executarei o script usando o PowerShell.exe e o Arquivo parâmetro…

|_+_|

Quando executo o comando, um novo arquivo CSV é criado.

Exemplos de linha de comando do PowerShell.exe

Como abrir o comando PowerShell.exe como um usuário diferente

Nesta segunda e última seção do guia, dou vários exemplos de maneiras diferentes de usar o comando PowerShell.exe.

Como abrir o comando PowerShell.exe como um usuário diferente

Nesta seção, mostro como abrir o PowerShell como um usuário diferente.

O primeiro passo é salvar o nome de usuário e a senha em uma variável chamada, $Credential .

|_+_|

Ao executar o comando, o PowerShell solicitará que você insira um nome de usuário e uma senha. Insira o nome de usuário e a senha da conta com a qual você deseja abrir o PowerShell.

Por fim, clique em OK.

Depois de salvar os detalhes de login, execute este segundo comando…

|_+_|

Quando você executa o último comando, ele abre uma nova sessão do PowerShell. Esta nova sessão do PowerShell é aberta como o usuário especificado no $Credential variável.

Como abrir o comando PowerShell.exe do CMD

Agora, deixe-me orientá-lo através do comando ..

|_+_|

No comando, usei Iniciar-Processo para iniciar o powershell.exe. Eu tive que fazer isso porque o powershell.exe não tem o parâmetro Credential.

Contudo, Iniciar-Processo tem o parâmetro Credential. Usei isso para especificar os detalhes de login da pessoa com quem desejo executar o PowerShell.

Como abrir o comando PowerShell.exe do CMD

Para abrir o comando PowerShell.exe do CMD, digite PowerShell.exe no CMD e pressione a tecla Enter.

|_+_|

Depois de executar o comando, uma sessão do PowerShell é aberta no prompt de comando do Windows.

Depois de aberto, você pode executar comandos normais do PowerShell. Além disso, os comandos serão preenchidos automaticamente.

Por exemplo, agora posso executar…

|_+_| Como agendar o script do Powershell para ser executado no Agendador de Tarefas

Antes de prosseguir nesta subseção, gostaria de mencionar que quando você abre o comando PowerShell.exe do CMD, você pode usar qualquer um dos parâmetros.

Por exemplo, se eu não quiser exibir as informações de direitos autorais, incluirei o Sem logotipo parâmetro.

|_+_|

Desta vez, o CMD abre uma sessão PS sem exibir as informações usuais de direitos autorais…

Por fim, para fechar a sessão do PowerShell aberta no CMD, execute o saída comando….

|_+_|

Eu tive que correr o saída command várias vezes porque eu tinha aberto várias sessões PS.

Como agendar o script do Powershell para execução no Agendador de tarefas - criar tarefa agendada

Como executar o comando PowerShell.exe embutido

A execução de um comando do PowerShell com vários parâmetros pode apresentar alguns desafios.

Quando eu estava pesquisando sobre este assunto, me deparei com este Pergunta do Stackoverflow.com . A pessoa quer executar o Send-MailMessage Comando do PowerShell com vários parâmetros.

Aqui está o comando que a pessoa está tentando executar…

|_+_|

Infelizmente, de acordo com o usuário, o comando falha. A solução é adicionar um e comercial antes do colchete de abertura, {.

Aqui está o comando modificado oferecido por Buxmanias

|_+_|

Se você observar, em vez das aspas duplas usadas para agrupar os valores de parâmetro no comando original, o novo comando usa aspas simples.

Finalmente, para esta subseção, o truque para executar o comando PowerShell.exe inline é usar o Comando parâmetro. Em seguida, coloque o comando entre colchetes {} – por fim, inclua um e comercial e coloque tudo entre aspas duplas.

Aqui está um exemplo simplificado…

|_+_|

Como executar vários comandos em um bloco de script do PowerShell.exe

Para executar vários comandos em um scriptblock do PowerShell.exe, você precisa usar o Comando parâmetro. Em seguida, abra o bloco de comando com aspas duplas de abertura, seguidas por um e comercial…

|_+_|

Em seguida, incluindo um colchete de abertura, { seguido pelo primeiro comando…

|_+_|

Depois de inserir o primeiro comando, insira um ponto e vírgula ao lado do primeiro comando.

|_+_|

Em seguida, digite o segundo comando…

|_+_|

Por fim, insira o colchete de fechamento, } – e, em seguida, as aspas duplas de fechamento.

|_+_|

Aqui está o resultado do comando…

Você pode adicionar tantos comandos quanto possível. Apenas certifique-se de usar um ponto e vírgula para separá-los.

Como redirecionar a saída de um comando PowerShell.exe

A maneira mais fácil de redirecionar a saída em um comando do PowerShell.exe é usar Arquivo de saída .

Quando você executa o comando powershell.exe, dentro do Comando parâmetro, você pode canalizar a saída do comando para Arquivo de saída . Aqui está um exemplo.

|_+_|

Você também pode usar qualquer um dos outros comandos de manipulação de arquivos do PowerShell, como Adicionar conteúdo e Conteúdo definido .

Como agendar um script do Powershell para ser executado no Agendador de Tarefas

Na última parte deste guia, demonstrarei como agendar um script do PowerShell com o agendador de tarefas.

Neste exemplo, agendarei o script Get-FreeDiskSpace. Este script será executado semanalmente e enviará um relatório de espaços livres em disco em todos os servidores.

Siga as etapas abaixo para agendar o script Get-FreeDiskSpace PowerShell:

  1. Abra o PowerShell ou o prompt de comando. Em seguida, digite este comando e pressione Enter.
|_+_|

Isso abrirá o Agendador de Tarefas.

  1. Clique com o botão direito Agendador de tarefas e selecione Criar tarefa .
  1. Dê um nome à tarefa. Você também pode inserir uma descrição. Então clique Gatilhos aba.
  1. Para criar um novo acionador clique Novo .
Um gatilho é o que faz sua tarefa ser executada no Agendador de Tarefas.
  1. No Novo gatilho página, no Comece a tarefa suspenso, certifique-se de que Em um cronograma é selecionado.

    Em seguida, selecione a frequência. Se você selecionar Semanalmente e marque a caixa ao lado do dia da semana em que deseja que sua tarefa seja executada.

    Por fim, configure Configurações avançadas . Clique OK. Então, no Criar tarefa página, clique em Ok novamente (Segunda imagem abaixo).
  1. A seguir, clique no Ações aba.
É aqui que você insere o comando do PowerShell.exe.
  1. No Ações guia, clique Novo . No Nova ação página, abaixo programa/script , digite o comando abaixo:
|_+_|
  1. Então ao lado Adicionar argumentos (opcional) , digite o seguinte
|_+_| Você deve especificar o caminho completo para seu script, incluindo a extensão, .ps1
  1. Ao terminar, clique em Ok.

É isso, nosso guia de comando PowerShell.exe renovado! Espero que tenha achado útil?

Se você achou útil, por favor, vote sim para a pergunta Foi este post útil abaixo.

Alternativamente, você pode fazer uma pergunta, deixar um comentário ou fornecer mais feedback com o formulário Deixe uma resposta encontrado no final desta página.

Por fim, para obter mais zonas S de tecnologia do PowerShell, visite nossa página de guia de instruções do Windows PowerShell. Você também pode achar nossa página Work from Home muito útil.

Referências e Leituras Adicionais

  1. about_PowerShell_exe
  2. about_Execution_Policies
  3. about_Profiles