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 tornar bom em PowerShell é entendendo o básico. Saber 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 PowerShell mais interessante.

Pré-requisitos

Este tutorial será uma demonstração prática, mas não possui muitos pré-requisitos. Se você quiser 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 chefe sem obter ajuda? Bem, sempre haverá uma necessidade de ajuda ao escrever código. Esteja você executando código ou comandos em um ambiente de linha de comando, o cmdlet Get-Help é ú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 obter 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

Lembra-se do Windows Task Manager que exibe todos os seus processos, serviços, aplicativos e tudo mais? Bom! O cmdlet Get-Process é um cmdlet básico, mas essencial, que oferece acesso a todos os processos do seu computador em poucos passos, sem 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 o seu computador funcione lentamente, interrompa 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 interromper.

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 recente que você executou 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 no seu sistema. O cmdlet Get-Service permite visualizar todos os serviços, que podem ser um servidor de banco de dados ou aplicativo que controla automaticamente o brilho da tela do seu computador.

Execute o comando abaixo para obter uma lista de todos os serviços no 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 começam com um caractere específico. Se for o caso, adicionar um caractere curinga (*) resolverá.

Execute o comando Get-Service abaixo, passando a primeira letra e asterisco (A*) dos serviços que você 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 Trabalhos em Segundo Plano com Start-Job

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

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

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

Dado que você está usando trabalhos em segundo plano, como verificar se um trabalho ainda está em execução ou concluído? Execute o cmdlet Get-Job para obter todos os trabalhos na sua sessão.

Alterando Diretórios de Trabalho com Set-Location

Existem momentos em que você precisa alterar diretórios, como ao executar um script ou um programa de uma localização específica. Mas como você muda de diretório? Deixe que o cmdlet Set-Location te ajude com isso. O cmdlet Set-Location define o diretório de trabalho atual para o diretório que você especifica em um comando.

Execute o código abaixo para definir o diretório de trabalho atual para C:\Users\hp\Desktop. Troque 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 os Caminhos Existem via Test-Path

O PowerShell pode exibir um erro 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 de NewFolder.

Execute o comando Test-Path abaixo, seguido pelo caminho que você deseja 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 desde que o caminho exista. Caso contrário, você obterá 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 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) na memória e converter (ConvertTo-Html) a lista em um arquivo HTML chamado Command.html.

O arquivo HTML é salvo na sua Área de Trabalho desde que você tenha alterado o diretório de trabalho anteriormente. Para salvar o arquivo HTML em outro local, especifique o caminho completo. Por exemplo: Get-Command | ConvertTo-HTML > C:\Temp\Commands.html

# Cria um arquivo Commands.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) nomeado 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 assim: Get-Command | Export-CSV C:\Temp\Commands.csv

Abra o arquivo Commands.csv e você verá algo parecido com o exemplo abaixo. Não é ruim, certo?

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 basicamente lista todos os comandos do PowerShell disponíveis em um formato de tabela. Mas como você viu nos exemplos anteriores, você sabe que não é tudo o que o Get-Command pode fazer.

Talvez queira listar seletivamente os cmdlets ou os aliases. 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 cmdlets (-CommandType Cmdlet) com nomes começando 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 lhe deu um guia completo sobre como executar comandos básicos do PowerShell. Agora, você deve saber como encadear extensivamente e executar comandos e evitar ficar preso na codificação a qualquer momento.

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

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