La vera potenza di PowerShell risiede nella sua pipeline a oggetti. Per manipolare gli oggetti che fluiscono attraverso questa pipeline, ci sono due cmdlet fondamentali che userai costantemente: `Where-Object` per filtrare e `Select-Object` per selezionare.
`Where-Object`: Filtrare gli Oggetti
Il cmdlet `Where-Object` (alias: `where` o `?`) agisce come un filtro. Riceve una collezione di oggetti e restituisce solo quelli che soddisfano una determinata condizione. È l'equivalente di `array_filter` in PHP o del comando `grep` su Linux, ma per oggetti.
Esempio: Trovare i Servizi di Windows Arrestati
# Get-Service restituisce un oggetto per ogni servizio sul sistema
Get-Service | Where-Object { $_.Status -eq 'Stopped' }
In questo esempio:
- `Get-Service` invia tutti gli oggetti "servizio" nella pipeline.
- `Where-Object` esamina ogni oggetto. La variabile speciale `$_` rappresenta l'oggetto corrente nella pipeline.
- Restituisce solo gli oggetti la cui proprietà `Status` è uguale a "Stopped".
`Select-Object`: Selezionare le Proprietà
Il cmdlet `Select-Object` (alias: `select`) viene usato per scegliere quali proprietà di un oggetto mostrare, per rinominarle o per creare nuove proprietà calcolate. È ottimo per formattare l'output finale.
Esempio: Mostrare Nome e Memoria dei Processi
# Seleziona solo le proprietà Name e WorkingSet (memoria)
Get-Process | Select-Object Name, WorkingSet
Creare Proprietà Calcolate
Puoi anche creare proprietà al volo. Ad esempio, per mostrare la memoria in Megabyte:
Get-Process | Select-Object Name, @{Name='Memory (MB)'; Expression={$_.WorkingSet / 1MB}}
Combinarli Insieme
La vera potenza emerge quando li combini. Esempio: trovare il nome e la memoria (in MB) dei 5 processi che usano più memoria.
Get-Process |
Sort-Object WorkingSet -Descending |
Select-Object -First 5 |
Select-Object Name, @{Name='Memory (MB)'; Expression={[math]::Round($_.WorkingSet / 1MB)}}
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza