PowerShell ha rivoluzionato il modo in cui gli utenti di Windows interagiscono con i loro sistemi operativi, trasformando complesse attività amministrative in processi semplici e automatizzati.12. Sia che siate amministratori di sistema, professionisti IT o utenti Windows che desiderano aumentare la produttività, la padronanza dei comandi PowerShell essenziali può farvi risparmiare innumerevoli ore e sbloccare potenti funzionalità di automazione.34.
Questa guida completa copre i comandi PowerShell più importanti che ogni utente di Windows dovrebbe padroneggiare, dalla navigazione di base alla gestione avanzata del sistema. Alla fine di questa guida, avrete la sicurezza di poter sfruttare le potenti funzioni di PowerShell per le attività informatiche quotidiane.
Indice dei contenuti
- Cos'è PowerShell e perché dovrebbe interessarvi?
- Per iniziare: Apertura di PowerShell
- Comandi di scoperta essenziali: La bussola di PowerShell
- Comandi per la gestione di file e cartelle
- Gestione delle informazioni e dei processi di sistema
- Comandi per la risoluzione dei problemi di rete
- Comandi di manipolazione dei contenuti e dei dati
- Lavorare con le pipeline PowerShell
- Gestione dell'ora e della data
- Migliori pratiche essenziali di PowerShell
- Creare il primo script PowerShell
- Percorso di apprendimento avanzato di PowerShell
- Risoluzione dei problemi comuni di PowerShell
- Conclusione: Potenziare l'esperienza di Windows
Cos'è PowerShell e perché dovrebbe interessarvi?
PowerShell è una potente shell a riga di comando e un ambiente di scripting. che è preinstallato in tutti i moderni sistemi operativi Windows.2. A differenza del tradizionale Prompt dei comandi, PowerShell utilizza un Struttura sintattica verbo-novo che rende i comandi intuitivi e leggibili per l'uomo1. Ad esempio, Ottieni processo
recupera i processi in esecuzione, mentre Arresto del servizio
arresta i servizi di sistema.
Vantaggi principali di PowerShell rispetto al Prompt dei comandi
PowerShell offre vantaggi significativi rispetto alla tradizionale interfaccia a riga di comando1:
- Output basato su oggetti: Invece del testo semplice, PowerShell lavora con oggetti strutturati contenenti proprietà e metodi.
- Funzionalità di scripting avanzate: Creare script di automazione complessi con cicli, condizioni e funzioni.
- Estensibile tramite moduli: Aggiunta di funzionalità tramite librerie .NET e cmdlet personalizzati
- Supporto per le condutture: Concatenare i comandi per elaborare i dati in modo efficiente
- Compatibilità multipiattaforma: Eseguire PowerShell su Windows, Linux e macOS
Per iniziare: Apertura di PowerShell
Prima di immergersi nei comandi, è necessario sapere come accedere a PowerShell25. In Windows 11, il metodo più semplice è:
- Digitare "PowerShell". nella barra di ricerca di Windows
- Cliccare con il tasto destro del mouse su "Windows PowerShell"
- Selezionare "Esegui come amministratore". per i privilegi elevati
Per la maggior parte delle attività amministrative, l'esecuzione di PowerShell come amministratore assicura che si disponga delle autorizzazioni necessarie per eseguire i comandi a livello di sistema.
Comandi di scoperta essenziali: La bussola di PowerShell
1. Ottenere aiuto: Il vostro manuale integrato
Il Ottenere aiuto
è probabilmente il comando il comando PowerShell più importante imparerete mai467. Fornisce una documentazione completa per qualsiasi cmdlet, funzione o concetto di PowerShell.
Sintassi di base:
powershellOttieni aiuto
Esempi pratici:
powershell# Ottenere la guida di base per un comando
Ottieni-Help Ottieni-Processo
# Ottenere una guida dettagliata con esempi
Ottenere-Help Get-Process -Full
# Visualizza solo gli esempi
Ottieni Aiuto Ottieni Processo -Esempi
# Apri la documentazione della guida in linea
Ottieni-Processo -Online
Suggerimento: Utilizzo Aggiornamento-Aiuto
periodicamente per assicurarsi di avere la documentazione più aggiornata.6.
2. Get-Command: Scoprire i comandi disponibili
Quando non si sa quale comando usare, Ottieni-Comando
vi aiuta trovare il cmdlet giusto per il proprio compito486.
Modelli utili:
powershell# Elenco di tutti i comandi disponibili
Ottieni-Comando
# Trova i comandi che iniziano con "Get"
Ottieni-Comando Get-*
# Trova i comandi contenenti "Process"
Comando Get *Processo*
# Trova comandi per azioni specifiche
Ottieni-Comando Avvia-*
Ottieni comando Stop-*
Questo approccio è particolarmente utile quando si conosce l'azione da eseguire, ma non si è sicuri del nome esatto del comando.
3. Get-Member: Comprendere le proprietà degli oggetti
PowerShell lavora con gli oggetti e Ottenere un membro
vi mostra quali proprietà e metodi sono disponibili per qualsiasi oggetto6.
powershell# Vedere le proprietà degli oggetti processo
Ottieni processo | Ottieni membro
# Visualizzare le proprietà degli oggetti di servizio
Ottieni servizio | Ottieni membro
Comandi per la gestione di file e cartelle
4. Get-ChildItem: Elenca il contenuto della directory
Ottenere l'elemento figlio
è l'equivalente di PowerShell del comando dir
ma con molte più funzionalità1910.
Uso comune:
powershell# Elenca il contenuto della directory corrente
Ottieni elemento figlio
# Elenco dei file nascosti
Ottenere-Figlio-Item -Forza
# Elenco ricorsivo (incluse le sottodirectory)
Get-ChildItem -Recurse
# Filtro per tipo di file
Ottenere l'elemento figlio *.txt
# Cerca i file nelle sottodirectory
Get-ChildItem -Path C:\Users -Include *.pdf -Recurse
Alias: Si può anche utilizzare ls
, dir
, o gci
come scorciatoie10.
5. Imposta posizione: Navigare nelle directory
Navigare nel file system in modo efficiente con Impostazione della posizione
10.
powershell# Passare a una directory specifica
Imposta posizione C:´Users'Documents
# Passa alla directory madre
Set-Location ...
# Torna alla posizione precedente
Imposta posizione -
# Naviga usando gli alias
cd C:\Windows
sl C:\Temp
6. Copia: Copia di file e cartelle
Il Copia dell'articolo
Il cmdlet fornisce potenti funzionalità di copia dei file910.
powershell# Copiare un singolo file
Copia-Item "sorgente.txt" "destinazione.txt"
# Copia con protezione da sovrascrittura
Copia-Item "sorgente.txt" "backup.txt" -Forza
# Copia di intere directory
Copia-Item "C:\Source" "C:\Backup" -Recurse
# Copia più file utilizzando i caratteri jolly
Copia l'elemento "*.log" "C:\Logs"
7. Sposta elemento: Spostare e rinominare i file
Utilizzo Sposta elemento
per spostare e rinominare file e cartelle1112.
powershell# Spostare un file in un'altra posizione
Sposta-Item "vecchiofile.txt" "C:\NuovaLocazione".
# Rinomina un file
Sposta-Item "nomevecchio.txt" "nomenuovo.txt"
# Sposta tutti i file di tipo specifico
Get-ChildItem *.txt | Move-Item -Destinazione "C:\TextFiles\"
8. Rimuovi elemento: Elimina file e cartelle
Eliminazione sicura di file e directory con Rimuovi elemento
10.
powershell# Eliminare un singolo file
Rimuovi-elemento "indesiderati.txt"
# Elimina con conferma
Rimuovi-Item "important.txt" -Conferma
# Eliminare le directory in modo ricorsivo
Rimuovi elemento "C:\TempFolder" -Recurse -Force
# Elimina i file che corrispondono al modello
Rimuovi-Item "*.tmp"
Attenzione: Fate molta attenzione con Rimuovi elemento
soprattutto quando si utilizza -Ricorso
e -Forza
perché i file eliminati potrebbero non essere recuperabili.
9. Nuovo elemento: Creare file e directory
Creare rapidamente nuovi file e cartelle con Nuovo elemento
1013.
powershell# Creare una nuova cartella
Nuovo Elemento -Nome "Nuova Cartella" -Tipo Elemento Directory
# Creare un nuovo file
Nuovo elemento -Nome "newfile.txt" -Tipo file
# Creare un file con contenuto
New-Item "readme.txt" -ItemType File -Value "Questo è il contenuto iniziale"
# Creare directory annidate
Nuovo elemento "C:\Projects\NewProject\Source" -ItemType Directory -Force
Gestione delle informazioni e dei processi di sistema
10. Get-Process: Monitoraggio dei processi in esecuzione
Ottieni processo
fornisce informazioni dettagliate su processi in esecuzione sul sistema34.
powershell# Elenca tutti i processi in esecuzione
Ottieni processo
# Ottieni un processo specifico per nome
Ottieni processo blocco note
# Ottieni processi usando un carattere jolly
Ottieni processo nota*
# Ordina i processi per utilizzo della CPU
Get-Process | Sort-Object CPU -Descending
# Ottieni i 10 processi che consumano più memoria
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
11. Arresto del processo: Termina i processi
Interrompere i processi non reattivi o non necessari con Arresto del processo
4.
powershell# Arresta il processo per nome
Stop-Processo -Nome "blocco note"
# Arresta il processo per ID
Arresta processo -Id 1234
# Arresto con conferma
Stop-Processo -Nome "chrome" -Conferma
# Arresto forzato dei processi ostinati
Arresta processo -Nome "applicazione" -Forza
12. Get-Service: Gestire i servizi di Windows
Monitoraggio e gestione Servizi di Windows che vengono eseguiti in background41415.
powershell# Elenca tutti i servizi
Ottieni servizio
# Ottenere i servizi in base allo stato
Get-Service | Dove-Oggetto Stato -eq "In esecuzione"
# Ottieni un servizio specifico
Ottieni-Servizio -Nome "Spooler"
# Ottenere i servizi che iniziano con lettere specifiche
Ottenere-Servizio -Nome "Win*"
13. Avvio del servizio e arresto del servizio: Servizi di controllo
Avviare e arrestare i servizi di Windows secondo necessità1415.
powershell# Avviare un servizio
Avvia servizio -Nome "Spooler"
# Arresta un servizio
Arresta-Servizio -Nome "Spooler"
# Riavvia un servizio
Riavvia-Servizio -Nome "Spooler"
# Avviare più servizi
Get-Service -Nome "BITS", "Spooler" | Avvia servizio
Comandi per la risoluzione dei problemi di rete
14. Test-NetConnection: Test della connettività di rete
Test della connessione di rete
è la versione migliorata di PowerShell di ping con funzionalità aggiuntive1617.
powershellTest di connettività di base #
Test-NetConnection google.com
# Test di una porta specifica
Test-Connessione rete google.com -Porta 80
# Traccia percorso verso la destinazione
Test-Connessione rete google.com -TraceRoute
# Test di connessioni multiple
"google.com", "microsoft.com" | ForEach-Object { Test-NetConnection $_ }
15. Get-NetIPAddress: Visualizza la configurazione IP
Controllate il vostro configurazione IP di rete con Ottieni indirizzo IP di rete
1617.
powershell# Visualizza tutti gli indirizzi IP
Ottieni indirizzo IP
# Mostra solo gli indirizzi IPv4
Ottieni-NetIPAddress -AddressFamily IPv4
# Ottenere informazioni specifiche sull'adattatore
Ottenere -InterfacciaAlias "Ethernet" - Indirizzo IPv4
16. Risolvi-Nome-Dns: Test di risoluzione DNS
Test della risoluzione DNS e cercare informazioni sul dominio16.
powershell# Ricerca DNS di base
Risolvi-DnsName google.com
# Ricerca di tipi di record specifici
Risolvi-DnsName google.com -Tipo MX
# Usa un server DNS specifico
Risolvi-DnsName google.com -Server 8.8.8.8
Comandi di manipolazione dei contenuti e dei dati
17. Get-Content: Leggere il contenuto di un file
Leggere e visualizzare il contenuto dei file direttamente in PowerShell1819.
powershell# Visualizzare l'intero contenuto del file
Ottenere il contenuto di "logfile.txt"
# Leggere un numero specifico di righe
Ottieni-Contenuto "bigfile.txt" -Capo 10
# Monitora le modifiche al file (come tail -f)
Ottenere-Contenuto "live.log" -Attendere
# Leggere le ultime righe
Ottenere-Contenuto "recent.log" -Tail 20
18. Out-File: Esportazione dell'output su file
Salvare l'output del comando ai file per un'analisi successiva619.
powershell# Salvare l'elenco dei processi su file
Get-Process | Out-File "processes.txt"
# Aggiungere al file esistente
Ottieni-Data | Uscita-File "log.txt" -Append
# Salva con una codifica specifica
Get-Service | Uscita dal file "services.txt" -Codifica UTF8
19. Selezionare l'oggetto: Filtrare e formattare l'output
Controllare quali informazioni viene visualizzato dai risultati del comando2021.
powershell# Mostra solo proprietà specifiche
Get-Process | Select-Object Name, CPU, WorkingSet
# Ottenere i primi risultati
Get-ChildItem | Select-Object -First 5
# Seleziona i valori unici
Get-Process | Select-Object ProcessName -Unique
Lavorare con le pipeline PowerShell
20. Dove-oggetto: Filtrare i risultati
Filtrare i risultati dei comandi in base a criteri specifici2021.
powershell# Filtra i servizi in esecuzione
Get-Service | Where-Object Status -eq "Running"
# Filtrare i file di grandi dimensioni
Get-ChildItem | Where-Object Length -gt 1MB
# Filtraggio complesso con condizioni multiple
Get-Process | Where-Object {$_.CPU -gt 100 -e $_.WorkingSet -gt 50MB}
21. Ordinamento dell'oggetto: Ordinamento dei risultati
Organizzare la produzione in ordine crescente o decrescente21.
powershell# Ordina i processi per nome
Get-Process | Sort-Object Nome
# Ordina per più proprietà
Get-ChildItem | Sort-Object LastWriteTime, Name
# Ordina in ordine decrescente
Get-Process | Sort-Object CPU -Descending
22. PerOgniOggetto: Elaborare ogni elemento
Eseguire azioni su ogni oggetto in una conduttura1921.
powershell# Elaborare ogni file
Get-ChildItem *.txt | ForEach-Object {
Write-Host "Elaborazione: $($_.Name)"
}
# Modifica ogni oggetto
Get-Service | ForEach-Object {
"$($_.Nome): $($_.Status)"
}
Gestione dell'ora e della data
23. Get-Date: Lavorare con date e orari
Recuperare e formattare informazioni sulla data e sull'ora corrente19.
powershell# Ottenere la data e l'ora corrente
Ottieni-Data
# Formattare la data in modo specifico
Get-Date -Formato "aaaa-MM-gg HH:mm:ss"
# Ottenere i componenti della data
(Get-Date).DayOfWeek
(Get-Data).Anno
# Calcolo delle date future
(Get-Date).AddDays(30)
Migliori pratiche essenziali di PowerShell
Utilizzare il completamento della scheda
PowerShell funzione di completamento delle schede velocizza notevolmente l'inserimento dei comandi17. Premere Tab dopo aver digitato nomi parziali di comandi, parametri o percorsi di file per completarli automaticamente.
Sfruttare gli alias
PowerShell include molti alias incorporati per i comandi più comuni5:
ls
odir
perOttenere l'elemento figlio
cd
perImpostazione della posizione
gatto
otipo
perOttieni contenuto
rm
odel
perRimuovi elemento
Test dei comandi in sicurezza
Prima di eseguire comandi potenzialmente distruttivi, utilizzate l'opzione -Cosa succede se
per vedere cosa succederebbe senza eseguire effettivamente il comando12:
powershellRimuovi-oggetto *.txt -Cosa succede
Arresta il servizio Spooler -Cosa succede se
Impostare il criterio di esecuzione
Per motivi di sicurezza, PowerShell limita l'esecuzione degli script per impostazione predefinita.22. Per eseguire gli script, potrebbe essere necessario modificare il criterio di esecuzione:
powershell# Controlla la politica corrente
Ottenere la politica di esecuzione
# Impostare i criteri per l'utente corrente
Imposta politica di esecuzione RemoteSigned -Scope CurrentUser
Creare il primo script PowerShell
Una volta acquisita dimestichezza con i singoli comandi, è possibile combinarli in script per l'automazione2223. Ecco un semplice esempio:
powershell# Salva come system-info.ps1
Scrivi-Host "Rapporto informazioni di sistema" -Colore sfondo verde
Write-Host "=========================" -Colore di sfondo verde
Scrivi-Host "`nData e ora corrente:" -Colore di sfondo giallo
Ottieni-Data
Scrivi-Host "`nTop 5 Processes by CPU:" -Colore di sfondo giallo
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5
Scrivi-Host "`Conteggio servizi in esecuzione:" -Colore di sfondo giallo
(Get-Service | Where-Object Status -eq "Running").Count
Scrivi-Host "`Utilizzo del disco:" -Colore di sfondo giallo
Get-WmiObject -Class Win32_LogicalDisk | Select-Object DeviceID, @{Name="Size(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}
Percorso di apprendimento avanzato di PowerShell
Una volta acquisita la padronanza di questi comandi essenziali, si consiglia di esplorare questi argomenti avanzati24:
- Gestione di Active Directory con i cmdlet AD
- Amministrazione remota del computer utilizzando PowerShell remoting
- Pianificazione automatica delle attività con script PowerShell
- Gestione degli errori e registrazione in script
- Moduli e funzioni PowerShell per la riutilizzabilità del codice
Risoluzione dei problemi comuni di PowerShell
Errori dei criteri di esecuzione
Se si verifica l'errore "l'esecuzione degli script è disabilitata", controllare e modificare il criterio di esecuzione.22:
powershellGet-ExecutionPolicy -List
Imposta politica di esecuzione RemoteSigned -Ambito di applicazione CurrentUser
Errori di autorizzazione negata
Molte attività amministrative richiedono privilegi elevati. Eseguire sempre PowerShell come amministratore quando si lavora con:
- Servizi di sistema
- Modifiche al registro
- Configurazioni di rete
- Gestione degli account utente
Problemi di percorso e di localizzazione
Quando i comandi non trovano i file o le directory, verificare la posizione attuale e utilizzare i percorsi completi:
powershellOttenere la posizione
Imposta posizione C:\Il tuo percorso desiderato
Conclusione: Potenziare l'esperienza di Windows
Padroneggiare questi comandi PowerShell essenziali trasforma l'utente da utente passivo di Windows in un amministratore di sistema attivo in grado di automatizzare attività complesse e risolvere i problemi in modo efficiente.13. Il Struttura di comando verbo-novo PowerShell è intuitivo da imparare, mentre le sue potenti funzionalità di pipeline consentono un'elaborazione sofisticata dei dati e la gestione del sistema.24.
Iniziate ad esercitarvi con questi comandi in un ambiente sicuro, aumentando gradualmente la vostra fiducia ed esplorando scenari più avanzati. Ricordate che Ottenere aiuto
è sempre disponibile per fornire informazioni dettagliate su qualsiasi comando e il completamento delle schede rende l'inserimento dei comandi più rapido e accurato.725.
Che si tratti di gestire file, monitorare le prestazioni del sistema, risolvere problemi di rete o automatizzare attività ripetitive, PowerShell fornisce gli strumenti necessari per lavorare in modo più efficiente ed efficace con i sistemi Windows.17. L'investimento nell'apprendimento di PowerShell si traduce in una maggiore produttività e in migliori capacità di amministrazione del sistema che vi serviranno per tutta la vostra carriera informatica.