Skriptprogrammierung: Ihre ersten Schritte

Von The Microsoft Scripting Guys

Vor langer Zeit, noch bevor die Scripting Guys geboren wurden, liefen die Menschen von einem Ort zum andern. Nicht als Training und auch nicht zur Erholung, sondern weil Sie dorthin gelangen mussten. Wer das Glück hatte, andere Transportmethoden nutzen zu können, war in der Lage, sich mit Pferden, Kamelen, Elefanten oder welchen Tieren auch immer etwas schneller fortzubewegen. (Und allen, die immer noch eine der genannten Transportmethoden verwenden, sei versichert, dass wir im nächsten Stau an sie denken werden.) Dieser Artikel enthält Links zu englischsprachigen Seiten.

Irgendwann kam die so genannte pferdelose Fortbewegung. Viele Leute haben gelacht. Sie äußersten Dinge wie “Das ist nur eine Modetorheit”, “Was sollte ich mit solch einem Konstrukt anfangen?” und sogar “Das sieht gefährlich aus”. Aber es gab auch die wenigen Visionäre, die sagten: “Wow, cool, das möchte ich mal ausprobieren”. Letztere erkannten nicht nur, wie viel Spaß ein Auto machen konnte, sondern auch, dass es Ihnen eines Tages bei den Reisen von Ort zu Ort Stunden, ja Tage ersparen würde.

Viele haben heute ähnliche Reaktionen zur Skriptprogrammierung erfahren, wie sie vor vielen Jahren zum Thema Auto vorherrschten. “Warum sollte ich Skripts programmieren?”, “Skriptprogrammierung ist nur etwas für Fanatiker, die Ihre Systeme nicht wie alle anderen laufen lassen möchten” und sogar: “Skripte sind gefährlich". Sie müssen jedoch weder ein Visionär noch abenteuerlustig sein, um die Skriptprogrammierung auszuprobieren. Sie müssen nur der Typ Mensch sein, der gerne etwas Zeit spart. (Tatsächlich denken nach wie vor nur die Fanatiker, dass es Spaß macht.) Skripts können nicht nur Ihre Arbeit beschleunigen, Sie können auch Ihren Job vereinfachen. Und sobald Sie einmal die grundlegenden Verkehrsregeln kennen gelernt haben, sind sie gar nicht so schwer zu beherrschen. (Und es gibt sehr wenige Staus.)

Auf dieser Seite

Schritt 1
Was soll diese ganze Skriptprogrammierung eigentlich?
Aber dieses Zeug sieht aus wie Code
Ausführen von Skripts
Was ist nun mit diesen Abkürzungen?
Navigation im Script Center
Sie sind alleine… meistens
Mehr Spaß für Anfänger

Schritt 1

C:\>cscript test.vbs

Dies ist das erste, was Sie wissen müssen, um Skripts für die Verwaltung Ihrer Microsoft Windows-Systeme zu verwenden. Nun gut, technisch handelt es sich um die zweite Sache, die Sie wissen müssen. Als Erstes müssen Sie wissen, wie Sie das Script Center finden. Da Ihnen dies offensichtlich bereits gelungen ist, haben wir beschlossen, diesen Schritt auszulassen.

Im Script Center (und möglicherweise anderen Quellen im Internet, für die wir aber nicht garantieren können) finden Sie viele vorgefertigte, ausführbare Skripts. Ein Skript sieht etwa folgendermaßen aus:

Wscript.echo "My very first script."

Ja, diese eine Zeile ist ein Skript. Es ist ein sehr einfaches Skript, die meisten sind länger, aber es handelt sich dennoch um ein Skript. Nun mögen Sie sich fragen, was Sie mit dieser einen Zeile anfangen können. Es ist ganz einfach:

  • Öffnen Sie Notepad.

  • Kopieren Sie das Skript in Ihrem Browser, und fügen Sie es in Notepad ein.

  • Speichern Sie das Skript mit einer VBS-Erweiterung, z. B. als test.vbs.

Öffnen Sie nun ein Befehlsfenster, navigieren Sie zu dem Ordner, in den Sie die Datei gespeichert haben, und geben Sie Folgendes ein:

cscript test.vbs

Wenn Sie dies mit dem Beispielskript durchgeführt haben, wird folgende Ausgabe angezeigt:

My very first script.

Hinweis: Manche unter Ihnen sagen vielleicht: “Hey, das hat nicht funktioniert! Was ist los?” Keine Sorge, Sie sind nicht allein. Ein häufiger Fehler bei der Befolgung unserer Anweisungen hat mit der Funktion Speichern unter zu tun. Wenn Sie in Notepad Speichern unter auswählen und im Feld Dateiname einen Dateinamen eingeben, hängt Notepad eine TXT-Dateierweiterung an den Namen an. Wenn Sie also test.vbs eingeben, haben Sie am Ende eine Datei mit dem Namen test.vbs.txt. Es gibt zwei einfache Methoden, dies zu verhindern. Sie können die für Sie einfachere auswählen:

  • Schließen Sie den Dateinamen in doppelten Anführungszeichen ein. Geben Sie im Feld für den Dateinamen anstelle von test.vbs “test.vbs” ein.

  • Wählen Sie unter Speichern unter im Listenfeld Dateityp Alle Dateien aus, bevor Sie auf Speichern klicken.

Führen Sie stets diese Schritte aus, und Sie können fast jedes Skript des Script Center ausführen. Viel Spaß!

Was soll diese ganze Skriptprogrammierung eigentlich?

Oh, Sie möchten mehr wissen? Okay, lassen Sie uns einen Schritt zurückgehen (ja, ganz zurück auf Schritt Null) und darüber sprechen, was Skriptprogrammierung ist, und wofür Sie Skripts verwenden können.

Die Skriptprogrammierung ist letztlich eine Möglichkeit, den Austausch von Informationen mit Ihrem Computer (und anderen Computern) zu automatisieren. Unser erstes Skript hatte folgende Funktion: wir haben einen Satz an den Computer übergegeben und denselben Satz vom Computer zurückbekommen. Dies mag als nicht sonderlich sinnvolles Feature erscheinen, es handelt sich jedoch zunächst um den ersten Schritt. Und mit dem ersten Schritt kommen Sie nicht durch das ganze Zimmer, geschweige denn zur Tür hinaus. (Gut, einer der Scripting Guys hatte mal eine Wohnung, in der man mit einem Schritt durch das Zimmer gelangen konnte. Aber aus verschiedenen Gründen, die wir hier nicht erläutern möchten [etwas mit Eis und riesigen Spinnen], war diese Wohnung nicht viel hilfreicher als unser erstes Skript.) Es gibt eine Reihe von Szenarios, in denen Skripts wirklich sinnvoll werden. Hier sind nur einige:

  • Sie müssen einige Systemadministrationsaufgaben regelmäßig durchführen

  • Sie müssen eine Reihe von Systemadministrationsaufgaben auf mehreren Computern durchführen

  • Sie möchten die Ausgabe des Computers konsolidieren und organisieren

  • Sie möchten Aufgaben ausführen, während Sie nicht vor dem Monitor sitzen, um mit der GUI zu interagieren

  • Sie müssen sicherstellen, dass bei jeder Ausführung einer Aufgabe die exakt gleichen Aktionen wiederholt werden

Wenn Sie an Ihre Arbeit als Systemadministrator denken, fallen Ihnen sicher bereits einige Aufgaben ein, für die Sie Skripts erstellen möchten.

Aber dieses Zeug sieht aus wie Code

Vielleicht haben Sie sich ja auch schon im Script Center umgeschaut, womöglich sogar die täglichen Hey, Scripting Guy!-Artikel gelesen, und sind dabei Skripts begegnet, die ungefähr so aussehen:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = 'Dfrgntfs.exe'")

If colProcesses.Count = 0 Then
    Wscript.Echo " Dfrgntfs.exe is not running."
Else
    Wscript.Echo " Dfrgntfs.exe is running."
End If

Vielleicht denken Sie jetzt: “Dieses Skriptprogrammierungszeug sieht ziemlich kompliziert aus”. Ob Sie's glauben oder nicht: die Skriptprogrammierung ist nicht nur für professionelle Computerprogrammierer. Für Programmierer gibt es weitaus leistungsstärkere und kompliziertere Tools. Verstehen Sie uns nicht falsch. Ein Skript kann leistungsstark und kompliziert sein, Sie können jedoch auch ziemlich einfache Skripts schreiben, die sehr hilfreich sein können. Lassen Sie sich also nicht von dem Gedanken abschrecken, es handele sich um Code. Viele Dinge können Sie recht einfach und ohne Programmiererfahrung umsetzen.

Einer der Vorteile der Skriptprogrammierung im Gegensatz zu anderen Programmiertypen ist, dass alles, was Sie dazu benötigen, bereits im Betriebssystem integriert ist. Wir werden uns etwas später mit Abkürzungen wie VBScript, WSH und WMI befassen, aber wir verraten Ihnen schon jetzt, dass alle diese Dinge Teil der Skriptprogrammierung und bereits in Windows integriert sind. Auch benötigen Sie zum Schreiben eines Skripts keine schicke, teure Software. Wie Sie bereits gesehen haben, benötigen Sie ausschließlich Notepad, das ebenfalls integriert ist.

Außerdem wurde die Skriptprogrammierung speziell für die Verwaltung von Betriebssystemen entwickelt. Selbst der talentierteste Programmierer würde niemals versuchen, eine vollständige Softwareanwendung wie z. B. Word oder Excel mit Skripts zu erstellen. Skripts ermöglichen die Automatisierung von Systemadministrationsaufgaben.

Denken Sie daran, dass es sich bei der Art der Skriptprogrammierung, von der wie hier sprechen (und auf die sich Script Center fast ausschließlich bezieht), um die Skriptprogrammierung für die Systemadministration handelt. Es gibt auch andere Arten der Skriptprogrammierung (z. B. die Webskriptprogrammierung), darüber müssen Sie sich jedoch an anderer Stelle erkundigen.

Es gibt andere Skriptprogrammierungssprachen als VBScript, und es gibt andere Tools für das Schreiben von Skripts als Notepad. Aber all das können Sie selbst erkunden, sobald Sie einige Skriptprogrammierungserfahrungen gesammelt haben. Die meisten Skripts und Beispiele im Script Center wurden in VBScript erstellt.

WICHTIG: Ein letzter Punkt noch zur Skriptprogrammierung für die Systemadministration, ein sehr wichtiger Punkt. Um die meisten Skripts ausführen zu können (insbesondere Skripts, die interessante Funktionen haben), müssen Sie über lokale Administratorrechte für den Computer verfügen, auf dem das Skript ausgeführt wird. Viele der Skripts im Script Center schlagen fehl, wenn Sie sie nicht als lokaler Administrator ausführen.

Ausführen von Skripts

Genug mit den Hintergrundinformationen, lassen Sie uns noch einmal einige Skripts betrachten. Wir haben Ihnen bereits gezeigt, wie Sie ein Skript mit Cscript von der Befehlszeile aus ausführen können. (Wenn Sie begeistert waren, als Sie “Ausführen von Skripts” gesehen haben und direkt hierher gekommen sind, sollten Sie sich beruhigen, tief durchatmen, zurück an den Anfang gehen und Schritt 1 durchlesen.) Sie können Skripts auch ausführen, indem Sie auf diese doppelklicken, bspw. im Windows Explorer. Der Unterschied ist, dass die Ausgabe des Skripts nicht ansprechend im Befehlsfenster, sondern in einem Popup-Meldungsfeld angezeigt wird. Probieren Sie es mit dem Skript aus, das wir bereits erstellt haben. Doppelklicken Sie einfach auf die Datei test.vbs. Es sollte ein Meldungsfeld wie das Folgende angezeigt werden:

Mein erstes Skript

Nun, das war einfach. Warum haben wir das nicht gleich am Anfang gemacht? Wofür benötigen wir das Befehlsfenster? Bevor wir diese Frage beantworten, probieren Sie Folgendes aus: Fügen Sie folgendes Skript in Notepad ein, speichern Sie es mit der VBS-Erweiterung, und doppelklicken Sie auf die Datei.

For i = 1 to 5
    Wscript.echo i
Next

Was ist passiert? Sie mussten in fünf verschiedenen Meldungsfeldern auf OK klicken. Stellen Sie sich ein Skript vor, das sämtliche auf einem Computer ausgeführten Prozesse oder sämtliche Computernamen in einer Domäne zurückgibt. Da würden Sie eine ganze Weile klicken. Wenn Sie Ihr Skript mit Cscript ausführen, wird die gesamte Ausgabe direkt an das Befehlsfenster gesendet, sodass Sie sich nicht mit all den Meldungsfeldern befassen müssen.

Weitere Informationen zum Ausführen von Skripts finden Sie unter WSH-Script ausführen im Windows 2000 - Scripting-Handbuch.

Was ist nun mit diesen Abkürzungen?

Wie wir weiter oben versprochen haben, und weil die Scripting Guys niemals lügen (höchstens beim gelegentlichen “Ja, deine neue Frisur sieht toll aus”), finden Sie hier einige Definitionen von Technologien im Zusammenhang mit der Skriptprogrammierung. Außerdem finden Sie Verweise auf Abschnitte im Windows 2000 - Scripting-Handbuch, wo diese genauer erläutert werden:

  • VBScript – Visual Basic, Scripting Edition: Eine standardmäßig unter Microsoft Windows verfügbare Skriptprogrammierungssprache. Siehe VBScript.

  • WSH – Windows Script Host: Die Umgebung, in der Ihre Skripts ausgeführt werden. Siehe Der WSH.

  • WMI – Windows-Verwaltungsinstrumentation (Windows Management Instrumentation): Eine Technologie, die Ihnen die Ressourcen für die Verwaltung von Windows-Betriebssystemen über die Skriptprogrammierung bietet. Siehe WMI-Scripting.

  • ADSI – Active Directory Service Interfaces: Eine Technologie, die Ihnen die Ressourcen für die Verwaltung von Active Directory und anderen Verzeichnisdiensten über die Skriptprogrammierung bietet. Siehe ADSI-Scripting.

Das Script Center bietet verschiedene Ressourcen, die Ihnen als Anfänger und fortgeschrittener Skriptprogrammierer helfen sollen.

Learn to Script: Diese englischsprachige Seite eignet sich am besten für den Einstieg. Hier finden Sie Links zum Windows 2000 - Scripting-Handbuch (einem vollständigen Onlinebuch mit 1200 Seiten in englischer Sprache), zu verschiedenen Artikeln, virtuellen Laboren und bedarfsgesteuerten Webcasts. Als Einstieg eignen sich möglicherweise die Webcasts from Scripting Week 1 (in englischer Sprache).

Script Repository: Auch in der Script Center Script Repository werden Sie vermutlich viel Zeit zubringen. Hier finden Sie Tausende von bereits erstellten Skripts. Warum sollten Sie viel Zeit darauf verwenden, ein neues Skript zu erstellen, wenn dort womöglich schon eines vorhanden ist, das Sie kostenlos kopieren können? Wenn Sie nicht genau das Gesuchte entdecken, finden Sie möglicherweise etwas Ähnliches, das Sie durch eine einfache Änderung in das gewünschte Skript ändern können. (Beachten Sie, dass die Skripts im Script Center in der Regel keinerlei Fehlerüberprüfung vornehmen. Daher sollten Sie nach einer Eingewöhnungsphase für Ihre etwas komplexeren Skripts einen Blick auf Error Handling im Windows 2000 - Scripting-Handbuch werfen.)

Skriptprogrammierungstools: Im Script Center finden Sie außerdem viele Tools, die Sie (kostenlos) herunterladen können, und die Ihnen beim Schreiben von Skripts helfen werden.

Scripting For…: Wenn Sie versuchen, ein Problem in einem bestimmten Bereich der Systemadministration zu lösen (z. B. in Desktop Deployment oder Windows Server 2003), sollten Sie sich in den technologiespezifischen Bereichen des Script Center umsehen.

Fun Zone: Zu - sicherlich - guter Letzt, können Sie zu gegebener Zeit etwas Spaß haben (und dabei noch etwas lernen), wenn Sie Dr. Scripto’s Fun Zone besuchen.

Sie sind alleine… meistens

Bevor wir Sie wieder alleine lassen, möchten wir Ihnen noch einen guten Tipp mit auf den Weg geben: Bei Skripts wird nicht zwischen Groß- und Kleinschreibung unterschieden. Es gibt einige wenige Ausnahmen, auf die wir Sie gegebenenfalls hinweisen werden, in der Regel dient die Groß- und Kleinschreibung lediglich der Lesbarkeit. Daher wird dieses Skript (das zufällige Zahlen erzeugt):

intHighNumber = 100
intLowNumber = 1

For i = 1 to 5
    Randomize
    intNumber = Int((intHighNumber - intLowNumber + 1) * Rnd + intLowNumber)
    Wscript.Echo intNumber
Next

genauso ausgeführt wie dieses:

inthighnumber = 100
intlownumber = 1

for i = 1 to 5
    randomize
    intnumber = int((inthighnumber - intlownumber + 1) * rnd + intlownumber)
    wscript.echo intnumber
Next

Nun sollten Sie sich den Rest von Script Center anschauen und an die Arbeit gehen. Wenn Sie einmal wirklich nicht mehr weiter wissen, senden Sie eine E-Mail an scripter@microsoft.com, und wir werden versuchen, Ihnen zu helfen. Viel Spaß und viel Glück!

Mehr Spaß für Anfänger

Wir hoffen, dass Ihnen diese Einführung zur Skriptprogrammierung gefallen hat, und - weitaus wichtiger - dass sie hilfreich für Sie war. Mehr für Anfänger in der Skriptprogrammierung finden Sie in der Sesame Script-Reihe.