TechNet Script Center - schreiben Sie ADSI-Scripte mit ADSI-Scriptomatic

Veröffentlicht: 02. Mrz 2004

ADSI-Scriptomatic ist ein Tool, das Sie dabei unterstützt, Scripte für die Verwaltung Ihrer IT-Umgebung zu schreiben. Im Gegensatz zum ursprünglichen Scriptomatic unterstützt ADSI-Scriptomatic die Active Directory Service Interfaces (ADSI) - die Scripting-Technologie für den Microsoft-Verzeichnisdienst. Dadurch können Sie auch für Active Directory-bezogene Verwaltungsvorgänge, zum Beispiel das Löschen von Benutzerkonten und Organisationseinheiten, mit minimalem Aufwand leistungsfähige Scripte erstellen.

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

Artikel im Word-Format

Downloadadmatic.doc
Microsoft Word-Datei

Artikel im PDF-Format

Downloadadmatic.pdf
PDF-Datei
**
Auf dieser Seite
Was ist der ADSI-Scriptomatic?Was ist der ADSI-Scriptomatic?
Wie wird der ADSI-Scriptomatic verwendet?Wie wird der ADSI-Scriptomatic verwendet?
Aber ...Aber ...
Hättet ihr nicht irgendeinen Active Directory-Browser in den Scriptomatic integrieren können?Hättet ihr nicht irgendeinen Active Directory-Browser in den Scriptomatic integrieren können?
Das mit dem Active Directory-Bowser klingt super. Kann ich den haben?Das mit dem Active Directory-Bowser klingt super. Kann ich den haben?
Wäre es nicht besser, den ADSI-Scriptomatic mit dem WMI-Scriptomatic zu kombinieren?Wäre es nicht besser, den ADSI-Scriptomatic mit dem WMI-Scriptomatic zu kombinieren?
Würdet Ihr Scripting Guys sagen, dass die Xbox die beste jemals entwickelte Konsole ist und dass jeder eine zu Hause haben sollte?Würdet Ihr Scripting Guys sagen, dass die Xbox die beste jemals entwickelte Konsole ist und dass jeder eine zu Hause haben sollte?
Wen kann ich bei Fragen zum ADSI-Scriptomatic ansprechen?Wen kann ich bei Fragen zum ADSI-Scriptomatic ansprechen?

Zurück zur Übersichtsseite

(Englischer Originaltitel: ADSI Scriptomatic - At Long Last: Write ADSI Scripts Like the Pros!)

Das Tollste daran, einer von den Scripting Guys zu sein, sind wahrscheinlich die E-Mails unserer Leser. Nachdem wir den Scriptomatic veröffentlicht hatten, haben wir zum Beispiel hunderte Mails wie diese hier erhalten:

Liebe Scripting Guys: Der Scriptomatic ist super!!! Zu schade, dass er keine ADSI-Scripte schreibt.

Liebe Scripting Guys: Während der Lektüre der Readme-Datei, die dem Scriptomatic beiliegt, hätte ich mich fast totgelacht. Sie war so lustig, dass ich beinahe darüber hinweggekommen wäre, dass er keine ADSI-Scripte schreiben kann.

Liebe Scripting Guys: Letzten Monat habe ich mit ein paar Stunden Arbeit 25.000$ bequem von zu Hause aus verdient. Jetzt möchte ich euch gerne zeigen, wie auch Ihr in kurzer Zeit so viel Geld verdienen könnt. Mit meinem neuen, revolutionären System kann jeder in kurzer Zeit Millionär werden .
PS: Wisst ihr, dass der Scriptomatic gar keine ADSI-Scripte schreiben kann?

Nachdem wir unsere Tränen getrocknet hatten, stellen wir fest, dass eine solche Reaktion zu erwarten gewesen war. Warum war der Scriptomatic so beliebt? Ganz klar: WMI ist als komplexe Technologie bekannt, die mehr etwas für Computerwissenschaftler ist als für die Menschen, die Scripte tatsächlich schreiben. Er war nicht nur ein Erfolg, weil er Scripte geschrieben hat, sondern auch, weil er gezeigt hat, dass WMI-Scripte gar nicht so schwer zu entwickeln sind. Die meisten dieser Scripte arbeiten nach dem gleichen Muster.

Wie ist das also mit ADSI (Active Directory Service Interfaces) - der Scripting-Technologie, mit der Active Directory verwaltet werden kann? Wiederum ganz klar: Auch ADSI ist als kompliziert bekannt. Viele Administratoren denken sich sicher "Ich weiß, dass ich mit ADSI eine Menge toller Dinge machen kann. Aber wie?'. Es ist also kein Wunder, dass die Leute einen ADSI-Scriptomatic haben wollten.

In Wahrheit ist ADSI natürlich nicht so kompliziert, und die Scripting Guys sind auch nicht wirklich schlauer als die meisten Menschen (wenn wir das wären, würden wir für diese Sachen hier besser bezahlt werden). Wie bei WMI auch, denken die meisten Administratoren nur, dass ADSI kompliziert ist, und versuchen es daher gar nicht erst. Wie bei WMI, brauchen sie einfach nur etwas für einen ersten Schritt - etwas, das ihnen bei den ersten Versuchen hilft ... eben einen Scriptomatic.

Tja, man könnte sagen "Sie haben gesprochen, und die Scripting Guys haben reagiert". Konsequenterweise haben wir dann auch all unsere Projekte und Aufgaben auf Eis gelegt und in den letzten 6 Monaten Tag und Nacht gearbeitet, um . ok, wir geben es zu - nicht um einen ADSI-Scriptomatic zu erstellen. Vor ein paar Tagen fiel uns jedoch wieder dieses ADSI-Ding ein, und wir haben umgehend etwas gebastelt. Hier ist er also nun - der lang erwartete, oft angefragte ADSI-Scriptomatic. Das Wundertool, das ADSI-Scripte für Sie schreibt (wehe, jemand schreibt uns eine Mail und beschwert sich darüber, dass er keine WMI-Scripte schreibt .)

Was ist der ADSI-Scriptomatic?

Hier können Sie den ADSI-Scriptomatic herunterladen (englischsprachig).

Der ADSI Scriptomatic hilft Ihnen beim Schreiben von ADSI-Scripten, mit denen Active Directory verwaltet werden kann. Außerdem zeigt er Ihnen, dass die meisten ADSI-Scripte (wie bei WMI) nach dem gleichen Muster arbeiten. Der ADSI-Scriptomatic hilft Ihnen zum Beispiel, Scripte zu erstellen, die Benutzerkonten löschen und bei Scripten, die OUs löschen. Wenn Sie beide Scripte vergleichen, sehen Sie etwas sehr Interessantes: Sie sind praktisch identisch.

Der Grund hierfür ist, dass ADSI zum Löschen von Objekten immer das gleiche Verfahren nutzt. Wenn Sie sich also etwas Zeit nehmen und die von ADSI-Scriptomatic erstellen Scripte genauer studieren - und wenn Sie das ADSI-Kapitel des englischsprachigen Windows 2000 Scripting Guide lesen - wird Ihnen schnell klar werden, wie Sie praktisch alles aus Active Directory löschen können.

Da wir den ADSI-Scriptomatic einfach halten wollten, haben wir die Objekte, mit denen Sie arbeiten können, eingeschränkt. Er kann ein Script schreiben, das ein Benutzerkonto löscht - er kann jedoch kein Script schreiben, das einen Drucker veröffentlicht. Was macht das aber schon? Wenn Sie das Muster von ADSI-Scripten verstanden haben, dann können Sie Ihr eigenes Script schreiben, um Drucker zu veröffentlichen (ok, ok . wir denken über einen Drucker-Löschen-Veröffentlichen-Sciptomatic nach - warten Sie aber besser nicht darauf).

Sie glauben nur was Sie sehen? Hier ist ein Script (vom ADSI-Scriptomatic erstellt), das ein Benutzerkonto erstellt:

		   strContainer = ''
		   strName = 'EzAdUser'
		   '***********************************************
		   '*         Connect to a container              *
		   '***********************************************
		   Set objRootDSE = GetObject('LDAP://rootDSE')
		   If strContainer = '' Then
		   Set objContainer = GetObject('LDAP://' & _
		   objRootDSE.Get('defaultNamingContext'))
		   Else
		   Set objContainer = GetObject('LDAP://' & strContainer & ',' & _
		   objRootDSE.Get('defaultNamingContext'))
		   End If
		   '***********************************************
		   '*       End connect to a container            *
		   '***********************************************
		   objContainer.Delete 'user', 'cn=' & strName
	   

Und hier sehen Sie ein Script, das eine Gruppe löscht:

		   strContainer = ''
		   strName = 'EzAdGroup'
		   '***********************************************
		   '*         Connect to a container              *
		   '***********************************************
		   Set objRootDSE = GetObject('LDAP://rootDSE')
		   If strContainer = '' Then
		   Set objContainer = GetObject('LDAP://' & _
		   objRootDSE.Get('defaultNamingContext'))
		   Else
		   Set objContainer = GetObject('LDAP://' & strContainer & ',' & _
		   objRootDSE.Get('defaultNamingContext'))
		   End If
		   '***********************************************
		   '*       End connect to a container            *
		   '***********************************************
		   objContainer.Delete 'group', 'cn=' & strName
	   

Wo liegt der Unterschied zwischen den beiden Scripten? In den zwei fettgedruckten Begriffen:

Der Gruppenname (EzAdGroup), im Gegensatz zum Benutzernamen im ersten Script (EzAdUser).

Der Typ des zu löschenden Objekts (group oder user).

Das ist alles. Mehr Unterschiede gibt es nicht.

Jetzt denken Sie: "Moment mal! Die haben doch gesagt, wenn ich diese beiden Scripte betrachte, dann kann ich ein eigenes Script schreiben, um einen veröffentlichten Drucker zu löschen. Wie mache ich das jetzt also?". Bleiben Sie ruhig, atmen Sie durch, keine Panik. Lassen Sie uns annehmen, der Drucker heißt EzAdPrinter, und der Typ des zu löschenden Objekts ist printQueue. Nehmen Sie sich 5 Minuten Zeit, und versuchen Sie nun ein Script zu schreiben, das den Drucker EzAdPrinter löscht. Wir warten hier auf Sie.

Ok, die Zeit ist um. Ihr Script sollte so aussehen:

		   strContainer = ''
		   strName = 'EzAdPrinter'
		   '***********************************************
		   '*         Connect to a container              *
		   '***********************************************
		   Set objRootDSE = GetObject('LDAP://rootDSE')
		   If strContainer = '' Then
		   Set objContainer = GetObject('LDAP://' & _
		   objRootDSE.Get('defaultNamingContext'))
		   Else
		   Set objContainer = GetObject('LDAP://' & strContainer & ',' & _
		   objRootDSE.Get('defaultNamingContext'))
		   End If
		   '***********************************************
		   '*       End connect to a container            *
		   '***********************************************
		   objContainer.Delete 'printQueue', 'cn=' & strName
	   

Wenn es so aussieht, haben Sie das Muster hinter den meisten ADSI-Scripten schon erkannt. Es könnte natürlich aus sein, dass Sie gemogelt haben. Das wäre vollkommen in Ordnung - der ADSI-Scriptomatic ist ja schließlich als Mogel-Tool gedacht.

Sind Sie immer noch nicht überzeugt, dass der ADSI-Scriptomatic die größte Innovation in der Geschichte der Menschheit ist? Vergleichen Sie selbst - wie wäre es mit einem Vergleich ADSI-Scriptomatic/Xbox?

Feature ADSI Scriptomatic Xbox 

Erstellt Scripte, die Eigenschaften von Active Directory-Objekten bearbeiten können. 

Ja 

Nein 

Erstellt Scripte, die Objekte aus Active Directory löschen können. 

Ja 

Nein 

Erstellt Scripte, die zum Lesen der Eigenschaften von Active Directory-Objekten verwendet werden können. 

Ja 

Nein 

Erstellt Scripte, die neue Active Directory-Objekte erstellen können. 

Ja 

Nein 

Ermöglicht es Ihnen, Videospiele mit Freunden über das Internet zu spielen. 

Nein 

Ja 

Ermöglicht es Ihnen, Halo und Mech Assault zu spielen. 

Ja * 

Ja 

Wurde von denselben Leuten entwickelt, die den Original-Scriptomatic erstellt haben. 

Ja 

Ja * 

Ist kostenlos. 

Ja 

Das würde Ihnen so passen . J 

* Mit Ja meinen wir eigentlich Nein.

Das Ergebnis spricht für sich: Der ADSI-Scriptomatic ist der klare Gewinner. Laden Sie sich den ADSI- Scriptomatic herunter und schmeißen Sie Ihre Xbox weg.

Wichtige Klarstellung: Die Scripting Guys wurden gerade daran... äh... erinnert, dass Microsoft (das Unternehmen, das unsere Gehaltschecks ausstellt) auch die Xbox produziert. Bitte schmeißen Sie Ihre Xbox nicht weg; die Xbox ist das beste Videospiel im Universum. Tatsächlich ist es sogar so, dass Sie - da Sie ja jetzt eine Menge Geld für einen ADSI-Scriptprogrammierer sparen - eine weitere Xbox kaufen sollten (oder zwei oder drei).

Zum SeitenanfangZum Seitenanfang

Wie wird der ADSI-Scriptomatic verwendet?

Wie sein Bruder, der originale Scriptomatic, ist der ADSI-Scriptomatic eine HTA - eine Hypertext- Anwendung. Das bedeutet, dass der ADSI-Scriptomatic nur eine Webseite ist (schauen Sie sich den Code an - nur VBScript und HTML), die als eigenständige Anwendung ausgeführt werden kann. Um ihn zu starten, klicken Sie einfach doppelt auf EzAdScriptomatic.hta. Sie sehen dann ein Fenster, das so aussieht:

Bild

Klicken Sie in das Feld Select a task, und der ADSI Scriptomatic zeigt die vier Hauptaufgaben an, die Sie mit ADSI durchführen können:

Ein Objekt erstellen (Create an object)

Eigenschaften eines Objekts schreiben (Write to an object)

Eigenschaften eines Objekts lesen (Read an object's properties)

Ein Objekt löschen (Delete an object)

Nachdem Sie eine Aufgabe ausgewählt haben, wählen Sie die Objektklasse im Feld Select a class aus:

Benutzer (User)

Computer

Kontakt (Contact)

Gruppe (Group)

Organisationseinheit (Organizational Unit)

ADSI-Scriptomatic erstellt dann das entsprechende Script. Wenn Sie zum Beispiel Create an Object und Computer ausgewählt haben, sollte das so aussehen:

Bild

So einfach können Sie ein Script zur Erstellung von Computerkonten schreiben. Sie können es jetzt ausführen (klicken Sie einfach auf Run), speichern (klicken Sie auf Save) oder bearbeiten. Versuchen Sie das mal mit einer Xbox!

Wichtige Klarstellung: Wir wurden gerade daran... äh. erinnert, dass die Xbox Scripte speichern kann, wenn der Kunde dies möchte.

Zum SeitenanfangZum Seitenanfang

Aber ...

Im Computerbereich gibt es doch eigentlich immer ein "aber", oder? Aber keine Sorge - dieses "aber" ist nicht wirklich schlimm (nicht so wie die typischen "aber" bei vielen Anwendungen, die sich ungefähr so lesen: "Sie können versuchen diese Software zu verwenden, aber dies wird nicht nur fehlschlagen - Sie werden auch die Lizenzvereinbarungen verletzen").
Hier geht es nur um die Unterschiede zwischen dem Original-WMI-Scriptomatic und dem ADSI-Scriptomatic.

Der Original-Scriptomatic war als Lern-Tool gedacht: Wir wollten zeigen, dass die meisten WMI-Scripte gleich arbeiten. Nachdem der Scriptomatic fertig war, stellten wir fest, dass wir versehentlich ein nützliches Administrationswerkzeug erstellt hatten (und versehentlich auch zwei menschliche Klone - unsere Anwälte haben uns jedoch geraten, darüber Stillschweigen zu bewahren). Die vom Scriptomatic erstellen Scripte können so, wie sie erstellt werden, sofort benutzt werden. Warum ist das so? Ganz einfach - mit dem Punkt als Computernamen (.) fragt WMI den lokalen Computer ab. Daher mussten wir uns beim ersten Scriptomatic keine Gedanken über den Computernamen machen. Er verwendet einfach den Punkt und kann jedes Script sofort ausführen. Das ist auch der Grund dafür, dass wir den Schalter Run hinzugefügt haben.

Der ADSI-Scriptomatic hat ebenfalls einen Run-Schalter. Für ADSI können wir jedoch keinen Standardnamen verwenden. Warum nicht? Sehen Sie sich zum Beispiel das Script an, das ein neues Benutzerkonto erstellt. Sie können es zwar einmal ausführen, und der neue Benutzer mit dem Namen EzAdUser wird dann auch in Ihrer Domäne erstellt - was passiert aber, wenn Sie das Script ein zweites Mal ausführen? Es schlägt fehl. Und zwar, weil ein Benutzer mit dem Namen EzAdUser schon vorhanden ist (Active Directory legt keine doppelten Benutzerkonten an).

Heißt das, wenn ich ADSI-Scriptomatic einmal verwende und einen Benutzer mit dem Namen EzAdUser angelegt habe, dann kann ich ihn wegschmeißen? Nun, das wäre ein interessanter neuer Ansatz für den Softwareverkauf: einmal verwenden, dann wegschmeißen und neu kaufen. Glücklicherweise ist das nicht notwendig. Es reicht, wenn Sie das Script vor dem Ausführen verändern. Tragen Sie einfach einen neuen Benutzernamen ein.

Das können Sie sich nicht merken? Tja, das dachten wir uns schon. Daher haben wir dem ADSI-Scriptomatic eine kleine Online-Hilfe hinzugefügt. Wenn Sie genau hinschauen, sehen Sie einen kleinen Hinweis mit einem Hyperlink, wenn Sie versuchen ein Benutzerkonto zu erstellen: Read this before running the create an object - user script.

Bild

Was passiert, wenn Sie auf den Link klicken? Es geht ein Fenster auf, das Sie daran erinnert, was Sie vor mit dem Script machen müssen:

Bild

Zum SeitenanfangZum Seitenanfang

Hättet ihr nicht irgendeinen Active Directory-Browser in den Scriptomatic integrieren können?

Ja, hätten wir. In dem ersten Entwurf war sogar einer enthalten. Wenn der Scriptomatic gestartet wurde, hat er alle benötigten Active Directory-Informationen abgerufen. Das führte allerdings zu zwei Problemen:

Erstens dauerte dies in großen Netzwerken (wie zum Beispiel bei Microsoft) mehrere Minuten. Erst dann konnte der Scriptomatic benutzt werden. Dieser war jedoch als kleines und schnelles Tool gedacht.

Und zweitens war es für diese Funktion erforderlich mit dem Netzwerk verbunden und mit einem Active Directory-Administratorkonto angemeldet zu sein. An Ihrem Arbeitsplatz ist das wahrscheinlich kein Problem - aber was ist, wenn Sie zu Hause oder im Zug sind?

Aus diesen Gründen haben wir uns entschieden, diese Funktion wieder zu entfernen. Sie können den ADSI-Scriptomatic nun jederzeit und überall nutzen.

Anmerkung: Was meinen wir mit "jederzeit und überall"? Wenn Sie mindestens den Internet Explorer 5.0 verwenden, dann sollte der Scriptomatic funktionieren - oder zumindest können Sie ihn starten und Scripte erstellen. Um die Scripte auch ausführen zu können, muss ADSI installiert sein. Wenn Sie Windows 2000 oder höher verwenden, ist ADSI definitiv installiert. Wenn Sie Windows 98 oder Windows NT 4.0 nutzen, können Sie die Verzeichnisdienst-Clienterweiterung herunterladen. Weitere Informationen hierzu finden Sie in der Script-Center-FAQ.

Zum SeitenanfangZum Seitenanfang

Das mit dem Active Directory-Bowser klingt super. Kann ich den haben?

Wenn Sie tatsächlich daran interessiert sind, dann schreiben Sie uns unter scripter@microsoft.com (bitte nur in englischer Sprache). Wenn sich genügend Interessenten finden, versuchen wir den Browser zur Verfügung zu stellen.

Zum SeitenanfangZum Seitenanfang

Wäre es nicht besser, den ADSI-Scriptomatic mit dem WMI-Scriptomatic zu kombinieren?

Wir haben zwar darüber nachgedacht, uns aber dann doch für eine separate Lösung entschieden. Eines der tollen Features der beiden Scriptomatics ist, dass sie beide einfach zu nutzen sind. Als HTAs haben sie auch noch einen Bildungswert: Sie können sie in Notepad öffnen und den Programmcode anschauen - und auch verändern. Wenn wir beide kombiniert hätten, hätten wir ein Tool, das nicht so geradlinig zu verwenden wäre und das möglicherweise an die Grenzen einer HTA gestoßen wäre. Groß und kompliziert ist aber nicht das, was wir mit den Scriptomatics erreichen wollen.

Außerdem arbeiten wir an einigen weiteren Tools, die jedoch noch nicht fertig sind. Statt auf diese Tools zu warten und dann den ADSI-Scriptomatic mit ihnen zu kombinieren, haben wir uns dazu entschieden, den ADSI-Scriptomatic jetzt zu veröffentlichen. Es könnte gut sein, dass wir - nachdem wir all die weiteren Tools fertig gestellt haben - eine Komplettversion veröffentlichen.

Von welchen Tools ist hier die Rede? Wir arbeiten an Folgendem:

Scriptomatic 2.0: Ermöglicht eine Scriptausgabe in eine Text- oder Excel-Datei und die Verwendung von Jscript, Perl oder Python.

Comparomatic: Ein elegantes, kleines WMI-Tool für Menschen, die Computer mit verschiedenen Windows-Versionen betreuen (Windows 98, Windows 2000, Windows XP, etc.).

Logonomatic: Ein praktisches Tool zum Erstellen von Anmeldescripts.

Eventomatic: Hilft Ihnen beim Erstellen von Scripten zur Überwachung von WMI-Ereignissen.

Nein, wir können nicht sagen wann diese Tools fertig sind. Bis zum Scriptomatic 2.0 und zum Comparomatic wird es aber wahrscheinlich nicht mehr lange dauern.

Zum SeitenanfangZum Seitenanfang

Würdet Ihr Scripting Guys sagen, dass die Xbox die beste jemals entwickelte Konsole ist und dass jeder eine zu Hause haben sollte?

Ja. Definitiv.

Zum SeitenanfangZum Seitenanfang

Wen kann ich bei Fragen zum ADSI-Scriptomatic ansprechen?

Wir bieten keinen offiziellen Support für den ADSI-Scriptomatic an. Sie verwenden ihn auf eigenes Risiko. Inoffiziell versuchen wir allerdings so viel wie möglich zu helfen. Wenn Sie Fragen oder Anregungen zum ADSI-Scriptomatic haben, schreiben Sie uns unter scripter@microsoft.com (bitte nur in englischer Sprache).


Zum SeitenanfangZum Seitenanfang