Buscar y Filtrar Contenido - PowerShell

Ser capaz de buscar, filtrar y encontrar información es esencial en cualquier CLI, especialmente en PowerShell.


🧱 Salida en PowerShell: Todo son Objetos

A diferencia de Bash o CMD, en PowerShell todo es un objeto.

Conceptos clave:


👤 Filtrando Usuarios (Ejemplo)

# Ver propiedades y métodos de un usuario
Get-LocalUser administrator | Get-Member

# Mostrar todas las propiedades
Get-LocalUser administrator | Select-Object -Property *

# Filtrar solo algunas propiedades
Get-LocalUser * | Select-Object Name, PasswordLastSet

# Ordenar y agrupar por estado habilitado
Get-LocalUser * | Sort-Object Name | Group-Object Enabled

⚡ Filtrando Servicios

# Buscar servicios relacionados con "Defender"
Get-Service | Where-Object DisplayName -like '*Defender*'

# Mostrar todas las propiedades de los servicios filtrados
Get-Service | Where-Object DisplayName -like '*Defender*' | Select-Object -Property *

🔹 Operadores de Comparación útiles

Operador Descripción
-like Coincidencia con comodines (*Defender*)
-contains Coincidencia exacta en propiedad
-eq Igual a (case-sensitive)
-match Expresión regular
-not Negación o valores falsos

🔗 Pipeline (|)

Permite encadenar comandos, pasando objetos de un cmdlet a otro:

# Ejemplo básico
Get-Process | Sort-Object | Measure-Object

# Buscar logs y filtrar con múltiples cmdlets
Get-Service | Where-Object Status -eq "Running" | Select-Object Name, DisplayName

🚦 Operadores de cadena (&& y ||)

# Ejecuta ping solo si Get-Content falla
Get-Content '.\archivo.txt' || ping 8.8.8.8

🔑 Buscar dentro de archivos

# Buscar palabras clave en archivos .txt
Get-ChildItem -Path C:\Users\MTanaka\ -Filter "*.txt" -Recurse -File | Select-String "Password","credential","key"

# Combinar búsqueda de tipos de archivo y palabras clave
Get-ChildItem -Path C:\Users\MTanaka\ -File -Recurse -ErrorAction SilentlyContinue |
  Where-Object {($_.Name -like "*.txt" -or $_.Name -like "*.md" -or $_.Name -like "*.py")} |
  Select-String "Password","UserName","key"

{EA126948-09E8-4B1B-9156-35C9DDF61704}.png -Path C:\Users\user3\Desktop -Attributes Hidden

🔹 Directorios interesantes para buscar: