Vi faccio notare anche che Cscript.exe è molto più adatto a pratiche come
l’esecuzione remota degli script, ovvero l’upload e l’esecuzione di uno script
su di un computer remoto, poiché risulta molto più trasparente all’utente e
anche perché supporta l’aggiunta di alcuni parametri di esecuzione direttamente
dalla riga di comando (come per esempio la possibilità di impostare la chiusura
forzata dello script dopo una quantità di tempo specificata).
C’è da aggiungere infine che Wscript.exe è la versione di WSH che viene caricata
in maniera predefinita nel momento in cui ci troviamo ad eseguire uno script
tramite doppio clic su di esso (come abbiamo fatto nel nostro esempio), questo
proprio perché Wscript, come è stato detto, mira ad essere Windows-based. In
realtà il comportamento appena descritto può essere cambiato, se volessimo per
esempio che tutti gli script vengano eseguiti da Cscript.exe (anche sul doppio
clic) ci basterà eseguire in un prompt dei comandi il seguente comando:
cscript //h:cscript //s
per tornare invece ad avere Wscript.exe come motore predefinito basta eseguire:
cscript //h:wscript //s
Un help sui parametri supportati dalle due versioni di WSH lo potete trovare qui.
Le possibilità di WSH
Col tempo ho imparato che le possibilità offerte da WSH sono più di quante si
possa immaginare, nel momento in cui se ne comprendono i limiti si inizia a
rendersi conto che molti di essi possono essere bypassati utilizzando programmi
di terze parti all’interno degli script. Mi spiego meglio… se vi capitasse per
caso di voler lavorare sui permessi NTFS di file e cartelle, vi renderete presto
conto che WSH non offre nativamente un grande supporto a questo tipo di
attività; a quel punto vi basterà google per trovare in breve tempo programmi
come SetACL che,
una volta integrati nel vostro script, vi permetteranno di avere pieno controllo
delle proprietà di protezione del filesystem in questione.
Per dare una rapidissima sbirciatina ad una parte delle informazioni che potrete
manipolare utilizzando WSH vi consiglio di dare un occhiata a Scriptomatic
2.0 di Microsoft (non necessita
di installazione, si tratta di un file autoestraente).
Grazie a questo programma possiamo scegliere uno spazio di nomi WMI (provate per
esempio root\CIMV2) ed esplorarne tutte le classi predefinite stabilendo così
quali potrebbero essere i dati ricavabili da esse. Le interrogazioni di
estrapolazione dei dati, che sono prefabbricate ed eseguibili mediante la
semplice pressione del tasto RUN, possono produrre un output in molti formati:
HTML, PLAIN TEXT, COMMAND PROMPT, EXCEL, XML. Vi faccio notare che anche
Scriptomatic è un programma WSH ed è scritto in vbscript, se provate ad aprirne
l’eseguibile tramite notepad potrete osservarne il codice.
Altri progetti correlati allo scripting e al WSH
In materia di scripting in ambiente Microsoft esistono altri progetti correlati al WSH.
Ne elenchiamo tre:
-
HTA: le applicazioni HTA (HTML Applications) sono costituite da righe di
codice WSH unite all’HTML, lo scopo è quello di ottenere un semplice
eseguibile che possa costituire una basilare applicazione ad interfaccia
utente (il motore utilizzato è quello di Internet Explorer) per eseguire
particolari attività scriptate all’interno dello stesso. Un esempio di
applicazione HTA è Scriptomatic 2.0, al quale ho accennato poco fa; avrete
sicuramente notato che il file “eseguibile” di scriptomatic ha come
estensione “.HTA”, se aprite questo file con notepad potrete visualizzarne
il codice e constatare voi stessi quanto vi ho appena descritto. Un’altra
applicazione HTA degna di nota è HelpHTA,
si tratta di una interfaccia grafica che permette agli amministratori di
rete di eseguire con pochissimi clic particolari attività come il listare e
terminare i processi e servizi di un PC remoto oppure visualizzarne la
completa configurazione e le applicazioni in esso installate.
-
WSF: gli script WSF sono script WSH codificati in formato XML. Questo tipo
di codifica offre numerosi vantaggi, tra questi: utilizzare diversi
linguaggi di scripting all’interno dello stesso script, scrivere codice
“riutilizzabile” e la possibilità di richiamare librerie esterne. La
codifica di uno script in WSF permette inoltre di usufruire di funzionalità
avanzate come la possibilità di renderlo interattivo utilizzando pochissimi
tag XML, ovvero: tutti siamo abituati al fatto che i programmi utilizzabili
da “prompt dei comandi” restituiscano determinati output informativi nel
momento in cui dimentichiamo di inserire una variabile oppure quando
digitiamo il carattere “?”; tramite la codifica in WSF è possibile fare in
modo che sia il motore stesso ad occuparsi di eseguire questo tipo di
controlli senza dover scrivere a mano complicate funzioni che se ne
occupino.
-
Windows PowerShell: Si tratta di un innovativo prompt dei comandi di
Windows che costituisce a sua volta una tecnologia di scripting task-based.
All’interno della powershell sono disponibili numerose utilità
amministrative oltre che un nuovo motore di scripting, il suo scopo è quello
di fornire agli amministratori di rete un potente e avanzato strumento di
controllo ed automazione dei prodotti Microsoft. Possiamo considerare
powershell come una valida alternativa al WSH, grazie ad essa le
funzionalità messe a disposizione da quest’ultimo dovrebbero essere state
migliorate; non bisogna però dimenticare il fatto che si tratta di un
prodotto ben più complesso da gestire e che inoltre richiede l’installazione
nel sistema di numerosi componenti aggiuntivi. E’ interessante notare che
Microsoft ha pubblicato all’interno della sua Script
Repository numerose applicazioni
powershell di esempio. Sono disponibili anche repository specifiche di scripts
per Exchange 2007 e cmdlets
per gestire IIS7, una risorsa interessante di scripts è costituita
inoltre dal sito IIS.Net.
Infine segnalo anche una guida
alla powershell che comprende
alcuni virtual labs e webcasts ed un libro
(e-book) gratuito scaricabile
dal sito Microsoft.