← Tutte le risorse

PowerShell: monitoraggio e gestione dei processi critici

Monitorare un processo con PowerShell, controllare il consumo di memoria e registrare avvisi su file quando viene superata una soglia. Video e traccia dell’esercitazione.

Traccia dell’esercitazione

Realizza uno script che monitora nel tempo un processo specificato dall’utente. Verifica periodicamente se il processo è attivo e, quando il consumo di memoria o di un’altra risorsa supera una soglia definita, registra un avviso su file. Documenta inoltre le proprietà dell’oggetto processo e alcune informazioni sulle cmdlet utilizzate.

1. Input utente e variabili

Utilizza Read-Host -Prompt per chiedere all’utente il nome del processo da monitorare e memorizzalo in una variabile, per esempio $processName.

2. Monitoraggio del processo

Usa Get-Process per cercare il processo in esecuzione. Ripeti il controllo a intervalli regolari con un ciclo, per esempio do { ... } while (...).

Combina Start-Sleep e Get-Random per introdurre una pausa casuale tra un controllo e l’altro.

3. Controlli e condizionali

Se il processo viene trovato, usa if/elseif/else per verificare il consumo di memoria, leggendo proprietà come WorkingSet o PrivateMemorySize. Confronta il valore con la soglia usando operatori come -gt o -eq. I valori di queste proprietà sono espressi in byte.

Se la soglia viene superata, mostra un messaggio con Write-Output e registra l’avviso su file con Out-File. Usa -Append per conservare anche gli avvisi precedenti. Gestisci inoltre il caso in cui il processo non sia in esecuzione.

4. Documentazione e analisi degli oggetti

Passa l’oggetto processo a Get-Member per elencarne proprietà e metodi, quindi salva l’output con Out-File in un file, per esempio Process_Members.txt.

Utilizza anche Get-Verb e Get-Command per documentare su file i verbi e i comandi disponibili. Per esempio, Get-Verb | Out-File "Verbs.txt" salva l’elenco dei verbi.

5. Formattazione dell’output

Visualizza i dati rilevanti con Format-Table, includendo nome del processo, ID e consumo di memoria.