PowerShell commands: Os 40 comandos PoweShell mais importantes

Ao fazer uso dos comandos PowerShell (PowerShell commands) certos, você conseguirá implementar e automatizar tarefas com muito mais rapidez e precisão. Chamados de cmdlets, eles também podem ser personalizados com a adoção de parâmetros operacionais. Este tutorial apresenta a você os 40 comandos PowerShell mais importantes, para ajudá-lo a otimizar o seu trabalho em ambientes Windows.

O que são PowerShell commands?

O PowerShell, ambiente de linha de comando e linguagem de script da Microsoft, vem pré-instalado em todas as versões mais novas do Windows (a partir do Windows 7). Ele possibilita a execução de tarefas administrativas e o gerenciamento de sistemas, por meio de comandos cmd. Especificamente no PowerShell, comandos são chamados de cmdlets. Estes, compostos por um verbo e por um substantivo separados por hífen, só podem ser entendidos por essa ferramenta. A vantagem de cmdlets é que eles podem ser personalizados por parâmetros operacionais separados por espaços.

Em ambientes Windows, o PowerShell não é valioso somente para administradores de sistemas, mas também para desenvolvedores. Ao aprenderem os comandos PowerShell mais importantes, estes profissionais economizam tempo e aumentam a produtividade.

Comandos PowerShell básicos

Como já explicado, comandos PowerShell permitem a realização de tarefas administrativas com bem menos esforço. Dentre os PowerShell commands mais básicos e frequentemente utilizados estão aqueles capazes de apresentar panoramas sobre a estrutura da rede, de listar outros comandos, de auxiliar nas configurações de segurança essenciais e de possibilitar a realização de análises. Apresentaremos, abaixo, os comandos PowerShell que mais lhe ajudarão no dia a dia, e explicaremos cada um deles:

1. Get-Module -All

Para obter um panorama com todos os módulos PowerShell importados, faça uso do comando Get-Module -All.

Get-Module -All
shell

2. Get-Command

Existem por aí algumas centenas de comandos PowerShell predefinidos. Para obter uma lista com todos eles, basta fazer uso do comando Get-Command. Ele apresenta, de forma ordenada, todas as possíveis ações, juntamente com breves explicações sobre cada cmdlet — comandos continuam válidos mesmo após a instalação de módulos adicionais.

Get-Command
shell

3. Get-Help

O comando Get-Command, apresentado acima, fornece apenas informações básicas sobre PowerShell commands. Se você procura por informações mais detalhadas sobre um comando específico, assim como sobre suas opções, opte pelo cmdlet Get-Help. Ele acessa os arquivos de ajuda do seu computador e apresenta todas as informações lá disponibilizadas. Para executá-lo, combine Get-Help com o comando cuja sintaxe você deseja consultar.

Get-Help [[-Name] <String>] [-Path <String>] [-Category <String[]>] [-Component <String[]>] [-Functionality <String[]>] [-Role <String[]>] [-Examples] [<CommonParameters>]
shell

4. Get-Process

Para checar superficialmente a sua lista de aplicações, programas e processos ativos no sistema, use o comando Get-Process. Ao especificar uma aplicação, você receberá informações adicionais a respeito dela.

Get-Process
shell

5. Get-Service

O comando Get-Service funciona de forma similar ao Get-Process. No entanto, ele apresenta informações relativas a todos os serviços ativos. Se você procura mais informações sobre um serviço ou categoria de serviços em particular, também é possível especificar a solicitação.

Get-Service
shell

6. Stop-Process

Vários PowerShell commands têm o poder de interromper processos pelo ambiente de linha de comando. Um deles é o cmdlet Stop-Process. Defina o processo correspondente inserindo seu nome, ID ou outro atributo que o especifique.

Stop-Process -Name "nome do processo"
shell

Observe o exemplo:

Stop-Process -Id 3582 -Confirm -PassThru
shell

Com -Confirm, a confirmação do comando será solicitada. Já -PassThru solicitará a confirmação do processo interrompido — isso não pode ser feito automaticamente.

7. ConvertTo-HTML

Para identificar problemas ou potenciais complicações com rapidez, é de extrema importância que você leia e compreenda códigos de forma clara. Para facilitar a visualização deles, faça uso do PowerShell command ConvertTo-HTML: ele transforma resultados PowerShell em arquivos HTML, de compreensão mais intuitiva. A estrutura desse comando costuma ser a seguinte:

Get-Command | ConvertTo-Html > c:\temp\Comandos.html
shell

8. ConvertTo-Xml

Você pode proceder de forma semelhante se quiser obter a representação de um objeto específico em XML. Faça essa conversão com o comando ConvertTo-Xml. No exemplo abaixo, convertemos a data atual para o formato XML:

Get-Date | ConvertTo-Xml
shell

9. Where-Object

Use o PoweShell command Where-Object para filtrar o resultado de um cmdlet. Ao executar um cmdlet, você poderá receber respostas contendo bem mais informações que as estritamente necessárias. Execute, em seguida, o Where-Object com um pipe, para que apenas as informações que você procura sejam exibidas. Por exemplo, para ver os serviços criados ou atualizados neste ano, você poderia executar o comando abaixo:

Get-Service | Where-Object { $_.LastWriteTime -gt "01.01.2024" }
shell

10. Get-History

Para listar todos os PowerShell commands que você executou durante uma sessão, use o cmdlet Get-History.

Get-History
shell

Já para listar apenas os últimos dez comandos PowerShell executados, use a seguinte especificação:

Get-History -Count 10
shell

11. Clear-History

Você também pode excluir a lista de PowerShell commands que utilizou. Para deletar todas as entradas de uma só vez, use o cmdlet Clear-History:

Clear-History
shell

Para excluir somente comandos PowerShell específicos, faça uso de parâmetros que os identifiquem. No exemplo de código abaixo, determinamos a exclusão do registro de todos os comandos contendo a palavra “Help” e terminados em “Syntax”.

Clear-History -Command *Help*, *Syntax
shell

12. Add-History

Também é possível vincular comandos PowerShell a sessões específicas, para que eles possam ser chamados a qualquer momento. O cmdlet certo para fazer isso é Add-History.

Add-History
shell

13. Out-File

Para salvar, no seu computador, os resultados produzidos por comandos PowerShell por você utilizados, use o cmdlet Out-File. Ele armazena PowerShell commands em um arquivo de texto bruto no local especificado.

Get-Process | Out-File -FilePath .\Processo.txt
shell

14. Copy-Item

O PowerShell também permite que elementos sejam copiados e salvos em diferentes locais. Basta usar o comando Copy-Item e especificar o diretório em que a cópia deve ser salva.

Copy-Item "C:\pasta1\arquivo.txt" -Destination "C:\pasta2"
shell

15. Get-ChildItem

Use o cmdlet Get-ChildItem para buscar itens em um ou mais locais de armazenamento. Caso eles contenham subelementos, estes também serão exibidos. Por padrão, esse comando PowerShell lista os atributos, a data e a hora da última modificação, assim como o tamanho do arquivo e o nome dos subelementos. Por outro lado, se o local de armazenamento estiver vazio, o resultado será omitido.

Get-ChildItem -Path C:\exemplo
shell

Os atributos correspondentes são exibidos abaixo da linha “Mode”. Suas propriedades mais comuns são:

  • a (arquivo)
  • d (diretório)
  • h (oculto)
  • l (link)
  • r (somente leitura)
  • s (sistema)

16. Set-AuthenticodeSignature

Para proteger seus arquivos, você pode equipá-los com uma assinatura Authenticode. Para tanto, use o comando Set-AuthenticodeSignature. Saiba, contudo, que ela só poderá ser adicionada a arquivos que oferecem suporte ao Subject Interface Package (SIP).

$cert=Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert
Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -Certificate $cert
shell

17. Invoke-Item

Se você quer realizar uma ação padrão associada a um arquivo específico, o comando PowerShell Invoke-Item é o ideal. Ele assegura, por exemplo, a execução direta de um arquivo executável (extensão .exe) ou a abertura de um documento na aplicação padrão. No nosso exemplo, o arquivo em questão será automaticamente aberto pelo Microsoft Word, aplicação padrão da extensão .doc:

Invoke-Item "C:\Teste\exemplo.doc"
shell

18. Start-Job

Para iniciar uma tarefa em segundo plano no seu computador local, você deve usar o comando Start-Job. Ele possibilita a execução de um comando específico em segundo plano sem que este interaja com a sessão atual.

Start-Job -ScriptBlock { Get-Process -Name pwsh }
shell
Dedicated Server da IONOS

O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo assistente pessoal!

  • Suporte 24 horas
  • Tráfego ilimitado
  • Certificado SSL

Comandos PowerShell para executar ações

Os comandos PowerShell até então apresentados são voltados à exibição de diferentes tipos de panoramas. Contudo, um cmdlet também é capaz de executar uma ação e melhorar a eficiência do seu sistema. Conheça, agora, PowerShell commands capazes de simplificar o seu fluxo de trabalho.

19. Clear-Content

Para apagar o conteúdo de um elemento, mas preservar o elemento em si, faça uso do cmdlet Clear-Content. Por exemplo, ele pode ser usado para limpar o texto de um documento, deixando o arquivo em si intacto. Execute-o com o seguinte código:

Clear-Content C:\Temp\exemplo.txt
shell

20. ForEach-Object

O comando ForEach-Object possibilita a realização de operações em todos os elementos de uma coleção de objetos de entrada. Neste exemplo, dividimos três inteiros de um array por 10:

10000, 1000, 100 | ForEach-Object -Process {$_/10}
1000
100
10
shell

21. Compare-Object

Para que você não precise comparar diferentes conjuntos de objetos manualmente, execute o PowerShell command Compare-Object. Ele gera um relatório que destaca diferenças entre registros: o primeiro registro serve como objeto de referência enquanto o segundo representa o objeto de diferença. Especifique os fatores a serem comparados ou omita essa informação para obter apenas resultados de strings que serão comparados. Resultados são divididos em propriedades que só aparecem no objeto de referência (<==) e em propriedades que só estão presentes no objeto de diferença (==>). No exemplo a seguir, o Documento1.txt contém os valores Berlim, Londres e Paris. Já o Documento2.txt contém Berlim, Viena e Amsterdã.

Compare-Object -ReferenceObject (Get-Content -Path C:\Test\Documento1.txt) -DifferenceObject (Get-Content -Path C:\Test\Documento2.txt)
InputObject	SideIndicator
---------------	-----------------
Viena		==>
Amsterdã	==>
Londres	<==
Paris		<==
shell

Por padrão, o conteúdo presente em ambos os documentos (nesse caso, “Berlim”) não é exibido.

22. New-Object

Um dos comandos PowerShell mais úteis é o New-Object. Ele pode ser usado para instanciar um objeto do .NET Framework ou do Component Object Model (COM). Por exemplo, para criar um objeto System.Version com “1.2.3.4” como string construtora, execute o comando a seguir:

New-Object -TypeName System.Version -ArgumentList "1.2.3.4"
shell

23. Select-Object

Use o comando Select-Object para selecionar um objeto ou grupo de objetos que apresenta propriedades definidas por você. Estes são os parâmetros que podem ser especificados:

  • First
  • Last
  • Unique
  • Skip
  • Index

No exemplo de código abaixo, usamos os comandos Get-Process e Sort-Object para que os três processos com o mais alto consumo de memória no momento da execução sejam exibidos.

Get-Process | Sort-Object -Property WS | Select-Object -Last 3
shell

24. Set-Alias

Assim como atalhos de teclado do Windows facilitam a execução de ações no sistema operacional, comandos PowerShell facilitam trabalhos neste mesmo ambiente. O cmdlet Set-Alias, por exemplo, pode ser usado para definir atalhos de comandos PowerShell. No próximo exemplo, apelidamos de “ci” o comando Get-ChildItem quando executado na sessão atual.

PS> Set-Alias -Name ci -Value Get-ChildItem
PS> Get-Alias -Name ci
shell

25. Set-Location

Para alterar o local da memória de trabalho, use o comando Set-Location. Entre as opções disponíveis estão diretórios, subdiretórios, locais de registro e caminhos do provedor. Abaixo, especificamos o disco C: como local de armazenamento.

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
shell

26. Set-Service

Você pode usar o cmdlet Set-Service para interagir com um serviço, iniciá-lo, interrompê-lo ou pausá-lo. Ele também permite a alteração de propriedades desse mesmo serviço. A seguir, alteramos o nome de exibição de um serviço, de “Nova Estação de Trabalho” para “Antiga Estação de Trabalho”.

Set-Service -Name Nova Estação de Trabalho -DisplayName "Antiga Estação de Trabalho"
shell

27. Set-TimeZone

Para alterar o fuso horário do seu sistema, faça uso do PowerShell command Set-TimeZone. Para coordenar o tempo universal como novo horário do sistema, digite o seguinte:

Set-TimeZone -Id "UTC"
shell

28. Restart-Computer

Você consegue reiniciar o sistema operacional do seu computador local ou remoto por meio do PowerShell command Restart-Computer. Ele pode ser executado das seguintes formas:

No computador local:

Restart-Computer
shell

Em computadores específicos de uma rede:

Restart-Computer -ComputerName Servidor01, Servidor03
shell

29. Restart-Service

Para interromper e reiniciar um serviço, opte pelo cmdlet Restart-Service. Para reiniciar todos os serviços iniciados com “net”, por exemplo, proceda da seguinte forma:

PS C:\> Restart-Service -DisplayName "net*"
shell

30. Clear-RecycleBin

Esvazie a sua lixeira com regularidade. Com o PowerShell, você pode executar essa ação por meio do cmdlet Clear-RecycleBin.

Clear-RecycleBin
shell

31. Get-ComputerInfo

O cmdlet Get-ComputerInfo pode ser usado para consultar propriedades do seu sistema ou sistema operacional.

Get-ComputerInfo
shell

32. Move-Item

Diferentes PowerShell commands têm a capacidade de realocar um item, movendo-o de um local para outro. O mais popular deles é o Move-Item. No exemplo abaixo, movemos o arquivo “antigo.txt” do disco C: para o diretório D:\Temp. Ao mesmo tempo, renomeamos o arquivo para “novo.txt”.

Move-Item -Path C:\antigo.txt -Destination D:\Temp\novo.txt
shell

Comandos PowerShell de monitoramento e depuração

Alguns PowerShell commands considerados especialmente interessantes possibilitam o monitoramento e a verificação do sistema. Estes são uteis em situações de teste de desempenho de rede sob condições realistas. A seguir, listamos os comandos PowerShell mais importantes que servem a essas finalidades.

33. Debug-Process

O processo de depuração (debugging) é importante, pois assegura que todas as configurações e processos rodem sem erros. Antes de executar o Debug-Process, contudo, você deverá baixar e configurar os depuradores certos. No próximo exemplo, depuramos o Explorer:

PS C:\> Debug-Process -Name "Explorer"
shell

Para depurar vários processos simultaneamente, adicione-os, um a um, separando-os por vírgulas.

34. Enable-PSBreakpoint

Para ativar determinados pontos de interrupção (breakpoints), faça uso de Enable-PSBreakpoint. Ele define o valor do cmdlet como “verdadeiro” (true) pelo prisma técnico. Execute esse PowerShell command para ativar todos os pontos de interrupção da sessão atual:

Get-PSBreakpoint | Enable-PSBreakpoint
shell

Abaixo, observe um exemplo desse cmdlet sendo usado para ativar pontos de interrupção por meio de IDs:

Enable-PSBreakpoint -ID 0, 3, 4
shell

35. Disable-PSBreakpoint

Para desativar pontos de interrupção do PowerShell, o cmdlet certo é o Disable-PSBreakpoint. Pelo mesmo prisma técnico, ele define o valor do comando Enable-PSBreakpoint como “falso” (false). Para desativar um ponto de interrupção cujo ID é 0, você deve executar o seguinte comando:

Disable-PSBreakpoint -Id 0
shell

36. Get-Counter

Em ambientes Windows, é possível consultar dados de desempenho por meio do PowerShell. O comando que executa essa tarefa é o Get-Counter, que pode ser usado tanto no seu computador local quanto em computadores remotos. No exemplo a seguir, consultamos dados no computador local:

Get-Counter -ListSet *
shell

37. Start-Sleep

Pausar um script ou sessão pode ser de fundamental importância, especialmente quando o sistema enfrenta sobrecargas. Para tanto, o PowerShell oferece o comando Start-Sleep: ele permite que você especifique o tempo pelo qual suas atividades devem ser pausadas. No próximo exemplo, pausamos a execução por dois segundos:

Start-Sleep -Seconds 2
shell

38. Test-Path

Use o comando Test-Path para verificar se todos os elementos de um caminho específicos se encontram presentes. Os resultados possíveis são “verdadeiro” (true) e “falso” (false).

Test-Path -Path "C:\Documents and Settings\user"
False
shell

39. Test-Connection

Você também pode avaliar a conectividade da sua rede com o PowerShell. Faça isso ao enviar pacotes “ICMP Echo Request” aos destinatários especificados, por meio do cmdlet Test-Connection — ele solicita respostas por meio do Internet Control Message Protocol (ICMP). No nosso exemplo, enviamos uma solicitação ao Servidor02 por meio do protocolo IPv6.

Test-Connection -TargetName Servidor02 -IPv6
shell

40. Get-WinEvent

Diferentes PowerShell commands possibilitam a visualização de um ou mais registros de eventos. O cmdlet mais simples que atende esse propósito é o Get-WinEvent. Para consultar todos os registros do seu computador local, use o comando a seguir:

Get-WinEvent -ListLog *
shell
Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top