Chi non vorrebbe essere un mago e pronunciare alcune parole per far accadere cose magiche? Bene, 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 su di esso, hai PowerShell. Inoltre, se hai un computer con Windows 7, ti preghiamo di aggiornarlo per motivi di sicurezza.
Ma questo articolo non è solo per Windows. L'ultima versione di PowerShell è gratuita e può essere installata e utilizzata su computer Mac e Linux.
Questo è importante perché ciò che apprendi su PowerShell può essere utilizzato su quasi tutti i computer ora. Chissà? Potresti portare questa abilità al livello successivo e avventurarti in una carriera nell'Information Technology.
Che cos'è PowerShell?
La risposta ad alta tecnologia di Microsoft è che è un, " ... shell da riga di comando progettata appositamente per gli amministratori di sistema. ”Sembra intimidatorio. Ma non lo è. Ti prendi cura del tuo computer? Sì, allora sei l'amministratore di sistema a casa tua.
Dite al vostro computer cosa fare con i clic e le battiture? 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.
In_content_1 all: [300x250] / dfp: [640x360]->PowerShell è come un linguaggio di programmazione, ma non criptico come la maggior parte. Sembra davvero molto l'inglese normale, che è stato qualcosa per cui Microsoft si è impegnata affinché potesse essere raccolto da non programmatori.
È un modo di scrivere alcune righe di comandi, chiamati script, per fare in modo che il sistema operativo Windows faccia qualcosa che tu vuoi che faccia. Quindi, puoi salvare quelle righe in un file ed eseguirlo con un clic o pianificarne l'esecuzione periodica.
Cosa puoi fare con PowerShell?
Il punto di alto livello di PowerShell è in grado di automatizzare le attività, quindi non devi perdere tempo a fare cose banali ripetutamente. Per un amministratore di sistemi professionale, potrebbe essere qualcosa come creare nuovi utenti, generare password per loro e inviare un'e-mail con i dettagli al loro nuovo supervisore.
Eseguito manualmente, con clic e digitazione, tale processo può richiedere da 5 minuti a un'ora o più. Con gli script giusti, l'amministratore di sistema potrebbe non doverne fare nemmeno una parte.
Ma vuoi sapere cosa puoi fare con PowerShell a casa. Praticamente qualsiasi cosa che non ti piace fare ancora e ancora. Usalo per liberare spazio sul tuo disco rigido eliminando i file temporanei e di registro che non ti servono.
Metti un coprifuoco sul computer di tuo figlio. Rinomina o organizza un gruppo di file. Questa è la bellezza di PowerShell. Quasi tutto ciò che puoi fare sul tuo computer, puoi creare uno script PowerShell per automatizzare ed eseguire con un clic o su una pianificazione.
Come si usa PowerShell?
Il modo più semplice per lavorare con PowerShell è in Ambiente integrato di scripting PowerShell (ISE). Puoi trovarlo facendo clic su Start e digitando PowerShellnella barra di ricerca in Windows 10. Dovresti vederlo come mostrato di seguito.
Per la prima volta che lo usiamo, lo eseguiremo come amministratore. Per fare ciò, devi prima avere i diritti di amministratore sul tuo computer. Nel menu Start, fai clic con il pulsante destro del mouse su PowerShell ISE, quindi fai clic su Esegui come amministratore.
Potresti ottenere un UserAccess Control(UAC) avviso pop-up che ti chiede se sei sicuro di voler fare il dothis. Fai clic su Sì.
Ora stai visualizzando l'IDE di PowerShell. 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 il tuo script, vedrai l'output in questo riquadro.
Questo è anche il punto in cui vedrai messaggi di errore e tali 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 PowerShell disponibili.
PowerShell viene impostato per non eseguire alcuno script diverso da quello che fa già parte di Windows. Dovrai modificarlo in modo da poter eseguire i tuoi script.
Nella finestra degli script, copia e incolla quanto segue:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Il Set-ExecutionPolicyè chiamato parte di un cmdlet (commandlet pronunciato). I cmdlet sono cose potenti. Pensa a loro come comandi brevi 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 e dritto al punto. Se il tuo bambino è esperto nella pulizia della stanza, allora andrà a rifare il letto, a mettere il bucato nel cestino, a riporre giocattoli e libri e magari a aspirare il pavimento. Capiscono che il cmdlet Clean-YourRoom significava tutto questo.
Nella parte superiore della finestra, vedrai una freccia verde. Fai clic su di essa per eseguire il comando.
Il - La parte ExecutionPolicyindica a Set-ExecutionPolicyquale criterio impostare. È un parametro Sta dicendo: "Voglio che lavori in base a queste linee guida e faccia questo in modo specifico. Gli dice di usare la politica specifica di RemoteSigned.
La norma RemoteSignedstabilisce che PowerShell non può eseguire o eseguire alcuno script scaricato da Internet a meno che non sia stato firmato da un editore attendibile.
In modo circolare, dice a PowerShell che è bene eseguire qualsiasi script creato localmente, perché non è necessario che siano firmati da un editore attendibile remoto. Ora, lo script di 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 viene fornito con un proprio set di problemi.
Usa PowerShell per creare spazio sul tuo disco rigido
Rompiamo questo script, riga per riga, così puoi 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\*"
Tutto ciò che ha un simbolo del dollaro davanti è un nome variabile . Pensalo come un portafoglio in cui inserire oggetti di valore. Il portafoglio ci ricorda il simbolo del dollaro, gli oggetti di valore sembrano variabili, quindi lo ricorderemo anche noi. Stiamo creando un portafoglio, o variabile, chiamato $ TempFileLocation. Il segno di uguale dice a PowerShell cosa inserire in quella variabile.
In questo caso, stiamo inserendo la posizione di una posizione dei file temporanei di Windows - C: \ Users \ username \ AppData \ Local \ Temp \ *. Lo stiamo facendo per due motivi; è una posizione da cui è sempre sicuro eliminare i file e lo useremo per dire a PowerShell dove deve andare per eliminare i file.
Dove si dice username in quella posizione, scambiarlo con il tuo utente nome. Questo è il nome utente che usi per accedere al tuo computer. L'asterisco (*) alla fine è un jolly. Ciò che rappresenta è tutto nella cartella Temp, perché tutto nella cartella Temp è temporaneo e vogliamo eliminarlo.
Anche le virgolette doppie intorno alla posizione sono importanti. Thattells PowerShell che ciò che è dentro è una stringa. Pensa alla stringa come a una stringa di lettere e caratteri. Se fossero numeri ordinari, non utilizzeremmo 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 farai avviso sui cmdlet come Get-ChildItemè che è totalmente leggibile. Vedi come la prima parola è un verbo? Tutti i cmdlet iniziano con parole d'azione, quindi sai subito cosa sta facendo. ChildItem è due nomi.
La seconda parte del cmdlet ci dirà sempre a quale PowerShell applicherà l'azione. ChildItem indica tutti i figli di una posizione padre. Questo è come dire ottenere tutti i file che si trovano in una cartella, con i file che sono i figli e la cartella che è il genitore.
Qual è il cmdlet che ottiene gli elementi figlio? Tutto nella variabile $ TempFileLocation. PowerShell andrà nella posizione in cui abbiamo inserito $ TempFileLocation in precedenza per ottenere tutti gli elementi figlio presenti. Quindi, li inserirà nella variabile $ TempFile.
Allora, cosa c'è nella parte -Recurse? Ciò sta dicendo a Get-ChildItemdi esaminare tutto in quella posizione. Non basta andare subito a prendere i file nella 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 $ TempFileCounte inseriremo un numero in quella variabile. Dov'è il numero? Bene, ($ TempFile) .countci procurerà quel numero. Probabilmente hai capito che la parte .count farà il conteggio di tutti i file che abbiamo appena archiviato in $ TempFile.
Perché l'abbiamo fatto? Soprattutto perché è bello sapere quanti file inutili stiamo ripulendo con il resto dello script in modo da poter dire quanto sia stato efficace.
if($TempFileCount -eq 0)
Ora stiamo impostando una dichiarazione condizionale. Puoi vedere che sta chiedendo "se". Se cosa? Se la cosa tra parentesi è vera o falsa. Le parentesi sono importanti, altrimenti If non sa cosa confrontare. Qui, ci viene chiesto se il numero che abbiamo archiviato in $ TempFileCountè uguale a zero.
-eqè l'abbreviazione di uguale. È un tipo di operatore di confronto. È come dire ai tuoi figli: "Se la tua stanza è pulita, grande, faremo qualcosa ..." Questa affermazione dice se il numero che è stato memorizzato in $ TempFileCount è -equivalente a zero per fare la prossima cosa.
{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}
Questo è ciò che accadrà se $ TempFileCountè zero. Le parentesi graffe sono importanti. Dicono a PowerShell di fare solo quello che c'è dentro se $ TempFileCount è uguale a zero.
Scriverà all'host, o alla schermata, "Non ci sono file nella cartella C: \ Users \ nomeutente \ Appdata \ Local \ Temp \ *". Il parametro alla fine, - ForegroundColorindica a PowerShell di rendere il testo verde. Ciò semplifica la distinzione da un messaggio di errore normalmente rosso.
Else
Sai cosa significa altro. Questa è la parte "Controlla che la tua stanza sia pulita o ..." per verificare se tuo figlio ha pulito la sua stanza. È ciò che accadrà se $ TempFileCountnon è zero.
{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}
Questo dice che vai alla posizione corrente memorizzata in $ TempFile. La linea verticale dopo si chiama pipe. Funziona in un certo senso come una pipa nella vita reale in quanto dice a PowerShell di incanalare il contenuto di $ TempFile nel cmdlet, come se fosse l'acqua convogliata in una lavatrice. Quindi il cmdlet Rimuovi elementofa ciò che dice; rimuove qualsiasi cosa si trovi in quella posizione.
Il parametro -WhatIfè molto importante in questa fase. Indica a PowerShell di eseguire il comando, ma solo provalo, non rimuovere nulla. Mostraci cosa succederebbe se lo facessimo davvero.
Ciò ti consente di testare i comandi senza cambiare nulla sul tuo computer. Lasciare -WhatIf lì dentro fino a quando 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: $ falseimpedisce allo script di chiedere se desideri veramente eliminare il file. Sai cosa fa -Recurse. -Forcesignifica eliminare quella cosa in ogni caso. -Attenzione in corsoè impostato su Continua silenziosamente.
Ciò impedisce allo script di fornirti avvisi su ciò che stai eliminando. -ErrorActionè impostato su Continua silenziosamentein modo che se c'è qualche tipo di errore nel processo, continui semplicemente a stringere.
Ora siamo a l'ultima riga.
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}
Proprio come ha fatto per la prima volta Write-Host, produrrà la seguente frase, quindi sappiamo cosa è successo . Ci dirà quanti file sono stati eliminati dalla cartella che ha appena elaborato e farlo in verde per facilitare l'individuazione.
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 in PowerShell ISE e salvarlo come qualcosa come delete-TemporaryFiles.ps1. Puoi anche attenerti alla convenzione di denominazione dei cmdlet ora che li capisci.
Se il codice non funziona per te per qualche motivo, puoi anche scarica lo script di PowerShell che abbiamo creato e eseguilo e basta. Basta decomprimerlo prima per visualizzare il file di script.
Ogni volta che vuoi eseguire questo script, fai clic con il tasto destro su di esso e scegli Esegui con PowerShell. Una console di PowerShell verrà visualizzata per un secondo o due, mentre lo script fa la sua cosa e poi scompare se non ci sono errori.
Dove posso saperne di più su PowerShell?
Sembra molto! Per il tuo primo script PowerShell è un bel po '. Se sei arrivato così lontano, 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 ". Quindi controlla queste altre risorse: