Windows PowerShell è la nuova shell della riga di comando, che è più potente e scriptable di Prompt dei comandi. Nei miei tre anni di esperienza nell’usarlo, l’ho trovato davvero utile, specialmente se sei in attività di automazione o scripting. Tuttavia, la maggior parte di noi non lo sa o non preferisce usarlo al posto della vecchia shell della riga di comando.

In questo post, ho intenzione di condividere comandi utili ma semplici (con esempi) di Windows PowerShell., È possibile utilizzare questi comandi per eseguire numerose attività, dall’ottenere aiuto all’avvio dei processi. Cominciamo?

Nota: Windows PowerShell è costruito con compatibilità all’indietro in mente, e quindi supporta molti comandi del prompt dei comandi. Detto questo, è possibile continuare a utilizzare i vecchi comandi nella sua nuova interfaccia colorata.

Leggi anche: Suggerimenti e strumenti per automatizzare le attività ripetitive su Windows 10

Get-Help

Se siete nuovi a PowerShell, si può incorrere in problemi; e in tali situazioni, Get-Help diventa il vostro salvatore., Fornisce le informazioni necessarie su cmdlet, comandi, funzioni, script e flussi di lavoro di PowerShell.

Inoltre, è facile: è necessario digitareGet-Help seguito dal comando, di cui, si cercano i dettagli. Ad esempio, è possibile ottenere informazioni su “Get-Process” utilizzando Get-Help Get-Process.

Get-Command

Windows PowerShell permette di scoprire i suoi comandi e funzionalità utilizzando Get-Command., Visualizza l’elenco dei comandi di una funzione specifica o per uno scopo specifico in base al parametro di ricerca.

È sufficiente digitare Get-Command seguito dalla query di ricerca in PowerShell. Ad esempio,Get-Command *-service* visualizza i comandi con “-service” nel suo nome. Ricordati di usare gli asterischi su entrambi i lati della tua query perché è una wild card che aiuta a cercare l’ignoto.,

Invoke-Command

Quando si desidera eseguire un comando o uno script di PowerShell — localmente o in remoto su computer singoli o multipli — “Invoke-Command” è tuo amico. È facile da usare e ti aiuta a controllare i computer in batch.

È necessario digitare Invoke-Command seguito dal comando o dallo script con il suo percorso completo. Ad esempio, è possibile eseguire un comando “Get-EventLog” utilizzando Invoke-Command -ScriptBlock {Get-EventLog system -Newest 50} o su un computer remoto “Server01” utilizzando Invoke-Command -ScriptBlock {Get-EventLog system -Newest 50} -ComputerName Server01.,

Invoke-Expression

Invoke-Expression esegue un altro comando o espressione. Se si fornisce un’espressione o una stringa come input, questo comando prima lo valuta, quindi lo esegue, ma funziona anche solo localmente, a differenza del comando precedente.

È necessario digitare Invoke-Expression seguito da un comando o un’espressione. Ad esempio, è possibile assegnare una variabile “Command Command” con una stringa che indica il comando “Get-Process”., Quando si esegue Invoke-Expression $Command,” Get-Process ” viene eseguito come comando sul computer locale.

Invoke-WebRequest

È possibile scaricare, accedere e raccogliere informazioni su siti Web e servizi Web mentre si lavora su Windows PowerShell utilizzando Invoke-WebRequest.,

Set-ExecutionPolicy

Sebbene sia possibile creare ed eseguire script (con estensione “ps1”) in Windows PowerShell, esistono tuttavia restrizioni per motivi di sicurezza. Ma puoi cambiare il livello di sicurezza usando il comando Set-ExecutionPolicy.

È possibile digitare Set-ExecutionPolicy seguito da uno dei quattro livelli di sicurezza — Restricted, Remote Signed, All Signed o Unrestricted per utilizzare il comando., Ad esempio, è possibile assegnare lo stato dei criteri con restrizioni utilizzando Set-ExecutionPolicy -ExecutionPolicy Restricted.

Get-Item

Se siete alla ricerca di informazioni su un elemento in qualsiasi posizione, diciamo un file sul disco rigido, Get-Item è il modo migliore per acquisire in Windows PowerShell. Devi sapere che non ottiene il contenuto dell’elemento, come file e sottodirectory in una determinata directory a meno che non sia esplicitamente specificato da te.,

È necessario digitare Get-Item seguito da un percorso o una stringa insieme ai relativi parametri se presenti. Ad esempio, puoi ottenere tutti gli elementi (file o cartelle) che iniziano con “M” nella directory corrente usando Get-Item M*. Insieme al contenuto delle directory, può anche ottenere il contenuto delle chiavi di registro.

Copy-Item

Se è necessario copiare file e directory sul disco di archiviazione o voci di registro e chiavi nel registro di sistema, è possibile utilizzare Copy-Item., Funziona in modo simile al comando ” cp ” che abbiamo nel prompt dei comandi, ma è molto meglio.

Si può fare uso di Copy-Item comando per copiare e rinominare gli elementi nello stesso comando pure — dare un nuovo nome come destinazione. Ad esempio, è possibile copiare e rinominare “Servizi.htm ” a ” MyServices.txt “utilizzando Copy-Item "C:\Services.htm" -Destination "C:\MyData\MyServices.txt".

Remove-Item

Se si desidera eliminare elementi come file, cartelle, funzioni, chiavi di registro e variabili, Remove-Item è il comando che fa per voi. Quello che ho trovato interessante è che fornisce parametri per includere ed escludere elementi.,

È possibile utilizzare il comando Remove-Item per eliminare elementi da posizioni specifiche utilizzando i parametri. Ad esempio, è possibile eliminare il file “MyServices.txt “con il comando Remove-Item "C:\MyData\MyServices.txt".

Get-Content

Quando è necessario visualizzare il contenuto di un file di testo in una posizione specifica, lo si apre e lo si legge in un editor di codice / testo come Notepad++. In Windows PowerShell, è possibile utilizzare Get-Content per recuperare il contenuto senza aprire il file.,

Set-Content

È possibile salvare il testo in file utilizzando Set-Content, simile al comando “echo” della Shell Bash. In combinazione con Get-Content, è anche possibile recuperare il contenuto di un file e copiarlo in un altro file utilizzando questo comando.

Ad esempio, è possibile digitare Set-Content per scrivere o sostituire il contenuto di un file con un nuovo contenuto. Inoltre, è possibile club con l’esempio del comando precedente per salvare il suo output in un nuovo file denominato “Sample.txt”utilizzando Get-Content "C:\Services.htm" -TotalCount 50 | Set-Content "Sample.txt".,

Get-Variable

Se stai cercando di utilizzare le variabili in Windows PowerShell, il comando Get-Variable ti aiuta a visualizzare i valori delle variabili. Li mostra in una forma tabellare e consente di includere, escludere e utilizzare i caratteri jolly.

È possibile utilizzare questo comando digitando Get-Variable seguito dalle sue opzioni e parametri. Ad esempio, è possibile recuperare il valore per una variabile denominata “desc” utilizzando il seguente codice: Get-Variable -Name "desc".,

Set-Variable

È possibile utilizzare il comando Set-Variable seguito dai relativi parametri per impostare una variabile. Ad esempio, possiamo impostare il valore per una variabile denominata “desc” usando il comando Set-Variable -Name "desc" -Value "A Description".

Get-Process

Di solito usiamo Task Manager per trovare i processi in esecuzione sul nostro computer. In Windows PowerShell, chiunque può utilizzare Get-Process per ottenere l’elenco dei processi attualmente in esecuzione, che è possibile elaborare ulteriormente.,

È possibile scrivere il comando come Get-Process insieme alla query di ricerca. Ad esempio, se hai bisogno di informazioni sui processi con “esplora” nel loro nome, puoi digitare Get-Process *explore* (nota gli asterischi).

Start-Process

Windows PowerShell semplifica l’avvio di uno o più processi sul computer. Ho trovato che questo comando è utile nelle app di scripting poiché è uno dei comandi indispensabili di cui avrai bisogno per automatizzare un’attività.

È possibile digitare Start-Process seguito dai relativi parametri per utilizzare il comando., Ad esempio, è possibile avviare il blocco note digitando Start-Process -FilePath "notepad" -Verb runAs in Windows PowerShell.

Stop-Process

È possibile interrompere specifiche o tutte le istanze di un processo in esecuzione sul computer utilizzando il suo nome o PID (ID processo), grazie al comando Stop-Process. Ciò che lo rende avvincente è che è possibile rilevare che un processo viene arrestato o meno e si possono anche interrompere i processi non di proprietà o avviati dall’utente corrente.,

È possibile digitare il comando Stop-Process seguito dai suoi parametri per interrompere i processi dati. Ad esempio, è possibile interrompere tutti i processi di Blocco note utilizzando il comando Stop-Process -Name "notepad".

Get-Service

Quando hai bisogno di informazioni su servizi specifici (in esecuzione o in arresto) sul tuo computer, puoi usare Get-Service. Visualizza i servizi installati nel sistema e fornisce opzioni per filtrarli, includerli ed escluderli.

Se si desidera utilizzare questo comando, è possibile digitareGet-Service seguito dai relativi parametri., Ad esempio, digitare il seguente Get-Service | Where-Object {$_.Status -eq "Running"} per ottenere i servizi “in esecuzione” sul sistema.

Start-Service

Se si desidera avviare un servizio sul computer, comando Start-Service può aiutare a fare lo stesso da Windows PowerShell. Ho trovato che è abbastanza potente per avviare un servizio anche se tale servizio è disabilitato sul computer.

È necessario specificare il nome del servizio mentre si utilizza il comando Start-Service., Ad esempio,Start-Service -Name "WSearch" avvia il servizio “Windows Search” sul computer locale.

Stop-Service

Se si desidera interrompere i servizi in esecuzione sul computer, il comando Stop-Service si rivelerà utile. È necessario specificare il nome del servizio insieme aStop-Service. Ad esempio, digitare Stop-Service -Name "WSearch" per interrompere il servizio “Windows Search” sul computer.

ConvertTo-HTML

PowerShell può fornire informazioni sorprendenti sul sistema., Tuttavia, è per lo più presentato in un formato indigesto, ma è possibile utilizzare ConvertTo-HTML per creare e formattare un report per analizzarlo o inviarlo a qualcuno.

Puoi usare ConvertTo-HTML insieme all’output di un altro comando usando piping. Ad esempioGet-Service | ConvertTo-HTML -Property Name, Status > C:\Services.htm visualizza l’elenco di tutti i servizi e il loro stato sotto forma di un report web, che viene memorizzato nel file “Servizi.htm”.