Os 10 Comandos Básicos do PowerShell que Você Precisa Conhecer

Você já tentou escrever algum código PowerShell e ficou preso? Não se preocupe mais! Uma das melhores maneiras de se destacar no PowerShell é entender os fundamentos. Conhecer alguns comandos básicos do PowerShell pode torná-lo um profissional, e você automatizará tarefas administrativas de forma mais eficiente.

Neste tutorial, você aprenderá os cmdlets básicos do PowerShell que precisa conhecer para tornar sua experiência com o PowerShell mais interessante.

Pré-requisitos

Este tutorial será uma demonstração prática, mas não possui muitos pré-requisitos. Se desejar acompanhar, qualquer sistema (Windows ou Linux) com PowerShell 5.1 ou superior funcionará. Embora os comandos sejam mostrados usando o Windows PowerShell, os exemplos abaixo funcionam no PowerShell 7+ multiplataforma.

Obtendo Informações de Ajuda sobre Comandos com Get-Help

Você já escreveu código como um especialista sem obter ajuda? Bem, sempre haverá a necessidade de ajuda ao escrever código. Seja executando código ou comandos em um ambiente de linha de comando, o cmdlet Get-Help é muito útil.

Vamos começar este tutorial aprendendo como o cmdlet Get-Help funciona.

O cmdlet Get-Help oferece os guias necessários para utilizar qualquer comando de forma eficaz, sem erros. Veja-o como documentação para cada um dos comandos do PowerShell.

Abra o PowerShell como administrador e execute o comando Get-Help abaixo para visualizar informações detalhadas (-Detailed) sobre um comando, como o cmdlet Get-ExecutionPolicy.

Get-Help -Name Get-ExecutionPolicy -Detailed
Getting Detailed Information of Commands

Em vez de apenas informações detalhadas, talvez você queira visualizar informações completas sobre um cmdlet. Se for o caso, adicione o parâmetro -Full no comando Get-Help em vez disso.

Execute o código abaixo para obter informações completas (-Full) sobre o próprio cmdlet Get-Help.

Get-Help Get-Help -Full
Getting Full Information of Commands

Talvez você ainda precise de mais exemplos para evitar erros ao executar o comando. Nesse caso, adicione o parâmetro -Examples para ver exemplos de como escrever um comando.

Execute o comando Get-Help abaixo para obter exemplos (-Examples) de como você pode usar o cmdlet Get-Process.

 Get-Help Get-Process -Examples
Applying -Examples to get help for Get-Process

Recuperando Processos do Computador com Get-Process

Você se lembra do Gerenciador de Tarefas do Windows que exibe todos os seus processos, serviços, aplicativos e tudo mais? Legal! O cmdlet Get-Process é um cmdlet básico, porém essencial, que lhe dá acesso a todos os processos do seu computador em poucos passos, sem precisar abrir o Gerenciador de Tarefas.

Execute o seguinte comando para obter uma lista de todos os processos do sistema em formato de tabela.

Get-Process
Getting All Windows Processes

Quando um processo trava e faz com que seu computador funcione lentamente, pare o processo encadeando o cmdlet Get-Process com o cmdlet Stop-Process. Por exemplo: execute Get-Process -Id 1252 | Stop-Process, onde -Id 1252 especifica o ID do processo que você deseja parar.

Obtendo o Histórico da Sessão do PowerShell com Get-History

Pode haver uma necessidade de verificar seus comandos recentes, como verificar se o comando recentemente executado está correto ou se você realmente executou um comando. Mas o PowerShell tem um histórico de comandos? Sim! O cmdlet Get-History retorna um objeto de todos os seus comandos recentes em sua sessão atual do PowerShell.

Execute o comando abaixo para obter uma lista de todos os comandos recentemente executados em sua sessão atual.

Get-History
Getting the commands history of the current session

Se preferir visualizar comandos específicos do histórico, adicione o parâmetro -Id seguido pelo número de ID do comando no histórico. Por exemplo, execute Get-History -Id 2 para ver o segundo comando no histórico.

Exibindo os Serviços do Sistema com Get-Service

Assim como o cmdlet Get-Process, o PowerShell também permite visualizar todos os serviços em execução em seu sistema. O cmdlet Get-Service permite visualizar todos os serviços, que podem ser um servidor de banco de dados ou um aplicativo que controla automaticamente o brilho da tela do seu computador.

Execute o comando abaixo para obter uma lista de todos os serviços em seu sistema em formato de tabela. Com este comando, você pode visualizar até mesmo os serviços parados.

Get-Service
Getting all available services on the local computer

Talvez você esteja procurando por serviços que comecem com um caractere específico. Se for o caso, adicionar um caractere curinga (*) fará o truque.

Execute o comando Get-Service abaixo, passando a primeira letra e o asterisco (A*) dos serviços que deseja visualizar. Adicionar o caractere curinga permite filtrar todos os serviços que não começam com a letra ‘A’.

Get-Service A*
Getting all services that start with the letter ‘A’

Executando Tarefas em Segundo Plano com Start-Job

Escrever códigos pode ser irritante se ainda houver muito para escrever, mas um único comando demora para ser escrito. Sem problemas! O PowerShell fornece um cmdlet para executar tarefas em segundo plano em sua sessão. O cmdlet Start-Job oferece um ambiente do PowerShell para executar código ou comandos como uma tarefa em segundo plano sem interação do usuário.

Execute o comando Start-Job abaixo para iniciar uma tarefa em segundo plano para o cmdlet Get-Command. Iniciar uma tarefa em segundo plano executa o cmdlet Get-Command sem exibir a saída na linha de comando.

Start-Job -ScriptBlock {Get-Command}
Starting a background job for Get-Command

Dado que você está usando tarefas em segundo plano, como verificar se uma tarefa ainda está em execução ou concluída? Execute o cmdlet Get-Job para obter todas as tarefas em sua sessão.

Alterando Diretórios de Trabalho com Set-Location

Há momentos em que você precisa mudar de diretórios, como quando está executando um script ou um programa de um local específico. Mas como você muda de diretórios? Deixe o cmdlet Set-Location ajudar você com isso. O cmdlet Set-Location define o diretório de trabalho atual para o diretório que você especificar em um comando.

Execute o código abaixo para definir o diretório de trabalho atual para C:\Users\hp\Desktop. Mude hp pelo nome de usuário do seu computador.

Set-Location C:\Users\hp\Desktop

Abaixo, você pode ver no prompt que C:\Users\hp\Desktop agora é o diretório de trabalho.

Changing Working Directory

Verificando se Caminhos Existem via Test-Path

O PowerShell pode exibir um bug se você estiver tentando acessar um arquivo que não existe. Como evitar isso? O cmdlet Test-Path permite que você verifique se um caminho existe ou não, com sua sintaxe intuitiva.

Agora, crie uma pasta na Área de Trabalho, nomeando-a NewFolder.

Execute o comando Test-Path abaixo, seguido pelo caminho que você preferir testar. Para este exemplo, o comando testa se o caminho C:\Users\hp\Desktop\NewFolder existe.

Test-Path C:\Users\hp\Desktop\NewFolder

Abaixo, você pode ver o comando retornou um valor True já que o caminho existe. Caso contrário, você receberá uma saída Falsa.

Testing if the path exists

Convertendo Objeto PowerShell para HTML com ConvertTo-HTML

Se você prefere uma forma organizada para seus dados, converta seus dados para HTML com o ConvertTo-Html cmdlet. Fundamentalmente, o comando recebe como entrada o arquivo de saída que você deseja converter e o nome do arquivo que deseja salvar.

Execute o comando abaixo para coletar a lista de todos os comandos do PowerShell (Get-Command) em memória e converter (ConvertTo-Html) a lista para um arquivo HTML nomeado Command.html.

O arquivo HTML é salvo em sua Área de Trabalho já que você anteriormente mudou o diretório de trabalho. Para salvar o arquivo HTML em outra localização, especifique o caminho completo. Por exemplo: Get-Command | ConvertTo-HTML > C:\Temp\Comandos.html

# Cria um arquivo Comandos.html que contém todos os comandos do PowerShell
Get-Command | ConvertTo-Html > Commands.html

Exportando Objetos PowerShell para CSV com Export-CSV

Se você acha que um relatório em CSV seria melhor em vez de HTML, então use o cmdlet Export-CSV. Semelhante ao cmdlet ConvertTo-Html, o cmdlet Export-CSV permite exportar dados para um arquivo CSV.

Execute o comando abaixo para coletar uma lista de comandos do PowerShell (Get-Command) e exportar a lista como um arquivo CSV (Export-CSV) chamado Commands.csv.

Get-Command | Export-CSV Commands.csv

Assim como no cmdlet ConvertTo-Html, você também pode especificar um caminho de exportação para o arquivo CSV desta forma: Get-Command | Export-CSV C:\Temp\Commands.csv

Abra o arquivo Commands.csv e você verá algo semelhante ao exemplo abaixo. Não é ruim, né?

Opening Exported Commands.csv in Microsoft Excel

Visualizando Todos os Comandos Disponíveis do PowerShell com Get-Command

O último comando do PowerShell na lista é o cmdlet Get-Command. O cmdlet Get-Command lista basicamente todos os comandos do PowerShell disponíveis em um formato de tabela. Mas como você viu nos exemplos anteriores, você sabe que o Get-Command pode fazer mais do que isso.

Talvez você queira listar os cmdlets ou os aliases seletivamente. Se for o caso, adicione o parâmetro -CommandType ao cmdlet Get-Command para filtrar a saída pelo tipo de comando que você especificar. O valor do parâmetro -CommandType pode ser Alias, Cmdlet ou Function.

Execute o comando Get-Command abaixo para listar apenas os cmdlets (-CommandType Cmdlet) com nomes que começam com ‘G’ (-Name G*).

Get-Command -Name G* -CommandType Cmdlet
Getting all cmdlets that start with the letter ‘G’

Outra maneira de filtrar a saída do Get-Command é encaminhá-la para o cmdlet Select-Object. Como você sabe, o objeto retornado pelo cmdlet Get-Command está em formato de tabela. Nessa tabela, os nomes das colunas representam as propriedades que você pode selecionar do objeto.

Execute o comando Get-Command abaixo para coletar uma lista de todos os comandos do PowerShell e filtrar a exibição para mostrar a propriedade de definição de cada comando (Select-Object -Property Definition).

Get-Command | Select-Object -Property Definition
Property Definition

Conclusão

Este tutorial ofereceu a você um guia completo sobre como executar comandos básicos do PowerShell. Neste momento, você deve saber como encadear e executar comandos extensivamente e evitar ficar preso na codificação a qualquer momento.

Agora, como você vai expandir esse conhecimento recém-adquirido? Talvez aprender a escrever comandos em várias linhas em scripts do PowerShell sem bagunçar as coisas?

Source:
https://adamtheautomator.com/basic-powershell-commands/