Visual Basic Script
Visual Basic Script(kurz:VBScriptoderVBS) ist eine vonMicrosoftentwickelteSkriptsprache.Sie ist eng verwandt mitVisual Basic(VB)undVisual Basic for Applications(VBA)und wird üblicherweiseinterpretiert.
Anwendungsbereiche
[Bearbeiten|Quelltext bearbeiten]In der Praxis ergeben sich für VBS drei Anwendungsbereiche:
Windows-Betriebssystem
[Bearbeiten|Quelltext bearbeiten]Die Steuerung des Windows-Betriebssystems zur Automatisierung von Standardaufgaben ist mit eigenen Skripten über denWindows Script Host(WSH) möglich. Windows akzeptiert VBS vor allem innerhalb von.VBS
- und.WSF
-Dateien, die vom Windows Scripting Host (seit den Versionen2000/ME) ausgeführt werden, und innerhalb von.HTA
- und.CHM
-Dateien, die von speziellen Systemprogrammen (mshta.exe bzw. hh.exe) ausgeführt werden..VBS
- und.WSF
-Dateien sind reine Textdateien, die nur über wenige Dialoge kommunizieren können..HTA
- und.CHM
-Dateien sindHTML-Dateien, die dementsprechend eingesehen werden können. Innerhalb von.WSF
-,.HTA
- und.CHM
-Dateien können VBScript und JavaScript (JScript) beliebig gemischt werden. Die.HTA
-Dateien sind HTML-Dateien, die mit VBS, JavaScript und den Elementen von HTML zu einem interaktiven Formular ausgebaut werden können. Bei.CHM
-Dateien handelt es sich um Hilfedateien, die mit dem frei verfügbarenHelpcompileraus üblichen HTML-Dateienkompiliertwerden.
Browser (clientseitiges VBS)
[Bearbeiten|Quelltext bearbeiten]In Webseiten kann VBS eingebettet werden, um denWebbrowserauf der Client-Seite zu steuern (d. h. der Browser führt VBS aus). Damit erfüllt VBS eine ähnliche Funktion wieNetscapesJavaScript,kann also fürdynamische Inhaltebenutzt werden und ganzeProgrammein eineWebseiteintegrieren.
Auf der Client-Seite hat VBScript jedoch keine große Bedeutung erlangt, da es direkt nur von MicrosoftsInternet Explorerunterstützt wird (mit Plug-Ins auch von Mozilla), während JavaScript von allen Browsern unterstützt wird. Im Internet Explorer verwenden JavaScript und VBScript ähnliche Sicherheitsmodelle und können – theoretisch – nur eingeschränkt auf Objekte des Betriebssystems zugreifen. Aufgrund der geringen Verwendung wird VBScript inMicrosoft Edgenicht unterstützt. Seit 2019 deaktiviert Microsoft durch Updates die Ausführbarkeit von VBScript-Code im Internet Explorer 11.[1]
Webserver (serverseitiges VBS)
[Bearbeiten|Quelltext bearbeiten]Für Server unter Windows ist VBS ein integraler Bestandteil von Microsofts ASP (Active Server Pages). Der VBS-Code wird hier in eine HTML-Seite integriert, die mit der Dateiendung ASP versehen ist. DerWebserver-DienstInternet Information Services,interpretiert die ASP-Datei als Programm und liefert das Ergebnis an den Client (zum Beispiel den Browser eines Webseitenbesuchers) aus. Auf diese Art kann z. B. eine Datenbank abgefragt, deren Ergebnis verarbeitet und – üblicherweise als HTML-Datei – ausgegeben werden.
ASP steht damit in Konkurrenz zu Konzepten wiePHP.Der Microsoft Webserver-Dienst IIS ist mit demApache Webserververgleichbar. Mittlerweile wird oben beschriebenes Konzept auch als „Classic-ASP “bezeichnet um es von den Nachfolgeprodukten abzugrenzen (siehe auch den Abschnitt zum Ausblick).
Zukünftige Nutzung von VBScript
[Bearbeiten|Quelltext bearbeiten]Als Systemkomponente aller aktuellen Windows-Versionen wird VBScript von Microsoft nach wie vor unterstützt. Die Sprache selbst wird jedoch seit Längerem nicht mehr weiterentwickelt. Daher wird sie manchmal als „tote Sprache “angesehen. Zudem bietet Microsoft diverse Nachfolgeprodukte und favorisiert deren Einsatz; dies zeigt sich auch daran, dass Microsofts WSH-bezogene Webseiten verschwinden. Durch die vergleichsweise hohe Akzeptanz der alten Produkte und die große Verbreitung darauf basierender Lösungen werden diese jedoch noch geraume Zeit in Koexistenz verbringen.
- Im Bereich der Webserver sollASP.NETdie Aufgaben vom sogenannten „Classic-ASP “übernehmen, und die ProgrammierspracheVisual Basic.NETsoll VBS ersetzen.
- Zur Unterstützung von administrativen Aufgaben existiert mittlerweile dieWindows PowerShell,sie kann damit als Nachfolgeprodukt zum Windows Script Host gelten.
- Für die Realisierung auch umfangreicher und komplexer Programme werden die kostenfreienVisual StudioExpress Editionenangeboten.
Anfang Oktober 2023 hat Microsoft VBScript in die Liste der veralteten Funktionen (deprecated features) aufgenommen und angekündigt, es irgendwann aus zukünftigen Windows-Ausgaben zu entfernen.[2]AbWindows 1124H2 ist VBScript eine optionale Komponente (Feature-on-Demand), die zugunsten von PowerShell schrittweise aus dem Betriebssystem entfernt werden soll.[3]
Sprache
[Bearbeiten|Quelltext bearbeiten]Vorteile
[Bearbeiten|Quelltext bearbeiten]Die wichtigsten Vorteile der Sprache sind:
- verfügbar auf allen Windows-Betriebssystemen ab 2000/98 SE(mit IE 4 auch abWindows 95);
- geringe Dateigrößen, da die Sprache vom Betriebssystem oder vom Browser interpretiert wird;
- Vorkenntnisse der Sprachen Visual Basic (VB) und VBA erleichtern Einstieg in VBS;
- Zugriff auf andere Anwendungen und installierte Komponenten (zum BeispielMicrosoft-Office-Programme) und derenObjektmodell;
- Erweiterbarkeit durch eigens entwickelte Komponenten (Objekte).
Nachteile
[Bearbeiten|Quelltext bearbeiten]Die Verwendung von VBScript ist auf Windows-Systeme beschränkt. Zudem unterscheidet sich die Sprache sehr von anderen Skriptsprachen, sodass eine Übertragung in andere Umgebungen oder Projekte nicht trivial ist.
Merkmale
[Bearbeiten|Quelltext bearbeiten]- Gegenüber Visual Basic (VB) und Visual Basic for Applications (VBA) kennt VBS keine Typisierung der Daten, es gibt nur denDatentypVariant,der in sich alle anderen Typen speichern kann.
- VBS kann auf alleCOM-Komponenten mitIDispatch-Schnittstellezugreifen, die unterWindowsverfügbar sind, insbesondere auf die Bibliotheken der Microsoft-Office-Programme, die Datenbanken wieAccessundSQL-Server,auf andere Anwendungen und natürlich auf die Bibliotheken des Betriebssystems. Die Verwendung normaler Programmbibliotheken (DLL-Dateien) ist jedoch nicht vorgesehen und nur mit entsprechender COM-Unterstützung möglich.[4][5]
- Der Funktionsumfang ist gegenüber VB weiter reduziert.
- Klassen können erstellt werden.
- Wie bei JavaScript wird der Quelltext vom Scripting Host automatisch ab der ersten Zeile und so lange abgearbeitet, bis er auf eine funktionelle oder prozedurale Anweisung trifft. Eine spezielle Kennzeichnung des automatisch startenden Programmteils am Anfang, wie z. B. in C mit 'int main()', führt dazu, dass nichts ausgeführt wird.
- Wie bei den meisten Skriptsprachen, liegen die VBScript-Programme (Skripts) als Quelltext vor. Ein Schutz des eigenen Codes gegen Einsichtnahme ist daher kaum möglich. Die beiläufige Anzeige des Quellcodes lässt sich durch eine schlichte Art der Verschlüsselung verhindern, entweder mittels MS Script Encoder[6]oder mittels ActiveX-Steuerelement („Scripting.Encoder “-Objekt). Verschlüsselte VBScript-Dateien haben die Extension
.vbe
(VBScript Encoded).
Beispiel
[Bearbeiten|Quelltext bearbeiten]Ein einfaches VBScript zur Darstellung einesDialogfensterskönnte wie folgt aussehen:
MsgBox"Textinhalt des Fensters",0,"Name des Fensters"
Das zweite Argument entscheidet dabei über das Aussehen des Fensters. Der Wert0
entspricht einem einfachen Fenster, das neben dem Textinhalt einen OK-Buttonanzeigt, jedoch existieren weitere Möglichkeiten zur Gestaltung wie verschiedene Schaltflächen oder Symbole.
Wird dieser Code beispielsweise mit dem in Windows enthaltenenEditorin eine Textdatei mit der Endung.vbs
gespeichert, genügt ein Doppelklick zur Ausführung.
Entwicklungswerkzeuge
[Bearbeiten|Quelltext bearbeiten]Windows Scripting Host und VBScript unterstützen einemodulare Programmierungund sind daher durchaus für größere Projekte geeignet. Es existieren auch einige nützliche Entwicklungswerkzeuge, ihre Anzahl ist allerdings überschaubar. An erster Stelle sindEditorenzu nennen, die Quelltexte gemäß der VBS-Syntaxmitfarblichen Hervorhebungendarstellen können. Solche Programme werden zum Teil kostenlos angeboten (z. B.Notepad++,Programmer’s Notepad,SciTE). Auch von Microsoft wurden ein speziellerScript Editorsowie einScript Debuggerzur Unterstützung der Fehlersuche herausgegeben, wobei es sich um eher einfache Tools handelt. Außerdem existieren einige – kostenpflichtige –Entwicklungsumgebungen/IDEs,(z. B.PrimalScript,VbsEdit,Vrode Script Editor).
Sicherheit
[Bearbeiten|Quelltext bearbeiten]Als Komponente des Internet Explorers kann VBScript – wie andereaktive Inhalte– ein zusätzliches Sicherheitsrisiko darstellen, wenn entsprechend präparierte Webseiten eine vorhandene Sicherheitslücke ausnutzen können. Solche Lücken wurden beispielsweise mit Microsofts Updates vom Juni 2020 geschlossen.[7]Die Risiken lassen sich vermeiden, indem die Skriptausführung im Internet Explorer unterbunden oder ein anderer Browser eingesetzt wird.
Nachdem sich Microsoft dazu entschlossen hatte, innerhalb vonMicrosoft OutlookundOutlook Expressauch VBScript als Bestandteil von HTML-Mails zuzulassen, haben sich zahlreicheComputervirenund-würmer– unter Ausnutzung der anfänglich unzureichend geschützten Schnittstelle zuActiveX-Steuerelementen – über diese Applikationen verbreitet. Das Gefahrenpotenzial besteht hierbei nicht in besonderen Eigenschaften von VBScript, sondern in der engen Verknüpfung von Skripten mit anderen Systemkomponenten. Ein ähnliches Risiko ist beispielsweise mitPowerShell-Skripten verbunden.
Da Skripte als Textdateien vorliegen, wird manchmal ihr Programmcharakter übersehen. Das kann dazu führen, ihre möglichen Auswirkungen zu unterschätzen. Auch wird ein Skript durch den Befehl „Öffnen “nicht zur Bearbeitung geladen, sondern ausgeführt.
Weblinks
[Bearbeiten|Quelltext bearbeiten]- MSDN Scripting:Microsofts aktuelle Übersichtsseite zu Windows Script (bei Abruf am 21. Februar und 4. März 2019 überwiegend obsolete Links)
- Script Center (Script resources):Script Center Site mit verschiedenen Downloads
- Microsoft Scripting Blog:Tipps und Beispiele
- dieseyer.de:Informative Seite zur Nutzung von VBS mit vielen Beispielen und Erklärungen
- ArsTechnica.de:Beispiele für die Automatisierung mit VB Skripts
- HTMLWorld:Einführung in VBScript
- Makrocenter:Codeschnipsel für VBScript
- Script-Komponente VTool:Funktionserweiterungen und diverse Dialogfenster für WSH/VBS (Freeware)
Einzelnachweise
[Bearbeiten|Quelltext bearbeiten]- ↑Rainald Menge-Sonnentag:Browser schneidet alte Zöpfe ab: IE 11 künftig ohne aktiviertes VBScript.In:Heise online.3. August 2019.Abgerufen am 4. August 2019.
- ↑Deprecated features for Windows client.In:learn.microsoft.Microsoft,abgerufen am 14. Oktober 2023(englisch).
- ↑Naveen Shankar Chilla:VBScript deprecation: Timelines and next steps.In:techcommunity.microsoft.Microsoft, 22. Mai 2024,abgerufen am 15. September 2024(englisch).
- ↑Accessing Win32 API in VB script(.VBS files).In:social.msdn.microsoft.Microsoft, archiviert vom am17. August 2022;abgerufen am 4. März 2019(englisch).
- ↑Erhard Riedel:DynaLib.Caller.In:eriedel.info.Abgerufen am 4. März 2019(Freeware für DLL-Funktionsaufrufe mittels COM-Objekt).
- ↑Download MS Script Encoder.In:microsoft.Microsoft, 19. Oktober 2001, archiviert vom am18. Juli 2012;abgerufen am 11. September 2007.
- ↑June 2020 Security Updates.In:msrc.microsoft.Microsoft,abgerufen am 10. Juni 2020(englisch).