Aus Sicht des Leiters der EDV-Abteilung (Chief Information Officer, CIO) sind Netzwerke, die auf TCP/IP (Transmission Control Protocol/Internet Protocol) basieren, das Nervensystem vieler Organisationen - ihre einwandfreie Funktion ist für die Kommunikation im Unternehmen, die Kundenzufriedenheit, die Mitarbeitermoral und das Endergebnis von entscheidender Bedeutung. Aufgrund des Umfangs und der Komplexität dieser Netzwerke und der Zugänglichkeit des TCP/IP-Protokollstacks für Skripts sind die beim Konfigurieren und Verwalten der TCP/IP-Netzwerkkomponenten einbezogenen Aufgaben häufig geeignete Kandidaten für die Automatisierung. Aus der Sicht der Administratoren scheint die Verwaltung eines TCP/IP-Netzwerks manchmal aus stundenlanger Schinderei zu bestehen, die durch Momente hektischer Schadenskontrolle unterbrochen wird. Dieses Dokument beschreibt hauptsächlich Möglichkeiten, wie diese ereignislosen Stunden verlässlicher, strukturierter und produktiver verlaufen können, wodurch sich obendrein das Auftreten kritischer Momente reduzieren sollte. Indem Sie für die Durchführung administrativer Vorgänge Skripts erstellen, können Sie die durch wiederkehrende Aufgaben entstehende Langeweile vermeiden und mehr Zeit für wichtigere Aufgaben verwenden. Das Ersetzen manueller Verfahren, die der Gefahr von Bedienerfehlern oder der Vergesslichkeit ausgesetzt sind, durch eine automatisierte Wartung kann auch das Risiko von Angriffen durch böswillige Viren und Würmer sowie die Wahrscheinlichkeit von Hardwarefehlern verringern. Wenn Sie die Ausführung der Skripts so planen, dass sie außerhalb der Spitzenzeiten und ohne Eingriffe des Administrators ablaufen, kann dies helfen, Staus im Netzwerkverkehr und Unannehmlichkeiten für die Benutzer zu vermeiden. Im Großen und Ganzen kann eine wohlstrukturierte Auswahl von Skripts zusammen mit den entsprechenden Microsoft® Windows® GUI- und Befehlszeilentools die Netzwerkoperationen standardisieren und systematisieren, wodurch Produktivität, Zuverlässigkeit und Moral erhöht werden. Wie bei den meisten nützlichen Dingen ist auch die in diesem Dokument beschriebene Skripterstellung mit einem gewissen Aufwand verbunden. Die Sprache, Microsoft® Visual Basic® Scripting Edition (VBScript), die Skripterstellungsumgebung, Microsoft® Windows® Script Host (WSH) und die Automatisierungsbibliothek, Windows Management Instrumentation (WMI), erfordern für ihre Handhabung normalerweise ausgiebigere Untersuchungen als die GUI- oder Befehlszeilentools. Obwohl die Skripterstellung eine Form der Programmierung darstellt, erfordert sie dennoch kein mehrjähriges Studium der Informatik, um damit geübt und produktiv umgehen zu können. Tausende Systemadministratoren und Techniker auf der ganzen Welt haben die Skriptsprache erlernt, sie zu ihrem Vorteil eingesetzt und erweitert, die jetzt eine Gemeinschaft begründen, die Websites, Newsgroups und andere unschätzbare Ressourcen für diejenigen anbieten, die von ihren Erfahrungen profitieren möchten. Auf dieser Seite
Umfang und Gliederung dieses DokumentsDie Windows-Betriebssystemfamilie bietet eine Vielzahl von Tools zum Verwalten von TCP/IP-Netzwerken. Dieses Dokument konzentriert sich auf die Tools, mit denen Sie Aufgaben auf TCP/IP-Clients automatisieren können. Es behandelt Skripterstellungstools und -techniken, mit denen Sie mit den wichtigsten clientseitigen Elementen von TCP/IP-Netzwerken arbeiten können, einschließlich DHCP (Dynamic Host Configuration Protocol), DNS (Domain Name System) und WINS (Windows Internet Name Service). Jeder Abschnitt bietet ausführliche Erläuterungen und Skriptbeispiele mit entsprechenden Befehlszeilentools und Registrierungsschlüsseln, die am Ende in Tabellen aufgeführt sind. Beginnend mit den grundlegenden Verfahren zur Skripterstellung zeigt dieses Dokument im weiteren Verlauf zunehmend komplexere Variationen, die durch neue Funktionen geboten werden. In einigen Bereichen werden allgemein angewandte Szenarien beschrieben, die die Kombination verschiedener Skriptansätze erfordern. Ziel ist es jedoch nicht, tolle Tricks für die Skripterstellung zu zeigen, sondern flexible Möglichkeiten zum Automatisieren realer Netzwerkaufgaben zu bieten, mit denen sich Systemadministratoren im Allgemeinen auseinandersetzen müssen. In diesem Dokument werden die folgenden Themen behandelt:
Verwenden von VBScript, WSH und WMI in SkriptbeispielenDa VBScript die beliebteste Sprache zum Automatisieren der Windows-Verwaltung ist, sind alle Skriptbeispiele in diesem Dokument in dieser Sprache geschrieben. Wenn Sie eher mit Microsoft JScript®, Perl oder anderen Skriptsprachen arbeiten, erweist sich die Übersetzung in den meisten Fällen als einfach, da ähnliche Verfahren gelten. Diese Skripts werden alle unter WSH (Windows Script Host) ausgeführt, der administrativen Skriptumgebung in Windows. Daher können Sie jede Skriptsprache verwenden, für die ein WSH-Skriptmodul verfügbar ist. VBScript und WSH bieten jedoch nur die Sprache und die Umgebung für die Skripterstellung. Ein Großteil der Funktionen zum Abrufen der Konfigurationsinformationen und zum Durchführen von Änderungen ist in WMI (Windows Management Instrumentation) enthalten, das Hunderte Klassen bereitstellt, mit deren Hilfe Sie mit Hardware und Software arbeiten können. Dieses Dokument konzentriert sich nur auf einige wenige WMI-Klassen, die fast alle TCP/IP-Clientfunktionen in WMI enthalten. Die wichtigste Klasse ist Win32_NetworkAdapterConfiguration, die die meisten in diesem Dokument besprochenen Einstellungen enthält. Instanzen von Win32_NetworkAdapterConfiguration haben eine 1:1-Beziehung zu Instanzen von Win32_NetworkAdapter, d. h. jedes Objekt, das die Konfigurationseinstellungen für einen Netzwerkadapter darstellt, besitzt ein entsprechendes Objekt, das die Hardware dieses Netzwerkadapters repräsentiert. Win32_NetworkAdapterSetting, eine Verknüpfungsklasse, stellt die Beziehung zwischen den vorherigen beiden Klassen dar. Win32_NetworkAdapterConfiguration umfasst 61 schreibgeschützte Eigenschaften und 41 Methoden zum Ändern der Eigenschaften. Win32_NetworkAdapter und Win32_NetworkAdapterSetting enthalten dagegen nur schreibgeschützte Eigenschaften. In Tabelle 1 sind diese wichtigen Klassen sowie einige zusätzliche Klassen hervorgehoben, die eine unterschiedliche Anzahl an schreibgeschützten Eigenschaften enthalten. Unter diesen Klassen enthalten nur Win32_ComputerSystem und Win32_OperatingSystem Methoden sowie einige wenige Lese-/Schreibeigenschaften. Tabelle 1 WMI-Klassen, die TCP/IP-Clientfunktionen bereitstellen
Obwohl die Namen der WMI-Klassen Win32_NetworkClient, Win32_NetworkConnection und Win32_NetworkLoginProfile eine Beziehung zu Themen in diesem Dokument vermuten lassen, sind sie im Bezug auf das Thema dieses Dokuments nicht direkt von Bedeutung. Win32_NetworkConnection ruft z. B. Einstellungen ab, die sich auf freigegebene Netzwerkressourcen beziehen, die momentan mit dem Computer verbunden sind und nicht auf die Art von Netzwerkverbindungen, die von Netzwerk- und DFÜ-Verbindungen verwaltet werden. Dieses Dokument bietet viele, jedoch nicht alle Details zu den ausgewählten WMI-Klassen. Weitere Informationen zu WMI-Klassen, einschließlich einer ausführlicheren Liste der Klassen, finden Sie im WMI SDK des Microsoft Developers Network (MSDN) unter http://go.microsoft.com/fwlink/?LinkId=24766 (nur auf Englisch verfügbar). Technisches Niveau dieses DokumentsDieses Dokument ist für System- und Netzwerkadministratoren, Techniker und Architekten gedacht, die die Skripterstellung bei ihrer Arbeit bereits verwenden oder zukünftig verwenden möchten. Es setzt eine gewisse Vertrautheit mit der Skripterstellung sowie grundlegendes Wissen zu Netzwerken voraus. Obwohl nicht versucht wird, Grundlagen der Skripterstellung oder von Netzwerken zu vermitteln, werden Verfahren zur Skripterstellung detailliert erläutert, wenn diese eingesetzt werden. Nicht behandelte ThemenDieses Dokument umfasst weder die Grundlagen zur Skripterstellung noch zu TCP/IP-Netzwerken. Informationen zu grundlegenden Verfahren der Skripterstellung für die Systemverwaltung finden Sie im Microsoft® Windows ® 2000 Scripting-Handbuch unter /germany/technet/datenbank/articles/600356.mspx sowie in den zahlreichen Beispielen im TechNet Script Center unter http://go.microsoft.com/fwlink/?LinkId=24771 (nur auf Englisch verfügbar). Informationen zu TCP/IP-Netzwerken unter Windows finden Sie in der Microsoft® Windows Server™-Hilfe, die im Windows Server-Betriebssystem enthalten ist sowie im Microsoft ® Windows 2000 Server Resource Kit (nur auf Englisch verfügbar). Der Anwendungsbereich dieses Dokuments beschränkt sich auf die Skripterstellung für TCP/IP-Clients. Die Skripterstellung für DHCP-, DNS- und WINS-Server, für Router sowie für die Netzwerküberwachung wird nicht behandelt. Die zugehörigen Themen zur Skripterstellung für die Domänenverwaltung sowie für Verzeichnisdienste sind ebenfalls nicht enthalten. Informationen zu diesen Themen können Sie jedoch im Windows 2000 Scripting-Handbuch unter /germany/technet/datenbank/articles/600356.mspx sowie in den Beispielskripts im TechNet Script Center unter http://go.microsoft.com/fwlink/?LinkId=24771 (nur auf Englisch verfügbar) finden.
Befehlszeilentools und BatchdateienDa sich dieses Dokument auf die Skripterstellung für WMI mit VBScript und WSH konzentriert, wird die Verwendung der Befehlzeilentools nicht beschrieben, die im Windows-Betriebssystem oder im Windows 2000 Resource Kit enthalten sind. Auch das Erstellen von Batchdateien wird hier nicht erläutert. Diese Themen werden in der Dokumentation dieser Produkte sowie in zahlreichen anderen Büchern behandelt. Am Ende der einzelnen Abschnitte werden die relevanten Befehlszeilentools jedoch aufgeführt. Aufbau von SkriptsDie in diesem Dokument enthaltenen Beispielskripts folgen einigen allgemeinen Mustern: Konstanten und VariablenIn den meisten Fällen werden Konstanten und einige Variablen (normalerweise die zu ändernden Variablen) am Anfang des Skripts initialisiert. Es werden jedoch nicht alle Variablen vor der Verwendung initialisiert. Da VBScript es nicht erfordert, werden kaum Variablen deklariert, wodurch die Skripts kürzer ausfallen. Als Hilfe beim Debuggen können Sie beim Schreiben eigener Skripts alle Variablen explizit mit der Anweisung Dim deklarieren und diese Deklaration mithilfe Option Explicit erzwingen. Herstellen der Verbindung zum WMI-DienstFast alle Skripts beginnen damit, die Verbindung zum WMI-Dienst herzustellen, um dann einen Verweis auf Instanzen einer oder mehrerer WMI-Klassen abzurufen. Linearer AusführungspfadDie meisten Skripts folgen einem relativ linearen Ausführungspfad, damit sie einfacher zu verstehen und nachzuverfolgen sind. Nur ein paar der längeren und komplexeren Skripts sind in Unterroutinen und Funktionen unterteilt. In einigen Situationen wäre ein modularer Ansatz möglicherweise anpassbarer und flexibler. Wenn Sie der Meinung sind, dass Sie einen Codeabschnitt häufiger verwenden oder Sie diesen an verschiedenen Stellen im Skript aufrufen möchten, sollten Sie erwägen, diesen Codeabschnitt in eine Unterroutine oder Funktion umzuwandeln, die in anderen Skripts wiederverwendet werden kann. Bei IT-Gruppen, in denen mehrere Personen Skripts schreiben oder verwenden, hilft die Standardisierung von Skriptformaten und -konventionen beim Vermeiden von Verwirrungen und verbessert somit die Konsistenz des Codes. VBScript-FehlerbehandlungSkripts, die Änderungen vornehmen oder Verbindungen zu Remotecomputern herstellen, verwenden die VBScript-Anweisung "On Error Resume Next" zusammen mit einfachen Formen der Fehlerbehandlung. "On Error Resume Next" blendet Fehler im Skript aus, indem das Skript die Ausführung hinter der Zeile fortsetzen kann, in der der Fehler aufgetreten ist. Beim Debuggen kann es hilfreich sein, die "On Error Resume Next"-Anweisung temporär als Kommentar zu kennzeichnen, indem an den Anfang der Zeile ein Hochkomma gestellt wird ('). Das Versehen dieser Anweisung mit dem Kommentarzeichen führt bei Fehlern zum Abbruch des Skripts mit einer Fehlermeldung, die Ihnen beim Lokalisieren des Problems helfen kann. Die meisten dieser Skripts prüfen, ob der Computer im Netzwerk verfügbar ist. Ist dies der Fall, prüfen die Skripts außerdem, ob sie auf diesem Computer eine Verbindung zum WMI-Dienst herstellen können, da WMI möglicherweise auf Clients mit älteren Versionen des Betriebssystems nicht installiert ist. In anderen Bereichen, in denen häufiger Laufzeitfehler erwartet werden, ist möglicherweise eine stabilere Fehlerbehandlung angebracht. Beispielskripts sind Codebeispiele, keine ToolsDie in diesem Dokument enthaltenen Beispielskripts werden als Codebeispiele dargestellt, die sich auf eine oder mehrere Aufgaben konzentrieren. Sie können diese Beispiele aufgliedern, analysieren und neu zusammenfügen, um Skripts zu erstellen, die Ihren eigenen Anforderungen entsprechen. Diese Skripts wurden nicht als abgeschlossene, stabile Tools entwickelt, die viele verschiedene Aufgaben erledigen können und für alle Eventualitäten gerüstet sind. Eine implizierte Annahme bei den Skripts ist, dass diese von Administratoren mit Kenntnissen zur Skripterstellung ausgeführt werden, die in der Lage sind, Skripts zu bearbeiten, um bei Bedarf Parameter zu ändern. Mit wenigen Ausnahmen akzeptieren die Skripts keine Befehlszeilenargumente, wie es bei vielen der komplexeren Skripts der Fall ist, die in Windows enthalten sind. Außerdem versuchen sie nicht, alle Eventualitäten oder möglichen Fehler zu behandeln.
Ausführen von BeispielskriptsFühren Sie die folgenden Schritte durch, um die in diesem Dokument enthaltenen Beispielskripts auszuführen:
In diesem Dokument wird immer davon ausgegangen, dass sich die Skripts im Ordner C:\Scripts befinden. Sie können die Skripts jedoch in jedem beliebigen Ordner ablegen. Wenn Sie Ihre Umgebung für die Skripterstellung einrichten, wird empfohlen, dass Sie Cscript.exe als WSH-Standardskripthost festlegen, da sämtliche Skripts für die Ausführung über die Befehlszeile entworfen wurden. Die Vorgehensweise wird nachfolgend erläutert.
Wenn Sie ein Skript ausführen, das Änderungen vornimmt, stellen Sie sicher, dass Sie Ihre aktuellen Einstellungen sichern, bevor die Änderungen durchgeführt werden. Die Vorgehensweise wird nachfolgend erläutert. Ausführen von Skripts mit administrativen RechtenWindows, WSH und die WMI-Sicherheit erfordern, dass Sie zum Ausführen der Skripts auf lokalen oder Remotecomputern, die nicht an eine Domäne gebunden sind, die Anmeldeinformationen eines lokalen Administrators verwenden. Für Computer, die an eine Domäne gebunden sind, können Sie auch die Anmeldeinformationen eines Domänenadministrators verwenden. Sie können mit einem Skript, das unter Verwendung Ihrer Anmeldeinformationen ausgeführt wird, keine Ergebnisse erreichen, die Sie nicht auch mit einem Befehlszeilentool oder über die Windows-Oberfläche erreichen können. Weitere Informationen zu Sicherheitsanforderungen für die Skripterstellung finden Sie in "Tales from the Script – September 2003: Transform Your Workstation into a Scripting Dynamo" im Microsoft TechNet unter http://go.microsoft.com/fwlink/?LinkId=24767 (nur auf Englisch verfügbar). Festlegen von Cscript als StandardskripthostUm Cscript.exe als Standardskripthost zu verwendet, das Logo zu unterdrücken, und diese Einstellungen als Standard zu speichern, führen Sie folgenden Befehl über die Befehlszeile aus: cscript //h:cscript //nologo //s Die meisten Beispielskripts in diesen Dokument führen Aktionen auf dem lokalen Computer durch, der für die WMI durch einen Punkt (.) dargestellt wird. In einigen Skripts sind gewisse Werte, wie Computernamen oder IP-Adressen, im oberen Bereich des Skripts als Variablen fest kodiert. Damit diese Skripts auf Ihrem Computer oder im Netzwerk ausgeführt werden können, müssen Sie diese Werte erst gemäß der Netzwerk- und Hostkonfigurationen anpassen. Diese erforderlichen Änderungen werden zusammen mit den einzelnen Skripts erläutert. Speichern aktueller Einstellungen vor dem Ausführen von Skripts, die Änderungen vornehmenEinige Beispielskripts nehmen Änderungen an dem Computer vor, für den sie ausgeführt werden. Diese Skripts werden mit einem Vorsichtshinweis wie dem Folgenden gekennzeichnet.
Sie sollten alle aktuellen IP-Einstellungen in einer Textdatei speichern, bevor Sie ein Skript ausführen, dass Änderungen vornimmt. Dazu können Sie die folgende Befehlszeile ausführen: ipconfig.exe /all > ipconfig.txt Diese Befehlszeile leitet die Ausgabe von ipconfig in eine Textdatei um, die sich in dem Ordner befindet, aus dem der Befehl heraus ausgeführt wurde. Zusätzlich zum Befehl ipconfig beginnen einige Abschnitt dieses Dokuments mit einem Skript, das die Einstellungen für den jeweiligen Netzwerkabschnitt anzeigt. Sie können Ipsettings.vbs, Dhcpsettings.vbs, Dnssettings.vbs und Winssettings.vbs verwenden, um Konfigurationen für diese Bereiche zu erfassen, bevor Sie ein Skript ausführen, durch das diese Konfiguration möglicherweise geändert wird. SystemanforderungenIn diesem Dokument wird davon ausgegangen, dass Sie die Skripts unter Windows 2000, Windows XP oder Windows Server 2003 ausführen. Die meisten hier verfügbaren WMI-Funktionen sind unter Windows 2000 verfügbar. Windows XP und Windows Server 2003 umfassen jedoch auch eine Reihe hilfreicher neuer Klassen, Eigenschaften und Methoden, von denen einige hier veranschaulicht werden. Auf Systemanforderungen, die bindender sind als die vorherigen, wird in den einzelnen Abschnitten hingewiesen. Führen Sie, wenn möglich, die aktuellsten Versionen von WSH und VBScript, Version 5.6 Build 8515, aus, die beide im Windows Script-Download von MSDN unter http://go.microsoft.com/fwlink/?LinkId=27639 (nur auf Englisch verfügbar) zur Verfügung stehen. Dieser Download ist für Microsoft® Windows XP, Windows® 2000, Windows® Millennium Edition (Me), Windows NT® Server 4.0 und Windows® 98 verfügbar. Die Versionen von WMI und ADSI (Active Directory Service Interfaces) hängen vom Betriebssystem des Computers ab. Microsoft® Windows® Millennium Edition und nachfolgende Versionen des Betriebssystems enthalten alle WMI. Für Windows NT Server 4.0 und Windows 98 können Sie WMI, Version 1.5, von MSDN downloaden. Für Windows NT Server 4.0 und Windows 98 können Sie Active Directory-Clienterweiterungen von MSDN downloaden, die es diesen Betriebssystemen ermöglichen, als Active Directory-Clients zu fungieren. Weitere Informationen zum Einrichten einer Skripterstellungsumgebung für die Systemverwaltung sowie zu einem Skript, das Sie über die von Ihnen ausgeführten Versionen der Skripttechnologien und deren Status informiert finden Sie in "Tales from the Script – September 2003: Transform Your Workstation into a Scripting Dynamo" im Microsoft TechNet unter http://go.microsoft.com/fwlink/?LinkId=24767 (nur auf Englisch verfügbar). Weitere wichtige RessourcenAusführlichere Hintergrundinformationen zur Skripterstellung mit VBScript, WSH und WMI finden Sie in den folgenden grundlegenden Quellen:
Eine vollständige Liste der Ressourcen finden Sie am Ende dieses Dokuments. | In diesem Beitrag |