Introduzione a Windows Scripting Host

di Daniele Bochicchio, in Security & Admin,

Alzi la mano chi non si è mai scontrato con i file batch di MS-Dos.

Sicuramente permettono di fare molte operazioni in modo abbastanza automatico e semplice, ma con molte limitazioni: è possibile eseguire qualche files, cancellarne qualcun altro, creare directory. Ed in più, come se non bastasse, per i file batch del DOS, è come se Windows non fosse mai stato creato: cestino, registry, start menu, tutte queste feature avanzate delle ultime versioni a 32 bit di Windows per un file .bat non sono nemmeno ipotizzabili!

Ed allora cosa fare? Fino a poco più di un anno fa occorreva arrangiarsi: scrivere qualche programmino in Visual Basic o C++, che facesse questo o quel compito speciale, con la necessità di imparare API e passare notti insonni davanti ad un SDK.

Alla Microsoft, sembra che abbiano capito la mancanza: è arrivato il momento, per gli utenti Windows, di avere un proprio sistema di file batch, nativo, in grado di scrivere applicazioni shell velocemente e senza troppi sforzi, contando perdipiù su un sistema espressamente pensato per questa famiglia di sistemi operativi..

Da un annetto circa, quindi, Windows Scripting Host (WSH) è apparso, inaspettato, come un fulmine a ciel sereno. Si tratta di un prodotto, gratuito, che potenzia ulteriormente i sistemi operativi Windows a 32-bit, facilitando nello stesso tempo il compito di amministratori o power users. In pratica, con WSH installato sul proprio sistema, si ha a disposizione un ambiente batch, ma con l'indubbio pregio che tutto è stato pensato e progettato espressamente per Windows, per i suoi registry, per il cestino, per gli shortcut e per tutte le caratteristiche avanzate dell'ambiente a finestre di casa Microsoft.

Indubbiamente tutto molto bello ed interessante. Ma cos'è esattamente WSH? Con una spiegazione molto semplicistica, potremmo dire che è un contenitore con cui è possibile eseguire script Visual Basic o JScript come se fossero semplici file batch, quindi direttamente dalla shell di Windows, senza interpreti e senza bisogno di compilazione. Essendo più tecnici, si tratta di un contenitore per Active-X Scripting engines , indipendente dal linguaggio, funzionante su piattaforme Windows a 32-bit, e, come ormai ogni nuovo prodotto Microsoft, basato completamente su COM e affini. E' integrato in Windows 98, di serie in Windows 2000, può essere installato su Windows 95 e Windows NT 4, Server e Workstation, scaricandolo a partire da qui (occupa circa 600 kb, ed è disponibile in diverse lingue, italiano incluso) o installandolo con l' NT Option Pack 4, che include anche IIS 4 e MTS .

Come già accennato, i motori di scripting forniti a corredo sono gli stessi che Microsoft fornisce a corredo degli altri contenitori Active-X (tra i più famosi ci sono IIS e Internet Explorer), cioè Microsoft Visual Basic Scripting Edition ( VBScript ) e Microsoft JScript .

Uno script WSH può essere eseguito da una finestra di Windows tramite WScript.exe , o dalla linea di comando, in stile DOS, tramite CScript.exe , il che permette, ad esempio, di fare lo scheduling di alcuni script, per compiere operazioni di amministrazione ad orari stabiliti.

WSH mette a disposizione uno scripting container a bassa memoria, che permette agli script di essere eseguiti direttamente nella shell di Windows, in maniera totalmente nativa. In questo modo gli script non hanno bisogno di essere incapsulati in pagine HTML o ASP per funzionare.

L'engine WSH, inoltre, riconosce il motore in cui è scritta un'applicazione dall'estensione del file stesso. Ogni motore ha una sua estensione associata, in questo modo il progettista che scrive l'applicazione WSH non deve fornire, attraverso un parametro, il linguaggio usato (si pensi a LANGUAGE nel tag <SCRIPT> in pagine HTML o alla direttiva <%@LANGUAGE="nomelinguaggio"%> in pagine ASP), in quanto è a fase di run-time che viene riconosiuto il linguaggio, ed il relavito ProgID.

Con l'installazione di WSH, inoltre, si aggiungono al sistema alcuni oggetti che sono particolarmente interessanti, e che è possibile usare in tutti gli ambienti in cui gli oggetti COM sono supportati (quindi anche in pagine ASP o in progetti Visual Basic). Ad esempio, viene fornito un oggetto in grado di modificare chiavi del registro, o di leggerne dei valori, altri ancora in grado di accedere a stampanti o dischi di rete, eseguire programmi presenti sul computer su cui è in esecuzione lo script, catturare le variabili d'ambiente, etc.

Inoltre negli script WSH si può usare qualsiasi oggetto COM, quindi anche quelli di propria creazione o oggetti COM particolari, come ad esempio uno che controlli gli utenti autenticati in un determinato momento sulla rete e scolleghi quelli inattivi da troppo tempo.

Perché utilizzare WSH

Ma perché usare WSH? Questa è la domanda che un po' tutti si fanno di fronte ad una tecnologia nuova. La risposta, in questo caso, è quanto di più semplice si possa immaginare. Questa scelta, per prima cosa, permette a chi ha già avuto a che fare con le tecnologie di Microsoft per il web ( IIS , Internet Explorer, MTS , etc) di poter usare un unico framework per eseguire anche task di tipo prettamente amministrativo, e risparmiare tempo per imparare un nuovo linguaggio. Per chi si trova per la prima volta ad avere a che fare con sistemi Windows, invece, rappresenta una scelta che permette di essere produttivi con pochi sforzi ed in poco tempo, grazie alla facilità dei linguaggi supportati. Quindi, il suo primo pregio è quello di richiedere pochissimi sforzi da parte dei programmatori per adeguarsi alla nuova tecnologia.

Inoltre, considerato che il Visual Basic è uno dei linguaggi più popolari e più semplici in assoluto, è facile intuire che WSH parta molto avvantaggiato rispetto alla concorrenza, senza trascurare anche che è possibile aggiungerci altri motori di scripting in modo da rendere possibile l'utilizzo di altri linguaggi, come Perl o C++ , nelle proprie applicazioni WSH. Ed il tutto, lo ricordiamo ancora una volta, senza bisogno di compilazioni o intepreti.

E come se non bastasse, non bisogna dimenticare che è incluso nei sistemi operativi Windows più recenti, e supportato da tutti gli altri a 32 bit. Per Windows 3.x invece non si hanno notizie di porting, anche perché, come vedremo, ha poco senso un'eventualità di questo tipo, considerando che WSH si basa essenzialmente su feature proprie dei sistemi Windows a 32 bit. A quanto si sa attraverso la documentazione ufficiale, non dovrebbe esistere neanche una versione per Windows NT 3.5x, anche se non è né dichiarato questo, né il suo contrario.

2 pagine in totale: 1 2
Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti