
O PowerShell é amplamente reconhecido como uma ferramenta essencial para administradores de TI com foco em scripts e automação. No entanto, seus recursos robustos vão muito além do setor de TI, tornando-o inestimável para quem lida com arquivos e diretórios desorganizados. Pessoalmente, utilizo comandos do PowerShell para analisar códigos desatualizados, estruturar arquivos de clientes e mitigar a desordem acumulada após meses de projetos acelerados e com prazos apertados.
Como um poderoso shell de linha de comando e plataforma de script, o PowerShell simplifica uma variedade de tarefas. Embora versões anteriores do Windows apresentassem um aplicativo PowerShell independente, os usuários agora preferem o Terminal do Windows para executar ambientes de shell — incluindo PowerShell e Prompt de Comando — graças à sua versatilidade e interface moderna.
Todos os comandos podem ser executados tanto no aplicativo PowerShell dedicado quanto no Terminal do Windows. Para começar a usá-los, basta abrir uma aba do PowerShell no Terminal do Windows.
1.Obtenha ajuda

Quando explorei o PowerShell pela primeira vez por meio de tutoriais do YouTube, um comando frequentemente destacado pelos usuários era Get-Help. Este comando serve como um recurso introdutório, permitindo acessar informações detalhadas sobre qualquer cmdlet do PowerShell, juntamente com sua sintaxe, parâmetros e exemplos de uso.
Para recuperar informações específicas sobre um comando, digite:
Get-Help Get-Process
Isso exibirá a sinopse do comando, detalhes de sintaxe e parâmetros de entrada. Para mais informações, adicione o parâmetro -Examples :
Get-Help Get-Process -Examples
Além disso, você pode consultar a documentação oficial da Microsoft usando a opção -Online :
Get-Help Get-Process -Online
Este comando direciona você ao site da Microsoft para obter documentação abrangente sobre comandos.
2.Obter-Comando

Enquanto o Get-Help se concentra em fornecer informações sobre cmdlets, o Get-Command é essencial para localizar e listar todos os comandos disponíveis. Se você sabe qual função deseja executar, mas não se lembra do nome do comando, basta utilizar o Get-Command para pesquisar comandos com base em nomes parciais ou padrões.
Por exemplo, para encontrar todos os comandos que contêm a palavra process, digite:
Get-Command *process*
Este comando revela todos os comandos que incluem “process” no nome. Você pode refinar ainda mais sua busca com base nos tipos de comando, como se você quisesse apenas cmdlets:
Get-Command -Name Get* -CommandType Cmdlet
Além disso, para pesquisas específicas de módulos, como aquelas relacionadas à rede:
Get-Command -Module NetTCPIP
Usar Get-Command é significativamente mais eficiente do que pesquisar nomes de comandos na web.
3.Teste-NetConnection

Você costuma alternar entre várias ferramentas, como ping, telnet e traceroute? O cmdlet Test-NetConnection consolida essas funcionalidades em uma só. Este cmdlet é crucial para a solução de problemas de rede, pois ajuda a diagnosticar se o problema tem origem na sua rede, no servidor ou em outras fontes.
Para determinar se um site é acessível, execute:
Test-NetConnection makeuseof.com
Este comando fornece resultados de ping e informações básicas de conectividade. Para testar uma porta específica, incorpore o número da porta ao comando:
Test-NetConnection server.company.com -Port 443
Para rastreamento detalhado do caminho da rede, use o parâmetro -TraceRoute :
Test-NetConnection 8.8.8.8 -TraceRoute
Este comando envia pacotes de teste para 8.8.8.8 enquanto rastreia os saltos entre seu computador e o destino, ajudando você a identificar quaisquer problemas de conexão.
4.Obter-ItemFilho

O cmdlet Get-ChildItem permite visualizar arquivos e pastas em qualquer diretório especificado. Por exemplo, para listar o conteúdo da pasta Documentos, basta inserir:
Get-ChildItem C:\Users\Username\Documents
Para identificar arquivos PDF modificados na última semana, use o seguinte comando:
Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}
O parâmetro -Recurse permite pesquisar em todas as subpastas. Se você quiser localizar todos os arquivos de log na sua pasta Projetos e seus subdiretórios:
Get-ChildItem C:\Projects -Recurse -Filter *.log
Se houver pouco espaço em disco, você poderá identificar arquivos grandes que excedam 1 GB:
Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}
O cmdlet Get-ChildItem é um poderoso aliado para automatizar tarefas em lote, organização de arquivos e auditorias.
5.Objeto Onde

No exemplo anterior, o uso de Where-Object destaca sua funcionalidade na filtragem de dados com base em critérios de propriedade específicos — operando de forma comparável a instruções condicionais em programação. A sintaxe entre chaves permite a representação de cada item em avaliação.
Para visualizar todos os serviços em execução, insira o seguinte:
Get-Service | Where-Object {$_. Status -eq "Running"}
Se você estiver interessado em processos que consomem mais de 100 MB de memória, tente:
Get-Process | Where-Object {$_. WorkingSet -gt 100MB}
Também é possível combinar várias condições. Por exemplo, para localizar documentos grandes do Word modificados no último mês:
Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}
Organize condições complexas em várias linhas para melhorar a legibilidade do script:
Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}
6.Selecionar-Objeto

Frequentemente, a saída dos comandos é mais extensa do que o necessário. O cmdlet Select-Object permite filtrar apenas os dados pertinentes, que podem ser exportados para um arquivo CSV usando o cmdlet Export-Csv. Por exemplo, se você deseja ver apenas os nomes e status dos serviços:
Get-Service | Select-Object Name, Status
Se seu objetivo é identificar os cinco principais processos que consomem mais CPU, execute:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU
Além disso, você pode criar propriedades calculadas. Para exibir tamanhos de arquivo em megabytes em vez de bytes:
Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}
Para extrair um único valor de propriedade, utilize o parâmetro -ExpandProperty :
Get-Process notepad | Select-Object -ExpandProperty Id
Este comando produz apenas o ID do processo, o que pode ser particularmente útil ao direcionar para comandos adicionais que exigem um único valor.
7.Obter membro

O PowerShell opera principalmente por meio de objetos, e o cmdlet Get-Member revela suas propriedades e métodos associados. Por exemplo, ao recuperar informações sobre um processo, você pode verificar seu tamanho, data de criação e outras métricas. Use o seguinte comando para visualizar os atributos dentro de um objeto de processo:
Get-Process | Get-Member
Isso listará propriedades como CPU, Id e WorkingSet, além de métodos como Kill() e Refresh().Se desejar ver apenas as propriedades, você pode especificar:
Get-Process | Get-Member -MemberType Property
Para operações relacionadas a arquivos:
Get-ChildItem C:\temp\test.txt | Get-Member
Isso exibe detalhes como Length e LastWriteTime, juntamente com métodos como Delete() e MoveTo().Você pode filtrar arquivos por tamanho usando Length ou identificar arquivos modificados recentemente com base em LastWriteTime.
8.Definir-Área de Transferência e Obter-Área de Transferência

Se você se deparar com uma saída enorme do PowerShell que exija cópia, selecionar manualmente pode ser trabalhoso. No entanto, Set-Clipboard e Get-Clipboard simplificam significativamente esse processo.
Para copiar os resultados do comando para sua área de transferência, insira:
Get-Process | Select-Object Name, CPU | Set-Clipboard
Isso permite que você cole os resultados no Excel ou em qualquer editor de texto com facilidade. Por outro lado, para recuperar o conteúdo da área de transferência no PowerShell, basta executar:
$text = Get-Clipboard
Este recurso é particularmente útil ao processar listas. Por exemplo, você pode copiar um intervalo de nomes de computadores do Excel e, em seguida, executar:
Get-Clipboard | ForEach-Object { Test-NetConnection $_ }
Este comando testa a conectividade com cada nome de computador listado. A integração perfeita entre o PowerShell e outros aplicativos acelera consideravelmente as tarefas repetitivas.
9.Fora da Grade

Há momentos em que a classificação e a filtragem interativas dos resultados são necessárias. O cmdlet Out-GridView abre uma janela separada com um formato de tabela classificável e pesquisável.
Get-Process | Out-GridView
Esta ação abre uma nova janela exibindo uma lista de processos atuais em uma interface de grade. Clique nos cabeçalhos das colunas para classificar ou filtre por palavra-chave no campo de busca. Para selecionar itens da grade e passá-los para outro comando, utilize:
Get-Service | Out-GridView -PassThru | Restart-Service
Com o parâmetro -PassThru, você pode selecionar várias linhas e executar ações, como reiniciar apenas os serviços escolhidos.
Para análise de log, você também pode aplicar:
Get-EventLog -LogName Application -Newest 1000 | Out-GridView
Isso permite uma filtragem rápida de eventos por entrada de palavra-chave, classificação por tempo e revelação de padrões dentro do conjunto de dados.
10.Obter-Processo

O cmdlet Get-Process exibe todos os aplicativos em execução no seu computador, fornecendo insights sobre o uso de memória, tempo de CPU e IDs de processo.
Para listar todos os processos ativos no momento, execute:
Get-Process
Se você estiver procurando por um aplicativo específico, como o Google Chrome, basta especificar:
Get-Process chrome
Se você precisar encerrar um programa que não responde, você pode encadear comandos da seguinte forma:
Get-Process notepad | Stop-Process
Para identificar processos que consomem recursos de memória substanciais, implemente:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
Este comando oferece uma visão geral rápida de programas que consomem muita memória quando o desempenho do sistema fica lento.
Deixe um comentário