En aquest tema, aprendrem com filtrar i seleccionar objectes en PowerShell. Aquestes tècniques són essencials per treballar amb grans quantitats de dades i per obtenir només la informació que necessitem.

Objectius

  • Comprendre com utilitzar Where-Object per filtrar objectes.
  • Aprendre a utilitzar Select-Object per seleccionar propietats específiques.
  • Veure exemples pràctics de filtratge i selecció d'objectes.
  • Realitzar exercicis pràctics per reforçar els conceptes apresos.

Filtratge d'Objectes amb Where-Object

Where-Object és una cmdlet que ens permet filtrar objectes basant-nos en una condició específica.

Sintaxi

object | Where-Object { condition }

Exemple

Suposem que tenim una llista de processos en execució i volem filtrar només aquells que utilitzen més de 100 MB de memòria.

Get-Process | Where-Object { $_.WorkingSet -gt 100MB }

En aquest exemple:

  • Get-Process obté tots els processos en execució.
  • Where-Object filtra els processos on la propietat WorkingSet (memòria utilitzada) és superior a 100 MB.
  • $_ és una variable automàtica que representa l'objecte actual en el pipeline.

Selecció de Propietats amb Select-Object

Select-Object ens permet seleccionar propietats específiques d'un objecte.

Sintaxi

object | Select-Object Property1, Property2, ...

Exemple

Continuant amb l'exemple anterior, suposem que volem obtenir només els noms i la memòria utilitzada dels processos que utilitzen més de 100 MB de memòria.

Get-Process | Where-Object { $_.WorkingSet -gt 100MB } | Select-Object Name, WorkingSet

En aquest exemple:

  • Select-Object selecciona només les propietats Name i WorkingSet dels processos filtrats.

Combinació de Where-Object i Select-Object

Podem combinar Where-Object i Select-Object per filtrar i seleccionar objectes de manera eficient.

Exemple

Suposem que volem obtenir els noms i la memòria utilitzada dels processos que utilitzen més de 100 MB de memòria, però només volem els 5 primers resultats.

Get-Process | Where-Object { $_.WorkingSet -gt 100MB } | Select-Object Name, WorkingSet -First 5

En aquest exemple:

  • -First 5 és un paràmetre de Select-Object que limita el nombre de resultats a 5.

Exercicis Pràctics

Exercici 1

Obteniu una llista de serveis en execució i filtreu només aquells que estan aturats. Seleccioneu només els noms dels serveis.

Solució

Get-Service | Where-Object { $_.Status -eq 'Stopped' } | Select-Object Name

Exercici 2

Obteniu una llista de processos en execució i filtreu només aquells que utilitzen més de 50 MB de memòria. Seleccioneu els noms i la memòria utilitzada, i limiteu els resultats als 10 primers.

Solució

Get-Process | Where-Object { $_.WorkingSet -gt 50MB } | Select-Object Name, WorkingSet -First 10

Exercici 3

Obteniu una llista de fitxers en un directori específic i filtreu només aquells que tenen una extensió .txt. Seleccioneu els noms dels fitxers i la seva mida.

Solució

Get-ChildItem -Path "C:\Path\To\Directory" | Where-Object { $_.Extension -eq '.txt' } | Select-Object Name, Length

Resum

En aquesta secció, hem après com utilitzar Where-Object per filtrar objectes i Select-Object per seleccionar propietats específiques. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Aquestes tècniques són fonamentals per treballar de manera eficient amb dades en PowerShell.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats