Precedentemente conosciuta con il nome in codice “Monad”, Windows PowerShell è la nuova generazione dell’interfaccia a riga di comando per la gestione e la configurazione del sistema operativo. Lo strumento è prerogativa di amministratori di sistema così come degli utenti più esperti che possono così interagire con la configurazione di Windows attraverso un unico ambiente basato su riga di comando.
L’idea che ha portato allo sviluppo di PowerShell consiste nella messa a punto di una piattaforma che possa rappresentare l’equivalente in Windows della shell Unix. Alex Heaton, sviluppatore di PowerShell aveva così commentato il rilascio della sua “creatura”: “si tratta di una piattaforma nuova che integra il prompt dei comandi Windows (cmd.exe) e VBScript unendo semplicità d’uso alle enormi potenzialità che fornisce; grazie a PowerShell è possibile ora automatizzare e controllare le varie attività di amministrazione del sistema”.
Windows PowerShell 1.0 è compatibile con Windows XP SP2, Windows Server 2003 ed, ovviamente, con Windows Vista, sistema operativo per il quale è stato espressamente concepito.
I comandi eseguibili dalla PowerShell si chiamano “cmdlets” (si pronunciano “command lets”) e sono decine e decine (circa 130). L’utility si rivela perciò particolarmente interessante per i professionisti IT che hanno adesso la possibilità di tenere facilmente le redini non solo delle impostazioni di Windows ma anche delle principali applicazioni installate quali, ad esempio, Microsoft Exchange 2007.
In questo articolo illustriamo come sia possibile utilizzare PowerShell su sistemi Windows XP Professional in modo da eseguire attività semplici o complesse da un’unica interfaccia centralizzata. L’utilizzo delle varie “cmdlets” può essere infatti combinato così da compiere anche le operazioni più articolate.
Per poter fruire dei vantaggi offerti da Windows PowerShell sui sistemi Windows XP Professional, è necessario innanzi tutto collegarsi con questa pagina quindi prelevare la versione destinata a sistemi Windows XP SP2 (il software è disponibile anche per la versione a 64 bit – x64 – del sistema operativo). In particolare, nel caso di sistemi x86 è necessario scaricare questa versione di PowerShell mentre questa è la pagina dedicata al download del software per sistemi x64.
Requisito indispensabile per l’installazione e l’utilizzo di Windows PowerShell è la presenza del Microsoft Framework .NET 2.0, eventualmente prelevabile da qui.
Windows PowerShell si installa, in modo predefinito, nella cartella %windir%\System32\WindowsPowerShell\v1.0
. Per avviare il software è sufficiente cliccare sull’icona aggiunta al gruppo dei programmi oppure fare doppio clic sul file powershell.exe
, contenuto nella directory d’installazione.
Avviando il programma, ci si troverà dinanzi ad una finestra che, a parte lo sfondo di colore blu, ricorda da vicino il prompt dei comandi DOS. Tale somiglianza si riflette anche nel comportamento di PowerShell: se si provano a digitare comandi DOS molto familiari come cd
o il conosciutissimo ipconfig
, si può verificare come restino tutti operativi e regolarmente impiegabili.
In realtà, però, per PowerShell questi comandi sono “alias” che hanno dirette corrispondenze in una serie di comandi nuovi, decisamente più “descrittivi”. Per ottenere una lista delle corrispondenze, è sufficiente digitare get-alias
ricordando che, a differenza dei sistemi Linux/Unix, PowerShell non è “case-sensitive” quindi non fa differenza tra l’utilizzo di caratteri maiuscoli o minuscoli. Per cambiare la directory corrente, in luogo dell'”alias” cd
, ad esempio, con PowerShell è possibile impiegare la “cmdlet” Set-Location
.
Digitando Get-Process
è invece possibile ottenere l’elenco completo dei processi al momento in esecuzione sul sistema.
Sarebbe assolutamente impossibile fornire una panoramica completa su tutte le funzionalità offerte da PowerShell. Suggeriamo agli interessati, quindi, di documentarsi in modo più approfondito ricorrendo ai comandi integrati nel tool di Microsoft. L’elenco delle “cmdlets” che PowerShell mette a disposizione è molto ampio: è possibile consultarlo in qualsiasi momento servendosi di Get-Command
(digitando Get-Command , Format-List
si ottiene una descrizione esaustiva della sintassi di ciascun comando).
Invocando il comando Get-Help
seguito dal nome della “cmdlet” d’interesse, è possibile ottenere tutte le delucidazioni del caso.
Uno dei principali punti di forza di PowerShell consiste nel supporto diretto dello scripting. Per confezionare uno script compatibile, è sufficiente semplicemente crearlo con un normale editor di testo (come il Blocco Note o TextPad) quindi memorizzarlo sotto forma di file con estensione .ps1
.
Facendo riferimento a questo ricco archivio di script “già pronti”, è possibile verificare quali siano le potenzialità offerte da PowerShell.
Suggeriamo di salvare uno o più script, sotto forma di file con estensione .ps1, all’interno di una cartella – a propria scelta – sul disco fisso (es.: c:\scripts).
Attenzione perché se si prova ad avviare un qualsiasi script da PowerShell, il software visualizzerà il seguente messaggio d’errore:
Non c’è nessun problema. La visualizzazione del messaggio deriva dal fatto che PowerShell è configurabile per avviare gli script secondo una specifica policy di sicurezza. Per impostazione predefinita, all’atto dell’installazione, PowerShell opera in modalità “Restricted”: ciò significa che non viene consentita l’esecuzione di alcuno script (per verificare la policy applicata, è possibile ricorrere al comando Get-ExecutionPolicy
. Per fare in modo che PowerShell acconsenta all’esecuzione di script creati personalmente oppure di quelli scaricati da Internet (a patto che contengano una firma digitale che ne attesti, senza alcun dubbio, l’autore), è sufficiente digitare quanto segue: Set-ExecutionPolicy RemoteSigned
.
La dizione “RemoteSigned” può essere sostituita con “AllSigned” od “Unrestricted” nel caso in cui, rispettivamente, si desideri eseguire solo scipt firmati digitalmente (compresi quelli di propria realizzazione) o permettere l’avvio incondizionato di qualsiasi tipo di script.