Principii de bază pentru Wsh

În acest articol, voi vorbi despre sarcini care pot fi automatizate cu Windows Scripting Host (WSH) 1.0. Până în prezent nu am acordat prea multă atenție fundamentalelor fundamentale ale WSH. Deoarece primesc numeroase întrebări despre WSH și Visual Basic Scripting Edition (VBScript) prin e-mail, mulți administratori de sistem, cred că, vor beneficia de informații de bază despre scenarii.

Care este cauza dificultăților?

WSH poate părea dificil de învățat din mai multe motive. Majoritatea dificultăților, în opinia mea, se datorează lipsei de surse de informație de calitate. WSH este încă o tehnologie nouă și, pe măsură ce o îmbunătățesc, sper că vor apărea documente bune. Deocamdată, pentru informații despre WSH, consultați publicațiile și site-urile web listate în bara laterală "Surse de informații sursă Win32".

Un alt factor care complică studiul WSH - un număr mare de tehnologii aparent fără legătură, care trebuie să învețe să facă WSH-script-uri pentru a efectua diverse funcții. De exemplu, pentru a scrie un script care definește numele grupului căruia îi aparține, trebuie să știți ceva despre WSH, VBScript sau JScript, precum și despre interfețele de servicii Active Directory (ADSI). Este nevoie de mult mai puține cunoștințe pentru a îndeplini aceeași sarcină utilizând o limbă de specialitate de scripting numită KiXtart, un limbaj de fișiere binar sau un utilitar cum ar fi Ifmember din NT Server 4.0 Resource Kit.

Dificultatea nu este că WSH necesită adesea cunoașterea mai multor tehnologii de scripting; deoarece se suprapun parțial între ele, trebuie să alegeți pe care să o utilizați pentru a efectua o sarcină. De exemplu, atât ADSI, cât și Windows Management Instrumentation (WMI), implementarea WebBuy Enterprise Management (WBEM) oferită de Microsoft, oferă acces la serviciile NT prin interfețe de automatizare. Dacă doriți să porniți și să opriți serviciile pe un server NT care utilizează WSH, trebuie să decideți ce să utilizați - WMI sau ADSI.

Având în vedere lipsa documentației WSH și varietatea de tehnologii pe care scenariile WSH le pot utiliza, noul scenariu Microsoft Windows poate părea complicat. Cu toate acestea, cu un efort de a studia WSH, cu ajutorul lui puteți obține mai mult decât în ​​detrimentul oricărei alte tehnologii. Crede-mă, cunoștințele pe care le vei câștiga vor merita efortul.

Deși WSH nu impune restricții privind dimensiunea fișierului, scripturile WSH în versiunea curentă nu pot fi localizate în mai mult de un fișier. WSH 1.0 nu acceptă includerea fișierelor - fișiere care conțin proceduri care pot fi executate din scriptul principal. Această restricție poate fi eludată în mai multe moduri. Puteți utiliza metoda Run a obiectului Shell WSH pentru a rula scripturi externe (precum și orice alte comenzi externe). Problema este însă că două scenarii nu pot folosi același spațiu nominal, adică nu au acces reciproc la variabilele și procedurile celeilalte.

LISTING 1: include.vbsSub Utilizare (str) WScript.Echo str End Sub

În VBScript 5.0 există o comandă Execute, prin care puteți evita mai ușor lipsa fișierelor incluse. Execute are un argument de tipul unui șir - executabilul. Deoarece Execute execută un argument specificat în script, acest argument trebuie să conțină codul din VBScript. Din acest motiv, Execute poate fi folosit pentru a seta subrutine în fișiere externe, a le citi în scriptul executabil și apoi apela de acolo. Voi da un exemplu.

Lista 1 indică scriptul include.vbs, în Lista 2 - main.vbs. Include.vbs conține o subrutină numită Utilizare cu un argument șir. Conținutul acestei linii este afișat de subrutină utilizând metoda Wscript.Echo.

LISTAREA 2: main.vbsDim objFileSystem, objTextStream, strCode Set objFileSystem = CreateObject ( "Scripting.FileSystemObject") Set objTextStream = objFileSystem.OpenTextFile ( "include.vbs", 1) strCode = objTextStream.ReadAll objTextStream.Close Executare Utilizare strCode apel ( „subrutina Utilizarea este definită în include.vbs.“)

Main.vbs citește conținutul subrutinei de utilizare în variabila strCode din fișierul include.vbs și apoi îl apelează. Pentru a crea o referință la un obiect TextStream care este un pointer la fișierul include.vbs, utilizați metoda OpenTextFile a obiectului VBScript FileSystemObject. Apoi, folosind metoda TextStream.ReadAll, conținutul fișierului include.vbs este plasat în variabila strCode.

După aceea, main.vbs trece variabila strCode ca argument la comanda Execute, ceea ce face ca partea din subrutina Usage să fie inclusă în scriptul principal.vbs. În ultima linie a scriptului se numește subrutina de utilizare, care este trecută ca argument pentru un șir de afișare. Figura 1 arată rezultatul executării main.vbs.

Ecranul 1: Rezultatul scriptului principal.vbs

Deși provocarea Utilizare, la prima vedere, se referă la o subrutină situat într-un alt fișier, în realitate, nu este. Subrutina de utilizare devine parte a spațiului de nume principal.vbs, de îndată ce acest script transmite șirul cu codul său la comanda Execute. Așadar, nu uitați că subrutina cu numele corespunzător denumirii uneia dintre procedurile deja utilizate în script nu poate fi "trasă" în ea dintr-un alt fișier (cu excepția cazului în care, desigur, doriți să modificați dinamic codul de procedură).

WSH 2.0 va oferi suport pentru includerea fișierelor și abilitatea de a crea biblioteci de funcții și subrutine utilizate frecvent, care pot fi accesate din alte scripturi, indiferent de limba în care sunt scrise. WSH 2.0 vă va permite, de asemenea, să apelați funcții JScript din programe în VBScript și invers.

Una dintre caracteristicile frumoase ale limbilor de scripting este că acestea oferă foarte puține reguli obligatorii pentru formatarea, structurarea și aranjarea blocurilor. Între timp, această flexibilitate poate confunda administratorii, care au întâlnit întâi scenarii.

Modalitățile de structurare a scenariilor sunt aceleași ca și pentru dezvoltatori. Cu toate acestea, deși există foarte puține reguli de formatare în limbile de scripting, este logic să folosiți aceeași metodă de structurare în toate scenariile. Indiferent dacă utilizați șabloane pentru scripturile dvs. sau pur și simplu respectați o anumită metodologie, menținerea uniformității vă va ajuta să accelerați procesul de dezvoltare, să faceți scripturile mai ușor de utilizat și să simplificați depanarea.

Îmi împart scripturile WSH în trei secțiuni: secțiunea de declarație și inițializare, corpul de script, secțiunea funcții și proceduri. În prima secțiune, am pus directivele interpretului, declarațiile de variabile și codul de inițiere pentru constante și variabile. Comenzile Script și codul care le controlează comportamentul, am în secțiunea a doua. În corpul scriptului am pus în memorie și folosesc obiecte, metode de apel, setări de proprietăți, proceduri și funcții. În cele din urmă, secțiunea de funcții și proceduri de la sfârșitul scriptului este pentru mine să împart codul în blocuri. Aici sunt plasate părți ale codului care sunt utilizate în interiorul script-ului de mai multe ori.

În următorul articol din serie, voi descrie fiecare din cele trei secțiuni în detaliu. Între timp, vă puteți referi la bara laterală "Surse de informații despre scripturile Win32". Șansele sunt că veți învăța ceva nou.

Surse de informații despre scripturile Win32

Cărți pe WSH Gunter Născut, Windows Scripting Host Tutorial (Wrox Press). Pentru mai multe informații, vizitați www.wrox.com. Thomas Fredell, SAMS Învățați-vă pe Windows Scripting Host în 21 de zile (SAMS). Dan Gookin, Prezentarea Windows Scripting Host pentru Windows 98 (Microsoft Press). Cărți pe VBScript și JScript

Din păcate, în toate cărțile publicate de editorii listați, limbile de scripting sunt descrise în contextul programării web. Pentru a găsi publicațiile necesare, accesați site-urile Web ale editorilor și efectuați o căutare în cuvintele cheie VBScript și JScript.

Nu uita că scopul principal al WSH - integrarea componentelor de automatizare COM - ADO, Active Directory Service interfețe (ADSI), Obiecte de date de colaborare (CDO), administrare de management Windows (WMI) și Microsoft Office. Prin urmare, sursele de informații privind aceste tehnologii pot fi, de asemenea, utile în scrierea scenariilor WSH.

Mai jos sunt cărțile care ar putea îndeplini rolul unor astfel de surse.

David Sussman și Alex Homer, ADO 2.0 Programmer's Reference (Wrox Press).

Steven Hahn, referință ADSI ASP programator (Wrox Press). Mikael Freidlitz și Todd Mondor, programarea ADSI CDO cu ASP (Wrox Press).

Deși aceste cărți se ocupă de programarea dezvoltării aplicațiilor Web, exemplele de scripturi oferite pot fi ușor adaptate pentru utilizarea în mediul WSH.

Ultima în bara laterală, dar cu siguranță nu ultima în importanță: valoarea motoarelor de căutare pe Web nu poate fi supraestimată. Introduceți în motoarele dvs. preferate cuvintele cheie Windows Scripting Host, și veți obține o mulțime de link-uri. Dacă găsiți ceva deosebit de util, nu uitați să-mi spuneți.

Articole similare