I principali comandi di Windows PowerShell che utilizzo più frequentemente e i loro vantaggi

I principali comandi di Windows PowerShell che utilizzo più frequentemente e i loro vantaggi

PowerShell è ampiamente riconosciuto come uno strumento essenziale per gli amministratori IT che si concentrano su scripting e automazione. Tuttavia, le sue solide funzionalità si estendono ben oltre il settore IT, rendendolo prezioso per chiunque abbia a che fare con file e directory disorganizzati. Personalmente, utilizzo i comandi di PowerShell per esaminare codice obsoleto, strutturare i file client e mitigare il disordine che si accumula dopo mesi di progetti frenetici e con scadenze ravvicinate.

PowerShell, potente shell a riga di comando e piattaforma di scripting, semplifica una varietà di attività. Sebbene le versioni precedenti di Windows includessero un’applicazione PowerShell autonoma, ora gli utenti preferiscono il Terminale di Windows per l’esecuzione di ambienti shell, inclusi PowerShell e Prompt dei comandi, grazie alla sua versatilità e alla sua interfaccia moderna.

Tutti i comandi possono essere eseguiti sia dall’app PowerShell dedicata che dal Terminale di Windows. Per iniziare a utilizzarli, è sufficiente aprire una scheda PowerShell nel Terminale di Windows.

1.Ottieni aiuto

Ottieni il comando di aiuto in PowerShell

Quando ho iniziato a esplorare PowerShell tramite i tutorial di YouTube, uno dei comandi più frequentemente evidenziati dagli utenti era Get-Help. Questo comando funge da risorsa introduttiva, consentendo di accedere a informazioni dettagliate su qualsiasi cmdlet di PowerShell, insieme alla sua sintassi, ai parametri e agli esempi di utilizzo.

Per recuperare informazioni specifiche su un comando, digitare:

Get-Help Get-Process

Verranno visualizzati la sinossi del comando, i dettagli della sintassi e i parametri di input. Per ulteriori informazioni, aggiungere il parametro -Examples :

Get-Help Get-Process -Examples

Inoltre, è possibile fare riferimento alla documentazione ufficiale di Microsoft utilizzando l’ opzione -Online :

Get-Help Get-Process -Online

Questo comando indirizza al sito Web di Microsoft per una documentazione completa sui comandi.

2.Ottieni-Comando

Ottieni il comando comando in PowerShell

Mentre Get-Help si concentra sulla fornitura di informazioni sui cmdlet, Get-Command è essenziale per individuare ed elencare tutti i comandi disponibili. Se si conosce la funzione che si desidera eseguire ma non si ricorda il nome del comando, è sufficiente utilizzare Get-Command per cercare comandi in base a nomi parziali o pattern.

Ad esempio, per trovare tutti i comandi contenenti la parola processo, immettere:

Get-Command *process*

Questo comando mostra tutti i comandi che includono la parola “processo” nel nome. Puoi perfezionare ulteriormente la ricerca in base al tipo di comando, ad esempio se desideri solo cmdlet:

Get-Command -Name Get* -CommandType Cmdlet

Inoltre, per ricerche specifiche sui moduli, come quelle relative al networking:

Get-Command -Module NetTCPIP

Utilizzare Get-Command è decisamente più efficiente rispetto alla ricerca dei nomi dei comandi sul Web.

3.Test-NetConnection

Comando Test-NetConnection PowerShell

Passi spesso da uno strumento all’altro, come ping, telnet e traceroute? Il cmdlet Test-NetConnection consolida queste funzionalità in un’unica soluzione. Questo cmdlet è fondamentale per la risoluzione dei problemi di rete, poiché aiuta a diagnosticare se un problema deriva dalla rete, dal server o da altre fonti.

Per determinare se un sito web è raggiungibile, eseguire:

Test-NetConnection makeuseof.com

Questo comando fornisce i risultati del ping e informazioni fondamentali sulla connettività. Per testare una porta specifica, incorpora il numero di porta nel comando:

Test-NetConnection server.company.com -Port 443

Per un tracciamento dettagliato del percorso di rete, utilizzare il parametro -TraceRoute :

Test-NetConnection 8.8.8.8 -TraceRoute

Questo comando invia pacchetti di prova a 8.8.8.8 tracciando i passaggi tra il computer e la destinazione, aiutandoti a individuare eventuali problemi di connessione.

4.Ottieni-ChildItem

Comando PowerShell Get-ChildItem

Il cmdlet Get-ChildItem consente di visualizzare file e cartelle in qualsiasi directory specificata. Ad esempio, per elencare il contenuto della cartella Documenti, è sufficiente digitare:

Get-ChildItem C:\Users\Username\Documents

Per identificare i file PDF modificati nell’ultima settimana, utilizzare il seguente comando:

Get-ChildItem C:\Users\YourName\Documents -Filter *.pdf | Where-Object {$_. LastWriteTime -gt (Get-Date).AddDays(-7)}

Il parametro -Recurse consente di cercare in tutte le sottocartelle. Per individuare tutti i file di registro nella cartella Progetti e nelle sue sottodirectory:

Get-ChildItem C:\Projects -Recurse -Filter *.log

Se lo spazio su disco è insufficiente, è possibile identificare file di grandi dimensioni superiori a 1 GB:

Get-ChildItem C:\ -Recurse -File | Where-Object {$_. Length -gt 1GB} | Select-Object FullName, @{Name="SizeGB";Expression={$_. Length/1GB}}

Il cmdlet Get-ChildItem è un potente alleato per automatizzare attività batch, organizzazione di file e audit.

5.Dove-Oggetto

Comando Where-Object in PowerShell

Nell’esempio precedente, l’uso di Where-Object ne evidenzia la funzionalità nel filtrare i dati in base a specifici criteri di proprietà, operando in modo simile alle istruzioni condizionali nella programmazione. La sintassi all’interno delle parentesi graffe consente la rappresentazione di ciascun elemento in fase di valutazione.

Per visualizzare tutti i servizi in esecuzione, immettere quanto segue:

Get-Service | Where-Object {$_. Status -eq "Running"}

Se sei interessato ai processi che consumano più di 100 MB di memoria, prova:

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

È anche possibile combinare più condizioni. Ad esempio, per individuare documenti Word di grandi dimensioni modificati nell’ultimo mese:

Get-ChildItem -Filter *.docx | Where-Object {$_. Length -gt 5MB -and $_. LastWriteTime -gt (Get-Date).AddMonths(-1)}

Organizza condizioni complesse su più righe per migliorare la leggibilità dello script:

Get-ChildItem | Where-Object { $_. Length -gt 1MB -and $_. Extension -eq ".log"}

6.Seleziona-Oggetto

Comando Select-Object in PowerShell

Spesso, l’output dei comandi è più esteso del necessario. Il cmdlet Select-Object consente di filtrare solo i dati pertinenti, che possono poi essere esportati in un file CSV utilizzando il cmdlet Export-Csv. Ad esempio, se si desidera visualizzare solo i nomi e gli stati dei servizi:

Get-Service | Select-Object Name, Status

Se il tuo obiettivo è identificare i cinque processi che consumano più CPU, esegui:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 Name, CPU

Inoltre, è possibile creare proprietà calcolate. Per visualizzare le dimensioni dei file in megabyte anziché in byte:

Get-ChildItem | Select-Object Name, @{Name="SizeMB";Expression={$_. Length/1MB}}

Per estrarre un singolo valore di proprietà, utilizzare il parametro -ExpandProperty :

Get-Process notepad | Select-Object -ExpandProperty Id

Questo comando restituisce solo l’ID del processo, che può essere particolarmente utile quando si esegue il piping verso comandi aggiuntivi che richiedono un singolo valore.

7.Ottieni membro

Comando Get-Member in PowerShell

PowerShell opera principalmente tramite oggetti e il cmdlet Get-Member rivela le proprietà e i metodi associati. Ad esempio, quando si recuperano informazioni su un processo, è possibile verificarne le dimensioni, la data di creazione e altre metriche. Utilizzare il seguente comando per visualizzare gli attributi all’interno di un oggetto processo:

Get-Process | Get-Member

Verranno elencate proprietà come CPU, ID e WorkingSet, oltre a metodi come Kill() e Refresh().Se si desidera visualizzare solo le proprietà, è possibile specificare:

Get-Process | Get-Member -MemberType Property

Per operazioni relative ai file:

Get-ChildItem C:\temp\test.txt | Get-Member

Vengono visualizzati dettagli come Length e LastWriteTime, insieme a metodi come Delete() e MoveTo().È possibile filtrare i file in base alla dimensione utilizzando Length o identificare i file modificati di recente in base a LastWriteTime.

8.Set-Clipboard e Get-Clipboard

Comando Set-Clipboard in PowerShell

Se vi trovate a dover copiare un output di PowerShell troppo elaborato, la selezione manuale può risultare complicata. Tuttavia, Set-Clipboard e Get-Clipboard semplificano notevolmente questo processo.

Per copiare i risultati del comando negli appunti, immettere:

Get-Process | Select-Object Name, CPU | Set-Clipboard

Ciò consente di incollare facilmente i risultati in Excel o in qualsiasi editor di testo. Viceversa, per recuperare il contenuto degli appunti in PowerShell, è sufficiente eseguire:

$text = Get-Clipboard

Questa funzionalità è particolarmente utile durante l’elaborazione di elenchi. Ad esempio, è possibile copiare un intervallo di nomi di computer da Excel ed eseguire successivamente:

Get-Clipboard | ForEach-Object { Test-NetConnection $_ }

Questo comando verifica la connettività a ciascun nome di computer elencato. La perfetta integrazione tra PowerShell e altre applicazioni accelera notevolmente le attività ripetitive.

9.Out-GridView

Comando Out-GridView in PowerShell

Ci sono momenti in cui è necessario ordinare e filtrare i risultati in modo interattivo. Il cmdlet Out-GridView apre una finestra separata con un formato tabellare ordinabile e ricercabile.

Get-Process | Out-GridView

Questa azione apre una nuova finestra che mostra un elenco dei processi correnti in un’interfaccia a griglia. Fare clic sulle intestazioni di colonna per ordinare o filtrare per parola chiave nel campo di ricerca. Per selezionare gli elementi dalla griglia e passarli a un altro comando, utilizzare:

Get-Service | Out-GridView -PassThru | Restart-Service

Con il parametro -PassThru è possibile selezionare più righe ed eseguire azioni, ad esempio riavviare solo i servizi scelti.

Per l’analisi dei log, è possibile applicare anche:

Get-EventLog -LogName Application -Newest 1000 | Out-GridView

Ciò consente di filtrare rapidamente gli eventi tramite l’inserimento di parole chiave, di ordinarli in base al tempo e di individuare modelli all’interno del set di dati.

10.Ottieni processo

Comando PowerShell di Get-Process Explorer

Il cmdlet Get-Process visualizza tutte le applicazioni attualmente in esecuzione sul computer, fornendo informazioni sull’utilizzo della memoria, sul tempo di CPU e sugli ID dei processi.

Per elencare tutti i processi attualmente attivi, eseguire:

Get-Process

Se stai cercando un’applicazione specifica, come ad esempio Google Chrome, specifica semplicemente:

Get-Process chrome

Se è necessario terminare un programma che non risponde, è possibile concatenare i comandi come segue:

Get-Process notepad | Stop-Process

Per identificare i processi che consumano notevoli risorse di memoria, implementare:

Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10

Questo comando offre una rapida panoramica dei programmi che occupano molta memoria quando le prestazioni del sistema rallentano.

Fonte e immagini

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *