Utilizzo di PowerShell per utenti domestici: una guida per principianti

Chi non vorrebbe essere un mago e pronunciare poche parole per far accadere cose magiche? Bene(Well) , non siamo in grado di mostrarti come essere un mago, ma possiamo mostrarti come fare un po' di magia al computer.

Se hai un computer Windows con Windows 7 , hai PowerShell . Inoltre, se hai un computer con Windows 7 , aggiornalo per motivi di sicurezza.

Ma questo articolo non è solo per gli utenti Windows . L'ultima versione di PowerShell è gratuita e può essere installata e utilizzata su computer Mac e Linux .

È importante perché ciò che impari su PowerShell può essere utilizzato su quasi tutti i computer ora. Chi lo sa? Potresti portare questa abilità al livello successivo e avventurarti in una carriera nell'Information Technology(Information Technology) .

Cos'è PowerShell?

La risposta high-tech di Microsoft è che si tratta di una "shell di comando" progettata appositamente per gli amministratori di sistema. — Suona(” Sounds) intimidatorio. Ma non lo è. Ti prendi cura del tuo computer? Sì, allora sei l'amministratore di sistema di casa tua.

Dici al tuo computer cosa fare con i clic e le sequenze di tasti? Sì, quindi pensa alla shell della riga di comando come a un'altra finestra in cui digiti le cose per dire al tuo computer cosa fare. Puoi farlo.

PowerShell è come un linguaggio di programmazione, ma non così criptico come la maggior parte. Si legge davvero molto come l' inglese(English) normale , che era qualcosa per cui Microsoft si è sforzata in modo che potesse essere ripreso dai non programmatori.

È un modo di scrivere alcune righe di comandi, chiamate script, per fare in modo che il sistema operativo Windows faccia qualcosa che vuoi che faccia. Quindi, puoi salvare quelle righe in un file ed eseguirlo con un clic o pianificarne l'esecuzione periodicamente.

Cosa puoi fare con PowerShell?

Il punto di alto livello di PowerShell è essere in grado di automatizzare le attività, in modo da non dover perdere tempo a fare cose banali ripetutamente. Per un amministratore di sistema(Systems Administrator) professionista , potrebbe essere qualcosa come creare nuovi utenti, generare password per loro e inviare un'e-mail con i dettagli al nuovo supervisore.

Fatto manualmente, con clic e digitazione, questo processo può richiedere da 5 minuti a un'ora o più. Con gli script corretti, l' amministratore(Systems Administrator) di sistema potrebbe non dover nemmeno eseguire alcuna parte di ciò.

Ma vuoi sapere cosa puoi fare con PowerShell a casa. Praticamente tutto ciò che non ti piace fare ancora e ancora. Usalo per liberare spazio sul disco rigido eliminando i file di registro e temporanei che non ti servono.

Metti il ​​coprifuoco sul computer di tuo figlio. Rinomina(Rename) o organizza un gruppo di file. Questa è la bellezza di PowerShell . Quasi(Almost) tutto ciò che puoi fare sul tuo computer, puoi creare uno script PowerShell per automatizzare ed eseguire con un clic o in base a una pianificazione.

Come si usa PowerShell?

Il modo più semplice per lavorare con PowerShell è in PowerShell Integrated Scripting Environment (ISE) . Puoi trovarlo facendo clic su Start e digitando powershell ise nella barra di ricerca in Windows 10 . Dovresti vederlo come mostrato di seguito.

Per la prima volta che lo utilizziamo, lo eseguiremo come amministratore(Administrator) . Per fare ciò, devi prima avere i diritti di amministratore sul tuo computer. Nel menu Start(Start Menu) , fai clic con il pulsante destro del mouse su PowerShell ISE , quindi fai clic su Esegui come amministratore(Run as Administrator) .

È possibile che venga visualizzato un popup di avviso di controllo(User Access Control) dell'accesso utente ( UAC ) che ti chiede se sei sicuro di volerlo fare. Fare clic su (Yes) .

Ora stai guardando l' IDE di PowerShell(PowerShell IDE) . Il riquadro superiore della finestra (1) è il riquadro degli script. Qui è dove scriverai la tua sceneggiatura. Il riquadro inferiore della finestra (2) è l'area della console. Quando testerai lo script, vedrai l'output in questo riquadro.

Questo è anche il punto in cui vedrai messaggi di errore e simili che ti aiuteranno a correggere e migliorare i tuoi script. Il riquadro sul lato destro della finestra (3) è il componente aggiuntivo del comando. Pensalo come un dizionario di tutti i comandi di PowerShell a tua disposizione.(PowerShell)

PowerShell è impostato per non eseguire script diversi da quelli già inclusi in Windows . Avrai bisogno di cambiarlo in modo da poter eseguire i tuoi script.

Nella finestra di scripting, copia e incolla quanto segue:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

La parte Set-ExecutionPolicy è chiamata cmdlet (commandlet pronunciato). I cmdlet sono cose potenti. Considerali(Think) come brevi comandi che puoi dare a Windows e Windows farà un sacco di cose più complicate per soddisfare il tuo comando.

Un'analogia sarebbe dire a tuo figlio di pulire la sua stanza. Breve(Short) e al punto. Se tuo figlio è esperto nella pulizia delle stanze, allora andrà a rifare il letto, a mettere il bucato nel cesto, a riporre i giocattoli e i libri e forse anche ad aspirare il pavimento. Capiscono che il cmdlet Clean-YourRoom significava tutto questo.

Nella parte superiore della finestra vedrai una punta di freccia verde. Fare clic(Click) su quello per eseguire il comando.

La parte -ExecutionPolicy indica a (-ExecutionPolicy)Set-ExecutionPolicy quale criterio impostare. È un parametro. Sta dicendo: “Voglio che lavori all’interno di queste linee guida e lo faccia in modo specifico. Gli dice di utilizzare la politica specifica di RemoteSigned .

Il criterio RemoteSigned afferma che PowerShell non può eseguire o eseguire script scaricati da Internet a meno che non siano stati firmati da un editore attendibile.

In modo indiretto, dice a PowerShell che va bene eseguire qualsiasi script creato localmente, perché non è necessario che questi siano firmati da un editore attendibile remoto. Ora, il tuo script PowerShell sarà in grado di eseguire qualsiasi script che scrivi sul tuo computer.

Diamo un'occhiata a uno script per eliminare i file temporanei. Non è potente o completo come CCleaner , ma CCleaner ha una serie di problemi.

Usa PowerShell(Use PowerShell) per creare spazio(Create Space) sul tuo disco rigido(Your Hard Drive)

Analizzeremo questo script, riga per riga, così potrai vedere come funziona. Alla fine, lo script verrà mostrato completamente in modo da poterlo copiare e incollare se lo desideri.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Qualsiasi cosa con un simbolo del dollaro davanti è un nome di variabile. Pensalo come un portafoglio in cui riporre oggetti di valore. Il portafoglio(Wallet) ci ricorda il simbolo del dollaro, gli oggetti di valore suonano come variabili, quindi lo ricorderemo anche noi. Stiamo creando un portafoglio, o variabile, denominato $TempFileLocation . Il segno di uguale dice a PowerShell cosa inserire in quella variabile.

In questo caso, stiamo inserendo il percorso di un percorso di file temporanei di Windows – C:\Users\username\AppData\Local\Temp\* . Lo stiamo facendo per due ragioni; è un percorso da cui è sempre sicuro eliminare i file e lo useremo per dire a PowerShell dove deve andare per eliminare i file.

Dove dice nome utente in quella posizione, sostituiscilo con il tuo nome utente. È il nome utente che usi per accedere al tuo computer. L'asterisco (*) alla fine è un carattere jolly. Ciò che rappresenta è tutto nella cartella Temp , perché tutto nella cartella Temp è temporaneo e vogliamo eliminarlo.

Anche le virgolette intorno alla posizione sono importanti. Questo dice a PowerShell che quello che c'è dentro è una stringa. Pensa(Think) alla stringa come a una stringa di lettere e caratteri. Se fossero numeri ordinari, non useremmo le virgolette.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Stiamo creando un'altra variabile. Questa volta useremo un comando per trovare qualcosa da inserire nella variabile $TempFile

Get-ChildItem 

Un'altra cosa che noterai sui cmdlet come Get-ChildItem è che è completamente leggibile. Vedi come la prima parola è un verbo? I cmdlet(Cmdlets) iniziano tutti con parole d'azione, quindi sai immediatamente cosa sta facendo. ChildItem è composto da due nomi.

La seconda parte del cmdlet ci dirà sempre a cosa PowerShell applicherà l'azione. ChildItem indica tutti i figli di una posizione padre. Questo è come dire prendi tutti i file che si trovano in una cartella, con i file che sono i figli e la cartella è il genitore.

Da cosa deriva il cmdlet per ottenere gli elementi figlio? Tutto nella variabile $TempFileLocation . PowerShell andrà nella posizione che abbiamo inserito in $ TempFileLocation in precedenza e otterrà tutti gli elementi figlio che sono lì. Quindi, li inserirà nella variabile $TempFile .

Allora, cos'è la parte -Ricorrenza(-Recurse ) ? Questo sta dicendo a Get-ChildItem(Get-ChildItem) di esaminare tutto in quella posizione. Non limitarti a prendere i file immediatamente all'interno della cartella principale. Se ci sono cartelle in quella cartella, prendi anche tutti i loro figli, i loro figli e così via. Li prenderemo tutti.

$TempFileCount = ($TempFile).count

Sì, stiamo creando una terza variabile chiamata $TempFileCount e inseriremo un numero in quella variabile. Dov'è il numero? Bene, ( $TempFile).count ci porterà quel numero. Probabilmente hai capito che la parte .count eseguirà(.count) il conteggio di tutti i file che abbiamo appena archiviato in $ TempFile .

Perché abbiamo fatto questo? Soprattutto perché è bello sapere quanti file inutili stiamo ripulendo con il resto dello script, così possiamo dire quanto sia stato efficace.

if($TempFileCount -eq 0)

Ora stiamo impostando un'istruzione condizionale. Puoi vedere che sta chiedendo 'se'. Se cosa? Se la cosa tra parentesi è vera o falsa. Le parentesi sono importanti, altrimenti l'If non sa cosa confrontare. Qui, si chiede se il numero che abbiamo memorizzato in $TempFileCount è uguale a zero.

-eq è la scorciatoia per equals. È un tipo di operatore di confronto. È come dire ai tuoi figli: "Se la tua stanza è pulita, fantastico, faremo qualcosa..." Questa affermazione dice che se il numero memorizzato in $ TempFileCount è -uguale a zero do la prossima cosa.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

Questa è la cosa che accadrà se $TempFileCount è zero. Le parentesi graffe sono importanti. Dicono a PowerShell di fare solo ciò che è al loro interno se $ TempFileCount è uguale a zero.

Scriverà sull'host, o sullo schermo, "Non ci sono file nella cartella C:\Users\username\Appdata\Local\Temp\*". Il parametro alla fine, – ForegroundColor dice a PowerShell di rendere il testo verde. Ciò rende più facile distinguere da un messaggio di errore che normalmente è rosso.

Else

Sai cos'altro significa. Questa è la parte "È meglio che la tua stanza sia pulita, altrimenti..." parte del controllo se tuo figlio ha pulito la sua stanza. È ciò che accadrà se $TempFileCount non è zero.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Questo dice vai alla posizione corrente memorizzata in $TempFile . La linea verticale dopo di essa è chiamata pipe. Funziona in modo simile a un tubo della vita reale poiché dice a PowerShell di incanalare il contenuto di $ TempFile nel cmdlet, come se fosse l'acqua che viene convogliata in una lavatrice. Quindi il cmdlet Remove-Item fa ciò che dice; rimuove tutto ciò che è in quella posizione.

Il parametro -WhatIf è molto importante in questa fase. Dice a PowerShell di eseguire il comando, ma solo di provarlo, non rimuovere nulla. Mostraci solo(Just) cosa accadrebbe se lo facessimo davvero.

Ciò ti consente di testare i comandi senza modificare nulla sul tuo computer. Lascia il -WhatIf lì dentro finché non ti senti a tuo agio che lo script farà quello che vuoi che faccia e nient'altro. Quindi eliminalo e lo script farà il suo lavoro.

Il parametro -Confirm:$false impedisce allo script di chiedere se si desidera davvero eliminare il file. Sai cosa fa -Recurse . -Forza( -Force) significa eliminare quella cosa, qualunque cosa accada. -WarningAction è impostato su SilentlyContinue .

Ciò impedisce allo script di darti avvisi su ciò che stai eliminando. -ErrorAction è impostato su SilentlyContinue in modo che se c'è qualche tipo di errore nel processo, continua a sbuffare.

Ora siamo all'ultima riga.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Proprio come Write-Host ha fatto la prima volta, produrrà la seguente frase, quindi sappiamo cosa è successo. Ci dirà quanti file sono stati eliminati dalla cartella che ha appena elaborato e lo farà in verde per renderlo facile da individuare.

Diamo un'occhiata allo script del tutto:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Puoi copiarlo e incollarlo nel tuo PowerShell ISE e salvarlo come qualcosa come delete-TemporaryFiles.ps1 . Puoi anche attenerti alla convenzione di denominazione dei cmdlet ora che li comprendi.

Se il codice non funziona per te per qualche motivo, puoi anche scaricare lo script di PowerShell che abbiamo creato ed eseguirlo. Basta(Just) decomprimerlo prima per visualizzare il file di script.

Ogni volta che vuoi eseguire questo script, fai clic con il pulsante destro del mouse su di esso e scegli Esegui con PowerShell(Run with PowerShell) . Una console di PowerShell apparirà per un secondo o due, mentre il tuo script fa il suo, e poi scomparirà se non ci sono errori.

Dove posso saperne di più PowerShell?

Sembra molto! Per il tuo primo script di PowerShell è un bel po'. Se sei arrivato fin qui, applauditi. Hai imparato molto oggi, ma ora vuoi saperne di più. È fantastico!

Ci sono molte risorse su Internet per saperne di più su PowerShell . Un buon punto di partenza è il nostro articolo " Generare un elenco di programmi di avvio tramite riga di comando o PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ". Quindi controlla queste altre risorse:



About the author

Sono un ingegnere informatico con oltre 10 anni di esperienza nel settore del software. Sono specializzato nella creazione e manutenzione di applicazioni software individuali e aziendali, nonché nello sviluppo di strumenti di sviluppo per piccole imprese e grandi organizzazioni. Le mie capacità risiedono nello sviluppo di una solida base di codice, negli strumenti di debug e test e nel lavorare a stretto contatto con gli utenti finali per garantire che le loro applicazioni funzionino perfettamente.



Related posts