Quando si tratta di eseguire comandi su Windows, PowerShell è diventato un po ‘un asso nella manica. Per anni gli appassionati si sono limitati ai confini della riga di comando di Windows, ma nel 2006 PowerShell è emersa come una potente alternativa.
Cos’è PowerShell?
PowerShell è un sistema interattivo Interfaccia da riga di comando (CLI) e motore di automazione progettato da Microsoft per aiutare a progettare le configurazioni di sistema e automatizzare le attività amministrative. Questo strumento ha la sua riga di comando con un linguaggio di programmazione unico simile a Perl. Inizialmente, PowerShell è stato progettato per gestire oggetti sui computer degli utenti.
Oggi PowerShell offre agli utenti un ampio ambiente in cui possono eseguire e automatizzare le attività di gestione del sistema. L’utente può accedere alle risorse da Active Directory a Exchange Server tramite un programma. Al suo interno, PowerShell consente all’utente di accedere a:
- Prompt dei comandi
- Comandi PowerShell
- .API NET Framework
- Strumentazione gestione Windows
- Modello a oggetti componente di Windows
Poiché PowerShell è diventato un’applicazione open source, gli utenti Linux e Unix possono ora accedere a questa piattaforma versatile. PowerShell viene utilizzato principalmente per aiutare gli utenti ad automatizzare i lavori amministrativi. Anziché eseguire attività noiose e ripetitive, l’utente può semplicemente creare script ed emettere comandi e PowerShell li completerà automaticamente. L’utente può personalizzare centinaia di comandi, chiamati cmdlet.
Comandi PowerShell
Ecco 25 comandi di base di PowerShell:
Set-Location | cd, chdir, sl | Imposta la posizione di lavoro corrente su una posizione specificata. |
Get-Content | gatto, gc, tipo | Ottiene il contenuto dell’articolo nella posizione specificata. |
Aggiungi contenuto | AC | Aggiunge contenuto agli elementi specificati, ad esempio l’aggiunta di parole a un file. |
Set-Content | sc | Scrive o sostituisce il contenuto di un elemento con nuovo contenuto. |
Copy-Item | copia, cp, cpi | Copia un elemento da una posizione a un’altra. |
Rimuovi oggetto | del, cancella, rd, ri, rm, rmdir | Elimina gli elementi specificati. |
Move-Item | mi, sposta, mv | Sposta un elemento da una posizione all’altra. |
Set-Item | SI | Modifica il valore di un elemento nel valore specificato nel comando. |
Nuovo oggetto | ni | Crea un nuovo oggetto. |
Start-Job | sajb | Avvia un processo in background di Windows PowerShell. |
Confronto-Object | confrontare, dif | Confronta due serie di oggetti. |
Group-Object | gruppo | Raggruppa oggetti che contengono lo stesso valore per le proprietà specificate. |
Invoke-WebRequest | ricciolo, iwr, wget | Ottiene il contenuto da una pagina Web su Internet. |
Measure-Object | misurare | Calcola le proprietà numeriche degli oggetti e i caratteri, le parole e le linee negli oggetti stringa, come i file … |
Resolve-Path | RVPA | Risolve i caratteri jolly in un percorso e visualizza il contenuto del percorso. |
Resume-Job | rujb | Riavvia un lavoro sospeso |
Set-Variable | set, sv | Imposta il valore di una variabile. Crea la variabile se non esiste una con il nome richiesto. |
Show-Command | SHCM | Crea i comandi di Windows PowerShell in una finestra di comando grafica. |
Sort-Object | ordinare | Ordina gli oggetti in base ai valori delle proprietà. |
Start-Service | SASV | Avvia uno o più servizi interrotti. |
Inizio-Process | saps, inizia | Avvia uno o più processi sul computer locale. |
Suspend-Job | sujb | Arresta temporaneamente i lavori del flusso di lavoro. |
Wait-Job | WJB | Elimina il prompt dei comandi fino a quando uno o tutti i processi in background di Windows PowerShell in esecuzione nella sessione non sono … |
Where-Object | ?, dove | Seleziona gli oggetti da una raccolta in base ai loro valori di proprietà. |
Write-Output | echo, scrivi | Invia gli oggetti specificati al comando successivo nella pipeline. Se il comando è l’ultimo comando nella pipeline, … |
Ecco la nostra versione PDF del cheat sheet di PowerShell. Fare clic sull’immagine seguente per aprire il PDF in una scheda del browser separata che è possibile salvare e utilizzare come riferimento rapido.
Foglio informativo su PowerShell (PDF)
Come usare PowerShell
PowerShell è ideale per gli amministratori aziendali che eseguono complesse operazioni di gestione su grandi reti aziendali. Invece di raccogliere manualmente informazioni su centinaia di server e servizi diversi (il che richiederebbe molto tempo), è possibile semplicemente eseguire uno script su PowerShell per inviare automaticamente le informazioni all’utente.
In generale, PowerShell è particolarmente vantaggioso per gli utenti che hanno precedenti esperienze con le linee di comando. Per utilizzare PowerShell, è possibile eseguire una varietà di cmdlet, script, file eseguibili e classi .NET. Ai fini di questo articolo, ci concentreremo principalmente su cmdlet e script per aiutarti a familiarizzare con i fondamenti.
Udemy ha una serie di corsi più votati su PowerShell che potresti trovare utili.
PowerShell vs Prompt dei comandi
Per molti utenti, PowerShell è un’alternativa migliore al prompt dei comandi. Il motivo è che ha semplicemente più potenza. Una delle maggiori differenze è che PowerShell utilizza i cmdlet anziché i comandi. I cmdlet mettono la gestione del registro e la strumentazione di gestione di Windows alla portata amministrativa degli utenti. Al contrario, il prompt dei comandi è limitato a comandi molto più semplici.
Esiste un certo crossover nella sintassi tra le due piattaforme poiché PowerShell accetterà alcuni comandi del prompt dei comandi come ipconfigtocd. Tuttavia, questi sono noti come alias anziché come cmdlet. Un’altra differenza fondamentale è che PowerShell è centrato sugli oggetti. Ogni pezzo di dati in uscita da un cmdlet è un oggetto anziché un testo. Ciò semplifica all’utente la navigazione attraverso dati complessi. L’inclusione di .NET framework consente inoltre agli script PowerShell di utilizzare le interfacce .NET. In breve, PowerShell è Prompt dei comandi sugli steroidi.
Caricamento di PowerShell
Prima di approfondire le nozioni di base sull’uso di PowerShell, devi prima accedere all’interfaccia principale. Se sei un utente di Windows 10, avrai già accesso a PowerShell 5. Gli utenti di Windows 8-8.1 hanno accesso a PowerShell 4, ma se sei su Windows 7, dovrai installarlo in .NET struttura. Su tutti i sistemi operativi, PowerShell offre due interfacce distinte.
Il più avanzato è l’ambiente di scripting integrato, che funge da GUI completa per utenti esperti. L’alternativa di base è la console di PowerShell, che fornisce all’utente una riga di comando per immettere i propri comandi. Si consiglia ai principianti di attenersi a quest’ultimo fino a quando non apprendono i fondamenti di PowerShell.
Per avviare PowerShell su Windows 10, devi essere un amministratore. Accedi come amministratore, fai clic su Inizio, e scorrere le app fino a individuare Windows PowerShell. Fare clic con il tasto destro e selezionare Eseguire come amministratore. Su Windows 8.1, cerca semplicemente PowerShell nel tuo Sistema cartella. Allo stesso modo, su Windows 7 la directory predefinita per PowerShell è Accessori cartella dopo aver installato il programma.
Come eseguire i cmdlet
In poche parole, un cmdlet è un comando a funzione singola. I cmdlet vengono immessi nella riga di comando come si farebbe con un comando o un’utilità tradizionali. I cmdlet sono il modo principale per interagire con la CLI. In PowerShell, la maggior parte dei cmdlet è scritta in C # e comprende istruzioni progettate per eseguire una funzione che restituisce un oggetto .NET.
Oltre 200 cmdlet possono essere utilizzati in PowerShell. Il prompt dei comandi di Windows PowerShell non fa distinzione tra maiuscole e minuscole, quindi questi comandi possono essere digitati in maiuscolo o minuscolo. I cmdlet principali sono elencati di seguito:
- Get-Location – Ottieni la directory corrente
- Set-Location – Ottieni la directory corrente
- Move-voce – Sposta un file in una nuova posizione
- Copy-item – Copia un file in una nuova posizione
- Rinominare – item Rinomina un file esistente
- Nuovo oggetto – Crea un nuovo file
Per un elenco completo dei comandi disponibili, utilizzare il cmdlet Get-Command. Nella riga di comando inserire quanto segue:
PS C: \> Get-Command
È importante notare che Microsoft impedisce agli utenti di utilizzare i cmdlet personalizzati di PowerShell nelle impostazioni predefinite. Per utilizzare i cmdlet di PowerShell, è necessario modificare il ExecutionPolicy a partire dal Limitato per RemoteSigned. Firmato a distanza ti permetterà di eseguire i tuoi script ma interromperà gli script non firmati di altri utenti.
Per modificare i criteri di esecuzione, digitare il seguente comando PowerShell:
PS C: \> Set-ExecutionPolicy
Per passare a RemoteSigned, digitare il seguente comando:
PS C: \> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Assicurati di avere un account amministratore in modo da avere l’autorizzazione per impostare una nuova politica di esecuzione.
Come eseguire gli script
I processi e i comandi basati su script fanno parte delle basi della versatilità di PowerShell. In PowerShell, uno script è essenzialmente un file di testo con un’estensione ps1 nel suo nome file. Per creare un nuovo script puoi semplicemente aprire il blocco note di Windows, digitare i tuoi comandi e salvare con “.ps1” alla fine del nome.
Per eseguire uno script, immettere la cartella e il nome file nella finestra di PowerShell:
PS c: \ powershell \ mynewscript.ps1
Al termine, verrà eseguito lo script selezionato.
Cerca di creare i tuoi script PowerShell? Quasi 5k studenti hanno seguito questo corso Udemy su Advanced Scripting con PowerShell.
Sovrapposizione con i comandi di Windows
Quando sei nuovo su PowerShell, può sembrare travolgente provare a imparare una nuova libreria di comandi. Tuttavia, ciò che la maggior parte dei nuovi utenti non capisce è che la sintassi utilizzata nella riga di comando di Windows si sovrappone a PowerShell. Ciò è reso più semplice dal fatto che PowerShell non fa distinzione tra maiuscole e minuscole.
Proprio come Prompt dei comandi, su PowerShell il comando cd cambia ancora directory e dir fornisce ancora un elenco di file all’interno della cartella selezionata. Pertanto, è importante ricordare che non si deve necessariamente iniziare da zero. Prendendo questo a bordo aiuterà a ridurre la curva di apprendimento che affronti quando usi PowerShell e diminuisci il numero di nuovi comandi che devi imparare.
Detto questo, è importante notare che questi non sono considerati comandi PowerShell completi tanto quanto sono alias (il nome Powershell per i comandi prompt di Windows). Quindi, anche se puoi provare alcuni dei comandi del prompt dei comandi in PowerShell, dovresti imparare il più possibile sui nuovi. Tuttavia, l’esperienza del prompt dei comandi può sicuramente aiutare i nuovi utenti a fare i conti con PowerShell e a correre.
Backup di un database SQL
Molte persone usano PowerShell per eseguire il backup dei database SQL. L’interfaccia della riga di comando può eseguire backup completi del database, backup dei file e backup del registro delle transazioni. Esistono molti modi per eseguire il backup di un database in PowerShell, ma uno dei più semplici è utilizzare il comando Backup-SqlDatabase. Per esempio:
PS C: \> Backup-SqlDatabase -ServerINstance “Computer \ Instance” -Database “Databasecentral”
Ciò creerà un backup del database di un database con il nome “Databasecentral” (o il nome del database prescelto “.
Per eseguire il backup di un registro delle transazioni, inserire:
PS C: \> Backup-SqlDatabase -ServerInstance “Computer \ Instance” -Database “Databasecentral” -BackupAction Log
Ciò creerà un registro delle transazioni del database selezionato.
Comandi essenziali di PowerShell
L’uso degli alias ti porterà solo su PowerShell, quindi è importante impegnarti a imparare tutto ciò che puoi sui comandi nativi di PowerShell. Abbiamo toccato alcuni di questi sopra, ma analizzeremo quelli principali in maggior dettaglio di seguito.
Ottenere aiuto
Questo comando dovrebbe essere in cima all’elenco di tutti i nuovi utenti quando si tratta di PowerShell. Il comando Get-Help può essere utilizzato per ottenere letteralmente assistenza con qualsiasi altro comando di PowerShell. Ad esempio, se conosci il nome di un comando, ma non sai cosa fa o come usarlo, il comando Get-Help fornisce la sintassi completa del comando.
Ad esempio, se si desidera vedere come funziona Get-Process, digitare:
PS C: \> Get-Help -Nome Get-ProcessPS C: \> Set-ExecutionPolicy
Come accennato in precedenza in questa guida, Microsoft ha una politica di esecuzione limitata che impedisce lo scripting su PowerShell a meno che non venga modificata. Quando si imposta il criterio di esecuzione, è possibile scegliere tra quattro opzioni:
- Limitato – La politica di esecuzione predefinita che interrompe l’esecuzione degli script.
- Tutti firmati – Eseguirà gli script se sono firmati da un editore di fiducia
- Firmato a distanza – Consente l’esecuzione di script che sono stati creati localmente
- illimitato – Una politica senza restrizioni sull’esecuzione degli script
PS C: \> Get-ExecutionPolicy
Se stai usando PowerShell, potresti non lavorare sempre su un server che conosci. Esecuzione del comando Politica di Get-Execution ti permetterà di vedere quale criterio è attivo sul server prima di eseguire un nuovo script. Se poi vedi che il server in questione funziona in base a un criterio limitato, puoi implementare Set-ExecutionPolicy comando per cambiarlo.
Get-Service
Uno dei comandi più importanti è Get-Service, che fornisce all’utente un elenco di tutti i servizi installati sul sistema, sia in esecuzione che in arresto. Questo cmdlet può essere diretto utilizzando nomi o oggetti di servizio specifici.
Ad esempio, se dovessi digitare PS C: \> Ottieni assistenza, ti verrà mostrato un elenco di tutti i servizi sul tuo computer, i loro stati e i nomi visualizzati.
Per utilizzare questo comando per recuperare servizi specifici, digitare: PS C: \ Get-Service “WMI *” per recuperare tutti i servizi che iniziano con WMI.
Se si desidera limitare l’output ai servizi attivi sul computer, immettere il comando seguente:
PS C: \ Get-Service | Where-Object {$ _. Status -eq “Running”}
ConvertTo-HTML
Quando usi PowerShell, potresti voler generare un rapporto sulle informazioni che hai visto. Uno dei modi migliori per farlo è usare il ConvertTo-HTML comando. Questo cmdlet consente di creare report con tabelle e colori, che possono aiutare a visualizzare dati complessi. Basta scegliere un oggetto e aggiungerlo al comando. Ad esempio, puoi digitare:
Get-PSDrive | ConvertTo-Html
Ciò restituisce una grande quantità di informazioni, quindi è una buona idea limitarlo a un file con il comando Out-File. Un comando alternativo migliore è:
Get-PSD Drive | ConvertTo-Html | Out-File -FilePath PSDrives.html
Ciò genererà quindi un file HTML sotto forma di tabella. Per esempio:
È quindi possibile aggiungere i propri colori e bordi per perfezionare la sua presentazione.
Export-CSV (e Get-Service)
Non meno importante per aumentare la visibilità è il comando Export-CSV. Ti consente di esportare i dati di PowerShell in un file CSV. In sostanza, questo comando crea un file CSV che compila tutti gli oggetti selezionati in PowerShell. Ogni oggetto ha una propria riga o riga all’interno del file CSV. Questo comando viene utilizzato principalmente per creare fogli di calcolo e condividere dati con programmi esterni.
Per utilizzare questo comando, digitare:
PS C: \> Ottieni assistenza | Export-CSV c: \ service.csv
È importante ricordare di non formattare gli oggetti prima di eseguire il comando Export-CSV. Questo perché la formattazione degli oggetti comporta solo l’inserimento delle proprietà formattate nel file CSV anziché gli oggetti originali stessi. Nel caso in cui si desideri inviare proprietà specifiche di un oggetto a un file CSV, si utilizzerà Select-Object cmdlet.
Per usare il Select-Object cmdlet, digitare:
PS C: \> Ottieni assistenza | Nome oggetto selezionato, Stato | Export-CSV c: \ Service.csv
Get-Process
Se si desidera visualizzare tutti i processi attualmente in esecuzione sul proprio sistema, il Get-Process il comando è molto importante. Per ottenere un elenco di tutti i processi attivi sul tuo computer, digita:
PS C: \ Get-Process
Nota che se non specifichi alcun parametro, otterrai una suddivisione di ogni processo attivo sul tuo computer. Per selezionare un processo specifico, restringere i risultati in base al nome del processo o all’ID processo e combinarlo con il Format-List cmdlet, che visualizza tutte le proprietà disponibili. Per esempio:
PS C: \ Get-Process windowrd, explorer | Elenco formati *
Ciò fornisce una supervisione completa di tutti i processi attivi.
Get-EventLog
Se vuoi mai accedere ai registri eventi del tuo computer (o registri su computer remoti) mentre usi PowerShell, allora avrai bisogno di Get-EventLog comando. Questo cmdlet funziona solo con i log degli eventi classici, quindi avrai bisogno di Get-WinEvent comando per i registri successivi a Windows Vista.
Per eseguire il comando registro eventi, digitare:
PS C: \> Get-EventLog -List
Questo mostrerà tutti i registri degli eventi sul tuo computer.
Uno dei motivi più comuni per cui gli utenti guardano i log degli eventi è vedere gli errori. Se vuoi vedere gli eventi di errore nel tuo registro, digita semplicemente:
PS C: \> Get-EventLog -LogName System -EntryType Error
Se si desidera ottenere i registri eventi da più computer, specificare quali dispositivi si desidera visualizzare (elencati di seguito come “Server1” e “Server2”). Per esempio:
PS C: \> Get-EventLog – LogName “Windows PowerShell” -ComputerName “computer locale”, “Server1”, “Server2”.
I parametri che è possibile utilizzare per cercare registri eventi includono:
- Dopo – L’utente specifica una data e un’ora e il cmdlet individuerà gli eventi che si sono verificati dopo
- AsBaseObject – Fornisce un System.Diagnostics.EventLogEntry per ogni evento
- AsString – Restituisce l’output come stringhe
- Prima – L’utente specifica una data e un’ora e il cmdlet individuerà gli eventi verificatisi in precedenza
- Nome del computer – Utilizzato per fare riferimento a un computer remoto
- EntryType – Specifica il tipo di voce degli eventi (errore, verifica guasti, verifica riuscita, informazioni, avviso)
- Indice : Specifica i valori dell’indice da cui il cmdlet trova gli eventi
- Elenco – Fornisce un elenco di registri eventi
- Nome utente – Specifica i nomi utente associati a un determinato evento
Stop-Process
Quando si utilizza PowerShell, non è raro sperimentare un processo che si blocca. Ogni volta che ciò accade, è possibile utilizzare Get-Process per recuperare il nome del processo in difficoltà e poi fermarlo con il Stop-Process comando. Generalmente, si termina un processo con il suo nome. Per esempio:
PS C: \> Stop-Process -Name “notepad”
In questo esempio, l’utente ha terminato Blocco note utilizzando il comando Stop-Process.
PowerShell: una potente interfaccia a riga di comando
Sebbene rendere la transizione a PowerShell possa sembrare piuttosto complessa, la sua interfaccia da riga di comando funziona in modo molto simile a qualsiasi altra. Può avere i suoi cmdlet unici, ma una ricchezza di risorse online può aiutarti in qualsiasi compito amministrativo che ti viene in mente. Per ottenere il massimo da PowerShell, devi semplicemente abituarti alla moltitudine di comandi disponibili.
Come nuovo utente, è facile rimanere scoraggiati dai oltre 200 cmdlet di PowerShell. Assicurati di iniziare con l’interfaccia della riga di comando prima di passare alla GUI completa. Indipendentemente dal fatto che tu non abbia familiarità con PowerShell o con le interfacce della riga di comando, sono disponibili online informazioni più che sufficienti per aiutarti a ottenere il massimo da questo potente strumento.
Non ho familiarità con PowerShell, ma sembra essere una potente interfaccia a riga di comando per automatizzare le attività amministrative su Windows. È interessante notare che è diventato unapplicazione open source, consentendo agli utenti Linux e Unix di accedervi. Grazie per aver condiviso questa informazione utile!