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
   702   703   704   705   706   707   708   709   710   711   712