TechNet Script Center - das Tool Scriptomatic

Veröffentlicht: 02. Mrz 2004

Beim Scriptomatic handelt es sich um ein ebenso leistungsfähiges wie praktisches Tool, das voll funktionsfähige WMI-Scripte (Windows Management Instrumentation) für Sie erstellt. Alles was dafür nötig ist, sind wenige Mausklicks. Anhand der Scripte können Sie dann täglich anfallende Administrationsaufgaben, zum Beispiel das Einholen von Informationen zu bestimmten Hardwarekomponenten, automatisieren.

*
**
Links zu verwandten Themen
**
**
Download

Artikel im Word-Format

Downloadwmimatic.doc
Microsoft Word-Datei

Artikel im PDF-Format

Downloadwmimatic.pdf
PDF-Datei
**

Zurück zur Übersichtsseite

(Englischer Originaltitel: The Scriptomatic Tool - Write WMI Scripts Like the Pros!)

Von "The Scripting Guys"

Wahrscheinlich haben Sie, wie die meisten Menschen, schon oft neidvoll aus dem Fenster auf Ihre Kollegen aus der Systemadministration geblickt, die mit ihrem Jaguar oder Porsche in der Firma vorfahren, um sich auf einen Kurztrip nach Monte Carlo vorzubereiten. Und garantiert haben Sie zu sich selbst gesagt: "Mann, ich weiß mindestens so viel über Systemadministration wie diese Typen. Warum habe ich keine tollen Autos, eine Yacht und eine Rolex?"

Tja, wir wollen Sie in ein kleines Geheimnis einweihen. Das liegt daran, dass die Jungs wissen, wie WMI-Scripte geschrieben werden - und Sie nicht.

Ok, das ist natürlich nicht wahr. Die Wahrheit ist: Wenn Sie lernen WMI-Scripte zu schreiben, dann werden Sie wahrscheinlich trotzdem nicht reich und berühmt (warum hat uns das eigentlich keiner erzählt, bevor wie diesen Job angenommen haben?). WMI-Scripte können Ihr Leben als Systemadministrator jedoch sehr viel einfacher machen. Mit WMI-Scripten können Sie viele der mühsamen und sich wiederholenden Arbeiten durchführen, die Sie einen großen Teil des Tages kosten. So bleibt Ihnen viel mehr Zeit, sich mit anderen Dingen zu beschäftigen.

Natürlich denken Sie jetzt wahrscheinlich: "Warum soll ich meine Zeit mit dem Schreiben von WMI-Scripten verschwenden, wenn diese Scripting-Typen schon jedes mögliche WMI-Script geschrieben und im TechNet Script Center veröffentlicht haben?'

Leider müssen wir Sie enttäuschen - haben wir leider nicht. Wenn Sie sich im Script Center umsehen, werden Sie wahrscheinlich als erstes denken. "Wow, so viele Scripte!". Nach dem Sie wieder zu Atem gekommen sind, sagen Sie dann wahrscheinlich: "Moment mal. Wo sind die WMI-Scripte, die Informationen zu Grafikkarten zurückgeben? Wo sind die Scripte für Informationen zu Netzwerkkarten? Wo sind die Scripte für Informationen zu (hier können Sie alles mögliche einsetzen: CPUs, Mainboards, Batterien, USB-Hubs, IDE-Controller, Tastaturen, Monitoren, Soundkarten etc. etc. etc)?'

Wir gestehen: Die Wahrheit ist, wir waren zu faul, all diese Scripte selbst zu schreiben (außerdem sind es einfach zu viele). Wir haben uns allerdings für die nächstbeste Möglichkeit entschieden: Wir haben den patentfreien Scriptomatic entwickelt - ein Tool, mit dem Sie WMI-Scripte auch dann schreiben können, wenn Sie rein gar nichts über WMI wissen. Laden Sie sich den Scriptomatic hier herunter (englischsprachig).

Heißt das, wir raten Ihnen davon ab, WMI zu lernen? Natürlich nicht - wir schreiben sogar an einem Buch, mit dem Sie WMI-Scripting lernen können. Diejenigen unter Ihnen, die WMI von Grund auf lernen möchten, finden hier ein entsprechendes Online-Tutorial (englischsprachig).

Andererseits sind Sie wahrscheinlich sehr beschäftigt. Sie besuchen Webseiten wie das Script Center, weil Sie nicht wirklich die Zeit haben, WMI zu erlernen und sich alleine hinzusetzen und ein WMI-Script zu schreiben. Und genau darum haben wir den Scriptomatic entwickelt. Wenn Sie mit ein paar Einschränkungen leben können, schreibt der Scriptomatic Ihre WMI-Scripte für Sie. Er wäscht außerdem Ihr Auto, bohnert den Fußboden und schneidet Gemüse.

Na gut, WMI-Scripte schreibt er aber wirklich für Sie.

Der Scriptomatic wird von keinem Microsoft-Supportprogramm oder Supportdienst unterstützt. Er steht Ihnen, so wie er ist, zur Verfügung - ohne jegliche Garantie und Gewährleistung. Microsoft schließt weiterhin jegliche Gewährleistung für Mängel oder die Funktion des Scriptomatic aus. Das gesamte Risiko der Verwendung des Scriptomatic und der Dokumentation liegt bei Ihnen. Microsoft, seine Autoren oder jede andere Person, die mit der Erstellung, Produktion oder Bereitstellung der Scripte zu tun hat, sind für Schäden, egal welcher Art (inklusive, jedoch nicht ausschließlich, Schäden durch entgangene Einnahmen, Störungen des Geschäftsbetriebs, Verlust geschäftlicher Informationen oder Vermögensschäden), die aus der Nutzung oder nicht möglichen Nutzung des Scriptomatic, der Beispielscripte oder der Dokumentation entstehen, nicht verantwortlich - und zwar auch dann nicht, wenn Microsoft die Möglichkeit solcher Schäden bekannt war.

Bevor wir irgendetwas anderes machen, lassen Sie uns kurz klären, was der Scriptomatic ist und was er macht. Der Scriptomatic ist eine Hypertext-Anwendung - das ist im Prinzip eine Webseite, die die Dateierweiterung .HTA verwendet. Wenn Sie ihn starten, lädt er automatisch die Namen von ausgewählten WMI-Klassen (zum Beispiel Win32_SoundDevice und Win32_NetworkAdapter) in ein Kombinationsfeld (das ist eines der bekannten normalen Windows-Felder, die man aufmachen kann, um einen Eintrag aus einer Liste auszuwählen). Nach dem Laden des Scriptomatic wählen Sie einfach eine Klasse aus, und Sie erhalten ein Script, das die Informationen aus der gewünschten Klasse zurückgibt.

Anmerkung: Warum ist der Scriptomatic eine Hypertext-Anwendung? Aus zwei Gründen:
Erstens - wir wollten den Scriptomatic mit Script-Code entwickeln und keine Werkzeuge außer Notepad verwenden. Das war nicht nur der schnellste und einfachste Weg, sonder zeigt auch, dass wir das, was wir hier erzählen, tatsächlich machen - wir verwenden Scripting, um Aufgaben zu erledigen.
Zweitens wollten wir eine Web-Benutzeroberfläche. WMI ist jedoch standardmäßig als "für Scripting nicht sicher" konfiguriert. Wenn Sie WMI in eine normale Webseite (mit der Endung .HTM) einbetten, werden Sie kontinuierlich mit Nachrichtenfenstern genervt, die Sie davor warnen, dass WMI nicht sicher ist. Da HTAs nicht den gleichen strengen Sicherheitsparametern wie normale Webseiten unterliegen, bieten Sie einen guten Weg, diese Warnungen zu vermeiden.
Keine Angst: HTAs ermöglichen es Ihnen zwar, die Warnungen zu umgehen, andere Sicherheitsfeatures (zum Beispiel NTFS-Berechtigungen) können Sie mit ihnen jedoch nicht aushebeln. Wenn Sie beispielsweise Informationen von einem Remotecomputer abfragen, dann müssen Sie auch weiterhin auf dem Remotecomputer Administrator sein.

Der Scriptomatic arbeitet nach zwei Prinzipien. Erstens können Sie ihn verwenden, um über WMI Informationen über WMI selbst abzufragen. Das macht im Moment vielleicht nicht sehr viel Sinn für Sie - daher lassen Sie uns es einfach so sagen: Sie können mit dem Scriptomatic ein einfaches Script schreiben, dass die auf einem Computer vorhandenen WMI-Klassen und deren Eigenschaften und Methoden abfragt. Dieses Prinzip ist die eigentliche Idee hinter dem Scriptomatic - er nutzt WMI, um die verfügbaren Klassen abzufragen, er nutzt dann wiederum WMI, um die möglichen Eigenschaften bestimmter Klassen abzufragen, und erstellt dann automatisch ein Script, das Sie verwenden können, um die Werte dieser Eigenschaften abzurufen.

Das zweite Prinzip basiert darauf, dass die meisten WMI-Scripte nach dem gleichen Muster aufgebaut sind (in unserem englischen Tutorial finden Sie eine Beschreibung dieses Musters). Typischerweise werden WMI-Scripte verwendet, um Informationen über irgendetwas abzurufen - zum Beispiel über einen Monitor, eine USV oder eine Festplatte. In den meisten Fällen arbeiten solche Scripte so: Sie verbinden sich mit einem Computer, verbinden sich mit der entsprechenden Klasse und rufen dann die Werte jeder Eigenschaft der Klasse ab. Mit diesem Script-Muster waren wir in der Lage, eine grundlegende Scriptvorlage zu erstellen. Mit dieser können aus den meisten "interessanten" WMI-Klassen Informationen abgefragt werden (was mit "interessant" gemeint ist, wird gleich erklärt).

Wahrscheinlich interessiert Sie das alles jedoch nicht wirklich - oder? Sie wollen den Scriptomatic einfach in Aktion sehen? Kein Problem! Laden Sie die Datei herunter und starten Sie sie. Dann sehen Sie dieses Fenster:

Bild

Spektakulär? Bleiben Sie ruhig sitzen - nach ein oder zwei Minuten werden die interessantesten und nützlichsten WMI-Klassen angezeigt. Der Scriptomatic sieht dann so aus:

Bild

So, wie schreiben Sie nun ein Script mit dem Scriptomatic? Glauben Sie es oder nicht - hierzu sind nur zwei Schritte nötig. Klicken Sie erstens in das Auswahlfeld mit den verfügbaren Klassennamen und zweitens auf eine Klasse. Der Scriptomatic erstellt dann sofort ein Script wie dieses:

Bild

Wie Sie sehen, gibt der Scriptomatic Ihnen automatisch die Werte für jede einzelne Eigenschaft zurück. Das ist Ihnen zu viel? Sie möchten nur den Wert für eine Eigenschaft? Kein Problem: Sie können das Script jederzeit bearbeiten. Löschen Sie einfach die Programmzeilen, die Sie nicht benötigen.

Tipp des Tages: Der Scriptomatic wurde so entwickelt, dass er Informationen über den lokalen Computer zurückgibt. Was aber, wenn Sie Informationen über einen Remotecomputer benötigen? Ganz einfach - die zweite Zeile jedes Scriptomatic-Scriptes sieht so aus:

strComputer = '.'

Wenn das Script einen Remotecomputer abfragen soll, ändern Sie einfach den Wert '.' in den Namen des Remotecomputers. Wenn Sie zum Beispiel einen Computer mit den Namen MyWebServer abfragen wollen, sieht die zweite Zeile des Scriptes so aus:

strComputer = 'MyWebServer'

Und wenn Sie das Script so praktisch finden, dass Sie es immer wieder verwenden wollen (oder später weiter bearbeiten möchten)? Kein Problem - klicken Sie einfach auf Save und verpassen Sie dem Script einen Namen (stellen Sie sicher, dass Sie die Dateierweiterung .vbs verwenden). Der Scriptomatic speichert unter diesem Namen dann alles, was sich im Textfeld befindet.

Wenn Sie das Script allerdings gleich ausprobieren wollen, klicken Sie einfach auf Run. Es wird ein Befehlszeilenfenster geöffnet, und das Script wird ausgeführt.

Verzichterklärung: Das Ausführen von Scriptomatic-Scripten ist vollkommen sicher. Das einzige, was diese Scripte machen, besteht darin, Informationen zurückzugeben. Keins der erstellten Scripte nimmt irgendeine Konfiguration vor.
Was ist das schlimmste, das Ihnen passieren kann? Sie erstellen ein Script, das Informationen über die installierten Bandlaufwerke zurückgibt. Sie führen das Script aus und. das Script stellt fest, dass keine Bandlaufwerke installiert sind. Was macht das Script dann? Es wird weiter ausgeführt und gibt schlicht und ergreifend keine Informationen aus.

Tipp des Tages Nummer 2: Ursprünglich haben wir den Scriptomatic als schnelle und einfache Möglichkeit zur Scripterstellung entwickelt. Nachdem wir fertig waren, haben wir allerdings festgestellt, dass wir - versehentlich - ein handliches kleines Administrationswerkzeug gebaut haben.
Sie möchten wissen, welcher Dienst auf einem Computer ausgeführt wird? Starten Sie den Scriptomatic, wählen Sie die Klasse Win32_Service aus und klicken Sie auf Run.
Sie möchten Informationen über die freigegebenen Ordner? Wählen Sie Win32_Share aus und klicken Sie auf Run.
Informationen über die installierten Festplatten? Win32_DiskDrive und. Sie wissen schon.
Mit diesem einen Tool (statt mit vielen MMC-Snap-Ins) können Sie alle Arten von interessanten Informationen über einen Computer abfragen. Und wenn Sie Informationen über einen Remotecomputer benötigen, tragen Sie einfach dessen Namen ein.

Wie wir oben schon sagten: Die erstellten Scripte sind vollständig und können sofort verwendet werden. Unten sehen Sie beispielsweise ein Script, das erstellt wird, wenn Sie die Klasse Win32_Registry auswählen (wir gehen davon aus, dass Sie Windows XP verwenden; wenn Sie eine andere Windows-Version verwenden, können die Eigenschaften der Klasse Win32_Registry leicht abweichen):

On Error Resume Next
strComputer = '.'
Set objWMIService = GetObject('winmgmts:\\' & strComputer & '\root\cimv2')
Set colItems = objWMIService.ExecQuery('Select * from Win32_Registry,,48')
For Each objItem in colItems
     Wscript.Echo 'Caption: ' & objItem.Caption
     Wscript.Echo 'CurrentSize: ' & objItem.CurrentSize
     Wscript.Echo 'Description: ' & objItem.Description
     Wscript.Echo 'InstallDate: ' & objItem.InstallDate
     Wscript.Echo 'MaximumSize: ' & objItem.MaximumSize
     Wscript.Echo 'Name: ' & objItem.Name
     Wscript.Echo 'ProposedSize: ' & objItem.ProposedSize
     Wscript.Echo 'Status: ' & objItem.Status
Next 

Die Ausgaben des Scriptes sehen so aus:

Caption: Registry
CurrentSize: 3
Description: Registry
InstallDate: 20011029113047.000000-480
MaximumSize: 41
Name: Microsoft Windows XP Professional|C:\WINNT|\Device\Harddisk0\Partition1
ProposedSize: 41
Status: OK

Ist der Scriptomatic also die Antwort auf all Ihre Bedürfnisse? Nicht ganz. Neben seinen vielen Vorteilen hat der Scriptomatic auch einige Einschränkungen:

Der Scriptomatic verwendet nur eine Untermenge der möglichen Klassen: Es gibt hunderte von WMI-Klassen. Viele sind für Scriptentwickler jedoch nur von geringem Wert - und zwar, weil Sie keine Daten zurückgeben. Hierzu gehören unter anderem viele der CIM-Klassen (zum Beispiel CIM_Service, die keine Daten über die auf einem Computer ausgeführten Dienste zurückgibt). Statt alle Klassen anzuzeigen und Sie die für Sie nützlichen Klassen suchen zu lassen, haben wir die Klassen nach den folgenden Kriterien eingeschränkt: Die Klassen geben Daten zurück, sie befinden sich im Namensraum root\cimV2, und der Klassenname beginnt mit Win32_. So werden circa 98 Prozent der nützlichen und interessanten Klassen abgedeckt, und die Arbeit mit dem Scriptomatic wird viel einfacher. Andererseits bedeutet das natürlich auch, dass 2 Prozent der nützlichen Klassen nicht verwendet werden können (unter Windows Server 2003 sind es mehr, da hier mehr interessante Klassen außerhalb des Namensraumes root\cimv2 liegen).
Für die ersten Schritte in der Scripterstellung unter Windows 2000 ist das sicher kein großes Problem. In zukünftigen Versionen werden wir dann versuchen, weitere Klassen abzudecken.
Sie sind bereits ein erfahrener Scriptprogrammierer und arbeiten mit Windows Server 2003? Bedenken Sie - der Scriptomatic ist nur eine HTA. Das heißt, Sie können ihn natürlich einfach in Notepad öffnen und den Programmcode zum Laden der Klassen ändern.

Der Scriptomatic gibt nicht die Werte aller Eigenschaften zurück: Wir gestehen es: Bei der Erstellung des Scriptomatic haben wir etwas getrickst. Einige WMI-Eigenschaften werden als Arrays zurückgegeben (die Klasse Win32_Printer hat zum Beispiel eine Eigenschaft Capabilities, die einen Array zurückgibt). Das Durchlaufen eines solchen Arrays hätte zusätzlichen Programmcode erfordert; wir hätten bei jeder Eigenschaft prüfen müssen, ob sie ein Array ist, und dann entsprechenden Programmcode hinzufügen müssen. Das ist zwar keine unlösbare Aufgabe, aber uns fehlt die Zeit dazu. Daher erhalten Sie bei Eigenschaften wie Capabilities aus Win32_Printer keinen Wert zurück.
Vielleicht wird dies in Version 2 geändert.

Der Scriptomatic interpretiert die Rückgabewerte nicht: Wenn Sie WMI nach dem Status der auf einem Computer ausgeführten Dienste fragen, erhalten Sie Informationen wie diese:

Dienst A -- wird ausgeführt; Dienst B -- angehalten; Dienst C -- wird ausgeführt

Wenn Sie WMI jedoch nach dem Status der Drucker eines Druckservers fragen, sehen die Informationen so aus:

Drucker A -- 4; Drucker B -- 4; Drucker C -- 7

Mit anderen Worten: Sie erhalten einen Integer-Wert zurück. Es ist Ihre Sache, dem Script Programmcode hinzuzufügen, der den Wert 4 in das Wort Druckt und den Wert 7 in Offline übersetzt. Der Scriptomatic kann dies nicht für Sie erledigen. Außerdem bietet er keine Möglichkeit, die Bedeutung eines Wertes nachzuschlagen. Im Moment müssen Sie hierzu auf das englische WMI SDK zurückgreifen. In Zukunft. tja, lassen Sie uns einfach sagen, dass wir nach Möglichkeiten suchen, diese Informationen in den Scriptomatic zu integrieren.

Der Scriptomatic gibt nur Eigenschaftswerte zurück; er kann nicht zum Ausführen von Methoden verwendet werden: Wenn Sie detaillierte Informationen über die auf einem Computer ausgeführten Dienste benötigen, dann ist der Scriptomatic genau das richtige Tool für Sie. Was aber, wenn Sie einen Dienst anhalten oder starten möchten? Tja, in der momentanen Version ist der Scriptomatic hierzu leider nicht in der Lage - auch wenn dies mit WMI ohne Probleme möglich wäre. Wenn genug Interesse besteht, werden wir jedoch versuchen, diese Funktionalität in zukünftigen Versionen zu integrieren.

Der Scriptomatic arbeitet nur mit WMI: Das scheint erst einmal keine Einschränkung zu sein, da WMI einfach die Möglichkeit ist, Informationen über einen Computer, die installierte Software, die angeschlossenen Geräte usw. zu erhalten. Was mit WMI aber nicht möglich ist (oder zumindest nicht besonders gut), ist der Zugriff auf Informationen, die in Active Directory gespeichert sind - zum Beispiel Benutzerkonten, OUs oder Sicherheitsgruppen.

Lassen Sie sich von diesen Einschränkungen nicht abschrecken. Wir haben Sie hier aufgeführt, damit hinterher niemand sagt: "Hey, ihr habt mir nicht erzählt, dass der Scriptomatic nicht.". Der Scriptomatic ist nicht perfekt - aber ziemlich praktisch. Außerdem ist er ein einfacher und spannender Weg, etwas mehr über das Erstellen von WMI-Scripten zu lernen. Und er ist kostenlos! Was wollen Sie also mehr?

Laden Sie den Scriptomatic einfach herunter, und sehen Sie ob, er Ihr Leben etwas einfacher machen kann. Vielleicht machen Sie ja schon heute Abend auf dem Heimweg einen kleinen Zwischenstopp beim Jaguar-Händler?

Supporthinweise

Welche Produktunterstützung bieten wir für den Scriptomatic an? Absolut keine - Sie sind auf sich allein gestellt. Wir sind allerdings auf jeden Fall an Ihrer Meinung und an Vorschlägen für zukünftige Versionen interessiert. Sie erreichen uns unter der Adresse scripter@microsoft.com (bitte nur in englischer Sprache).

Systemanforderungen

Zugegeben, umfangreiche Tests gab es für den Scriptomatic nicht. Die von uns ausgeführten Tests zeigen jedoch, dass er unter Windows XP, Windows 2000 und Windows Server 2003 problemlos funktionieren sollte. Er arbeitet unter Windows NT 4.0, solange hier Service Pack 6.0, Internet Explorer 5.0, WMI und WSH 5.6 installiert sind. Unter Windows 98 mit Internet Explorer 5.0, WMI und WSH 5.6 sollte er ebenfalls funktionieren.

Wer sind diese "Scripting Guys"?

Die "Scripting Guys" sind Bob Wells, Dean Tsaltas, Ethan Wilansky und Greg Stemp.


Zum SeitenanfangZum Seitenanfang