Page 707 - Guida Windows 10
P. 707
(Integrated Scripting Environment).
Tutto ciò che potete fare in modo interattivo con PowerShell potete farlo anche all’interno di uno
script. Vale anche il contrario; potete prendere delle righe da uno script, comprese quelle che
includono cicli o diramazioni, ed eseguirle singolarmente all’esterno del contesto di uno script.
Per esempio, se digitate
For ($i=1; $i -le 5; $i++) { “Hello, World” }
al prompt dei comandi PowerShell, il programma stamperà un saluto per cinque volte.
Utilizzando la cronologia di PowerShell potete con facilità trasferire in uno script dei comandi
che avete eseguito in modo interattivo. In tal modo potrete verificare che funzionino e anche
come funzionano, prima di creare un file .ps1.
Per esempio, il comando
Get-History | Foreach-Object { $_.commandline } >> c:\scripts\mynewscript.ps1
aggiunge la proprietà Commandline da ciascun elemento della cronologia corrente al file C:\
Scripts\Mynewscript.ps1; se il percorso non esiste, il comando restituisce un errore. Una volta
trasferita la cronologia in Mynewscript.ps1 in questo modo, potrete modificarla nel Blocco note
digitando notepad c:\scripts\mynewscript.ps1.
Esecuzione di script PowerShell
Sebbene i file dotati di estensione .ps1 siano script eseguibili di PowerShell, per eseguirli non
basta fare doppio clic su di essi come si fa per un file .bat. Innanzitutto, facendo doppio clic su
un file .ps1 in Esplora file otterrete un avvertimento, dal quale l’unica via di uscita è il Blocco
note. In pratica, l’azione predefinita per uno script PowerShell da Esplora file è Modifica.
In secondo luogo, la prima volta che tenterete di eseguire uno script digitandone il nome dal
prompt dei comandi PowerShell, potreste vedere un messaggio dissuasivo in lettere rosse, con
alcuni dettagli che sconsigliano l’operazione. Questo significa che PowerShell si è rifiutato di
lanciare lo script, poiché l’esecuzione degli script è disabilitata su questo sistema. Dovrete
pertanto modificare il criterio di esecuzione di PowerShell.
In terzo luogo, anche dopo aver corretto il problema del criterio di esecuzione, potreste ottenere
un rifiuto anche se tenterete di eseguire uno script conservato nella directory corrente. Questo
perché PowerShell richiede l’indicazione completa del percorso, anche se l’elemento da eseguire
si trova nella directory corrente. Per esempio, per eseguire lo script Displayprocessor. ps1 che si
trova nella directory corrente, dovrete specificare .\displayprocessor.
Valutazione e impostazione del criterio di esecuzione
La grande potenza di PowerShell può essere sfruttata anche per scopi tutt’altro che positivi. La
maggior parte degli utenti Windows non utilizzerà mai PowerShell, ma molti potrebbero avere dei
file .ps1 da qualche parte nel loro sistema o potrebbero scaricarli inavvertitamente. Per
proteggere il sistema da script pericolosi, PowerShell disabilita l’esecuzione degli script, a meno