Sie sind auf Seite 1von 568

internet information server

5.0
internet
information
server
5.0 gerry o’brien
übersetzt von
christian alkemper

administration und praxisbeispiele


new technology

Markt+Technik Verlag
Die Deutsche Bibliothek – CIP-Einheitsaufnahme

Ein Titeldatensatz für diese Publikation ist bei


Der Deutschen Bibliothek erhältlich.

Die Informationen in diesem Produkt werden ohne Rücksicht auf einen


eventuellen Patentschutz veröffentlicht.
Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt.
Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter
Sorgfalt vorgegangen.
Trotzdem können Fehler nicht vollständig ausgeschlossen werden.
Verlag, Herausgeber und Autoren können für fehlerhafte Angaben
und deren Folgen weder eine juristische Verantwortung noch
irgendeine Haftung übernehmen.
Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und
Herausgeber dankbar.

Autorisierte Übersetzung der amerikanischen Originalausgabe:


Microsoft IIS 5 Administration, © 2000 by Sams Publishing

Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der
Speicherung in elektronischen Medien.
Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten
ist nicht zulässig.

Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden,
sind gleichzeitig auch eingetragene Warenzeichen oder sollten als solche betrachtet
werden.

Umwelthinweis:
Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt.
Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus
umweltverträglichem und recyclingfähigem PE-Material.

10 9 8 7 6 5 4 3 2 1

04 03 02 01

ISBN 3-8272-6019-1

© 2001 by Markt+Technik Verlag,


ein Imprint der Pearson Education Deutschland GmbH,
Martin-Kollar-Straße 10–12, D-81829 München/Germany
Alle Rechte vorbehalten
Lektorat: Angelika Ritthaler, aritthaler@pearson.de
Deutsche Übersetzung: Christian Alkemper, Karlsruhe
Herstellung: Ulrike Hempel, uhempel@pearson.de
Satz: reemers publishing services gmbh, Krefeld, www.reemers.de
Druck und Verarbeitung: Freiburger Graphische Betriebe, Freiburg
Printed in Germany
Inhaltsverzeichnis
Einleitung 15

Teil I: Verwaltung 17

Kapitel 1 Merkmale von Internet Information Server 5.0 19


1.1 Die neuen Merkmale von IIS 5.0: Eine Einführung 20
1.2 Sicherheit 21
1.2.1 Secure Sockets Layer (SSL) 21
1.2.2 Server Gated Cryptography (SGC) 21
1.2.3 Digestauthentifizierung 21
1.2.4 Ausschluss von IP- und Domänennamen 22
1.2.5 Kerberos Version 5 22
1.2.6 Zertifikatsspeicherung 22
1.2.7 Sicherheitsassistenten 22
1.3 Administration 23
1.3.1 Zentralisierte Administration 23
1.3.2 Neustart von IIS 23
1.3.3 Sicherung und Wiederherstellung 23
1.3.4 Prozesskontenführung 23
1.3.5 Prozessbeschränkung 24
1.3.6 Benutzerdefinierte Fehlermeldungen 24
1.3.7 Remoteverwaltung 24
1.3.8 Terminaldienste 24
1.4 Programmierbarkeit 24
1.4.1 ASP 25
1.4.2 Anwendungsschutz 25
1.4.3 ADSI 2.0 25
1.5 Unterstützung von Internetstandards 26
1.5.1 Unterstützte Standards 26
1.5.2 Mehrere Sites 26
1.5.3 WebDAV 26
6 Inhaltsverzeichnis

1.5.4 SMTP- und NNTP-Dienste 26


1.5.5 PICS 27
1.5.6 FTP-Wiederaufnahme 27
1.5.7 HTTP-Komprimierung 27
1.6 Fazit 27

Kapitel 2 Verwaltung von Websites 29


2.1 Funktionen zur Websiteverwaltung bei IIS 5.0 30
2.2 Programme zur Erstellung von Websites 31
2.3 ASP zur Websiteverwaltung nutzen 32
2.4 Verzeichnisse 36
2.4.1 Basisverzeichnisse 36
2.4.2 Virtuelle Verzeichnisse 38
2.5 Verknüpfungen umleiten 38
2.5.1 Umleitung zu einem Verzeichnis 39
2.5.2 Umleitung zu einem Programm 40
2.6 Inhalte 41
2.6.1 Ablauf der Gültigkeit 41
2.6.2 Klassifikation von Inhalten 43
2.7 Fußzeilen 44
2.8 Server-Side Includes (SSI) 46
2.8.1 Includes aktivieren 47
2.8.2 #include-Anweisung verwenden 49
2.8.3 Referenz: Server-Side Includes 49
2.9 Fazit 53

Teil II: Administration 55

Kapitel 3 Administration von Websites und FTP-Sites 57


3.1 Einführung 58
3.2 Sites starten und beenden 60
3.3 Sites hinzufügen 64
3.4 FTP-Verzeichnisse, Meldungen und Ausgabeformate 69
3.5 Websites benennen 72
3.6 IIS erneut starten 74
3.7 Unterstützung von Hostheadernamen 77
3.8 Voreinstellungen ändern 77
Inhaltsverzeichnis 7

3.9 IIS-Einstellungen sichern und wiederherstellen 79


3.10 Konten für Website-Operatoren 82
3.11 Abwärtskompatible Siteadministrierung 83
3.12 Fazit 83

Kapitel 4 Administration von SMTP- und NNTP-Diensten 85


4.1 Arbeiten mit dem virtuellen Server für SMTP 86
4.1.1 Eigenschaften des SMTP-Dienstes 86
4.1.2 Verzeichnisse des SMTP-Dienstes 87
4.1.3 Mailverarbeitung 88
4.1.4 SMTP-Dienst verwalten 89
4.2 Der NNTP-Dienst 117
4.2.1 Konfiguration des NNTP-Dienstes 119
4.2.2 NNTP warten und überwachen 127
4.2.3 NNTP-Probleme beheben 131
4.3 Fazit 132

Kapitel 5 Publizieren mit WebDAV 133


5.1 Was ist WebDAV? 134
5.2 Erstellung eines WebDAV-Verzeichnisses 135
5.3 Verwaltung der WebDAV-Sicherheit 136
5.4 WebDAV-Verzeichnisse durchsuchen 139
5.5 Dateien publizieren und verwalten 143
5.5.1 Publizieren mit Windows 2000 143
5.5.2 Publizieren mit dem Internet Explorer 5.0 144
5.5.3 Publizieren mit Office 2000 145
5.6 Fazit 146

Kapitel 6 Namensauflösung 147


6.1 Namensauflösung bei IIS 5.0 148
6.2 Registrierung eines Internetdomänennamens 155
6.3 Netzwerkidentität eines Computers überprüfen 156
6.4 Fazit 160

Kapitel 7 Anwendungen konfigurieren 161


7.1 Anwendungskonfiguration bei IIS 162
8 Inhaltsverzeichnis

7.2 Anwendungen erstellen 165


7.3 Zuordnungen vornehmen 167
7.4 Anwendungen isolieren 172
7.5 Anwendungen zwischenspeichern 172
7.5.1 Skript-Timeout in CGI 173
7.5.2 ISAPI-Erweiterungen zwischenspeichern 174
7.5.3 ASP-Skriptdateien zwischenspeichern 174
7.6 Isolierte Anwendungen entladen 175
7.7 ASP-Anwendungen konfigurieren 176
7.8 ASP-Debugging 177
7.9 CGI-Anwendungen konfigurieren 177
7.10 ISAPI-Filter 178
7.11 Fazit 178

Kapitel 8 Sicherheit 181


8.1 Den IIS-Server sichern 182
8.2 Checkliste Sicherheit 183
8.3 Authentifizierung 185
8.3.1 Authentifizierung implementieren und konfigurieren 186
8.3.2 Standarddomäne für die Anmeldung 190
8.4 Zugriffssteuerung 192
8.4.1 Dateien mit NTFS sichern 194
8.4.2 NTFS-Berechtigungen für Dateien und Verzeichnisse 196
8.4.3 Zugriff gewähren oder verweigern 197
8.4.4 Webserverberechtigungen 200
8.4.5 Datenbankzugriff steuern 203
8.5 Verschlüsselung 204
8.5.1 Verschlüsselung aktivieren 206
8.5.2 Verschlüsselungsstärke 208
8.6 Zertifikate 208
8.6.1 SSL konfigurieren 208
8.6.2 Die Sicherheits-Assistenten verwenden 209
8.6.3 Serverzertifikate erwerben 210
8.6.4 Zertifikatsvertrauenslisten 215
8.6.5 Clientzertifikate 216
8.6.6 Zertifikate Benutzerkonten zuordnen 219
8.6.7 Überwachung 224
8.7 IPSec 230
8.8 Fazit 230
Inhaltsverzeichnis 9

Kapitel 9 Benutzerdefinierte Fehlermeldungen 233


9.1 Fehlermeldungen erstellen und einsetzen 235
9.2 Detaillierte Fehlermeldungen aktivieren 239
9.3 Verarbeitung von ASP-Fehlern 240
9.4 Fazit 240

Kapitel 10 Aktivitäten von Sites protokollieren 243


10.1 Aktivitäten auf Ihrem IIS-Server protokollieren 244
10.1.1 Das Format »Microsoft IIS« 244
10.1.2 Das Format »NCSA allgemein« 245
10.1.3 Das Format »W3C-erweitert« 245
10.1.4 Das Format »ODBC« 246
10.2 Protokollierung aktivieren 247
10.3 Überwachung der Prozessorauslastung 249
10.4 Erweiterte Einstellungen für das Protokoll »W3C-erweitert« 250
10.5 Protokolldateien speichern 253
10.6 Protokolldateien in das NCSA-Format konvertieren 255
10.7 Fazit 255

Kapitel 11 Leistungsoptimierung 257


11.1 IIS-Leistung optimieren 258
11.2 Speicherverwaltung 263
11.3 Prozessorauslastung 267
11.4 Netzwerkkapazität 270
11.4.1 Verbindungen auswählen 272
11.4.2 Berechnung der Verbindungsleistung 273
11.4.3 Beschränkung der Bandbreite 274
11.4.4 Beschränkungen und Timeouts von Verbindungen 276
11.4.5 HTTP-Keep-Alives 276
11.4.6 HTTP-Komprimierung 277
11.5 Fazit 280

Kapitel 12 Replikation und Clusterunterstützung 281


12.1 Clustering einer Netzwerkanwendung 282
12.1.1 Clustering – warum? 284
12.1.2 Netzwerklastenausgleich installieren 286
12.1.3 Netzwerklastenausgleich konfigurieren 287
10 Inhaltsverzeichnis

12.1.4 Problembehebung beim Netzwerklastenausgleich 291


12.1.5 Fazit 292
12.2 Replikation 292
12.2.1 Replikationsprogramme 293
12.2.2 Warum Daten replizieren? 294
12.2.3 Eine DFS-Freigabe für die Replikation konfigurieren 295
12.2.4 Fazit 296

Kapitel 13 Administrationsskripts 297


13.1 Arbeiten mit den IIS-Administrationsskripts 298
13.1.1 adsutil – das Verwaltungs-Skriptprogramm 299
13.1.2 dispnode -Verwaltungsknoten anzeigen 301
13.1.3 disptree – Verwaltungsbaumstruktur anzeigen 301
13.1.4 findweb – Website suchen 302
13.1.5 mkw3site – Website erstellen 302
13.1.6 mkwebdir – virtuelles Webverzeichnis erstellen 303
13.1.7 stopweb – Webserver beenden 304
13.1.8 stopsrv – Server beenden 305
13.1.9 stopftp – FTP-Server beenden 306
13.1.10 startweb – Webserver starten 306
13.1.11 startsrv – Server starten 307
13.1.12 startftp – FTP-Server starten 307
13.1.13 pauseweb – Webserver anhalten 307
13.1.14 pausesrv – Server anhalten 308
13.1.15 pauseftp – FTP-Server anhalten 309
13.1.16 contweb – Webserver fortsetzen 309
13.1.17 contserv – Server neu starten 310
13.1.18 contftp – FTP-Server neu starten 310
13.1.19 chaccess – Zugriffsbeschränkungen ändern 311
13.2 Fazit 312

Kapitel 14 IIS programmgesteuert administrieren 315


14.1 IIS mit Objekten und ADSI administrieren 316
14.2 Die IIS-Metabasis 317
14.2.1 Struktur 318
14.2.2 Schlüsselnamen und Pfade 319
Inhaltsverzeichnis 11

14.2.3 Vererbung von Eigenschaften 319


14.2.4 Sicherheit und Zuverlässigkeit 320
14.3 IIS Admin Objects 320
14.3.1 Übersicht 321
14.3.2 ADSI 321
14.3.3 Administrative Tasks 323
14.4 Fazit 326

Kapitel 15 Remoteadministration 327


15.1 Remoteadministration über das Internet 328
15.1.1 Eine neue Website erstellen 336
15.2 Remoteadministration im Intranet 337
15.2.1 Verzeichnissicherheit eines Remoteservers mit der MMC ändern 340
15.3 Fazit 340

Teil III: Anwendungsentwicklung 343

Kapitel 16 Active Server Pages 345


16.1 ASP-Seiten erstellen 348
16.2 Skriptsprachen 353
16.2.1 Variablen und Konstanten 355
16.2.2 Clientseitige Skriptinteraktion 357
16.3 Prozeduren 359
16.4 Auflistungen 361
16.4.1 Anzahl der Elemente in einer Auflistung bestimmen 361
16.5 Verarbeitung von Benutzereingaben 362
16.6 Komponenten und Objekte 364
16.6.1 COM-Objekte in ASP benutzen 365
16.7 Der Objektbereich 366
16.7.1 Objektbereich Seite 366
16.7.2 Objektbereich Sitzung 366
16.7.3 Objektbereich Anwendung 367
16.8 Inhalte senden 367
16.8.1 Die Methode Redirect 368
16.9 Dateien übermitteln 369
16.10 Sitzungen verwalten 370
16.10.1 Das Objekt Session 370
12 Inhaltsverzeichnis

16.11 Auf Datenquellen zugreifen 372


16.11.1 ODBC-Datenquelle auswählen 373
16.11.2 Über eine Webseite auf die Datenbank zugreifen 375
16.12 Transaktionen 378
16.13 Skriptdebugging 378
16.14 Integrierte ASP-Objekte 380
16.15 Fazit 380

Kapitel 17 Installierbare ASP-Komponenten 383


17.1 Die Komponente Ad Rotator 384
17.1.1 Übersicht 384
17.1.2 Eigenschaften 386
17.2 Die Komponente Browser Capabilities 387
17.3 Die Komponente Content Linking 391
17.4 Die Komponente Content Rotator 394
17.4.1 Die Inhaltsplandatei 394
17.5 Die Komponente Counters 395
17.6 Die Komponente Datenbankzugriff 398
17.7 Die Komponente Dateizugriff 399
17.8 Die Komponente IIS-Protokollierung 399
17.9 Die Komponente MyInfo 407
17.10 Die Komponente Page Counter 407
17.11 Die Komponente Permission Checker 409
17.12 Die Komponente Status 410
17.13 Die Komponente Tools 412
17.14 Fazit 413

Anhang A Referenz für den Administrator 415


A.1 Registrierung 416
A.1.1 Globale Einträge 416
A.1.2 Dienstspezifische Einträge 418
A.1.3 Einträge für den WWW-Dienst 419
A.1.4 Einträge für den FTP-Dienst 422
A.2 Metabasis 423
A.3 Windowsereignisse für IIS 424
A.3.1 Ereignisse in Bezug auf den WWW-Dienst 424
A.3.2 Ereignisse in Bezug auf die FTP-Dienste 431
A.3.3 Ereignisse in Bezug auf Active Server Pages 432
Inhaltsverzeichnis 13

A.4 Referenz zu Leistungsindikatoren 440


A.4.1 Beschreibungen der Leistungsindikatoren 443
A.5 Referenz zu Timeouts 449
A.6 Referenz zu den Protokollierungseigenschaften 450
A.7 Referenz zur Umleitung 453

Anhang B Referenz für IIS Admin Objects 455


B.1 IIsCertMapper 456
B.2 IIsCompressionSchemes 460
B.3 IIsCompressionScheme 461
B.4 IIsComputer 462
B.5 IIsCustomLogModule 467
B.6 IIsFilter 468
B.7 IIsFilters 469
B.8 IIsFtpInfo 470
B.9 IIsFtpServer 471
B.10 IIsFtpService 474
B.11 IIsFtpVirtualDir 476
B.12 IIsIPSecurity 477
B.13 IIsLogModule 482
B.14 IIsLogModules 483
B.15 IIsMimeMap 484
B.16 IIsMimeType 484
B.17 IIsWebDirectory 486
B.18 IIsWebFile 495
B.19 IIsWebInfo 496
B.20 IIsWebServer 497
B.21 IIsWebService 502
B.22 IIsWebVirtualDir 506
B.23 Konstanten 509

Anhang C Referenz für ADSI 511


C.1 ADSI-Objekteigenschaften 512
C.2 ADSI-Methoden 512
C.3 Eigenschaften von ADSI-Containerobjekten 518
C.4 Methoden von ADSI-Containerobjekten 519
C.5 Änderungen an ADSI unter IIS 5.0 522
C.5.1 Leistungsmerkmale von IIS 5.0 522
14 Inhaltsverzeichnis

C.5.2 Unter IIS 5.0 entfernte Eigenschaften 522


C.5.3 Neue Eigenschaften unter IIS 5.0 523
C.5.4 Änderungen bei den Eigenschaftstypen 524
C.5.5 Änderungen bei den Eigenschaften unter IIS 5.0 524

Anhang D Skriptreferenz 525


D.1 Referenz: @-Anweisungen 526
D.2 Referenz für die Datei global.asa 529
D.2.1 Anwendungsereignisse 530
D.2.2 Sitzungsereignisse 532
D.2.3 <OBJECT>-Deklarationen 534
D.2.4 TypeLibrary-Deklarationen 535

Anhang E Beispiele für die programmgesteuerte Administration 537


E.1 Sicherung der Metabasis 538
E.2 Wiederherstellen der Metabasis 542
E.3 Fazit 545

Stichwortverzeichnis 547
Einleitung

Willkommen zu unserem neuen Titel »Internet Information Server 5.0«. Dieses


Buch richtet sich an Fortgeschrittene und Experten und soll das notwendige Hin-
tergrundwissen vermitteln, um für Microsofts neueste Windows 2000-Webserver-
software eine optimale Leistung bei höchsten Sicherheitsstandards zu erzielen.
Sie finden in diesem Buch Informationen über den Internet Information Server
5.0 (im folgenden kurz als »IIS 5.0« bezeichnet), der unter Windows 2000 Server
ausgeführt wird. In der Version 4.0 war IIS dem Serverbetriebssystem vorbehal-
ten, während Benutzer von Windows NT Workstation mit dem Personal Web Ser-
ver (PWS) vorlieb nehmen mussten. Diese Trennung wurde mit IIS 5.0 aufgeho-
ben, welcher nun auf beiden Plattformen läuft. Zwar ist die von NT Workstation
her bekannte Begrenzung auf zehn Benutzer unter Windows 2000 Professional
immer noch vorhanden, aber IIS 5.0 ist weitaus leistungsfähiger und sicherer als
PWS. Auch wenn die Beschreibungen in diesem Buch in erster Linie auf
Windows 2000 Server abzielen, so finden Sie hier doch eine Menge Ansätze, die
Sie auch unter Windows 2000 Professional anwenden können.
Wann immer im Verlauf dieses Buches Beispiele oder Beschreibungen gegeben
werden, wird zusätzlich erwähnt, wo Eigenheiten von IIS-Installationen unter
Windows 2000 Professional oder Unterschiede zur Serverinstallation vorliegen.
Wenn Sie von diesem Buch profitieren wollen, dann sollten Sie – davon gehe ich
aus – IIS 5.0 bereits installiert haben oder zumindest in der Lage sein, dies zu tun.
Standardmäßig wird IIS bei der Installation von Windows 2000 Server ohnehin
gleich mitinstalliert, bei Windows 2000 Professional ist dies jedoch nicht der Fall.
Ich hoffe, dass die in diesem Buch vorgestellten Informationen bei Ihrer täglichen
Arbeit als IIS 5.0-Administrator für Sie selbst und Ihre Organisation von großem
Nutzen sind.
Gerry O'Brien
Teil I

Verwaltung
Kapitel 1 Merkmale von Internet Information Server 5.0
Kapitel 2 Verwaltung von Websites
Kapitel 1
Merkmale von Internet
Information Server 5.0

1.1 Die neuen Merkmale von IIS 5.0: Eine Einführung 20


1.2 Sicherheit 21
1.3 Administration 23
1.4 Programmierbarkeit 24
1.5 Unterstützung von Internetstandards 26
1.6 Fazit 27
20 Die neuen Merkmale von IIS 5.0: Eine Einführung

Im Internet Information Server 5.0 wurden nicht nur viele bereits in früheren Ver-
sionen vorhandene Funktionen verbessert und optimiert, sondern es wurden auch
eine Reihe neuer Features implementiert.
Dieses Kapitel stellt Ihnen die allgemeinen Merkmale von IIS 5.0 vor. Wir wer-
den dann später in den jeweiligen Kapiteln genauer darauf eingehen.

1.1 Die neuen Merkmale von IIS 5.0: Eine Einführung


Wie jede andere Softwarefirma versucht Microsoft seine Produkte ständig zu ver-
bessern. Dies gilt natürlich auch für den Internet Information Server. Ob Verbes-
serungen aus Sicherheitsgründen, zur Leistungsverbesserung, oder als Reaktion
auf Kundenwünsche vorgenommen werden – am Ende profitiert in jedem Fall der
Benutzer.
Änderungen, die an einem Softwareprodukt vorgenommen werden, reflektieren
sowohl Kundenwünsche als auch Vorschläge, die bei Microsoft selbst aufkamen.
Sie werden es nicht glauben, aber bei Microsoft werden tatsächlich die eigenen
Produkte verwendet, und man hat dort umfassende Testlabors eingerichtet, um
diese Produkte auf Herz und Nieren zu prüfen.
Sie werden feststellen, dass IIS 5.0 die meisten, wenn nicht alle Merkmale bein-
haltet, die bereits bei IIS 4.0 vorhanden waren. Aber Microsoft hat auch einiges
an Neuheiten hinzugefügt, die hier vorgestellt und im Laufe dieses Buches näher
erklärt werden. Vielleicht können Sie das eine oder andere neue Feature von
IIS 5.0 gut gebrauchen, vielleicht auch nicht – Sie werden als IIS-Administrator
allein schon dadurch profitieren, dass Sie wissen, was diese Funktionen können
und wie sie benutzt werden.
Dank der neuen Sicherheitsmerkmale können Sie von den modernsten Verschlüs-
selungstechnologien und Authentifizierungsmethoden profitieren, die mit client-
und serverseitigen Zertifikaten arbeiten. Banken und Buchhalter werden SGC
(Server Gated Cryptography, serverüberwachte Verschlüsselung) zu schätzen wis-
sen, denn damit sind Transaktionen mit einer 128-Bit-Verschlüsselung auf der
Exportseite möglich.
Wie Sie im Laufe dieses Buches noch sehen werden, hat man sich bei Microsoft
auch Gedanken zur Leistungsverbesserung und zur Vereinfachung der Administ-
ration gemacht.
In diesem Kapitel werden wir einige neue Features von IIS 5.0 vorstellen und
Ihnen zeigen, wie Sie als IIS-Administrator diese Features nutzen können.
Kapitel 1 • Merkmale von Internet Information Server 5.0 21

1.2 Sicherheit
Wenn Computer mit dem Internet verbunden werden, haben Sicherheitsbedenken
meist eine sehr hohe Priorität, ja vielleicht sogar die höchste. In letzter Zeit kon-
zentrieren sich die Bemühungen der Hacker auf Microsofts Betriebssysteme und
Softwareprodukte, die der Herstellung von Internetverbindungen dienen. Zu den
bereits vorhandenen Sicherheitsfunktionen wurden beim IIS 5.0 noch einige neue
hinzugefügt, die Ihnen dabei helfen sollen, die Angriffe von Hackern abzuwehren
und die Datensicherheit zu gewährleisten.

1.2.1 Secure Sockets Layer (SSL)


Eine der Möglichkeiten, die Ihnen bei der Sicherung Ihrer Daten hilft, ist die Ver-
wendung der Protokolle SSL 3.0 und TLS (Transport Layer Security, Transport-
schichtsicherheit). Mit Hilfe dieser Protokolle sind eine sichere Datenübertragung
zwischen Client und Server und eine Verifizierung des Clients durch den Server
vor der Benutzeranmeldung möglich.
Ein weiteres neues Merkmal ist die Verwendung von Clientzertifikaten. Diese
können durch Programmierer von ASP-Anwendungen und ISAPIs zur Nachver-
folgung von Benutzern verwendet werden, die die Website besuchen. Ferner las-
sen sich Clientzertifikate auch in Verbindung mit Benutzerkonten auf dem System
verwenden, wodurch der Administrator die Benutzerkonten den Zertifikaten
zuordnen kann. Hierdurch ist eine Kontrollmöglichkeit für den Zugriff auf Ser-
verressourcen gegeben.

1.2.2 Server Gated Cryptography (SGC)


Wenn man sich die Ausbreitung von E-Commerce und Finanztransaktionen über
das Internet ansieht, dann muss SGC als großartige Neuerung für Ihren Webserver
betrachtet werden. Als Erweiterung von SSL gestattet es die wahlweise Verwen-
dung der 40-Bit-Standardverschlüsselung oder der 128-Bit-Verschlüsselung
durch IIS-Versionen, die für den außeramerikanischen Markt hergestellt werden.
Dadurch wird der Bedarf an mehreren IIS-Versionen verringert.
Auch wenn SGC in IIS 5.0 integriert ist, müssen Sie trotzdem ein spezielles SGC-
Zertifikat verwenden, um es benutzen zu können.

1.2.3 Digestauthentifizierung
Ein weiteres neues Merkmal von IIS ist die Digestauthentifizierung. Durch Imp-
lementierung dieser Funktion können Administratoren ihre Benutzer sicher über
Firewalls und Proxyserver hinweg authentifizieren.
Um jene zu beruhigen, die mit anonymer Authentifizierung, HTTP-Basisauthenti-
fizierung und der NT-Abfrage/Antwort-Authentifizierung vertraut sind: Die gibt's
auch bei IIS 5.0.
22 Sicherheit

1.2.4 Ausschluss von IP- und Domänennamen


Wenn Sie über einen Mailserver verfügt haben oder verfügen, der mit dem Inter-
net verbunden ist, dann sind Sie mit Sicherheit schon einmal in die beschämende
und frustrierende Situation geraten, dass Ihr Server als Verteiler für Spammer und
Hacker benutzt wurde. IIS 5.0 kann jetzt verhindern, dass Benutzer mit bekannten
IP-Adressen und/oder aus bekannten Internetdomänen unberechtigten Zugriff auf
Ihren Server erhalten, denn diese Daten können Sie nun in eine Restriktionsliste
eingeben.
Beachten Sie dabei, dass Sie die IP-Adressen der auszuschließenden Domäne
kennen müssen; ferner lässt sich die Funktion auch nicht automatisieren, d.h. Sie
müssen die entsprechenden Einstellungen in jedem Fall vornehmen, damit alles
klappt.

1.2.5 Kerberos Version 5


Windows 2000 implementiert dieses Authentifizierungsprotokoll, mit dem Sie
Anmeldeinformationen über angeschlossene Windows-Computer weiterleiten
können. In IIS 5.0 ist Kerberos 5 integriert.

1.2.6 Zertifikatsspeicherung
Die Speicherung Ihrer IIS-Zertifikate ist nun in die CryptoAPI-Speicherung von
Windows integriert. Sie können die Zertifikatverwaltung von Windows zur Siche-
rung, Speicherung und Konfiguration Ihrer Zertifikate verwenden.

1.2.7 Sicherheitsassistenten
Wenn Ihnen die Sicherheitsadministration Ihres IIS-Servers abschreckend und
schwierig erscheint, dann fassen Sie Mut, denn Microsoft hat den Zaghaften unter
uns nun Sicherheitsassistenten an die Seite gestellt, die Ihnen den Job etwas einfa-
cher gestalten.
• Eine Neuheit von IIS 5.0 ist die Möglichkeit, Zugriffsberechtigungen für vir-
tuelle Verzeichnisse und sogar Dateien zu erstellen. Mit dem Assistenten für
die Erstellung von Berechtigungen wird diese Aufgabe drastisch vereinfacht
und der Assistent kann sogar Ihre NTFS-Berechtigungen aktualisieren, um die-
se Änderungen umzusetzen.
• Mit dem Assistenten für Webserverzertifikate können Sie Zertifikatsanforde-
rungen leichter erstellen und Zertifikate effektiver verwalten.
• Wenn Sie mit Zertifizierungsstellen Arbeiten, können Sie Ihre CTLs (Certifi-
cate Trust Lists, Zertifikatsvertrauenslisten) mit dem Assistenten für Zertifi-
katsvertrauenslisten spielend einfach verwalten.
Kapitel 1 • Merkmale von Internet Information Server 5.0 23

1.3 Administration
IIS 5.0 bietet auch eine ganze Reihe neuer Verwaltungsfunktionen. Nachfolgend
werden diese aufgelistet und kurz beschrieben; im Verlauf dieses Buches soll
dann näher auf die einzelnen Funktionen eingegangen werden.

1.3.1 Zentralisierte Administration


Jene Leser, die von IIS 4.0 auf die neue Version umsteigen, werden die MMC
(Microsoft Management Console) bereits kennen. Zur Erläuterung für alle ande-
ren: Die MMC ist eine allgemeine Verwaltungskonsole, die so genannte Snap-Ins
verwendet, um die verschiedenen Dienste und Komponenten administrieren zu
können.
Durch die Verwendung des IIS-Snap-Ins können Sie andere IIS-Server von Ihrer
Windows 2000-Workstation (unter Professional oder Server) aus verwalten. Sie
müssen sich also nicht zu jedem zu administrierenden Server begeben.

1.3.2 Neustart von IIS


In der Vergangenheit war es so, dass bei tiefgreifenden Änderungen an der IIS-
Konfiguration der Server neu gestartet werden musste. Unter IIS 5.0 ist es nun
möglich, den Dienst einfach ohne Systemboot neu zu starten.
Sie können den Server wahlweise über das MMC-Snap-In oder über eine Befehls-
zeileneingabe neu starten. Die Vorgehensweise wird an anderer Stelle näher erläu-
tert.

1.3.3 Sicherung und Wiederherstellung


Haben Sie jemals Änderungen an Ihrer IIS-Konfiguration vorgenommen, diese
Änderungen überprüft und dabei den Dienst abgeschossen? Nun, unter IIS 5.0
können Sie Ihre Konfiguration jetzt sichern und später wiederherstellen, falls dies
notwendig sein sollte.

1.3.4 Prozesskontenführung
Angesichts der steigenden Verbreitung von CGI- und ASP-Skripts auf den Ser-
vern wäre es gut, wenn es eine Möglichkeit gäbe, die Auswirkungen solcher
Skripte auf die Systemleistung zu verifizieren.
Die Prozesskontenführung ist neu unter IIS 5.0 und bietet Ihnen genau diese
Funktionalität, denn hiermit können Sie beobachten, welche Websites auf Ihrem
Server wie viel CPU-Ressourcen für sich beanspruchen.
24 Programmierbarkeit

1.3.5 Prozessbeschränkung
Nachdem Sie mit der Prozesskontenführung festgestellt haben, welche Website
oder Skripte wie viel kostbare Rechnerleistung benötigen, können Sie die CPU-
Leistung für bestimmte Prozessanwendungen beschränken.
Diese Art der Prozessbeschleunigung limitiert die CPU-Zeit für eine Applikation,
nicht jedoch die Netzwerkbandbreite. Die Beschränkung der Netzwerkbandbreite
wird in Kapitel 11 beschrieben.

1.3.6 Benutzerdefinierte Fehlermeldungen


IIS 5.0 bietet eine verbesserte Konfiguration benutzerdefinierter Fehlermeldun-
gen, d.h. Sie können nun bei Fehlern noch aussagekräftigere Meldungen an Ihre
Clients senden.
Dank der Fähigkeit zur detaillierten Fehlerverarbeitung handelt es sich hierbei um
eine großartige Funktion für ASP-Entwickler, die durch die Verwendung benut-
zerdefinierter 500-100.asp-Fehlermeldungen ermöglicht wird; auf der Grundlage
dieser Meldungen können ASP-Entwickler eigene Fehlermeldungen erstellen.

1.3.7 Remoteverwaltung
Da dieses Thema in letzter Zeit so heiß diskutiert wurde und noch wird, wurde der
Remoteverwaltung in diesem Buch ein eigenes Kapitel gewidmet. Wir werden
einen Blick auf die Möglichkeiten werfen, die IIS 5.0 beinhaltet, um Server von
praktisch jedem beliebigen Webbrowser auf allen Plattformen administrieren zu
können.

1.3.8 Terminaldienste
Terminaldienste sind eigentlich ein Merkmal von Windows 2000 Server. Durch
ihre Implementierung in das Betriebssystem können Sie nun 32-Bit-Anwendun-
gen von jedem korrekt konfigurierten Client aus, der solche Anwendungen nor-
malerweise nicht unterstützen würde, auf dem Server starten.
Was das mit IIS zu tun hat? Nun, tatsächlich fällt diese Funktion in den Bereich
»Remoteverwaltung«, denn sie gestattet Ihnen die Administrierung Ihres IIS-
Servers auf gleiche Weise, als würden Sie direkt davor sitzen.

1.4 Programmierbarkeit
Dank des serverseitigen Skripting haben ASP und XML die Entwicklergemeinde
im Sturm erobert, und deswegen ist es naheliegend, in Microsofts bedeutendste
Internetplattform Programmierfunktionen zu integrieren.
Kapitel 1 • Merkmale von Internet Information Server 5.0 25

1.4.1 ASP
Fast allen IIS-Administratoren ist der Begriff »ASP« (Active Server Pages)
bereits geläufig. Hoffentlich trifft das auch auf Sie zu. ASP wurde bereits unter
IIS 4.0 unterstützt und die Version 5.0 setzt diese Tradition fort.
ASP ermöglicht Entwicklern und Webdesignern die Erstellung dynamischer,
browserunabhängiger Websites, indem Anwendungen und Skripts auf dem Server
anstatt auf dem Client ausgeführt werden.
ASP-Entwickler müssen weder CGI noch ISAPI verwenden, sondern können ein-
fach VBScript- oder JScript-Code in die HTML-Seite integrieren. Ferner haben
sie auch vollständigen Zugriff auf die HTTP-Antwort- und Anforderungsdaten-
ströme.
Ein weiterer wesentlicher Vorteil von ASP ist die Möglichkeit der Datenbankan-
bindung.

Neue ASP-Merkmale
ASP hat unter IIS 5.0 ein paar Erweiterungen bekommen, darunter
• Flusskontrollfähigkeit bei der Weiterleitung von Anfragen,
• leistungsoptimierte Objekte,
• Fehlerbehandlung.
Weitere neue Merkmale sind in den Kapiteln 16 und 17 beschrieben, in denen es
um ASP und seine installierbaren Komponenten geht.

1.4.2 Anwendungsschutz
IIS ermöglicht es Ihnen, Anwendungen in verschiedenen Prozessen ausführen zu
lassen. Standardmäßig führt IIS Anwendungen in einem Poolprozess aus, der
vom IIS-Prozess getrennt ist. Dies ähnelt der Ausführung einer Out-of-Process-
Anwendung.
Sie können auch lebenswichtige Anwendungen in einem eigenen Prozess ausfüh-
ren, wo sie weder andere Anwendungen stören noch von anderen Anwendungen
gestört werden.

1.4.3 ADSI 2.0


Entwickler können das ADSI (Active Directory Services Interface) nun dadurch
erweitern, dass sie Providern benutzerdefinierte Objekte, Methoden und Eigen-
schaften zur Verfügung stellen. Dadurch haben Sie, falls Sie einen Bedarf an sol-
chen Anpassungen haben, größere Flexibilität bei der Sitekonfiguration.
26 Unterstützung von Internetstandards

1.5 Unterstützung von Internetstandards


Was bringt ein Internetserver, der die Standards des Internets nicht unterstützt?
Nicht wirklich viel. Aus diesem Grund ist in IIS 5.0 die Unterstützung der gegen-
wärtigen Internetstandards implementiert.

1.5.1 Unterstützte Standards


IIS ist kompatibel mit dem Standard HTTP 1.1, d.h. er unterstützt die Methoden
put und delete, benutzerdefinierte Fehlermeldungen und benutzerdefinierte
HTTP-Header.

1.5.2 Mehrere Sites


Bei den Vorgängerversionen von IIS benötigten Sie für jede virtuelle Website, die
auf Ihrem Server lag, eine eigene IP-Adresse. Unter IIS 5.0 hingegen können Sie
mehrere Websites mit einer IP-Adresse erstellen und auf dem Server ablegen.
(Diese nützliche Funktionalität reduziert Ihre Kosten, denn Sie müssen nun nicht
mehrere IP-Adresse bei Ihrem Internetanbieter mieten.)

1.5.3 WebDAV
WebDAV (Web Distributed Authoring and Versioning, über das Internet verteilte
Erstellung und Versionsverwaltung) ermöglicht es Autoren, Dateien auf dem
Webserver über eine HTTP-Verbindung zu manipulieren. Das bedeutet, Sie kön-
nen Dateien in den WebDAV-Verzeichnissen auf dem Server über einen konventi-
onellen Webbrowser, die Windows 2000-Netzwerkumgebung oder Microsoft
Office 2000 kopieren, löschen oder bearbeiten.
Ferner gestattet WebDAV Ihnen, eine Versionskontrolle von Dateien durchzufüh-
ren, indem Sperrmöglichkeiten bereitgestellt werden. Dadurch ist es möglich,
dass mehrere Benutzer die gleiche Datei betrachten können, aber nur eine befugte
Person diese Datei modifizieren kann.
WebDAV verwendet dabei die Sicherheitsfunktionen von IIS und dem NTFS-
Dateisystem von Windows 2000.

1.5.4 SMTP- und NNTP-Dienste


IIS 5.0 kann mit diesen beiden Diensten im Internet oder in einem Intranet arbei-
ten. Dies ermöglicht es Ihnen, einen Newsgroupserver mit IIS unter Verwendung
des NNTP-Protokolls zu hosten. Ein NNTP-Server erlaubt die Realisierung von
Diskussionsgruppen sowohl in Ihrem internen Netzwerk oder WAN als auch über
das Internet.
Der SMTP-Dienst kann zum Senden und Empfangen von SMTP-Mails an Benut-
zer über das Internet oder Ihr Intranet verwendet werden. Diese Mails können in
Kapitel 1 • Merkmale von Internet Information Server 5.0 27

Form von Antworten an Clients gesendet werden, die mit Ihrer Website verbun-
den sind; die Funktion lässt sich aber auch zum Verschicken administrativer
Warnmeldungen an Webadministratoren benutzen.

Hinweis
Der zu IIS 5.0 gehörende NNTP-Dienst ist nicht als Push- oder Pullserver
für Nachrichten in Ihrer Organisation gedacht, sondern für Intranetdis-
kussionsforen.

1.5.5 PICS
PICS (Platform for Internet Content Selection Ratings, Plattform zur Bewertung
von Internetinhalten) ermöglicht Ihnen die Klassifizierung Ihrer Websites für den
Fall, dass solche Klassifizierungen vom Client angefordert werden. Beispiels-
weise können über PICS Inhalte klassifiziert werden, die nicht für Minderjährige
geeignet sind.

1.5.6 FTP-Wiederaufnahme
Ein weiterer langersehnter Neuzugang bei IIS 5.0 ist die FTP-Wiederaufnahme,
die die Fortsetzung eines unterbrochenen FTP-Downloads ermöglicht. Auf diese
Weise müssen Client oder Benutzer den Download nicht von vorne beginnen,
wenn dieser unterbrochen wurde.

1.5.7 HTTP-Komprimierung
Wenn bei Ihren Servern und Clients die Komprimierung aktiviert ist, dann erzie-
len Sie dank dieser HTTP-Komprimierung kürzere Übertragungszeiten.
Statische Dateien können zum schnelleren Zugriff komprimiert und zwischenge-
speichert werden und IIS kann auf Verlangen auch eine Komprimierung dyna-
misch generierter Seiten vornehmen.

1.6 Fazit
In diesem Kapitel wurden Ihnen eine Menge neuer oder modifizierter Funktionen
von IIS 5.0 vorgestellt. Diese neuen Merkmale und Erweiterungen verbessern die
Leistung, erhöhen die Sicherheit und optimieren die Administrierbarkeit von
IIS 5.0. Alle hier erwähnten Funktionen werden in den nun folgenden Kapiteln
detailliert erläutert.
Kapitel 2
Verwaltung von Websites

2.1 Funktionen zur Websiteverwaltung bei IIS 5.0 30


2.2 Programme zur Erstellung von Websites 31
2.3 ASP zur Websiteverwaltung nutzen 32
2.4 Verzeichnisse 36
2.5 Verknüpfungen umleiten 38
2.6 Inhalte 41
2.7 Fußzeilen 44
2.8 Server-Side Includes (SSI) 46
2.9 Fazit 53
30 Funktionen zur Websiteverwaltung bei IIS 5.0

Sie werden mir vermutlich zustimmen, wenn ich behaupte, dass sich eine Menge
getan hat, seit wir unsere ersten Websites ins Internet gestellt haben. Ich weiß
noch, wie ich Design und Layout meiner ersten Homepage in aller Eile auf jenem
Webserver zusammenpfuschte, damit die große weite Internetwelt sie sehen
konnte. Eine Menge Leute hatten die gleiche Idee, und deswegen sah man überall
kleine Bauarbeiter mit der Unterschrift »Under Construction«!
Damals legte ich meine Webseiten auf dem Server meines Internetproviders ab.
Das tue ich übrigens noch heute – sage und schreibe 5 Mbyte Festplattenspeicher
stellt mir mein Provider für eine Visitenkarte im Netz zur Verfügung. Das meiste,
was dort gespeichert ist, ist in Visual Basic geschrieben.
Aber wenn man sich dieses Szenario betrachtet – eine Website, die auf dem
Server eines Internetproviders liegt –, dann scheint das zwar auf den ersten Blick
ausreichend. Und doch fehlt etwas in diesem Bild: Die Möglichkeit, die Site
genauso zu verwalten, wie wir das wollen!
Die meisten Provider verwenden UNIX-Server und auch eine Menge Linux-
Server sind vorhanden. Ferner gibt es Webspaceprovider, die Festplattenspeicher
und zugehörige Dienste zu durchaus angemessenen Preisen anbieten – diese
basieren dann auf UNIX, NetWare oder Windows NT. Die Zahl der Anbieter, die
mit FrontPage Server Extensions arbeiten, nimmt zu, und so können Sie Ihre
Websites vom Arbeitszimmer oder Büro aus erstellen und administrieren. Aber
immer noch auf den Servern eines Providers.
Das mag für Einzelbenutzer, den Mittelstand und Selbstständige, die vielleicht
nur ein oder zwei Seiten als »Visitenkarte« im Web benötigen, ausreichend sein,
aber Sie lesen dieses Buch schließlich, weil Sie als IIS-Administrator für eine
große Organisation arbeiten und für die Erstellung und Wartung vollständiger und
oft sehr komplexer Websites verantwortlich sind, die häufig mehr Festplattenka-
pazität benötigen als die Anwendungen eines Durchschnittsbenutzers. Leistungs-
optimierung, höchste Sicherheit und bestmögliche Nutzung des investierten Kapi-
tals genießen bei IIS-Administratoren höchste Priorität.
Dieses Kapitel befasst sich mit der Verwaltung Ihres IIS 5.0-Servers für Web-,
FTP-, SMTP- und NNTP-Dienste. Sie finden hier Informationen, die Ihnen dabei
helfen sollen, das Beste aus IIS 5.0 herauszuholen.

2.1 Funktionen zur Websiteverwaltung bei IIS 5.0


Wenn Sie bei der Verwaltung Ihrer Website erfolgreicher und effizienter arbeiten
wollen (und wer will dies nicht), können Sie eine Reihe von Verwaltungsfunktio-
nen von IIS 5.0 benutzen. Sie können nicht nur Ihr Basisverzeichnis administrie-
ren, sondern auch relativ einfach virtuelle Verzeichnisse erstellen und verwalten.
Virtuelle Verzeichnisse erlauben es Ihnen, Ihre Website aus einem beliebigen Ver-
zeichnis auf dem Computer heraus zu veröffentlichen, auch wenn dieses nicht im
Basisverzeichnis angegeben ist.
Kapitel 2 • Verwaltung von Websites 31

Die Verwaltung von IIS 5.0 beginnt immer mit dem Aufruf der MMC (Microsoft
Management Console). Abbildung 2.1 zeigt das Snap-In INTERNET-INFORMATI-
ONSDIENSTE, das zur Administrierung verwendet wird.

Abb. 2.1: Das Snap-In INTERNET-INFORMATIONSDIENSTE – der zentrale Anlaufpunkt


bei der Verwaltung von IIS 5.0

2.2 Programme zur Erstellung von Websites


Zwar enthält IIS 5.0 keinerlei Programme, mit denen Sie Websites gestalten kön-
nen, aber er ermöglicht Ihnen trotzdem das Hosting von Seiten, die auf vielerlei
Art und Weise erstellt wurden. Eine der am häufigsten verwendeten Methoden ist
FrontPage.
Microsoft FrontPage ist Bestandteil von Microsoft Office 2000 (zumindest in der
Premium Edition). Dieses Webdesign-Programm mit WYSIWYG-Ansatz lässt
sich hervorragend mit IIS 5.0 verknüpfen, was eigentlich nicht überraschend ist.
Eine andere nette Funktion von FrontPage (und auch der Hauptgrund dafür, dass
ich es verwende) ist die Möglichkeit, eine Website von einem entfernten Standort
zu erstellen, sofern Sie die FrontPage Server Extensions installiert und die ent-
sprechenden Berechtigungen gesetzt haben. FrontPage bietet verschiedene
Ansichten für Struktur und Design einer Website an.
32 ASP zur Websiteverwaltung nutzen

Natürlich sind FrontPage und textbasierte Editoren nicht die einzigen Werkzeuge
zur Erstellung von Websites. Und beim IIS ist es auch völlig unwesentlich, wel-
ches Programm Sie verwenden; dieser Webserver akzeptiert sie alle.
Zu den Alternativen gehören andere Programme von Microsoft Office. Sie kön-
nen Ihre Word-Dokumente ebenso veröffentlichen wie Excel-Tabellenblätter, Prä-
sentationen aus dem Publisher und sogar Access-Datenbanken; verwenden Sie
einfach die vielfältigen Konvertierungs- und Exportfunktionen dieser Anwendun-
gen.
Welches Programm Sie auch verwenden: Es tut gut zu wissen, dass IIS 5.0 sie alle
mit offenen Armen empfangen wird.

2.3 ASP zur Websiteverwaltung nutzen


Wenn Sie ASP hören, dann kommen Ihnen vielleicht zuerst dynamische Websei-
ten oder Datenbankanbindungen in den Sinn. Die Funktionalität von ASP wird
durch die Verwendung von Skripts implementiert. Sie können VBScript (ein
Abkömmling von Visual Basic) oder auch JScript verwenden, welches auf der
Entwicklungssprache Java von Sun Microsystems basiert. (Wie immer an dieser
Stelle: Verwechseln Sie JScript nicht mit JavaScript.)
ASP verwendet zwei Arten von Skripts, nämlich serverseitige und clientseitige.
Wie Sie zu Recht annehmen, werden serverseitige Skripts auf dem Server und
clientseitige im Webbrowser des Clients ausgeführt.

Hinweis
Auch wenn nicht jeder Browser auf der Clientseite VBScript unterstützt:
Befürchten Sie nicht, jetzt JScript erlernen zu müssen, wenn Sie alle
Browsertypen abdecken wollen. Sie können VBScript auf der Serverseite
verwenden und plattformunabhängige Skripts erzeugen, die nur HTML-
Code an den Client schicken. Dadurch wird der Bedarf an mehreren Ver-
sionen einer Seite reduziert.

Ich kann Ihnen sicher nicht in ein oder zwei Kapiteln dieses Buches alles beibrin-
gen, was Sie über ASP wissen müssen; das Thema füllt sicher allein ein Buch für
sich. Ich kann Ihnen jedoch so viel zeigen, dass Sie für die Erfüllung der Verwal-
tungsaufgaben, von denen hier die Rede sein wird, ASP verwenden können.
Skripts, die auf dem Server ausgeführt werden, werden im HTML-Code der Seite
abgelegt und sind von den öffnenden und schließenden Tags <%> und </%> einge-
fasst. Ferner müssen Sie am Anfang der Seite – vor allen anderen Elementen – die
Skriptsprache spezifizieren (siehe Listing 2.1).
<%@ LANGUAGE=VBScript %>
<HTML>
<HEAD>
Kapitel 2 • Verwaltung von Websites 33

<TITLE>Seitenname</TITLE>
</HEAD>
<BODY>
<% Dim I
For I = 1 to 5
%>

<FONT SIZE=<% =I %>>


<CENTER>Beispiel für die Schriftgröße
<% Next %>

</BODY>
</HTML>

Listing 2.1: Einfache ASP-Seite (9640Font.asp)

Listing 2.1 zeigt einen kurzen Quellcode, bestehend aus dem HTML-Basiscode
und ein wenig ASP-Code in VBScript, der die Schriftgröße von 1 bis 5 vergrö-
ßert.
Auch wenn ASP ein großartiges Werkzeug für den Datenzugriff und andere
bereits genannte Funktionen ist (wir werden uns damit noch umfassend in
Kapitel 16 beschäftigen), können Sie es auch für triviale Aufgaben bei der Web-
serververwaltung einsetzen.
Eines der schönsten Dinge, die ich immer wieder bei Websites sehe, sind Naviga-
tionsleisten, die eine seitenübergreifende Konsistenz aufweisen. Microsoft Front-
Page ermöglicht so etwas mit Hilfe der Themen, die mit dem Programm ausgelie-
fert werden. Wenn Sie Ihre Seiten mit einem textbasierten Editor erstellen,
können Sie den gleichen Effekt recht einfach mit ASP oder Frames erzielen. Ich
werde Ihnen an dieser Stelle die ASP-Implementation erläutern.
Der erste Schritt besteht darin, eine Seite zu erstellen, die den für die Navigations-
leiste benötigten HTML-Code enthält. Als Nächstes erstellen Sie Ihre Hauptsei-
ten in HTML und verwenden die ASP-Anweisung #include, um die Navigations-
leiste in Ihre Seiten einzubinden. ASP kann das mit einer einzigen Zeile:
<!-- #include file="navbar.stm" -->

Die Listings 2.2, 2.3 und 2.4 zeigen drei kurze Beispiele mit sehr einfachem Auf-
bau. Sie können den Code einfach in die Zwischenablage kopieren und dann in
Ihrem HTML-Lieblingseditor einfügen und dann sehen, wie die Seiten funktio-
nieren.
Die erste Seite navbar.stm (Listing 2.2) ist eigentlich eine HTML-Seite, die ein-
fach die Dateierweiterung .stm erhalten hat. Wenn ASP auf diese Erweiterung
stößt, weiß es, dass es sich bei der Datei um eine #include-Datei handelt.
34 ASP zur Websiteverwaltung nutzen

<html>

<head>
<title>Seite mit Navigationsleiste</title>
</head>

<body>

<table border="l" width="100%" cellspacing="0" cellpadding="0">


<tr>
<td width="33%" align="center"><a href="home.asp">Home</a></td>
<td width="34%" align="center"><a href="kontakt.asp">Kontakt</a></td>
</tr>
</table>

</body>

</html>

Listing 2.2: Navigationsleiste für die Homepage (navbar.stm)

Listing 2.3 enthält Ihre Homepage home.asp, die auch die Eingangsseite Ihrer
Website ist. Beachten Sie die Verwendung des Skripttags am Anfang des Doku-
ments.
<%@ LANGUAGE=VBScript %>
<html>

<head>
<title>Homepage</title>
</head>

<body>

<!-- #include file="navbar.stm" -->


<h1 align="center"><b>Dies ist die Homepage</b></h1>
<hr>

<p>
Das ist der Hauptteil der Seite.<p>
<BR><BR>
Hier befindet sich die Navigationsleiste.
<!-- #include file="navbar.stm" -->
</body>

</html>

Listing 2.3: Die Homepage, die die Include-Dateien benutzt (home.asp)


Kapitel 2 • Verwaltung von Websites 35

Die letzte Seite kontakt.asp (Listing 2.4) soll einfach nur zeigen, dass durch
schlichte Verwendung der Anweisung #include ein und dieselbe Datei auf mehre-
ren Seiten benutzt werden kann. Weder die Homepage noch kontakt.asp beinhal-
ten den HTML-Code für die Navigationsleiste. Dieses Vorgehen bringt eine
Menge Zeitersparnis.
<%@ LANGUAGE=VBScript %>
<html>

<head>
<title>Kontaktseite</title>
</head>

<body>
<!-- #include file="navbar.stm" -->
<h1 align="center">Dies ist unsere Kontaktseite!</h1>
<hr>
<p>Gerry O'Brien – <a href="mailto:gkcomput@nbnet.nb.ca">gkcomput@nbnet.nb.ca
</a></p><p>Markt und Technik – <a href="http://www.mut.de">http://www.mut.de
</a></p><p>&nbsp;</p>
<p align="center">&nbsp;</p>
<!-- #include file="navbar.stm" -->
</body>

</html>

Listing 2.4: Kontaktseite mit zwei Include-Anweisungen (kontakt.asp)

Beachten Sie, dass der Dateiname den vollständigen Pfad zur Datei enthalten
muss, sofern sich diese nicht im gleichen Verzeichnis befindet wie die aufrufende
HTML-Datei. Außerdem hat es sich durchgesetzt, #include-Dateien mit der
Erweiterung .inc oder .stm zu versehen.

Warnung
Wenn Sie mit ASP-Seiten und entsprechendem Code arbeiten, denken
Sie immer daran, jede Seite, die ASP-Code enthält, mit der Erweiterung
.asp zu versehen, da der Code andernfalls nicht verarbeitet werden kann.

Hinweis
Wenn eine Ihrer ASP-Seiten im Browser angezeigt wird, dann rufen Sie
mal mit der entsprechenden Browserfunktion die Anzeige des Quelltex-
tes auf und vergleichen Sie den im Editor angezeigten Quellcode mit
dem Code, den Sie bei der Erstellung der Seite verwendet haben. Sie
werden feststellen, dass ASP-Code nicht angezeigt wird. Dieses nette
36 Verzeichnisse

kleine Feature verhindert sehr effektiv, dass der Clientbenutzer sich Ihren
Code zu eigen macht oder nachvollziehen kann, wie Ihre Seite erstellt
wurden.

Sie können ASP verwenden, um Ihre Benutzer auf einen korrekten URL umzulei-
ten, falls Sie Änderungen an der Webseite vorgenommen haben, die zur Folge
hatten, dass vorhandene URLs ungültig wurden; diese Umleitung erreichen Sie
ganz einfach mit der folgenden Zeile:
<% Response.Redirect (neue url) %>

ASP enthält auch eine Komponente namens Browser Capabilities. Mit dieser
Komponente können Sie spezielle Funktionen, die den einzelnen Browsern zu
eigen sind, bei diesen aktivieren, wenn sie Ihre Website besuchen. (Wenn Sie
diese Funktion verwenden wollen, sollten Sie mit COM-Komponenten vertraut
sein. Informationen dazu finden Sie in den meisten Lehrbüchern zu ASP.)

2.4 Verzeichnisse
Websites werden in Verzeichnissen gespeichert. Eigentlich eine triviale Aussage,
aber sie besagt alles über die Struktur einer Website. Die meisten Internetadminis-
tratoren werden eine logische Verzeichnisstruktur erstellen, die aus ihrer Perspek-
tive heraus sinnvoll erscheint. Normalerweise sind unterhalb des Basisverzeich-
nisses Unterverzeichnisse vorhanden, z.B. für Bilder, Skripts, #include-Dateien
usw.
Was IIS betrifft, gibt es zwei Verzeichnistypen, nämlich Basisverzeichnisse und
virtuelle Verzeichnisse. Diese Typen werden in den beiden folgenden Abschnitten
erklärt.

2.4.1 Basisverzeichnisse
Jede Website muss über ein Basisverzeichnis verfügen. In den meisten Fällen
wird dies <laufwerk>/InetPub/wwwroot sein, wobei <laufwerk> der Buchstabe
des Laufwerks ist, auf dem Sie IIS installiert haben. Sie können ein beliebiges
Verzeichnis als Basisverzeichnis auswählen.
Um ein Basisverzeichnis für Ihre Website zu erstellen, können Sie den Windows-
Explorer oder das Arbeitsplatz-Symbol verwenden. Erstellen Sie das Verzeichnis
in dem gewünschten Ordner oder Laufwerk. Sie können beispielsweise ein Ver-
zeichnis unterhalb des Ordners wwwroot erstellen, der sich im Verzeichnis Inet-
Pub befindet (zum Ordner wwwroot gelangen Sie mit dem Windows-Explorer).
Wählen Sie bei Anzeige des Ordners wwwroot den Menüeintrag Datei/Neu/
Ordner und geben Sie dem Verzeichnis einen Namen.
Kapitel 2 • Verwaltung von Websites 37

Abbildung 2.2 zeigt die Registerkarte BASISVERZEICHNIS im Dialogfeld EIGEN-


SCHAFTEN VON STANDARDWEBSITE.

Abb. 2.2: Die Registerkarte BASISVERZEICHNIS, wo Sie den Standort des


Basisverzeichnisses Ihrer Website festlegen

Wie Sie der Abbildung 2.2 entnehmen können, sind für die Auswahl eines Basis-
verzeichnisses drei Möglichkeiten vorhanden:
• Ein Verzeichnis auf diesem Computer. Verwenden Sie diese Option, wenn
sich das Basisverzeichnis auf demselben Computer befindet wie IIS.
• Eine Netzwerkfreigabe auf einem anderen Computer. Diese Option ist zu
wählen, falls Sie Ihr Basisverzeichnis auf einem anderen Computer erstellt und
dann freigegeben haben.
• Eine Umleitung zu einem URL. Diese Option sollten Sie verwenden, wenn
Ihr Basisverzeichnis auf einem Server im Internet liegt.
38 Verknüpfungen umleiten

2.4.2 Virtuelle Verzeichnisse


Ein virtuelles Verzeichnis wird bei Websites verwendet, die sich über mehrere
Verzeichnisse, Laufwerke oder Computer erstrecken. Ein Beispiel hierfür ist eine
Datenbank, auf die über eine ASP-Seite zugegriffen wird, wobei die Datenbank
auf einem anderen Netzwerkserver liegt; denkbar wäre aber auch ein freigegebe-
nes Netzlaufwerk, das alle Ihre Grafiken enthält. Um auf solche Dateien zugreifen
zu können, müssen Sie ein virtuelles Verzeichnis erstellen.
Zu diesem Zweck öffnen Sie zunächst das IIS-Snap-In in der MMC. Nachdem
Sie die Website gewählt haben, für die Sie das virtuelle Verzeichnis erstellen wol-
len, wählen Sie im Menü VORGANG den Eintrag NEU/VIRTUELLES VERZEICHNIS.
Der Assistent zum Erstellen eines virtuellen Verzeichnisses geleitet Sie dann
durch den Erstellungsvorgang.
Alternativ können Sie, sofern Ihre Festplatte NTFS-formatiert ist (was für jeden
NT-Administrator eine Selbstverständlichkeit sein sollte), auch auf eine andere
Weise ein virtuelles Verzeichnis einrichten:
1. Klicken Sie im Windows-Explorer mit der rechten Maustaste auf das zu ver-
wendende Verzeichnis.
2. Wählen Sie aus dem Kontextmenü den Eintrag FREIGABE.
3. Aktivieren Sie die Registerkarte WEBFREIGABE.
Abbildung 2.3 zeigt, wie das aussehen sollte. Im Listenfeld FREIGEBEN werden
die vorhandenen Websites angegeben, für die dieses Verzeichnis freigegeben wer-
den kann. Wenn Sie das Optionsfeld DIESEN ORDNER FREIGEBEN selektieren,
können Sie Ihrem freigegebenen Verzeichnis ein Alias hinzufügen.
Ein virtuelles Verzeichnis können Sie löschen, indem Sie die MMC-Konsole auf-
rufen, es dort auswählen und dann im Menü VORGANG den Eintrag LÖSCHEN
wählen.

2.5 Verknüpfungen umleiten


Warum sollte man Verknüpfungen auf seiner Website umleiten müssen? Schließ-
lich sind doch all Ihre Links auf dem neusten Stand, oder etwa nicht?
Meistens halten Web-Administratoren ihre URLs tatsächlich auf dem aktuellen
Stand und reparieren zerstörte Verknüpfungen regelmäßig. Der Hauptgrund für
die Umleitung wäre in diesem Fall die Erstellung oder der Umbau einer vorhan-
denen Site.
IIS 5.0 ermöglicht Ihnen die Umleitung von Ressourcenverbindungen zu anderen
URLs oder Programmen auf dem Server. In den folgenden beiden Abschnitten
werden wir uns mit diesen Möglichkeiten beschäftigen.
Kapitel 2 • Verwaltung von Websites 39

Abb. 2.3: Die Registerkarte WEBFREIGABE, auf der die Eigenschaften für das zu
erstellende virtuelle Verzeichnis eingestellt werden

2.5.1 Umleitung zu einem Verzeichnis


Wenn Sie Verbindungen zu einer Datei in einem anderen Verzeichnis oder auch
zu einem anderen URL umleiten wollen, dann können Sie dies unter Verwendung
des IIS-Snap-Ins in der MMC tun.
Abbildung 2.4 zeigt das Dialogfeld EIGENSCHAFTEN VON STANDARDWEBSITE mit
der selektierten Registerkarte BASISVERZEICHNIS. Ich habe dort festgelegt, dass
alle Verbindungsanforderungen an die im Textfeld spezifizierte Adresse weiterge-
leitet werden. Beachten Sie, dass Sie hier drei Optionen wählen können:
1. Der exakte oben angegebene URL. Diese Einstellung leitet den anfragenden
Client an die angegebene Adresse weiter.
2. Ein Verzeichnis unterhalb von diesem. Diese Option wird benutzt, um von
einem übergeordneten auf ein untergeordnetes Verzeichnis umzuleiten. Wenn
Ihr Unterverzeichnis neuerordner heißt, dann würden Sie in das Textfeld /
neuerordner eingeben und diese Option dann selektieren.
40 Verknüpfungen umleiten

3. Eine dauerhafte Umleitung für diese Ressource. Wenn der Browser die
Meldung 301 Permanent Redirect (Dauerumleitung) unterstützt, dann teilt die-
se Option mit der korrekten Angabe der neuen URL dem Browser mit, dass Le-
sezeichen, die sich auf den alten URL beziehen, automatisch aktualisiert
werden sollen.

Abb. 2.4: Auf der Registerkarte BASISVERZEICHNIS sehen Sie, wie die Umleitung für
das Basisverzeichnis zu einem anderen URL konfiguriert ist

2.5.2 Umleitung zu einem Programm


Sie können Verbindungsanforderungen – etwa zu Protokollzwecken – auch zu
einem Programm umleiten. In diesem Fall könnten Sie die Umleitung verwenden,
um notwendige Parameter an die Anwendung weiterzuleiten.
Umleitungen können auch Jokerzeichen und Variablen benutzen. Die Umlei-
tungsvariablen werden dann verwendet, um Teile des Ursprungs-URL mit dem
neuen URL zu senden. Wenn Sie beispielsweise an die neue Adresse Parameter
(z.B. als Zeichenketten in Formularen) senden müssten, dann könnte das etwa so
aussehen:
http://www.meinserver.de/feedback/newform.asp?alter=35
Kapitel 2 • Verwaltung von Websites 41

Die Umleitungsvariable, die Sie zur Weiterleitung der im URL enthaltenen Para-
meter (wie etwa der Parameter ?alter=35) benutzen würden, heißt $P. Durch Ver-
wendung dieser Variablen können Sie festlegen, dass der Parameter der Umlei-
tungsadresse hinzugefügt wird. Diese Umleitungsadresse hieße dann
http://www.neuerserver.de/neufeedback/newform.aspPARAMS=$P

und der Parameter ?alter=35 würde dann an diese Umleitungsadresse weiterge-


reicht.
Die Umleitung an ein Programm entspricht der Umleitung an eine Adresse oder
eine Datei mit der Ausnahme, dass der Programmname im Textfeld am Ende des
URL eingegeben werden muss:
http://www.neuerserver.de/anwendungen/protokoll.exe

Sie müssen die Option ...DEM EXAKTEN OBEN ANGEGEBENEN URL aktivieren, um
zu verhindern, dass IIS den Dateinamen an den URL anhängt und damit die
Umleitungsanforderung ungültig macht.

2.6 Inhalte
Die Inhalte einer Website müssen aus zwei Kontexten heraus betrachtet werden:
Dem Ablauf seiner Gültigkeit und der Inhaltsklassifikation.
Wenn Sie diese beiden Aspekte Ihres Websiteinhalts adäquat verwalten, machen
Sie das Browsing für den Client effizienter und auch angenehmer. Sie verhindern,
dass Kunden veraltete Informationen angezeigt werden, und gestatten es Eltern,
Inhaltsbeschränkungen zu konfigurieren, die verhindern, dass Minderjährige für
sie ungeeignete Webseiten betrachten können.

2.6.1 Ablauf der Gültigkeit


Um Ablaufdaten für die Inhalte Ihrer Site einzustellen, können Sie HTTP-Header
benutzen. Der Browser vergleicht das Datum auf dem lokalen Computer mit dem
Ablaufdatum im Header und entscheidet auf dieser Basis, ob er eine im Cache
vorhandene Kopie der Seite verwenden kann oder die Inhalte aktualisieren soll.
Wie bei anderen Verwaltungsaufgaben auch greifen Sie hier über das IIS-Snap-In
auf das Dialogfeld EIGENSCHAFTEN zu. Markieren Sie auf der Registerkarte
HTTP-HEADER das Kontrollkästchen INHALT LÄUFT AB UND WIRD UNGÜLTIG
und wählen Sie dann eine der drei verschiedenen Optionen. Abbildung 2.5 zeigt,
welche Einstellungen ich für meine Verwaltungswebsite vorgenommen habe.
42 Inhalte

Hinweis
Durch Auswahl der entsprechenden Komponente im MMC-Fenster kön-
nen Sie den Inhalt von Dateien, Verzeichnissen oder der gesamten Web-
site ungültig werden lassen.

Abb. 2.5: Die Registerkarte HTTP-HEADER, auf der Sie alle Parameter für den Ablauf
des Objektinhalts einstellen können

In Abbildung 2.5 habe ich festgelegt, dass der Inhalt meiner Verwaltungswebsite
zu einem bestimmten Datum ungültig wird, nämlich am 31. März 2001 um
0:00 Uhr.
Mit den anderen beiden Optionen können Sie den Inhalt wahlweise sofort oder
nach einer bestimmten Anzahl von Tagen ablaufen lassen. Wird eine Seite dyna-
misch generiert, dann sollte der Inhalt sofort ablaufen – etwa bei Seiten, auf
denen der Benutzer ein Formular ausfüllt; dieser Inhalt dürfte nicht zwischenge-
speichert werden. Ein Beispiel für Seiten, die nach einer bestimmten Anzahl von
Tagen auslaufen, wären Seiten mit zeitlich begrenzten Sonderangeboten.
Kapitel 2 • Verwaltung von Websites 43

2.6.2 Klassifikation von Inhalten


Eine Klassifikation von Inhalten Ihrer Website ist nur dann notwendig, wenn Sie
dort fragwürdige Inhalte anbieten. Sie können die Klassifikationen für die Inhalts-
faktoren Gewalt, Sex, Nacktaufnahmen und Sprache einstellen.
Rufen Sie zur Einstellung die MMC auf, wählen Sie dort die gewünschte Site und
öffnen Sie dann das Dialogfeld EIGENSCHAFTEN. Sie können Klassifikationen
aktivieren, indem Sie auf der Registerkarte HTTP-HEADER die Schaltfläche
KLASSIFIKATIONEN BEARBEITEN anklicken (siehe auch Abbildung 2.5).
Abbildung 2.6 zeigt die Registerkarte KLASSIFIKATIONSDIENST des Dialogfelds
INHALTSKLASSIFIKATION. Wenn Sie auf dieser Seite eine Schaltfläche anklicken,
wird eine Internetseite aufgerufen, auf der die Klassifikationen detailliert erläutert
werden. Ich empfehle Ihnen, sich mit den verschiedenen Inhaltklassifikationen
vertraut zu machen.

Abb. 2.6: Die Registerkarte KLASSIFIKATIONSDIENST für die Klassifikation einer Site

Sie können die Website des RSAC (Recreational Software Advisory Council)
auch direkt aufrufen, indem Sie auf die Schaltfläche FRAGEBOGEN ZUR KLASSIFI-
KATION klicken. Dort können Sie Ihre Site registrieren lassen und Beispielfrage-
bögen betrachten.
44 Fußzeilen

Aktivieren Sie nun die Registerkarte KLASSIFIKATION, auf der der Inhalt Ihrer
Site, einer Datei oder eines Verzeichnisses klassifiziert wird. Abbildung 2.7 zeigt
ein Beispiel für eine Klassifikation des Faktors GEWALT. Durch Verschieben des
Schiebereglers können Sie die Klassifikation ändern.

Abb. 2.7: Auf der Registerkarte KLASSIFIKATION können Sie nicht nur eine
Inhaltsklassifikation auswählen, sondern den Grad auch einstellen

Ich hätte die Klassifikation auch auf STUFE 1: KAMPF statt – wie abgebildet – auf
STUFE 2: TÖTEN stellen können; das ist weniger gewalttätig.

2.7 Fußzeilen
Fußzeilen auf Webseiten werden ähnlich verwendet wie Fußzeilen bei einem
Textverarbeitungsdokument. Sie legen in einer Fußzeilendatei Informationen ab,
die am Ende jeder Seite Ihrer Site angezeigt werden sollen.
Sie können mit Fußzeilendateien Informationen wie Kontaktadressen, Infos zum
Autor der Site oder auch ein Firmenlogo anzeigen lassen.
Erstellen Sie zunächst eine HTML-Datei mit den zur Inhaltsdefinition notwendi-
gen HTML-Tags. Sie müssen kein vollständiges Dokument mit <HTML>, <HEAD>,
Kapitel 2 • Verwaltung von Websites 45

<BODY> und anderen Tags schreiben; erstellen Sie gerade so viel Code, dass der
Inhalt in HTML-Form angezeigt wird. Listing 2.5 zeigt einen wahrhaft kurzen
Quellcode:
<I>Gerry O'Brien</I><p>
<a href=mailto:gkcomput@nbnet.nb.ca><I>gkcomput@nbnet.nb.ca</I>

Listing 2.5: Fußzeile für Webseiten

Damit Ihre Fußzeile am Ende jeder Seite angefügt wird, müssen Sie sie im ent-
sprechenden Eigenschaftsdialogfeld spezifizieren. Starten Sie also den Internet-
dienst-Manager (sofern er nicht bereits läuft) und wählen Sie die Standardwebsite
oder eine andere Site Ihrer Wahl. Rufen Sie wie üblich das Dialogfeld EIGEN-
SCHAFTEN auf und aktivieren Sie die Registerkarte DOKUMENTE. Diese ähnelt der
in Abbildung 2.8 gezeigten.

Abb. 2.8: Die Registerkarte DOKUMENTE, wo Sie den Standort der Fußzeilendatei
festlegen

Markieren Sie das Kontrollkästchen DOKUMENTFUßZEILE AKTIVIEREN und geben


Sie Pfad und Namen der als Fußzeile erstellten Datei ein. Sie können auch die
46 Server-Side Includes (SSI)

Schaltfläche DURCHSUCHEN anklicken und dann eine Datei auf dem lokalen
Rechner oder im Netzwerk auswählen.

Warnung
Wenn häufig auf die Seiten zugegriffen wird, kann die Verwendung einer
Dokumentfußzeile zu Leistungseinbußen beim IIS führen.

Hinweis
Fußzeilen funktionieren auf .asp-Seiten nicht, sondern nur auf .html- und
.htm-Seiten. Allerdings brauchen Sie auf .asp-Seiten ohnehin keine Fuß-
zeile, da Sie für den gleichen Zweck #include-Dateien verwenden kön-
nen.

2.8 Server-Side Includes (SSI)


Wie Sie bereits im Abschnitt »ASP zur Websiteverwaltung nutzen« gesehen
haben, sind SSIs eine fantastische Möglichkeit, Informationen zu einer Webseite
hinzuzufügen, ohne den Inhalt der gesamten Seite neu erstellen zu müssen.
Wenn Sie mit den Programmiersprachen C und C++ vertraut sind, werden Sie
wissen, dass Entwickler, die diese Sprachen verwenden, sich bereits seit einiger
Zeit an den #include-Dateien erfreuen können. Hierbei handelt es sich um bereits
erstellte, fehlerbereinigte und getestete Prozeduren und Funktionen, die nur noch
in eine Anwendung eingebunden werden müssen – und die Entwickler haben
nicht eine einzige Zeile Code zu schreiben!
Aus diesem Grunde nun verwenden wir auch bei IIS #include-Dateien. Vielleicht
haben Sie für Ihre Site bereits einen Copyright-Hinweis, eine Navigationsleiste
oder eine Bannerrotation geschrieben, die auf einer Seite laufen. Warum nun
sollte man diesen Code für alle Seiten neu schreiben, auf denen er gebraucht
wird? Mit Hilfe der #include-Anweisung können Sie IIS sagen, dass er diese
Datei an der entsprechenden Stelle der Seite einlesen soll, an der sich die Anwei-
sung befindet. IIS platziert den Code dann an der richtigen Stelle, bevor er die
HTML-Seite an den Client schickt; der dadurch entstandene Code wird beim
Client exakt so umgesetzt, als hätten Sie ihn selbst dort eingetragen.
Sie können mit Hilfe von #include-Anweisungen auch Dateiinformationen – etwa
die Dateigröße – einfügen oder Systembefehle oder -anwendungen aufrufen.

Hinweis
#include-Dateien müssen aufgrund der speziellen Verarbeitungsanforde-
rungen korrekt benannt werden, damit IIS sie finden kann. Die Standard-
erweiterungen für solche Dateien sind .stm, .shtm und .shtml.
Kapitel 2 • Verwaltung von Websites 47

2.8.1 Includes aktivieren


Standardmäßig verarbeitet IIS #include-Dateien, vorausgesetzt, Sie haben die
Dateien mit den erwähnten Dateikennungen versehen. Es ist hierbei allerdings
wesentlich, dass die Dateien in einem Verzeichnis abgelegt sind, das Berechtigun-
gen für Skripts oder ausführbare Dateien enthält. Diese werden durch die NTFS-
Berechtigungen bestimmt, die für die Verzeichnisse konfiguriert wurden. Sie kön-
nen diese Berechtigungen für ein Verzeichnis in dessen Dialogfeld EIGENSCHAF-
TEN überprüfen und gegebenenfalls modifizieren.

Abbildung 2.9 zeigt das Dialogfeld des Verzeichnisses /InetPub/Scripts auf mei-
nem Webserver. Beachten Sie, dass die Optionen AUSFÜHRBERECHTIGUNGEN
unten im Dialogfeld die Einstellung SKRIPTS UND AUSFÜHRBARE DATEIEN hat;
eine solche Berechtigung erscheint für ein Verzeichnis, dass ausführbare Skripts
enthält, doch eher sinnvoll.

Abb. 2.9: Das Dialogfeld EIGENSCHAFTEN des Verzeichnisses /INETPUB/SCRIPTS

Sie sehen (und werden es auch weiterhin sehen), dass die Verwendung von SSIs
auf Ihrer Website eine Menge Vorteile bringt. Ungeachtet dessen kann der sorg-
lose Umgang mit Includes dazu führen, dass Seiten nicht geladen oder nicht wie
48 Server-Side Includes (SSI)

gewünscht angezeigt werden, weil die #include-Datei nicht gefunden wird oder
IIS sie nicht verarbeiten kann. Sie müssen also bei der Verwaltung Ihrer Site kon-
sequent vorgehen.
Wenn Sie – warum auch immer – keine #include-Dateien mehr verwenden oder
ihre Verarbeitung deaktivieren wollen, dann können Sie dies tun; gehen Sie wie
folgt vor, um Server-Side Includes zu deaktivieren:
1. Wählen Sie im Internetdienst-Manager die Website, für die Sie die Includes
deaktivieren wollen, und öffnen Sie deren Dialogfeld EIGENSCHAFTEN.
2. Aktivieren Sie die Registerkarte BASISVERZEICHNIS (oder VERZEICHNIS).
3. Klicken Sie im Abschnitt ANWENDUNGSEINSTELLUNG auf KONFIGURATION.
4. Nun wird ein Dialogfeld ähnlich dem in Abbildung 2.10 gezeigten aufgerufen.
Stellen Sie sicher, dass die Registerkarte ANWENDUNGSZUORDNUNGEN selek-
tiert ist.
5. Wählen Sie die Dateitypen .stm, .shtm und/oder .shtml und klicken Sie auf die
Schaltfläche ENTFERNEN.

Abb. 2.10: Liste der in meiner IIS-Installation vorhandenen


Anwendungszuordnungen
Kapitel 2 • Verwaltung von Websites 49

Durch diesen Vorgang werden diese drei Erweiterungen, die der Kennzeichnung
von #include-Dateien dienen, entfernt.

2.8.2 #include-Anweisung verwenden


Wie Sie bislang gesehen haben, lassen sich serverseitige #include-Anweisungen
verwenden, um #include-Dateien in HTML-Seiten zu integrieren, bevor diese an
den Clientbrowser gesendet werden. Es gibt noch ein paar andere Anweisungen,
die weitere Funktionen bereitstellen.
Sie können diese Anweisungen beispielsweise verwenden, um Daten zu formatie-
ren, die an den Client geschickt werden, oder von einer Anwendung berechnete
Ergebnisse einzufügen. Der folgende Abschnitt zeigt Ihnen, welche Anweisungen
verfügbar sind und was diese leisten.

2.8.3 Referenz: Server-Side Includes

#config
Diese Anweisung dient der Formatierung von Datumsangaben, Dateigrößen oder
Fehlermeldungen, die an den Client gesendet werden. Sie kann nicht in .asp-
Dateien benutzt werden, sondern findet ausschließlich in statischen HTML-
Dateien Verwendung.
Syntax:
<!-- #config parameter=zeichenkette -->

Formatiert wird der Parameter parameter. Hier gibt es drei Möglichkeiten:


• ERRMSG. Hiermit können Sie die Fehlermeldungen steuern, die an den Client ge-
sendet werden. Wenn bei der Verarbeitung einer Anweisung ein Fehler auftritt,
dann enthält die Fehlermeldung je nach Fehler unterschiedliche Debuginfor-
mationen. Sie können aber auch eine benutzerdefinierte Meldung im Parameter
zeichenkette festlegen, die statt dessen an den Client gesendet wird, so etwa:
<!-- #config ERRMSG="Wir entschuldigen uns für die aufgetretene Fehlfunk-
tion." -->

• TIMEFMT. Dieser Parameter erlaubt Ihnen die Spezifizierung eines Formats für
Datum und Uhrzeit, das an den Clientbrowser geschickt wird. Sie können bei-
spielsweise die Option %A im Parameter zeichenkette verwenden, um den voll-
ständigen Namen des Tages anzeigen zu lassen, z.B. »Mittwoch«. Eine
vollständige Liste der verfügbaren Datums- und Uhrzeitformatierungen finden
Sie in der Onlinehilfe für IIS.
<!-- #config TIMEFMT="%m/%d/%y" -->
50 Server-Side Includes (SSI)

Bei dieser Formatierung wird das Datum als MM/TT/JJ angezeigt.


• SIZEFMT. Ersetzen Sie den Parameter zeichenkette durch eine der beiden folgen-
den Optionen:
ABBREV  
    
 

BYTE  


    


<!-- #config SIZEFMT="bytes" -->

Bei dieser Formatierung wird die Dateigröße in Byte (statt Kbyte) angezeigt.

#echo
Diese Anweisung können Sie verwenden, um Variablen in den HTML-Code ein-
zufügen. Wie auch die Anweisung #config kann diese Anweisung nur in HTML-
Dateien, nicht aber in .asp-Dateien benutzt werden.

Hinweis
Wenn Sie mit Variablen arbeiten, die Sie in eine .asp-Seite einfügen wol-
len, dann können Sie die Methoden Response.ServerVariables ver-
wenden. Weitere Informationen hierzu finden Sie in der ASP-
Dokumentation.

Syntax:
<!-- #echo var=variable -->

variable bestimmt dabei die Variable, die Sie einfügen wollen. Die folgenden
Werte sind hierfür gültig:
• ALL_HTTP. Beinhaltet HTTP-Header, die nicht bereits in andere Variablen ein-
gelesen wurden. Diese bestehen aus Zeichenketten mit der Endung NULL.
Einzelne Header sind durch Zeilenwechsel voneinander getrennt.
• AUTH_PASSWORD. Diese Variable ist nur für die Standardauthentifizierung vor-
handen. Sie enthält den Wert, den der Client im Dialogfeld AUTHENTIFIZIE-
RUNG eingegeben hat.
• AUTH_TYPE. Diese Variable zeigt den verwendeten Authentifizierungstyp an –
etwa Standardauthentifizierung oder integrierte Authentifizierung. Wenn die
Variable leer ist, wurde keine Authentifizierung verwendet.
• AUTH_USER. Der Wert Benutzer, der im Dialogfeld CLIENTAUTHENTIFIZIERUNG
eingegeben wurde.
• CONTENT_LENGTH. Anzahl der Bytes, die das Skript vom Client erwartet.

• CONTENT_TYPE. Art der Daten, die über die Methode POST angefordert werden.
Kapitel 2 • Verwaltung von Websites 51

• DOCUMENT_NAME. Name der aktuellen Datei.

• DOCUMENT_URI. Der virtuelle Pfad der aktuellen Datei (falls vorhanden)

• DATE_GMT. Leitet das aktuelle Datum mit Bezug auf die GMT-Zeit (Greenwich
Mean Time) weiter.
• DATE_LOCAL. Entspricht DATE_GMT, nur mit Bezug auf die lokale Zeit.

• GATEWAY_INTERFACE. Die Revision der vom Server verwendeten CGI-Spezifika-


tion.
• HTTP_ACCEPT. Eine spezieller HTTP-Header. Wenn Sie mehrere accept-Fälle
haben, dann werden diese durch Kommata getrennt.
• LAST_MODIFIED. Gibt das Datum zurück, an dem das Dokument zum letzten Mal
geändert wurde.
• PATH_INFO. Beinhaltet alle zusätzlichen Pfaddaten, die der Client zurückgege-
ben hat.
• PATH_TRANSLATED. Erweitert unter Verwendung von PATH_INFO den virtuellen
Pfad (falls vorhanden) in eine vollständige Verzeichnisangabe.
• QUERY_STRING. Beinhaltet die Informationen, die dem ? im zurückgegebenen
URL folgten, z.B. Formularfelddaten, die an .asp-Skripts weitergegeben wer-
den.
• QUERY_STRING_UNESCAPED. Eine Version der Zeichenkettenabfrage, die nicht
URL-kodiert ist.
• REMOTE_ADDR. IP-Adresse des Clients, der die Anfrage gesendet hat.

• REMOTE_HOST. Hostname des Clients, der die Anfrage gesendet hat.

• REMOTE_USER. Der vom Client gesendete und vom Server authentifizierte Be-
nutzername. Bei anonymen Anmeldungen bleibt diese Variable leer.
• REQUEST_METHOD. Die HTTP-Anforderungsmethode.

• SCRIPT_NAME. Name des ausgeführten Skripts.

• SERVER_NAME. Der Hostname oder die IP-Adresse des Servers .

• SERVER_PORT. Der Anschluss, über den die Anforderung empfangen wurde.

• SERVER_PORT_SECURE. Wenn die Anfrage an einem sicheren Anschluss empfan-


gen wird, gibt diese Variable den Wert 1 zurück, ansonsten 0.
• SERVER_PROTOCOL. Name und Version des bei der Anforderung verwendeten
Protokolls, also in der Regel HTTP/1.0.
52 Server-Side Includes (SSI)

• SERVER_SOFTWARE. Name und Version der Webserversoftware, die auf die An-
forderung antwortet.
• URL. Der reine URL ohne weitere Parameter.

#exec
Diese Anweisung können Sie verwenden, um auf dem Webserver eine Anwen-
dung oder einen Systembefehl ausführen zu lassen. Wie auch die Anweisung
#config kann diese Anweisung nur in HTML-Dateien, nicht aber in .asp-Dateien
benutzt werden.
Syntax:
<!-- #exec befehlstyp=befehlsbeschreibung -->

befehlstyp ist der Typ des aufrufenden Befehls. Dieser kann die folgenden Werte
haben:
• CGI. Dieser Typ ruft ein CGI- oder ein ASP-Skript oder aber eine ISAPI-
Anwendung auf. Sie müssen Pfad und Namen der Anwendung eingeben, ge-
folgt vom ? und allen Parametern im Parameter befehlsbeschreibung.
• CMD. Hiermit rufen Sie einen Systembefehl auf. Sie geben den vollständigen
Pfad und alle gegebenenfalls benötigten Parameter an, die Sie – getrennt durch
Leerzeichen – im Parameter befehlsbeschreibung benennen.

Warnung
Diese Funktion ist standardmäßig deaktiviert und Sie sollten sie nur mit
größter Vorsicht verwenden. Ein Systembefehl wie beispielsweise format
könnte durchaus aufgerufen werden, womit sich eine Festplatte formatie-
ren ließe.

#flastmod
Diese Anweisung teilt dem Webserver mit, die Angabe der Zeit einzufügen, an
der die benannte Datei zum letzten Mal geändert wurde. Auch hier gilt wieder:
Diese Anweisung kann nur in HTML-Dateien, nicht aber in .asp-Dateien benutzt
werden.
Syntax:
<!-- #flastmod pfadtyp=dateiname -->

pfadtyp bestimmt, ob es sich hierbei um einen virtuellen oder einen realen Pfad
handelt. Die Werte lauten:
• FILE. Pfad, der auf das Verzeichnis verweist, in dem die Datei gespeichert ist.

• VIRTUAL. Pfad eines virtuellen Verzeichnisses auf dem Server.


Kapitel 2 • Verwaltung von Websites 53

Der Parameter dateiname bezeichnet den Namen der Datei, von der Sie wissen
wollen, wann diese zum letzten Mal modifiziert wurde.

#fsize
Diese Anweisung bewirkt, dass der Server die Größe der angegebenen Datei in
die HTML-Seite einfügt. Diese Anweisung kann nur in HTML-Dateien, nicht
aber in .asp-Dateien benutzt werden.
Syntax:
<!-- #fsize pfadtyp=dateiname -->

Die beiden Parametern entsprechen den unter #flastmod beschriebenen.

#include
Wir haben diese Anweisung bereits weiter oben beschrieben und verwendet. Sie
weist den Server an, den Inhalt der spezifizierten Datei zu lesen und zu verarbei-
ten. Sie können diese Anweisung sowohl in HTML- als auch in .asp-Dateien ver-
wenden.
Syntax:
<!-- #include pfadtyp=dateiname -->

Auch hier weist pfadtyp wieder darauf hin, ob ein realer oder ein virtueller Pfad
vorliegt. dateiname bezeichnet die einzufügende Datei.

Hinweis
Es soll auch an dieser Stelle noch einmal darauf hingewiesen werden,
dass in jedem Fall eine der Dateierweiterungen .stm, shtm oder shtml zu
verwenden ist. Dies gilt jedoch nicht für den Fall, dass Sie unter den
ANWENDUNGSZUORDNUNGEN eine andere Erweiterung zugeordnet
haben.

2.9 Fazit
Zur Verwaltung einer Website gehört mehr als nur die Erstellung und Aktualisie-
rung der HTML-Dateien, die auf dem Server vorhanden sind. Durch die Verwen-
dung von ASP-Code in Form von VBScript oder JScript können Sie die Bearbei-
tung alltäglicher Aufgaben weitaus effizienter gestalten.
Wichtig ist außerdem die Umleitung von Anfragen, falls Clients verschobene
oder gelöschte Seiten auf dem Server anfordern. Durch Verwendung der Klassifi-
zierungsmöglichkeiten von IIS 5.0 können Sie Ihren Besuchern die Möglichkeit
bieten, bestimmte Seiten inhaltsbezogen auszufiltern.
54 Fazit

Ferner haben Sie gesehen, wie sich Server-Side Includes nutzen lassen, um Daten
zu erhalten oder zurückzugeben, die sich auf bestimmte Dateien und Dokumente
beziehen, mit denen Ihr Server arbeitet.
Teil II

Administration
Kapitel 3 Administration von Websites und FTP-Sites
Kapitel 4 Administration von SMTP- und NNTP-Diensten
Kapitel 5 Publizieren mit WebDAV
Kapitel 6 Namensauflösung
Kapitel 7 Anwendungen konfigurieren
Kapitel 8 Sicherheit
Kapitel 9 Benutzerdefinierte Fehlermeldungen
Kapitel 10 Aktivitäten von Sites protokollieren
Kapitel 11 Leistungsoptimierung
Kapitel 12 Replikation und Clusterunterstützung
Kapitel 13 Administrationsskripts
Kapitel 14 IIS programmgesteuert administrieren
Kapitel 15 Remoteadministration
Kapitel 3
Administration von Websites und
FTP-Sites

3.1 Einführung 58
3.2 Sites starten und beenden 60
3.3 Sites hinzufügen 64
3.4 FTP-Verzeichnisse, Meldungen und Ausgabeformate 69
3.5 Websites benennen 72
3.6 IIS erneut starten 74
3.7 Unterstützung von Hostheadernamen 77
3.8 Voreinstellungen ändern 77
3.9 IIS-Einstellungen sichern und wiederherstellen 79
3.10 Konten für Website-Operatoren 82
3.11 Abwärtskompatible Siteadministrierung 83
3.12 Fazit 83
58 Einführung

3.1 Einführung
In diesem Kapitel werden wir alle Aufgaben und Probleme besprechen, die bei
der Administration von Websites und FTP-Sites auf Ihrem IIS-Servers auftreten
können. Wenn Sie Ihre FTP- oder Website erstellt und auf den Server übertragen
haben, werden Sie feststellen, dass die Administration der Site eine Menge Res-
sourcen verbraucht. Es wäre schön, wenn IIS die Verwaltungsaufgaben selbst aus-
führen könnte – man will ja nicht immer nur babysitten.
Es ist aber ein weiter Weg, bis Ihre FTP- und Websites vollständig fehlerfrei
arbeiten. Auch wenn sich nicht alle potentiellen Fehlschläge und Probleme vor-
aussehen und verhindern lassen, so können Sie trotzdem dafür sorgen, dass Ihr
Server und Ihre Sites mit allerhöchster Effizienz arbeiten, indem Sie die Adminis-
trationsaufgaben ausführen, die in diesem Kapitel beschrieben werden.
Die Administration ist bei IIS 4.0 und 5.0 von noch größerer Wichtigkeit, denn
diese Webplattformen können mehrere virtuelle FTP- und Websites hosten. Es ist
vergleichsweise einfach, einen Server zu überwachen und zu betreiben, auf dem
genau eine Website mit einer IP-Adresse und einem Domänennamen vorhanden
ist. Diese Aufgabe wird jedoch sehr zeitaufwändig und kompliziert, sobald Sie
anfangen, virtuelle Websites hinzuzufügen.
Es sind beim Hosting mehrerer Sites auf einem IIS 5.0-Server drei Szenarios
denkbar. Das erste ist die Verwendung mehrerer Anschlüsse. Mit dem Internet-
dienst-Manager können Sie einer zweiten Site einen anderen als den
Standardanschluss 80 zuweisen, d.h. diese Site wird dann als von der ersten
unterschiedliche Site betrieben. Beachten Sie jedoch, dass in diesem Zusammen-
hang alle Clients wissen müssen, dass die Alternativsite über diesen zweiten
Anschluss zu erreichen ist, denn standardmäßig sind alle Browser auf den
Anschluss 80 eingestellt.
Die zweite Möglichkeit, mehrere Sites auf einen Server zu legen, besteht darin,
mehreren Netzwerkkarten unterschiedliche IP-Adressen zuzuweisen. Bei dieser
Methode geht dem Server aber ziemlich schnell die Luft aus, da für die Konfigu-
ration eine Menge Ressourcen benötigt werden.
Bleibt eine dritte Methode, die bei IIS 5.0 neu ist und tatsächlich die beste Lösung
darstellt. Sie können nämlich jetzt mit mehreren IP-Adressen und Domänenna-
men eine einzige Netzwerkkarte ansprechen, indem Sie Hostheadernamen ver-
wenden. Diese Methode fußt darauf, dass IIS die notwendige Auswahl unter den
vorhandenen Websites basierend auf den Daten vornimmt, die ihm im Header
übergeben wurden und den gewünschten Host anzeigen.

Hinweis
Wenn Sie diese letztgenannte Methode verwenden wollen, um mehrere
Sites im Internet (statt in einem Intranet) zur Verfügung zu stellen, dann
müssen Sie die entsprechenden Domänennamen in jedem Fall zuvor bei
einer Registrierungsstelle (InterNIC für internationale Domänen, DeNIC
für .de-Domänen) eintragen zu lassen.
Kapitel 3 • Administration von Websites und FTP-Sites 59

Nun könnten Sie fragen: »Wie kann das Hosting mehrerer Websites auf einem
einzelnen Server die Administrierung denn erleichtern?« Die Antwort liegt in der
wunderbaren Idee der Delegierung. Wenn Sie mehrere Sites in einem Intranet
haben – etwa für jede Abteilung eines Unternehmens –, dann können Sie die War-
tung einer Site einem Mitglied der jeweiligen Abteilung übertragen.
Jede Website, die derart konfiguriert ist, verhält sich so, als wäre sie völlig allein
auf dem Server.

Warnung
An dieser Stelle zwei Mahnungen: Erstens können Sie die Methode mit
dem Hostheader nicht für mehrere Sites verwenden, die SSL nutzen,
denn die Daten werden ja verschlüsselt. Zweitens müssen Sie bedenken,
dass ältere Browser Hostheadernamen nicht auf diese Weise unterstüt-
zen; die Clients müssen den Internet Explorer 3.0 bzw. Netscape 2.0
oder höher verwenden.

Wie bereits mehrfach erwähnt, bearbeiten Sie die Einstellungen von IIS 5.0 und
der zugehörigen Komponenten bevorzugt mit dem Internetdienste-Manager.
Abbildung 3.1 zeigt einen Screenshot dieses Snap-Ins, das in der MMC ausge-
führt wird.

Abb. 3.1: Der Internetdienste-Manager wird nun als MMC-Snap-In ausgeführt und
dient in erster Linie der IIS-Administration
60 Sites starten und beenden

3.2 Sites starten und beenden


Eines der ersten Dinge, die wir näher betrachten wollen, ist das Starten und Been-
den von Sites. Wenn Sie eine Standardinstallation von IIS vorgenommen haben,
dann werden Sie feststellen, dass die Web- und FTP-Dienste beim Hochfahren
von Windows 2000 automatisch gestartet werden. Dies ist die Standardkonfigura-
tion; bald werden Sie sehen, wie diese geändert werden kann.
Indem Sie den WWW-Publishingdienst beenden, halten Sie eigentlich den IIS-
Dienst davon ab, Webseiten im Internet oder Intranet bereitzustellen. Ferner wer-
den diese Dienste aus dem Speicher entladen, wodurch Ressourcen für andere
Anwendungen frei werden.
Sie können die Dienste aber auch anhalten. Wenn Sie die Internetdienste anhalten,
akzeptiert der IIS keine neuen Verbindungen mehr; dies wirkt sich aber nicht auf
bereits bestehende Verbindungen aus. Bei einer Dienstunterbrechung wird auch
kein Speicher freigegeben, d.h. Sie können die Systemleistung auf diese Weise
nicht verbessern.
Es gibt grundsätzlich drei verschiedene Möglichkeiten, die Internetdienste zu
beenden, nämlich
• über den Internetdienste-Manager,
• über die Liste der Dienste (wird über das Applet Dienste aufgerufen),
• über die Befehlszeile.
Die erste Methode – die Verwendung des Internetdienste-Managers – ist die
leichteste: Öffnen Sie, soweit noch nicht geschehen, das Snap-In INTERNET-
INFORMATIONSDIENSTE. Abbildung 3.2 zeigt das Snap-In, wie es sich auf meinem
Server darstellt:
Wenn Sie eine aktive Site beenden wollen, klicken Sie einfach im linken Fenster-
bereich auf den Namen der Site und dann auf die Stoppschaltfläche in der Werk-
zeugleiste (das ist die als schwarzes Quadrat dargestellte).
Vielleicht bemerken Sie nicht sofort einen Unterschied, denn die Aktualisierungs-
rate für die MMC-Anzeige ist standardmäßig nicht besonders hoch eingestellt;
Sie können aber entweder im Menü VORGANG den Eintrag AKTUALISIEREN wäh-
len oder die Funktionstaste F5 auf Ihrer Tastatur betätigen. Nachdem die Anzeige
aktualisiert wurde, sollte rechts neben dem angehaltenen Dienst das Wort Beendet
angezeigt werden.
Wenn Sie eine Site oder einen Dienst wieder starten wollen, wählen Sie das ent-
sprechende Element in der Liste und klicken dann auf die Startschaltfläche mit
dem schwarzen Dreieck. Das Anklicken dieser Schaltfläche aktiviert gleichzeitig
die Veröffentlichung des Dienstes durch die Site im Internet oder einem Intranet.
Kapitel 3 • Administration von Websites und FTP-Sites 61

Abb. 3.2: Die von Kassetten- und Videorecordern her bekannten Schaltflächen
oben rechts in der Werkzeugleiste erlauben Ihnen das Starten, Beenden
und Anhalten von Diensten

Wenn Sie die Pausenschaltfläche anklicken (dies ist die Schaltfläche mit den bei-
den senkrechten Strichen), wird eine gestartete Site angehalten; in diesem Fall
nimmt der IIS keine neuen Verbindungen zum Dienst mehr an, vorhandene Ver-
bindungen werden jedoch aufrecht erhalten.
Die zweite Möglichkeit, Sites zu starten, zu beenden oder anzuhalten, ist die Ver-
wendung des Applets DIENSTE. Sie finden dieses Applet in der Systemsteuerung
unter VERWALTUNG (siehe Abbildung 3.3).
Wenn Sie das Applet ausführen, erscheint ein Fenster ähnlich dem in Abbildung
3.4 gezeigten. In diesem Fenster wurde der WWW-Publishingdienst selektiert. Im
rechten Fensterbereich werden der STATUS des Dienstes und der AUTOSTARTTYP
angezeigt.
In der Spalte STATUS wird angezeigt, ob ein Dienst ausgeführt wird (Gestartet),
oder ob er beendet oder angehalten ist. In der Spalte AUTOSTARTTYP finden Sie
Informationen darüber, wie mit dem Dienst beim Start des Betriebssystems ver-
fahren wird; hier gibt es drei Möglichkeiten, nämlich Automatisch, Manuell oder
Deaktiviert.
62 Sites starten und beenden

Abb. 3.3: Sie finden das Applet DIENSTE in der Systemsteuerung unter VERWALTUNG.
Mit diesem Applet können Sie die auf Ihrem Server installierten Dienste
verwalten.

• Automatisch. Der Dienst wird bei jedem Start des Betriebssystems ohne wei-
teres Zutun gestartet. Diese Einstellung ist ideal, wenn Sie auf Ihrem Server ei-
nen automatischen Neustart beim Auftreten von Kernelmodusunterbrechungen
(alias »Blue Screen of Death«) konfiguriert haben. Wenn nun ein solcher Feh-
ler auftritt und Ihr Server neu startet, dann wird auch Ihr WWW-Dienst neu ge-
startet, sofern für ihn die Einstellung Automatisch vorgenommen wurde. Ihre
Webseiten stehen anschließend sofort wieder bereit, ohne dass Sie etwas dafür
tun müssten.
• Manuell. Der Dienst muss manuell gestartet werden – etwa über ein Skript
oder durch den Administrator. Alle hier aufgezählten Methoden können dazu
verwendet werden.
• Deaktiviert. Der Dienst kann durch nichts und niemanden gestartet werden –
weder durch ein Skript noch von einer Anwendung. Nun, das ist natürlich et-
was irreführend, denn natürlich ist es nicht so, dass ein Dienst, wenn Sie ihn
einmal deaktiviert haben, niemals mehr gestartet werden könnte; Sie müssen
vielmehr nur einen der Autostarttypen Automatisch oder Manuell einstellen –
das war's schon.
Kapitel 3 • Administration von Websites und FTP-Sites 63

Abb. 3.4: Das Applet DIENSTE wird in einer der MMC ähnlichen Konsole ausgeführt.
Hier haben Sie weitergehende Kontrolle über die Dienste auf Ihrem
Computer.

Sie werden bei genauem Hinsehen feststellen, dass in Abbildung 3.4 eine zusätz-
liche Schaltfläche abgebildet ist, die im Internetdienste-Manager nicht vorhanden
war. Die ganz rechts in der Werkzeugleiste neben der Pausenschaltfläche ange-
zeigte Schaltfläche ist die Neustartschaltfläche. Wenn Sie diese Schaltfläche
anklicken, dann führen Sie einen Vorgang aus, bei dem der gewählte Dienst ange-
halten und sofort wieder gestartet wird. Dies ist ideal in Situationen, in denen Sie
eine Änderung an einem Dienst vorgenommen haben, die einen Neustart erforder-
lich macht. Ein Beispiel hierfür wäre das Hinzufügen oder Entfernen eines Web-
site-Operators.
Der dritte Ansatz für die Ausführung von Diensten ist der Aufruf der Dienstliste
über die Befehlszeile. IIS unterstützt hierzu insgesamt neun Befehle:
• stopsrv hält den Server oder die in einer Liste spezifizierten Server an.

• stopftp hält den FTP-Server an.

• stopweb hält den Webserver an.

• startsrv startet den Server.

• startftp startet den FTP-Server.

• startweb startet den Webserver.


64 Sites hinzufügen

• pausesrv unterbricht den Server oder die in einer Liste spezifizierten Server.

• pauseftp unterbricht den FTP-Server.

• pauseweb unterbricht den Webserver.

Jeder diese Befehle kann auch über einen Remotecomputer oder – mit Hilfe des
Befehls net – über das Netzwerk ausgeführt werden. Diese Befehle werden hier
nur kurz erwähnt, da Syntax und Verwendung ausführlich in Kapitel 13 erläutert
werden.

Hinweis
Wenn Sie eine Website mit Clustering betreiben, dann müssen Sie die
Clusterverwaltung für das Starten und Stoppen der Clustersites verwen-
den. Weitere Informationen hierzu finden Sie in Kapitel 12.

3.3 Sites hinzufügen


In der Standardinstallation ist IIS 5.0 für je eine Website, eine FTP-Site, eine
SMTP-Site und eine NNTP-Site vorkonfiguriert. Das bedeutet nicht, dass Sie
immer und überall mit dieser einen Site arbeiten müssen. Wie ich bereits
erwähnte, können Sie mehrere virtuelle Sites auf demselben Computer erstellen.
Dies ist eine tolle Sache, denn es erlaubt Ihnen etwa, für jede Abteilung Ihrer
Organisation eine eigene Site im Intranet bereitzustellen. Auf diese Weise können
etwa die Marketingabteilung, die Verwaltung und die Buchhaltung je eine eigene
Web- und FTP-Site haben und niemand kommt sich mehr ins Gehege.
Der erste Schritt zur Einrichtung mehrerer Sites auf Ihrem Server besteht in der
Konfiguration der Standardbasisverzeichnisse. Diese Verzeichnisse können über-
all abgelegt werden, auf der lokalen Festplatte oder im Netzwerk. Sie müssen sie
jedoch zuerst erstellen, da der Assistent, den wir im Verlaufe des Vorgangs ver-
wenden, nach diesen Verzeichnissen fragt.
Nehmen Sie einmal an, Sie wollen eine Website für die Marketingabteilung
erstellen. Wahlweise mit dem Windows-Explorer oder über den Arbeitsplatz
legen Sie also ein Verzeichnis an, das Sie Marketing nennen. Merken Sie sich, wo
dieses Verzeichnis liegt; ich lege meine Verzeichnisse immer unter InetPub\www-
root an, dort finde ich sie sofort.
Wenn für die Marketingabteilung (oder auch jede andere Abteilung) bereits eine
Website vorhanden ist, die nur noch auf einem Server abgelegt werden muss,
dann können Sie diese mit Hilfe der Veröffentlichungsfunktionen des Webdesign-
programms auf Ihrem Server veröffentlichen, mit dem die Site ursprünglich
erstellt wurde. Alternativ können Sie die gesamte Site natürlich auch einfach mit
dem Windows-Explorer in das neue Verzeichnis kopieren.
Starten Sie nun, sofern nicht bereits geschehen, den Internetdienste-Manager und
selektieren Sie das Serversymbol im linken Fensterbereich (siehe Abbildung 3.5).
Kapitel 3 • Administration von Websites und FTP-Sites 65

Abb. 3.5: Das im Internetdienste-Manager selektierte Serversymbol meines


Computers namens *COMPUTER. Von hier aus wird eine neue Site
hinzugefügt.

Wählen Sie aus dem Menü VORGANG den Eintrag NEU/WEBSITE. Nun wird der
ASSISTENT FÜR NEUE WEBSITE gestartet. Klicken Sie bei Anzeige des Einfüh-
rungsbildschirms auf WEITER.
Im ersten Dialogfeld (Abbildung 3.6) werden Sie darum gebeten, eine Beschrei-
bung für die Site einzugeben. Diese Beschreibung zeigt Ihnen oder auch anderen
Administratoren immer, um welche Website es sich handelt; sie wird im linken
Fensterbereich angezeigt. Geben Sie hier irgendetwas ein, was mit dem Zweck
der Site oder ihrem Inhalt in Zusammenhang steht, und klicken Sie dann auf die
Schaltfläche WEITER.
Nun wird das Dialogfeld zur Eingabe von IP-Adresse und Anschlusseinstellungen
aufgerufen. Im in Abbildung 3.7 gezeigten Fenster habe ich die IP-Adresse mei-
nes Servers 192.168.5.1 angegeben, den Anschluss 80 belassen und den Hosthea-
dernamen Marketing spezifiziert.
In Abbildung 3.8 beispielsweise musste ich in die Adressleiste meines Browsers
nur die Adresse http://Marketing eingeben und IIS wusste sofort, wohin meine
Anfrage geleitet werden musste. Dies liegt an dem in Abbildung 3.7 definierten
Hostheadernamen.
66 Sites hinzufügen

Abb. 3.6: Das Dialogfeld BESCHREIBUNG DER WEBSITE, in dem Sie eine Beschreibung
eingeben müssen

Abb. 3.7: Im Dialogfeld IP-ADRESSE UND ANSCHLUSSEINSTELLUNGEN geben Sie die IP-
Adresse und die Anschlusseinstellungen der Website ein, die Sie erstellen;
für virtuelle Sites wird außerdem ein Hostheadername angegeben
Kapitel 3 • Administration von Websites und FTP-Sites 67

Abb. 3.8: Sie können über IIS 5.0 virtuelle Websites direkt mit Hilfe des
Hostheadernamens (statt eines Bandwurm-URLs) aufrufen

Hinweis
Damit dies funktioniert, müssen Sie die Hostheaderdaten in Ihre DNS-
Servereinstellungen oder Ihre hosts-Datei eintragen. Beispielsweise lautet
der Eintrag, den ich in meiner hosts-Datei vorgenommen habe, wie folgt:



Klicken Sie nun im Fenster IP-ADRESSE UND ANSCHLUSSEINSTELLUNGEN auf
WEITER, um zum Dialogfeld BASISVERZEICHNIS DER WEBSITE zu gelangen.
Geben Sie den Pfad ein oder klicken Sie auf die Schaltfläche DURCHSUCHEN, um
das Verzeichnis anzugeben, in dem die Website vorhanden sein soll (dies ist das
Verzeichnis, das Sie anfangs erstellt haben). Lassen Sie das Kontrollkästchen
ANONYMEN ZUGRIFF AUF DIESE WEBSITE ZULASSEN markiert, falls Sie anony-
men Zugriff gestatten wollen, oder demarkieren Sie es, wenn Sie später
bestimmte Benutzer festlegen wollen. Klicken Sie auf die Schaltfläche WEITER.
Nun wird das Dialogfeld ZUGRIFFSBERECHTIGUNGEN FÜR DIE WEBSITE (Abbil-
dung 3.9) aufgerufen. Hier können sie die Berechtigungen für Clients einstellen,
die auf die Site zugreifen. Möglich sind die folgenden Berechtigungen:
• Lesen. Ermöglicht es Clients, die Seiten der Site zu betrachten.
• Skripts ausführen (z.B. ASP). Ermöglicht es Clients, Seiten anzufordern, die
ASP-Code enthalten, und diesen Code dann ausführen zu lassen.
68 Sites hinzufügen

• Ausführen (z.B. ISAPI-Anwendungen oder CGI). Ermöglicht die Ausfüh-


rung von CGI-Skripts oder ISAPI-Anwendungen dieser Site.
• Schreiben. Erlaubt den Clients das Hochladen, Löschen und Übertragen von
Dateien in dieses Verzeichnis.
• Durchsuchen. Ermöglicht es Clients, Verzeichnisse und Sammlungen zu
durchsuchen.

Abb. 3.9: Das Dialogfeld ZUGRIFFSBERECHTIGUNGEN FÜR DIE WEBSITE dient zur
Anzeige und Einstellung der Berechtigungen, die Sie der Website
zuweisen wollen

Wenn Sie Ihre Auswahl vorgenommen haben, klicken Sie auf die Schaltfläche
WEITER, um zur letzten Seite des Assistenten zu gelangen. Klicken Sie hier auf
die Schaltfläche FERTIG STELLEN.
Sie haben nun eine neue Website auf Ihrem Server abgelegt. Jetzt müssen Sie nur
noch die zugehörigen Inhalte erstellen.
FTP-Sites werden auf ähnliche Weise erstellt. Es gibt natürlich Unterschiede zwi-
schen den beiden Sitetypen: Sie müssen beispielsweise für eine FTP-Site eine
Verzeichnisstruktur erstellen, was mit dem Windows-Explorer erledigt werden
kann.
Wenn Sie im ASSISTENTEN ZUR FTP-SITE-ERSTELLUNG eine neue Site hinzufü-
gen wollen, werden Sie aufgefordert, einen beschreibenden Namen für die FTP-
Site einzugeben und eine IP-Adresse, die Anschlussnummer und ein Basisver-
zeichnis auszuwählen. Der Assistent fordert Sie ferner zur Eintragung von
Kapitel 3 • Administration von Websites und FTP-Sites 69

Zugriffsberechtigungen für das Basisverzeichnis auf – hier können Sie Lesen und/
oder Schreiben angeben.
Nachdem Sie dem Assistenten alle notwendigen Informationen gegeben haben,
wird die FTP-Site erstellt und in der MMC-Konsole angezeigt. Sie können die
Site anschließend konfigurieren.

3.4 FTP-Verzeichnisse, Meldungen und Ausgabeformate


Um den Aufbau der FTP-Site nicht zu zerstören, benötigen Sie zuallererst eine
Verzeichnisstruktur. Die Standard-FTP-Site enthält ein Verzeichnis namens
ftproot. Diese Verzeichnis wird unter der FTP-Site in der MMC-Konsole nicht
angezeigt, sondern nur dessen Unterverzeichnisse.
Sie können zwar eine beliebige Verzeichnisstruktur erstellen, sollten sich aber
vielleicht erst einmal ein paar Sites im Internet auf Gemeinsamkeiten hin über-
prüfen, um Ihre eigene Struktur dann auf ähnliche Art und Weise aufzubauen. Es
gibt z.B. bei den meisten FTP-Sites ein Verzeichnis namens public, das für die
anonyme Anmeldung freigegeben ist und öffentliche Dateien (beispielsweise
Treiber oder Dokumentationen) enthält; häufig werden Sie auch auf ein Verzeich-
nis namens incoming oder upload stoßen, in das Dateien von Clients hochgeladen
werden können. Sie können natürlich bei Bedarf auch andere Verzeichnisse
erstellen.
Fast jeder FTP-Server, den Sie im Internet besuchen, heißt Sie mit einer Meldung
willkommen – so wissen die Besucher, dass sie sich mit einem bestimmten Server
erfolgreich verbunden haben. In diese Begrüßungsmeldung sollten Sie auch
Anweisungen – etwa zum Dateiupload – integrieren; Sie können hier sogar
Gewährleistungsausschlüsse u.ä. einbauen, die sich auf den Dateidownload
beziehen.

Warnung
Bedenken Sie, dass viele alte Browser keine Meldungen anzeigen kön-
nen, die länger als eine Zeile sind.

IIS 5.0 gestattet Ihnen auch die Eingabe einer Meldung, die bei der Abmeldung
des Benutzers von der FTP-Site angezeigt wird; eine weitere Meldung kann ange-
zeigt werden, wenn die maximale Anzahl an Verbindungen erreicht wurde.
Um die Meldungen einzugeben, klicken Sie mit der rechten Maustaste auf die
entsprechende FTP-Site in der MMC-Konsole und wählen den Menüeintrag
EIGENSCHAFTEN. Aktivieren Sie anschließend die Registerkarte MELDUNGEN
(Abbildung 3.10).
In Abbildung 3.10 habe ich den Text eingegeben, der jedem Benutzer, der sich
mit meinem FTP-Server verbindet, angezeigt wird. In Abbildung 3.11 ist darge-
stellt, was der Benutzer bei erfolgter Verbindung zu sehen bekommt.
70 FTP-Verzeichnisse, Meldungen und Ausgabeformate

Abb. 3.10: Die Registerkarte MELDUNGEN der EIGENSCHAFTEN VON STANDARD-FTP-


SITE, wo Sie Meldungen eingeben können, die den FTP-Benutzern
angezeigt werden

Abb. 3.11: Der Begrüßungstext wird angezeigt, wenn ein Benutzer sich erfolgreich
authentifiziert hat und auf die FTP-Site zugreifen kann
Kapitel 3 • Administration von Websites und FTP-Sites 71

Sie können das Ausgabeformat festlegen, das ein Benutzer zu sehen bekommt,
wenn er ein Verzeichnislisting anfordert. Wenn der Clientcomputer den Befehl list
an den Server sendet, antwortet dieser mit einer Inhaltsauflistung des gegenwärti-
gen Arbeitsverzeichnisses. Mit IIS können Sie festlegen, wie dieses Listing ange-
zeigt wird – entweder im MS-DOS- oder im UNIX-Format. Abbildung 3.12 zeigt
die MS-DOS-Ausgabe, Abbildung 3.13 das UNIX-Äquivalent.

Abb. 3.12: Anzeige des Verzeichnisinhalts im MS-DOS-Format


(Standardeinstellung)

Abb. 3.13: IIS 5.0 kann das Arbeitsverzeichnis auch im UNIX-Format darstellen
72 Websites benennen

Hinweis
Da Microsofts Webtechnologien praktisch permanent Angriffen von
Hackern ausgesetzt sind, sollte Ihnen jedes Mittel recht sein, um solche
Attacken abzuwehren. Zugegeben: Es gibt ein paar Hacker, die ihr
»Handwerk« verstehen und auf sehr raffinierte Weise in Ihre FTP-Site
eindringen können; aber Sie sollten ihnen das Leben nicht zu leicht
machen. Die Verwendung des UNIX-Formats an dieser Stelle kann einige
Hacker abwehren, weil der Header des Microsoft FTP-Dienstes bei der
Anmeldung nicht angezeigt wird und sie nur das UNIX-Listing sehen.
Dies könnte sie zu der Annahme verleiten, dass sie es mit einem UNIX-
oder Linux-Server zu tun haben.

Ferner kann es auch vorkommen, dass einigen Benutzern kein Verzeich-


nislisting angezeigt wird, wenn diese die MS-DOS-Ausgabe verwenden.
Aus diesen Gründen ist die UNIX-Ausgabe für Server, die als öffentliche
Internet-FTP-Server verwendet werden sollen, quasi zwingend.

Es gibt noch ein paar letzte Punkte anzumerken, bevor wir diesen Abschnitt
abschließen. Wenn Sie die MS-DOS-Ausgabe verwenden, werden die Jahreszah-
len nur zweistellig formatiert; im UNIX-Format werden hingegen vierstellige
Jahreszahlen verwendet. Sie können die Standardeinstellung für das Anzeigefor-
mat durch Aktivierung der Eigenschaft FtpDirBrowseShowLongDate metabase
ändern.
In Anhang B finden Sie weitere Informationen dazu, wie Sie diese Eigenschaft
mit dem Objekt IIsFtpServer ändern.

3.5 Websites benennen


Sie müssen Ihrer Website zwei Namen geben, nämlich eine Beschreibung und
einen Hostheadernamen.
Die Beschreibung ist der Name der Website, der im Internetdienste-Manager in
der MMC angezeigt wird. Sie können diesen Namen ändern, indem Sie das Dia-
logfeld EIGENSCHAFTEN der Website öffnen und dann den gewünschten Text in
das Feld BESCHREIBUNG eingeben, das sich auf der Registerkarte WEBSITE befin-
det. (Falls Sie der Website bereits bei der Erstellung einen beschreibenden Namen
gegeben haben, müssen Sie dies hier nicht wiederholen, denn dann wurde die Site
bereits automatisch benannt.) Ein Beispiel finden Sie in Abbildung 3.14.
Wie bereits erwähnt, kann ein Benutzer den Hostheadernamen in die Adressleiste
seines Browsers eingeben, um eine Verbindung mit einer virtuellen Website her-
zustellen. Wir haben dies bereits an der Website für die Marketingabteilung
gezeigt, die den Hostheadernamen Marketing erhielt; die entsprechende IP/
Namenskombination wird in die Datei hosts eingetragen. (Sie können die Daten
auch an einem DNS-Server angeben.)
Kapitel 3 • Administration von Websites und FTP-Sites 73

Abb. 3.14: Der markierte Eintrag zeigt die Beschreibung »Website für die
Marketingabteilung«

Um einer Website einen Hostheadernamen zu geben, öffnen Sie das Dialogfeld


EIGENSCHAFTEN der gewünschten Site. Klicken Sie hier auf die Schaltfläche
WEITERE OPTIONEN im Abschnitt IDENTIFIZIERUNG DER WEBSITE, um das Dia-
logfeld ERWEITERTE MEHRFACHKONFIGURATION FÜR WEBSITES (Abbildung
3.15) aufzurufen.
In diesem Dialogfeld gibt es zwei Abschnitte. Oben finden Sie die Angaben für
die Standardsite, unten die SSL-Identitäten.
In Abbildung 3.15 habe ich die Site für die Marketingabteilung mit einer IP-
Adresse von 192.168.5.1 und dem Hostheadernamen Marketing konfiguriert.
Dies IP-Adresse 192.168.5.1 wird natürlich nur für interne TCP/IP-Netzwerke
verwendet, denn dies ist keine für das Internet gültige IP-Adresse. Der gesamte
IP-Adressbereich 192.168.x.x ist – wie auch der Bereich 10.x.x.x – für den inter-
nen Gebrauch reserviert. Um eine neue Identität zu erstellen, klicken Sie auf die
Schaltfläche HINZUFÜGEN. Dadurch wird das Dialogfeld WEITERE OPTIONEN
ZUR WEBSITEIDENTIFIZIERUNG geöffnet, in dem Sie die IP-Adresse, die
Anschlussnummer und den Headernamen der neuen Identität festlegen können.
Wenn Ihre Seite auf SSL basiert, dann können Sie den gleichen Vorgang ausfüh-
ren, um Ihrer SSL-Site eine IP-Adresse und eine Anschlussnummer zuzuweisen.
74 IIS erneut starten

Abb. 3.15: Das Dialogfeld ERWEITERTE MEHRFACHKONFIGURATION FÜR WEBSITES dient


der Eingabe von Mehrfachidentitäten einer Website (einschließlich SSL-
Identitäten)

Hinweis
Bedenken Sie immer, dass ältere Browser keine Hostheadernamen unter-
stützen. IIS schickt diese Browser dann zur Standardwebsite, sofern eine
solche eingerichtet ist. Aufgrund dessen sollten Sie immer eine Standard-
site konfigurieren, die Informationen dazu anzeigt, warum ein Client auf
diese Standardsite umgeleitet wurde.

Warnung
Da der Domänenname im SSL-Zertifikat spezifiziert wird, können Sie
einer IP-Adresse nur einen Hostheadernamen zuweisen. Es gibt die Mög-
lichkeit, diese Einschränkung zu umgehen, indem Sie mehrere Zertifi-
kate, IP-Adressen und Anschlüsse für jede Website einrichten.

3.6 IIS erneut starten


Es gibt mehrere denkbare Gründe für einen Neustart von IIS, von denen die meis-
ten etwas mit Serverproblemen oder Anwendungsabstürzen zu tun haben. Die
Anwendungen, von denen hier die Rede ist, sind nicht etwa Programme wie
Microsoft Word, sondern dedizierte IIS-Anwendungen. Ein IIS-Neustart ist auch
denkbar, wenn Sie Änderungen an der Site vorgenommen oder Operatoren hinzu-
gefügt oder gelöscht haben.
Kapitel 3 • Administration von Websites und FTP-Sites 75

Wenn Sie einen IIS-Neustart durchführen müssen, empfehle ich Ihnen die aus-
schließliche Verwendung der MMC-Konsole. Sie wählen im linken Fensterbe-
reich den zu beendenden Dienst (Web-, FTP-, SMTP- oder NNTP-Dienst) aus
und klicken auf die Stoppschaltfläche in der Werkzeugleiste; danach klicken Sie
auf die Startschaltfläche, um den Dienst wieder zu starten.
Alternativ können Sie den gesamten IIS-Dienst neu starten, indem Sie das Com-
putersymbol im linken Fensterbereich wählen und dann aus dem Menü VORGANG
den Eintrag ISS ERNEUT STARTEN selektieren. Dadurch wird das Fenster BEEN-
DEN/STARTEN/HERUNTERFAHREN (Abbildung 3.16) aufgerufen.

Abb. 3.16: Das Dialogfeld BEENDEN/STARTEN/HERUNTERFAHREN enthält ein Listenfeld


mit den Optionen für einen IIS-Neustart

Wie Sie der Liste in Abbildung 3.16 entnehmen können, lassen sich die Internet-
dienste auf dem Computer starten, beenden oder neu starten; Sie können ferner
auch den Server selbst neu starten. Wählen Sie die gewünschte Option und kli-
cken Sie auf die Schaltfläche OK.

Hinweis
Wenn Sie den IIS beenden, werden gleichzeitig auch ein paar andere
Dienste beendet. Die Prozesse Drwtsn32.exe, Mtx.exe und Dllhost.exe
werden, soweit aktiv, beendet. Sie alle werden beim IIS-Neustart eben-
falls neu gestartet.

Hinweis
IIS kann durch Verwendung des Internetdienste-Managers (HTML) nicht
neu gestartet werden. Bei diesem Dienst handelt es sich um ein web-
basiertes Administrationsprogramm, das in Kapitel 15 näher erläutert
werden wird.
76 IIS erneut starten

Wenn Sie den IIS-Neustart planen oder in eine benutzerdefinierte oder eine Drit-
tanbieteranwendung integrieren müssen, dann können Sie die Befehlszeilenver-
sion des IIS-Neustarts benutzen. Syntax und Verwendung sind im folgenden
Abschnitt erläutert.
Syntax:
iisreset [computername]

computername ist der Name des Servers, auf dem IIS ausgeführt wird.
Die folgenden optionalen Parameter sind vorhanden:
• /restart beendet alle Internetdienste und startet sie dann neu.

• /start startet alle Internetdienste.

• /stop stoppt alle Internetdienste.

• /reboot startet den Computer neu.

• /rebootonerror startet den Server neu, wenn während des Starts, der Beendi-
gung oder eines Neustarts der Internetdienste ein Fehler auftritt.
• /noforce sorgt dafür, dass die Beendigung eines Dienstes nicht erzwungen
wird, wenn die normale Beendigung fehlschlägt.
• /timeout:<wert> stellt ein Zeitlimit (in Sekunden) für die erfolgreiche Beendi-
gung eines Dienstes ein. Wenn dieses Limit überschritten wird und die Option
/rebootonerror ebenfalls verwendet wurde, dann wird der Computer neu ge-
startet. Die Standardeinstellungen betragen für einen Neustart 20 Sekunden,
für die Beendigung 60 Sekunden und für einen Computerneustart 0 Sekunden.
• /status zeigt den Status der Internetdienste an.

• /enable aktiviert den IIS-Neustart auf dem lokalen Computer.

• /disable deaktiviert den IIS-Neustart auf dem lokalen Computer.

Abbildung 3.17 zeigt ein Beispiel für die Verwendung des Befehls iisreset mit
der Option /status.
Kapitel 3 • Administration von Websites und FTP-Sites 77

Abb. 3.17: Die Eingabeaufforderung mit dem Befehl iisreset und der Option /
status auf dem Rechner computer. Beachten Sie, dass nur Dienste
angezeigt werden, nicht jedoch einzelne Sites.

3.7 Unterstützung von Hostheadernamen


Hostheadernamen werden vom Internet Explorer erst ab Version 3.0 und von Net-
scape ab Version 2.0 unterstützt. In einer gerechten Welt würde jeder Benutzer bei
Erscheinen neuer Softwareupdates sofort und direkt auf diese neuesten Versionen
aktualisieren. Aber Sie wissen, dass die Welt nicht gerecht ist. Aus diesem Grund
müssen wir die Tatsache berücksichtigen, dass auch solche Menschen unsere
Sites besuchen werden, die noch mit veralteten Technologien arbeiten. Hier kann
IIS 5.0 Abhilfe leisten.
Auch wenn Sie nicht allzu oft in diese Situation geraten werden, so muss sie hier
doch erwähnt werden, falls sich Benutzer bei Ihnen beschweren, die eine
bestimmte Site nicht erreichen können. Die tatsächliche Vorgehensweise ist recht
verzwickt und hängt stark von Ihrem Computer und der von Ihnen betriebenen
Website ab; auch Eingriffe in die Registrierung sind häufig notwendig. Wenn Sie
die Unterstützung von Headernamen bei alten Browsern ermöglichen müssen,
dann empfehle ich Ihnen die Lektüre der Onlinehilfe, denn dort finden Sie alle
Angaben über die korrekten Schlüssel und Werte, die einzugeben sind.

3.8 Voreinstellungen ändern


Wenn Sie IIS 5.0 installieren, dann sind bestimmte Standardwerte vorhanden, die
Sie an Ihre Anforderungen anpassen können. Es gibt zwei Möglichkeiten, diese
Änderungen vorzunehmen.
78 Voreinstellungen ändern

Sie können zunächst einmal Änderungen an den Servereigenschaften selbst vor-


nehmen. Dies bewirkt die Anwendung eines Satzes von Eigenschaften auf jede
Web- oder FTP-Site, die nicht über den jeweiligen Eigenschaftssatz verfügen.
Wenn Sie also mit der rechten Maustaste auf das Serversymbol im IIS-Snap-In
klicken und den Eintrag EIGENSCHAFTEN wählen, dann öffnet sich das Dialogfeld
EIGENSCHAFTEN VON <COMPUTERNAME> (Abbildung 3.18).

Abb. 3.18: Das Dialogfeld EIGENSCHAFTEN des IIS-Servers. Hier können Sie
Standardeinstellungen für Web- und FTP-Sites anpassen.

Wählen Sie entweder WWW-Dienst oder FTP-Dienst im Listenfeld unter Haupt-


eigenschaften und wählen Sie die Schaltfläche BEARBEITEN, um das Dialogfeld
HAUPTEIGENSCHAFTEN aufzurufen. Hier das Dialogfeld meines Servers namens
computer (Abbildung 3.19):
Wie Sie sehen, können Sie Standardwerte für zahlreiche Eigenschaften einstellen,
die sich dann auf all Ihre Web- bzw. FTP-Sites auswirken, die sich auf Ihrem Ser-
ver befinden. Sie können den gleichen Vorgang auch für einzelne Web- oder FTP-
Sites auf Ihrem Server durchführen und dann Eigenschaften einstellen, die der
jeweiligen Site vorbehalten sind.
Kapitel 3 • Administration von Websites und FTP-Sites 79

Abb. 3.19: Das Dialogfeld HAUPTEIGENSCHAFTEN DES WWW-DIENSTES FÜR


COMPUTER ähnelt sehr stark den Eigenschaftsseiten aller Websites, die
auf diesem Computer gespeichert sind

Hinweis
Alle Änderungen, die Sie auf diese Weise an einzelnen Sites vornehmen,
haben Vorrang vor den entsprechenden Haupteigenschaften, die überge-
ordnet für die Site gelten würden.

3.9 IIS-Einstellungen sichern und wiederherstellen


Wie bei jedem Produktionsserver müssen Sie auch bei einem IIS-Server eine
Sicherungs- und Wiederherstellungsstrategie entwickeln. Stellen Sie sich nur ein-
mal vor, Sie würden umfassende Änderungen an Ihrer Konfiguration vornehmen,
während ein Mitarbeiter – oder schlimmer noch: ein Hacker – seinerseits umfas-
sende Änderungen an dieser Konfiguration vornähme; es würde ganz schön lange
dauern, bis Sie rekonstruiert hätten, welche Werte und Einstellungen ursprünglich
vorhanden waren – von der Zeit, die Sie brauchen würden, um diese Konfigura-
tion wiederherzustellen, gar nicht zu reden.
80 IIS-Einstellungen sichern und wiederherstellen

Gehen Sie wie folgt vor, um die aktuelle Konfiguration zu sichern:


1. Wählen Sie das Computersymbol im linken Fensterbereich des IIS-Snap-Ins.
2. Wählen Sie aus dem Menü VORGANG den Eintrag SICHERUNGSKOPIE ERSTEL-
LEN/KONFIGURATION WIEDERHERSTELLEN.

3. Klicken Sie auf SICHERUNGSKOPIE ERSTELLEN, um das gleichnamige Dialog-


feld aufzurufen. Hier geben Sie einen Namen für Ihre Sicherungsdatei an. Be-
nennen Sie die Datei und klicken Sie dann auf die Schaltfläche OK.
Sie haben nun eine Sicherungsdatei Ihrer aktuellen IIS-Konfiguration erstellt. Sie
können diese testen, indem Sie ein paar kleine Änderungen an der vorhandenen
Konfiguration vornehmen und sich diese notieren. Danach stellen Sie die Siche-
rungsdatei wieder her und prüfen, ob die von Ihnen vorgenommenen Änderungen
tatsächlich durch die gesicherten Werte ersetzt wurden. Standardmäßig wird die
Sicherungsdatei im Verzeichnis <systemverzeichnis>\System32\InetSrv\Meta-
back abgelegt (<systemverzeichnis> ist dabei das Verzeichnis, in dem Sie
Windows 2000 Server installiert haben).
Gehen Sie nun wie folgt vor, um die Konfiguration wiederherzustellen:
1. Markieren Sie im IIS-Snap-In das Computersymbol.
2. Wählen Sie aus dem Menü VORGANG den Eintrag SICHERUNGSKOPIE ERSTEL-
LEN/KONFIGURATION WIEDERHERSTELLEN.

3. Wählen Sie im Feld FRÜHERE SICHERUNGSKOPIEN des Dialogfelds SICHE-


RUNGSKOPIE ERSTELLEN/KONFIGURATION WIEDERHERSTELLEN die Siche-
rungsdatei, die Sie zuvor erstellt haben.
4. Klicken Sie auf die Schaltfläche WIEDERHERSTELLEN. Der Internetdienste-
Manager zeigt eine Meldung, dass der Wiederherstellungsvorgang ein zeitauf-
wändiger Prozess ist, der alle Einstellungen entfernt. Klicken Sie auf JA, um
die Konfiguration wiederherzustellen, oder auf NEIN, um den Vorgang abzu-
brechen.
Wenn der Wiederherstellungsvorgang abgeschlossen ist, werden die Dienste neu
gestartet. Anschließend ist Ihre ursprüngliche Konfiguration wiederhergestellt.
Es gibt noch einen weiteren Vorgang, der hier vorgestellt werden soll: Die Wie-
derherstellung Ihrer IIS-Konfiguration nach der Verschiebung oder Neuinstalla-
tion des IIS-Dienstes. Gehen Sie wie folgt vor, um diesen Vorgang durchzufüh-
ren:
1. Markieren Sie im IIS-Snap-In das Computersymbol und wählen Sie aus dem
Menü VORGANG den Eintrag SICHERUNGSKOPIE ERSTELLEN/KONFIGURATION
WIEDERHERSTELLEN.
Kapitel 3 • Administration von Websites und FTP-Sites 81

2. Wählen Sie den Namen der Sicherungsdatei und klicken Sie auf WIEDERHER-
STELLEN. Nun wird eine Fehlermeldung angezeigt, dass der Wiederherstel-
lungsvorgang fehlgeschlagen sei; trotzdem wird ein Teil der Konfiguration
wiederhergestellt.
3. Öffnen Sie die Eingabeaufforderung und geben Sie die folgende Befehlszeile
ein:
cscript.exe x:\InetPub\AdminScripts\Adsutil.vbs enum w3svc

Ersetzen Sie x durch den Buchstaben des Laufwerks, auf dem IIS installiert
ist.
4. Suchen Sie in der sehr umfassenden Liste die Einträge WAMUserName und
WAMUserPass und notieren Sie deren Werte.
5. Öffnen Sie die Computerverwaltung (unter START/PROGRAMME/VERWAL-
TUNG).

6. Wählen Sie LOKALE BENUTZER UND GRUPPEN/BENUTZER. Doppelklicken Sie


dort den Eintrag IWAM_computername und ändern Sie das angegebene Kenn-
wort auf den Wert, der im Skriptlisting an der Eingabeaufforderung angezeigt
wurde.
7. Wählen Sie im Dialogfeld SICHERUNGSKOPIE ERSTELLEN/KONFIGURATION
WIEDERHERSTELLEN erneut die gewünschte Sicherungsdatei. Diese wird nun
vollständig wiederhergestellt.

Warnung
Wenn Ihr Server als Domänencontroller betrieben wird (was in einer
Produktionsumgebung aus Sicherheitsgründen eigentlich nicht der Fall
sein sollte), dann können Sie das vom Skript zurückgegebene Kennwort
nicht lesen, da es mit Sternchen dargestellt wird (*********).

Hinweis
Damit Sie Schritt 3 der obigen Schrittanleitung ausführen können, muss
der Windows Script Host installiert sein.

Hinweis
Sie können Ihre Konfiguration mit dem Internetdienste-Manager (HTML)
zwar sichern, nicht aber wiederherstellen.
82 Konten für Website-Operatoren

3.10 Konten für Website-Operatoren


Sagen wir's doch mal ganz offen: Sie können nicht überall gleichzeitig sein. Auch
wenn manche Unternehmen dies in ihren Anforderungsprofilen vorsehen: ich
kenne niemanden, der es je geschafft hat. Aus diesem Grunde ist es wichtig, Auf-
gaben an Website-Operatoren delegieren zu können, die den Server in Ihrer
Abwesenheit administrieren.
Operatoren werden im Dialogfeld EIGENSCHAFTEN der Website konfiguriert. Öff-
nen Sie dieses also, aktivieren Sie die Registerkarte OPERATOREN und klicken Sie
auf die Schaltfläche HINZUFÜGEN. Nun öffnet sich das Dialogfeld BENUTZER
ODER GRUPPEN AUSWÄHLEN (Abbildung 3.20).

Abb. 3.20: Das Dialogfeld BENUTZER ODER GRUPPEN AUSWÄHLEN. Hier legen Sie fest,
welche Benutzer oder Gruppen Website-Operatoren werden.

Wählen Sie den oder die gewünschten Benutzer oder Gruppe(n) aus, und klicken
Sie dann nacheinander auf die Schaltflächen HINZUFÜGEN und OK. Dadurch
werden die notwendigen Benutzer- oder Gruppenkonten der Liste der Website-
Operatoren hinzugefügt.
Kapitel 3 • Administration von Websites und FTP-Sites 83

Tipp
Wie immer bei der Vergabe von Rechten unter Windows NT oder 2000
ist es auch hier sinnvoll, zuerst eine Gruppe für den gewünschten Zweck
zu erstellen und dieser dann Einzelkonten hinzuzufügen. Dadurch wird
die Administration wesentlich erleichtert.

Sie können ein Operatorkonto oder eine Gruppe auf der Registerkarte OPERATO-
REN des Dialogfelds EIGENSCHAFTEN auch entfernen. Wählen Sie einfach den
oder die Benutzer oder Gruppe(n) aus und klicken Sie auf die Schaltfläche ENT-
FERNEN.

3.11 Abwärtskompatible Siteadministrierung


Unter der »abwärtskompatiblen Siteadministrierung« versteht man die Administ-
ration von IIS 5.0 über die Verwaltungsoberflächen von IIS 3.0/4.0. Diese Admi-
nistration lässt sich über ein Intranet vornehmen, da die bevorzugte Methode – die
Administration der Website über das Internet – über HTML-browserbasierte
Administrierungskomponenten erfolgt.
Wenn Sie also IIS 3.0 zu Administrationszwecken verwenden wollen, müssen Sie
eine Website festlegen, die programmgesteuert durch eine IIS 3.0-basierte
Anwendung administriert werden kann.
Um die IIS 3.0-Administration zu aktivieren, gehen Sie wie folgt vor:
1. Klicken Sie auf das Computersymbol im IIS-Snap-In und öffnen Sie das Dia-
logfeld EIGENSCHAFTEN.
2. Wählen Sie entweder den WWW-Dienst oder den FTP-Dienst aus und klicken
Sie auf die Schaltfläche BEARBEITEN.
3. Aktivieren Sie die Registerkarte DIENST (Abbildung 3.21).
4. Wählen Sie im Abschnitt IIS 3.0-VERWALTUNG die zu administrierende Web-
site aus.

3.12 Fazit
In diesem Kapitel haben wir eine Reihe von Möglichkeiten und Vorgehensweisen
zur Administration Ihrer Web- und FTP-Sites vorgestellt. Es gibt eine Reihe von
Ansätzen zur Lösung von Administrationsproblemen, die bei der täglichen Arbeit
mit IIS auftreten können; es bleibt Ihnen überlassen, diejenigen auszuwählen, die
Ihnen am geeignetsten erscheinen.
84 Fazit

Abb. 3.21: Im Abschnitt IIS 3.0-VERWALTUNG der Registerkarte DIENST können Sie
die Web- oder FTP-Site auswählen, die Sie über IIS 3.0 administrieren
wollen

Beachten Sie insbesondere die Möglichkeit der Erteilung von Administratorprivi-


legien an Website-Operatoren, die Ihnen einen Großteil der täglichen Arbeit
abnehmen können. Website-Operatoren können eine große Hilfe sein, aber wägen
Sie gut ab, wem Sie welche Rechte erteilen.
IIS 5.0 enthält auch einige Funktionen, welche die Aktualisierung der Adminis-
trationssoftware auf Remotecomputern unnötig machen können, z.B. durch die
Aktivierung der abwärtskompatiblen Administrierung oder der HTML-basierten
Administrierung, die in einem späteren Kapitel behandelt werden wird.
Kapitel 4
Administration von SMTP- und
NNTP-Diensten

4.1 Arbeiten mit dem virtuellen Server für SMTP 86


4.2 Der NNTP-Dienst 117
4.3 Fazit 132
86 Arbeiten mit dem virtuellen Server für SMTP

Zu IIS 5.0 gehört der SMTP-Dienst, der Ihrem Server den Versand und Empfang
von Mails ermöglicht. Ferner ist mit dem NNTP-Dienst die Einrichtung interner
Diskussionsgruppen möglich.

4.1 Arbeiten mit dem virtuellen Server für SMTP


Bei dem mit IIS 5.0 ausgelieferten SMTP-Server handelt es sich beileibe nicht
um eine Mailserveranwendung mit allen Schikanen. Es gibt keine Möglichkeit,
Benutzerkonten für den Versand und Empfang von E-Mails über das Internet oder
ein Firmenintranet zu erstellen; der Sinn des SMTP-Servers von IIS 5.0 liegt aber
auch vielmehr darin, E-Mails zu senden bzw. zu empfangen, die mit dem Betrieb
des IIS-Servers zusammenhängen.
Sie können mit dem Server elektronische Post über das Internet oder Ihr Firmen-
netzwerk zustellen – die Unterstützung grundlegender SMTP-Funktionen ist
gegeben. Auch lässt sich die Konfiguration des Dienstes an Ihre speziellen
Sicherheitsbedürfnisse anpassen.
Der SMTP-Dienst besteht aus mehreren Komponenten, die in der MMC-Konsole
angezeigt werden. Im linken Bereich des Fensters sehen Sie, wenn Sie durch
Anklicken des Pluszeichens den Zweig VIRTUELLER STANDARDSERVER FÜR
SMTP einblenden, die Standardkomponenten des SMTP-Dienstes (siehe Abbil-
dung 4.1).
In der im rechten Fensterbereich gezeigte Domänenliste können Sie die entspre-
chenden Optionen konfigurieren, indem Sie mit der rechten Maustaste auf den
gewünschten Domänennamen klicken und dann den Eintrag EIGENSCHAFTEN im
Kontextmenü wählen. Die Option AKTUELLE SITZUNGEN zeigt Statusdaten für
alle aktiven Verbindungen.

4.1.1 Eigenschaften des SMTP-Dienstes


Es folgt eine Liste der Eigenschaften und Merkmale des SMTP-Dienstes von
IIS 5.0:
• Volle Unterstützung des SMTP-Protokolls. Der SMTP-Server unterstützt
das SMTP-Internetprotokoll vollständig und ist mit SMTP-Clients kompatibel.
• Einfache Administration. Der SMTP-Dienst kann wie üblich mit der Micro-
soft Management Console administriert werden.
• Integration in Windows 2000 Server. Sie können auch bei der Arbeit mit
dem SMTP-Dienst die Verwaltungsprogramme von Windows 2000 Server be-
nutzen. Zur Administrierung lässt sich nicht nur das SNMP-Protokoll (Simple
Network Management Protocol, einfaches Netzwerkverwaltungsprotokoll)
verwenden, sondern Sie können auch Ereignis- und Transaktionsprotokolle er-
stellen und sich diese dann anzeigen lassen.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 87

Abb. 4.1: Der auf meinem Computer installierte VIRTUELLE STANDARDSERVER FÜR
SMTP listet die Domänen und die aktuellen Sitzungen auf, die derzeit
konfiguriert sind und ausgeführt werden

• Skalierbarkeit. Ein einziger Server kann durch Verwendung mehrerer Domä-


nen Hunderte von Clients bedienen.
• Auslieferung und Sammlung von E-Mails. Sie können den Dienst so konfi-
gurieren, dass alle eingehenden Mails in einem einzigen Sammelverzeichnis
(\Drop) abgelegt werden, d.h. der Dienst kann auch als Empfänger für andere
Anwendungen fungieren. Ferner können andere Anwendungen Mails auch als
Textdatei formatieren und sie dann in einem Zustellungsverzeichnis (\Pickup)
ablegen, von wo aus sie dann durch den SMTP-Dienst versandt werden.
• Sicherheit. Der SMTP-Dienst unterstützt TLS (Transport Layer Security) zur
Verschlüsselung gesendeter Daten.

4.1.2 Verzeichnisse des SMTP-Dienstes


Der SMTP-Dienst speichert Mails in Verzeichnissen. Zugegeben, das ist nicht
besonders überraschend, aber er folgt dabei einer einfachen Struktur. Standardmä-
ßig werden die Verzeichnisse im Ordner <systemverzeichnis>\InetPub\Mailroot
abgelegt. Dieses Ablageverzeichnis kann bei der Installation von IIS 5.0 geändert
werden.
88 Arbeiten mit dem virtuellen Server für SMTP

Es sind insgesamt fünf Verzeichnisse vorhanden:


• SortTemp. In diesem Verzeichnis werden Temporärdateien gespeichert.
• BadMail. Dieses Verzeichnis dient als Ablage für Nachrichten, die aus irgend-
welchen Gründen nicht zugestellt werden konnten und deswegen an den Ab-
sender zurückgehen.
• Drop. In diesem Verzeichnis landen alle eingehenden Mails.
• Pickup. In diesen Ordner werden als Textdateien formatierte Mails kopiert, die
der SMTP-Dienst dann ausliefert.
• Queue. Dies ist ein Wartesaal für E-Mails, die auf die Zustellung warten. Wenn
eine Mail nicht zugestellt werden kann – etwa aufgrund eines Serverausfalls –,
dann wird sie in Queue abgelegt und zu einem späteren Zeitpunkt erneut ge-
sendet.

4.1.3 Mailverarbeitung
Der SMTP-Dienst stellt Mails entsprechend der RFCs 821 und 822 zu. Die Aus-
lieferung erfolgt zwischen den Remote-Mailservern und dem Verzeichnis Drop.
Wenn der SMTP-Dienst eine Mail erhält – wahlweise über den TCP-
Anschluss 25 oder durch Kopieren einer Datei in den Ordner Pickup –, dann wird
diese Mail im Verzeichnis Queue abgelegt und die Zieladresse wird überprüft.
Handelt es sich um einen lokalen Adressaten, dann wird die Mail direkt ausgelie-
fert, andernfalls wird sie für die Fernzustellung verarbeitet.
Hat SMTP eine lokale Auslieferung festgestellt, dann wird die Mail aus dem Ver-
zeichnis Queue in das Verzeichnis Drop verschoben. Damit ist der eigentliche
Übertragungsvorgang abgeschlossen.
Bei der Remotezustellung wird ein etwas anderer Vorgang ausgeführt. Die für die
Übertragung bestimmten Mails werden im Ordner Queue belassen und nach
Domänen sortiert. Auf diese Weise lassen sich ggf. mehrere Mails stapeln und
dann in einem Rutsch ausliefern, wodurch die Verbindung optimal genutzt wird.
Bevor der SMTP-Dienst die Mails an einen Remoteserver ausliefert, wird über-
prüft, ob der Server überhaupt online und zum Empfang von Mails bereit ist. Ist
der Server offline, dann speichert SMTP die Mails im Verzeichnis Queue und pro-
biert die Auslieferung in bestimmten Zeitabständen erneut. Wie diese Zeitab-
stände eingestellt werden, wird an anderer Stelle in diesem Kapitel beschrieben,
wenn es um die Einstellung der SMTP-Parameter geht.
Wenn eine Verbindung hergestellt wurde, verschickt der SMTP-Dienst die Mails
und wartet auf eine Bestätigung vom Empfangsserver, bevor er den Vorgang als
abgeschlossen betrachtet. Wenn Sie für die Remotezustellung TLS aktiviert
haben, dann verschlüsselt der SMTP-Dienst die ausgehenden Mails.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 89

4.1.4 SMTP-Dienst verwalten


Die administrativen Aufgaben in Zusammenhang mit dem SMTP-Dienst und ihre
Erledigung werden im Folgenden ausführlich beschrieben. Für die Konfiguration
und Administration des Dienstes sind zahlreiche Optionen vorhanden.

Starten und Beenden des Dienstes


Der SMTP-Dienst läuft als Dienst unter Windows 2000. Obwohl nur ein SMTP-
Dienst vorhanden sein kann, können Sie mit mehreren virtuellen SMTP-Servern
arbeiten. Weiter unten ist beschrieben, wie zusätzliche Server erstellt werden.
Wenn Sie den SMTP-Dienst beenden, halten Sie eigentlich alle virtuellen SMTP-
Server an. Sie können einen virtuellen Server neu starten, ohne erst den SMTP-
Dienst starten zu müssen; IIS startet in diesem Fall zunächst den SMTP-Dienst
und dann den von Ihnen gewählten virtuellen Server.
Wenn Sie einen virtuellen Server beenden wollen, dann wählen Sie ihn im linken
Fensterbereich aus und führen dann einen der drei folgenden Vorgänge aus:
• Sie wählen BEENDEN aus dem Menü VORGANG.
• Sie klicken auf die Stoppschaltfläche in der Symbolleiste.
• Sie klicken mit der rechten Maustaste auf das Serversymbol und wählen BEEN-
DEN im Kontextmenü.
Wie Sie vorgehen, bleibt ganz Ihnen überlassen.
Auf gleiche Weise starten Sie einen beliebigen anderen virtuellen Server oder hal-
ten ihn an. Wenn Sie den SMTP-Dienst starten, beenden oder anhalten wollen,
müssen Sie das Programm Dienste verwenden, das Sie auf zweierlei Weise aufru-
fen können:
• Wählen Sie START/PROGRAMME/VERWALTUNG/KOMPONENTENDIENSTE. Se-
lektieren Sie dann im linken Fensterbereich das Symbol DIENSTE (LOKAL) und
suchen Sie in der Liste den Eintrag SIMPLE MAIL-TRANSPORTPROTOKOLL
(SMTP). Sie können den Dienst nun auf eine der oben beschriebenen Arten
nach Belieben starten, beenden, anhalten oder neu starten (siehe Abbildung
4.2).
• Die zweite Möglichkeit, auf das Applet Dienste zuzugreifen, finden Sie in der
Systemsteuerung. Doppelklicken Sie dort zunächst auf das Symbol VERWAL-
TUNG und öffnen Sie dann das Applet DIENSTE. Ich habe übrigens auf meinem
Desktop eine Verknüpfung zu diesem Applet erstellt, um es schneller aufrufen
zu können.
Sie können in diesem Fenster auch die Starteigenschaften des SMTP-Dienstes
anpassen. Klicken Sie mit der rechten Maustaste auf den SMTP-Diensteintrag
und wählen Sie im Kontextmenü den Eintrag EIGENSCHAFTEN. Das Dialogfeld
EIGENSCHAFTEN VON SIMPLE MAIL-TRANSPORTPROTOKOLL (SMTP) wird ange-
zeigt (Abbildung 4.3).
90 Arbeiten mit dem virtuellen Server für SMTP

Abb. 4.2: Das Applet KOMPONENTENDIENSTE ermöglicht Ihnen das Starten, Beenden,
Anhalten und Neustarten des SMTP-Dienstes

In der Mitte des Dialogfeldes befindet sich das Listenfeld STARTTYP. Hier können
Sie zwischen drei Optionen wählen, nämlich Automatisch, Manuell und Deakti-
viert.
Die Einstellung Automatisch bewirkt, dass der SMTP-Dienst beim Hochfahren
von Windows 2000 gestartet wird. Wählen Sie die Einstellung Manuell, dann
müssen Sie den Dienst selbst wie oben beschrieben starten. Bei der Auswahl von
Deaktiviert kann der Dienst solange nicht gestartet werden, bis Sie in diesem Dia-
logfeld wieder eine der beiden anderen Optionen Automatisch oder Manuell
selektiert haben.

Tipp
Wenn Sie bei dem Versuch, den virtuellen SMTP-Server über die MMC
zu starten, die in Abbildung 4.4 gezeigte Fehlermeldung erhalten, dann
wissen Sie, dass der SMTP-Dienst deaktiviert wurde.

Zusätzliche virtuelle Server erstellen


Wie bereits erwähnt, haben Sie nur einen SMTP-Dienst, es kann aber viele virtu-
elle Server geben. Sie benötigen pro Domäne nur einen SMTP-Server, insofern
sollten Sie, wenn Sie nicht gerade mit mehreren Domänen arbeiten, keine weite-
ren Server erstellen.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 91

Abb. 4.3: Das Dialogfeld EIGENSCHAFTEN VON SIMPLE MAIL-TRANSPORTPROTOKOLL


(SMTP), in dem Sie die Starteigenschaften des SMTP-Dienstes ändern
können

Abb. 4.4: Fehlermeldung beim Startversuch des deaktivierten SMTP-Dienstes

Tipp
Wenn Sie einen neuen virtuellen Server einrichten, dann werden Sie zur
Eingabe eines Basisverzeichnisses aufgefordert. Dieses Verzeichnis müs-
sen Sie erstellen, bevor Sie die Erstellung des Servers starten.

Wenn Sie ein Verzeichnis für den neuen virtuellen Server erstellt haben, gehen
Sie wie folgt vor:
1. Wenn Sie für den neuen virtuellen Server eine neue IP-Adresse verwenden,
konfigurieren Sie diese zunächst unter NETZWERK- UND DFÜ-VERBINDUN-
GEN. In der Windows 2000-Dokumentation finden Sie Informationen zur Vor-
gehensweise.
92 Arbeiten mit dem virtuellen Server für SMTP

2. Öffnen Sie, falls nicht bereits geschehen, den Internetdienste-Manager.


3. Wählen Sie aus dem Menü VORGANG den Eintrag NEU/VIRTUELLER SERVER.
4. Der ASSISTENT FÜR NEUEN VIRTUELLEN SMTP-SERVER wird gestartet und for-
dert zur Eingabe einer Beschreibung für den neuen Server auf. Geben Sie diese
in das Textfeld des Startbildschirms ein.
5. Klicken Sie auf WEITER, um das Fenster IP-ADRESSE AUSWÄHLEN aufzurufen.
Wählen Sie die entsprechende IP-Adresse für den virtuellen Server und klicken
Sie auf WEITER.
6. Wählen Sie im nächsten Fenster das Basisverzeichnis für den neuen virtuellen
Server aus. Klicken Sie dazu auf die Schaltfläche DURCHSUCHEN und selektie-
ren Sie das vor Beginn des Vorgangs erstellte Verzeichnis aus. Klicken Sie
dann auf WEITER.
7. Nennen Sie im Fenster STANDARDDOMÄNE AUSWÄHLEN dem Assistenten den
Namen der Standarddomäne. Dieser Eintrag sollte der Name derjenigen Do-
mäne sein, die den Server hostet.
8. Klicken Sie auf FERTIG STELLEN. IIS erstellt nun einen neuen virtuellen Server.
Abbildung 4.5 zeigt den neuen virtuellen Server, den ich mit diesem Vorgang
erstellt habe.
Wenn Sie den neuen Server erstellt haben, klicken Sie mit der rechten Maustaste
auf das Symbol, wählen Sie EIGENSCHAFTEN und beginnen Sie die Konfiguration.

Mit Verbindungen arbeiten


Wenn ein virtueller SMTP-Server eine Mail verschickt oder empfängt, dann wird
eine neue Verbindung initiiert. Sie können für eingehende und ausgehende Ver-
bindungen unterschiedliche Optionen festlegen.
Zu diesem Zweck rufen Sie das Dialogfeld EIGENSCHAFTEN des zu konfigurieren-
den virtuellen SMTP-Servers auf . Öffnen Sie den Internetdienste-Manager in der
MMC und wählen Sie den gewünschten Server im linken Fensterbereich. Wählen
Sie den Eintrag EIGENSCHAFTEN aus dem Menü VORGANG, um das Dialogfeld
EIGENSCHAFTEN VON VIRTUELLER STANDARDSERVER FÜR SMTP (Abbildung
4.6) zu öffnen.
Auf der Registerkarte ALLGEMEIN sehen Sie einen Abschnitt namens VERBIN-
DUNG. Klicken Sie auf die Schaltfläche VERBINDUNG, um das Dialogfeld VER-
BINDUNGEN (Abbildung 4.7) aufzurufen.

In diesem Dialogfeld können Sie ein Limit für eingehende Verbindungen setzen.
Wenn Sie das Kontrollkästchen VERBINDUNGEN BESCHRÄNKEN AUF nicht mar-
kieren, dann ermöglichen Sie eine unbegrenzte Anzahl von Verbindungen. Stan-
dardmäßig sind eingehende Verbindungen nicht begrenzt.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 93

Abb. 4.5: Der neue virtuelle SMTP-Server mit der ihm zugewiesenen Domäne wird
in der MMC angezeigt

Durch Markieren des Kontrollkästchens können Sie die Anzahl der Verbindungen
begrenzen, wobei Sie zumindest den Wert 1 angeben müssen (Standard: 1000).
Sie können ferner auch ein ZEITLIMIT (in Minuten) festsetzen, nach dessen
Ablauf SMTP inaktive Verbindungen beendet. Standardmäßig sind 10 Minuten
vorgesehen.
Im gleichen Dialogfeld konfigurieren Sie auch die ausgehenden Verbindungen.
Begrenzungen setzen Sie gegebenenfalls durch Markieren der entsprechenden
Kontrollkästchen im Abschnitt AUSGEHEND. Standardmäßig sind maximal
1.000 gleichzeitige Verbindungen vorgesehen; dieser Wert lässt sich beliebig
ändern.

Tipp
Sie können die Serverleistung verbessern, indem Sie auf der Registerkarte
NACHRICHTEN des Fensters EIGENSCHAFTEN die Anzahl der ausgehenden
Nachrichten gleichermaßen einschränken.

Sie können auch für ausgehende Verbindungen ein ZEITLIMIT setzen, nach dessen
Ablauf SMTP inaktive Verbindungen beendet (Standard: 10 Minuten). Außerdem
lässt sich die Anzahl ausgehender Verbindungen pro Domäne einschränken. Wie
in Abbildung 4.7 gezeigt, sind hier 100 Verbindungen Standard.
94 Arbeiten mit dem virtuellen Server für SMTP

Abb. 4.6: Das Dialogfeld EIGENSCHAFTEN VON VIRTUELLER STANDARDSERVER FÜR


SMTP, auf dem Sie Eigenschaften für eingehende und ausgehende
Verbindungen festlegen

Beachten Sie, dass die hier eingestellte Anzahl unterhalb des Wertes liegen muss,
der unter VERBINDUNGEN BESCHRÄNKEN AUF gewählt wurde, da sonst Verbin-
dungen zurückgewiesen werden könnten.
Die Einstellung TCP-ANSCHLUSS ermöglicht die Festlegung eines Ausgangsan-
schlusses für SMTP. Standardmäßig ist der gleiche Anschluss gewählt wie für die
eingehenden Daten (nämlich 25). Sie können die Anschlussnummer natürlich
beliebig ändern, wobei Sie notwendigerweise die auf Servern häufig benutzten
Anschlüsse wie etwa 80 oder 119 beachten müssen. Empfohlen wird die Eingabe
einer Anschlussnummer größer 1000, denn dadurch wird die Möglichkeit von
Anschlusskonflikten oder der Fehlleitung eines Clients an eine falsche Anwen-
dung vermindert.
Wie können Sie nun bestimmen, welche Grenzen im Dialogfeld VERBINDUNGEN
eingestellt werden sollen? Eine mögliche Vorgehensweise besteht darin, vor Auf-
bau oder Annahme von Verbindungen eine Grundmessung vorzunehmen. Stellen
Sie die Standardwerte (1000) ein und erstellen Sie ein Mailskript oder ein Makro,
um mehrere Mails an Ihren Server zu senden.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 95

Abb. 4.7: Das Dialogfeld VERBINDUNGEN, in dem Sie ein- und ausgehende
Verbindungen beschränken können

Beobachten Sie die Serverleistung, während der Server mit den Verbindungen
arbeitet, und stellen Sie fest, wann und wie Einbußen auftreten. Erhöhen Sie dann
die Einstellungen so oft, bis die Serverleistung nicht mehr akzeptabel ist.

Protokollierung
Die Protokollierung ermöglicht Ihnen die Überprüfung aller Befehle, die von den
Clients, die eine Verbindung mit Ihrem SMTP-Server hergestellt haben, an diesen
gesendet wurden. Sie können die Protokolle in einem von vier Formaten spei-
chern:
• W3C-erweitert. Benutzerdefinierbares ASCII-Textformat (Standard).
• Microsoft IIS. Nicht änderbares ASCII-Protokollformat.
• NCSA allgemein. ASCII-Textformat, kombiniert mit dem NCSA-Format
(National Centre for Supercomputing Applications).
• ODBC. Festgelegtes Format, welches in eine ODBC-kompatible Datenbank
(z.B. SQL Server) protokolliert.
Von den genannten weist das Format W3C-erweitert die meisten Konfigurations-
optionen auf. Sie können hiermit, wie Sie gleich sehen werden, verschiedene Ele-
mente überwachen. Ferner soll hier festgehalten werden, dass das ASCII-Format
das schnellste der aufgelisteten Protokollformate ist – dies sollte in Zusammen-
hang mit der Serverleistung beachtet werden. Trotzdem ist es nicht unkomforta-
bel, denn ASCII ist sicher das am leichtesten zu be- und verarbeitende Format.
96 Arbeiten mit dem virtuellen Server für SMTP

Warnung
Sie müssen bei der Konfiguration Ihrer Protokolldatei Folgendes beach-
ten: Wenn Sie die von IIS eingerichteten Standardnamen verwenden,
werden die Protokolldaten für alle Dienste in einer einzigen Protokollda-
tei abgelegt. Aus diesem Grund sei empfohlen, für jeden Dienst, den Sie
einzeln protokollieren wollen, auch eine separate Protokolldatei anzule-
gen.

Um die Protokollierung des virtuellen SMTP-Servers zu starten, öffnen Sie den


Internetdienste-Manager, selektieren den gewünschten Server und wählen dann
aus dem Menü VORGANG den Eintrag EIGENSCHAFTEN. Dadurch wird das
Dialogfeld EIGENSCHAFTEN VON VIRTUELLER SMTP-SERVER aufgerufen (Abbil-
dung 4.8).

Abb. 4.8: Das Dialogfeld EIGENSCHAFTEN VON NEUER VIRTUELLER SMTP-SERVER mit
der Registerkarte ALLGEMEIN und einer Liste verfügbarer
Protokolldateiformate

In Abbildung 4.8 wurde das Listenfeld mit den Protokollformaten eingeblendet,


damit alle Formate zu sehen sind. Standardmäßig ist das Format W3C-erweitert
selektiert. Bevor Sie jedoch in dieser Liste ein Format wählen können, müssen Sie
zuerst das Kontrollkästchen PROTOKOLLIERUNG AKTIVIEREN markieren.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 97

Wenn Sie die Standardeinstellung W3C-erweitert selektieren, dann können Sie


eine Reihe von Optionen einstellen. Klicken Sie auf die Schaltfläche EIGEN-
SCHAFTEN, um das in Abbildung 4.9 gezeigte Dialogfeld zu öffnen. Auf der
Registerkarte ALLGEMEINE EIGENSCHAFTEN können Sie den Zeitraum für die
Protokollaktualisierung angeben. Die Optionen sind:
• Stündlich. Die Protokolldateien werden stündlich erstellt.
• Täglich. Die Protokolldateien werden täglich erstellt, beginnend mit dem ers-
ten Eintrag nach Mitternacht.
• Wöchentlich. Die Protokolldateien werden wöchentlich erstellt, beginnend
mit dem ersten Eintrag nach Mitternacht des folgenden Samstags.
• Monatlich. Die Protokolldateien werden monatlich erstellt, beginnend mit
dem ersten Eintrag nach Mitternacht des vorhergehenden Monatsletzten.
• Unbegrenzte Protokolldateigröße. Neue Daten werden an das Ende der Pro-
tokolldatei gehängt. Um auf eine solcherart erstellte Protokolldatei zugreifen
zu können, müssen Sie den Server beenden.
• Maximale Protokolldateigröße. Wenn Sie diese Option wählen, dann können
Sie eine maximale Dateigröße angeben; erst bei deren Erreichen wird eine neue
Protokolldatei angelegt.

Abb. 4.9: Auf der Registerkarte ALLGEMEINE EIGENSCHAFTEN des Dialogfelds


ERWEITERTE PROTOKOLLIERUNGSEIGENSCHAFTEN können Sie den
Protokollierungszeitraum und das Zielverzeichnis der Protokolldatei
angeben
98 Arbeiten mit dem virtuellen Server für SMTP

Wenn Sie das Kontrollkästchen LOKALE ZEIT FÜR DATEIBENENNUNG UND ROLL-
OVER VERWENDEN markieren, dann wird statt der GMT-Zeit die lokale Zeit für
die Dateibenennung verwendet.
Sie können in diesem Dialogfeld auch das Verzeichnis ändern, in dem Ihre Proto-
kolldatei abgelegt wird. Geben Sie den Pfad in das Textfeld ein oder klicken Sie
auf die Schaltfläche DURCHSUCHEN, um das gewünschte Verzeichnis zu suchen.
Der Name der Protokolldatei wird unten im Fenster angezeigt.
Wählen Sie nun die zweite Registerkarte ERWEITERTE EIGENSCHAFTEN (Abbil-
dung 4.10) aus.

Abb. 4.10: Die Registerkarte ERWEITERTE EIGENSCHAFTEN ist nur vorhanden, wenn Sie
das Protokollformat W3C-ERWEITERT gewählt haben. Sie können hier
eine Vielzahl von Optionen zur Überwachung der Serververbindungen
selektieren.

Wie Sie sehen, lassen sich hier doch eine Reihe verschiedener Variablen hinsicht-
lich der Clients überwachen, die eine Verbindung mit dem Server herstellen.
Einige dieser Variablen – etwa Client-IP-Adresse, Datum und Uhrzeit – können
sehr hilfreich sein, wenn Beschwerden über Verbindungsprobleme aufkommen.
Eine letzte Information möchte ich Ihnen am Ende dieser Abhandlung über die
Protokollierung noch geben. Wenn Sie Ihre Protokolldateien mit dem ODBC-
Format erstellen, sieht das Dialogfeld EIGENSCHAFTEN etwas anders aus (Abbil-
dung 4.11).
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 99

Abb. 4.11: Das Fenster ODBC-PROTOKOLLIERUNGSEIGENSCHAFTEN sieht etwas anders


aus als bei den anderen Formaten, da die Protokolldaten hier in eine
ODBC-kompatiblen Datenbank gespeichert werden

Wie aus Abbildung 4.11 ersichtlich, habe ich die verschiedenen Optionen so ein-
gestellt, dass der SMTP-Server eine Verbindung zur ODBC-Datenquelle herstel-
len kann. In diesem Fall handelt es sich um eine SQL 7.0-Datenbank.
Der ODBC-DATENQUELLENNAME (DSN) ist eine Zeichenkette, die dem Server
mitteilt, wie der Name der Datenquelle lautet. Sie müssen, um diese Funktion ver-
wenden zu können, zunächst eine Datenbank erstellen und den zugehörigen DSN
dann im ODBC-Applet konfigurieren.
Die Variable TABELLE ist der Name der Tabelle innerhalb der Datenbank, in der
die Einträge gespeichert werden.
Wenn Sie eine Datenbank verwenden, die die Angabe eines Benutzernamens und
eines Kennworts erfordert (wie etwa SQL Server), dann können Sie diese Daten
in die entsprechenden Textfelder eingeben.
In diesem Buch werden Datenbankkonzepte nicht besprochen. Wenn Sie sich also
nicht sicher sind, wie diese Textfelder auszufüllen sind, dann wenden Sie sich an
Ihren Datenbankadministrator.

Virtuelle SMTP-Server und Clustering


Clustering ist ein Merkmal von Windows 2000 Advanced Server, welches bei
einer normalen Windows 2000 Server-Installation nicht verfügbar ist. Die Ver-
wendung von SMTP-Clustering gewährt Ihnen Fehlertoleranz und Leistungsver-
besserungen in einem Umfang, welcher den bei der Verwendung eines einzelnen
100 Arbeiten mit dem virtuellen Server für SMTP

virtuellen SMTP-Servers erzielbaren bei weitem übertreffen. Bei Verwendung


eines SMTP-Serverclusters wird die Arbeitslast auf die im Cluster vorhandenen
SMTP-Server verteilt. Fällt einer der Server im Cluster aus, dann übernehmen die
verbleibenden Server die Aufgaben des ausgefallenen Servers.
In diesem Buch kann leider nicht sehr umfassend auf das Clustering eingegangen
werden. Sie finden weitere Informationen in der Dokumentation zu
Windows 2000 Advanced Server.
Gehen Sie wie folgt vor, um Ihren SMTP-Server in einen Cluster zu integrieren:
1. Stellen Sie sicher, dass für den SMTP-Dienst die Starteinstellung Manuell ge-
wählt ist.
2. Öffnen Sie das Dialogfeld EIGENSCHAFTEN Ihres virtuellen Standardservers
für SMTP.
3. Klicken Sie auf der Registerkarte ALLGEMEIN auf die Schaltfläche ERWEITERT
und doppelklicken Sie auf den Eintrag (ALLE NICHT ZUGEORDNET) im Listen-
feld.
4. Wählen Sie einen anderen, nicht benutzten Anschluss aus, um Konflikte mit
dem neu zu erstellenden Server zu vermeiden, und klicken Sie dann auf die
Schaltfläche OK.
5. Erstellen Sie wie oben beschrieben einen virtuellen Server und stellen Sie den
Standardanschluss 25 ein.
6. Wenn Sie aufgefordert werden, das Basisverzeichnis einzugeben, dann verge-
wissern Sie sich, dass Sie den Pfad zu der Freigabe angegeben haben, die für
den Cluster verwendet wird. Geben Sie keinen Pfad zu einer lokalen Datei ein.
7. Öffnen Sie die Eingabeaufforderung auf Ihrem Rechner und wechseln Sie in
das Verzeichnis <systemverzeichnis>\System32\inetsrv (hierbei ist <system-
verzeichnis> das Verzeichnis, in dem Sie Windows 2000 installiert haben).
8. Geben Sie den Befehl iissync servername ein (servername ist der Name eines
anderen Clusterknotens).
9. Verbinden Sie in der CLUSTERVERWALTUNG einen Ressourcentyp mit dem
neuen virtuellen Server.
Weitere Informationen finden Sie in der Dokumentation zu Windows 2000
Advanced Server.

Sicherheit
Die Sicherheitseinstellungen für Ihren virtuellen Server nehmen Sie auf zwei
Registerkarten des Dialogfelds EIGENSCHAFTEN vor, nämlich ZUGRIFF und
SICHERHEIT. Mit den auf der Registerkarte ZUGRIFF verfügbaren Optionen kön-
nen Sie Parameter zur Zugriffssteuerung, Weitergabebeschränkungen, Verbin-
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 101

dungssteuerung und Kommunikationssicherheit einstellen. Auf der Registerkarte


SICHERHEIT wählen Sie Operatoren aus. Alle Optionen werden im Folgenden
beschrieben.
Werfen wir zunächst einen Blick auf die Registerkarte SICHERHEIT (Abbildung
4.12). Wenn Sie die Schaltfläche HINZUFÜGEN anklicken, öffnet sich ein Fenster,
welches die auf dem lokalen Rechner oder in der Domäne vorhandenen Benutzer
und Gruppen anzeigt. Unter diesen können Sie Operatoren wählen, die den Dienst
nicht nur starten, beenden und anhalten, sondern auch konfigurieren können.
Wenn Sie einen oder mehrere Benutzer oder Gruppen aus der Liste entfernen wol-
len, selektieren Sie diese und klicken Sie dann auf die Schaltfläche ENTFERNEN.

Abb. 4.12: Die Registerkarte SICHERHEIT des Dialogfelds EIGENSCHAFTEN VON


VIRTUELLER STANDARDSERVER FÜR SMTP. Hier lassen sich Operatoren
hinzufügen und entfernen, die Änderungen am SMTP-Server vornehmen
können.

Tipp
Ich empfehle Ihnen, auf dem Domänencontroller eine Gruppe zu erstel-
len, die Sie dann an dieser Stelle selektieren. Der Gruppe können Sie
dann Benutzer hinzufügen, was die Administration erheblich verein-
facht.
102 Arbeiten mit dem virtuellen Server für SMTP

Die Registerkarte ZUGRIFF (Abbildung 4.13) verfügt über vier Abschnitte, die
Sicherheitsaspekte bezüglich der Serverkommunikation und der Verbindungen
betreffen.
Im ersten Abschnitt dreht sich alles um die Zugriffssteuerung und Authentifizie-
rung. Um diesen Abschnitt zu konfigurieren, klicken Sie auf die Schaltfläche
AUTHENTIFIZIERUNG. Die folgenden Optionen sind im dann angezeigten Dialog-
feld AUTHENTIFIZIERUNG verfügbar:
• Anonymer Zugriff. Markieren Sie diese Option, wenn Sie keine Authentifi-
zierung auf dem Server wünschen.
• Standardauthentifizierung. Diese Authentifizierung erfordert einen Benut-
zernamen und ein Kennwort, sendet diese aber unverschlüsselt. Sie können
zwecks Authentifizierung einen Domänennamen an den Kontennamen anhän-
gen. Ferner lässt sich eine Option TLS-VERSCHLÜSSELUNG ERFORDERLICH se-
lektieren, um die Verwendung von TLS zu erzwingen.
• Windows-Sicherheitspaket. Client und Server handeln die Verbindung aus
und verwenden zur Authentifizierung einen Windows-Kontennamen und ein
Windows-Kennwort.

Abb. 4.13: Die Registerkarte ZUGRIFF enthält verschiedene Einstellmöglichkeiten für


die Sicherheit von Verbindungen
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 103

Im Abschnitt SICHERE KOMMUNIKATION geht es dann um Zertifikate und Schlüs-


sel für eine sichere Kommunikation. Zertifikate und PKI (Public Key Infrastruc-
ture, Infrastruktur öffentlicher Schlüssel) werden in diesem Buch jedoch nicht
beschrieben, weswegen ich Ihnen ans Herz lege, sich eingehend mit diesen
Sicherheitsoptionen zu beschäftigen, bevor Sie sie implementieren. Wenn Sie auf
die Schaltfläche ZERTIFIKAT klicken, wird der IIS-ZERTIFIKATS-ASSISTENT auf-
gerufen, mit dem Sie eine Zertifikatsanforderung erstellen können. Sie benötigen
ein solches Zertifikat, um es an eine autorisierte Zertifizierungsstelle zu senden.
Wenn Sie auf die Schaltfläche KOMMUNIKATION klicken, können Sie festlegen,
dass eine sichere Kommunikation stattfinden muss. Diese Option ist nur gültig,
wenn Sie ein Zertifikat installiert haben.
Durch Anklicken der Schaltfläche VERBINDUNG im Abschnitt Verbindungskont-
rolle rufen Sie das Dialogfeld VERBINDUNG (Abbildung 4.14) auf.

Abb. 4.14: Im Dialogfeld VERBINDUNG können Sie den Zugriff auf Ihren Server auf
der Basis der anfordernden IP-Adresse oder sogar der Domäne gestatten
oder verweigern

Wie Sie sehen, habe ich allen Computern mit Ausnahme des Rechners mit der IP-
Adresse 207.164.55.254 den Zugriff gestattet. (Die IP-Adresse habe ich nur zu
Demonstrationszwecken gewählt und frei erfunden; machen Sie sich also keine
Sorgen, falls es sich zufällig um Ihre IP-Adresse handelt – ich habe wirklich
nichts gegen Sie!) Sie können über die Festlegung einer Netzwerk-IP-Adresse
oder durch Verwendung einer Subnetzmaske auch eine Gruppe von Computern
selektieren.
Der letzte Abschnitt der Registerkarte ZUGRIFF befasst sich mit der Verwendung
Ihres Servers als Weitergabeagent für E-Mails. Sie können Weitergabeeinschrän-
104 Arbeiten mit dem virtuellen Server für SMTP

kungen für Computer basierend auf deren IP- oder Subnetzadresse, der Maske
oder dem Domänennamen konfigurieren. Die Optionen gestatten die Auswahl
eines einzelnen Rechners oder einer Gruppe von Computern über Subnetzmaske
oder Domänennamen.

Warnung
Falls Sie sich nicht sicher sind, wie Sie mit den Weitergabeoptionen ver-
fahren sollen, dann verweigern Sie am besten jegliche Weitergabe.
Wenn Internetbenutzer feststellen, dass Ihr Server zur Weitergabe von
E-Mails in der Lage ist, dann kann es ganz schnell dazu kommen, dass
Sie mit Hass-Mails bombardiert und schlimmstenfalls sogar vor Gericht
zitiert werden, weil irgendjemand Ihren Server als Weitergabestation für
seine Spam-Mails verwendet hat.

Die von mir bisher beschriebenen Sicherheitsoptionen beziehen sich auf einge-
hende Nachrichten. Sie können solche Optionen aber auch für ausgehende Nach-
richten setzen. Klicken Sie zu diesem Zweck auf die Schaltfläche AUSGEHENDE
SICHERHEIT unten auf der Registerkarte ÜBERMITTLUNG (Abbildung 4.15).

Abb. 4.15: Wenn Sie auf die Schaltfläche AUSGEHENDE SICHERHEIT klicken, wird das
gleichnamige Dialogfeld aufgerufen, in dem Sie die
Sicherheitseinstellungen für ausgehende Nachrichten vornehmen
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 105

Die Sicherheitsoptionen für ausgehende Nachrichten sind mit denen für einge-
hende Nachrichten identisch, weswegen ich sie hier nicht noch einmal erläutern
werde. Es ist allerdings wichtig festzuhalten, dass diese Optionen sich sowohl auf
Nachrichten beziehen, die innerhalb Ihrer Organisation verfasst werden, als auch
auf Nachrichten externer Benutzer, deren Mails über Ihren Server weitergegeben
werden, sofern Sie die oben beschriebenen Weitergabeeigenschaften konfiguriert
haben.

Mails verwalten
In diesem Abschnitt geht es um die Verwaltung der Anzahl von Nachrichten, die
im Laufe einer Sitzung oder Verbindung zugestellt werden, außerdem um die
Begrenzung der Nachrichtengröße, die Anzahl der Empfänger und die Vorgehens-
weise bei Nichtzustellbarkeit. Diese Optionen werden auf der Registerkarte
NACHRICHTEN im Dialogfeld EIGENSCHAFTEN VON VIRTUELLER SMTP-SERVER
eingestellt.
Bei fast allen Produktionsservern ist die Serverleistung eine für den Administrator
wichtige Angelegenheit. Wenn Ihr SMTP-Server eine große Menge von Mails
über eine einzige Verbindung sendet, dann kann die Leistungsfähigkeit des Ser-
vers rapide sinken, und die Zustellung der Mails kann sich extrem verzögern.
Eine Möglichkeit, dieses Problem zu umgehen, besteht in der Begrenzung der
Anzahl von Nachrichten, die pro Verbindung gesendet werden können. Wenn Sie
diese Anzahl auf – sagen wir – 30 verringern und Ihr Server nun versucht,
120 Mails zu senden, dann tut er dies nicht in einem Rutsch; vielmehr sendet er
die ersten 30 Mails, baut dann für die nächsten 30 eine neue Verbindung auf, sen-
det diese usw., bis alle Nachrichten versandt sind.
Wenn Sie einen Anhaltspunkt für Ihr Limit benötigen, dann fügen Sie im System-
monitor den Indikator Gesendete Nachrichten/Sek für das Objekt SMTP Server
hinzu (siehe Abbildung 4.16).
Der Grenzwert sollte kleiner als der im Systemmonitor ermittelte Wert sein. Um
ihn einzustellen, öffnen Sie zunächst das Dialogfeld EIGENSCHAFTEN VON VIRTU-
ELLER SERVER FÜR SMTP und wählen die Registerkarte NACHRICHTEN. Hier
wählen Sie die Option ZAHL DER NACHRICHTEN PRO VERBINDUNG BESCHRÄN-
KEN AUF und legen den gewünschten Wert fest. Der Standardwert liegt bei 20,
maximal lässt sich eine Beschränkung auf 2.000.000.000 Nachrichten einstellen –
eine gigantische Menge für eine einzige Verbindung; wenn Sie wirklich so viele
Nachrichten versenden, dann sollten Sie in jedem Fall einen Cluster verwenden.
Als Nächstes können Sie die Größe der Nachrichten begrenzen. Geben Sie den
gewünschten Wert (in Kbyte) in das Textfeld NACHRICHTENGRÖSSE EINSCHRÄN-
KEN AUF ein. Versucht nun ein Client eine Nachricht zu versenden, die größer ist
als dieses Limit, dann wird ihm eine Fehlermeldung angezeigt. Die einzige Aus-
nahme liegt vor, wenn der Server den Befehl EHLO unterstützt; in diesem Fall
wird der Grenzwert vorab vom Server ermittelt, der danach gar nicht erst versu-
chen wird, eine Nachricht von unerlaubter Größe zu übermitteln.
106 Arbeiten mit dem virtuellen Server für SMTP

Abb. 4.16: GESENDETE NACHRICHTEN/SEK ist ein Leistungsindikator im


Systemmonitor, der zur Feststellung eines Grenzwertes für die Anzahl
der Nachrichten pro Verbindung verwendet werden kann

Sie können auch die Anzahl der gesendeten Daten pro Sitzung einschränken.
Markieren Sie das Kontrollkästchen SITZUNGSGRÖSSE EINSCHRÄNKEN AUF und
geben Sie einen Wert in das Textfeld ein. Dieser Wert ist die Summe aller wäh-
rend einer Sitzung gesendeten Nachrichten. Beachten Sie, dass sich der Wert nur
auf tatsächliche Nachricht und nicht auf die Anzahl der Empfänger bezieht.
Als Letztes können Sie die Anzahl der Empfänger pro Nachricht begrenzen.
Wählen Sie die Option ZAHL DER EMPFÄNGER PRO NACHRICHT BESCHRÄNKEN
AUF und geben Sie den gewünschten Wert in das Textfeld ein (Standard: 100).
Wenn der SMTP-Server eine Nachricht mit mehr als 100 Empfängern vorfindet,
baut er eine neue Verbindung auf und verarbeitet dann die übrigen Empfänger.
Der SMTP-Dienst erlaubt Ihnen auch die Speicherung unzustellbarer Mails auf
dem Server. Ein Unzustellbarkeitsbericht (Non-Delivery Report, NDR) wird im
von Ihnen im Dialogfeld EIGENSCHAFTEN spezifizierten Verzeichnis abgelegt. Es
handelt sich hierbei um eine Kopie des an den Absender geschickten Unzustell-
barkeitsberichts.
Der SMTP-Server wird solange versuchen, den Unzustellbarkeitsbericht zuzustel-
len, bis die festgelegte Maximalanzahl von Versuchen erreicht wird; danach legt
er den Bericht im von Ihnen gewählten Verzeichnis für unzustellbare Mails ab.
Dieses Verzeichnis legen Sie im Textfeld BADMAIL-VERZEICHNIS fest Standard:
x:\InetPub\mailroot\Badmail, wobei x: den Buchstaben des Laufwerks bezeich-
net, auf dem Sie IIS installiert haben.
Um die Zustellung von Nachrichten geht es auch auf der Registerkarte ÜBER-
MITTLUNG (Abbildung 4.17) des Dialogfelds EIGENSCHAFTEN. Die ersten vier
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 107

Optionen gestatten Ihnen die Einstellung des ersten, zweiten, dritten und aller
nachfolgenden Wiederholungsintervalle, d.h. der Zeitabstände, nach denen der
Server jeweils versucht, nicht zugestellte Mails erneut zu versenden.
Die Option BENACHRICHTIGUNG BEI VERZÖGERUNG legt fest, wann bei Nichtzu-
stellung eine entsprechende Benachrichtigung erfolgt – dies ist praktisch, wenn
netzwerkbedingte Verzögerungen zu berücksichtigen sind. Sie können hier einen
Wert zwischen einer Minute und 9.999 Tagen eingeben (Standard: 12 Stunden).
Die letzte Option bei den ausgehenden Nachrichten ist das ZEITLIMIT FÜR
ABLAUF. Wenn der SMTP-Dienst alle Zustellversuche erfolglos durchgeführt hat,
landen nach Ablauf des hier angegebenen Zeitraums nicht zugestellte Mails im
Verzeichnis Badmail. Wie auch bei der BENACHRICHTIGUNG BEI VERZÖGERUNG
können Sie hier einen Wert zwischen einer Minute und 9.999 Tagen eingeben.
Standardmäßig sind zwei Tage gewählt.

Abb. 4.17: Die Registerkarte ÜBERMITTLUNG des Dialogfelds EIGENSCHAFTEN VON


VIRTUELLER SERVER FÜR SMTP wird zur Eingabe von
Wiederholungsintervallen und Zeitlimits benutzt

Unten auf der Registerkarte ÜBERMITTLUNG befindet sich der Abschnitt LOKAL.
Die beiden hier vorzufindenden Optionen funktionieren exakt so wie die darüber
liegenden Einstellungen für ausgehende Nachrichten, beziehen sich aber lediglich
auf lokale Verbindungen.
108 Arbeiten mit dem virtuellen Server für SMTP

Die Schaltfläche AUSGEHENDE SICHERHEIT wurde bereits weiter oben im


Abschnitt »Sicherheit« beschrieben. Es gibt hier allerdings noch eine Schaltfläche
ERWEITERT, die kurz erläutert werden soll. Wenn Sie diese Schaltfläche ankli-
cken, wird das Dialogfeld WEITERE ÜBERMITTLUNGSOPTIONEN (Abbildung 4.18)
geöffnet.

Abb. 4.18: Im Dialogfeld WEITERE ÜBERMITTLUNGSOPTIONEN können Sie


Routingeinstellungen für Ihre Nachrichten vornehmen

Die erste Option in diesem Dialogfeld ist MAXIMALER HOP COUNT. Der Stan-
dardwert ist 15; er zeigt an, dass der SMTP-Server die Anzahl der Router über-
prüft, die eine Nachricht auf dem Weg zu ihrem Ziel passiert hat. Wenn die Nach-
richt mindestens so viele Router passiert wie hier angegeben, erhält der Absender
einen Unzustellbarkeitsbericht. Natürlich wird trotzdem versucht, die Nachricht
in den festgelegten Abständen erneut zuzustellen.
Die nächste Option ist die MASKERADENDOMÄNE. Der hier eingegebene Wert
wird im Feld From der Nachricht angezeigt und ersetzt den lokalen Domänenna-
men. Wofür das gut sein soll? Nun, wenn Sie in einer lokalen Domäne ohne voll-
ständig qualifizierten Domänennamen arbeiten, dann werden Sie feststellen, dass
es Internetprovider gibt, die die Annahme von Nachrichten aufgrund der Angaben
in den Feldern From bzw. Mailfrom des Nachrichtenheaders verweigern. Durch
Eingabe eines vollständig qualifizierten Domänennamens in das Feld MASKERA-
DENDOMÄNE können Sie dieses Problem umgehen.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 109

Warnung
Verwenden Sie diese Funktion nicht, um Humbug mit IP-Adressen oder
Domänennamen zu treiben.

Das Feld VOLLSTÄNDIG QUALIFIZIERTER DOMÄNENNAME enthält den Namen des


Servers, den Sie bei der Installation von Windows 2000 angegeben haben. Wie
aus Abbildung 4.18 ersichtlich, steht für meinen Server keine Internetdomäne zur
Verfügung, weswegen ich während der Installation die Domäne gkcomput.local
festgelegt habe. Der Servername lautet computer, und deswegen ist der vollstän-
dig qualifizierte Domänenname computer.gkcomput.local. Wenn Sie über einen
Domänennamen zur Verwendung im Internet verfügen, dann zögern Sie nicht,
diesen hier einzugeben. Sie können die Angabe später bei Bedarf auch wieder
ändern.
Wenn Sie auf die Schaltfläche DNS ÜBERPRÜFEN klicken, dann versucht der
SMTP-Server, den eingegebenen Domänennamen zu verifizieren. Wenn Sie eine
local-Domäne benutzen, so wie ich es hier tue, dann erhalten Sie das Ergebnis
quasi sofort. Bei Computern, die mit dem Internet verbunden sind, kann die Ant-
wort je nach der Antwortzeit des DNS-Servers länger dauern.
Schließlich können Sie im Dialogfeld WEITERE ÜBERMITTLUNGSOPTIONEN auch
einen SMART HOST angeben. Ein Smart Host ist ein Computer im Netzwerk, der
in der Lage ist, Nachrichten über eine Verbindung zu übermitteln, die hinsichtlich
der Hops kostengünstiger ist. Wenn sich in Ihrem Netzwerk ein Smart Host befin-
det, dann können Sie seine IP-Adresse oder seinen Hostnamen hier eingeben,
woraufhin der SMTP-Server alle ausgehenden Nachrichten zu diesem Host
umleiten wird.

Tipp
Wenn Sie die IP-Adresse des Smart Host in eckigen Klammern ([…]) ein-
geben, können Sie die Serverleistung verbessern, denn dann muss der
Server keinen DNS-Lookup für den Hostnamen durchführen.

Sie werden außerdem feststellen, dass, wenn Sie einen Smart Host angeben, die
Option DIREKTE ÜBERMITTLUNG VERSUCHEN, BEVOR ZUM SMART HOST GESEN-
DET WIRD verfügbar wird. Wenn diese Option aktiviert ist, versucht SMTP, Nach-
richten zunächst direkt zu senden. Standardmäßig ist die Option nicht aktiviert,
und meiner Meinung nach ist das auch gut so, denn sie kann den Sinn und Zweck
des Smart Hosts zunichte machen.
Die letzte hier vorhandene Einstellung ist UMGEKEHRTE DNS-SUCHE AN EINGE-
HENDEN NACHRICHTEN DURCHFÜHREN. Wenn Sie diese Option markieren, dann
wird SMTP versuchen, die Übereinstimmung von IP-Adresse und Domänenname
zu verifizieren. Stimmen diese nicht überein, so erscheint im Empfangsheader
nach der IP-Adresse der Vermerk unverified (nicht verifiziert). Dieses nette kleine
Feature kann sehr hilfreich dabei sein, eingehende Mails mit gefälschten Headern
abzuwehren.
110 Arbeiten mit dem virtuellen Server für SMTP

Hinweis
Auch wenn diese Funktion praktisch ist, sollten Sie sich vergegenwärti-
gen, dass ihre Aktivierung die Serverleistung beeinträchtigen kann, da
der Server für jede Nachricht, die er empfängt, einen DNS-Lookup
durchführen muss.

Mit Domänen arbeiten


Manchmal frage ich mich wirklich, ob auch in der Dokumentationsabteilung von
Microsoft nur Informatiker (und keine Dokumentare) sitzen. Verstehen Sie mich
nicht falsch, ich arbeite oft und gerne mit Microsoft-Produkten, aber unglückli-
cherweise haben die Entwickler von Microsoft eine Tendenz, bei den eigenen
Produkten auch eine ganz eigene (und eigentümliche) Terminologie zu verwen-
den.
Sie kennen Internetdomänen. Sie kennen die Domänen von Windows NT 4.0 und
Windows 2000. Wussten Sie schon, dass es jetzt eine neue Domäne von Micro-
soft gibt, mit der Sie arbeiten können? Die Rede ist von der SMTP-Dienstdo-
mäne. Diese Domänen werden benötigt, um Nachrichten für die Übermittlung zu
organisieren.
SMTP unterteilt seine Domänen noch weiter in lokale und Remotedomänen.
Lokale Domänen werden von einem lokalen SMTP-Server unterstützt, Remote-
domänen hingegen befinden sich nicht in der lokalen Domäne bzw. im lokalen
Netzwerk.
Nachrichten, die eine lokale Domänenadresse haben, werden durch den lokalen
SMTP-Server verarbeitet und im Verzeichnis Drop abgelegt. Lokale Domänen
werden gelegentlich auch als »Dienstdomänen« bezeichnet.
Wenn Sie eine Remotedomäne konfiguriert haben und Nachrichten mit Remote-
adressen empfangen, dann verarbeitet der SMTP-Server die Nachrichten und sen-
det sie an die Remotedomäne. Wenn Sie mehrere Remotedomänen konfigurieren,
können Sie für diese jeweils eigene Einstellungen vornehmen.
Die Erstellung einer Domäne ist eine einfache Sache. Habe ich gesagt, es gäbe
zwei Typen von Domänen? Nun, da habe ich ein wenig geschwindelt. Sie können
eine Domäne als Aliasdomäne erstellen. Dieser Domänentyp ist eine Sekundär-
domäne, die auf die Standarddomäne verweist. Sie können Nachrichten an die
Aliasdomäne senden, die dann von der Standarddomäne verarbeitet werden.
Gehen Sie wie folgt vor, um eine neue Domäne zu erstellen:
1. Öffnen Sie den Internetdienste-Manager und blenden Sie den Zweig unter dem
Eintrag VIRTUELLER SERVER FÜR SMTP ein.
2. Wählen Sie das Symbol DOMÄNEN.
3. Wählen Sie im Menü VORGANG den Eintrag NEU/DOMÄNE. Der ASSISTENT
FÜR NEUE SMTP-DOMÄNE wird gestartet (Abbildung 4.19).
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 111

Abb. 4.19: Im ASSISTENT FÜR NEUE SMTP-DOMÄNE lässt sich festlegen, ob eine
Remotedomäne oder eine Aliasdomäne erstellt werden soll

4. Wählen Sie den gewünschten Domänentyp (ALIAS oder REMOTEDOMÄNE) und


klicken Sie auf die Schaltfläche WEITER.
5. Wenn das Dialogfeld DOMÄNENNAMEN AUSWÄHLEN angezeigt wird, geben
Sie den Namen einer Domäne ein, beispielsweise microsoft.com für eine Re-
motedomäne oder einen Namen Ihrer Wahl für eine Aliasdomäne. Klicken Sie
dann auf die Schaltfläche FERTIG STELLEN. Die neue Domäne und der Domä-
nentyp werden dann im Internetdienste-Manager angezeigt (siehe Abbildung
4.20).
Das Löschen einer vorhandenen Domäne ist noch einfacher: Selektieren Sie den
Domänennamen im rechten Fensterbereich und wählen Sie dann im Menü VOR-
GANG den Eintrag LÖSCHEN. Bestätigen Sie die angezeigte Meldung über die
Schaltfläche JA, dann wird die Domäne gelöscht.

Hinweis
Die Standarddomäne lässt sich nicht löschen. Wenn Sie eine vorhandene
Domäne haben, die Sie löschen wollen, es sich bei dieser Domäne aber
um die Standarddomäne handelt, dann erstellen Sie eine neue Aliasdo-
mäne und machen Sie diese zur Standarddomäne; danach können Sie
die vorherige Standarddomäne löschen.

SMTP verwendet eine Standarddomäne, um Nachrichten, die noch nicht mit


einem Domänennamen versehen sind, zu »stempeln«. Bei der ersten Installation
von SMTP verwendet der Dienst denjenigen Domänennamen, der in der NETZ-
WERKIDENTIFIKATION von Windows 2000 Server angegeben wurde.
112 Arbeiten mit dem virtuellen Server für SMTP

Abb. 4.20: Der Internetdienste-Manager zeigt die hinzugefügte Domäne


MICROSOFT.COM als Remotedomäne an

Sie können den Namen dieser Domäne im Abschnitt NETZWERKIDENTIFIKATION


ändern. Weitere Informationen hierzu finden Sie in der Windows 2000-Hilfedatei
zum Netzwerk. Wenn Sie den Domänennamen ändern, dann wird auch der Name
des SMTP-Standardservers automatisch modifiziert, sobald der Dienst neu
gestartet wird.
Um die Standarddomäne zu ändern, müssen mindestens zwei Domänen im
SMTP-Server spezifiziert worden sein. Dabei bezeichnet der oberste Domänen-
name in der Liste die Standarddomäne. Sie können im rechten Fensterbereich mit
der rechten Maustaste den Namen der Domäne anklicken, die zur Standarddo-
mäne werden soll, und dann im Kontextmenü den Eintrag STANDARD wählen.
Beachten Sie, dass der Eintrag an den Anfang der Liste verschoben wird.
Für Remotedomänen gibt es ein paar zusätzliche Konfigurationsoptionen, die für
lokale oder Aliasdomänen nicht vorhanden sind. Um diese Optionen einzustellen,
klicken Sie mit der rechten Maustaste auf den Namen der Remotedomäne und
wählen Sie den Eintrag EIGENSCHAFTEN im Kontextmenü. Das Dialogfeld EIGEN-
SCHAFTEN (Abbildung 4.21) wird aufgerufen.

In Abbildung 4.21 wurde das Eigenschaftsfenster der Remotedomäne mcp.de auf-


gerufen und die Registerkarte ALLGEMEIN aktiviert. Hier finden Sie die folgenden
Optionen:
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 113

Abb. 4.21: Das Dialogfeld EIGENSCHAFTEN VON MCP.DE enthält zwei Registerkarten
zur Einstellung von Routing- und Sicherheitsoptionen der
Remotedomäne

• Eingehende Nachrichten können an diese Domäne weitergegeben werden.


Standardmäßig ist die Weitergabe von Nachrichten über diesen Server deakti-
viert; durch Markierung dieses Kontrollkästchens können Sie dieses Verhalten
ändern.
• HELO anstelle von EHLO senden. Wenn SMTP-Clients, die ESMTP (Ex-
tended SMTP, erweitertes SMTP) unterstützen, eine Verbindung mit Ihrem
Server herstellen, dann beginnen sie die Sitzung durch Senden des EHLO-Be-
fehls. Dadurch wird beim Server (sofern er ESMTP versteht) eine Auflistung
der unterstützten Eigenschaften ausgelöst. Selektieren Sie diese Option, wenn
Ihr SMTP-Client von einem Remoteserver Fehlermeldungen erhält, weil dieser
den EHLO-Befehl nicht unterstützt.
• Ausgehende Sicherheit. Wenn Sie diese Schaltfläche anklicken, wird das Di-
alogfeld AUSGEHENDE SICHERHEIT aufgerufen, in dem Sie Authentifizierungs-
und TLS-Einstellungen vornehmen können.
• Routingdomäne. Dieser Abschnitt enthält zwei Optionen. Die Standardoption
heißt DNS FÜR DIE WEITERLEITUNG ZU DIESER DOMÄNE VERWENDEN; wenn
sie selektiert ist, dann übermittelt der SMTP-Server Nachrichten an die Remo-
114 Arbeiten mit dem virtuellen Server für SMTP

tedomäne auf normalem Wege. Wenn Sie jedoch die Option GESAMTE MAIL
AN SMART HOST WEITERLEITEN wählen, dann müssen Sie den Namen Ihres
Smart Hosts eingeben (siehe hierzu auch die Anmerkungen zu Abbildung
4.18).
Auf der Registerkarte WEITERE OPTIONEN finden Sie ebendiese für Domänen, die
sich regelmäßig einwählen bzw. eine Verbindung herstellen, um Nachrichten
abzuholen. Hier müssen Sie die Option NACHRICHTEN FÜR REMOTE AUSGELÖSTE
ÜBERMITTLUNG IN WARTESCHLANGE EINREIHEN selektieren, damit der SMTP-
Dienst weiß, dass er die Nachrichten, die an diese Remotedomäne gesendet wer-
den sollen, so lange behalten muss, bis eine gültige Anmeldung für die Anforde-
rung der Nachrichten erfolgt ist.
Aus Sicherheitsgründen müssen Sie auf die Schaltfläche HINZUFÜGEN klicken,
wenn Sie Benutzer oder Gruppen der Liste der autorisierten Konten hinzufügen
wollen.

LDAP-Serververbindungen
Das LDAP-Protokoll (Lightweight Directory Access Protocol) wurde als Inter-
netprotokoll für den Zugriff auf Verzeichnisse und Daten in jenen Serververzeich-
nissen entwickelt, die dieses Protokoll unterstützen. Das Active Directory von
Windows 2000 ist LDAP-kompatibel. SMTP kann LDAP zur Anforderung einer
Liste von Mailbenutzern von einem LDAP-Server verwenden. Abbildung 4.22
zeigt die Registerkarte LDAP-ROUTING des Dialogfelds EIGENSCHAFTEN VON
VIRTUELLER STANDARDSERVER FÜR SMTP.
Wenn Sie den Namen des Servers in das entsprechende Textfeld eingegeben
haben, müssen Sie noch den Schematyp bestimmen. Das Listenfeld SCHEMA ent-
hält drei mögliche Schematypen:
• Active Directory. Wählen Sie diese Option, wenn Sie eine Verbindung zu ei-
nem Windows 2000-Server mit Active Directory herstellen. Sie können das
Administrations-Snap-In ACTIVE DIRECTORY-BENUTZER UND -COMPUTER auf
dem Server zur Verwaltung von Postfächern benutzen.
• Site-Server-Mitgliedschaft. Wenn Sie als Bestandteil von MCIS 2.0-Mail
(Microsoft Commercial Internet System) LDAP installiert haben, sollten Sie
diese Option wählen.
• Exchange LDAP-Dienst. Diese Option sollten Sie verwenden, wenn Sie zur
Postfachverwaltung Site Server 3.0 oder höher einsetzen.
Im nächsten Listenfeld BINDUNG müssen Sie festlegen, welche Authentifizie-
rungsebene Sie auswählen wollen. Hier gibt es vier Optionen:
• Anonym. Benötigt keine Authentifizierung.
• Unverschlüsselt. Die Kontendaten werden angefordert, jedoch unverschlüs-
selt übertragen.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 115

Abb. 4.22: Die Registerkarte LDAP-ROUTING des Dialogfelds EIGENSCHAFTEN VON


VIRTUELLER STANDARDSERVER FÜR SMTP erlaubt Ihnen die Konfiguration
von SMTP als Client eines LDAP-Servers

• Windows-SSPI. Wenn Sie diese Option selektieren, handeln Client und Server
die Sicherheitseinstellungen untereinander aus. Es wird die sicherste Methode
verwendet, die von beiden verstanden wird.
• Dienstkonto. Diese Option verwendet die Sicherheitsdaten des Kontos, unter
dem der SMTP-Dienst ausgeführt wird.
Wenn Sie die Optionen UNVERSCHLÜSSELT oder WINDOWS-SSPI wählen, werden
Sie zur Eingabe des Domänennamens sowie des Benutzernamens und -kennworts
aufgefordert.
Geben Sie gegebenenfalls in das Textfeld BASIS den Namen desjenigen Contai-
ners im kontaktierten Verzeichnisdienst ein, in dem Sie die Verzeichnisdienstsu-
che starten wollen. Falls Untercontainer vorhanden sind, werden auch diese
durchsucht, sofern Sie hier das übergeordnete Verzeichnis angeben.

SMTP-Dienst überwachen und Probleme beheben


In Windows 2000 sind ein paar Programme vorhanden, die Sie bei der Leistungs-
überwachung Ihres SMTP-Servers und der Behebung entsprechender Probleme
116 Arbeiten mit dem virtuellen Server für SMTP

unterstützen sollen. Zu diesen Programmen gehören der Systemmonitor, die Pro-


tokollierung und die Ereignisanzeige.
Der Systemmonitor (zu finden unter START/PROGRAMME/VERWALTUNG/LEIS-
TUNG) ist kein dediziertes SMTP- oder IIS-Tool, sondern dient der Überwachung
der Systemleistung auf vielen Ebenen des Betriebssystems. Um ihn in Zusam-
menhang mit SMTP benutzen zu können, müssen Sie zunächst Leistungsindika-
toren für das Objekt SMTP SERVER hinzufügen, deren Verlauf dann im Dia-
gramm angezeigt wird. Einige der für dieses Objekt verfügbaren Indikatoren
sehen Sie in Abbildung 4.23. Sie können das Dialogfeld aufrufen, indem Sie in
der Werkzeugleiste des Systemmonitors das Pluszeichen anklicken.

Abb. 4.23: Der SMTP-Dienst stellt eine Fülle von Leistungsindikatoren zur
Verwendung im Systemmonitor bereit

Weitere Informationen zur Verwendung des Systemmonitors finden Sie in der


Onlinehilfe von Windows 2000.
Die Ereignisanzeige von Windows 2000 Server stellt eine hervorragende Mög-
lichkeit dar, Fehlermeldungen zu betrachten, die vom SMTP-Dienst erzeugt wur-
den. Abbildung 4.24 zeigt die Ereignisanzeige mit einigen SMTP-Fehlermeldun-
gen. Sie rufen die Ereignisanzeige über START/PROGRAMME/VERWALTUNG/
EREIGNISANZEIGE auf.

Hinweis
Sie müssen im linken Fensterbereich das Systemprotokoll auswählen, um
SMTP-Fehlermeldungen betrachten zu können.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 117

Abb. 4.24: Die Ereignisanzeige beinhaltet mehrere Protokolltypen. Für den SMTP-
Dienst ist das Systemprotokoll zuständig.

Sie können zur Überwachung von SMTP auch die Protokollierung verwenden, in
der alle Befehle aufgezeichnet werden, die von SMTP-Clients empfangen wur-
den. Die Protokollierung kann in einem von vier möglichen Formaten erfolgen;
detaillierte Informationen finden Sie weiter oben im Abschnitt »Protokollierung«.

4.2 Der NNTP-Dienst


Der NNTP-Dienst, der zu IIS 5.0 gehört, gibt Ihnen die Möglichkeit, beispiels-
weise Newsgroups und Diskussionsforen für interne Zwecke oder auch Kunden-
foren auf Ihrem Server abzulegen.
Der NNTP-Dienst wird bei der IIS-Installation nicht standardmäßig mitinstalliert.
Um den NNTP-Dienst dem IIS-Server hinzuzufügen, öffnen Sie den Internet-
dienste-Manager und selektieren das Computersymbol im linken Fensterbereich.
Wählen Sie dann im Menü VORGANG den Eintrag NEU/VIRTUELLER NNTP-
SERVER.
Nun wird der ASSISTENT FÜR NEUEN VIRTUELLEN NNTP-SERVER geöffnet.
Zunächst sollen Sie eine Beschreibung für den Server eingeben. Im nächsten
Fenster werden Sie dann zur Eingabe einer IP-Adresse und einer Anschlussnum-
mer aufgefordert. Wenn dies ihr erster NNTP-Server ist, dann wählen Sie die
typische NNTP-Anschlussnummer 119. Klicken Sie dann auf WEITER.
118 Der NNTP-Dienst

Nun wird das Fenster PFAD FÜR INTERNE SERVERDATEIEN AUSWÄHLEN geöffnet,
in dem Sie einen Pfad für die Ablage der vom Server erzeugten Dateien eingeben
können. Wählen Sie nach Bestätigung durch WEITER das gewünschte Speicher-
medium aus – DATEISYSTEM für den lokalen Computer oder FREIGABE AUF
REMOTESYSTEM, falls das Verzeichnis auf einem Remotecomputer liegt.
Als Nächstes geben Sie den PFAD ZUM SPEICHERN DER NEWSINHALTE ein, dann
klicken Sie auf FERTIG STELLEN, um die Erstellung des virtuellen NNTP-Servers
abzuschließen.
Der mit IIS 5.0 ausgelieferte NNTP-Dienst unterstützt das NNTP-Protokoll voll-
ständig und ermöglicht sowohl Client-Server- als auch Server-Server-Kommuni-
kation. Ferner unterstützt er den MIME-Standard (Multipurpose Internet Mail
Extensions, Mehrzweckerweiterung für Internetpost) und die Formate HTML,
GIF und JPEG.
Wie der SMTP-Dienst ist auch der NNTP-Dienst zur leichteren Administrierung
in die MMC integriert. Dadurch können Sie außerdem mehrere NNTP-Server von
einer zentralen Stelle im Netzwerk aus verwalten.
Auch diverse Verwaltungsprogramme unter Windows 2000 Server wie etwa der
Systemmonitor und die Ereignisanzeige können zur Ereignisprotokollierung und
Problembehebung beim NNTP-Dienst verwendet werden. Sie können ferner die
ACLs (Access Control Lists, Zugriffssteuerungslisten) von Windows 2000 benut-
zen, um die Sicherheit Ihrer NNTP-Verzeichnisse zu erhöhen. Durch Einrichtung
eingeschränkter NTFS-Berechtigungen für die Verzeichnisse können Sie den
unbefugten Zugriff auf bestimmte Newsgroups verhindern, und mit Hilfe des
CRS (Content Replication System, Replikationssystem für Inhalte) können Sie
die ACLs serverübergreifend aktualisieren, was eine bedeutende Erleichterung
der Administration darstellt.
Wenn Sie den Indexdienst von Microsoft auf Ihrem Server installiert und konfigu-
riert haben, dann können Sie überdies die Suchfunktionen dieses Dienstes ver-
wenden und Ihre Newsgroups auf diese Weise nach bestimmten Gruppen oder
Nachrichten durchsuchen.
Zudem bietet der NNTP-Dienst drei mögliche Authentifizierungsszenarios an:
• Anonyme Anmeldung erlauben. Ist identisch mit der anonymen Anmeldung
bei den Web- und FTP-Diensten und gewährleistet allen Benutzern Zugriff auf
den Server.
• Standardauthentifizierung (Kennwort bleibt unverschlüsselt). Diese Au-
thentifizierungsmethode erfordert die Angabe eines Benutzernamens und eines
Kennworts, die unverschlüsselt übertragen werden.
• Windows-Sicherheitspaket. Wenn Ihre Benutzer ausschließlich mit Mail-
und Newsclients von Microsoft arbeiten, dann können Sie diese Option wäh-
len, damit Benutzernamen und Kennwörter verschlüsselt über das Netzwerk
übertragen werden.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 119

Abbildung 4.25 zeigt den NNTP-Dienst mit einigen installierten und konfigurier-
ten Newsgroups.

Abb. 4.25: Der NNTP-Dienst in der MMC erlaubt die Ansicht und Administration
des Dienstes und der auf dem Server enthaltenen Newsgroups

4.2.1 Konfiguration des NNTP-Dienstes


Bevor Sie den NNTP-Dienst konfigurieren, sollten Sie die Struktur kennen, die er
für seine Gruppen und Nachrichten verwendet. Jede Newsgroup, die im NNTP
erstellt wird, ist eigentlich ein Verzeichnis im Basisverzeichnis, und jeder Beitrag
in einer Newsgroup ist eine Datei in einem solchen Verzeichnis. Abbildung 4.26
zeigt die Verzeichnisstruktur des NNTP-Dienstes auf meinem Computer.
Wie Sie Abbildung 4.26 entnehmen können, ist das Standardbasisverzeichnis für
NNTP der Ordner x:\InetPub\nntpfile\root (hierbei ist x: das Verzeichnis, in dem
der NNTP-Dienst installiert ist). Sie können aber auch ein anderes Standardver-
zeichnis wählen. Gehen Sie hierzu wie folgt vor:
1. Öffnen Sie, falls nicht bereits geschehen, den Internetdienste-Manager und
blenden Sie im linken Fenster den Zweig unter dem Serversymbol ein, um den
virtuellen NNTP-Server anzuzeigen.
2. Blenden Sie den Zweig unterhalb des NNTP-Servers ein und wählen Sie den
Eintrag VIRTUELLE VERZEICHNISSE.
120 Der NNTP-Dienst

Abb. 4.26: Der NNTP-Dienst speichert Newsgroups als Verzeichnisse und


Nachrichten als Dateien in diesen Verzeichnissen

3. Klicken Sie mit der rechten Maustaste im rechten Fensterbereich auf den Ein-
trag STANDARD und wählen Sie im Kontextmenü den Eintrag EIGENSCHAFTEN.
Das Dialogfeld EIGENSCHAFTEN VON STANDARD (Abbildung 4.27) öffnet sich.
4. Klicken Sie auf die Schaltfläche INHALT und geben Sie den lokalen Pfad oder
die Netzwerkfreigabe für Ihr Standardverzeichnis ein.
Sie haben vielleicht festgestellt, dass ein paar Verzeichnisse und Dateien im Ord-
ner nntpfile vorhanden sind; diese dürfen Sie nicht löschen oder ändern, da es sich
hierbei um interne Datenstrukturen handelt, die der Dienst benötigt.
In der im linken Fensterbereich des Internetdienste-Managers vorhandenen
Baumstruktur befinden sich unterhalb des virtuellen NNTP-Servers die folgenden
vier Einträge:
• Newsgroups. Wählen Sie diesen Eintrag, um die auf dem Server konfigurier-
ten Newsgroups zu betrachten.
• Ablaufrichtlinien. Klicken Sie mit der rechten Maustaste auf diesen Eintrag
und wählen Sie dann im Kontextmenü den Eintrag NEU/ABLAUFRICHTLINIE.
Hierdurch wird der ASSISTENT FÜR NEUE NNTP-ABLAUFRICHTLINIEN gestar-
tet. Geben Sie die Ablaufdaten für Artikel auf diesem Server ein; hierdurch
wird festgelegt, wie lange die Artikel auf dem Server verbleiben, bevor sie ge-
löscht werden.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 121

Abb. 4.27: Über die Schaltfläche INHALT haben Sie Zugriff auf Namen und Ort des
Standardverzeichnisses für Ihren virtuellen NNTP-Server

• Virtuelle Verzeichnisse. Über diesen Eintrag können Sie neue virtuelle Ver-
zeichnisse auf Ihrem Server erstellen. Klicken Sie mit der rechten Maustaste
auf den Eintrag und wählen Sie im Kontextmenü den Eintrag NEU/VIRTUELLES
VERZEICHNIS, um den ASSISTENTEN FÜR NEUES VIRTUELLES NNTP-VER-
ZEICHNIS aufzurufen.

• Aktuelle Sitzungen. Hier können Sie alle aktuellen Verbindungen zum Server
betrachten. Wenn Sie alle Clientverbindungen beenden wollen, klicken Sie mit
der rechten Maustaste auf das Symbol und wählen Sie den Eintrag ALLE BEEN-
DEN im Kontextmenü.

Wenn Sie das Symbol des virtuellen NNTP-Servers im linken Fensterbereich mit
der rechten Maustaste anklicken und dann im Kontextmenü den Eintrag EIGEN-
SCHAFTEN wählen, wird das Dialogfeld EIGENSCHAFTEN VON VIRTUELLER STAN-
DARDSERVER FÜR NNTP aufgerufen (Abbildung 4.28). Hier konfigurieren Sie
den Dienst.
122 Der NNTP-Dienst

Abb. 4.28: Das Dialogfeld EIGENSCHAFTEN VON VIRTUELLER STANDARDSERVER FÜR


NNTP beinhaltet die Konfigurationsoptionen für den NNTP-Dienst

Auf der Registerkarte ALLGEMEIN können Sie Namen und IP-Adresse des Servers
auf die gleiche Weise konfigurieren wie bei den Web-, FTP- und SMTP-Diensten.
Bei Anklicken der Schaltfläche VERBINDUNG wird ein kleines Dialogfeld geöff-
net, in dem Sie die maximale Anzahl von Verbindungen und ein Zeitlimit ange-
ben können. Wenn Sie die Option VERBINDUNGEN BESCHRÄNKEN AUF markieren,
wird der Standardwert von maximal 5.000 Verbindungen angezeigt. Sie können
hier entweder den von Ihnen gewünschten Maximalwert eingeben oder das Kon-
trollkästchen demarkieren, wenn Sie die Anzahl der Verbindungen nicht
begrenzen wollen. Wenn Sie einen gut ausgelasteten Server haben, sollten Sie hier
einen Wert eingeben, den Sie durch Überwachung der Serverleistung mit Hilfe
des Systemmonitors bei unterschiedlich vielen Verbindungen ermittelt haben.
Sie können auch ein Zeitlimit setzen, welches bestimmt, wie lange der Server
eine Verbindung mit einem Client aufrechterhält, der sich nicht meldet. Standard-
mäßig sind zehn Minuten eingestellt.
Unter dem Abschnitt VERBINDUNG finden Sie auf der Registerkarte ALLGEMEIN
die inzwischen vertraute Option PROTOKOLLIERUNG AKTIVIEREN. Ich werde an
dieser Stelle nicht näher darauf eingehen, denn die Protokollierungsoptionen ent-
sprechen denen der anderen Dienste. Ganz unten befindet sich dann noch die
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 123

Option PFAD-KOPFZEILE. Hier können Sie eine Zeichenkette angeben, die dann in
der Zeile Path (Pfad) Ihrer Mails angegeben wird.
Wechseln Sie nun auf die Registerkarte ZUGRIFF (Abbildung 4.29).

Abb. 4.29: Auf der Registerkarte ZUGRIFF können Sie verschiedene Optionen für
Sicherheit und Zugriffskontrolle beim NNTP-Dienst einstellen

Klicken Sie auf die Schaltfläche AUTHENTIFIZIERUNG, um eine der Authentifizie-


rungsmethoden Anonym, Standard oder Windows-Sicherheitspaket auszuwählen.
Diese Optionen wurden bereits erläutert, weswegen ich Sie nicht wieder mit Ein-
zelheiten langweilen will. Allerdings werden Sie feststellen, dass Sie auch eine
SSL-Clientauthentifizierung aktivieren können; in diesem Fall müssen sich
Clients mit einem Clientzertifikat authentifizieren, das auch einem Benutzerkonto
auf dem Server zugeordnet werden kann.
Über die Schaltfläche ZERTIFIKAT im Abschnitt SICHERE KOMMUNIKATION wird
der IIS-ZERTIFIKATS-ASSISTENT gestartet, mit dem Sie ein neues Zertifikat erstel-
len, vorhandene Zertifikate zuweisen und Zertifikate aus einem Schlüssel-Mana-
ger importieren können.
Der letzte Abschnitt VERBINDUNGSKONTROLLE gestattet die Auswahl von durch
IP-Adresse, Subnetzmaske oder Domänenname identifizierten Computern, denen
der Zugriff gestattet oder verweigert werden kann. Diese Optionen sind für
124 Der NNTP-Dienst

externe Verbindungen angemessen; in einem Intranet müssen hier normalerweise


keine Änderungen vorgenommen werden. Wechseln Sie also zur Registerkarte
EINSTELLUNGEN (Abbildung 4.30), auf der Sie Nachrichtengrößen und Moderato-
ren konfigurieren.

Abb. 4.30: Die Registerkarte EINSTELLUNGEN steuert die Größe von Nachrichten,
Moderationsdaten und Newsfeed-Parameter

Beginnen wir ganz oben auf der Registerkarte mit der Option BEITRÄGE VON
CLIENTS VERÖFFENTLICHEN. Wenn Sie dieses Kontrollkästchen deselektieren,
dann wird der Server keine von Clients gesendeten Nachrichten akzeptieren; er
wird in diesem Fall nur als Veröffentlichungsmedium benutzt. Abbildung 4.31
zeigt eine Fehlermeldung, die von Outlook Express angezeigt wird, wenn Sie ver-
suchen, eine Nachricht an einen Server zu senden, bei dem Clientbeiträge deakti-
viert sind.
Wenn Sie den Versand von Clientbeiträgen an den Newsserver zulassen, dann
können Sie die Größe aller Beiträge (Nachrichten) sowie den maximalen Umfang
aller Beiträge einer einzelnen Verbindung beschränken. Die Standardeinstellung
für die Maximalgröße einer Nachricht wird über die Option MAX. GRÖSSE EINES
BEITRAGS (KB) angegeben, der Standardwert liegt hier bei 1.000 Kbyte.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 125

Abb. 4.31: Wenn die Option BEITRÄGE VON CLIENTS VERÖFFENTLICHEN auf der
Registerkarte EINSTELLUNGEN nicht markiert ist, gestattet es der NNTP-
Dienst Clients nicht, Artikel an den Server zu schicken

Einige Benutzer lesen und schreiben ihre Beiträge offline; insofern kann die
Datenmenge der bei der nächsten Verbindung hochgeladenen Beiträge schon
recht beträchtlich sein. Wenn Sie die maximale Größe aller Beiträge begrenzen
wollen, die ein Client im Verlauf einer Verbindungssitzung senden kann, dann
markieren Sie das Kontrollkästchen MAXIMALE GRÖSSE ALLER BEITRÄGE (MB)
und geben einen Wert (in Mbyte) ein (Standard: 20 Mbyte). Mit dieser Option
verhindern Sie ein Gedränge auf Ihrem Server.
Wenn Sie keinerlei Begrenzungen aufstellen wollen, dann deselektieren Sie beide
Kontrollkästchen. Verwenden Sie auch hier den Systemmonitor und beobachten
Sie ferner den verfügbaren Festplattenspeicher, um pragmatische Grenzwerte zu
ermitteln.
Die nächste Option auf der Registerkarte EINSTELLUNGEN bestimmt, ob Ihr Ser-
ver Beiträge von Newsfeeds akzeptiert; wenn Sie das Kontrollkästchen aktivieren
(Standardeinstellung), dann können Newsfeeds ihre Beiträge auf Ihren Server
126 Der NNTP-Dienst

hochladen. Auch hier können Sie die Größe eines Artikels und die Gesamtgröße
aller während einer Verbindungssitzung hochgeladenen Daten auf die gleiche
Weise limitieren wie oben bei den Clientbeiträgen.
Unterhalb dieses Abschnitts befindet sich die Option ANDEREN SERVERN DAS
ANFORDERN (PULL) VON BEITRÄGEN ERMÖGLICHEN. Wenn Sie das Kontrollkäst-
chen aktivieren, dann kann ein anderer Newsserver im Internet, einem Intranet
oder Ihrem WAN-Netzwerk sich Newsgroups und Beiträge von Ihrem Server
herunterladen und selbst verwenden. Wenn Sie ein WAN-Netzwerk haben, dann
können Sie vielleicht von dieser Möglichkeit profitieren, denn so lassen sich
Newsgroups und Beiträge automatisch server- oder domänenübergreifend repli-
zieren. Sie sollten den Verbindungsstatus Ihres Servers allerdings überwachen,
sofern er über das Internet erreicht werden kann; möglicherweise versuchen
externe Server oder Benutzer, Ihren Server als Quelle für Newsgroups zu miss-
brauchen. Sie müssen also in jedem Fall Zugriffsbeschränkungen für jene Ver-
zeichnisse konfigurieren, die über das Internet erreichbar sind.
Ganz unten auf der Registerkarte EINSTELLUNGEN finden Sie drei Textfelder vor.
Im ersten Textfeld SMTP-SERVER FÜR MODERIERTE NEWSGROUPS legen Sie
einen Mailserver fest, an den Beiträge für eine moderierte Newsgroup gesendet
werden. In einer moderierten Newsgroup erhält der Moderator alle Beiträge,
bevor sie auf den Server gelegt werden und sich im allgemeinen Zugriff befinden.
Auf diese Weise kann der Moderator bestimmen, ob der Inhalt des Beitrags über-
haupt relevant ist.
Das zweite Textfeld STANDARDMODERATORDOMÄNE dient der Weiterleitung von
Beiträgen an einen Standardmoderator, wenn diese Beiträge an eine moderierte
Gruppe gesendet werden, ohne dass ein Moderator spezifiziert wurde.
Das letzte Textfeld sollte die E-Mail-Adresse eines Administrators enthalten, der
Unzustellbarkeitsberichte für Beiträge erhält, die dem Newsgroup-Moderator
nicht zugestellt werden konnten.
Abbildung 4.32 zeigt die letzte Registerkarte des Dialogfeld EIGENSCHAFTEN
namens SICHERHEIT. Klicken Sie bei Bedarf auf die Schaltfläche HINZUFÜGEN,
um eine Kontenliste für Computer oder Domäne zu öffnen, in der Sie die Benut-
zer festlegen, die auf dem Server Änderungen vornehmen dürfen. Wenn Sie einen
Benutzer oder eine Gruppe in der Operatorenliste auswählen und die Schaltfläche
ENTFERNEN anklicken, dann wird das Element aus der Liste der berechtigten
Benutzer entfernt.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 127

Abb. 4.32: Auf der Registerkarte SICHERHEIT werden alle vorhandenen Operatoren
aufgelistet, die Berechtigungen für den NNTP-Server haben

4.2.2 NNTP warten und überwachen


Dies ist wahrscheinlich einer der wichtigsten Bereiche, mit denen sich ein Admi-
nistrator zu beschäftigen hat. Eine angemessene Wartung und Überwachung Ihres
NNTP-Servers dient der Vermeidung größerer Ausfälle und Unterbrechungen für
die Benutzer Ihres Newsservers. Wie bei anderen Diensten unter Windows 2000
können Sie auch hier den Systemmonitor und die Ereignisanzeige verwenden, um
die Leistung des Newsservers zu überwachen und Fehlermeldungen nachzuprü-
fen.
Sie können bei der Wartung des NNTP-Dienstes verschiedene Skripts einsetzen.
Diese Skripts sind in VBScript geschrieben und können lokal oder über einen
Remoteserver ausgeführt werden. Es stehen insgesamt vier Skripts zur Verfü-
gung:
• Rexpire.vbs. Verwenden Sie dieses Skript, um Ablaufrichtlinien hinzuzufü-
gen, zu modifizieren oder zu löschen.
• Rgroup.vbs. Verwenden Sie dieses Skript, um Gruppen auf dem Server hinzu-
zufügen, zu modifizieren oder zu löschen.
128 Der NNTP-Dienst

• Rserver.vbs. Verwenden Sie dieses Skript, um virtuelle Server hinzuzufügen,


zu modifizieren oder zu löschen.
• Rsess.vbs. Hierbei handelt es sich um ein Skript zur Sitzungsverwaltung.
Für jeden dieser Befehle gibt es Befehlszeilenoptionen und Rückgabecodes. Es
wäre zu viel verlangt, diese hier alle aufzulisten, deswegen empfehle ich Ihnen,
die Skriptbefehle in der Onlinehilfe nachzuschlagen, falls Sie weitere Informatio-
nen benötigen.
Für die Leistungsüberwachung des NNTP-Dienstes hat Microsoft eine Reihe ver-
schiedener Indikatoren integriert, die dem Diagramm im Systemmonitor hinzuge-
fügt werden können. Abbildung 4.33 zeigt das Dialogfeld LEISTUNGSINDIKATO-
REN HINZUFÜGEN im Systemmonitor mit der Auswahl des Objekts NNTP-
SERVER und einigen verfügbaren Indikatoren. Es gibt zu viele Indikatoren, um sie
hier alle aufzuzählen. Experimentieren Sie ein wenig mit dem Systemmonitor, um
festzustellen, was genau jeder einzelne Indikator misst.

Abb. 4.33: Das Dialogfeld LEISTUNGSINDIKATOREN HINZUFÜGEN listet die für das
Objekt NNTP-SERVER vorhandenen Indikatoren auf. Wenn Sie die
Schaltfläche ERKLÄRUNG anklicken, erscheint ein Erläuterungsfenster
zum selektierten Indikator.

Wenn Sie weitere Informationen zu einem bestimmten Leistungsindikator benöti-


gen, dann selektieren Sie ihn und klicken Sie dann auf die Schaltfläche ERKLÄ-
RUNG, um das Fenster ERKLÄRUNG aufzurufen.

Für den NNTP-Dienst sind zwei Leistungsobjekte vorhanden, nämlich NNTP-


SERVER und NNTP-BEFEHLE. Das Objekt NNTP-SERVER wird zur Leistungser-
mittlung bei gesendeten und empfangenen Beiträgen und Bytes sowie anderer
Indikatoren benutzt, die sich auf den Serverbetrieb beziehen; das Objekt NNTP-
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 129

BEFEHLE hingegen bezieht sich auf mögliche Befehle, die der Server von den
Clients empfängt und verarbeitet.
Ich empfehle Ihnen, zunächst die folgenden Leistungsindikatoren zu überwachen:
• Gesamtzahl von Bytes/Sek. Dieser Indikator misst die Gesamtzahl der Bytes,
die pro Sekunde durch den NNTP-Server geleitet werden. Er hilft Ihnen beim
Auffinden von Flaschenhälsen auf Ihrem Server.
• Maximale Verbindungen. Verwenden Sie diesen Indikator zur Überwachung
der mit dem Server hergestellten Verbindungen. Dieser Wert sollte immer un-
ter dem Grenzwert liegen, den Sie auf der Registerkarte ALLGEMEIN gesetzt
haben.
• Anmeldungsversuche und Anmeldungsfehlschläge. Wenn Sie einen siche-
ren Server betreiben, dann zeigt Ihnen dieser Indikator, ob ein Unbefugter ver-
sucht hat (oder gerade versucht), in Ihren Server einzubrechen.
Zugegeben: Dies ist keine sehr umfangreiche Liste mit Leistungsindikatoren, die
Sie auf Ihrem Server konfigurieren sollten, aber sie stellt immerhin einen guten
Ausgangspunkt dar, um sich ein Bild davon zu machen, welche Leistung Ihr Ser-
ver in Bezug auf den NNTP-Dienst erbringt.

Warnung
Auch wenn die Leistungsindikatoren eine hervorragende Möglichkeit
darstellen, Ihren Server und vor allem seine Leistung zu überwachen, so
sollten Sie doch immer bedenken, dass diese Überwachung dem Server
ihrerseits Leistung abverlangt. Wählen Sie also weise.

Ich habe Ihnen bereits gezeigt, wie Sie die Protokollierung für den NNTP-Dienst
konfigurieren. Sie können diese Protokolle verwenden, um festzustellen, ob bei
der Funktionsweise des Dienstes Abweichungen auftreten. Jedes Mal, wenn ein
Benutzer eine Verbindung zum Server herstellt, einen Beitrag liest oder versendet
oder sich abmeldet, wird im Protokoll ein neuer Eintrag erstellt.
Sie können sich diese Protokolle als Textdateien anzeigen lassen oder in eine
andere Anwendung – etwa eine Tabellenkalkulation oder eine Datenbankanwen-
dung – importieren, um Tendenzen zu entdecken.
Eine andere Möglichkeit, den Dienst zu überwachen, ist die Ereignisanzeige.
Rufen Sie diese über START/PROGRAMME/VERWALTUNG/EREIGNISANZEIGE auf
und wählen Sie dann den Eintrag SYSTEMPROTOKOLL im Baumdiagramm, um
sich die Systemprotokolle anzeigen zu lassen, die während des Betriebs Ihres
Windows 2000-Servers erstellt wurden.
Sehr wahrscheinlich werden Sie sich jetzt gerade besonders für NNTP-Einträge
interessieren. Selektieren Sie also das Symbol SYSTEMPROTOKOLL und wählen
Sie dann im Menü ANSICHT den Eintrag FILTER. Nun wird das Dialogfeld EIGEN-
SCHAFTEN VON SYSTEMPROTOKOLL (Abbildung 4.34) aufgerufen.
130 Der NNTP-Dienst

Abb. 4.34: Das Dialogfeld EIGENSCHAFTEN VON SYSTEMPROTOKOLL mit selektierter


Registerkarte FILTER, hier mit gewählter Ereignisquelle NNTPSVC

Wählen Sie auf der Registerkarte FILTER im Listenfeld EREIGNISQUELLE den Ein-
trag NNTPSVC (NNTP Service, NNTP-Dienst), um die Anzeige auf solche Ereig-
nisse zu beschränken, die mit dem NNTP-Dienst in Zusammenhang stehen.
Wenn Sie die Protokolldateien oder die in der Ereignisanzeige vorhandenen Feh-
lermeldungen durchsuchen, werden Sie über einige Einträge stolpern, bei denen
Ihnen empfohlen wird, den NNTP-Server wiederherzustellen. Diese Option
wurde implementiert, um den Server möglichst schnell wieder in Betrieb zu brin-
gen, falls etwa die Festplatte ausgefallen ist, Dateien versehentlich gelöscht wur-
den oder es Probleme beim Zugriff auf Beiträge gibt.
Sie können dabei zwischen zwei Möglichkeiten der Wiederherstellung wählen.
STANDARD ist die schnellere Option, stellt aber nicht alle Dateien wieder her.
Wenn Sie auf die Wiederherstellung aller Dateien Wert legen, wählen Sie INTEN-
SIV.

Warnung
Vergewissern Sie sich vor dem Ausführen einer Wiederherstellung, dass
Sie den NNTP-Dienst beendet haben.
Kapitel 4 • Administration von SMTP- und NNTP-Diensten 131

Wenn Sie den Dienst beendet haben, wählen Sie das Symbol des virtuellen
NNTP-Servers im Verzeichnisdiagramm aus und selektieren Sie im Menü VOR-
GANG den Eintrag ALLE TASKS/SERVER AKTUALISIEREN, um das Dialogfeld VIR-
TUELLEN NNTP-SERVER WIEDERHERSTELLEN (Abbildung 4.35) aufzurufen.

Abb. 4.35: Das Dialogfeld VIRTUELLEN NNTP-SERVER WIEDERHERSTELLEN, in dem Sie


eine der Wiederherstellungsmethoden STANDARD oder INTENSIV
auswählen können

Verwenden Sie den im Dialogfeld gezeigten Schiebregler, um zwischen den bei-


den Wiederherstellungsmethoden zu wählen, und klicken Sie danach auf die
Schaltfläche START, um die Wiederherstellung zu starten. Die Statusanzeige hält
Sie über den Fortschritt der Aktualisierung auf dem Laufenden.

4.2.3 NNTP-Probleme beheben


Wenn im Zusammenhang mit Ihrem NNTP-Server Probleme auftreten, dann gibt
es eine Reihe von Maßnahmen, die Sie zur Bestimmung und Beseitigung solcher
Probleme ergreifen können. Sie können zunächst einmal die bereits erwähnten
Überwachungsprogramme verwenden. Auch die Benutzer Ihres Servers können
bei Problemen eine zuverlässige Informationsquelle sein; schließlich sind sie die-
jenigen, die den Server regelmäßig benutzen, und sie wären die ersten, denen
Unstimmigkeiten auffallen würden.
Mit der Ereignisanzeige können Sie feststellen, ob die aufgetretenen Probleme
darin begründet sind, dass ein Dienst nicht gestartet oder beendet wurde; von einem
nicht gestarteten Server beispielsweise können Clients keine neuen Newsgroup-
Beiträge abholen.
Sie könnten auch den altbewährten Befehl ping verwenden, um die Verbindung des
Servers zum übrigen Netzwerk zu verifizieren. Wenn Sie den Server für internen
und externen Zugriff auf Newsgroups konfiguriert haben, sollten Sie am besten
einen Computer, der nicht mit dem internen Netzwerk verbunden ist, zur Feststel-
lung einer funktionstüchtigen Verbindung nach außen verwenden.
132 Fazit

Last but not least können Sie auch das Telnetprogramm verwenden, um zu über-
prüfen, ob das Problem beim Client oder beim Server vorliegt.

4.3 Fazit
In diesem Kapitel haben wir die SMTP- und NNTP-Dienste betrachtet, die
Bestandteil von IIS 5.0 sind. Es wurden verschiedene Methoden zur Verwaltung
und Überwachung erläutert, damit Sie bei diesen beiden Diensten eine optimale
Leistung und Effizienz erzielen.
Mit den mit Windows 2000 Server ausgelieferten Programmen können Sie die
Leistung der Dienste überwachen und auf Ihrer Serverhardware und Ihre Verbin-
dungen hin optimieren.
Abschließend haben Sie gesehen, wie ein virtueller NNTP-Server zur Bereitstel-
lung von Diskussionsforen für die Mitarbeiter und Kunden Ihres Unternehmens
verwendet werden kann.
Kapitel 5
Publizieren mit WebDAV

5.1 Was ist WebDAV? 134


5.2 Erstellung eines WebDAV-Verzeichnisses 135
5.3 Verwaltung der WebDAV-Sicherheit 136
5.4 WebDAV-Verzeichnisse durchsuchen 139
5.5 Dateien publizieren und verwalten 143
5.6 Fazit 146
134 Was ist WebDAV?

5.1 Was ist WebDAV?


WebDAV (Web Distributed Authoring and Versioning, Web-verteilte Entwicklung
und Versionsverwaltung) ist eine Erweiterung des HTTP 1.1-Protokolls, die es
Clients gestattet, Serverressourcen zu publizieren und zu verwalten sowie vorü-
bergehend für eine Modifikation zu sperren (»Locking«).
Ferner gestattet WebDAV auch eine Versionskontrolle; hierbei handelt es sich
eigentlich um eine Erweiterung des WebDAV-Protokolls, bei der zwischen zwei
Arten der Versionskontrolle unterschieden wird, nämlich der Standard- und der
erweiterten Versionsverwaltung:
• Die Standardversionsverwaltung gestattet es Autoren, unterschiedliche Res-
sourcen wie etwa Dateien gleichzeitig zu erstellen und darauf zuzugreifen. Fer-
ner umfasst sie auch eine automatische Versionskontrolle für Clients, die eine
Version nicht unterstützen oder nicht »versionsbewusst« arbeiten.
• Die erweiterte Versionsverwaltung erlaubt Ihnen die Überwachung von Ände-
rungen und die Editierung sämtlicher Konfigurationseinstellungen. Außerdem
unterstützt sie die Versionsverwaltung des URL-Namespaces.
Wenn Sie mit Visual Source Safe vertraut sind – einer Codeprüfungs- und Spei-
cherungskomponente, die als Bestandteil der Microsoft Visual Studio Enterprise
Edition ausgeliefert wird –, dann werden Sie das Konzept der Versionskontrolle
bereits kennen. Allgemein gesagt, wird eine Datei oder eine beliebige andere Res-
source, die durch die Versionsverwaltung kontrolliert wird, beim ersten Bearbei-
tungsaufruf »ausgeklinkt«; Sie arbeiten dann nicht mit der tatsächlichen Res-
source, sondern nur mit einer Kopie. Wenn Sie dann die notwendigen
Änderungen vorgenommen haben, müssen Sie die Ressourcen nur wieder »ein-
klinken« – die Aktualisierungen werden dann automatisch vorgenommen.
Dies ist natürlich nur eine sehr allgemeine Erklärung der Versionsverwaltung. Sie
können sich, wenn Sie wollen, das gesamte, 52-seitige englischsprachige Doku-
ment unter http://www.webdav.org herunterladen; bereiten Sie sich aber mental
auf eine ausgesprochen anspruchsvolle Lektüre vor, denn bei diesem Dokument
handelt es sich nach wie vor um einen Entwurf, und zahlreiche Formulierungen
scheinen sich dank inkonsistenter Terminologieverwendung ständig im Kreis zu
drehen. Die Website ist übrigens auch immer ein guter Ausgangspunkt, falls Sie
sich über Änderungen am WebDAV-Protokoll informieren wollen.
Um ein WebDAV-Verzeichnis zu erstellen, müssen Sie unter Windows 2000 Ser-
ver oder Windows 2000 Advanced Server arbeiten. Jeder Client, der
Windows 2000 Server unterstützt, kann auf dieses WebDAV-Verzeichnis zugrei-
fen. Die Clients, mit denen Sie am häufigsten in Berührung kommen werden, sind
Windows 2000 selbst, der Internet Explorer 5.0 und Microsoft Office 2000.
Dank der Tatsache, dass WebDAV einen Industriestandard darstellt, kann jede
Clientsoftware, die WebDAV-Publishing unterstützt, Dateien in Ihrem WebDAV-
Kapitel 5 • Publizieren mit WebDAV 135

Verzeichnis publizieren, sofern die Zugriffsberechtigungen für den Benutzer ent-


sprechend konfiguriert wurden. Aus diesem Grund können auch Zweigstellen in
der unteren Provinz, die nicht mit den genannten Microsoft-Produkten arbeiten,
Inhalte des WebDAV-Verzeichnisses lesen und auch dort publizieren. Eine ständig
aktualisierte Liste mit Clientsoftware, die WebDAV unterstützt, finden Sie unter
http://www.webdav.org.
Sie können ein WebDAV-Verzeichnis über die Netzwerkumgebung unter
Windows 2000 hinzufügen, auf das dann wie auf jedes andere lokale oder Netz-
werkverzeichnis zugegriffen werden kann. Auch lassen sich mit dem Internet
Explorer 5 die gleichen Dateioperationen an diesem Verzeichnis durchführen, die
generell unter Windows 2000 möglich sind. Und wenn Sie Office 2000 in Ihrem
Netzwerk einsetzen, können Benutzer damit erstellte Dateien direkt über ein
Intranet im WebDAV-Verzeichnis publizieren.
Da WebDAV den Clients eine ganze Reihe von Dateioperationen ermöglicht –
etwa Kopieren und Verschieben, Änderung der Eigenschaften, Durchsuchen und
Sperren –, benötigen Sie ein adäquates Sicherheitsmodell, um die Authentifizie-
rung zu verwalten. WebDAV arbeitet mit den Sicherheitsfeatures sowohl des
Internet Explorers 5 als auch von Windows 2000.
WebDAV unterstützt sowohl Kerberos (Version 5) als auch die integrierte Win-
dows- und die unter Windows 2000 neu eingeführte Digest-Authentifizierung.
Diese Authentifizierungsmethoden wurden bereits in Kapitel 1 erwähnt und sol-
len hier aus Gründen der Übersichtlichkeit nicht weiter ausgeführt werden. Sie
finden in der Online-Hilfe und im Internet eine Vielzahl von Ressourcen, die
diese Authentifizierungsmethoden ausführlich erläutern. Wenn Sie sich näher mit
Kerberos beschäftigen wollen, dann suchen Sie die Website des MIT (Massachus-
etts Institute of Technology) auf, wo das Kerberos-Protokoll entwickelt wurde;
unter http://web.mit.edu/kerberos/www/index.html finden Sie hier eine Menge
sehr detaillierter Informationen dazu, was Kerberos ist und wo es herkommt,
sowie zu bekannten Problemen und Bugs. Sie finden auf der Site sogar den Quell-
code und ein paar zugehörige Binärdateien.
Auch Microsoft bietet auf seiner Windows 2000-Website ein technisches Doku-
ment zum Download an, in dem das Kerberos-Protokoll und seine Implementie-
rung in Windows 2000 beschrieben werden. Sie finden diese Informationen unter
http://www.microsoft.com/windows2000/library/planning/security/kerbsteps.asp.

5.2 Erstellung eines WebDAV-Verzeichnisses


Einer der ersten Schritte, die Sie nach der Installation eines Windows 2000-
Betriebssystems durchführen müssen, ist die Einrichtung eines WebDAV-
Verzeichnisses. Gehen Sie wie folgt vor.
136 Verwaltung der WebDAV-Sicherheit

1. Erstellen Sie einen Ordner im Verzeichnis InetPub, den Sie für das WebDAV-
Publishing verwenden wollen. In der Regel wird dies das Verzeichnis \Inet-
Pub\WebDAV sein – Sie können allerdings auch ein beliebiges anderes Ver-
zeichnis wählen. (Erstellen Sie diesen Ordner jedoch nicht im
Unterverzeichnis wwwroot, da dieses Verzeichnis vergleichsweise lasche
Sicherheitseinstellungen hat.)
2. Erstellen Sie nun im Internetdienste-Manager unter Ihrer Website ein virtuelles
Verzeichnis und nennen Sie dieses WebDAV. Lassen Sie dieses virtuelle Ver-
zeichnis auf das in Schritt 1 erstellte Verzeichnis verweisen.
3. Gewähren Sie die Berechtigungen Lesen, Schreiben und Verzeichnis durchsu-
chen für das Verzeichnis. Dadurch können Clients Daten in diesem Verzeich-
nis publizieren und die Inhalte lesen.
4. Klicken Sie im ASSISTENTEN ZUM ERSTELLEN VIRTUELLER VERZEICHNISSE
auf die Schaltfläche FERTIG STELLEN. Voilà: Nun haben Sie ein WebDAV-
Verzeichnis erstellt.
Nun müssen Sie noch Clients aktivieren, die Daten in diesem Verzeichnis publi-
zieren können. Diese Aufgabe werde ich weiter unten unter »Dateien publizieren
und verwalten« näher erläutern.

5.3 Verwaltung der WebDAV-Sicherheit


Wenn es um die Verwaltung der Sicherheit des WebDAV-Verzeichnisses geht,
dann spielen Clientauthentifizierung und Zugriffsteuerung die entscheidenden
Rollen. Wir werden diese Punkte nacheinander besprechen.
Wie bereits erwähnt, gibt es für die Clients, die den Dienst nutzen wollen, ver-
schiedene Authentifizierungsebenen. Die anonyme Anmeldung kann zwar
gewählt werden, aber von ihrer Verwendung sei in Zusammenhang mit WebDAV
dringend abgeraten, da die Sicherheitsstufe extrem niedrig ist.
Die unterste Sicherheitsebene, bei der die Angabe eines Benutzernamens und
eines Kennworts erforderlich ist, ist die Standardauthentifizierung. Hierdurch
werden Benutzer authentifiziert, die erst danach auf das Verzeichnis zugreifen
können; bedenken Sie aber, dass, wenn Sie keine SSL-Verschlüsselung benutzen,
Ihre Benutzernamen und Kennwörter unverschlüsselt über das Netzwerk gesendet
und möglicherweise eingesehen werden können. Wenn ein Hacker oder ein ande-
res übelwollendes Subjekt die Daten einsehen könnte und sich so Zugriff auf die
publizierten Informationen verschaffte, dann würde dies Sinn und Zweck der Ver-
zeichnissicherheit ad absurdum führen.
Sie können auch die integrierte Windows-Authentifizierung benutzen. Die inte-
grierte Authentifizierung schickt kein Kennwort durch das Netzwerk, sondern
fordert durch Verwendung eines Hash-Algorithmus vom Client einen Nachweis,
dass er das Kennwort kennt.
Kapitel 5 • Publizieren mit WebDAV 137

Auch der Gebrauch der Digestauthentifizierung ist möglich. Hierbei handelt es


sich – wie erwähnt – um eine neue Windows 2000-Funktion. Die Digestauthenti-
fizierung ist die beste Methode, wenn Sie WebDAV-Publishing über das Internet
betreiben oder mit einer Firewall arbeiten.
All diese Authentifizierungsmethoden werden in Kapitel 8 eingehend beschrie-
ben.
Ein weiterer wichtiger Aspekt bei der Sicherheitsadministration Ihrer WebDAV-
Verzeichnisse ist die Zugriffssteuerung. Durch Verwendung einer Kombination
aus IIS 5.0- und Windows 2000-Berechtigungen können Sie festlegen, welche
Benutzer auf die Verzeichnisse zugreifen dürfen und welche Rechte diese bei
einer erfolgten Verbindung haben. Dabei können Sie für ein WebDAV-Verzeichnis
drei mögliche Berechtigungen setzen:
• Lesen. Diese Berechtigung gestattet es Clients, den Inhalt der im Verzeichnis
vorhandenen Dateien und deren Eigenschaften zu betrachten. Die Clients kön-
nen die Dateien allerdings weder löschen noch anderweitig modifizieren.
• Schreiben. Diese Berechtigung gestattet es Clients, Dateien im Verzeichnis zu
publizieren oder dorthin zu kopieren. Ferner können Sie die Dateien auch lö-
schen und ändern.
• Verzeichnis durchsuchen. Wenn die Suchfunktion aktiviert ist, können sich
Clients Listings der im Verzeichnis vorhandenen Dateien anzeigen lassen,
nicht jedoch den Inhalt von Dateien betrachten oder diese Dateien modifizie-
ren.
Durch Verwendung einer Kombination dieser Berechtigungen können Sie den
Zugriff auf das oder die für WebDAV konfigurierten Verzeichnisse definieren. Es
folgen ein paar Beispiele hierzu.
Wenn Sie die Berechtigungen LESEN, SCHREIBEN und VERZEICHNIS DURCHSU-
CHEN aktivieren, dann geben Sie den Clients die Möglichkeit, Dateien im Ver-
zeichnis zu publizieren, Inhalt und Eigenschaften der Dateien zu betrachten und
zu modifizieren und sich die im Verzeichnis vorhandenen Dateien auch auflisten
zu lassen.
Nehmen wir einmal an, Sie wollen Clients die Publizierung von Inhalten im Ver-
zeichnis gestatten, sie sollen aber nicht sehen, wie das Verzeichnis aussieht (z.B.
bei einer Umfrage oder einer Wahl). Um das Verzeichnis nun vor den Benutzern
zu »verstecken«, müssen Sie die Berechtigung SCHREIBEN aktivieren, die Berech-
tigungen LESEN und VERZEICHNIS DURCHSUCHEN jedoch löschen.
Je nach Ihren Anforderungen lassen sich natürlich auch andere Zugriffsberechti-
gungen setzen.
138 Verwaltung der WebDAV-Sicherheit

Um diese Berechtigungen zu setzen, öffnen Sie den Internetdienste-Manager und


wählen das zuvor erstellte Verzeichnis WebDAV. Klicken Sie dann mit der rechten
Maustaste auf den Verzeichniseintrag und wählen Sie im Kontextmenü den Ein-
trag EIGENSCHAFTEN. Nun wird das Dialogfeld EIGENSCHAFTEN VON WEBDAV
(Abbildung 5.1) angezeigt.

Abb. 5.1: Das Dialogfeld EIGENSCHAFTEN VON WEBDAV mit aktivierter Registerkarte
VIRTUELLES VERZEICHNIS, auf der Sie die Zugriffsberechtigungen einstellen

Wie Abbildung 5.1 erkennen lässt, können Sie nicht nur LESEN, SCHREIBEN und
VERZEICHNIS DURCHSUCHEN, sondern auch ein paar andere Berechtigungen akti-
vieren.
Die erste Berechtigung heißt SKRIPTZUGRIFF. Auch wenn wir hier ein WebDAV-
und kein Websiteverzeichnis behandeln, das der Öffentlichkeit Webseiten zur Ver-
fügung stellt, so können Sie das Verzeichnis trotzdem auch für diesen Zweck
verwenden. Diese Berechtigung gibt Clients Einsicht in den Inhalt Ihrer Skriptda-
teien; wenn Sie nicht wollen, dass die Clients auf Ihre ASP-Codes zugreifen, dann
deaktivieren Sie diese Berechtigung.
Kapitel 5 • Publizieren mit WebDAV 139

Die anderen beiden noch nicht erwähnten Berechtigungen sind BESUCHE PROTO-
KOLLIEREN und RESSOURCE INDIZIEREN. Sie können eine Protokollierung der
Zugriffe auf das Verzeichnis durch Markierung des Kontrollkästchens BESUCHE
PROTOKOLLIEREN aktivieren. Eine Protokolldatei wird nur erstellt, wenn die Pro-
tokollierung für die Site aktiviert wurde.
Die andere Option RESSOURCE INDIZIEREN ist eigentlich keine Berechtigung im
ursprünglichen Sinne des Wortes; vielmehr teilen Sie dem Indexdienst durch
Markieren des Kontrollkästchens mit, dass er das Verzeichnis indizieren soll.
Dadurch gestatten Sie Clients das Durchsuchen des Verzeichnisinhalts.

Warnung
Denken Sie bei der Konfiguration von Zugriffssteuerungen auf einem
NTFS-Datenträger immer daran, dass Windows 2000 standardmäßig die
NTFS-Berechtigung Vollzugriff für alle Verzeichnisse erteilt. Dieser
Umstand muss beim Erstellen neuer Verzeichnisse unbedingt beachtet
werden.

5.4 WebDAV-Verzeichnisse durchsuchen


Wie bereits im obigen Abschnitt erwähnt, besteht die Möglichkeit, Ihre WebDAV-
Verzeichnis durch den Indexdienst indizieren zu lassen. Wenn Sie dies tun, kön-
nen Benutzer das Verzeichnis nach bestimmten Datei- oder Ressourceninhalten
durchsuchen und auch Suchvorgänge in den Dateieigenschaften ausführen. Bei-
spielsweise könnte sich ein Client alle Dateien auflisten lassen, die Gerry O'Brien
im Jahr 1999 erstellt hat.
Bei der Indizierung des Verzeichnisses müssen ein paar Dinge beachtet werden.
Erst einmal muss natürlich der Indexdienst ausgeführt werden. Sie können den
Indexdienst starten, indem Sie das Applet Dienste aufrufen, den Indexdienst
suchen und dann die Startschaltfläche in der Werkzeugleiste anklicken. Abbil-
dung 5.2 zeigt das Fenster DIENSTE.
In Abbildung 5.2 ist der Indexdienst selektiert; der Dienst wurde gestartet.

Tipp
Wenn Sie den Indexdienst für das WebDAV-Verzeichnis standardmäßig
bereitstellen wollen, sollten Sie im Applet DIENSTE die Startoption Auto-
matisch für ihn selektieren; der Dienst wird dann immer automatisch
gestartet, wenn Windows 2000 hochgefahren wird.

Sie können den Indexdienst auch über die Eingabeaufforderung oder das Fenster
AUSFÜHREN (aufzurufen über START/AUSFÜHREN) aufrufen; geben Sie hierzu in
einem dieser Fenster den Befehl net start cisvc ein.
140 WebDAV-Verzeichnisse durchsuchen

Abb. 5.2: Das Fenster DIENSTE zeigt eine Liste aller installierten Dienste an, die Sie
dann beliebig starten, beenden oder anhalten können

Hinweis
Wenn der Dienst auf Ihrem System bisher deaktiviert war, kann es eine
Zeitlang dauern, bis alle zu indizierenden Elemente bearbeitet wurden.
Wenn Sie also einen Suchvorgang in Ihrem WebDAV-Verzeichnis starten
und kein Suchergebnis erhalten, dann geben Sie dem Indexdienst etwas
mehr Zeit zur Erstellung seiner Datenbank. Weitere Informationen zum
Indexdienst finden Sie in der Online-Hilfe.

Warnung
Wenn Ihr Laufwerk NTFS-formatiert ist, können Ihre Clients reguläre
Suchvorgänge im gesamten Verzeichnis ausführen. Haben Sie es jedoch
unter FAT oder FAT32 formatiert, dann lassen sich nur die Inhalte der
Ressourcen durchsuchen, nicht jedoch die Dateieigenschaften, da die
FAT-Systeme dies nicht unterstützen.

Es gibt verschiedene Möglichkeiten, das WebDAV-Verzeichnis zu durchsuchen.


Am einfachsten ist wohl die Verwendung der Option SUCHEN im Startmenü. Hier-
mit können Sie Dateien im Verzeichnis oder auf dem Laufwerk auf der Basis der
angegebenen Dateinamen suchen. Wie aus Abbildung 5.3 ersichtlich, bietet diese
Vorgehensweise verschiedene Suchoptionen.
Kapitel 5 • Publizieren mit WebDAV 141

Abb. 5.3: Das Dialogfeld SUCHERGEBNISSE gestattet die Angabe von Suchoptionen
und Laufwerken, auf die die Suche beschränkt werden soll

Eine andere Möglichkeit, Ihren Clients ein unkompliziertes Durchsuchen zu


gestatten, ist die Erstellung einer entsprechenden Webseite. In Listing 5.1 ist ein
kurzer HTML-Code abgedruckt, den Sie zur Gestaltung einer Suchseite für Ihre
Website verwenden können. Der Code wurde mit Microsoft FrontPage 2000
erstellt.
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="de">
<title>Kunden-Support -- Suche</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Microsoft Theme" content="expeditn 001, default">
<meta name="Microsoft Border" content="tlb, default">
</head>

<body>
<p><a name="top">V</a>erwenden Sie das folgende Formular, um die Dokumente
dieser Site nach bestimmten Wörtern oder Wortkombinationen zu durchsuchen. Die
Suchmaschine zeigt Ihnen eine sortierte Liste gefundener Dokumente an, in der
142 WebDAV-Verzeichnisse durchsuchen

die relevanteren Dokumente weiter oben stehen. Jeder Listeneintrag ist eine Ver-
knüpfung zum zugehörigen Dokument; wenn das Dokument einen Titel hat, wird die-
ser angezeigt, andernfalls nur der Dateiname des Dokuments. Eine kurze, mit
Beispielen versehene Erläuterung der Sucheinstellungen finden Sie <a href=
"#querylang">hier</a>!
<!--WEBBOT
bot=Search
S-LINK
S-FIELDS="TimeStamp,DocumentK,Weight"
S-INDEX="All"
S-DSN="default"
TAG="BODY"
S-Text="Suche nach:"
I-Size="20"
S-Submit="Suche starten"
S-Clear="Zurücksetzen" b-useindexserver="1"
-->
<hr align="center">
<h2><a name="querylang">Sucheinstellungen</a></h2>
<p>Die Suchfunktion gestattet die Verwendung beliebiger Boole'scher Ausdrü-
cke (UND, ODER, NICHT) im Suchausdruck und die Gruppierung mit Klammern. Zum
Beispiel:</p>
<blockquote>
<dl>
<dt><strong><tt>Informationen finden</tt></strong></dt>
<dd>sucht nach Dokumenten, die 'Informationen' oder 'finden' enthalten.<br>
<br>
</dd>
<dt><strong><tt>Informationen ODER finden</tt></strong></dt>
<dd>Das gleiche wie oben.<br>
<br>
</dd>
<dt><strong><tt>Informationen UND finden</tt></strong></dt>
<dd>sucht nach Dokumenten, die sowohl 'Informationen' als auch 'finden' ent-
halten.<br>
<br>
</dd>
<dt><strong><tt>Information NICHT finden</tt></strong></dt>
<dd>sucht nach Dokumenten, die zwar 'Informationen', nicht jedoch 'finden'
enthalten.<br>
<br>
</dd>
<dt><strong><tt>(Information NICHT finden) UND WAIS</tt></strong></dt>
<dd>sucht nach Dokumenten, die 'WAIS' und 'Informationen', nicht jedoch
'finden' enthalten.<br>
<br>
</dd>
Kapitel 5 • Publizieren mit WebDAV 143

<dt><strong><tt>Web*</tt></strong></dt>
<dd> sucht nach Dokumenten, die Wörter enthalten, die mit 'Web' beginnen<br>
<br>
</dd>
</dl>
</blockquote>
<h5><a href="#top">Zum Seitenanfang</a></h5>
</body>

</html>

Listing 5.1: Beispiel für eine Webseite mit Suchfunktion

Beachten Sie den Listingbereich, der mit <!-WEBBOT beginnt. Dies ist eigentlich
eine FrontPage-Komponente, die Suchfunktionen bereitstellt. Die letzte Zeile in
diesem Bereich, S-Clear="Reset" b-useindexserver="1", zeigt durch Zuweisung
des Wertes »1« an, dass für die Suche der Indexdienst verwendet wird.
Die letzte hier zu erwähnende Suchmethode macht Gebrauch von XML. Dieses
Buch will und kann jedoch kein Lehrbuch für XML sein, da es dann ungefähr
dreimal so umfangreich wäre. Eine Ressource zur Erstellung von Suchwerkzeu-
gen unter Verwendung von XML ist das Windows 2000 SDK (Software Develop-
ment Kit), welches auf der Website von Microsoft unter http://msdn.micro-
soft.com/windows2000/ betrachtet und heruntergeladen werden kann.

5.5 Dateien publizieren und verwalten


In diesem Abschnitt soll erläutert werden, wie Benutzer Dateien in einem Web-
DAV-Verzeichnis publizieren und dort verwalten und modifizieren können. Bei
der Publizierung gibt es drei Ansätze, nämlich die Verwendung von
Windows 2000, dem Internet Explorer 5.0 oder Office 2000.

5.5.1 Publizieren mit Windows 2000


Weiter oben in diesem Kapitel wurde bereits beschrieben, wie Sie ein WebDAV-
Verzeichnis unter der Standardwebsite erstellen. Wir werden dieses Verzeichnis
nun verwenden, um zu zeigen, wie darauf zugegriffen werden kann und wie
Dateien unter Windows 2000 publiziert werden können.
Um das WebDAV-Verzeichnis für die Arbeit mit Windows 2000 verfügbar zu
machen, müssen Sie es in der Netzwerkumgebung hinzufügen. Gehen Sie hierzu
wie folgt vor:
1. Öffnen Sie die NETZWERKUMGEBUNG.
2. Doppelklicken Sie auf NETZWERKRESSOURCE HINZUFÜGEN, um den ASSIS-
TENTEN ZUM HINZUFÜGEN VON NETZWERKRESSOURCEN zu starten.
144 Dateien publizieren und verwalten

3. Im Begrüßungsbildschirm werden Sie aufgefordert, einen URL, einen Dateina-


men und einen Webordner oder die Adresse einer FTP-Site einzugeben. Kli-
cken Sie auf die Schaltfläche DURCHSUCHEN und suchen Sie Ihr WebDAV-
Verzeichnis.
4. Geben Sie den URL ein, unter dem Sie das Verzeichnis WebDAV abgelegt ha-
ben. Wenn dieses beispielsweise auf Ihrem lokalen IIS-Server liegt, dann müs-
sen Sie den URL http://localhost/WebDAV angeben (natürlich vorausgesetzt,
Ihr Verzeichnis heißt WebDAV; andernfalls müssen Sie statt dessen den Na-
men eingeben, den Sie dem Verzeichnis seinerzeit gegeben haben).
5. Klicken Sie auf WEITER. Wenn die Verbindung erfolgreich hergestellt werden
kann, sehen Sie das in Abbildung 5.4 gezeigte Dialogfeld. Klicken Sie auf FER-
TIG STELLEN. (Wird statt dessen eine Fehlermeldung angezeigt, vergewissern
Sie sich, dass Sie den korrekten Server- und Verzeichnisnamen eingegeben ha-
ben.)

Abb. 5.4: Im Fenster FERTIGSTELLEN DES ASSISTENTEN wird angezeigt, dass das
Verzeichnis gefunden wurde und Sie nun eine Verbindung herstellen
können

Das WebDAV-Verzeichnis wird nun in der Netzwerkumgebung angezeigt. Sie


können jetzt nach Belieben Dateien genauso kopieren, verschieben, löschen, oder
ändern, wie Sie es von anderen Verzeichnissen her gewohnt sind.

5.5.2 Publizieren mit dem Internet Explorer 5.0


Sie können das Publishing im WebDAV-Verzeichnis auch mit dem Internet
Explorer 5.0 oder höher vornehmen. Hier müssen Sie das Verzeichnis, anstatt es
über einen URL (wie etwa http://localhost/WebDAV) aufzurufen, wie eine Datei
öffnen.
Kapitel 5 • Publizieren mit WebDAV 145

Starten Sie zu diesem Zweck den Internet Explorer und wählen Sie im Menü
DATEI den Eintrag ÖFFNEN. Das in Abbildung 5.5 gezeigte Dialogfeld wird auf-
gerufen. Ich habe hier den bereits früher verwendeten URL eingegeben, um eine
Verbindung mit dem Verzeichnis WebDAV in der Netzwerkumgebung herzustel-
len.

Abb. 5.5: Das Dialogfeld ÖFFNEN des Internet Explorers 5.0, in dem Sie ein
Verzeichnis oder einen Dateinamen zum Öffnen spezifizieren

Sie müssen den Ordner, wenn Sie ihn zur Publikation öffnen, in jedem Fall als
Webordner öffnen; markieren Sie zu diesem Zweck das Kontrollkästchen ALS
WEBORDNER ÖFFNEN. Andernfalls wird der Ordner so angezeigt wie FTP-Sites,
mit denen Sie über das Internet eine Verbindung hergestellt haben. In diesem Fall
ist eine Publizierung nicht möglich.
Nach dem Öffnen des Verzeichnisses können Sie über das Menü DATEI neue Ord-
ner erstellen und dann dort Dateien publizieren.

5.5.3 Publizieren mit Office 2000


Wenn in Ihrem Unternehmen Microsoft Office 2000 eingesetzt wird, dann können
Sie dieses auch zur Publizierung von Inhalten in Ihrem WebDAV-Verzeichnis ver-
wenden. Diese Situation ist insofern ideal für größere Firmen, als sie die Online-
publizierung von Dokumenten gestattet; beispielsweise könnten Informationen,
die alle Mitarbeiter des Unternehmens betreffen, über das Intranet zugänglich
gemacht werden. Ferner ist es möglich, das Verzeichnis als zentrale Ablage für
Richtlinien zu benutzen; bei Bedarf müsste dann nur eine Datei (und nicht Dut-
zende oder Hunderte von Computern) aktualisiert werden.
Die Publizierung in ein WebDAV-Verzeichnis ist nicht schwieriger als das Spei-
chern einer Datei aus einer beliebigen Office-Anwendung heraus. Rufen Sie den
Speicherdialog auf und wählen Sie im linken Fensterbereich die NETZWERKUM-
GEBUNG, um sich eine Liste der Netzwerkressourcen anzeigen zu lassen – darun-
ter auch das bereits früher erstellte Verzeichnis WebDAV. Doppelklicken Sie auf
den Eintrag WebDAV auf localhost, um das Verzeichnis zu öffnen, und speichern
Sie dann Ihre Datei wie gewöhnlich.
Mehr ist dazu nicht zu sagen.
146 Fazit

5.6 Fazit
Die Bedeutung des WebDAV-Protokolls (einer Erweiterung des Protokolls
HTTP 1.1) für die Internetkommunikation nimmt derzeit in hohem Maße zu.
Wenn Sie weitergehende Informationen zur WebDAV-Spezifikation wünschen,
suchen Sie die Website der IETF (Internet Engineering Task Force) unter
www.ietf.org auf und schlagen Sie dort unter RFC 2518 nach.
Sie haben gesehen, dass WebDAV eine Technologie ist, die durch Erstellung eines
Webpublikationsverzeichnisses das gemeinsame Bearbeiten von Dokumenten
und anderen Dateien auf einem IIS 5.0-Server gestattet. Ferner wurden in Zusam-
menhang mit WebDAV-Verzeichnissen einige Sicherheitsaspekte besprochen; die
Sicherheit Ihrer Dateien ist insbesondere dann sehr wichtig, wenn Sie das Ver-
zeichnis im Internet publizieren.
Ich habe Ihnen noch einige Beispiele für das Durchsuchen von WebDAV-
Verzeichnissen mit den Suchwerkzeugen von Windows 2000 und dem Index-
dienst gegeben; weitere Suchfunktionen für Dateiattribute und -eigenschaften las-
sen sich über XML realisieren.
Abschließend wurden verschiedene Methoden für die Publizierung von Inhalten
im WebDAV-Verzeichnis beschrieben – mit Windows 2000, dem Internet
Explorer 5.0 und Microsoft Office 2000.
Kapitel 6
Namensauflösung

6.1 Namensauflösung bei IIS 5.0 148


6.2 Registrierung eines Internetdomänennamens 155
6.3 Netzwerkidentität eines Computers überprüfen 156
6.4 Fazit 160
148 Namensauflösung bei IIS 5.0

Wenn Sie mit Internetstandards und den TCP/IP-Protokollen vertraut sind, dann
wissen Sie auch, dass alle Computer in einem TCP/IP-Netzwerk eine eindeutige
IP-Adresse benötigen. Computer arbeiten mit Zahlen, wir Menschen hingegen
kommen besser mit Namen klar – dies gilt auch für Websites.
Damit wir eine Site mit einem etwas leichter zu merkenden Namen aufrufen kön-
nen, verwendet TCP/IP die Namensauflösung. Dabei wird ein Computer verwen-
det, der IP-Adressen benutzerfreundliche Namen zuordnet. Diese Namen werden
als »Domänennamen« oder »Hostnamen« bezeichnet.
Für die Namensauflösung werden verschiedene Methoden verwendet; wir werden
all diese Ansätze an dieser Stelle erläutern, soweit sie IIS 5.0 betreffen.

6.1 Namensauflösung bei IIS 5.0


Unter Windows 2000 sind zwei Wege der IP-Adressierung vorhanden, nämlich
die statische Zuweisung und die dynamische Zuweisung mit Hilfe von DHCP
(Dynamic Host Configuration Protocol). Sie können nach Bedarf eine dieser
Methoden oder auch beide verwenden.
Die Zuweisung statischer IP-Adressen kann, wenn Sie eine ganze Menge Hosts
haben, sehr zeitaufwändig sein, denn jeder Computer muss manuell mit seiner
ganz eigenen IP-Adresse konfiguriert werden. Ferner müssen Sie natürlich auch
darauf achten, welche Adressen bereits vergeben sind und welche überhaupt für
die Verwendung in Ihrem Netzwerk zugewiesen werden dürfen. Sofern Sie die
Struktur Ihres Netzwerks aber nicht regelmäßig ändern, stellt dies jedoch nach der
Ausgangskonfiguration kein größeres Problem mehr dar. In meinem Büro bei-
spielsweise hängt eine Karte an der Wand, auf der alle im Netzwerk vorhandenen
Hosts samt ihrer IP-Adressen verzeichnet sind.
Wenn Sie die Administration hingegen etwas einfacher halten und Ihren Benut-
zern das Leben ein wenig erleichtern wollen, dann konfigurieren Sie den DHCP-
Dienst auf Ihrem Windows 2000-Hauptserver oder einem anderen Windows NT-
oder Windows 2000-Server. Dieser Dienst verteilt dann IP-Adressen aus einem
Adresspool.
In der Regel konfigurieren Sie einen IP-Adressbereich, der als Ihr Netzwerk zu
betrachten ist. Ich verwende z.B. den Adressbereich 192.168.5.x für den Netz-
werkbereich, den meine Clients verwenden; dadurch können bis zu 254 Hosts IP-
Adressen erhalten, nämlich 192.168.5.1…192.168.5.254.

Hinweis
Zwar liegt der IP-Adressbereich immer zwischen 0 und 255, aber die
Werte 0 und 255 sind reserviert und können deswegen nicht benutzt
werden. Im Internet finden Sie zahlreiche gute Texte zur TCP/IP-Adres-
sierung.
Kapitel 6 • Namensauflösung 149

Mein IIS-Server hat die Adresse 192.168.5.1. Diese ändert sich in meinem Netz-
werk nie, deswegen ist sie als statische IP-Adresse zu betrachten.
Ich will hier nicht zu sehr in das Thema TCP/IP einsteigen, denn dies ist nicht der
Zweck dieses Buches. Es ist allerdings wichtig, die verschiedenen IP-Adressklas-
sen zu kennen, da sich diese direkt auf die Adressierung von Hosts im Netzwerk
auswirken.
Insgesamt sind fünf Klassen von IP-Adressen (Klassen A bis E) vorhanden, und
jede Klasse enthält einen Adressbereich, der eine bestimmte Anzahl von Hosts
und Netzwerken ermöglicht. Unter einem Host verstehe ich einen einzelnen Com-
puter, der eine IP-Adresse bekommt; ein Netzwerk ist per Definition eine Zone,
deren Sinn in der zweckgebundenen Unterteilung einer Menge von Computern
besteht.
Adressen der Klasse A beginnen mit 0.0.0.1 und enden bei 126.255.255.254; die
Klasse B bezieht sich auf den Bereich zwischen 128.0.0.1…191.255.255.254,
und die Klasse C auf den Bereich 192.0.0.1…254.255.255.254. Die Klassen D
und E sind Sonderklassen, die in normalen Netzwerkstrukturen nicht eingesetzt
werden; wir werden hier nicht weiter darauf eingehen.
Ein paar wichtige Fakten zu den IP-Adressen in einem TCP/IP-Netzwerk.
Zunächst wären die Adressen im Bereich 127.x.x.x zu nennen. Diese werden zu
Loopback-Testzwecken verwendet, d.h. zur Prüfung des Netzwerkbetriebs auf
dem lokalen Computer. Wenn Sie an Ihrem Rechner den Befehl ping 127.0.0.1
eingeben, dann erhalten Sie die Ergebnisse für den lokalen Host, also den Com-
puter, vor dem Sie sitzen; dieser ping-Befehl arbeitet intern und wird gar nicht
erst in Ihr Netzwerk ausgegeben.
Ein weiterer Punkt, der beachtet werden muss, ist die Tatsache, dass im Internet
verschiedene IP-Adressbereiche nicht verwendet werden – auf diese Weise kön-
nen private TCP/IP-Netzwerke auch mit Adressen arbeiten, die der internen Ver-
wendung vorbehalten sind. Die Adressen befinden sich in den Bereichen 10.0.0.x
und 192.168.x.x. Die Adressen im Bereich 10.0.0.x werden von diversen Internet-
providern (z.B. von Providern von xDSL- oder Kabelanschlüssen) in bestimmten
Netzwerkkonfigurationen verwendet. Tatsächlich richten diese Provider kleine
interne Netzwerke mit dem Adressbereich 10.0.0.x ein, um den Clients Adressen
dynamisch zuzuweisen und einem Client dann, sobald er mit der Außenwelt Ver-
bindung aufnimmt, mit einer externen, gültigen Internet-IP zu versorgen.
Ein Internetprovider in meiner Gegend verwendet diesen Ansatz bei seiner
ADSL-Implementation. Auf diese Weise können sich die Benutzer intern mitei-
nander verbinden und es entsteht innerhalb des kleinen Netzwerks eine Art
»Benutzerumgebung«. Ein Host wird nur dann von außen erkannt, wenn er über
eine gültige Internet-IP-Adresse verfügt.
Aus diesen Gründen empfehle ich Ihnen den IP-Adressbereich 192.168.x.x für
interne Netzwerke und Intranets. In diesem Bereich können Sie die Adressen mit
150 Namensauflösung bei IIS 5.0

Hilfe der Subnetzmaskierung nach Bedarf manipulieren, wenn die Anzahl Ihrer
Hosts und Netzwerke variiert.
In jeder IP-Adressklasse gibt es noch zwei weitere Hostadressen, die Sie nicht
verwenden können, nämlich .0 und .255. Die .0 bezeichnet »dieses Netzwerk«,
die .255 ist eine Broadcast-Adresse. TCP/IP verwendet diese beiden Adressen auf
eine spezielle Weise und gibt sie nicht frei.
Betrachten wir nun einmal den Adressbereich 192.168.0.x. In diesem Bereich las-
sen sich insgesamt 254 Hostcomputer ansprechen, nämlich über die Adressen
192.168.0.1 bis 192.168.0.254. Sie sind also in diesem Netzwerkabschnitt
zunächst einmal auf 254 Hosts beschränkt. Was aber, wenn Sie mehr Adressen
benötigen?
Auch hierzu gibt es Lösungen. Die erste ist die Einrichtung eines weiteren Netz-
werks auf der Basis des folgenden IP-Adressbereichs – 254 weitere Hosts ließen
sich dann mit den Adressen 192.168.1.1 bis 192.168.1.254 versehen. Sie benöti-
gen dann eine Subnetzmaske auf Ihrem Computer, damit diese feststellen können,
welcher Host sich in welchem Netzwerk befindet.
In den beiden oben angeführten Beispielen wurden die Netzwerkadressbereiche
192.168.0.x und 192.168.1.x benutzt. Jedes Netzwerk hat die gleichen Hostnum-
mern, weswegen Sie eine Möglichkeit brauchen, um festzustellen, mit welchem
Host Sie eine Verbindung herstellen wollen. Hier nun kommt die Subnetzmaske
ins Spiel. Sie müssen für diese Adressen die Subnetzmaske 255.255.255.0 defi-
nieren, denn dadurch ist sichergestellt, dass immer dann, wenn Sie Daten oder
Nachrichten an einen Hostcomputer senden, TCP/IP zuerst die Subnetzmaske
überprüft, um festzustellen, wie Netzwerk und Hostadresse zu bestimmen sind.
Ein Beispiel: Angenommen, Sie senden ein Datenpaket an den Host mit der IP-
Adresse 192.168.0.34. Wenn Sie die Subnetzmaske 255.255.255.0 gewählt haben,
weiß TCP/IP, dass zuerst das Netzwerk 192.168.0 aufzusuchen ist, bevor die
Host-IP 34 gesucht wird; diese Bestimmung wird mit Hilfe binärer Rechenpro-
zesse an der IP-Adresse vorgenommen.
Wie Sie wahrscheinlich wissen, handelt es sich bei einer IP-Adresse um 32-Bit-
Zahlen, die in vier so genannte Oktette unterteilt sind. Wir betrachten diese Num-
mern als Dezimalzahlen, der Computer jedoch behandelt sie als Binärzahlen. Das
Binäräquivalent der IP-Adresse 192.168.0.34 beispielsweise lautet 11000000
10101000 00000000 00100010. Um nun die Netzwerkadresse basierend auf der
Netzmaske zu ermitteln, führt TCP/IP eine binäre UND-Verknüpfung durch. Das
binäre UND verwendet eine so genannte Wahrheitstabelle, die nachfolgend auf-
geführt ist:

1 0
1 1 0
0 0 0
Kapitel 6 • Namensauflösung 151

Die Tabelle funktioniert wie folgt: Sie wählen in der linken Spalte die erste und in
der oberen Zeile die zweite Binärzahl aus; am Schnittpunkt der beiden Zahlen in
der Tabelle finden Sie dann das Ergebnis der UND-Verknüpfung. Wenn Sie bei-
spielsweise in der linken Spalte und in der oberen Zeile jeweils die binäre 0 aus-
wählen, dann befindet sich am Schnittpunkt ebenfalls die 0.
UND-Verknüpfungen verlaufen also immer nach dem folgenden Schema:
• 1 UND 1 führt zu 1
• 1 UND 0 führt zu 0
• 0 UND 1 führt zu 0
• 0 UND 0 führt zu 0
Schon verwirrt? Wenden wir das Prinzip doch nun zur UND-Verknüpfung der
Subnetzmaske mit unserer IP-Adresse an:

IP-Adresse 192.168.0.34 11000000 10101000 00000000 00100010


Netzmaske 255.255.255.0 11111111 11111111 11111111 00000000
Netzwerkadresse 11000000 10101000 00000000 00000000

Wenn wir nun die Binärzahl, die wir als Ergebnis der UND-Verknüpfung erhalten
haben, wieder in eine Dezimalzahl umwandeln und das letzte Oktett entfernen,
dann finden wir die Netzwerkadresse 192.168.0 vor.
Es geht natürlich auch weniger kompliziert, ohne Hinzuziehung der Binärarith-
metik: Wann immer Sie eine 255 in der Netzmaske sehen, wissen Sie, dass der
Adressteil, auf den sich das Oktett bezieht, exakt übereinstimmen muss. Wenn
also die Netzmaske 255.255.0.0 mit der vorhergehenden IP-Adresse verknüpft
wird, dann ist die Netzwerkadresse 192.168, die Hosts erhalten die Adressen .0.1
bis 255.254.
Dieses letzte Beispiel zeigt das Prinzip des »Subnetting«, d.h. der Unterteilung
der IP-Adresse zwecks Erhöhung der Anzahl von IP-Adressen. Dieses ist die
zweite Möglichkeit zur Erreichung dieses Ziels – in diesem Fall brauchen Sie kei-
nen weiteren IP-Adressbereich.
Die Funktionsweise des Subnetting ist eine Erweiterung des oben aufgeführten
Netzmaskenbeispiels. Durch Verwendung der »richtigen« Subnetzmaske können
Sie Ihrem TCP/IP-Netzwerk mitteilen, dass Sie nur die ersten beiden Oktette der
IP-Adresse für das Netzwerk benötigen – die übrigen können für die Hosts
benutzt werden. Dadurch erhalten Sie eine IP-Adressanzahl von 65.532 (statt
254) – das sollte bereits für viele Netzwerke ausreichend sein.
Sie können natürlich statt der statischen auch eine dynamische Zuweisung der IP-
Adressen für die Computer in Ihrem Netzwerk vornehmen. Voraussetzung dafür
ist die Einrichtung eines DHCP-Servers. Ein DHCP-Server hat die Aufgabe, auf
152 Namensauflösung bei IIS 5.0

Anfrage IP-Adressen an Clients auszugeben. Diese Herangehensweise wird


bereits seit langem im Internet benutzt, um einen Mangel an IP-Adressen auszu-
gleichen, der durch das zur Zeit verwendete 32-Bit-Adressierungsschema bedingt
ist. Dieser Mangel wird aufhören, sobald das neue Ipv6-Adressierungsschema
eingeführt ist, welches zu eben diesem Zweck entwickelt wurde.
Momentan müssen wir aber noch auf die Hilfe von DHCP vertrauen; dieser
Dienst »vermietet« dem anfragenden Computer für eine bestimmte Zeitdauer eine
IP-Adresse (»Leasing«). Der Client muss die Anfrage immer wieder erneuern,
andernfalls entzieht ihm der DHCP-Server die Adresse wieder und führt diese in
den Adresspool zurück; dieser Pool enthält alle Adressen, die »frei« sind, d.h. an
anfragende Clients vergeben werden können.
Windows 2000 ermöglicht Ihnen darüber hinaus die Verwendung von DHCP in
Ihrem eigenen Netzwerk. Zwar gehen die IP-Adressen in privaten Netzwerken
eher selten aus, doch der Einsatz von DHCP erleichtert die Administrierung. Der
mit Windows 2000 ausgelieferte DHCP-Dienst gestattet die automatische IP-
Adressausgabe an Clients, die bei der Anmeldung am Netzwerk eine solche
Adresse anfordern. DHCP kann auch gemeinsam mit dem WINS-Dienst (Win-
dows Internet Name System) von Windows 2000 die Zuordnung von NetBIOS-
Computernamen zu IP-Adressen im lokalen Netzwerk übernehmen.
Möglicherweise ist in Ihrem Netzwerk bereits ein DHCP-Server installiert und
konfiguriert. In diesem Fall müssen Sie an die IP-Adresszuweisung keine weite-
ren Gedanken verschwenden; der DHCP-Server weist die Adressen dynamisch
zu, wann immer ein Client eine solche anfordert.

Warnung
Sie sollten Ihren IIS-Server nicht so konfigurieren, dass er eine IP-Adresse
von einem DHCP-Server bezieht; in diesem Fall können Sie ihm weder
einen Namen geben noch über das Netzwerk darauf zugreifen. Konfigu-
rieren Sie Ihren IIS-Server also mit einer statischen IP-Adresse.

Wenn Sie Ihrem IIS-Server eine IP-Adresse zugewiesen haben, kann dieser
anfangen, Anfragen von Clients auf der Basis der IP-Adresse zu bearbeiten. Die
Suche nach Computern im Internet wird nicht einfacher, wenn man sie auf der
Basis der IP-Adresse durchführt; aus diesem Grunde sollten Sie Ihrem IIS-Server
einen Domänennamen und eine statische IP-Adresse gönnen, damit die Clients
ihn über den vollständig qualifizierten Domänennamen auffinden können.
Ein vollständig qualifizierter Domänenname besteht aus dem Hostnamen des Ser-
vers und dem Domänennamen. Ein Beispiel hierfür ist der Webserver bei Markt +
Technik; wenn Sie die Website dieses Verlags besuchen wollen, geben Sie
www.mut.de in die Adressleiste des Browsers ein. Dabei bezieht sich de auf die
Toplevel-Domäne, eine Ebene darunter befindet sich die Firmendomäne mut. Der
erste Teil www verweist auf den Webdienst in dieser Domäne.
Kapitel 6 • Namensauflösung 153

Damit Ihre Clients Domänennamen verwenden können, müssen Sie eine Methode
der Auflösung, d.h. der Zuordnung einer IP-Adresse zu einem Domänennamen
implementieren. Hier kommen der DNS-Dienst (Domain Name System, Domä-
nennamenssystem) oder die Datei hosts ins Spiel.
Wir betrachten zunächst die Verwendung der Datei hosts, da dieser Ansatz der
einfachere der beiden vorhandenen ist. Einfach gesagt, ist die Datei hosts eine
Textdatei, die auf dem lokalen Computer vorhanden ist und eine Zuordnung von
Internethostnamen zu IP-Adressen beinhaltet. Sie können die unter
Windows 2000 standardmäßig installierte Beispieldatei hosts verwenden und den
Erfordernissen Ihres Netzwerks anpassen. Das Listing 6.1 zeigt die mit
Windows 2000 installierte Datei hosts.
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

127.0.0.1 localhost
192.168.5.1 Marketing

Listing 6.1: Eine HOSTS-Beispieldatei mit der Zuordnung von IP-Adressen zu


Hostnamen

Wie Sie dem Listing entnehmen können, wurden zwei Einträge am Ende hinzuge-
fügt. Die IP-Adresse 127.0.0.1 ist dem Hostnamen localhost zugeordnet und wird
manchmal automatisch von Windows eingefügt. 192.168.5.1 verweist auf die Site
Marketing. Die #-Zeichen dienen der Auskommentierung von Zeilen, d.h. diese
werden von den Clients nicht verarbeitet.
Die hosts-Datei funktioniert tatsächlich so einfach, wie sie aussieht. Sie geben
einfach die IP-Adresse des Hosts ein, mit dem Sie eine Verbindung herstellen
wollen, und fügen danach – abgetrennt durch ein Leerzeichen oder einen Tab-
stopp – den Hostnamen ein. Anhand dessen kann der Client dann feststellen, wo
die IP-Adresse endet und der Hostname beginnt.
154 Namensauflösung bei IIS 5.0

Die Datei muss im Verzeichnis <systemverzeichnis>\system32\drivers\etc liegen,


wobei sich <systemverzeichnis> wie immer auf Ihr Windows 2000-Verzeichnis
bezieht. Wenn Sie diese Methode der Hostnamensauflösung verwenden wollen,
muss die Datei auf allen Rechnern im Netzwerk vorhanden und überall identisch
sein. Bei Clients unter Windows 9x müssen Sie die Datei hosts.sam im Windows-
Verzeichnis benutzen und gegebenenfalls modifizieren.
Sie können für jeden Eintrag hinter dem Hostnamen auch – getrennt durch das
Zeichen # – einen Kommentar notieren. Vollständige Kommentarzeilen führen
das # am Anfang; in der Zeile 38.25.63.10 x.acme.com finden Sie das Zeichen
hinter dem Domänennamen, gefolgt von der Bemerkung x client host als
Beschreibung des Hosts, der diese IP-Adresse führt.
Wie Sie sehen, funktioniert diese Methode in kleinen Netzwerken einwandfrei.
Sie müssen keine IP-Adressen von DNS-Servern in Ihrer TCP/IP-Konfiguration
angeben, wenn Sie das System nur in Ihrem Intranet verwenden, und Sie müssen
dann auch nur Hostnamen in diesem Intranet auflösen. Wenn Sie allerdings Ver-
bindungen mit dem Internet herstellen, ist die Lösung nicht mehr praktizierbar;
die Aufgaben, die dann bei der täglichen (oder besser minütlichen) Aktualisie-
rung der Liste mit neuen Hosts auf Sie zukämen, sind am ehesten mit einem Alp-
traum zu vergleichen, aus dem man schweißgebadet hochschreckt.
In diesem Fall benötigen Sie einen DNS-Server. Windows 2000 enthält einen
DNS-Dienst, den Sie installieren und konfigurieren können, damit er die Namen-
sauflösung für Sie durchführt. Ein Vorteil des Windows 2000-DNS gegenüber
anderen Lösungen ist die Tatsache, dass er auch in Verbindung mit dem WINS-
Dienst genutzt werden kann, um IP-Adressen dynamisch Computern in Ihrem
lokalen Netzwerk zuzuordnen; im Internet funktioniert WINS allerdings nicht.
Ein DNS-Server kann auch mit anderen DNS-Servern kommunizieren. Es besteht
die Möglichkeit, einen DNS-Server so zu konfigurieren, dass, wenn er keinen
Eintrag für einen angefragten Hostnamen hat, er bei einem anderen DNS-Server
anfragt, ob dieser die Anforderung nicht vielleicht auflösen kann. Abbildung 6.1
zeigt das Fenster DNS meines Windows 2000-Servers einschließlich der stan-
dardmäßig erstellten Zonen.
Leider würde eine minutiöse Untersuchung des DNS den Rahmen dieses Buches
sprengen, weswegen der Raum für eine eingehende Beschreibung der DNS-Kon-
figuration auf Ihrem Server nicht vorhanden ist. Wenn Sie Active Directory auf
Ihrem Server installieren, wird DNS ohnehin im Verlaufe des Installationsvor-
gangs auf Ihrem Server eingerichtet, denn Active Directory benötigt DNS: Es fußt
nicht mehr auf dem herkömmlichen Konzept der Windows NT-Domäne, sondern
verwendet einen Namespace, der die im Internet verwendeten vollständig qualifi-
zierten Domänennamen reflektiert.
Kapitel 6 • Namensauflösung 155

Abb. 6.1: Auch der DNS-Dienst ist ein MMC-Snap-In, das Sie zur Konfiguration der
DNS-Einstellungen und -Zonen im Netzwerk verwenden

6.2 Registrierung eines Internetdomänennamens


Damit Sie Ihren Benutzern Webseiten über das Internet präsentieren können,
müssen ein paar Voraussetzungen erfüllt sein. Natürlich benötigen Sie erst einmal
eine Verbindung mit dem Internet. Nehmen Sie den schnellsten Anschluss, den
Sie sich leisten können, denn dadurch werden Verbindungsprobleme und Fla-
schenhälse vermieden, falls auf Ihrer Site wirklich richtig viele Besucher landen;
schließlich ist eine Meldung wie »Der Server ist ausgelastet. Bitte versuchen Sie
es später noch einmal.« so ziemlich das letzte, was Ihre Besucher sehen sollen,
denn etwa 95% dieser Besucher probieren es später eben nicht noch einmal.
Die nächste Aufgabe besteht darin, sich eine statische IP-Adresse zuzulegen.
DNS mit dynamischer Adressierung lässt sich für unsere Zwecke nicht verwen-
den.
So, jetzt haben Sie eine schnelle und zuverlässige Internetverbindung und auch
eine IP-Adresse. Nun folgt der – virtuelle – Gang zur Internetregistrierungsbe-
hörde, denn Sie benötigen ja noch einen Internetdomänennamen. Rufen Sie also
die Site http://www.internic.net auf und wählen Sie dort den Link Registrars.
Dort finden Sie eine internationale Liste von Unternehmen, die Registrierungen
für .com-, .net- und .org-Domänen vornehmen können. Meine Firma »Network
Solutions Inc.« ist unter der in den USA eingetragenen Domänenadresse
156 Netzwerkidentität eines Computers überprüfen

http://www.networksolutions.com erreichbar. Sie sollten natürlich, falls möglich,


eine Webadresse in Ihrem Land wählen; in Deutschland beispielsweise ist die
DENIC (http://www.denic.de) die zur Registrierung von .de-Adressen autori-
sierte Behörde.
Die Registrierung ist natürlich nicht kostenlos – in den Vereinigten Staaten etwa
wird in der Regel eine Gebühr von etwa 35 $ pro Jahr erhoben, die bei der Anmel-
dung für zwei Jahre im voraus zu entrichten ist. Die Eintragung einer .de-Domäne
bei der DENIC kostet momentan 116 _ (Stand: Januar 2001).
Bevor Sie Ihren Domänennamen www.ihrname.de jedoch benutzen können, müs-
sen Sie erst einmal überprüfen, ob dieser nicht bereits vergeben ist. Die Wahr-
scheinlichkeit ist eher gering, aber vergessen Sie nicht, dass es Firmen und Ein-
zelpersonen gibt, die Domänennamen einzig und allein zu dem Zweck
registrieren, sie später für gutes bis sehr gutes Geld verkaufen zu können.
Ein solcher Fall war die Registrierung der Domäne www.mcdonalds.com durch eine
Einzelperson. Als kurz darauf eine nicht ganz unbekannte Schnellrestaurantkette,
die bereits die Domäne www.mcd.com besaß, den Namen für sich beantragte, wurde
diese Bitte abschlägig beschieden, weil der Domänenname schon »weg« war.
Mittlerweile hat die McDonald's Corporation© dieser Einzelperson den Namen
abgekauft, wobei es neben dem Preis natürlich auch um bestimmte Kaufbedin-
gungen ging; jedenfalls hat eine Highschool in der New Yorker Bronx seitdem
eine T1-Internetverbindung, für deren Einrichtung und Wartung McDonald's
zahlt. Wahrlich kein schlechter Deal.
Dies nur als kleiner Hinweis, was Ihnen alles passieren kann, wenn Sie eine Inter-
netdomäne registrieren lassen wollen. Wählen Sie Ihren Namen weise aus, denn
wenn Sie ihn später noch einmal ändern müssen, kann es für Ihre Kunden schwie-
rig werden, Ihre Site zu finden.

6.3 Netzwerkidentität eines Computers überprüfen


Der folgende Abschnitt ist in drei Unterabschnitte gegliedert: Die Überprüfung
der Computeridentität in einem lokalen Netzwerk, die Überprüfung mit einem
NetBIOS-Namen und die Verifizierung des Rechners im Internet.
Wenn Sie alle benötigten Programme installiert und konfiguriert haben und Ihr
IIS-Server läuft, dann sollten Sie überprüfen, ob alle anderen Benutzer tatsächlich
eine Verbindung zum Server herstellen und auf Webseiten und FTP-Verzeichnisse
zugreifen können. Zwar können Sie auf dem Computer, auf dem IIS installiert ist,
alle lokalen Websites aufrufen; vielleicht aber können dies die Clients auf anderen
Computern nicht, oder das angezeigte Ergebnis unterscheidet sich deutlich vom
gewünschten oder erwarteten.
Prüfen Sie also zuerst, ob die Möglichkeit zur Verbindung überhaupt gegeben ist.
Zu diesem Zweck starten Sie Ihren Browser und geben http://localhost in die
Kapitel 6 • Namensauflösung 157

Adresszeile ein. Nun sollte die Startseite Ihrer Standardwebsite aufgerufen wer-
den. Ist dies nicht der Fall, dann probieren Sie es mit http://127.0.0.1 – damit
überprüfen Sie, ob der Server über TCP/IP angesprochen werden kann; haben Sie
hiermit Erfolg, dann liegt ein Problem mit der Namensauflösung im lokalen Netz-
werk vor. Überprüfen Sie in diesem Fall wie weiter oben beschrieben, ob in der
Datei hosts der korrekte Eintrag vorhanden ist.
Wenn Sie sich vergewissert haben, dass der lokale Computer sich mit dem Server
verbinden und Webseiten anzeigen kann, begeben Sie sich zu einem anderen Host
im Netzwerk. Öffnen Sie dort ein Browserfenster und gehen Sie die Adresse
http://www.servername.de ein, wobei servername der Name ist, den Sie für Ihren
Server gewählt haben. Erhalten Sie keinen Zugriff, dann versuchen Sie es über die
direkte Eingabe der IP-Adresse.
Wenn keine dieser Vorgehensweisen funktioniert, dann überprüfen Sie die Verbin-
dung mit dem ping-Befehl, oder verifizieren Sie die IP-Adresse des Servers über
Eingabe der Befehle ipconfig oder ipconfig /all an der Eingabeaufforderung.
ipconfig /all zeigt Ihnen die Daten aller Netzwerkadapter einschließlich der
PPP-Einwahladapter an. Zwecks erhöhter Übersichtlichkeit beschränkt sich die
Ausgabe von ipconfig auf die wesentlichen Informationen.
Je nachdem, welche Methode der Namensauflösung Sie gewählt haben – über die
Datei hosts oder über DNS –, können Sie auch die dortigen Einträge überprüfen,
um sicherzustellen, dass diese korrekt und in der richtigen Zone bzw. Datei vor-
handen sind.
Die Verbindungsmöglichkeit über das Internet lässt sich übrigens auf ähnliche
Weise überprüfen. Der ping-Befehl ist ein hervorragendes Tool zur Ursachenfor-
schung bei Verbindungsproblemen und funktioniert gleichermaßen mit IP-Adres-
sen und Domänennamen. Ich benutze den Befehl manchmal sogar, um einfach
herauszufinden, welche IP-Adresse ein Domänenname hat; wenn Sie nämlich
ping mit einem Domänennamen eingeben, dann wird immer auch die IP-Adresse
zurückgegeben (siehe Abbildung 6.2).
Wenn der Domänenname gültig ist, wird bei Ausführung von ping die aufgelöste
IP-Adresse in eckigen Klammern hinter dem eingegebenen Domänennamen
angezeigt. Wie aus Abbildung 6.2 ersichtlich, habe ich den Domänennamen com-
puter.gkcomput.local eingegeben – dies ist der Domänenname meines Servers.
Die aufgelöste IP-Adresse ist in diesem Fall 192.168.5.1.

Tipp
Wenn Sie einen Domänennamen registriert und diesen sofort einem Ser-
ver irgendwo im Internet zugewiesen haben, dann lässt er sich nicht
sofort auflösen; es kann 48 Stunden und länger dauern, bis sich die
neuen Daten ausreichend im Internet verbreitet haben – eine frustrie-
rende Erfahrung für viele Erstbenutzer von Registrierungsbehörden.
Trotzdem sollten Sie mindestens so lange warten, bevor Sie sich bei der
mit der Registrierung beauftragten Organisation beschweren.
158 Netzwerkidentität eines Computers überprüfen

Abb. 6.2: Die Eingabeaufforderung zeigt direkt nach dem Domänennamen die
zugehörige IP-Adresse (in eckigen Klammern) an

In Ihrem TCP/IP-Werkzeugkasten sind noch ein paar weitere Werkzeuge vorhan-


den. Manchmal können Sie beispielsweise über einen Telefonanruf bei der ent-
sprechenden Organisation klären, dass ein bestimmter Server in Betrieb ist; trotz-
dem können Sie ihn über Ihren Rechner nicht erreichen. In diesem Fall kann uns
tracert helfen – ein Programm, das alle Router auflistet, die Ihre Anfrage auf dem
Weg zum Zielort durchquert. Sie können so feststellen, ob und wo Router lang-
sam arbeiten oder gar ausgefallen sind, wodurch ein Erreichen des Bestimmungs-
ortes unmöglich werden kann. Internetrouter kommunizieren miteinander und
entdecken fortwährend neue und andere Routen zu Netzwerken. Auf diese Weise
kann ein Router Daten anderer Router zur Erstellung einer Routingtabelle ver-
wenden. Natürlich sind die Angaben immer nur so korrekt wie die letzten Aktua-
lisierungen auf diesen anderen Routern.
Wenn nun ein Router ausgefallen ist, kann es einige Minuten dauern, bis der
nächste Router in der Kette dies bemerkt. In diesem Fall ist der Serverausfall in
den Routingdaten noch nicht berücksichtigt, d.h. diese Daten sind nicht vollstän-
dig korrekt. Wenn Ihr Router seine Routingdaten von einem anderen Router
bezieht, der noch nichts vom Routerausfall weiß, dann sind diese Daten natürlich
nicht mehr aktuell.
Ausgehend von diesen Kenntnissen können Sie nun ein Datenpaket an einen Host
schicken, der über den ausgefallenen Router erkannt oder über diesen erreicht
wurde. Sind in den angetroffenen Routingtabellen keine anderen Routen zum
Bestimmungsort vorhanden, dann wird früher oder später die TTL-Zeit (Time To
Live, Lebensdauer) überschritten, die normalerweise 15 Router beträgt; das Paket
wird dann verworfen. tracert kann Ihnen bei der Feststellung hilfreich sein, ob die
Route zum Zielort blockiert ist.
Kapitel 6 • Namensauflösung 159

Ein anderes nützliches Tool ist nslookup. Sie finden das Programm im Unterver-
zeichnis \System32 Ihres Windows 2000-Verzeichnisses. Eine einfache Anwen-
dung von nslookup könnte so aussehen:
nslookup www.mut.de 198.164.30.2

Dieser Befehl kontaktiert den DNS-Server mit der Adresse 198.164.30.2 und for-
dert einen Eintrag für den Namen www.mut.de an. Als ich den Befehl ausführte,
erhielt ich die IP-Adresse 194.163.213.75 zurück. Mit nslookup können Sie also
überprüfen, ob die Zuordnung eines Domänennamens zur IP-Adresse in Ihrer
lmhosts-Datei korrekt ist – oder auch einfach nur, ob der Domänenname der rich-
tigen IP-Adresse zugewiesen ist.
Windows 2000 hat noch ein weiteres TCP/IP-Utility namens route im Gepäck.
Mit diesem Befehl können Sie sich den Inhalt der Routingtabelle anzeigen lassen
und diese manipulieren. Die Routingtabelle ist auf Ihrem System vorhanden,
sobald Sie TCP/IP installieren.
Die folgenden Optionen sind für den Befehl verfügbar:
• print. Startet die Ausgabe der Routingtabelle auf dem Bildschirm.
• add. Fügt der Routingtabelle eine Route hinzu.
• delete. Löscht eine Route in der Routingtabelle.
• change. Erlaubt die Modifikation eines vorhandenen Eintrags.
Der Befehl route akzeptiert ferner zwei Parameter: -f löscht alle Gateway-
Einträge in der Routingtabelle, -p wird zusammen mit dem Befehl add benutzt,
um sicherzustellen, dass die hinzugefügte Route nach einem Neustart des Servers
immer noch vorhanden ist (standardmäßig wird die Routingtabelle beim Neustart
des Servers gelöscht).
Ein paar Beispiele:
route -p add 197.168.0.20 255.255.255.0 156.34.25.0 1

Dieser Befehl fügt Ihrer Routingtabelle eine Route mit dem Ziel 197.168.0.20
und der Netzmaske 255.255.255.0 hinzu, wobei der Gateway 156.34.25.0 und
eine Metrik von 1 verwendet wird. Diese Route wird dauerhaft eingerichtet. Die
IP-Adressen sind alle frei erfunden, d.h. die Route wird wohl kaum funktionie-
ren; wir löschen sie also gleich wieder:
route delete 197.168.0.20 255.255.255.0 156.34.25.0 1

Mit diesem Befehl löschen Sie die zuvor hinzugefügte Route wieder aus der Rou-
tingtabelle.
160 Fazit

6.4 Fazit
Wir haben in diesem Kapitel einen Blick auf die verschiedenen Methoden der
Namensauflösung im lokalen Netzwerk und im Internet geworfen. Bei kleinen
Netzwerken, die nur als organisationsinterne Intranets benutzt werden, kann die
Auflösung von Hostnamen zu einer IP-Adresse über die Datei hosts erfolgen.
Wenn Sie allerdings mit Internetrechnern arbeiten, dann brauchen Sie DNS.
Wir haben die Prinzipien der IP-Adressierung betrachtet und festgestellt, dass IP-
Adressen statisch oder dynamisch zugewiesen werden können. Damit eine
Namensauflösung möglich ist, sollte Ihr IIS-Server in jedem Fall eine statische
IP-Adresse haben.
Es gibt verschiedene Wege, die korrekte Identität eines Computers in einem
TCP-/IP-Netzwerk festzustellen – darunter auch die Verwendung von IP-Adres-
sen und Domänennamen. ping ist ein fantastisches kleines Tool, wenn Sie fest-
stellen wollen, ob Ihr Rechner überhaupt eine Verbindung herstellen kann; Sie
können es auch verwenden, um die IP-Adresse herauszufinden, die einem
bestimmten Domänennamen zugewiesen ist.
Die in diesem Kapitel beschriebenen Tools und Informationen können Ihnen hel-
fen, wenn Sie sicherstellen wollen, dass Ihr IIS-Server wirklich korrekt ange-
schlossen und lauffähig ist, bevor Sie ihn der Öffentlichkeit zugänglich machen.
Kapitel 7
Anwendungen konfigurieren

7.1 Anwendungskonfiguration bei IIS 162


7.2 Anwendungen erstellen 165
7.3 Zuordnungen vornehmen 167
7.4 Anwendungen isolieren 172
7.5 Anwendungen zwischenspeichern 172
7.6 Isolierte Anwendungen entladen 175
7.7 ASP-Anwendungen konfigurieren 176
7.8 ASP-Debugging 177
7.9 CGI-Anwendungen konfigurieren 177
7.10 ISAPI-Filter 178
7.11 Fazit 178
162 Anwendungskonfiguration bei IIS

7.1 Anwendungskonfiguration bei IIS


Was meinen wir eigentlich, wenn wir von IIS-Anwendungen reden? Nun, Micro-
soft definiert sie wie folgt:
»Eine IIS-Anwendung ist eine beliebige Datei, die innerhalb eines defi-
nierten Satzes von Verzeichnissen auf Ihrer Website ausgeführt wird.«
Was Microsoft eigentlich sagen will, ist, dass eine IIS-Anwendung ein Skript oder
ein ausführbares Programm ist, das infolge eines Aufrufs durch einen Client oder
IIS selbst auf dem Webserver ausgeführt wird. Es kann sich dabei um folgende
Anwendungstypen handeln:
• ASP
• CGI
• ISAPI
• IDC
• SSI
Jede Anwendung muss ein Verzeichnis als Ausgangspunkt haben, das sozusagen
als Basisverzeichnis der Anwendung betrachtet wird. Festgelegt wird dieses Ver-
zeichnis im Internetdienste-Manager; durch diese Einstellung und die festgeleg-
ten Verzeichnisgrenzen wird der Anwendungsbereich bestimmt. Haben Sie für
eine Anwendung einen Ausgangspunkt erstellt, dann wird dieser mit einem
Paketsymbol im linken Fensterbereich der MMC angezeigt (Abbildung 7.1).
In Abbildung 7.1 sehen Sie eine ganze Menge Verzeichnisse mit dem Paketsym-
bol; IISHelp, IISAdmin und WebDAV sind nur paar Beispiele. Wichtig ist außer-
dem festzuhalten, dass alle Unterverzeichnisse des Basisverzeichnisses einer
Anwendung als Teil der Anwendung betrachtet werden.
Bei IIS 4.0 gab es die Möglichkeit, Anwendungen entweder im gleichen Prozess
auszuführen wie IIS selbst (Inetinfo.exe), oder sie in einem separaten Prozess
(DLLhost.exe) zu starten – dies nennt man »Prozessausführung«. IIS unterstützt
diese beiden Methoden und fügt noch eine dritte hinzu, die so genannte »zusam-
mengefasste« Methode. Bei Ausführung eines zusammengefassten Prozesses
nehmen Sie zwei oder mehr Anwendungen und führen diese in einem Prozess
aus, der von Inetinfo.exe getrennt und zu einer DLLhost.exe-Sitzung zusammen-
gefasst ausgeführt wird.
Wozu dies gut sein soll? Für eine sehr wesentliche Sache: Leistung. Es wäre
natürlich großartig, wenn man alle Anwendungen in ihren jeweils eigenen Pro-
zessen ausführen könnte – auf diese Weise würde sich ungehöriges Verhalten
einer Anwendung nicht auf die anderen auswirken. Allerdings beansprucht jede
ausgeführte Instanz von DLLhost.exe Serverressourcen; Microsoft empfiehlt des-
wegen, nicht mehr als zehn solcher Sitzungen gleichzeitig auszuführen.
Kapitel 7 • Anwendungen konfigurieren 163

Abb. 7.1: Das Paketsymbol wird für Verzeichnisse verwendet, die als
Ausgangspunkt einer Anwendung dienen

Um nun die Anwendung so konfigurieren zu können, dass sie das richtige Modell
verwendet, müssen Sie den Ausgangspunkt der Anwendung im Internetdienste-
Manager mit der rechten Maustaste anklicken und den Eintrag EIGENSCHAFTEN
im Kontextmenü auswählen. Dadurch wird das Fenster EIGENSCHAFTEN (Abbil-
dung 7.2) aufgerufen.
Wie Sie sehen, gibt es hier für den ANWENDUNGSSCHUTZ die drei oben beschrie-
benen Einstellmöglichkeiten: NIEDRIG (IIS-PROZESS), MITTEL (ZUSAMMENGE-
FASST) und HOCH (ISOLIERT).

Wenn Sie einen angemessenen Anwendungsschutz einstellen und gleichzeitig


eine optimale Systemleistung erzielen wollen, dann empfehle ich Ihnen, IIS und
systemkritische Anwendungen jeweils in einem eigenen Prozess und alle anderen
Anwendungen in einem zusammengefassten Prozess auszuführen. Natürlich kann
es auch vorkommen, dass mehr als zehn systemkritische Anwendungen auf einem
Server ausgeführt werden; verlassen Sie sich bei der Prozessverteilung auf Ihr
Gespür und Ihre Kenntnisse hinsichtlich des vorhandenen Systems – im Zweifels-
fall können Sie immer noch einen zweiten IIS-Server hinzufügen und die Anwen-
dungsverarbeitung auf diese beiden Server verteilen.
164 Anwendungskonfiguration bei IIS

Abb. 7.2: Unten im Fenster EIGENSCHAFTEN des Basisverzeichnisses einer


Anwendung können Sie den Anwendungsschutz einstellen

Wenn Sie vor der Frage stehen, welche Skriptsprache Sie für Ihre Anwendung
verwenden sollen, dann achten Sie auf einfache Verwendung und – natürlich – auf
die Serverleistung. Auch wenn bereits erwähnt wurde, dass IIS mit CGI, ISAPI,
ASP und einigen anderen Skripttechniken gut zurechtkommt, so müssen Sie den-
noch die Vor- und Nachteile der einzelnen Skriptsprachen gegeneinander abwä-
gen. Sie sind in der Programmierung von CGI-Anwendungen vielleicht schon
sehr bewandert; warum denn jetzt noch ASP lernen oder statt dessen ISAPI ver-
wenden?
Die Antwort auf die erste Frage heißt Unkompliziertheit. ASP ist im Vergleich zu
PERL (Practical Extraction and Reporting Language) eine weitaus leichter zu
erlernende Sprache. PERL ist eine Interpretersprache und für das Durchsuchen
und Bewerten von Textdateien optimiert; sie ist nur leider nicht leicht zu lernen.
Mit ISAPI können Sie Multithread-DLLs erstellen, die in anderen Sprachen ver-
fasste CGI-Anwendungen locker übertrumpfen. ISAPI-Anwendungen können
prozessintern oder -extern ausgeführt werden und nutzen Win32-API-Aufrufe,
die eine weitaus höhere Leistung erbringen, als dies mit CGI-Anwendungen mög-
lich wäre.
Kapitel 7 • Anwendungen konfigurieren 165

ASP verwendet für IIS standardmäßig VBScript oder JScript. Diese Skriptspra-
chen sind leicht zu erlernen und doch extrem leistungsfähig; immerhin war der
Melissa-Virus (und auch eine Menge seiner Nachfolger) in VBScript program-
miert – das sollte Sie schon von den Möglichkeiten überzeugen, die diese Sprache
bietet.
JScript ist fast genau so einfach und auch ebenso leistungsfähig. Ferner bietet es
den Vorteil, dass Applets und Anwendungen in Java ohne große Mühe in JScript
konvertiert werden können.

7.2 Anwendungen erstellen


Die Erstellung einer Anwendung ist ein vergleichsweise direkter Vorgang. Zuerst
einmal müssen Sie das Verzeichnis erstellen, das die Anwendung enthalten wird.
Sie können, wenn Sie wollen, das Verzeichnis Ihrer Standardwebsite dafür ver-
wenden (und zwar insbesondere dann, wenn die Anwendungen auf Ihrer Site aus-
geführt werden sollen); ich empfehle Ihnen jedoch eher, die Anwendungen
jeweils in einem separaten Verzeichnis abzulegen, denn das erleichtert nicht nur
die Administrierung, sondern es erhöht auch die Sicherheit, weil böswillige
Benutzer Anwendungen nicht mehr unbefugt in anderen Verzeichnissen auf dem
Server ausführen können.
Klicken Sie also im Internetdienste-Manager mit der rechten Maustaste auf den
Verzeichnisnamen in der Baumansicht (linker Fensterbereich) und wählen Sie im
Kontextmenü den Eintrag EIGENSCHAFTEN. Dadurch wird das Dialogfeld EIGEN-
SCHAFTEN des Verzeichnisses aufgerufen, wobei die Registerkarte VERZEICHNIS
bzw. VIRTUELLES VERZEICHNIS selektiert ist (Abbildung 7.3).
Klicken Sie im Abschnitt ANWENDUNGSEINSTELLUNG auf die Schaltfläche
ERSTELLEN, um eine Anwendung in diesem Verzeichnis zu erstellen. Nun wird
der Name Marketing im Textfeld ANWENDUNGSNAME angezeigt; Sie können den
Namen jedoch auch ändern.
Nachdem Sie die Anwendung auf diese Weise erstellt haben, können Sie damit
beginnen, Berechtigungen, Anwendungsschutz und Zuordnung zu konfigurieren.
Zuerst müssen Sie dabei entscheiden, ob im Anwendungsverzeichnis Skripts, aus-
führbare Dateien, eine Kombination aus beiden oder gar keine Dateien ausgeführt
werden können. Diese Einstellung nehmen Sie über das Listenfeld AUSFÜHRBE-
RECHTIGUNGEN vor. Sie haben dabei folgende Möglichkeiten:

• Keine. Diese Einstellung verhindert die Ausführung von Dateien im bezeich-


neten Verzeichnis. Wenn Sie hohe Sicherheitsansprüche haben, verwenden Sie
diese Einstellung, denn Sie verhindert die Ausführung von Skripts und Anwen-
dungen wirksam.
166 Anwendungen erstellen

Abb. 7.3: Das Dialogfeld EIGENSCHAFTEN VON MARKETING erlaubt auf der
Registerkarte VERZEICHNIS die Erstellung einer Anwendung

• Nur Skripts. Wenn Sie diese Option wählen, gestatten Sie die Ausführung von
Skripts, z.B. ASP-Skripts, Skripts in Javascript, IDC-Skripts usw. Anwendun-
gen können jedoch nicht ausgeführt werden. Auch diese Einstellung ist noch
vergleichsweise sicher, räumt den Benutzern aber ein gewisses Maß an Funk-
tionalität ein.
• Skripts und ausführbare Dateien. Diese Einstellung gestattet die Ausfüh-
rung beliebiger Skripts und Anwendungen im Verzeichnis. Dies kann ein Si-
cherheitsproblem darstellen, da auch die Ausführung solcher Anwendungen
möglich ist, die Windows-Binärdateien (etwa .dll- oder .exe-Dateien) zugeord-
net sind. Auf diese Weise könnten böswillige Clients Viren oder Trojaner in Ih-
ren Server einschleusen. Seien Sie also bei der Auswahl dieser Option
umsichtig und vergewissern Sie sich, dass Sie alle Sicherheitslücken gestopft
haben, die bei IIS vorhanden sind (d.h. schauen Sie regelmäßig auf der Website
von Microsoft nach Updates, die solche Lücken schließen).
Wenn Sie die gewünschten Ausführberechtigungen eingestellt haben, sollten Sie
den Prozess festlegen, in dem die Anwendung ausgeführt werden soll. Wir haben
die Anwendungsschutzprozesse bereits weiter oben erläutert; treffen Sie also im
Listenfeld ANWENDUNGSSCHUTZ Ihre Wahl.
Kapitel 7 • Anwendungen konfigurieren 167

7.3 Zuordnungen vornehmen


Anwendungszuordnungen bei IIS 5.0 funktionieren exakt auf die gleiche Weise
wie die Dateitypenregistrierung unter Windows: Die Dateierweiterung wird zur
Bestimmung der Anwendung benutzt, die zur Ansicht oder Ausführung einer
Datei aufgerufen werden muss.
Die Konfiguration und Bearbeitung dieser Zuordnungen werden bei IIS 5.0 auf
der Registerkarte ANWENDUNGSZUORDNUNGEN des Dialogfelds ANWENDUNGS-
KONFIGURATION vorgenommen (siehe Abbildung 7.4).

Abb. 7.4: Im Dialogfeld ANWENDUNGSKONFIGURATION konfigurieren Sie


Anwendungszuordnungen und Einstellungen für Ihren IIS-Server

Wie Sie sehen, sind hier doch so einige Erweiterungen und Dateinamen und -
pfade aufgelistet. Beachten Sie insbesondere den vierten Eintrag von oben: Hier
finden Sie eine Programmbibliothek namens asp.dll vor, die die Funktionalität
oder Anwendung bereitstellt, die zur Verarbeitung aller Anfragen betreffend
Active Server Pages auf Ihrem Server benötigt werden.
168 Zuordnungen vornehmen

Warnung
Wenn Sie sich nicht vollkommen sicher sind, wofür die hier gezeigten
Anwendungen und Programmbibliotheken benötigt werden, sollten Sie
die Standardzuordnungen nicht ändern. Sie können natürlich jederzeit
eigene Zuordnungen hinzufügen, um Ihre benutzerdefinierten Anwen-
dungen zu verwalten, aber für die meisten Zwecke sollten die Standard-
einstellungen ausreichend sein.

Die zweite Registerkarte dieses Dialogfelds heißt ANWENDUNGSOPTIONEN


(Abbildung 7.5).

Abb. 7.5: Die ASP-Anwendungseinstellungen für Ihren Server konfigurieren Sie auf
der Registerkarte ANWENDUNGSOPTIONEN

Dieses Dialogfeld enthält einige sehr wichtige Optionen für ASP-Anwendungen.


Die erste Einstellung SITZUNGSZUSTAND AKTIVIEREN wird zur Erzeugung und
Aufrechterhaltung einer seitenübergreifenden Sitzung für jeden Benutzer benö-
tigt, der auf eine ASP-Seite zugreift. Dadurch kann der ASP-Programmierer
nachvollziehen, wo der Besucher überall auf der Site war, welche Seiten er
besucht hat, was er bestellt hat usw. Viele ASP-Entwickler benutzen dieses
Feature als Werkzeug, um Benutzern kontextbezogene Werbung anzuzeigen, die
auf der Basis der bereits besuchten Seiten ausgewählt wird.
Kapitel 7 • Anwendungen konfigurieren 169

Fragen Sie bei Ihren ASP-Entwicklern nach und überprüfen Sie die Surfgewohn-
heiten Ihrer Benutzer, um zu entscheiden, ob und welcher Wert für den
SITZUNGSTIMEOUT eingestellt werden sollte (Standard: 20 Minuten). Nach
Ablauf dieser Zeit endet die Sitzung, wenn der Benutzer die Seite nicht aktuali-
siert oder neue Anfragen gestellt hat.
Die nächste Option heißt PUFFER AKTIVIEREN. Der Puffer wird auf dem Webser-
ver benötigt, um den Inhalt der ASP-Seite im Serverspeicher zu halten, bis die
Ausgabedaten vollständig gesammelt und zur Sendung bereit sind. Der Server
sendet die Daten dann an den Browser des Clients. Wenn diese Option deaktiviert
ist, werden die Ausgabedaten sofort bei Eintreffen an den Client gesandt.
Die Option ÜBERGEORDNETE PFADE AKTIVIEREN aktiviert bei ASP-Seiten die
Verwendung eines relativen Pfades zu einer Datei, einem Verzeichnis oder dem
übergeordneten Verzeichnis. Mit dieser Einstellung kann ein Sicherheitsproblem
verbunden sein: Wenn Sie für das übergeordnete Verzeichnis die Berechtigung
Ausführen erteilt haben, könnte über ein böswilliges Skript eine unbefugte
Anwendung in diesem Verzeichnis ausgeführt werden.
Im Textfeld ASP-STANDARDSPRACHE befindet sich der Name der Skriptsprache,
die Sie als Standardskriptsprache auf Ihrem Server verwenden wollen. ASP kann
sowohl auf VBScript als auch auf JScript fußen; welche der beiden Möglichkeiten
Sie hier eintragen sollen, müssen Sie bei Ihren Webdesignern erfragen. Die
Skriptbereiche auf einer Webseite sind zwischen den Tags <% und %> angegeben;
sie werden dem Client nicht gezeigt, wenn die Seite an ihn gesandt wird. Wenn
Ihre Webdesigner im HTML-Code keine Skriptsprache explizit erwähnen (in der
Art <%@ LANGUAGE="VBSCript" %> oder <% @LANGUAGE="JScript" %>), dann schaut
der Server bei Bedarf an dieser Stelle nach, welche Sprache bei der Ausführung
einer ASP-Seite verwendet werden soll.

Hinweis
Wenn Sie als Standardsprache VBScript gewählt haben, so bedeutet dies
nicht, dass Ihre Webentwickler JScript nicht mehr auf dem Server bzw.
auf dieser Seite verwenden dürfen. VBScript und JScript können durch-
aus im gleichen HTML-Dokument koexistieren.

Als letzte Option finden Sie auf der Registerkarte ANWENDUNGSOPTIONEN noch
die Einstellung ASP-SKRIPTTIMEOUT. Hier beträgt der Standardwert 90 Sekunden,
Sie können ihn aber in einem Bereich zwischen 1 und 2.147.483.647 Sekunden
einstellen. Ich persönlich glaube ja, dass Sie bei einem Skript, das für die Ausfüh-
rung so viel Zeit benötigt, über eine Überarbeitung nachdenken sollten.
Der hier gewählte Wert dient der erzwungenen Beendigung eines nicht beendeten
Skripts; in diesem Fall wird auch ein Ereignis im Ereignisprotokoll erzeugt, das
Sie sich mit der Ereignisanzeige ansehen können. Wenn Sie sehr aufwändige
Skripts erstellt haben, deren Ausführung offensichtlich nicht abgeschlossen wird,
dann sollten Sie diesen Wert erhöhen.
170 Zuordnungen vornehmen

Das Dialogfeld ANWENDUNGSKONFIGURATION hat abschließend auch noch eine


Registerkarte namens DEBUGGEN DER ANWENDUNG. Sie können die Optionen
auf dieser Registerkarte dazu verwenden, das Debugging von Code auf Ihren
ASP-Seiten zu aktivieren.
Die erste Option auf dieser Registerkarte heißt ASP-SERVERBASIERTES SKRIPT-
DEBUGGEN AKTIVIEREN und schaltet das Debugging für Skripts ein, die auf dem
Server ausgeführt werden. Benutzt wird hierzu der Microsoft Skript-Debugger,
der bewirkt, dass ASP im Singlethread-Modus ausgeführt wird. Die Option sollte
lediglich zu Testzwecken verwendet werden und niemals auf einem Produktions-
server, der Webseiten im Internet oder in einem Intranet bereitstellen soll, denn
die Leistungseinbußen sind im Singlethread-Modus immens.
Die Option ASP-CLIENTBASIERTES SKRIPTDEBUGGEN AKTIVIEREN ist bei IIS 5.0
noch nicht implementiert; insofern hat die Markierung des Kontrollkästchens kei-
nerlei Auswirkungen.
Unten auf der Registerkarte DEBUGGEN DER ANWENDUNG befindet sich der
Abschnitt SKRIPTFEHLERMELDUNGEN. Hierbei handelt es sich um Meldungen, die
an Clients gesendet werden, deren Anforderung einer ASP-Seite nicht bearbeitet
werden konnte, weil ein Fehler aufgetreten ist.
Hier sind zwei Optionen verfügbar. Die Einstellung DETAILLIERTE ASP-FEHLER-
MELDUNG AN CLIENT SENDEN sendet debuggingspezifische Fehlerinformationen
an den Client. Hierzu gehören der ASP-Dateiname, die Fehlermeldung und die
Zeilennummer, in der der Fehler auftrat. Abbildung 7.6 zeigt ein Beispiel für eine
solche Fehlermeldung.
Listing 7.1 zeigt einen Teil des HTML-Codes, den ich geschrieben habe, um die
in Abbildung 7.6 gezeigte Fehlermeldung zu generieren.
<%@ LANGUAGE=VBScript %>
<html>

<head>
<meta http-equiv="Content-Language" content="en-ca">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Home Page</title>
</head>

<body>
<!- #include file="navbar.stm" ->
<h1 align="center"><b>Dies ist die Homepage</b></h1>
<hr>
Kapitel 7 • Anwendungen konfigurieren 171

<%
Dim dbGK
Set dbGK = Server.CreateObject("Datenbank")
%>

Listing 7.1: ASP-Datei, die einen Fehler generiert

Abb. 7.6: Der Internet Explorer zeigt einen Teil der Fehlermeldung an, die an den
Server zurückgesandt wurde. In diesem Fall waren detaillierte
Fehlermeldungen aktiviert.

Wenn Sie im Listing bis zur Zeile 18 zählen, finden Sie den Code Set dbGK =
Server.CreateObject ("Datenbank"). Diese Zeile bewirkt, dass das ASP-Skript
auf dem Server ein Objekt zu erstellen versucht, um die Datenbank zu repräsen-
tieren. Schade, dass auf dem Server kein gültiger Datenquellenname vorhanden
ist – voilà, schon haben wir unseren Fehler.
Dem durchschnittlichen Webbenutzer mag die Fehlermeldung ein wenig kryp-
tisch erscheinen. Sie können statt dessen auch eine allgemeine Fehlermeldung
senden; markieren Sie die Option FEHLERMELDUNG ALS TEXT AN CLIENT SEN-
DEN und geben Sie den gewünschten Text der Fehlermeldung in das Textfeld ein.
Ihre Benutzer werden dann gegebenenfalls eine Fehlermeldung sehen, die ihnen
mitteilt, dass irgendetwas beim Server schief gelaufen ist; in diesem Fall langwei-
len und verwirren Sie sie nicht mit den detaillierten ASP-Fehlermeldungen.
172 Anwendungen isolieren

7.4 Anwendungen isolieren


Beim »Isolieren« von Anwendungen geht es um die Prozesse, in denen diese
Anwendungen ausgeführt werden. Wie bereits weiter oben erläutert, können Sie
Anwendungen in einem von drei verschiedenen Prozessen ausführen lassen:
Hoch, Mittel und Niedrig.
Wenn Sie Ihre Anwendungen in einem Prozess mit niedrigem Anwendungsschutz
ausführen, dann läuft sie im gleichen Prozessbereich ab wie Inetinfo.exe, d.h. der
IIS selbst. Wenn die Anwendung dann abstürzt, reißt sie den IIS mit ins Verder-
ben.
Die Einstellung Mittel führt Ihre Anwendung in einem Prozess aus, in dem meh-
rere Anwendungen mit der Anwendungsschutzeinstellung Mittel zusammenge-
fasst sind. Dadurch wird der IIS etwas besser geschützt, denn wenn eine Anwen-
dung mit der Einstellung Mittel abstürzt, dann schießt sie nur die anderen im
gleichen Prozess ausgeführten Anwendungen ab, nicht jedoch den IIS. Allerdings
kann Ihre Anwendung – das ergibt sich daraus – durch Fehlverhalten einer ande-
ren Anwendung im gleichen Prozess in Mitleidenschaft gezogen werden.
Wenn Sie für eine Anwendung die Einstellung Hoch wählen, dann läuft diese in
einem eigenen, separaten Prozess und wird durch einen Ausfall irgendeiner ande-
ren Anwendung nicht im mindesten beeinträchtigt. Umgekehrt sind bei einem
Absturz Ihrer Anwendung auch weder der IIS noch irgendeine andere zusammen-
gefasste Anwendung betroffen.

Warnung
Es scheint also so, als sollte man alle Anwendungen in einem separaten
Speicherbereich ausführen lassen und den Anwendungsschutz Hoch
wählen. Das stimmt in der Tat bei Servern, auf denen maximal zehn
Anwendungen ausgeführt werden; bei allen anderen jedoch wird die
Leistung zu stark beeinträchtigt.

Hinweis
Wenn Sie SSI- oder IDC-Anwendungen ausführen, dann müssen diese
im selben Prozess ablaufen wie IIS, d.h. es muss für diese Anwendungen
der Anwendungsschutz Niedrig (IIS-Prozess) eingestellt werden.

7.5 Anwendungen zwischenspeichern


Durch das Zwischenspeichern von Anwendungen können Sie die Serverleistung
optimieren. Zu diesem Zweck benötigen Sie den Systemmonitor und die Ereigni-
sanzeige, um festzustellen, wo in Ihrem System Flaschenhälse vorhanden sind.
Ferner können Sie mit diesen beiden Hilfsmitteln auch in Erfahrung bringen, wo
Fehler aufgrund nicht gefundener Seiten und abgelaufener Skripts auftreten.
Kapitel 7 • Anwendungen konfigurieren 173

Die Zwischenspeicherung wird über drei Einstellungen konfiguriert, nämlich


• CGI-Skripttimeout,
• ISAPI-Anwendungen zwischenspeichern,
• ASP-Skriptdateien zwischenspeichern.
Wir werden diese nacheinander beschreiben.

7.5.1 Skript-Timeout in CGI


CGI-Skripts übernehmen die Timeout-Einstellungen, die für den Server als Gan-
zes gelten, d.h. Sie stellen über die HAUPTEIGENSCHAFTEN DES WWW-DIENSTES
einen Timeout-Wert für den gesamten Server ein. Um den Wert zu setzen, klicken
Sie mit der rechten Maustaste auf das Computersymbol im linken Teilfenster des
Internetdienste-Managers und wählen den Eintrag EIGENSCHAFTEN. Wenn sich
das gleichnamige Dialogfeld geöffnet hat, klicken Sie neben dem Listenfeld
HAUPTEIGENSCHAFTEN auf die Schaltfläche BEARBEITEN, aktivieren die Register-
karte BASISVERZEICHNIS und öffnen das Dialogfeld ANWENDUNGSKONFIGURA-
TION (Abbildung 7.7).

Abb. 7.7: Das Dialogfeld ANWENDUNGSKONFIGURATION enthält eine Registerkarte


namens PROZESSOPTIONEN, auf der Sie den CGI-Timeoutwert einstellen
können
174 Anwendungen zwischenspeichern

Wie aus Abbildung 7.7 ersichtlich ist, enthält das Dialogfeld eine zusätzliche
Registerkarte, die für das Basisverzeichnis einer Website auf dem Server nicht
vorhanden war. Die Registerkarte PROZESSOPTIONEN ermöglicht es Ihnen, einen
Timeout-Wert für CGI-Skripts zu setzen. Wie bereits gesagt, betrifft diese Ein-
stellung den gesamten Server mit allen darauf abgelegten Websites.
Der Standardwert liegt bei 300 Sekunden. Microsoft hat nirgends eine Ober-
grenze für diesen Parameter angegeben, insofern lässt sich theoretisch einstellen,
dass ein Skript niemals abläuft. Was natürlich nicht empfehlenswert ist.

7.5.2 ISAPI-Erweiterungen zwischenspeichern


ISAPI-Programmbibliotheken, die häufig aufgerufen werden, lassen sich zur
Leistungssteigerung zwischenspeichern. Durch diese Zwischenspeicherung wird
die Zeit für das Laden und Verarbeiten der Anwendung reduziert, denn die DLL
ist bereits im Speicher vorhanden, was einen wesentlich schnelleren Zugriff
ermöglicht.
Um die Zwischenspeicherung zu aktivieren, öffnen Sie das Dialogfeld EIGEN-
SCHAFTEN für das Verzeichnis der zwischenzuspeichernden Anwendung. Wählen
Sie dort die Registerkarte BASISVERZEICHNIS und klicken Sie auf die Schaltfläche
KONFIGURATION im Abschnitt ANWENDUNGSEINSTELLUNG. Dadurch wird das
Dialogfeld ANWENDUNGSKONFIGURATION in der in Abbildung 7.5 gezeigten
Form aufgerufen. Wählen Sie die Registerkarte ANWENDUNGSZUORDNUNGEN
aus.
Die erste Option auf dieser Registerkarte heißt ISAPI-ANWENDUNGEN ZWI-
SCHENSPEICHERN. Markieren Sie das Kontrollkästchen in jedem Fall, damit der
Server die ISAPI-Anwendungen für die Anwendungsverzeichnisse zwischenspei-
chert; beachten Sie, dass das Kontrollkästchen für jedes Website- oder Anwen-
dungsverzeichnis markiert sein muss, für das die Zwischenspeicherung aktiviert
werden soll.

Tipp
Aus Gründen der Leistungsoptimierung sollten Sie das Kontrollkästchen
ISAPI-ANWENDUNGEN ZWISCHENSPEICHERN immer aktiviert lassen. Es kann
allerdings Situationen geben – etwa wenn Sie Anwendungen testen oder
einen Webserver debuggen –, in denen Sie die Markierung vorüberge-
hend aufheben können.

7.5.3 ASP-Skriptdateien zwischenspeichern


Auch ASP-Skriptdateien lassen sich aus Gründen der Leistungsverbesserung zwi-
schenspeichern. Öffnen Sie zu diesem Zweck das Dialogfeld EIGENSCHAFTEN des
Computers und wählen Sie dort – wie bei der CGI-Zwischenspeicherung – die
Registerkarte BASISVERZEICHNIS aus und klicken Sie dort auf die Schaltfläche
KONFIGURATION im Abschnitt ANWENDUNGSEINSTELLUNG.
Kapitel 7 • Anwendungen konfigurieren 175

Nun öffnet sich das Dialogfeld ANWENDUNGSKONFIGURATION. Aktivieren Sie


hier die Registerkarte PROZESSOPTIONEN. In der Mitte finden Sie nun den
Abschnitt SKRIPTDATEI ZWISCHENSPEICHERN. Hier sind drei Optionen vorhan-
den:
• ASP-Skriptdateien nicht zwischenspeichern. In diesem Fall werden auch
keinerlei ASP-Skripts zwischengespeichert.
• Alle angeforderten ASP-Dateien zwischenspeichern. Hierdurch werden alle
ausgeführten ASP-Skripts zwischengespeichert.
• Max. Anzahl zwischengespeicherter ASP-Dateien. Über diese Option kön-
nen Sie die Anzahl der zwischengespeicherten ASP-Skripts begrenzen (Stan-
dard: 250). Diese Auswahl ist empfehlenswert, wenn Ihr Server über wenig
Arbeitsspeicher verfügt.

7.6 Isolierte Anwendungen entladen


Wenn Sie für die Anwendungen auf Ihrem Server eine Fehlerbereinigung durch-
führen oder sie einfach nur vorübergehend anhalten wollen, dann ermöglicht
Ihnen IIS das Entladen der gewünschten Anwendung, während der restliche IIS-
Dienst davon nicht beeinträchtigt wird.
Um eine Anwendung zu entladen, müssen Sie das Dialogfeld EIGENSCHAFTEN
des Verzeichnisses oder der Site öffnen, die die betreffende Anwendung enthält.
Wählen Sie die jeweilige Registerkarte (BASISVERZEICHNIS, VIRTUELLES VER-
ZEICHNIS oder VERZEICHNIS) aus, um sich den Abschnitt ANWENDUNGSEINSTEL-
LUNG anzeigen zu lassen. Abbildung 7.8 zeigt das Dialogfeld EIGENSCHAFTEN
VON IISHELP.

Unten rechts im Abschnitt ANWENDUNGSEINSTELLUNG finden Sie die Schaltflä-


che ENTLADEN. Klicken Sie darauf, um die Anwendung anzuhalten.

Tipp
Wenn die Schaltfläche abgeblendet dargestellt ist und nicht bedient wer-
den kann, dann weist das darauf hin, dass Sie sich derzeit nicht am Aus-
gangspunkt der Anwendung befinden; wählen Sie also zuerst das
Verzeichnis aus, das als AUSGANGSPUNKT angezeigt wird.
176 ASP-Anwendungen konfigurieren

Abb. 7.8: Das Dialogfeld EIGENSCHAFTEN VON IISHELP, Registerkarte VIRTUELLES


VERZEICHNIS; hier können die Sie IIS-HILFEANWENDUNG entladen

7.7 ASP-Anwendungen konfigurieren


Sie haben bereits weiter oben gesehen, dass Sie ASP-Einstellungen vornehmen
können, die bestimmen, ob Sie Pufferspeicher, Sitzungszustände und ASP-Time-
outs verwenden oder nicht.
ASP-Anwendungen werden an zwei Stellen konfiguriert. Sie können Standard-
einstellungen für alle Websites vornehmen, aber auch für jede Website bestimmte
Parameter separat einstellen. Diese Einstellungen werden auf der Registerkarte
ANWENDUNGSOPTIONEN des Dialogfelds ANWENDUNGSKONFIGURATION (Abbil-
dung 7.5) festgelegt.
Wenn Sie die ASP-Optionen auf der Registerkarte HAUPTEIGENSCHAFTEN ein-
stellen, gelten diese für alle Websites, soweit nichts anderes angegeben wurde.
Wollen Sie hingegen spezielle Einstellungen für eine bestimmte Site vornehmen,
dann öffnen Sie das zugehörige Dialogfeld EIGENSCHAFTEN; alle dort gemachten
Einstellungen haben Vorrang vor den globalen Servereinstellungen.
Kapitel 7 • Anwendungen konfigurieren 177

7.8 ASP-Debugging
Wie Ihnen jeder Entwickler bestätigen wird, ist die Fehlerbereinigung (neu-
deutsch: »Debuggen«) ein wesentlicher Faktor der Entwicklung von Softwarean-
wendungen, den man aber immer wieder gerne vor sich herschiebt. ASP-Ent-
wicklern geht es nicht viel anders. Das Ergebnis: In Ihren ASP-Skripts befinden
sich Fehler. Bevor Sie also ein Skript an die Öffentlichkeit gelangen lassen, soll-
ten Sie erst einmal die Debugfunktion aktivieren, um diese Fehler zu finden.
ASP verwendet zur Fehlersuche in Ihrem ASP-Code den Microsoft Skript-
Debugger. Öffnen Sie das Dialogfeld EIGENSCHAFTEN des Servers oder der Web-
site, für die Sie die Fehlerbereinigung aktivieren wollen, und wählen Sie dort die
Registerkarte BASISVERZEICHNIS. Klicken Sie auf die Schaltfläche KONFIGURA-
TION im Abschnitt ANWENDUNGSEINSTELLUNG, aktivieren die Registerkarte
DEBUGGEN DER ANWENDUNG und markieren das Optionsfeld ASP-SERVERBA-
SIERTES SKRIPTDEBUGGEN AKTIVIEREN.

Weitere Informationen zu den Skripttechniken von Microsoft finden Sie unter


http://msdn.microsoft.com/scripting/.

7.9 CGI-Anwendungen konfigurieren


Wir werden uns an dieser Stelle nicht zu sehr mit den komplizierten Verwicklun-
gen beschäftigen, auf die wir bei CGI-Anwendungen stoßen können, denn dies
kann je nach von Ihnen verwendeter Skriptsprache unschöne Ausmaße anneh-
men. Ich will Ihnen allerdings zeigen, wie Sie Ihren Server für die Ausführung
von CGI-Anwendungen konfigurieren müssen, falls Sie bereits eine Reihe von
Anwendungen haben, die Sie nicht auf ASP portieren können oder wollen.
Zuerst einmal müssen wir uns um Verzeichnisse kümmern. Ich empfehle Ihnen,
alle CGI-Anwendungen in einem gemeinsamen Verzeichnis abzulegen. Die meis-
ten UNIX- oder Linux-basierten Webserver speichern alle CGI-Programme in
einem Verzeichnis namens \cgi-bin; das können Sie auf Ihrem IIS-Server auch
tun.
Im nächsten Schritt müssen Sie die entsprechenden Berechtigungen für das Ver-
zeichnis setzen. Wenn es sich bei Ihren CGI-Anwendungen lediglich um Skripts
handelt, dann können Sie die Berechtigung Nur Skripts erteilen; andernfalls wäh-
len Sie Skripts und ausführbare Dateien. Außerdem müssen Sie einen mit
Windows 2000 kompatiblen Skriptinterpreter im Internet suchen oder erwerben,
denn einen solchen bietet Microsoft nicht an.
Wenn Sie den Skriptinterpreter installiert, das Verzeichnis eingerichtet und die
Anwendungen aufgespielt haben, müssen Sie wie weiter oben beschrieben die
Anwendungszuordnungen vornehmen. Dadurch wird sichergestellt, dass alle
Anforderungen von Seiten, die CGI-Anwendungen enthalten, an den korrekten
Interpreter weitergeleitet werden.
178 ISAPI-Filter

Warnung
Aus Sicherheitsgründen leitet der Server bestimmte Sonderzeichen nicht
an Ihre Anwendung weiter. Es sind dies die Zeichen |(,;%< und >.

7.10 ISAPI-Filter
ISAPI-Filter sind Anwendungen, die auf dem Server liegen und durch Ereignisse,
die aufgrund von HTTP-Anforderungen entstehen, aufgerufen werden bzw. auf
diese reagieren. Sie können einen Filter einem Ereignis zuweisen; sobald das
Ereignis eintritt, wird die Anwendung aufgerufen und der Filter verarbeitet.
Ein denkbarer Anwendungsfall für einen bestimmten Filtertyp ist die Bereitstel-
lung der Datenverschlüsselung und -entschlüsselung vor dem Senden bzw. Emp-
fangen von Daten.
Sie können zwei verschiedene Filtertypen anwenden. Obwohl diese offiziell nicht
so heißen, bezeichne ich sie als globale und lokale Filter. Diese Filter können auf
ähnliche Weise agieren wie die globalen und lokalen Berechtigungen für NTFS-
Laufwerke.
Die Filter werden zuerst global und dann lokal angewandt. Sie werden auf diese
Weise vermischt und gelten dann für die Website, die die Anforderung verarbei-
tet.
Um einen ISAPI-Filter verwenden zu können, müssen Sie ihn zunächst dem
gewünschten Webserver oder der gewünschten Website hinzufügen. Öffnen Sie
zu diesem Zweck den Internetdienste-Manager und rufen Sie das Dialogfeld
EIGENSCHAFTEN der gewünschten Site auf. Wählen Sie dann die Registerkarte
ISAPI-FILTER (Abbildung 7.9).
Wenn Sie auf die Schaltfläche HINZUFÜGEN klicken, können Sie den Namen und
die ausführbare Datei eines ISAPI-Filters festlegen. Wenn Sie mehr als einen Fil-
ter installiert haben, können Sie zudem die Priorität (Reihenfolge der Abarbei-
tung) ändern, indem Sie einen Filter in der Liste wählen und ihn dann mit den
links vorhandenen Pfeilschaltflächen nach oben oder unten verschieben.

Hinweis
ISAPI-Filter werden immer im gleichen Prozess ausgeführt wie IIS.

7.11 Fazit
IIS 5.0 erlaubt Ihnen die Verwendung einer Vielzahl von Anwendungen auf Ihrem
Server. Dadurch, dass IIS die Verwendung von CGI-Anwendungen in Sprachen
wie PERL gestattet, erleichtert er den Übergang von UNIX-basierten Webumge-
bungen zu IIS.
Kapitel 7 • Anwendungen konfigurieren 179

Abb. 7.9: Auf der Registerkarte ISAPI-FILTER können Sie ISAPI-Filter hinzufügen und
entfernen sowie die Verarbeitungsreihenfolge ändern

Indem Microsoft die ASP-Unterstützung in IIS integriert hat, hat das Unterneh-
men einen großen Schritt bei der Vereinfachung der Anwendungsentwicklung
unternommen. ASP ist eine im Vergleich zu CGI wesentlich unkomplizierter zu
handhabende Technologie, denn ASP gestattet die Anwendungsentwicklung in
VBScript oder JScript.
Mit den Informationen, die Sie in diesem Kapitel erhalten haben, können Sie Ihre
Anwendungen so konfigurieren, dass diese sicher und effizient auf Ihrem IIS-
Server ausgeführt werden.
Kapitel 8
Sicherheit

8.1 Den IIS-Server sichern 182


8.2 Checkliste Sicherheit 183
8.3 Authentifizierung 185
8.4 Zugriffssteuerung 192
8.5 Verschlüsselung 204
8.6 Zertifikate 208
8.7 IPSec 230
8.8 Fazit 230
182 Den IIS-Server sichern

Eines der wichtigsten Themen, mit denen wir Webadministratoren uns heutzutage
befassen müssen, ist die Sicherheit. Dank des Einflusses, den Microsoft auf die
Computerindustrie und nun auch auf das Internet hat, gibt es unzählige Hacker,
die tagaus, tagein nichts besseres zu haben, als Microsoft und seine Produkte zu
diskreditieren, indem sie in IIS-Server und Anwendungen eindringen. Aufgrund
dieser Tatsache ist dieses Kapitel das wahrscheinlich wichtigste in diesem Buch.

8.1 Den IIS-Server sichern


Auch wenn wir die Tatsache, dass Hacker nur darauf warten, in Webserver einzu-
dringen und Ihre Dienste und Daten mit einer Spur der Vernichtung zu überzie-
hen, bereits erwähnt haben, so sind bei der Absicherung Ihres IIS-Servers mehr
Aspekte zu beachten als nur dieser.
Sicherheitsrelevante Themen sind etwa auch die Autorisierung von Clients in ein-
geschränkten Bereichen, Verschlüsselung und Zertifikate. Jeder dieser Bereiche
spielt eine Schlüsselrolle bei Ihrem IIS. IIS 5.0 verfügt über so genannte Task-
Assistenten, die Ihnen bei der Absicherung Ihres Servers behilflich sind.
Zu den Task-Assistenten, mit denen Sie bei IIS 5.0 arbeiten werden, gehören der
ZERTIFIKATS-ASSISTENT, mit dem Sie Serverzertifikate erwerben und verwalten,
der ASSISTENT FÜR ZERTIFIKATSVERTRAUENSLISTEN zur Erstellung und Admi-
nistration von Zertifikatsvertrauenslisten und der BERECHTIGUNGS-ASSISTENT,
mit dem Sie Berechtigungen für diejenigen Verzeichnisse einrichten, aus denen
die Site zusammengestellt ist.
Sie können die Absicherung Ihres Servers zwar mit diesen Assistenten erleich-
tern, aber sämtliche relevanten Sicherheitsaspekte sind dadurch nicht abgedeckt.
Aus diesem Grund werden auch die weiteren sicherheitsbezogenen Vorgänge in
diesem Kapitel erläutert.
Um die Sicherheit Ihres IIS-Servers zu konfigurieren, müssen Sie zunächst die
Sicherheitsanforderungen Ihrer Organisation ermitteln. Wenn Sie etwa vertrauli-
che Daten auf einem Server bereitstellen, der mit dem Internet verbunden ist,
dann müssen Sie weitergehende Maßnahmen ergreifen, als bei einem Server in
einem Intranet, das keine Verbindung nach draußen hat.
Aufgrund der Tatsache, dass Ihre Dienste auf einem Windows 2000-Computer
ausgeführt werden, wird der Zugriff mehrheitlich mit Hilfe von Windows 2000-
ACLs (Access Control Lists, Zugriffssteuerungslisten) geregelt werden. Um die
Sicherheitsfunktionen von Windows 2000 optimal nutzen zu können, müssen Sie
sicherstellen, dass alle Festplatten mit dem Dateisystem NTFS formatiert sind,
denn viele der hier vorgestellten Sicherheitsmechanismen funktionieren nur auf
NTFS-Datenträgern.
Was die Konfiguration angemessener Zugriffsberechtigungen für Benutzer- und
Gruppenkonten angeht, müssen Sie Hand in Hand mit Ihrem Netzwerkadminist-
Kapitel 8 • Sicherheit 183

rator arbeiten (sofern Sie diesen Posten nicht selbst bekleiden). Außerdem müs-
sen Sie sicherstellen, dass öffentlich zugängliche und einschränkte Daten in sepa-
raten Ordnern abgelegt werden.
Die meisten Clients werden mit Hilfe des Kontos IUSR_Computername auf den
Server zugreifen. Dieses Konto ordnet die Zugriffsberechtigungen und das Kenn-
wort dem Konto Gast auf dem Windows 2000-Server zu. Standardmäßig wird das
Konto bei der Installation von IIS deaktiviert – und das sollte auch so bleiben.
Jedes Konto, das Zugriff auf eingeschränkte Ordner benötigt, sollte als lokale
Gruppe auf dem Server mit den entsprechenden Berechtigungen konfiguriert wer-
den. Auf diese Weise können Benutzerkonten, die auf die eingeschränkten Res-
sourcen zugreifen müssen, zu Mitgliedern dieser Gruppe gemacht werden – das
macht die Administration einfacher.

8.2 Checkliste Sicherheit


Dieser Abschnitt enthält eine Tabelle, in der Sie eine Checkliste finden, die Sie
während der Konfiguration der IIS-Serversicherheit verwenden können.

Servermerkmal Was ist zu tun?


Dateisystem Verwenden Sie NTFS für alle Datenträger.
Verzeichnisberechtigungen Stellen Sie sicher, dass nur auf jene Ver-
zeichnisse die Berechtigungen Skripts und
Ausführen angewandt werden, die Skripts
und Anwendungen beinhalten.
Berechtigungen von IUSR_Computer- Weisen Sie die passenden Zugriffsberechti-
name überprüfen gungen zu.
Überprüfen der Verzeichnisse für Legen Sie Ihre Anwendungen und Skripts in
Skripts und ausführbare Dateien von anderen Dateien getrennten Verzeich-
nissen ab.
Benutzerkonten überprüfen Lassen Sie den Netzwerkadministrator alle
ACLs für Benutzer und Gruppen überprü-
fen.
Kennwörter Weisen Sie alle Benutzer, die authentifiziert
werden müssen, an, lange und schwer zu
erratende Kennwörter zu verwenden.
Kontorichtlinien Überprüfen Sie Konten- und Gruppenricht-
linien.
Dienste auf dem IIS-Computer Überprüfen Sie alle auf dem IIS-Server aus-
geführten Dienste. Aktivieren Sie nur dieje-
nigen, die unbedingt benötigt werden.
Tab. 8.1: Checkliste IIS-Serversicherheit
184 Checkliste Sicherheit

Servermerkmal Was ist zu tun?


Domänencontroller Führen Sie Ihren IIS-Server NICHT auf
einem Domänencontroller aus.
Überwachung Aktivieren Sie die entsprechenden Funktio-
nen zur Überwachung von Sicherheits-
Zugriffsverletzungen.
Verschlüsselung Verwenden Sie, wann immer möglich, die
Dateiverschlüsselung, und konfigurieren Sie
VPNs oder andere sichere Methoden für die
Remoteadministration.
Sicherungskonfiguration Entwickeln Sie Sicherungsstrategien für alle
wichtigen und vertraulichen Daten. Spei-
chern Sie Ihre Sicherungen in einem abgesi-
cherten Bereich.
Virenprüfung Planen Sie automatische Virenprüfungen.
Aktualisieren Sie Ihre Virenscanner regel-
mäßig.
Dienstbindungen Überprüfen Sie die Bindung Ihrer Dienste an
die Netzwerkkarten. Stellen Sie sicher, dass
die Datei- und Druckerfreigabe über das
Internet nicht aktiviert ist.
IIS-Authentifizierung Stellen Sie sicher, dass Ihre Clients und Ihr
Server die stärkste Authentifizierungs-
methode verwenden, die beiden zur Verfü-
gung steht.
Zertifikatszuordnung Wählen Sie die 1:1- oder n:1-Zuordnung für
Ihre Zertifikate.
Synchronisation von Web- und NTFS- Gleichen Sie Ihre Webberechtigungen mit
Berechtigungen den NTFS-Berechtigungen ab. Es gelten
immer die stärker einschränkenden Berech-
tigungen.
IP-Adressbeschränkung Stellen Sie sicher, dass nur gültige IP-Adres-
sen für Remoteadministration oder Remote-
zugriff aktiviert werden.
Physikalische Sicherheit Stellen Sie sicher, dass der Server sich an
einem absolut sicheren Ort befindet. Ver-
wenden Sie nur kennwortgeschützte Bild-
schirmschoner.
Administratorenkonto Benennen Sie das Administratorenkonto
um, damit Hacker es nicht verwenden kön-
nen.
Tab. 8.1: Checkliste IIS-Serversicherheit (Forts.)
Kapitel 8 • Sicherheit 185

Diese Checkliste ist ein guter Ausgangspunkt für die Konfiguration der Sicher-
heit. Vielleicht fallen Ihnen noch ein paar weitere Punkte ein, möglicherweise
treffen aber auch nicht alle in Tabelle 8.1 aufgeführten Punkte auf Ihre Umgebung
zu.

8.3 Authentifizierung
Der Begriff »Authentifizierung« bezeichnet den Vorgang, bei dem Clients oder
Benutzer dem Server beweisen, dass sie diejenigen sind, die sie zu sein behaup-
ten. Dieser Beweis erfolgt mit Hilfe einer Kombination aus einem Benutzernamen
und einem Kennwort. In Zukunft werden vielleicht andere Methoden hierfür
Verwendung finden, so etwa eine Stimmerkennung oder – für die standortinterne
Verwendung -biometrische Lösungen. Nur authentifizierte Benutzer und Clients
können auf den Server zugreifen.
Die Authentifizierung kann bei IIS auf der Ebene der Website, eines Verzeichnis-
ses oder einer Datei erfolgen. Auf diese Weise können Sie den öffentlichen
Bereich einer Website freigeben und nur für bestimmte Ordner oder Dateien, die
vertrauliche Daten enthalten, eine Authentifizierung verlangen.
IIS verwendet fünf Authentifizierungstypen:
• Anonym. Dies ist die normale Authentifizierungsmethode für die meisten
Websites und die Standardverzeichnisse auf FTP-Servern. Benutzer müssen
hier in der Regel keine Kombination aus Benutzernamen und Kennwort einge-
ben. Bei manchen FTP-Diensten werden jedoch der Benutzername anonymous
und eine gültige E-Mail-Adresse als Kennwort angefordert.
• Standardauthentifizierung. Diese Methode verwendet zur Benutzerauthenti-
fizierung eine Kombination aus Benutzernamen und Kennwort. Die Methode
weist allerdings einen schwerwiegenden Nachteil auf, denn das Kennwort wird
unverschlüsselt übertragen. Ein Hacker könnte dieses Kennwort abfangen und
es später für einen Zugriff auf Ressourcen verwenden, die für diese Benutzer-
name/Kennwort-Kombination freigegeben sind.
• Digestauthentifizierung. Hierbei handelt es sich um eine unter IIS 5.0 neue
Methode, die einen anderen Ansatz verfolgt. Die Digestauthentifizierung ver-
arbeitet die Benutzerinformationen mit einem Hash-Algorithmus. Dieser ist
nicht umkehrbar und führt immer zu einem anderen Ergebnis.
• Integrierte Windows-Authentifizierung. Diese Methode ist identisch mit
NTML. Hierbei wird keine Benutzername/Kennwort-Kombination über das
Netzwerk gesendet, sondern der Client muss im Rahmen eines kryptografi-
schen Vorgangs nachweisen, dass er das Kennwort kennt. Diese Methode kann
auch das neue Protokoll Kerberos V 5 verwenden.
186 Authentifizierung

• Zertifikatsauthentifizierung. Diese Methode verwendet SSL (Secure Sockets


Layer) zur Authentifizierung anhand eines Client- oder eines Serverzertifikats.
Clientzertifikate werden zur Bearbeitung von Clientbrowseranforderungen be-
nutzt, während Serverzertifikate mit Hilfe einer Verschlüsselung eine sichere
Übertragungsmöglichkeit für Daten anbieten.
FTP-Server können die anonyme oder die Standardauthentifizierung benutzen.
Allerdings bleibt ein Sachverhalt in Zusammenhang mit FTP-Servern anzumer-
ken: Wenn Sie diese beiden Authentifizierungsmethoden gemeinsam nutzen,
dann wird der Server zunächst die anonyme Authentifizierung verwenden. Dies
sollten Sie bei der Sicherheitskonfiguration Ihres FTP-Servers berücksichtigen.
Zwar hat die obige Liste die verschiedenen Authentifizierungsmethoden beschrie-
ben, aber nicht ausführlich erklärt, insofern sollten Sie, falls Sie noch nicht wis-
sen, welche Methode Sie verwenden sollen, die Onlinehilfe zu Rate ziehen.

8.3.1 Authentifizierung implementieren und konfigurieren


Wir werden nun einen Blick auf die Vorgänge werfen, die zur Implementierung
der verschiedenen Authentifizierungsmethoden notwendig sind. Sie können wahl-
weise nur eine Methode oder eine Kombination mehrerer Methoden verwenden,
falls Sie dies wünschen.
In einem ersten Schritt müssen Sie sicherstellen, dass Sie ein gültiges Benutzer-
oder Gruppenkonto haben, dem Sie Berechtigungen zuweisen können. Ich emp-
fehle Ihnen hierbei die Verwendung von Gruppen, denn diese sind leichter zu
administrieren als eine Vielzahl von Benutzerkonten. Wenn Sie alle betroffenen
Benutzer eine Gruppe zuweisen, dann erben die entsprechenden Konten die
Zugriffsberechtigungen der Gruppe.
Wenn Sie die notwendigen Konten erstellt haben, ist es an der Zeit, die NTFS-
Berechtigungen für die Verzeichnisse einzurichten. Öffnen Sie den Windows-
Explorer oder den ARBEITSPLATZ und klicken Sie mit der rechten Maustaste auf
das gewünschte Verzeichnis bzw. die gewünschte Datei. Wählen Sie aus dem
Kontextmenü den Eintrag EIGENSCHAFTEN und aktivieren Sie dann die Register-
karte SICHERHEITSEINSTELLUNGEN (Abbildung 8.1).
Im oberen Feld werden die Namen der Benutzer oder Konten angezeigt, die auf
den Ordner zugreifen können. Wenn Sie auf die Schaltfläche HINZUFÜGEN kli-
cken, wird das Dialogfeld BENUTZER, COMPUTER ODER GRUPPEN AUSWÄHLEN
aufgerufen (Abbildung 8.2).
Wählen Sie ein Benutzer- oder Gruppenkonto und klicken Sie auf die Schaltflä-
che HINZUFÜGEN in der Mitte des Dialogfeldes. Wenn Sie alle gewünschten Kon-
ten hinzugefügt haben, klicken Sie auf die Schaltfläche OK, um wieder zur Regis-
terkarte SICHERHEITSEINSTELLUNGEN des Dialogfeldes EIGENSCHAFTEN
zurückzukehren. Das hinzugefügte Konto sollte nun in der Liste erscheinen.
Kapitel 8 • Sicherheit 187

Abb. 8.1: Die Registerkarte SICHERHEITSEINSTELLUNGEN für den Ordner MARKETING.


Hier können Sie Zugriffsberechtigungen für Benutzer und Gruppen
erteilen.

Nun können Sie mit der Zuweisung von Berechtigungen im Abschnitt BERECHTI-
GUNGEN beginnen. Dabei stehen die folgenden Optionen bereit:

• Vollzugriff. Hiermit erhält das Konto vollen Zugriff auf den Ordner, d.h. der
Benutzer kann Dateien und Ordner nach Belieben hinzufügen, entfernen und
ändern und außerdem die Attribute des Ordners modifizieren oder ihn in Besitz
nehmen. Aus offenkundigen Gründen sollte diese Berechtigung nur Adminis-
tratoren erteilt werden.
• Ändern. Erlaubt es Benutzern, den Ordnerinhalt zu betrachten und den Ordner
zu modifizieren. Die Attribute des Ordners hingegen können nicht geändert
werden.
• Lesen, Ausführen. Erlaubt es Benutzern, den Ordnerinhalt zu betrachten und
Anwendungen auszuführen, die im Ordner vorhanden sind. Weder der Ordner
noch sein Inhalt können gelöscht oder anderweitig modifiziert werden.
• Ordnerinhalt auflisten. Erlaubt es Benutzern, den Ordnerinhalt im Windows-
Explorer oder nach Eingabe des Befehls dir an der Eingabeaufforderung zu be-
trachten. Anwendungen können nicht ausgeführt werden. Weder der Ordner
noch sein Inhalt können gelöscht oder anderweitig modifiziert werden.
188 Authentifizierung

Abb. 8.2: Das Dialogfeld BENUTZER, COMPUTER ODER GRUPPEN AUSWÄHLEN listet alle
im Netzwerk verfügbaren Konten auf, für die Sie Zugriffsberechtigungen
definieren können

• Lesen. Erlaubt es Benutzern, den Ordner und seinen Inhalt zu betrachten und
Dateien im Ordner mit einer zugeordneten Anwendung zu öffnen. Beispiels-
weise kann ein Benutzer Dokumente der Typen .doc oder .rtf mit Microsoft
Word öffnen.
• Schreiben. Erlaubt es Benutzern, Dateien in den Ordner zu kopieren oder vor-
handene Dateien zu löschen.
Klicken Sie nun auf der Registerkarte SICHERHEITSEINSTELLUNGEN des Dialog-
feldes EIGENSCHAFTEN auf die Schaltfläche ERWEITERT, um das Dialogfeld
ZUGRIFFSEINSTELLUNGEN aufzurufen (Abbildung 8.3).
Die erste Registerkarte dieses Dialogfeldes befasst sich mit kontenspezifischen
Berechtigungen. Die Spalten listen nacheinander den Berechtigungstyp (ZULAS-
SEN oder VERWEIGERN), den Kontonamen, die Berechtigung und den Anwen-
dungsbereich (Ordner, Unterordner oder Dateien) auf.
Kapitel 8 • Sicherheit 189

Abb. 8.3: Das Dialogfeld ZUGRIFFSEINSTELLUNGEN erlaubt die Einstellung weiterer


Berechtigungs- und Überwachungsparameter für die Ressource

Mit den Schaltflächen unter dem Listenfeld können Sie Konten hinzufügen oder
entfernen und deren Berechtigungen bearbeiten. Die beiden Kontrollkästchen
unten auf der Registerkarte ermöglichen Ihnen, vererbbare Berechtigungen von
übergeordneten Objekten zu übernehmen (sofern das selektierte Konto einem
anderen Objekt untergeordnet ist) und die Berechtigungen für untergeordnete
Objekte zurückzusetzen.
Auf der Registerkarte ÜBERWACHUNG finden Sie eine Liste zu überwachender
Konten vor. Diese Überwachung kann praktisch sein, wenn Sie herausfinden wol-
len, auf welche Ressourcen ein bestimmtes Konto zugreift.
Die Registerkarte BESITZER (Abbildung 8.4) erlaubt Ihnen, den Besitzer eines
Objekts oder einer Ressource zu betrachten und – sofern Sie über die entspre-
chenden Rechte verfügen – auch zu ändern.
Alle bislang erwähnten Einstellungen beziehen sich auf die Windows 2000-
Zugriffsberechtigungen für die beschriebenen Ressourcen. Da diese Einstellun-
gen nicht speziell für IIS gelten, werden wir das Thema nicht eingehender behan-
deln; wenden Sie sich bei Konfigurationsfragen vertrauensvoll an Ihren Netzwer-
kadministrator. Aus der Sicht von IIS befinden sich die wesentlichen
Sicherheitsfunktionen, mit denen wir uns befassen müssen, auf der Registerkarte
SICHERHEITSEINSTELLUNGEN im Dialogfeld EIGENSCHAFTEN eines Ordners.
190 Authentifizierung

Abb. 8.4: Auf der Registerkarte BESITZER des Dialogfeldes ZUGRIFFSEINSTELLUNGEN


können Sie die Besitzrechte an einer Ressource betrachten und ändern

8.3.2 Standarddomäne für die Anmeldung


Wenn sich ein Benutzer mit der Standardauthentifizierung an der Website anmel-
det, muss er einen Benutzernamen und ein Kennwort übermitteln. Sofern Sie IIS
in einem Intranet verwenden, befinden sich die meisten Benutzer wohl innerhalb
der gleichen Domäne wie der Server. Benutzer, die sich aus anderen Domänen
heraus anmelden, müssen als Bestandteil des Benutzernamens auch ihre Domäne
angeben. Wenn ich mich etwa aus einer anderen Domäne als gkcomput heraus an
meinem Server anmelden wollte – etwa von der Domäne verkauf aus –, dann lau-
tete der übergebene Benutzername verkauf\gobrien.
Übergeben Ihre Benutzer keinen Domänennamen zur Authentifizierung, dann
weiß der Server nicht, aus welcher Domäne sie stammen. Sie können für solche
Fälle eine Standarddomäne spezifizieren.
Öffnen Sie zu diesem Zweck das Dialogfeld EIGENSCHAFTEN der Website oder
des Ordners, für die bzw. den Sie eine Standarddomäne aktivieren wollen. Kli-
cken Sie auf der Registerkarte VERZEICHNISSICHERHEIT im Bereich STEUERUNG
DES ANONYMEN ZUGRIFFS UND DER AUTHENTIFIZIERUNG auf die Schaltfläche
BEARBEITEN, um das Dialogfeld AUTHENTIFIZIERUNGSMETHODEN (Abbildung
8.5) aufzurufen.
Kapitel 8 • Sicherheit 191

Abb. 8.5: Im Dialogfeld AUTHENTIFIZIERUNGSMETHODEN wählen Sie die


Authentifizierungsmethoden für Ihre Website aus

Wie Sie sehen, habe ich das Kontrollkästchen STANDARDAUTHENTIFIZIERUNG


markiert. Folgen Sie diesem Beispiel und klicken Sie dann auf die Schaltfläche
BEARBEITEN, um das Dialogfeld DOMÄNE FÜR STANDARDAUTHENTIFIZIERUNG
(Abbildung 8.6) aufzurufen.

Abb. 8.6: Im Dialogfeld DOMÄNE FÜR STANDARDAUTHENTIFIZIERUNG wählen Sie eine


Standarddomäne für Anmeldungen aus, bei denen mit dem
Benutzernamen keine Domänenangabe übergeben wird

Sie können den Domänennamen eingeben, der als Authentifizierungsdomäne für


den Webserver verwendet wird. In der Regel wird dies die Domäne sein, in der
der Webserver steht – Sie können aber auch eine andere Domäne angeben. Diese
können Sie mit Hilfe der Schaltfläche DURCHSUCHEN suchen.
192 Zugriffssteuerung

8.4 Zugriffssteuerung
Wenn Sie IIS unter Windows 2000 als Webserver im Internet betreiben, dann
spielt die Zugriffssteuerung in der Regel keine Rolle. Wenn Sie wollen, dass der
Besuch Ihrer Web- und FTP-Sites für Ihre Besucher zu einem angenehmen Erleb-
nis wird (und diese Besucher regelmäßig wiederkommen), dann sollten Sie den
anonymen Zugriff aktivieren – insbesondere, wenn Sie eine E-Commerce-Site
betreiben.
Es gibt auch Unternehmen, die Webserver betreiben, damit ihre Mitarbeiter oder
Geschäftspartner über das Internet auf vertrauliche Daten zugreifen können. Ohne
den Einsatz angemessener Sicherheitsmaßnahmen ist zwar von einem solchen
Vorgehen abzuraten, aber schließlich geht es in diesem Kapitel um die Implemen-
tierung genau dieser Maßnahmen. Und letztendlich besteht der Sinn einer solchen
Nutzung des Internets doch darin, die kostenintensivere Variante gemieteter Netz-
leitungen zu umgehen.
Von Authentifizierungsmethoden war bereits die Rede. Zugriffssteuerung und
Authentifizierung müssen miteinander Hand in Hand arbeiten – bei der Zugriffs-
steuerung geht es im Wesentlichen darum, zu regeln, wer auf Ihre Site Zugriff hat.
Eine der am meisten verwendeten Steuerungsmethoden für Web- und FTP-Sites
ist der anonyme Zugriff. Benutzer, die sich mit dieser Zugriffsmethode anmelden,
können nur auf diejenigen Bereiche der Site zugreifen, die Sie entsprechend kon-
figuriert haben.
Bei der Installation erstellt IIS ein Benutzerkonto namens IUSR_computername,
wobei computername der Name des Servers ist. Das Konto entnimmt seine Daten
dem Konto Gast, das in der Windows 2000 SAM-Datenbank vorhanden ist. Auf
diese Weise können Benutzer nicht auf alle Dateien und Ressourcen auf Ihrem
Server zugreifen. FTP-Verzeichnisse können von anonymen Benutzern zwar
gesehen werden, aber wenn Sie für bestimmte Verzeichnisse eine Zugriffssteue-
rung konfiguriert haben, dann dürfen sie den Inhalt der Verzeichnisse nicht
betrachten.
Wie im Verlaufe dieses Buches bereits erwähnt wurde, ist WebDAV ein Bestand-
teil von IIS 5.0. WebDAV ermöglicht den Remotezugriff auf Laufwerke, Ordner
und Dateien auf dem Server über das Internet. Wenn die Zugriffseinstellungen
dieses Bereichs nicht angemessen konfiguriert sind, dann sind Eindringlingen Tür
und Tor geöffnet. Weitere Informationen zur Konfiguration von WebDAV auf
Ihrem Server finden Sie in Kapitel 5.

Warnung
WebDAV kann sowohl auf FAT- als auch auf NTFS-formatierten Datenträ-
gern eingesetzt werden. Sie müssen allerdings FAT-formatierten Festplat-
ten verstärkt Aufmerksamkeit schenken, da auf der Dateiebene keine
Sicherheitsfunktionen vorhanden sind.
Kapitel 8 • Sicherheit 193

Abbildung 8.7 zeigt den Ablauf der Zugriffssteuerung. Dabei wurden die Stan-
dardsymbole für Flussdiagramme verwendet.

Clientanforderung

Nein
IP zugelassen?

Ja

Nein
Benutzer zugelassen?

Ja Zugriff verweigert

Nein
Webserver-Berechtigungen?

Ja

Nein
NTFS-Berechtigungen?

Ja

Zugriff gewährt

Abb. 8.7: Dieses Flussdiagramm zeigt Ihnen den Ablauf der Zugriffssteuerung

Die vier in Abbildung 8.7 gezeigten Berechtigungen bestimmen den Zugriff.


Wenn eine Anforderung empfangen wird, prüft IIS zunächst, ob Sie den Zugriff
für die IP-Adresse des anfordernden Clients gestattet oder verweigert haben. Ist
der Zugriff erlaubt, so wird die Überprüfung fortgesetzt, andernfalls wird der
Zugriff verweigert. Im Falle der Fortsetzung überprüft IIS, ob der Benutzer mit
dem angegebenen Benutzernamen auf die Ressource zugreifen darf. Falls ja, wer-
den nachfolgend die Webberechtigungen und – bei positiver Bewertung – auch
die NTFS-Berechtigungen überprüft.
Je nachdem, an welcher Stelle im Vorgang die Überprüfung wegen eines negati-
ven Ergebnisses abgebrochen wird, werden unterschiedliche Fehlermeldungen an
den Client gesendet. Fallen die Überprüfung der IP-Adresse, des Benutzernamens
oder der Webberechtigungen negativ aus, dann wird die Fehlermeldung 403 –
Verboten übergeben; bei unzureichenden NTFS-Berechtigungen erhält der Client
die Meldung 401 – Zugriff verweigert. Hier können Sie kreativ werden und die
Benutzer darüber informieren, welches Problem genau vorlag.
194 Zugriffssteuerung

In den folgenden Abschnitten wird im Detail erläutert, wie Sie diese Zugriffsbe-
schränkungen konfigurieren.

8.4.1 Dateien mit NTFS sichern


Von den Dateisystemen, die Windows 2000 verwenden kann, bietet NTFS den
höchsten Sicherheitsgrad. Wenn Ihr Laufwerk nicht NTFS-formatiert ist, lege ich
Ihnen eine Konvertierung nahe. Einige der Sicherheits- und Zugriffsfunktionen,
die im Folgenden erklärt werden, können nur mit NTFS, nicht jedoch in Verbin-
dung mit FAT- oder FAT32-formatierten Datenträgern verwendet werden.
Die Konvertierung eines FAT- oder FAT32-Laufwerks zu NTFS kann mit einer
Befehlszeileneingabe erfolgen. Beachten Sie jedoch, dass dieser Vorgang nicht
umkehrbar ist – wenn Sie einen NTFS-Datenträger zurückkonvertieren wollen,
bleibt Ihnen nichts anderes übrig, als ihn mit FAT bzw. FAT32 zu formatieren und
dann Windows 2000 neu zu installieren!
Geben Sie an der Eingabeaufforderung (oder im Fenster AUSFÜHREN) den folgen-
den Befehl ein:
convert.exe [laufwerk:] /fs:ntfs /v

[laufwerk:] bezieht sich dabei auf das zu konvertierende Laufwerk, also etwa c:.
Der Schalter /fs:ntfs teilt dem Programm schlicht und einfach mit, dass Sie eine
Konvertierung zu NTFS beabsichtigen. Die Option /v können Sie weglassen; sie
aktiviert lediglich den ausführlichen Modus (engl. »verbose«), der bei der Kon-
vertierung die entsprechenden Meldungen anzeigt.
Sie werden dann aufgefordert, den Server neu zu starten, um die Konvertierung
auszuführen. Die Konvertierung findet während des Neustarts statt – gehen Sie
also in Ruhe eine Tasse Kaffee trinken. Nach Abschluss des Vorgangs verfügen
Sie über wesentlich bessere Möglichkeiten zur Absicherung Ihrer Dateien und
Ordner.
Wenn Sie die NTFS-Sicherheitsfunktionen für Ihre Verzeichnisse und Dateien
einstellen wollen, müssen Sie über den Windows-Explorer oder den ARBEITS-
PLATZ darauf zugreifen. Klicken Sie also mit der rechten Maustaste auf das Ver-
zeichnis oder die Datei, für die Sie NTFS-Berechtigungen setzen wollen, und
wählen Sie dann aus dem Kontextmenü den Eintrag EIGENSCHAFTEN. Abbildung
8.8 zeigt die Registerkarte SICHERHEITSEINSTELLUNGEN des Dialogfeldes EIGEN-
SCHAFTEN VON MARKETING (d.h. das nachfolgende Beispiel bezieht sich auf
unsere Website Marketing).
Das Dialogfeld kommt Ihnen vielleicht bekannt vor; wir sahen es bereits weiter
oben in diesem Kapitel im Abschnitt »Authentifizierung implementieren und
konfigurieren« (siehe Abbildung 8.1). Das Listenfeld NAME oben auf der Regis-
terkarte listet die Konten auf, denen mindestens eine Berechtigung für die Res-
source (in diesem Fall der Ordner Marketing) erteilt wurde. Sie können über die
entsprechenden Schaltflächen Konten hinzufügen oder entfernen.
Kapitel 8 • Sicherheit 195

Abb. 8.8: Auf der Registerkarte SICHERHEITSEINSTELLUNGEN können Sie die NTFS-
Berechtigungen für Ordner und Dateien einstellen

Um die NTFS-Berechtigungen eines bestimmten Kontos für den Ordner Marke-


ting einzustellen, überprüfen Sie zunächst, ob das Konto im Listenfeld NAME auf-
geführt ist. In Abbildung 8.8 habe ich das Konto hmustermann@gkcomput.local
hinzugefügt und ein paar Berechtigungen dafür erstellt. Die Berechtigungen
Lesen, Ausführen, Lesen und Ordnerinhalt auflisten wurden explizit erteilt, die
Berechtigung Schreiben verweigert.
Einfach gesagt, kann Herr Mustermann also keine Dateien im Ordner Marketing
erstellen oder löschen; er kann sich aber den Inhalt des Verzeichnisses auflisten
lassen und Dateiinhalte betrachten. Dank der Berechtigung Lesen, Ausführen
kann er außerdem Anwendungen und Skripts ausführen, die im Ordner gespei-
chert sind.
Weitere Informationen zu NTFS-Berechtigungen finden Sie im folgenden
Abschnitt »NTFS-Berechtigungen für Dateien und Verzeichnisse«.

Warnung
Bei der Zuweisung der Berechtigung Lesen, Ausführen muss ein wichti-
ger Punkt beachtet werden. Wie bereits erwähnt, ermöglicht dies dem
Benutzer, Anwendungen auszuführen, die im Verzeichnis gespeichert
196 Zugriffssteuerung

sind. Wenn eine solche Anwendung allerdings eine DLL-Datei benötigt,


die in einem anderen Ordner gespeichert ist, dann wird sie nicht ausge-
führt.

8.4.2 NTFS-Berechtigungen für Dateien und Verzeichnisse


Wie Sie bisher gesehen haben, können Sie den Zugriff auf Dateien und Ordner
auf Ihrem Webserver mit Hilfe von NTFS-Berechtigungen gewähren oder verwei-
gern – dies ist der Hauptgrund für die Verwendung des Formats NTFS. FAT- und
FAT32-Partitionen verfügen nicht über die Dateiattribute, die notwendig sind, um
die erweiterten Sicherheitsmerkmale von NTFS zu aktivieren.
Mit NTFS können Sie Berechtigungen bis auf die Dateiebene hinab einsetzen.
Um diese Berechtigungen effizient nutzen zu können, sollten Sie genau wissen,
welche Berechtigungen wie implementiert und angewandt werden.
Wenn Sie nicht der Netzwerkadministrator sind, sind Sie in der Regel auch nicht
mit diesen Sicherheitsaspekten befasst; Sie wenden sich an Ihren Netzwerkadmi-
nistrator und bitten ihn, alle notwendigen Änderungen für Sie vorzunehmen.
Trotzdem bin ich der festen Überzeugung, dass Kenntnisse über NTFS-Berechti-
gungen auch für den Webadministrator sehr nützlich sind – insbesondere bei der
Lösung von Zugriffsproblemen. Wie man so schön sagt: Wenn man nicht weiß,
was kaputt ist, wie soll man es dann wieder richten?
NTFS verwendet für die Zuweisung von Zugriffsberechtigungen zusätzliche
Dateiattribute. Wenn es um den Zugriff auf Ressourcen im Active Directory oder
einer Windows 2000-Domäne geht, dann arbeiten Sie mit Zugriffssteuerungslis-
ten (ACLs). Diese Listen definieren die Berechtigungsebenen für Ressourcen.
Wie bereits im vorhergehenden Abschnitt erwähnt, weisen Sie dieser Ressource
ACLs zu, indem Sie die Berechtigungen ZULASSEN oder VERWEIGERN auf der
Registerkarte SICHERHEITSEINSTELLUNGEN einer Ressource markieren. Wenn
nun ein Benutzer versucht, auf die Ressource zuzugreifen, dann werden der
Benutzername und die Gruppe des Benutzers mit der ACL dieser Ressource ver-
glichen. Sind Benutzer- oder Gruppenname nicht aufgeführt, dann wird der
Zugriff verweigert.
Wenn das Konto vorhanden ist, vergleicht Windows 2000 die Zugriffsberechti-
gungen mit dem vom Benutzer initiierten Vorgang – hier kommen die jeweiligen
Berechtigungen ZULASSEN und VERWEIGERN ins Spiel.

Warnung
Wenn Sie unter Windows 2000 einen Ordner oder eine Datei erstellen,
wird der Gruppe Jeder die Berechtigung Vollzugriff auf diese Ressource
erteilt. Das bedeutet, dass, sofern Sie keine Zugriffsberechtigungen für
die Ressource konfigurieren, alle Benutzer die Ressource lesen, betrach-
ten, löschen und ändern oder sie in Besitz nehmen können. Die einzel-
nen Berechtigungen werden weiter unten erläutert.
Kapitel 8 • Sicherheit 197

Die Tabelle 8.2 zeigt die Fähigkeiten der einzelnen Berechtigungen an, die Sie für
Ressourcen auf dem Server erteilen können. Bestimmen Sie anhand der Tabelle,
welche Berechtigungen für Ihre Web- und FTP-Sites erteilt werden müssen.

Berechtigung Vollzu- Ändern Lesen, Lesen Schrei-


griff Ausführen ben
Ordner durchsuchen/ Ja Ja Ja Nein Nein
Datei ausführen
Ordner auflisten/Daten Ja Ja Ja Ja Nein
lesen
Attribute lesen Ja Ja Ja Ja Nein
Erweiterte Attribute Ja Ja Ja Ja Nein
lesen
Ordner/Dateien erstellen Ja Ja Nein Nein Ja
Attribute schreiben Ja Ja Nein Nein Ja
Erweiterte Attribute Ja Ja Nein Nein Ja
schreiben
Unterordner und Ja Nein Nein Nein Nein
Dateien löschen
Löschen Ja Ja Nein Nein Nein
Berechtigungen lesen Ja Ja Ja Ja Ja
Berechtigungen ändern Ja Nein Nein Nein Nein
Besitzrechte überneh- Ja Nein Nein Nein Nein
men
Synchronisieren Ja Ja Ja Ja Ja
Tab. 8.2: Berechtigungen für Ressourcen

8.4.3 Zugriff gewähren oder verweigern


Zugriffsbeschränkungen lassen sich unter IIS 5.0 aber nicht nur für bestimmte
Benutzer festlegen, sondern auch für einzelne oder mehrere Computer. Sie kön-
nen den Zugriff für alle außer einen oder mehrere bestimmte Computer wahl-
weise verweigern oder gewähren. Um eine entsprechende Konfiguration vorzu-
nehmen, müssen Sie im Dialogfeld EIGENSCHAFTEN einer Site die Registerkarte
VERZEICHNISSICHERHEIT auswählen. Abbildung 8.9 zeigt diese Registerkarte für
die Website der Marketingabteilung auf meinem Server.
Klicken Sie auf die Schaltfläche BEARBEITEN im Abschnitt BESCHRÄNKUNGEN
FÜR IP-ADRESSEN UND DOMÄNENNAMEN. Nun wird das gleichnamige Dialogfeld
(Abbildung 8.10) aufgerufen.
198 Zugriffssteuerung

Abb. 8.9: Auf der Registerkarte VERZEICHNISSICHERHEIT sind verschiedene


Sicherheitsfunktionen vorhanden, die den Zugriff auf Ihren Server regeln

Abb. 8.10: Im Dialogfeld BESCHRÄNKUNGEN FÜR IP-ADRESSEN UND DOMÄNENNAMEN


können Sie Computern anhand ihrer IP-Adresse den Zugriff gewähren
oder verweigern
Kapitel 8 • Sicherheit 199

In Abbildung 8.10 sehen Sie drei Einträge, für die der Zugriff auf meinen Server
verweigert wird. Der erste Eintrag betrifft alle Computer oder Benutzer aus der
Domäne netmail.com. Benutzer, bei denen dieser Domänenname in den Anmel-
deinformationen auftaucht, dürfen also auf meinen Server nicht zugreifen.

Hinweis
Ich muss gestehen, dass ich nicht überprüft habe, ob der Domänenname
netmail.com existiert; falls dies der Fall sein sollte, so sei gesagt, dass ich
weder der Domäne noch ihrem Betreiber gegenüber negative Gefühle
hege. Der Name wurde lediglich zu Demonstrationszwecken verwendet.

Der zweite Eintrag der Liste bezeichnet eine einzelne IP-Adresse


(142.166.17.25), der dritte einen IP-Adressbereich. Kein Computer im Netzwerk
192.168.2.0 darf auf meinen Server zugreifen. (Die Tatsache, dass dies tatsächlich
keinem einzigen Computer aus dem bezeichneten Netzwerk möglich ist, wird
durch die Netzmaske 255.255.255.0 begründet; weitere Hinweise hierzu finden
Sie in Kapitel 6.)
Beachten Sie, dass zwei Optionen für die Zugriffssteuerung vorhanden sind: Der
Zugriff wird wahlweise explizit gewährt oder verweigert. Wenn keine Einträge im
Listenfeld vorhanden sind, dann gibt es keine auf IP-Adressen basierenden
Zugriffsbeschränkungen für Ihre Web- oder FTP-Site.
Um der Liste einen Eintrag hinzuzufügen, klicken Sie auf die Schaltfläche HIN-
ZUFÜGEN. Nun wird das in Abbildung 8.11 gezeigte Dialogfeld aufgerufen.

Abb. 8.11: Das Dialogfeld ZUGRIFF VERWEIGERN FÜR mit den drei
Optionsmöglichkeiten für die Zuweisung von Zugriffsbeschränkungen

Die erste Option wird für die Verweigerung des Zugriffs durch einen einzigen,
durch seine IP-Adresse identifizierten Computer benutzt. Sie können hier die
IP-Adresse des Computers eingeben, der keinen Zugriff erhalten soll, oder Sie
führen über DNS-SUCHE einen DNS-Lookup aus – in diesem Fall sucht
Windows 2000 nach einem DNS-Server, um die IP-Adresse aufzulösen.
200 Zugriffssteuerung

Die zweite Option MEHRERE COMPUTER ändert das Aussehen des Dialogfeldes
ein wenig, wie aus Abbildung 8.12 ersichtlich.

Abb. 8.12: Die Option MEHRERE COMPUTER erlaubt die Eingabe einer Netzwerk-ID
und einer Subnetzmaske

Mit dieser Option können Sie den Zugriff basierend auf der Netzwerkadresse und
der Subnetzmaske beschränken. Dies ist die beste Möglichkeit, eine ganze
Gruppe von IP-Adressen von Ihrem Server auszusperren.
Die dritte Option gestattet die Konfiguration einer Beschränkung anhand des voll-
ständig qualifizierten Domänennamens.
Mit jeder dieser drei Methoden können Sie den Zugriff auf Ihren Server steuern.

Hinweis
Wenn Sie keinerlei Sicherheitseinstellungen für die Ordner und Dateien
auf Ihrer Website konfiguriert haben und nun die beschriebenen Zugriffs-
beschränkungen anwenden, dann erben diese Ordner und Dateien die
Sicherheitseinstellungen der Web- bzw. FTP-Site.

8.4.4 Webserverberechtigungen
Wir haben bislang eine Menge über NTFS-Berechtigungen geredet. Im folgenden
Abschnitt nun geht es um Webserverberechtigungen. Es gibt einen Unterschied
zwischen diesen beiden Berechtigungsarten, und den sollten Sie kennen.
NTFS-Berechtigungen werden auf gültige Windows 2000-Benutzerkonten ange-
wandt. Wenn einer Ihrer Benutzer auf Ihren Server zugreift und dazu ein Konto
benutzt, das auf diesem Server gespeichert ist, dann erfolgt die Zugriffssteuerung
für diesen Benutzer auf der Basis der NTFS-Berechtigungen.
Die meisten Benutzer, die auf einen Webserver zugreifen, tun dies jedoch über
das Internet – mit anonymer Anmeldung. Mit anderen Worten, wenn ein Benutzer
Kapitel 8 • Sicherheit 201

auf öffentlich zugängliche Webseiten zugreifen will, dann muss er keine Kombi-
nation aus Benutzernamen und Kennwort eingeben. Dieser anonyme Zugriff
macht sich das Spezialkonto IUSR_computername auf dem Server zunutze. Auf
meinem Server heißt dieses Konto IUSR_computer.

Hinweis
Wenn Sie für ein und dieselbe Ressource sowohl Webserver- als auch
NTFS-Berechtigungen zugewiesen haben, dann wird die restriktivere
dieser beiden Berechtigungsarten angewandt.

Um die Webserverberechtigungen zu konfigurieren, öffnen Sie das Dialogfeld


EIGENSCHAFTEN der betroffenen Website. Wählen Sie dort die anwendbare
Registerkarte BASISVERZEICHNIS (Abbildung 8.13), VERZEICHNIS oder VIRTUEL-
LES VERZEICHNIS.

Abb. 8.13: Auf der Registerkarte BASISVERZEICHNIS können Sie die Optionen für die
Webserverberechtigungen konfigurieren
202 Zugriffssteuerung

Die Berechtigungen werden als Kontrollkästchen im mittleren Abschnitt der


Registerkarte unterhalb des Textfeldes LOKALER PFAD angezeigt. Die folgenden
Berechtigungen sind vorhanden:
• Skriptzugriff. Wenn Benutzer Schreib- und Leserechte haben und Sie dieses
Kontrollkästchen markieren, dann können die Benutzer auf den Quellcode Ih-
rer ASP-Anwendungen zugreifen.
• Lesen. Erlaubt es den Benutzern, Ihre Webseiten zu lesen und Dateien herun-
terzuladen.
• Schreiben. Erlaubt es den Benutzern, Dateien in ein Verzeichnis auf dem Ser-
ver hochzuladen und den Inhalt nicht schreibgeschützter Dateien zu modifizie-
ren.
• Verzeichnis durchsuchen. Benutzer können sich ein Listing der Ordner und
Unterordner im Hypertextformat anzeigen lassen. Virtuelle Verzeichnisse tau-
chen in diesen Listings nicht auf. Wenn ein Benutzer aber den Namen eines
solchen virtuellen Verzeichnisses kennt, dann kann er darauf zugreifen.
• Besuche protokollieren. Diese Option ist eigentlich keine Zugriffsberechti-
gung, sondern ermöglicht Ihnen die Verwendung von Protokollierungsfunkti-
onen für eine Site oder ein Verzeichnis.
• Ressource indizieren. Auch dies ist keine Zugriffsberechtigung. Sie können
dem Indexdienst durch Markieren dieses Kontrollkästchens mitteilen, dass er
das Verzeichnis indizieren soll. Dadurch gestatten Sie Clients das Durchsu-
chen des Verzeichnisinhalts.
In Abschnitt ANWENDUNGSEINSTELLUNG befindet sich eine weitere Option, die
Sie im Zusammenhang mit den Webserverberechtigungen beachten müssen. Das
Listenfeld AUSFÜHRBERECHTIGUNGEN konfiguriert die Berechtigungen für
Anwendungen, die auf dem Server ausgeführt werden. Hier finden Sie drei Optio-
nen vor:
• Keine. Diese Option gestattet keinerlei Ausführung von Skripts oder Anwen-
dungen auf dem Server. Hierbei handelt es sich zwar um die sicherste aller Be-
rechtigungen, aber sie beschränkt Ihren Server auf die Bereitstellung statischer
Webseiten.
• Nur Skripts. Diese Option gestattet die Ausführung von Skripts (etwa ASP-
Skripts) auf Ihrem Server.
• Skripts und ausführbare Dateien. Diese Option gestattet die Ausführung von
ASP- und CGI-Skripts wie auch von Anwendungen auf dem Server.
Im Sinne einer optimalen Serversicherheit sollten Sie diese Optionen mit Bedacht
auswählen.
Kapitel 8 • Sicherheit 203

Wenn Sie alle notwendigen Einstellungen vorgenommen haben, klicken Sie auf
die Schaltfläche OK, um sie zu übernehmen.

Warnung
Manchmal beinhalten ASP-Skripts die Benutzung von Kennwörtern, die
unverschlüsselt angezeigt werden. Beachten Sie dies bei der Aktivierung
der Berechtigung Skriptzugriff, da Kennwörter auf diese Weise im Skript
sichtbar werden.

8.4.5 Datenbankzugriff steuern


Das Laden und Speichern von Daten macht in der Regel einen Gutteil einer Web-
site aus. Vielleicht verwenden Sie auf Ihrer Site zur Speicherung von Produkten,
die im Rahmen Ihres Onlineshops angezeigt werden, eine Datenbank. Vielleicht
legen Sie dort auch Kundendaten wie etwa Namen und Kennwörter ab, mit denen
sich Ihre Benutzer dann authentifizieren können.
Gute Gründe für die Verwendung von Datenbanken gibt es viele. Sie müssen sich
allerdings der Tatsache bewusst sein, dass es auch möglich ist, mit anderen
Methoden als denen, die Sie auf Ihren Seiten anbieten, auf Ihre Datenbank zuzu-
greifen.
Stellen Sie sich einen großen Computerhersteller vor, der Komplettsysteme, kun-
denspezifische Systeme und Einzelkomponenten über seine Website im Internet
vertreibt. Um die Administration zu erleichtern, möchte man in dieser Firma
gerne eine Datenbank auf dem Server benutzen, in der alle Komponenten und die
zugehörigen Preise gespeichert werden.
Unter IIS 5.0 ist es viel einfacher geworden, den in einer Datenbank gespeicher-
ten Preis mit ASP abzurufen und diese Daten dann anzuzeigen. Auf diese Weise
können Sie die gleichen Daten auf mehr als einer Seite der Site verwenden und
diese Daten bei Bedarf zentral aktualisieren.
Für eine Site, die ich momentan erstelle, verwenden wir beispielsweise eine
Tabelle in der Datenbank, in welcher der Name des Produkts oder der Kompo-
nente sowie der Großhändlerpreis gespeichert sind. Ich verwende nun eine Tabel-
lenabfrage, um Namen und Preis einer Komponente zu holen, führe dann einen
prozentualen Aufschlag auf den Preis durch und gebe diesen Wert in eine Variable
ein, die dem Client dann anstelle des Großhändlerpreises angezeigt wird.
Was ich hier gemacht habe, ist nichts anderes als eine Reduzierung der Arbeit, die
bei einer Aktualisierung der Preise oder der Gewinnspanne anfällt. Der Kunde
bekommt von der Ermittlung des Endpreises nichts mit – die findet sozusagen
hinter verschlossenen Türen statt.
Durch diese Vorgehensweise gehe ich jedoch das Risiko ein, dass meine Daten
auf eine von mir nicht beabsichtigte Weise betrachtet werden. Wenn ein Benutzer
weiß (oder annimmt), dass irgendwo eine Backend-Datenbank vorhanden ist,
204 Verschlüsselung

dann könnte er in meinen Server eindringen und sich diese – privaten – Daten wie
etwa Großhandelspreise oder Preisaufschläge ansehen.
Aus Gründen wie diesem muss man seine Datenbank und die zugehörigen
Dateien schützen. Die verschiedenen Methoden, die zur Absicherung einer
Datenbank und der zugehörigen Daten vorhanden sind, werden im Folgenden
beschrieben.
Verwenden Sie in jedem Fall alle Sicherheits- und Autorisierungsfunktionen, die
Ihnen Ihre Datenbank anbietet. SQL beispielsweise kann den Benutzer zur Ein-
gabe eines gültigen Benutzernamens und eines Kennworts auffordern. Wenn Sie
Ihre Daten schützen wollen, ohne Benutzer, die Ihre Site mit einem Browser
durchstöbern, mit solchen Eingaben zu belasten, dann können Sie den Benutzer-
namen und das Kennwort in einer ASP-Skriptdatei ablegen. Beachten Sie aber,
dass dies keine hundertprozentige Lösung ist, denn ASP-Skripts speichern diese
Daten unverschlüsselt.
Wie Sie bereits weiter oben gesehen haben, können Sie Ihre Dateien mit NTFS-
Berechtigungen schützen.
Der Datenbankzugriff auf einem Webserver verlangt die Verwendung eines DSN
(Data Source Name, Datenquellenname). Stellen Sie sicher, dass die Datei, die
den DSN enthält, sicher vor unberechtigtem Zugriff geschützt ist, denn sie enthält
den Benutzernamen und das Kennwort für den Datenbankzugriff.
Es wurde bereits erwähnt, dass ASP-Skripts den Benutzernamen und das Kenn-
wort unverschlüsselt enthalten. Sie können trotzdem sicherstellen, dass diese
Dateien geschützt sind. Ich empfehle Ihnen, Ihre ASP-Skriptdateien in eine
COM-Komponente zu konvertieren und diese für den Datenbankzugriff zu ver-
wenden. Weitere Informationen zu COM-Komponenten finden Sie im IIS-Soft-
ware Development Kit.
Mit diesen Methoden können Sie garantieren, dass Ihre Daten sicher auf dem Ser-
ver liegen, ohne den Zugriff Unbefugter befürchten zu müssen.

8.5 Verschlüsselung
Wenn in Zusammenhang mit IIS von Verschlüsselung die Rede ist, dann ist damit
nicht die Möglichkeit gemeint, Daten oder Dateien auf dem Server zu verschlüs-
seln. Statt dessen bezeichnet Verschlüsselung in diesem Kontext die Verwendung
von SSL (Secure Sockets Layer) zur Verschlüsselung von Daten, bevor diese über
ein Netzwerk – sei es ein Intranet oder das Internet – verschickt werden.
Natürlich wollen wir dabei nicht die Daten öffentlich verfügbarer Websites ver-
schlüsseln, denn die dabei auftretende Mehrbelastung ist sehr hoch, und nicht alle
Clients unterstützen die Verschlüsselung. Wenn allerdings ein Außendienstmitar-
beiter Ihrer Firma über das Internet eine Verbindung zur Website herstellt, um
Kapitel 8 • Sicherheit 205

vertrauliche Daten einzugeben, dann werden Sie in diesem Fall ganz sicher eine
Verschlüsselung wünschen, um sicherzustellen, dass niemand spioniert.
Um die Verschlüsselung besser veranschaulichen zu können, möchte ich Ihnen
kurz ein paar Hintergrundinformationen geben.
In ihrer grundlegenden Form besteht die Kunst der Verschlüsselung darin, Infor-
mationen derart durcheinander zu bringen, dass sie für niemanden mit Ausnahme
des anvisierten Empfängers verständlich sind. Die ersten Versuche auf diesem
Gebiet wurden während der diversen Kriege vorgenommen. Sender und Empfän-
ger verständigten sich über eine Kodierungsmethode für Mitteilungen, damit
diese jedem Leser, der den Code nicht kannte, völlig sinnlos erschienen. Diese
frühen Codes waren meist mathematischer Natur, d.h. wenn der Absender seine
Nachricht kodierte, dann wandte er eine mathematische Formel an, um die Rei-
henfolge der Buchstaben zu ändern; auf diese Weise wurde die Nachricht unleser-
lich. Der Empfänger benutzte nun eine ähnliche Formel, die die Arbeit des
Absenders rückgängig machte und so die Mitteilung wieder in den Ursprungszu-
stand brachte.
Dieser Ansatz funktionierte eine Weile, hatte aber einen ganz wesentlichen Nach-
teil, denn der Code konnte »mit brutaler Gewalt« geknackt werden; diese
Methode bestand darin, mit möglichst vielen Leuten möglichst jede denkbare
Kombination zur Dekodierung der Nachricht auszuprobieren. Nebenbei: Heutzu-
tage können diese einfachen Codes innerhalb von Sekunden, maximal von Minu-
ten von konventionellen PCs enträtselt werden.
Auch die heutzutage verwendete Verschlüsselung basiert nach wie vor auf mathe-
matischen Formeln. Diese aber sind weitaus komplexer und gegenüber brutaler
Gewalt nahezu unempfindlich. Einer der Gründe dafür ist die so genannte »Ver-
schlüsselungsstärke«. Diese wird in Bit ausgedrückt und verweist auf die Länge
des bei der Ver- und Entschlüsselung der Daten verwendeten Codeschlüssels. Die
momentan stärkste Verschlüsselung unter IIS 5.0 ist 128 Bit stark. Ein Benutzer,
der derart kodierte Daten entschlüsseln will, muss den Schlüssel haben. Es ist
nicht unmöglich, die 128-Bit-Verschlüsselung zu knacken. Allein die Zeit, die
auch mit heutiger Computertechnologie zur Entschlüsselung benötigt würde,
wäre so lang, dass die Daten bei erfolgter Dekodierung inzwischen wertlos sind.
IIS verwendet die so genannte »Verschlüsselung mit öffentlichem Schlüssel«.
Diese Methode benutzt zwei Schlüssel, nämlich einen öffentlichen und einen pri-
vaten. Der private Schlüssel liegt auf dem Server und wird zur Ver- und Ent-
schlüsselung von Daten benutzt, die an einen Client gesendet bzw. durch diesen
empfangen wurden.
Während einer Kommunikationssitzung, die mit SSL arbeitet, gibt der Webbrow-
ser eine Anfrage nach einer sicheren Verbindung mit dem Server aus, indem er
statt des normalen Header http:// den HTTPS-Protokollheader verwendet. Server
und Client handeln daraufhin die Verschlüsselungsstärke aus.
206 Verschlüsselung

Wenn diese Verhandlung abgeschlossen ist, sendet der Server dem Browser einen
öffentlichen Schlüssel. Mit diesem Schlüssel kodiert der Browser die Daten, die
er dann an den Server sendet, und der Server seinerseits kann dann mit seinem
privaten Schlüssel die Daten dekodieren. Sowohl Server als auch Client verwen-
den während der Sitzung einen »Sitzungsschlüssel«. Mit dem Abschluss der Sit-
zung endet auch die Gültigkeit des Schlüssels.

Warnung
Das schwache Glied in der Sicherheitskette ist bei der Verschlüsselung
mit öffentlichem Schlüssel der private Schlüssel auf dem Server. Es ist
absolut unabdingbar, diesen privaten Schlüssel vor der Entdeckung zu
schützen – verwenden Sie hierzu die stärkste Verschlüsselungsmethode,
die Ihnen zur Verfügung steht.

8.5.1 Verschlüsselung aktivieren


Die Verschlüsselung wird auf dem Server aktiviert, wenn ein Client eine Anforde-
rung stellt, bei der ein URL mit einem einführenden https:// in der Adresszeile des
Browsers steht. Wenn Sie die Verschlüsselung auf dem Server nicht aktiviert
haben, dann wird sie im Verlauf der Sitzung auch nicht verwendet.
Damit Sie die Verschlüsselungsfunktion nutzen können, muss ein Serverzertifikat
auf Ihrem Server installiert sein. Wie Sie Zertifikate erwerben, ist im Abschnitt
»Zertifikate« weiter unten in diesem Kapitel beschrieben.
Gehen Sie wie folgt vor, um die Verschlüsselung zu aktivieren:
1. Erwerben und installieren Sie ein Serverzertifikat.
2. Öffnen Sie das Dialogfeld EIGENSCHAFTEN der Website, des Verzeichnisses
oder der Datei, die Sie mit Hilfe der Verschlüsselung schützen wollen.
3. Aktivieren Sie die Registerkarte VERZEICHNISSICHERHEIT (Abbildung 8.14)
und klicken Sie dort im Abschnitt SICHERE KOMMUNIKATION auf die Schalt-
fläche BEARBEITEN. Wenn die Schaltfläche abgeblendet ist, dann befindet sich
auf Ihrem Server kein installiertes Zertifikat.
4. Aktivieren Sie im Dialogfeld SICHERE KOMMUNIKATION (Abbildung 8.15) das
Kontrollkästchen SICHEREN KANAL VERLANGEN (SSL).
5. Weisen Sie alle Benutzer, die sich mit dieser Website verbinden wollen, zur
Verwendung von https:// anstelle von http:// an.
Kapitel 8 • Sicherheit 207

Abb. 8.14: Das Dialogfeld EIGENSCHAFTEN VON WEBSITE FÜR DIE


MARKETINGABTEILUNG. Hier können Sie auf der Registerkarte
VERZEICHNISSICHERHEIT die Verschlüsselung mit Hilfe von
Serverzertifikaten aktivieren.

Abb. 8.15: Im Dialogfeld SICHERE KOMMUNIKATION aktivieren Sie SSL für Ihre
Website
208 Zertifikate

8.5.2 Verschlüsselungsstärke
Die Verschlüsselungsstärke spielt bei der sicheren Kommunikation eine wichtige
Rolle. Standardmäßig verwendet IIS eine Verschlüsselungsstärke von 40 Bit. Sie
können diese durch Markierung des Kontrollkästchens 128-BIT-VERSCHLÜSSE-
LUNG ERFORDERLICH im Dialogfeld SICHERE KOMMUNIKATION (Abbildung 8.15)
auf 128 Bit erhöhen. Je größer Ihre Verschlüsselungsstärke, desto besser ist die
Kommunikation geschützt.
Banken können einer Erweiterung von SSL benutzen, die als SGC (Server-Gated
Cryptography) bekannt ist. Diese Methode verwendet die 128-Bit-Verschlüsse-
lung, kann aber auch mit der 40-Bit-Verschlüsselung arbeiten. Wenn Sie SGC
nutzen wollen, müssen Sie sich an Ihre Zertifizierungsstelle wenden und ein
SGC-Zertifikat anfordern.

8.6 Zertifikate
Das Thema Zertifikate wurde bereits im vorhergehenden Abschnitt angesprochen.
Die Verwendung von Zertifikaten gestattet es einem Browser und einem Server,
mit Hilfe einer digitalen Signatur ihre Identität zu bestätigen. Es gibt zwei grund-
legende Typen von Zertifikaten:
• Serverzertifikate. Serverzertifikate liegen auf dem Server und erfüllen drei
Funktionen: Sie authentifizieren Benutzer auf dem Server, können Webinhalte
verifizieren und werden zur Herstellung einer sicheren Kommunikation mit
SSL oder SGC benutzt.
• Clientzertifikate. Mit Clientzertifikaten, die auf dem Clientrechner liegen,
können sich Benutzer gegenüber dem Server ausweisen. Auch Clientzertifikate
werden durch eine Zertifizierungsstelle ausgegeben. Das Clientzertifikat und
der öffentliche Schlüssel, den ein Server ausstellt, agieren zusammen als
Schlüsselpaar für die sichere Kommunikation. Das Clientzertifikat enthält In-
formationen zur Identifikation des Benutzers, die ausstellende Zertifizierungs-
stelle, einen öffentlichen Schlüssel, eine Seriennummer und ein Ablaufdatum.

8.6.1 SSL konfigurieren


Die unter IIS 5.0 verwendete Version 3.0 von SSL dient der Verifizierung Ihrer
Webinhalte, der Benutzerauthentifizierung und der Verschlüsselung zu übertra-
gender Daten. Um SSL mit IIS 5.0 nutzen zu können, müssen Sie ein paar Instal-
lations- und Konfigurationsarbeiten durchführen.
Zunächst benötigen Sie ein Serverzertifikat, das auf Ihrem IIS-Server zu installie-
ren ist. Sie erhalten solche Zertifikate bei Zertifizierungsstellen wie etwa Veri-
Sign. Auf der Website von Microsoft finden Sie unter http://backoffice.micro-
soft.com/securitypartners/ eine nach Namen und Produkten sortierte Liste mit
Zertifikatsausstellern.
Kapitel 8 • Sicherheit 209

VeriSign bietet für Kunden, die erst einmal überprüfen wollen, ob dies das rich-
tige für sie ist, eine Testversion an, die nach 14 Tagen abläuft. Gehen Sie dazu auf
die Website von VeriSign (http://www.verisign.com) und wählen Sie dort unter
Web Server Certificates den Hyperlink Free Trial.
Wenn Sie bereits ein Zertifikat auf Ihrem Server installiert haben, können Sie die-
ses nun konfigurieren. Öffnen Sie hierzu das Dialogfeld EIGENSCHAFTEN der
Website, auf der Sie das Zertifikat verwenden wollen. Pro Website können Sie nur
ein Zertifikat benutzen.
Wählen Sie die Registerkarte VERZEICHNISSICHERHEIT und klicken Sie auf die
Schaltfläche BEARBEITEN im Abschnitt SICHERE KOMMUNIKATION. Im nun
erscheinenden Dialogfeld SICHERE KOMMUNIKATION markieren Sie das Kontroll-
kästchen SICHEREN KANAL VERLANGEN (SSL), um SSL und das Zertifikat zu
aktivieren. Sie können hier außerdem die Option 128-BIT-VERSCHLÜSSELUNG
ERFORDERLICH anklicken. Hinweise zur 128-Bit-Verschlüsselung finden Sie wei-
ter oben in diesem Kapitel.
Sie haben SSL nun auf Ihrem Rechner konfiguriert. Aber Moment… was, wenn
Sie kein Zertifikat haben? Wo können Sie das denn dann erwerben? Weiter unten
in diesem Kapitel wird im Abschnitt »Serverzertifikate erwerben« beschrieben,
wie Sie sich Zertifikate von Drittanbietern beschaffen. Zuerst aber wollen wir uns
mit den neuen Sicherheits-Assistenten beschäftigen, die mit IIS 5.0 ausgeliefert
werden.

8.6.2 Die Sicherheits-Assistenten verwenden


IIS 5.0 hat drei neue Assistenten, die die Erfüllung sicherheitsrelevanter Aufga-
ben ein wenig erleichtern sollen. Den IIS-ZERTIFIKATS-ASSISTENTEN beispiels-
weise können Sie verwenden, um ein Zertifikat von einem Drittanbieter zu erwer-
ben und auf Ihrem Server zu installieren. Der Assistent erstellt gemeinsam mit
Ihnen eine Zertifikatsanforderung, mit der Sie dann bei einer Zertifizierungsstelle
ein Zertifikat beantragen können.
Wenn Sie zum Zeitpunkt der Anforderungserstellung nicht mit dem Internet ver-
bunden sind, dann können Sie die Anforderung in einer Textdatei speichern und
später an die Zertifizierungsstelle senden. Dieser Vorgang wird im Verlauf dieses
Abschnitts beschrieben, wenn wir eine Zertifikatsanforderung an VeriSign senden
werden.
Zu IIS gehört auch ein ASSISTENT FÜR ZERTIFIKATSVERTRAUENSLISTEN, mit dem
Sie eine Liste vertrauenswürdiger Zertifizierungsstellen für jede Website verwal-
ten können. Auf diese Weise können Sie für jede Website separat festlegen, wel-
che Zertifizierungsstellen vertrauenswürdig sind und welche nicht.
Der letzte Assistent – der BERECHTIGUNGS-ASSISTENT – dient zur Verwaltung der
Zugriffsberechtigungen auf Ihrem IIS-Server. Er bietet einen szenariobasierten
Ansatz zur Anwendung der Berechtigungen auf die jeweilige Site. Dabei werden
210 Zertifikate

zwei Szenarios unterschieden: Das erste Szenario beschreibt eine Site, bei der die
Öffentlichkeit auf die Serverinhalte zugreifen kann. Im zweiten Szenario sind die
Sicherheitsanforderungen hingegen strenger; es basiert auf der Idee, für den
Zugriff auf vertrauliche Daten ein Extranet über das Internet zu betreiben.
Jeder der Assistenten geleitet Sie in einem schrittweisen Prozess mit simplen Ein-
gabefenstern durch den jeweiligen Konfigurationsvorgang. Auf diese Weise wird
die Bearbeitung sicherheitsrelevanter Aufgaben fast zum Kinderspiel.

8.6.3 Serverzertifikate erwerben


Wie bereits oben erwähnt, können Sie ein Zertifikat für Ihren IIS-Server bei
einem Drittanbieter erwerben. Es gibt eine ganze Reihe solcher Zertifizierungs-
stellen, unter denen Sie frei wählen können. Um Ihnen zu zeigen, wie Sie ein Zer-
tifikat erwerben, werden wir uns im Folgenden ein Testzertifikat bei VeriSign
beschaffen.
Die erste Aufgabe dieses Vorgangs besteht darin, mit Hilfe des IIS-ZERTIFIKATS-
ASSISTENTEN eine Zertifikatsanforderung zu erstellen. Um den Assistenten auf-
zurufen, öffnen Sie das Dialogfeld EIGENSCHAFTEN der gewünschten Website und
wählen die Registerkarte VERZEICHNISSICHERHEIT. Klicken Sie auf die Schaltflä-
che SERVERZERTIFIKAT im Abschnitt SICHERE KOMMUNIKATION.
Nun wird der Assistent aufgerufen. Klicken Sie im Begrüßungsfenster auf WEI-
TER,um das Fenster SERVERZERTIFIKAT (Abbildung 8.16) aufzurufen.
Da wir uns ein neues Zertifikat besorgen wollen, lassen Sie die Standardoption
NEUES ZERTIFIKAT ERSTELLEN selektiert. Klicken Sie auf WEITER, um zum Fens-
ter VERZÖGERTE ODER SOFORTIGE ANFORDERUNG zu wechseln. Hier legen Sie
fest, ob Sie die Anforderung sofort vornehmen oder aber eine Anforderungsdatei
für den späteren Gebrauch erstellen wollen. Wenn Sie nicht mit dem Internet ver-
bunden sind, dann müssen Sie die voreingestellte Option ANFORDERUNG JETZT
VORBEREITEN, ABER SPÄTER SENDEN beibehalten. Klicken Sie auf WEITER.

Im nächsten Fenster NAME UND SICHERHEITSEINSTELLUNGEN können Sie einen


Namen für das neue Zertifikat eingeben. Standardmäßig ist hier der Name der
Website angegeben. Weiter unten können Sie dann die BITLÄNGE auswählen. Hier
ist der Standard 512, aber ich empfehle Ihnen, eine Länge von 1.024 Bit zu wäh-
len, um die Sicherheit zu verbessern. Wenn Sie die Verwendung von Exportfunk-
tionen eines Zertifikats beabsichtigen, können Sie ganz unten im Dialogfeld auch
die Option SGC (SERVER GATED CRYPTOGRAPHY)-ZERTIFIKAT markieren. Kli-
cken Sie nun auf WEITER.
Im nächsten Bildschirm werden Sie zur Eingabe Ihrer ORGANISATION UND
ORGANISATIONSEINHEIT aufgefordert; diese Angaben werden Bestandteil des
Zertifikats sein. Klicken Sie nach Eingabe der benötigten Daten auf die Schaltflä-
che WEITER.
Kapitel 8 • Sicherheit 211

Abb. 8.16: Mit dem IIS-ZERTIFIKATS-ASSISTENTEN können Sie ein neues Zertifikat
erstellen, ein vorhandenes hinzufügen oder ein Zertifikat importieren

Das nächste Fenster heißt GEMEINSAMER NAME IHRER SITE. Wenn Sie den Server
im Internet nutzen werden, dann geben Sie hier den vollqualifizierten Domänen-
namen ein. Verwenden Sie den Server hingegen nur im Intranet, dann können Sie
den NetBIOS-Namen verwenden. Mit einem Klick auf WEITER setzen Sie den
Vorgang fort.
Im Fenster GEOGRAPHISCHE INFORMATIONEN werden Sie zur Eingabe der Daten
LAND/REGION, BUNDESLAND/KANTON und STADT aufgefordert. Wenn Sie
danach auf WEITER klicken, müssen Sie noch einen Pfad und einen Dateinamen
für Ihre Anforderungsdatei angeben, d.h. für die Datei, die Sie zwecks Ausstel-
lung des Zertifikats an die Zertifizierungsstelle senden. Sie können hier den vor-
geschlagenen Pfad und Dateinamen übernehmen; bedenken Sie dabei aber, dass
Sie später wissen müssen, in welchem Verzeichnis Sie die Datei gespeichert
haben.
Wenn Sie die Erstellung der Anforderungsdatei fertig gestellt haben, dann können
Sie das Zertifikat anfordern. Stellen Sie zu diesem Zweck eine Verbindung mit
der Website von VeriSign (http://www.verisign.com) her. Dort werden Sie im
Verlauf des Antragsvorgangs aufgefordert, die auf Ihrem Server liegende Anfor-
derungsdatei zu übergeben. Dies tun Sie, indem Sie diese Datei mit einem Editor
öffnen – etwa dem Windows-Editor (Notepad). Kopieren Sie den Inhalt der Datei
in die Zwischenablage und fügen Sie die verschlüsselten Daten dann in das ent-
sprechende Textfeld auf der Webseite von VeriSign ein. Abbildung 8.17 zeigt den
Editor mit dem Inhalt meiner Anforderungsdatei.
212 Zertifikate

Abb. 8.17: Die Zertifikatsanforderung ist eine verschlüsselte Textdatei, die alle mit
dem ZERTIFIKATS-ASSISTENTEN eingegebenen Daten enthält

Wie Sie in Abbildung 8.17 sehen, ist die Datei verschlüsselt. Dadurch wird ver-
hindert, dass Ihre Daten während der Übertragung von Unberechtigten mitgelesen
werden.
VeriSign verifiziert alle von Ihnen gemachten Angaben, bevor Ihnen das Zertifi-
kat für Ihren Server zugestellt wird. Wenn Sie – wie ich – das Testzertifikat
bestellt haben, dann sollten Sie es binnen einer Stunde via E-Mail erhalten. Die
Zertifikatsdaten befinden sich – wiederum in verschlüsselter Form – im unteren
Teil der Ihnen von VeriSign zugesandten E-Mail. Diese Daten verwenden Sie zur
Installation des Zertifikats auf Ihrem Server – kopieren Sie sie wieder in die Zwi-
schenablage und fügen Sie sie dann im Editor in ein leeres Textdokument ein.
Speichern Sie dieses Dokument anschließend in einem Verzeichnis, auf das Sie
zugreifen können. Ich habe meine Datei cert.txt genannt, um sie schneller wieder-
zufinden.
Begeben Sie sich nun wieder auf die Registerkarte VERZEICHNISSICHERHEIT des
Dialogfeldes EIGENSCHAFTEN Ihrer Website und klicken Sie erneut auf die
Schaltfläche SERVERZERTIFIKAT. Wenn Sie im Begrüßungsfenster auf WEITER
geklickt haben, sehen Sie ein bis dato unbekanntes Fenster (Abbildung 8.18).
Kapitel 8 • Sicherheit 213

Abb. 8.18: Im Fenster AUSSTEHENDE ZERTIFIKATSANFORDERUNG können Sie eine


ausstehende Anforderung verarbeiten oder löschen

Lassen Sie die Standardoption AUSSTEHENDE ANFORDERUNG VERARBEITEN UND


ZERTIFIKAT INSTALLIEREN selektiert und klicken Sie auf WEITER. Sie werden nun
zur Eingabe des Pfades und Namens der Antwortdatei aufgefordert – also derjeni-
gen Datei, die Sie weiter oben auf der Basis der von VeriSign erhaltenen E-Mail
erstellt haben. Wählen Sie die Datei aus und klicken Sie auf WEITER, um die
Installation fertig zu stellen. Sie sollten nun das Fenster ZUSAMMENFASSUNG
(Abbildung 8.19) sehen.
Wenn Sie das Zertifikat installiert haben, können Sie die Zertifikatsdaten nach
Anklicken der Schaltfläche ZERTIFIKAT ANZEIGEN, die Sie auf der Registerkarte
VERZEICHNISSICHERHEIT im Abschnitt SICHERE KOMMUNIKATION finden,
betrachten. Sie können nach Anklicken der Schaltfläche BEARBEITEN auch die
SSL-Verschlüsselung aktivieren. Abbildung 8.20 zeigt das Serverzertifikat, dass
ich von VeriSign erhalten habe.
Wie Sie sehen, gilt dieses Zertifikat nur für 14 Tage, denn es handelt sich ledig-
lich um eine Testversion. Sie können die Registerkarte DETAILS auswählen, um
sich detaillierte Angaben zum Zertifikat anzeigen zu lassen, etwa die Seriennum-
mer, Angaben zum öffentlichen Schlüssel und den Fingerabdruck.
214 Zertifikate

Abb. 8.19: Das Fenster ZUSAMMENFASSUNG zeigt die Details des installierten
Zertifikats an

Abb. 8.20: Das Fenster ZERTIFIKAT zeigt ein paar allgemeine Angaben zum Zertifikat
an, so etwa den Aussteller, den Server, für den das Zertifikat ausgestellt
wurde, und das Ablaufdatum
Kapitel 8 • Sicherheit 215

8.6.4 Zertifikatsvertrauenslisten
Mit Zertifikatsvertrauenslisten können Sie eine Liste von Zertifizierungsstellen
anlegen, die Zertifikate für Ihre Server ausstellen. Sie können bei Bedarf für jede
Website eine individuelle Liste mit Zertifizierungsstellen einrichten. Die Funktion
ermöglicht Ihren Servern eine automatische Verifizierung von Clients anhand der
Zertifikatsvertrauensliste. Erstellt und editiert werden die Zertifikatsvertrauenslis-
ten mit dem ASSISTENTEN FÜR ZERTIFIKATSVERTRAUENSLISTEN.

Hinweis
Zertifikatsvertrauenslisten können nur auf Websites, nicht jedoch auf
Verzeichnisse oder virtuelle Verzeichnisse angewandt werden.

Um eine Zertifikatsvertrauensliste auf Ihrem Webserver zu erstellen, klicken Sie


auf der Registerkarte VERZEICHNISSICHERHEIT, mit der wir schon die ganze Zeit
arbeiten, im Abschnitt SICHERE KOMMUNIKATION auf die Schaltfläche BEARBEI-
TEN.

Ganz unten im Dialogfeld SICHERE KOMMUNIKATION befindet sich eine Option


namens ZERTIFIKATSVERTRAUENSLISTE BEARBEITEN. Markieren Sie das Options-
feld, um die Verwendung von Zertifikatsvertrauenslisten auf Ihrem Server zu akti-
vieren. Klicken Sie dann auf die Schaltfläche NEU, um den ASSISTENTEN FÜR
ZERTIFIKATSVERTRAUENSLISTEN zu starten. Klicken Sie im Begrüßungsfenster
auf die Schaltfläche WEITER, um das Fenster ZERTIFIKATE IN DER ZERTIFIKATS-
VERTRAUENSLISTE (Abbildung 8.21) aufzurufen.

Das VeriSign-Zertifikat wurde der Liste bereits hinzugefügt. Um Zertifikate hin-


zuzufügen, klicken Sie auf die Schaltfläche AUS SPEICHER HINZUFÜGEN, um das
in Abbildung 8.22 gezeigte Dialogfeld aufzurufen.
Wählen Sie das gewünschte Zertifikat in der Liste aus und klicken Sie auf OK.
Klicken Sie dann im Fenster ZERTIFIKATE IN DER ZERTIFIKATSVERTRAUENSLISTE
auf WEITER, um das nächste Fenster des Assistenten aufzurufen. Geben Sie hier
einen Namen und eine Beschreibung ein und klicken Sie dann auf WEITER.
Der Assistent zeigt nun das Fenster FERTIGSTELLEN DES ASSISTENTEN an, in dem
alle von Ihnen vorgenommenen Einstellungen noch einmal aufgeführt sind. Kli-
cken Sie auf FERTIG STELLEN. Wenn alles geklappt hat, wird Ihnen eine Bestäti-
gungsmeldung angezeigt.
216 Zertifikate

Abb. 8.21: Das Fenster ZERTIFIKATE IN DER ZERTIFIKATSVERTRAUENSLISTE listet die


momentan in der Zertifikatsvertrauensliste vorhandenen Zertifikate auf

Abb. 8.22: Im Dialogfeld ZERTIFIKAT AUSWÄHLEN wird eine Liste der Zertifikate
angezeigt, die mit IIS 5.0 installiert wurden

8.6.5 Clientzertifikate
Clientzertifikate erhalten Sie bei Zertifizierungsstellen auf die gleiche Weise wie
Serverzertifikate. Einige Zertifizierungsstellen fordern Sie eventuell zur Eingabe
Ihrer Daten auf, um Ihre Identität verifizieren zu können.
Kapitel 8 • Sicherheit 217

Der folgende Vorgang bezieht sich auf den Internet Explorer. Wenn Sie Netscape
oder einen anderen Browser verwenden, finden Sie Angaben zum entsprechenden
Vorgang in dessen Onlinehilfe.

Clientzertifikate erwerben
Gehen Sie wie folgt vor, um ein Clientzertifikat für Ihren Webbrowser zu erwer-
ben:
1. Finden Sie eine vertrauenswürdige Zertifizierungsstelle und begeben Sie sich
auf deren Website.
2. Lesen Sie alle Anweisungen oder Hinweise, die sich auf die Vorgehensweise
der Zertifizierungsstelle beziehen, aufmerksam durch.
3. Geben Sie auf Verlangen alle Daten an, die zur Identitätsprüfung benötigt wer-
den, und bestellen Sie das Zertifikat.
4. Wenn Sie das Zertifikat erhalten haben, installieren Sie es in Ihrem Browser.
Beim Internet Explorer 5.0 wählen Sie dazu im Menü EXTRAS den Eintrag
INTERNETOPTIONEN und aktivieren im angezeigten Dialogfeld die Registerkar-
te INHALT (Abbildung 8.23).

Abb. 8.23: Die Registerkarte INHALT des Dialogfeldes INTERNETOPTIONEN beim


Internet Explorer 5.0. Hier können Sie Clientzertifikate installieren.
218 Zertifikate

Wie bereits erwähnt, kochen, was Clientzertifikate angeht, alle Zertifizierungs-


stellen und alle Browser ihr eigenes Süppchen. Aus diesem Grund können wir
hier nicht auf alle denkbaren Kombinationen eingehen. Sie sollten sich deswegen
mit den entsprechenden Vorgängen bei der von Ihnen gewählten Zertifizierungs-
stelle und Ihrem Browser vertraut machen.

Clientzertifikate aktivieren
Durch Aktivierung von Clientzertifikaten auf Ihrem Server verhindern Sie, dass
Benutzer ohne solche Zertifikate eine Verbindung zu dem Server herstellen. Sie
sollten dabei allerdings beachten, dass die Anforderung eines Clientzertifikats die
Daten auf Ihrem Server nicht vor unberechtigtem Zugriff schützt. Sie müssen
hierzu eine Authentifizierungsmethode (wie etwa die Standard-, die Digest- oder
die integrierte Authentifizierung) verwenden.
Eine weitere Möglichkeit der Benutzerüberwachung ist die Kontozuordnung von
Clientzertifikaten. Auf diese Weise können Sie sicherstellen, dass der Client der-
jenige ist, der er zu sein vorgibt, und dass er über ein gültiges Windows-Konto mit
gesetzten NTFS-Berechtigungen verfügt. Öffnen Sie also wieder einmal das Dia-
logfeld EIGENSCHAFTEN Ihrer Website und klicken Sie auf der Registerkarte VER-
ZEICHNISSICHERHEIT im Abschnitt SICHERE KOMMUNIKATION auf die Schaltflä-
che BEARBEITEN. Nun öffnet sich das Dialogfeld SICHERE KOMMUNIKATION
(Abbildung 8.24).

Abb. 8.24: Das Dialogfeld SICHERE KOMMUNIKATION. Hier konfigurieren Sie die
Verwendung von Clientzertifikaten für Ihre Website.
Kapitel 8 • Sicherheit 219

Vergewissern Sie sich, dass die Option SICHEREN KANAL VERLANGEN (SSL) mar-
kiert ist. Dadurch ist gewährleistet, dass jeder Client, der eine Verbindung mit die-
ser Website herstellt, das HTTPS-Protokoll verwenden muss.
Im Abschnitt CLIENTZERTIFIKATE in der Mitte des Dialogfeldes können Sie zwi-
schen drei verschiedenen Optionen für Clientzertifikate auswählen:
• Clientzertifikate ignorieren. Gewährt Clients mit und ohne Clientzertifikat
gleichermaßen den Zugriff.
• Clientzertifikate akzeptieren. Konfiguriert den Server so, dass er Verbindun-
gen von Clients, die über Zertifikate verfügen, ebenso akzeptiert wie von
Clients ohne Zertifikate.
• Clientzertifikate verlangen. Fordert von Clients, die sich mit dem Server ver-
binden wollen, die Vorlage eines Zertifikats. Wenn der Client nicht über ein
Zertifikat verfügt, wird der Zugriff verweigert.

Hinweis
Damit Ihr Server Clientzertifikate verlangen kann, muss auf ihm ein Ser-
verzertifikat installiert sein.

8.6.6 Zertifikate Benutzerkonten zuordnen


Wie bereits weiter oben in diesem Kapitel im Abschnitt »Clientzertifikate aktivie-
ren« erwähnt, schützt das Vorhandensein eines Zertifikats allein Ihre Ressourcen
noch nicht vor unbefugtem Zugriff. Es kann auch Benutzer mit gültigem Client-
zertifikat geben, die beim Verbinden mit Ihrem Server trotzdem nichts anderes im
Sinn haben, als Ihre Daten zu stehlen. Ein solcher Benutzer verfügt dann zwar
über ein gültiges Clientzertifikat, normalerweise jedoch nicht über ein Benutzer-
konto auf dem Server. Damit Ihre vertraulichen Daten gut gesichert sind, emp-
fehle ich Ihnen, die Funktionen zu verwenden, die IIS 5.0 Ihnen für die Zuord-
nung von Clientzertifikaten zu gültigen Benutzerkonten bietet.

Hinweis
Damit die im Folgenden beschriebenen Vorgänge Wirkung zeigen, müs-
sen Sie die Website beenden und neu starten.

Es gibt drei Typen der Zuordnung, nämlich die 1:1-Zuordnung, die n:1-Zuord-
nung und die Verzeichnisdienstzuordnung.
Die 1:1-Zuordnung ordnet einem Benutzerkonto genau ein Clientzertifikat zu.
Wenn eine Anforderung von einem Browser erhalten wird, dann muss der Brow-
ser das Zertifikat als Identitätsnachweis mitsenden. Der Server vergleicht das Zer-
tifikat mit demjenigen, das er für das Konto gespeichert ist. Stimmen die Zertifi-
kate nicht absolut überein, dann wird der Zugriff verweigert.
220 Zertifikate

Tipp
Deswegen muss, wenn ein Benutzer ein Clientzertifikat erneuert, die
Zuordnung erneut durchgeführt werden, damit die Zertifikate überein-
stimmen.

Die n:1-Zuordnung ist weniger rigide als die 1:1-Zuordnung. Der Server prüft
hierbei lediglich, ob ein Zertifikat bestimmte Daten enthält – etwa den Namen des
Ausstellers. Stimmen die Kriterien überein, wird das Zertifikat akzeptiert. Auf
diese Weise kann ein Client ein Zertifikat erneuern, ohne dass ihm danach der
Zugriff auf die Ressourcen verweigert wird, denn bestimmte Daten – etwa zum
Benutzer oder zur Zertifizierungsstelle – ändern sich nicht.
Die Verzeichnisdienstzuordnung ist in einer verteilten Umgebung nützlich, in der
Ihre Organisation Windows 2000 Active Directory verwendet. Clientzertifikate
können so im Netzwerk serverübergreifend authentifiziert und genutzt werden.

Warnung
Bevor Sie die Verzeichnisdienstzuordnung wählen, sollten Sie wissen,
dass diese Methode auf der obersten Ebene angewandt wird und die 1:1-
oder n:1-Zuordnungen auf Ihrem Server deaktiviert. Ihr Computer muss
dann auch ein Mitglied einer Windows 2000-Domäne sein.

Um die 1:1-Zuordnung zu aktivieren, öffnen Sie die inzwischen gewohnte Regis-


terkarte VERZEICHNISSICHERHEIT im Dialogfeld EIGENSCHAFTEN und klicken
dort unter SICHERE KOMMUNIKATION auf die Schaltfläche BEARBEITEN. Dadurch
wird das Dialogfeld SICHERE KOMMUNIKATION geöffnet.
Markieren Sie das Kontrollkästchen ZUORDNUNG VON CLIENTZERTIFIKATEN
AKTIVIEREN und klicken Sie dann in diesem Abschnitt auf die Schaltfläche BEAR-
BEITEN. Nun wird das Dialogfeld KONTOZUORDNUNGEN (Abbildung 8.25) geöff-
net.
Sie sehen, dass auf der Registerkarte 1:1 bereits eine Zuordnung vorgenommen
wurde. Klicken Sie auf die Schaltfläche HINZUFÜGEN, um den Vorgang zum Hin-
zufügen einer Zuordnung zu starten. Das Dialogfeld DATEI ÖFFNEN wird ange-
zeigt; wählen Sie hier das Zertifikat aus, das Sie im Zuordnungsfeld hinzufügen
wollen. Dann wird das Dialogfeld KONTOZUORDNUNG (Abbildung 8.26) aufgeru-
fen.
Falls Sie die entsprechenden Angaben kennen, können Sie Benutzernamen und
Kennwort eingeben. Alternativ klicken Sie auf die Schaltfläche DURCHSUCHEN –
dadurch öffnet sich ein Dialogfeld, in dem die Benutzerkonten angezeigt werden.
Wählen Sie ein Konto aus, geben Sie das Kennwort ein und klicken Sie auf die
Schaltfläche OK. Der Assistent bittet zur Bestätigung erneut um die Eingabe des
Kennworts, dann fügt er das Zertifikat der Liste hinzu.
Kapitel 8 • Sicherheit 221

Abb. 8.25: Im Dialogfeld KONTOZUORDNUNGEN können Sie Zuordnungen von


Clientzertifikaten zu Konten hinzufügen, löschen oder bearbeiten

Abb. 8.26: Im Dialogfeld KONTOZUORDNUNG geben Sie das Benutzerkonto und das
zugehörige Kennwort ein, um das Zertifikat zuzuordnen

Wenn Sie kein Zertifikat ausfindig machen können, sollten Sie eines aus dem
Browser exportieren. Dazu wählen Sie im Internet Explorer 5.0 im Menü EXTRAS
den Eintrag INTERNETOPTIONEN. Aktivieren Sie die Registerkarte INHALT und
klicken Sie dort auf die Schaltfläche ZERTIFIKATE, um das Dialogfeld ZERTIFI-
222 Zertifikate

KATE zu öffnen. Wählen Sie hier das gewünschte Zertifikat aus und klicken Sie
auf die Schaltfläche EXPORTIEREN. Nun wird der ZERTIFIKATSEXPORT-ASSIS-
TENT gestartet.

Klicken Sie im Begrüßungsfenster auf die Schaltfläche WEITER, um zum Fenster


EXPORTDATEIFORMAT (Abbildung 8.27) zu gelangen. Wählen Sie hier die Option
BASE-64-CODIERT X.509.

Abb. 8.27: Das Fenster EXPORTDATEIFORMAT des ZERTIFIKATSEXPORT-ASSISTENTEN.


Hier können Sie das gewünschte Exportformat wählen.

Wenn Sie nun auf WEITER klicken, werden Sie aufgefordert, einen Dateinamen
für das exportierte Zertifikat anzugeben. Im Dialogfeld KONTOZUORDNUNG kön-
nen Dateien mit den Erweiterungen .cer, .crt, .spc und .key gesucht werden;
benennen Sie Ihre Datei also entsprechend. Klicken Sie nun auf WEITER. Der
Assistent zeigt abschließend eine Zusammenfassung der von Ihnen vorgenomme-
nen Einstellungen an. Klicken Sie auf FERTIG STELLEN. Wenn alles klappt,
erscheint eine Meldung, dass der Export erfolgreich verlaufen ist.
Um eine n:1-Zuordnung vorzunehmen, folgen Sie dem für die 1:1-Zuordnung
beschriebenen Vorgang, aktivieren aber die Registerkarte N:1. Klicken Sie auf die
Schaltfläche HINZUFÜGEN, um das Dialogfeld ALLGEMEIN (Abbildung 8.28) zu
öffnen.
Markieren Sie das Kontrollkästchen PLATZHALTERREGEL AKTIVIEREN, geben Sie
eine passende Beschreibung ein und klicken Sie dann auf die Schaltfläche
WEITER.
Kapitel 8 • Sicherheit 223

Abb. 8.28: Das Dialogfeld ALLGEMEIN, das über die Registerkarte N:1 aufgerufen
wird, fordert eine Beschreibung der Zuordnung an

Nun wird das Dialogfeld REGELN angezeigt, in dem Sie Regeln hinzufügen kön-
nen, die die Platzhalter für die Zuordnung definieren. Klicken Sie auf die Schalt-
fläche NEU, um eine Regel hinzuzufügen. Das Dialogfeld REGEL BEARBEITEN
(Abbildung 8.29) öffnet sich.

Abb. 8.29: Das Dialogfeld REGEL BEARBEITEN ermöglicht Ihnen die Konfiguration von
Kriterien, die bei der Zuordnung übereinstimmen müssen

Wählen Sie auf der Basis der in diesem Dialogfeld vorhandenen Daten die Krite-
rien aus, die bei der n:1-Zuordnung angewandt werden sollen, und klicken Sie auf
die Schaltfläche OK. Nun wird wieder das Dialogfeld REGELN angezeigt. Sie
können hier über NEU weitere Regeln hinzufügen oder aber durch Anklicken der
Schaltfläche WEITER fortfahren.
224 Zertifikate

Wenn Sie WEITER angeklickt haben, können Sie das Benutzerkonto angeben, auf
das die Regel angewandt wird. Geben Sie den Namen des Kontos ein, oder suchen
Sie es über die Schaltfläche DURCHSUCHEN. Geben Sie dann das zugehörige
Kennwort ein. Wenn Sie nun auf FERTIG STELLEN klicken und das Kennwort
anschließend erneut bestätigen, wird die Regel der Liste auf der Registerkarte N:1
hinzugefügt.
Klicken Sie im Dialogfeld KONTOZUORDNUNG (Abbildung 8.25) auf OK, um es
zu schließen und die Änderungen zu übernehmen. Schließen Sie dann das Dialog-
feld SICHERE KOMMUNIKATION über die Schaltfläche OK. Nun müssen Sie die
Website noch beenden und neu starten, damit die Zuordnungen angewandt wer-
den.

Hinweis
Wenn Sie sowohl mit 1:1- als auch mit n:1-Zuordnungen arbeiten, dann
haben die 1:1-Zuordnungen im Konfliktfall Vorrang.

8.6.7 Überwachung
Die Überwachung ist eine tolle Funktion, denn sie gibt Ihnen Informationen über
erfolgte und misslungene Anmeldeversuche, über Benutzer, die auf einge-
schränkte Bereiche und Ressourcen zugreifen wollten, für die sie keine Berechti-
gung besitzen, und solche, die versuchen, untersagte Befehle zu verwenden.
Zwar kann die Überwachung Eindringlinge nicht abwehren, aber sie kann doch
hilfreich bei der Feststellung von Einbruchsversuchen und unangemessener Ver-
wendungen oder Zugriffe auf Ihren Webserver sein.

Überwachung konfigurieren und verwalten


Zwar bietet Windows 2000 auch einige Überwachungsfunktionen an, aber wir
wollen uns hier auf die Überwachung in Zusammenhang mit IIS 5.0 konzentrie-
ren. Um die Überwachung nutzen zu können, müssen Sie das Snap-In GRUPPEN-
RICHTLINIE installieren.

Das Snap-In GRUPPENRICHTLINIE muss in einer eigenen MMC-Konsole außer-


halb der Konsole COMPUTERVERWALTUNG ausgeführt werden. Klicken Sie auf
START/AUSFÜHREN und geben Sie mmc in das erscheinende Textfeld ein. Eine
neue MMC-Konsole wird gestartet. Wählen Sie nun aus dem Menü KONSOLE den
Eintrag SNAP-IN HINZUFÜGEN/ENTFERNEN und klicken Sie dann im Dialogfeld
SNAP-IN HINZUFÜGEN/ENTFERNEN auf die Schaltfläche HINZUFÜGEN. Das Dia-
logfeld EIGENSTÄNDIGES SNAP-IN HINZUFÜGEN (Abbildung 8.30) wird aufgeru-
fen.
Kapitel 8 • Sicherheit 225

Abb. 8.30: Das Dialogfeld EIGENSTÄNDIGES SNAP-IN HINZUFÜGEN mit selektiertem


Snap-In GRUPPENRICHTLINIE

Selektieren Sie in der Liste den Eintrag GRUPPENRICHTLINIE und klicken Sie
dann auf die Schaltfläche HINZUFÜGEN. Nun wird das Dialogfeld GRUPPEN-
RICHTLINIENOBJEKT AUSWÄHLEN angezeigt, in dem Sie den zu überwachenden
Computer eingeben. Wenn Sie den lokalen Computer überwachen wollen, lassen
Sie die Voreinstellung stehen und klicken Sie einfach auf FERTIG STELLEN.
Klicken Sie nun im Dialogfeld EIGENSTÄNDIGES SNAP-IN HINZUFÜGEN/ENTFER-
NEN auf SCHLIESSEN und dann im Fenster SNAP-IN HINZUFÜGEN/ENTFERNEN auf
OK, um wieder zur MMC-Konsole zurückzukehren. Das Snap-In wurde hinzuge-
fügt, und das Fenster sollte jetzt so aussehen wie in Abbildung 8.31 gezeigt – hier
finden wir das Snap-In tatsächlich wieder.

Hinweis
Um die Überwachung zu nutzen, muss das Dateisystem NTFS verwendet
werden. Aus diesem Grunde habe ich Ihnen an früherer Stelle dieses
Buches die Verwendung von NTFS beziehungsweise die Konvertierung
Ihrer FAT-Datenträger zu NTFS empfohlen.

Damit Verzeichnis- und Dateizugriffe als Ereignisse aufgezeichnet werden, müs-


sen diese Ressourcen entsprechend konfiguriert werden. Starten Sie den Win-
dows-Explorer und suchen Sie mit ihm das gewünschte Verzeichnis bzw. die
gewünschte Datei auf. Klicken Sie mit der rechten Maustaste darauf und wählen
Sie den Eintrag EIGENSCHAFTEN aus dem Kontextmenü.
226 Zertifikate

Abb. 8.31: Das MMC-Fenster KONSOLE1 mit dem hinzugefügten Snap-In

Wählen Sie im Dialogfeld EIGENSCHAFTEN die Registerkarte SICHERHEITSEIN-


STELLUNGEN und klicken Sie dann auf die Schaltfläche ERWEITERT ganz unten
auf der Registerkarte. Nun wird das Dialogfeld ZUGRIFFSEINSTELLUNGEN für die
Ressource geöffnet. Wählen Sie hier die Registerkarte ÜBERWACHUNG (Abbil-
dung 8.32).
Klicken Sie auf die Schaltfläche HINZUFÜGEN, um ein Konto oder einen Computer
zur Überwachung hinzuzufügen. Wenn Sie dann auf die Schaltfläche OK klicken,
wird das Dialogfeld ÜBERWACHUNGSEINTRAG FÜR MARKETING (Abbildung 8.33).
angezeigt. Markieren Sie die Kontrollkästchen neben den Ereignissen, die für das
gewählte Konto aufgezeichnet werden sollen.
Wenn Sie die zu überwachenden Ereignisse gewählt haben, klicken Sie auf die
Schaltfläche OK. Nun wird wieder das Dialogfeld ZUGRIFFSEINSTELLUNGEN
angezeigt, mittlerweile mit den hinzugefügten Einträgen in der Liste.
Unten in diesem Dialogfeld befinden sich noch zwei Optionen für die Verer-
bungseinstellungen. Die erste Optionen bewirkt, dass die gewählte Ressource alle
Überwachungseinträge vom übergeordneten Objekt erbt. Dies ist praktisch, wenn
Sie für eine Datei oder einen Unterordner neben den eigenen auch die Ereignisse
überwachen wollen, die bereits beim übergeordneten Objekt überwacht werden.
Die Markierung der zweiten Option führt dazu, dass alle dieser Ressource unter-
geordneten Objekte – also etwa Unterordner oder Dateien – die Überwachungs-
einträge erben, die Sie hier festgelegt haben.
Kapitel 8 • Sicherheit 227

Abb. 8.32: Die Registerkarte ÜBERWACHUNG des Fensters ZUGRIFFSEINSTELLUNGEN


FÜR MARKETING. Hier können Sie Benutzer- oder Gruppenkonten
hinzufügen.

Klicken Sie nun auf OK, um die Einstellungen zu übernehmen. Wenn Sie eine
Fehlermeldung erhalten, dass die Überwachung für den Server nicht aktiviert ist,
dann müssen Sie das Snap-In GRUPPENRICHTLINIE aufrufen, das wir weiter oben
erstellt haben. Blenden Sie die Verzeichnisstruktur soweit ein, bis Sie auf das
Objekt ÜBERWACHUNGSRICHTLINIEN des lokalen Computers zugreifen können.
Abbildung 8.34 zeigt den Pfad zu diesem Objekt.
Um die Überwachung der im rechten Fensterbereich aufgelisteten Ereignisse zu
aktivieren, klicken Sie mit der rechten Maustaste auf das gewünschte Ereignis
und wählen den Eintrag SICHERHEITSEINSTELLUNGEN aus dem Kontextmenü.
Selektieren Sie nun nach Bedarf eine der Optionen ERFOLGREICH bzw. FEHLGE-
SCHLAGEN.

Warnung
Die Überwachung kann ein tolles Tool zur Ermittlung erfolgreicher und
fehlgeschlagener Zugriffsversuche auf den Server sein, aber sie kann sich
auch als gigantischer Ressourcenfresser erweisen. Setzen Sie sie also mit
Bedacht ein, um die gewünschten Ergebnisse zu erzielen, ohne Ihre Ser-
verressourcen allzu sehr zu belasten.
228 Zertifikate

Abb. 8.33: Das Dialogfeld ÜBERWACHUNGSEINTRAG FÜR MARKETING listet alle


Ereignisse auf, die sich für eine gewählte Ressource überwachen lassen

Unberechtigte Zugriffe erkennen


Wenn Sie den Eindruck haben, dass jemand unberechtigterweise auf Ihre Website
zugreift, dann können Sie die von IIS und Windows 2000 erstellten Protokolle
verwenden und dort Sicherheitsereignisse suchen, die auf dem Server stattgefun-
den haben. Verwenden Sie hierzu die Ereignisanzeige, die Bestandteil von
Windows 2000 ist.

Hinweis
Um das Sicherheitsprotokoll mit der Ereignisanzeige betrachten zu kön-
nen, müssen Sie über Administratorenrechte verfügen.

Sie rufen die EREIGNISANZEIGE über START/PROGRAMME/VERWALTUNG/EREIG-


NISANZEIGE auf. Alternativ können Sie die EREIGNISANZEIGE auch über das App-
let VERWALTUNG in der Systemsteuerung starten. Beide Methoden führen zur
Anzeige des in Abbildung 8.35 gezeigten Fensters.
Kapitel 8 • Sicherheit 229

Abb. 8.34: Das Snap-In GRUPPENRICHTLINIE beinhaltet das Objekt


ÜBERWACHUNGSRICHTLINIEN für den lokalen Computer

Abb. 8.35: In der Ereignisanzeige können Sie alle aufgetretenen


Sicherheitsereignisse betrachten, die sich auf Ihren Webserver beziehen
230 IPSec

Obwohl das Sicherheitsprotokoll im Falle meines Servers leer ist – dies ist der
Idealfall –, kann es wertvolle Informationen liefern, denn fehlgeschlagene
Anmeldungen, Ressourcenzugriffe oder Dateiuploads weisen auf potentielle Ein-
brüche hin. Jeder einzelne Eintrag im Sicherheitsprotokoll sollte ernst genommen
und seine Ursache eingehend untersucht werden.

8.7 IPSec
IPSec (Internet Protocol Security, Internetprotokollsicherheit) ist ein Sicherheits-
mechanismus, der von der IETF (Internet Engineering Task Force) entwickelt
wurde. Er ermöglicht eine Formatierung von IP-Datenpaketen, die die Realisie-
rung eines starken Ende-zu-Ende-Authentifizierungsmechanismus ermöglicht.
Ferner garantiert IPSec Datenintegrität, Anti-Replay und Vertraulichkeit.
Bei der Integration von Windows 2000-Domänen und Active Directory hat Mic-
rosoft auf IPSec gebaut. Deswegen können Sie Authentifizierungsstandards wie
Kerberos V5, Szenarios mit öffentlichen und privaten Schlüsseln und kennwort-
basierte Authentifizierungsmethoden benutzen, um Vertrauensstellungen zwi-
schen Computern zu schaffen.
Wenn mehrere Computer eine solche Vertrauensstellung hergestellt haben, dann
können diese mit der Übertragung verschlüsselter Daten beginnen. Das funktio-
niert insofern auf ähnliche Weise wie in einem virtuellen privaten Netzwerk
(VPN), als die Daten, die zwischen den Computern übertragen werden, immer
noch eingesehen werden können – aber ein Eindringling verfügt nicht über die
Verschlüsselungsmechanismen, wodurch die Daten für ihn unbrauchbar werden.
Bei der Konfiguration von IPSec auf Ihrem Server sind zwei Fälle vorgesehen: Sie
können eine vordefinierte IPSec-Richtlinie verwenden, oder Sie können Ihre
eigene Richtlinie erstellen. Beide Ansätze sind recht knifflig, und ich werde hier
auch nicht weiter darauf eingehen. Sie können sich jedoch unter http://www.micro-
soft.com/WINDOWS2000/library/planning/security/ipsecsteps.asp ein hervor-
ragendes Weißbuch über IPSec herunterladen, in dem die Konfiguration auf dem
Server und die Überwachung detailliert beschrieben wird.

8.8 Fazit
Das war wohl das längste Kapitel in diesem Buch – und das aus gutem Grund.
Das Internet steht weltweit jedem offen, der einen Computer und einen Internet-
provider hat. Wenn Sie einen Server oder einen Computer mit dem Internet ver-
binden, dann können sich all die Leute da draußen auch mit Ihrem Computer ver-
binden.
Microsoft hat in den letzten paar Jahren maßgeblich zur Verbreitung von Sicher-
heitslücken beigetragen. Einige wurden von bedeutenden Organisationen ent-
deckt, die ihre Netzwerke auf Sicherheitsmängel überprüften. Andere wiederum
Kapitel 8 • Sicherheit 231

kamen zum Vorschein, weil böswillige Benutzer sich unberechtigt Zutritt zu den
Netzwerken von Firmen und Organisationen verschafft haben.
Ein solcher Fall wurde erst kürzlich bekannt. Es ging dabei um eine Sicherheitslü-
cke bei IIS 4.0, das als Bestandteil des Windows NT 4.0 Option Packs ausgelie-
fert wurde. Diese Hintertür gestattete Webentwicklern mit Autorenprivilegien die
Ausführung von Code auf dem Server, den Zugriff auf andere Websites auf die-
sem Server und die Anzeige von Inhalten bestimmter Dateien auf dem Server.
Gefunden wurde die Sicherheitslücke in einer Datei namens Dvwssr.dll, die auf
solchen IIS-Servern vorhanden war, auf denen die FrontPage-Servererweiterun-
gen installiert waren. Einen Patch gibt es nicht – Microsoft empfiehlt, die Datei
einfach zu löschen. Übrigens: Bei IIS 5.0 unter Windows 2000 ist die Sicherheits-
lücke nicht mehr vorhanden; die Aktualisierung von NT 4.0 und IIS 4.0 auf
IIS 5.0 löst das Problem also.
Sicherheitshalber habe ich nun meine Festplatte durchsucht, und siehe da: Die
Datei ist immer noch vorhanden. Warum? Weil ich in einer Multiboot-Umgebung
mit NT 4.0 und Windows 2000 Server arbeite. Microsoft erwähnt nirgendwo,
dass dies ein Problem sein könnte, und die meisten IIS 5.0-Installationen werden
ohnehin nicht in einer Multiboot-Umgebung vorhanden sein. Nach Ansicht von
Microsoft kann die Datei aber gelöscht werden, ohne dass es dadurch zu Proble-
men kommt. Weitere Informationen finden Sie unter http://www.microsoft.com/
technet/security/bulletin/ms00-025.asp.
Sie können die in diesem Kapitel präsentierten Informationen verwenden, um die
Sicherheitsfunktionen Ihres Webservers zu konfigurieren, zu warten und Anzei-
chen unberechtigter Zugriffsversuche aufzuspüren.
Eine der besten Entscheidungen, die ein Unternehmen treffen kann, ist die Bereit-
stellung eines alleinstehenden Servers (d.h. eines Servers, der an keiner Stelle mit
dem Firmennetzwerk verbunden ist) für alle das Internet betreffenden Aufgaben.
Durch dieses Vorgehen wehren Sie wirksam alle Angriffsversuche auf Ihr Netz-
werk ab, die über das Internet ausgeführt werden.
Es gibt natürlich auch eine ganz simple Möglichkeit, zu verhindern, dass Ihre
Website öffentlich zugänglich ist – weisen Sie einfach eine andere Anschluss-
nummer zu. Diese Methode wird beispielsweise bei der Verwaltungswebsite ver-
wendet, die Bestandteil von IIS ist. Wenn Sie mehrere IIS-Installationen verwen-
den, werden Sie festgestellt haben, dass die Anschlussnummer bei jeder
Installation zufällig ausgewählt wird. Das bedeutet, dass nicht jede IIS-Verwal-
tungswebsite über die gleiche Anschlussnummer erreichbar ist. Hierdurch werden
weitere Barrieren gegen potentielle Angreifer errichtet.
Auch IPSec bietet Ihnen diverse Sicherheitsoptionen für Ihren IIS-Server. Micro-
soft bietet hierzu ein Weißbuch an, in dem erklärt wird, wie IPSec-Richtlinien
konfiguriert und überwacht werden.
232 Fazit

Wenn Sie vertrauliche Daten auf einem Webserver speichern, dann betrachten Sie
die hier vorgestellten Themen und Vorgehensweise als Möglichkeit, Ihre Daten zu
schützen.
Eine weitere Methode, die wir hier nicht erläutert haben, ist die Verwendung von
VPNs zur Erhöhung der Kommunikationssicherheit. Dieses Thema ist noch recht
neu – es ist erst etwa ein oder zwei Jahre alt. Microsoft hat ein Protokoll für virtu-
elle private Netzwerke implementiert, das Sie unter Windows 2000 nutzen kön-
nen. Sie können natürlich auch nach Software- und Hardwareimplementationen
von Drittanbietern Ausschau halten.
Kapitel 9
Benutzerdefinierte
Fehlermeldungen

9.1 Fehlermeldungen erstellen und einsetzen 235


9.2 Detaillierte Fehlermeldungen aktivieren 239
9.3 Verarbeitung von ASP-Fehlern 240
9.4 Fazit 240
234

Das Protokoll HTTP 1.1 definiert eine Reihe allgemeiner Fehlermeldungen, die
am Client bei Auftreten von Verbindungsproblemen oder Fehlern beim Verbin-
dungsaufbau angezeigt werden. Diese Fehlermeldungen geben keine genaue Aus-
kunft darüber, wo das Problem liegt. Einige dieser Fehlermeldungen sind durch-
aus geläufig – Sie kennen sicher auch den Fehler 404: Nicht gefunden, der
angezeigt wird, wenn die angeforderte Seite auf dem Server nicht vorhanden ist.
Aus der Sicht Ihrer Clients sollten natürlich bei einer gut gewarteten Website kei-
nerlei Fehlermeldungen auftreten; dies ist aber bei großen Sites, an denen meh-
rere Entwickler arbeiten, praktisch unmöglich. Fehlermeldungen sind unvermeid-
lich. Sie können Ihren Clients aber ein wenig entgegenkommen, indem Sie
Fehlermeldungen selbst definieren, die das Problem erläutern, statt dem Benutzer
einfach nur den Fehlercode nach HTTP 1.1 vorzusetzen. Tabelle 9.1 listet die
Fehlercodes und die zugehörigen Standardmeldungen auf.

Fehlercode Fehlermeldung
400 Ungültige Anforderung
401.1 Anmeldung fehlgeschlagen
401.2 Anmeldung aufgrund Serverkonfiguration fehlgeschlagen
401.3 Nicht autorisiert aufgrund ACL auf Ressource
401.4 Autorisierung aufgrund Filter fehlgeschlagen
401.5 Autorisierung aufgrund ISAPI/CGI-Anwendung fehlgeschlagen
403.1 Zugriff »Ausführen« verboten
403.2 Lesezugriff verboten
403.3 Schreibzugriff verboten
403.4 SSL erforderlich
403.5 SSL128 erforderlich
403.6 IP-Adresse zurückgewiesen
403.7 Clientzertifikat erforderlich
403.8 Sitezugriff verweigert
403.9 Zu viele Benutzer
403.10 Ungültige Konfiguration
403.11 Kennwortänderung
403.12 Zugriffsmodul verweigerte Zugriff
403.13 Clientzertifikat zurückgezogen
403.14 Verzeichnisliste verweigert
403.15 Clientzugriffslizenzen überschritten
403.16 Clientzertifikat nicht vertrauenswürdig oder ungültig
Tab. 9.1: Fehlercodes und zugehörige Meldungen nach HTTP 1.1
Kapitel 9 • Benutzerdefinierte Fehlermeldungen 235

Fehlercode Fehlermeldung
403.17 Clientzertifikat abgelaufen oder noch nicht gültig
404 Nicht gefunden
404.1 Site nicht gefunden
405 Methode nicht erlaubt
406 Nicht akzeptabel
407 Proxyauthentifizierung erforderlich
412 Vorabbedingung fehlgeschlagen
414 URI-Anforderung zu lang
500 Interner Serverfehler
500.12 Anwendung wird neu gestartet
500.13 Server ist zu stark belastet
500.15 Anforderungen bezüglich Global.asa nicht erlaubt
500-100.asp ASP-Fehler
501 Nicht implementiert
502 Ungültiger Gateway
Tab. 9.1: Fehlercodes und zugehörige Meldungen nach HTTP 1.1 (Forts.)

Wie Sie sehen, sind die meisten dieser Meldungen doch recht kryptisch und für
den durchschnittlichen Websitebesucher nicht gerade aussagekräftig. Glückli-
cherweise bietet IIS 5.0 die Konfiguration benutzerdefinierter Meldungen, welche
die Standardmeldungen ersetzen.

9.1 Fehlermeldungen erstellen und einsetzen


Wenn Sie sich Abbildung 9.1 betrachten, sehen Sie, dass die zu IIS 5.0 gehören-
den Fehlermeldungen nichts anderes sind als HTML-Seiten in einem Hilfever-
zeichnis.

Warnung
Jede dieser Dateien kann mit einem einfachen Text- oder HTML-Editor
modifiziert und den eigenen Bedürfnissen angepasst werden. Ich emp-
fehle Ihnen aber, diese Meldungsdateien nicht zu verändern und statt
dessen neue Dateien zu erstellen.

Starten Sie also einen beliebigen Text- oder HTML-Editor und erstellen Sie damit
die HTML-Datei für eine benutzerdefinierte Fehlermeldung. Listing 9.1 zeigt den
HTML-Code einer einfachen Fehlermeldung, die anstelle der Standardmeldung
404: Nicht gefunden angezeigt wird.
236 Fehlermeldungen erstellen und einsetzen

Abb. 9.1: Das Dialogfeld EIGENSCHAFTEN VON STANDARDWEBSITE, Registerkarte


BENUTZERDEFINIERTE FEHLER. Hier können Sie die Fehlermeldungen für
Ihren Server selbst definieren.

<HTML>
<HEAD>
<TITLE>Seite nicht gefunden</TITLE>
<BODY>
<CENTER><H2>Bitte entschuldigen Sie, dass die von Ihnen aufgerufene Seite momen-
tan nicht angezeigt werden kann.</H2></CENTER>
<p>
<br
<CENTER>Bitte senden Sie eine E-Mail an <a href="mailto:webmaster@gkcom-
put.com">webmaster@gkcomput.com</a> und nennen Sie uns die Datei oder Seite, die
Sie aufrufen wollten.
<p>Vielen Dank für Ihre Mithilfe. Wir bedauern, falls Ihnen Unannehmlichkeiten
entstanden sind.
</BODY>
</HTML>

Listing 9.1: Beispiel für eine benutzerdefinierte Fehlermeldung


Kapitel 9 • Benutzerdefinierte Fehlermeldungen 237

Dieser Code generiert eine HTML-Seite, die schlicht und einfach die Fehlermel-
dung 404: Nicht gefunden ersetzt. Sie können natürlich jeden beliebigen Text ein-
setzen; vergessen Sie nicht, die E-Mail-Adresse anzupassen.
Um den Code zu testen, kopieren Sie die neue Datei in das Verzeichnis, in dem
die anderen Fehlermeldungen abgelegt sind. Dann weisen Sie die neue Datei im
Dialogfeld BENUTZERDEFINIERTE FEHLERMELDUNGEN der Fehlermeldung 404
zu. Wenn Sie nun im Browser eine auf Ihrer Website nicht vorhandene Seite auf-
rufen, sollte Ihre neue Fehlermeldung angezeigt werden.
Sie sind hierbei aber nicht auf statische HTML-Seiten beschränkt, sondern kön-
nen auch ASP- oder ISAPI-Anwendungen benutzen, um komplexere Antworten
an den Client zu übermitteln. Listing 9.2 zeigt eine ASP-Seite, die etwas
anspruchsvoller ist.
<%@ LANGUAGE=VBScript %>
<html>

<head>
<title>Seite nicht gefunden!</title>
</head>

<body>
<%
' 404custom.asp
' Diese ASP-Datei enthaelt eine benutzerdefinierte
' Fehlermeldung für den Fehlercode 404 – Nicht gefunden.
' Die Seite leitet auf eine URL um, weswegen Sie unter den
' Eigenschaften für benutzerdefinierte Fehlermeldungen für den
' Fehlercode 404 URL statt Datei wählen müssen.

Dim strQueryString
Dim strRequestedURL
Dim errMail

' Fehlerhafte URL und Fehlernummer holen


strQueryString = Request.ServerVariables("Query_String")

' Erkennen der Fehlernummer in der Zeichenkette


strRequestedURL = Replace(strQueryString, "404;", "")

' Erstellen eines Mailobjekts


Set errMail = Server.CreateObject("CDONTS.NewMail")

' Konfigurieren des Mailheaders


errMail.From = "webclients@gkcomput.com"
errMail.To = "gkcomput@fundy.net"
errMail.Subject = "ERROR – 404 Seite nicht gefunden"
238 Fehlermeldungen erstellen und einsetzen

errMail.Body = "Angeforderte URL: " & strRequestedURL


errMail.Importance = 2
errMail.Send

Set errMail = Nothing ' Objekt tilgen, um Ressourcen freizugeben

%>

<p> Bitte entschuldigen Sie, dass die von Ihnen aufgerufene Seite <% =strQuery-
String %> auf dem Server nicht gefunden wurde.<br>
Bitte überprüfen Sie die Schreibweise der in die Adresszeile eingegebenen URL
auf Fehler.<br>
Aufgrund des Fehlers wurde eine E-Mail an unseren Webmaster gesendet.<br>
Probieren Sie es doch auf unserer <a href="http://www.homepage.de">Startseite
</a>. </p>
</body>
</html>

Listing 9.2: Benutzerdefinierte Fehlermeldung, die eine E-Mail generiert

Diese Seite ist ein wenig aufwendiger als die oben gezeigte HTML-Seite, denn
hier wurden ein paar ASP-Funktionen integriert. Zunächst werden einige Variab-
len definiert, die Daten aufnehmen, die vom Fehlercode zurückgegeben wurden.
Wir müssen wissen, welche URL aufgerufen wurde, um feststellen zu können, ob
die entsprechende Seite wirklich fehlt, oder ob das Vorhandensein einer solchen
Seite nie beabsichtigt war.
Dann erstellen wir ein neues Mailobjekt und konfigurieren die notwendigen Hea-
derdaten To (An), From (Von) und Subject (Betreff). Im Textteil der Mail werden
ein kurzer Text und die zurückgegebene URL abgelegt, dann wird die Wichtigkeit
der Mail festgelegt und die Mail gesendet.
Am Ende der Seite befindet sich der Text, der dem Benutzer angezeigt wird. Er
erläutert, was geschehen ist, und teilt dem Benutzer außerdem mit, dass eine ent-
sprechende Meldung an den Webmaster verschickt wurde.
Kopieren Sie nun auch diese Datei in den Fehlermeldungsordner und konfigurie-
ren Sie die Fehlermeldung Nicht gefunden in den EIGENSCHAFTEN VON STAN-
DARDWEBSITE (bzw. der betroffenen Website) so, dass bei ihrem Auftreten unsere
neue Datei aufgerufen wird.

Hinweis
In diesem Beispiel wurde zur Mailerstellung das Objekt cdonts verwen-
det. Vergewissern Sie sich, dass dieses Objekt auf dem Server installiert
und konfiguriert ist, da der Abschnitt zur Mailerstellung ansonsten nicht
funktioniert.

Weitere Informationen zu cdonts finden Sie unter http://support.micro-


soft.com/support/kb/articles/Q186/2/04.asp.
Kapitel 9 • Benutzerdefinierte Fehlermeldungen 239

Wie Sie sehen, hat die Verwendung von ASP eine Reihe von Vorteilen gegenüber
den statischen Fehlermeldungen. Dieses kleine Beispiel bietet dem Benutzer aus-
reichende Informationen darüber, was passiert ist, und teilt ihm mit, dass der
Webmaster bereits informiert wurde – er braucht sich deswegen also keine Sorgen
mehr zu machen. Nebenbei: Die meisten Websitebesucher würden dem Webmas-
ter sowieso nicht Bescheid geben, sondern die Site einfach verlassen und dabei
das Gefühl haben, schlecht bedient worden zu sein; wahrscheinlich werden sie nie
wieder kommen.

Hinweis
Wenn Sie ASP-Dateien oder ISAPI-Anwendungen als benutzerdefinierte
Fehlermeldungen verwenden, wählen Sie im Dialogfeld EIGENSCHAFTEN
DER FEHLERZUORDNUNG die Option URL statt DATEI. Auf diese Weise wer-
den alle notwendigen Parameter an das Skript übergeben.

9.2 Detaillierte Fehlermeldungen aktivieren


Wie bereits weiter oben erläutert, definiert das Protokoll HTTP 1.1 allgemeine
Fehlermeldungen, die in der Regel sehr kryptisch und nichtssagend sind. Sie kön-
nen auch eigene, benutzerdefinierte Fehlermeldungen erstellen. Wenn Sie dies
nicht tun, aber auch die allgemeinen Fehlermeldungen von HTTP 1.1 nicht ver-
wenden wollen, dann gibt es auch hierzu eine Lösung. Standardmäßig beinhaltet
IIS 5.0 auch wesentlich benutzerfreundlichere Fehlermeldungen, durch die sich
die allgemeinen Meldungen ersetzen lassen.
Diese Fehlermeldungen befinden sich standardmäßig im Verzeichnis <systemver-
zeichnis>\help\iishelp\common, wobei <systemverzeichnis> wie immer das Ver-
zeichnis repräsentiert, in dem Windows 2000 installiert ist.

Hinweis
Wenn Sie von IIS 4.0 auf IIS 5.0 aktualisiert haben, dann werden Ihre
benutzerdefinierten Fehlermeldungen automatisch in das neue Verzeich-
nis kopiert.

Um diese detaillierten Fehlermeldungen zu aktivieren, öffnen Sie das Dialogfeld


EIGENSCHAFTEN der Website bzw. der virtuellen Website und aktivieren die
Registerkarte BENUTZERDEFINIERTE FEHLER. In Abbildung 9.1 waren die vorhan-
denen Fehlermeldungen teilweise bereits dargestellt. Standardmäßig gelten sie für
die Standardwebsite.
Wenn Sie eine benutzerdefinierte Fehlermeldung ändern wollen, wählen Sie diese
aus, klicken dann auf die Schaltfläche EIGENSCHAFTEN BEARBEITEN und wählen
die gewünschte Datei aus. Standardmäßig werden auch diese Dateien unter
<systemverzeichnis>\help\iishelp\common gespeichert.
240 Verarbeitung von ASP-Fehlern

9.3 Verarbeitung von ASP-Fehlern


Wenn Sie auf Ihrer Website ASP-Dateien verwenden, werden die durch diese Sei-
ten erzeugten Fehler je nach Dateiablageort unterschiedlich behandelt.
Standardmäßig leitet IIS 5.0 beispielsweise nur dann alle ASP-Dateifehler zur
Verarbeitung an die Datei 500-100.asp weiter, wenn der Fehler auf der Standard-
website aufgetreten ist. Wenn Sie hingegen eine weitere Website erstellt haben,
die neben der Standardwebsite auf dem Server betrieben wird, dann müssen Sie
für diese neue Site eine eigene ASP-Fehlerverarbeitungsdatei erstellen oder Feh-
ler mit dem Code 500-100 auf die Datei 500-100.asp umleiten. Wie diese Umlei-
tung funktioniert, wurde weiter oben unter »Fehlermeldungen erstellen und ein-
setzen« beschrieben.
Eine eingehende Beschreibung von ASP würde den Rahmen dieses Buches spren-
gen. Aus diesem Grunde sollten Sie Ihre Webentwickler mit der Erstellung benut-
zerdefinierter Fehlerverarbeitungsdateien in ASP beauftragen.

Hinweis
Wenn Sie keine benutzerdefinierte Datei zur Verarbeitung von ASP-Feh-
lern erstellen oder zuweisen, dann geht IIS davon aus, dass eine solche
Datei nicht existiert. Gleiches gilt, wenn Ihre benutzerdefinierte Fehler-
verarbeitungsdatei ihrerseits Fehler enthält. Prüfen Sie deswegen den
Code Ihrer Fehlerverarbeitungsdatei, bevor Sie die Zuordnung der ASP-
Fehler an diese Datei vornehmen.

9.4 Fazit
Das Protokoll HTTP 1.1 setzt einen Standard für Meldungen, die bei Auftreten
von Fehlern an den Clientbrowser zurückgegeben werden. Diese Meldungen sind
kurz und häufig unverständlich, weswegen der Durchschnittsbenutzer nur sehr
wenig damit anfangen kann. IIS 5.0 wird nun mit einem Satz benutzerdefinierter
Fehlermeldungen ausgeliefert, die auf die Standardwebsite angewandt werden.
Diese Meldungen sind benutzerfreundlicher als die allgemeinen HTTP 1.1-Mel-
dungen.
Wenn Sie auch mit diesen erweiterten Fehlermeldungen nicht zufrieden sind,
dann können Sie Ihre eigenen benutzerdefinierten Meldungen erstellen und diese
dann den entsprechenden Fehlern zuordnen. Ferner können Sie benutzerdefinierte
ASP-Dateien erstellen, die bei Auftreten von ASP-Fehlern auf dem Server aufge-
rufen werden. Mit solchen Dateien können Sie beispielsweise Ihren Benutzern
Informationen zum Fehler übermitteln und auch automatisch eine E-Mail gene-
rieren, die an den Webmaster geschickt wird.
Es ist allgemein bekannt, dass die meisten Webentwickler hart an der Konsistenz
Ihrer Sites arbeiten; sie wollen sicherstellen, dass der Benutzer genau die Seiten
Kapitel 9 • Benutzerdefinierte Fehlermeldungen 241

zu sehen bekommt, die er angefordert hat. Allerdings kann kein Webentwickler


alle möglichen (und unmöglichen) Umstände vorhersehen, weswegen er vor
ebensolchen Problemen stehen wird wie ein Softwareentwickler, der keine kom-
plexen Anwendungen programmieren kann, ohne dass versehentlich der eine oder
andere Bug eingebaut wird. Die Fehlermeldungsfunktionen von IIS 5.0 können
dabei hilfreich sein, sicherzustellen, dass die Website gepflegt wird und Fehler
bekannt und daraufhin auch behoben werden.
Kapitel 10
Aktivitäten von Sites
protokollieren

10.1 Aktivitäten auf Ihrem IIS-Server protokollieren 244


10.2 Protokollierung aktivieren 247
10.3 Überwachung der Prozessorauslastung 249
10.4 Erweiterte Einstellungen für das Protokoll »W3C-erweitert« 250
10.5 Protokolldateien speichern 253
10.6 Protokolldateien in das NCSA-Format konvertieren 255
10.7 Fazit 255
244 Aktivitäten auf Ihrem IIS-Server protokollieren

Eine der besten Funktionen zur Problemlösung und Überwachung bei IIS 5.0 ist
die Möglichkeit, die Besucheraktivitäten auf Ihrer Site zu protokollieren. Die
hierbei gesammelten Daten können für Webmaster, Webentwickler und sogar für
die Werbeabteilung eines Sponsors von größtem Wert sein.
Die Untersuchung der Protokolldateien, die glücklicherweise im ASCII-Format
abgelegt werden, bringt verschiedenste Daten an den Tag: Wer hat unsere Site
besucht, welche Seiten werden wie oft angefordert, welche Fehlermeldungen
mussten an Clients gesendet werden?

10.1 Aktivitäten auf Ihrem IIS-Server protokollieren


Die Protokollfunktionen von IIS sind sehr umfassend und arbeiten unabhängig
von der Protokollierung anderer Betriebssystemereignisse. Sie können nicht nur
das Protokollformat und Optionen zur Protokollierung einzelner Sites, Ordner
und Dateien auswählen, sondern auch festlegen, ob das Protokoll in eine einzelne
Datei geschrieben werden soll.
IIS bietet Ihnen vier verschiedene Protokollformate. Diese werden in den folgen-
den Abschnitten umfassend beschrieben.

10.1.1 Das Format »Microsoft IIS«


Hierbei handelt es sich um ein ASCII-Format ohne weitere einstellbare Optionen.
Die Protokolldatei sammelt die folgenden Daten:
• Client-IP-Adresse
• Benutzername
• Anforderungszeitpunkt
• Anforderungszeitdatum
• HTTP-Statuscodes
• Empfangene Bytes
Listing 10.1 zeigt einen Beispieleintrag für meinen lokalen Server im Format
Microsoft IIS:
192.168.1.20, –, 04/04/2000, 9:26:32, W3SVC1, zuhause, 192.168.1.23, 230, 278,
1109, 200, 0, GET,
/Default.htm, –,

Listing 10.1: Protokolldateieintrag im IIS-Format


Kapitel 10 • Aktivitäten von Sites protokollieren 245

Sie sehen die anfordernde IP-Adresse (192.168.1.20), gefolgt von Datum und
Uhrzeit der Anforderung. Dahinter folgen der Dienst, der das Protokoll aufge-
zeichnet hat (W3SVC1) und der NetBIOS-Name des Servers (zuhause).
Die zweite Zeile enthält zunächst die IP-Adresse des Servers (192.168.1.23). Die
nächsten paar Zahlen sind interessant. Die erste, 230, zeigt (in Sekunden) an, wie
lange es dauerte, bis die Anforderung vollständig war. Dann folgen mit 278 die
Anzahl der empfangenen und mit 1109 die Anzahl der gesendeten Bytes.
Die 200 in der zweiten Zeile verweist auf den HTTP-Statuscode, die darauffol-
gende 0 auf den Windows 2000-Statuscode. Am Ende des Eintrags finden wir
dann noch die Anforderungsmethode (get) und zu guter Letzt den Namen der
angeforderten Datei.
Wie Sie aus diesem Beispiel ersehen können, ist das Protokollformat »Microsoft
IIS« ziemlich einfach zu lesen.

10.1.2 Das Format »NCSA allgemein«


Dieses Format erstellt seine Protokolle ebenfalls im ASCII-Format und hat keine
Optionen. Es steht ferner nur für Websites, nicht jedoch für FTP-Sites zur Verfü-
gung. Listing 10.2 zeigt einen Beispieleintrag.
192.168.1.20 – - [04/Apr/2000:09:37:47 -0400] "GET /Default.htm HTTP/1.0" 304 212

Listing 10.2: Protokolldateieintrag im »NCSA-erweitert«-Format

Zu Beginn des Eintrags finden wir wieder die IP-Adresse des anfordernden
Clients. Dahinter stehen – in eckigen Klammern – Datum und Uhrzeit sowie die
Differenz zur GMT-Zeit (Greenwich Mean Time, MEZ-Zeit – 1 Stunde). Zwi-
schen den Anführungszeichen folgen der anfordernde Befehl (get), der Datei-
name und die Protokollversion. Abgeschlossen wird der Eintrag durch den IIS-
Statuscode (304) und die Anzahl der gesendeten Bytes (212).

10.1.3 Das Format »W3C-erweitert«


Hierbei handelt es sich um das einzige Protokollformat für IIS, bei dem eine
Reihe von Optionen angepasst werden können. Sie können dadurch die Protokol-
lierung auf solche Daten beschränken, die für Sie nützlich sind. Listing 10.3 zeigt
einen Beispieleintrag des auf meinem Server vorhandenen Protokolls im Format
»W3C-erweitert«.
#Software: Microsoft Internet Information Services 5.0
#Version: 1.0
#Date: 2000-04-04 13:47:04
#Fields: time c-ip cs-method cs-uri-stem sc-status
12:47:04 192.168.1.20 GET /Default.htm 304

Listing 10.3: Protokolleintrag im »W3C-erweitert«-Format


246 Aktivitäten auf Ihrem IIS-Server protokollieren

Diese Datei sieht definitiv anders aus als die beiden vorhergehenden. Die ersten
beiden Zeilen des Listings teilen Ihnen mit, dass Sie IIS 5.0 in der Version 1.0
verwenden.
Möglicherweise haben Sie beim Feld #Date (Datum) eine leichte Unstimmigkeit
im Vergleich zu den vorhergehenden Protokollen festgestellt. Alle Anfragen wur-
den innerhalb von 15 Minuten vorgenommen, und trotzdem zeigt die Datei die
Uhrzeit 13:47:04 an; tatsächlich habe ich um 09:47:04 Uhr auf die Datei zugegrif-
fen, d.h. im Listing 10.3 wurde die Uhrzeit im GMT-Format angegeben. Meine
Zeitzone liegt vier Stunden nach GMT, daher die Differenz.
In der nächsten Zeile #Fields sind weitere interessante Informationen vorhanden.
Auch wenn es auf den ersten Blick nicht den Anschein hat, so sind die letzten bei-
den Zeilen doch eine Tabelle im normalen Zeilen-/Spaltenformat:

Feld Protokolleintrag Beschreibung


Time 13:47:04 Anforderungszeitpunkt
c-ip 192.168.1.20 Client-IP-Adresse
Tab. 10.1: Aufschlüsselung des Eintragsfeldes #Fields

Zuerst sehen wir time, d.h. der erste Eintrag in der letzten Zeile bezeichnet den
Zeitpunkt der Anforderung. Es folgt c-ip; der zweite Eintrag in der letzten Zeile
ist also die IP-Adresse des anfordernden Clients. Die Methode cs entspricht dem
Befehl get, die Zeichenkette cs-uri-stem bezieht sich auf die angeforderte URL
bzw. Datei. Der letzte Eintrag sc-status ist der Statuscode – in diesem Fall 304.
Die Einstellungen, die für das Protokollformat »W3C-erweitert« vorgenommen
werden können, werden wir weiter unten in diesem Kapitel im Abschnitt »Erwei-
terte Einstellungen für das Protokoll 'W3C-erweitert'« behandeln. Mehr Informa-
tionen zu diesem Format finden Sie auch unter der URL http://www.w3c.org.

10.1.4 Das Format »ODBC«


Dieses Protokollformat ist nur unter Windows 2000 Server vorhanden, nicht
jedoch unter Windows 2000 Professional. Das ODBC-Format hat keine einstell-
baren Optionen und speichert das Protokoll in einem Datenbankformat.
Wenn Sie auf die Schaltfläche EIGENSCHAFTEN klicken, können Sie den ODBC-
Datenquellennamen (DSN) festlegen; standardmäßig ist hier httplog eingetragen.

Tipp
Wenn Sie die verschiedenen Protokolldateiformate auf Ihrem Server ver-
wendet haben und nun ein Protokoll in einem bestimmten Format
betrachten wollen, dann können Sie hierfür den Windows-Editor oder
einen beliebigen anderen Texteditor verwenden. Die Protokollformate
Kapitel 10 • Aktivitäten von Sites protokollieren 247

lassen sich anhand der Dateinamen unterscheiden: Dateien im W3C-


Format beginnen immer mit ex, gefolgt vom Datum (Beispiel: ex000404).
Dateien im Format »Microsoft IIS« beginnen mit in, gefolgt vom Datum
(in000404), die Namen von NCSA-Dateien benutzen nc, wie etwa
nc000404.

Warnung
Da die Protokollierung standardmäßig aktiviert ist und jeder Seitenzugriff
protokolliert wird, können Ihre Protokolldateien schnell sehr groß wer-
den. Sie sollten die Dateigröße deswegen regelmäßig überprüfen und die
Dateien komprimieren oder sichern, um Festplattenkapazitäten freizu-
stellen.

10.2 Protokollierung aktivieren


Wie bereits oben erwähnt, können Sie die Protokollierung für Ihre Website, Ihre
FTP-Site, Verzeichnisse oder sogar einzelne Dateien aktivieren. Standardmäßig
wird bei der Installation von IIS die Protokollierung im Format »W3C-erweitert«
für die Standardwebsite aktiviert.
Die Vorgehensweise beim Aktivieren der Protokollierung für eine Website ist eine
sehr direkte: Sie öffnen den Internetdienste-Manager und klicken im linken Fens-
terbereich mit der rechten Maustaste auf die gewünschte Website. Wählen Sie
dann im Kontextmenü den Eintrag EIGENSCHAFTEN, um das gleichnamige Dia-
logfeld zu öffnen (Abbildung 10.1).
Wie Sie in der Abbildung sehen, habe ich die Protokollierung für die Standard-
website aktiviert und das Protokollierungsformat »W3C-erweitert« gewählt. Das
war's – mehr gibt's hier nicht zu tun.
Wie ich bereits erwähnt habe, lässt sich die Protokollierung auch für einzelne Ver-
zeichnisse und Dateien aktivieren bzw. deaktivieren. Auf diese Weise können Sie
die Protokollierung auf diejenigen Daten beschränken, die Sie wirklich benötigen,
und die Protokolldatei so klein halten.
Um die Verzeichnis- oder Dateiprotokollierung zu konfigurieren, öffnen Sie das
Dialogfeld EIGENSCHAFTEN des Verzeichnisses bzw. der Datei. Abbildung 10.2
zeigt das entsprechende Dialogfeld für das Verzeichnis \GKComputer auf meinem
Webserver.
Im mittleren Abschnitt der Registerkarte VERZEICHNIS sehen Sie die verschiede-
nen Berechtigungen (LESEN, SCHREIBEN, usw.) für das Verzeichnis. Hier gibt es
auch eine Option namens BESUCHE PROTOKOLLIEREN; markieren Sie diese, um
die Protokollierung zu aktivieren, oder demarkieren Sie die Option, um die Proto-
kollfunktion abzuschalten.
248 Protokollierung aktivieren

Abb. 10.1: Das Dialogfeld EIGENSCHAFTEN VON STANDARDWEBSITE enthält unten auf
der Registerkarte WEBSITE die Option PROTOKOLLIERUNG AKTIVIEREN

Abb. 10.2: Das Dialogfeld EIGENSCHAFTEN des Verzeichnisses \GKCOMPUTER,


Registerkarte VERZEICHNIS. Hier können Sie die Protokollierung
aktivieren oder deaktivieren.
Kapitel 10 • Aktivitäten von Sites protokollieren 249

10.3 Überwachung der Prozessorauslastung


IIS 5.0 enthält eine neue Funktion, mit der Sie die CPU-Auslastung des Servers in
Zusammenhang mit der Website überwachen können. Die Funktion ist nur ver-
fügbar, wenn Sie das Protokollformat »W3C-erweitert« gewählt haben.
Die Prozessorauslastung wird pro Website protokolliert und beinhaltet keine
Daten auf der Skript- oder Anwendungsebene. Bei der Prozessüberwachung
(oder, nach Microsoft, »Prozessnachverfolgung«) geht es um die Prozessorauslas-
tung, welche die Website als Ganzes verursacht.
Um die Prozessüberwachung zu aktivieren, müssen Sie zunächst das Dialogfeld
EIGENSCHAFTEN der in Frage kommenden Website öffnen. Selektieren Sie die
Registerkarte WEBSITE und stellen Sie sicher, dass das Protokoll »W3C-erwei-
tert« ausgewählt ist.
Klicken Sie nun im Abschnitt PROTOKOLLIERUNG auf die Schaltfläche EIGEN-
SCHAFTEN und wählen Sie die Registerkarte ERWEITERTE EIGENSCHAFTEN.
Suchen Sie hier nach dem Eintrag PROZESSABRECHNUNG (siehe Abbildung 10.3).

Abb. 10.3: Auf der Registerkarte ERWEITERTE EIGENSCHAFTEN müssen Sie den Eintrag
PROZESSABRECHNUNG selektieren, um die Prozessorauslastung zu
protokollieren

Markieren Sie das Kontrollkästchen PROZESSABRECHNUNG, um die Überwa-


chung der durch die Website verursachten Prozessorauslastung zu aktivieren.
Dabei sind die folgenden Optionen vorhanden:
250 Erweiterte Einstellungen für das Protokoll »W3C-erweitert«

• Prozessereignis. Dies ist der Prozesstyp, der ein Ereignis auslöst, z.B. eine
Anwendung oder eine Skriptdatei.
• Prozesstyp. Das ausgelöste Ereignis, wie etwa Site-Stop, Site-Pause usw. In-
formationen zu den Ereignissen finden Sie in der Onlinehilfe.
• Benutzerzeit insgesamt. Für den Benutzermodus gespeicherte Prozessorzeit
während des aktuellen Intervalls (in Sekunden).
• Kernelzeit insgesamt. Für den Kernelmodus gespeicherte Gesamtzeit wäh-
rend des aktuellen Intervalls (in Sekunden).
• Seitenfehler insgesamt. Anzahl der aufgetretenen Speicherseitenfehler.
• Prozesse insgesamt. Anzahl an CGI- und anderen systemfremden Anwendun-
gen, die während der Protokollierdauer erstellt wurden.
• Aktive Prozesse. Gesamtzahl der CGI- und systemfremden Anwendungen,
die während der Aufzeichnung des Protokolls ausgeführt wurden.
• Beendete Prozesse insgesamt. Gesamtzahl der CGI- und systemfremden An-
wendungen, deren Ausführung aufgrund der Prozessbeschränkung angehalten
wurden.
Wenn Sie Ihre Einstellungen vorgenommen haben, klicken Sie auf die Schaltflä-
che OK, um wieder zum Dialogfeld EIGENSCHAFTEN DER WEBSITE zurückzuge-
langen. Klicken Sie dort ebenfalls auf OK, um die Änderungen zu speichern und
das Dialogfeld EIGENSCHAFTEN zu schließen.

Hinweis
Die Prozessabrechnung ist nur für Websites, nicht jedoch für FTP-Sites
vorhanden.

10.4 Erweiterte Einstellungen für das Protokoll »W3C-


erweitert«
Im vorangegangenen Abschnitt über die Protokolldateiformate wurde bereits
angemerkt, dass sich die Einstellungen für Protokolldateien im Format »W3C-
erweitert« in vielerlei Hinsicht an die eigenen Bedürfnisse anpassen lassen. Dank
dieser Anpassung können Sie die zu protokollierenden Daten auswählen. Klicken
Sie zu diesem Zweck im Fenster EIGENSCHAFTEN der gewünschten Website im
Abschnitt PROTOKOLLIERUNG auf die Schaltfläche EIGENSCHAFTEN. Das in
Abbildung 10.4 gezeigte Fenster wird daraufhin geöffnet.
Wenn Sie die Liste durchblättern, werden Sie sehen, dass eine beträchtliche
Anzahl von Protokolliereigenschaften vorhanden ist. Wir werden all diese Optio-
nen erläutern, damit Sie gezielt diejenigen Einstellungen wählen können, die
Ihren Bedürfnissen am ehesten entsprechen.
Kapitel 10 • Aktivitäten von Sites protokollieren 251

Abb. 10.4: Auf der Registerkarte ERWEITERTE EIGENSCHAFTEN des Dialogfelds


ERWEITERTE PROTOKOLLIERUNGSEIGENSCHAFTEN können Sie den
aufzuzeichnenden Inhalt Ihrer W3C-Protokolldatei modifizieren

Da die Auswahl aller Optionen offensichtlich sehr schnell zu sehr großen Proto-
kolldateien führen würde, sollten Sie bei der Auswahl mit Umsicht vorgehen.

Eintrag Erklärung
Datum Diese Option zeichnet das Datum auf, an dem das Ereignis
stattfand.
Uhrzeit Diese Option zeichnet die Uhrzeit auf, zu der das Ereignis statt-
fand.
Client-IP-Adresse IP-Adresse des anfordernden Clients.
Benutzername Benutzername des anfordernden Clients.
Dienstname Internetdienst des anfordernden Clients.
Servername Name des Servers, der den Protokolleintrag generiert hat.
Server-IP-Adresse IP-Adresse des Servers.
Serveranschluss Der für die Verbindung verwendete Anschluss.
Methode Vom Client durchgeführte Aktion (wie etwa der Befehl get)
URI-Stamm Ressource, auf die der Zugriff durchgeführt wurde (etwa eine
HTML-Seite oder ein ASP-Skript).
Tab. 10.2: Erweiterte Optionen für das Protokollformat »W3C-erweitert«
252 Erweiterte Einstellungen für das Protokoll »W3C-erweitert«

Eintrag Erklärung
URI-Abfrage Vom Client verwendete Suchzeichenketten.
Protokoll-Status Vorgangsstatus im HTTP-Format.
Win32-Status Vorgangsstatus im Windows-Format.
Bytes gesendet Vom Server gesendete Bytes.
Bytes empfangen Vom Server empfangene Bytes.
Aufnahmezeit Dauer der Transaktion.
Protokollversion Vom Client verwendete HTTP- oder FTP-Version.
Benutzer-Agent Vom Client verwendeter Browser.
Cookie Inhalt gesendeter oder empfangener Cookies.
Referenz Name der Site, die den Benutzer auf die aktuelle Seite umgelei-
tet hat (falls anwendbar).
Prozessereignis Typ des ereignisauslösenden Prozesses (Anwendung, CGI-
Skript, usw.).
Prozesstyp Ausgelöstes Ereignis (Site-Stop, Site-Restart etc.).
Benutzerzeit insge- Gesamtzeit der vom Client verwendeten Verbindung.
samt
Kernelzeit insgesamt Von der Verbindung benötigte Zeit im Prozessorkernelmodus.
Seitenfehler insge- Anzahl der aufgetretenen Speicherseitenfehler.
samt
Prozesse insgesamt Anzahl an CGI- und anderen systemfremden Anwendungen,
die während der Protokollierdauer erstellt wurden.
Aktive Prozesse Gesamtzahl der CGI- und der systemfremden Anwendungen,
die während der Aufzeichnung des Protokolls ausgeführt wur-
den.
Beendete Prozesse Gesamtzahl der CGI- und der systemfremden Anwendungen,
insgesamt deren Ausführung während der Sitzung aufgrund der Prozess-
beschränkung angehalten wurden.
Tab. 10.2: Erweiterte Optionen für das Protokollformat »W3C-erweitert« (Forts.)

Diese Optionsliste für das Format »W3C-erweitert« ist recht umfangreich; natür-
lich müssen (und sollten) Sie nicht alle Optionen für die Protokollierung auswäh-
len, aber die eine oder andere Einstellung sollte ihren Zweck für die meisten Sites
erfüllen.
Kapitel 10 • Aktivitäten von Sites protokollieren 253

10.5 Protokolldateien speichern


In Zusammenhang mit der Verwaltung von Protokolldateien wurde schon mehr-
fach erwähnt, dass Sie Ihre Festplatte bei nachlässiger Verwaltung der Protokoll-
dateien innerhalb kürzester Zeit problemlos bis zum Rand füllen können. Eine
Möglichkeit, diesem Umstand abzuhelfen, besteht in der Entwicklung einer Stra-
tegie zur Sicherung älterer Protokolldateien, damit für neue Dateien Platz
geschaffen wird.
IIS bietet Ihnen die Möglichkeit, Protokolldateien in ein frei wählbares Verzeich-
nis zu speichern. Sie können dabei auch festlegen, wie häufig diese Dateien gesi-
chert werden sollen. Je nach verwendetem Protokollformat werden auch unter-
schiedliche Standardnamen für die Dateien vergeben. Die folgenden Optionen
sind vorhanden:
• Stündlich. Die Protokolldateien werden stündlich erstellt.
• Täglich. Die Protokolldateien werden täglich erstellt, beginnend mit dem ers-
ten Eintrag nach Mitternacht.
• Wöchentlich. Die Protokolldateien werden wöchentlich erstellt, beginnend
mit dem ersten Eintrag nach Mitternacht des folgenden Samstags.
• Monatlich. Die Protokolldateien werden monatlich erstellt, beginnend mit
dem ersten Eintrag nach Mitternacht des vorhergehenden Monatsletzten.
• Unbegrenzte Protokolldateigröße. Neue Daten werden an das Ende der Pro-
tokolldatei gehängt. Um auf eine solcherart erstellte Protokolldatei zugreifen
zu können, müssen Sie den Server beenden.
• Maximale Protokolldateigröße. Wenn Sie diese Option wählen, dann können
Sie eine maximale Dateigröße angeben; erst bei deren Erreichen wird eine neue
Protokolldatei angelegt.

Hinweis
Bei den hier beschriebenen Optionen ist unter Mitternacht jeweils die
lokale Zeit 00:00 Uhr zu verstehen. Eine Ausnahme bildet das Protokoll
»W3C-erweitert«, welches als Referenz für Mitternacht die Zeit
00:00 Uhr GMT verwendet; Sie können diese Option bei Bedarf jedoch
so ändern, dass sie auf die lokale Zeit gesetzt wird.

Zur Konfiguration der Dateispeicher- und Intervalleinstellungen für die Protokol-


lierung öffnen Sie das Dialogfeld EIGENSCHAFTEN der Web- bzw. FTP-Site und
aktivieren die Registerkarte WEBSITE (bzw. FTP-SITE). Klicken Sie dort ganz
unten im Abschnitt PROTOKOLLIERUNG AKTIVIEREN auf die Schaltfläche EIGEN-
SCHAFTEN, um das Dialogfeld ERWEITERTE PROTOKOLLIERUNGSEIGENSCHAFTEN
(Abbildung 10.5) aufzurufen.
254 Protokolldateien speichern

Abb. 10.5: Die Registerkarte ALLGEMEINE EIGENSCHAFTEN, auf der Sie die Intervalle
für die Protokollierung festlegen können

Standardmäßig wird zunächst die Registerkarte ALLGEMEINE EIGENSCHAFTEN


angezeigt. Hier können Sie im Abschnitt ZEITRAUM FÜR DIE PROTOKOLLDATEI-
AKTUALISIERUNG die Intervalle für die Protokolldateien (d.h. die Häufigkeit Ihrer
Erzeugung) festlegen. Unterhalb dieses Abschnitts findet sich die Option LOKALE
ZEIT FÜR DATEIBENENNUNG UND ROLLOVER VERWENDEN. Hier legen Sie fest,
wie die Zeitangabe beim Protokollformat »W3C-erweitert« erfolgen soll (siehe
auch der obige Hinweis).
Im Textfeld PROTOKOLLDATEIVERZEICHNIS ganz unten auf der Registerkarte ist
standardmäßig das Verzeichnis %WinDir%\System32\LogFiles eingetragen
(%WinDir% ist das Verzeichnis, in dem Windows 2000 installiert wurde). Sie
können die Angabe nach eigenem Gutdünken ändern oder auf die Schaltfläche
DURCHSUCHEN klicken, um ein Verzeichnis oder Laufwerk Ihrer Wahl auszusu-
chen.
Beachten Sie die Angabe NAME DER PROTOKOLLDATEI unterhalb des Textfeldes.
Hier wird das Format der bei Speicherung vergebenen Protokolldateinamen ange-
zeigt. Wie Sie sehen können, beginnt der Name der auf meinem Computer erstell-
ten Protokolldateien immer mit einem e (was darauf verweist, dass ich das Format
»W3C-erweitert« gewählt habe), gefolgt von jeweils zweistelligen Angaben für
Jahr, Monat und Tag und der Dateikennung .log. Mit Hilfe dieser Angaben kön-
nen Sie bestimmte Protokolldateien bei Bedarf schneller ausfindig machen.
Kapitel 10 • Aktivitäten von Sites protokollieren 255

10.6 Protokolldateien in das NCSA-Format konvertieren


Sie können Ihre Protokolldateien in den Formaten »W3C« oder »Microsoft IIS«
in das NCSA-Format konvertieren. Die Konvertierung erfolgt dabei über eine
Befehlszeileneingabe. Die Syntax hierfür lautet:
convlog -i,n,e dateiname.log -t -l(0,1,2) -o -x -d

Hierbei sind die folgenden Optionen vorhanden:


• -i. Typ der Ausgangsdatei.

• -n. Bearbeitung einer NCSA-Datei.

• -e. Bearbeitung einer W3C-Datei.

• dateiname.log. Name der Ausgangsdatei.

• -t (ncsa:GMTversatz). Standardausgabe im NCSA-Protokolldateiformat.


GMTversatz ist hierbei die Differenz zur GMT-Zeit.
• -l(0,1,2). In einer Datei im Format »Microsoft IIS« verwendetes Datums-
format:
0: MM/TT/JJ (Standard)
1: JJ/MM/TT (japanisch)
2: TT.MM.JJ (deutsch)
• -o. Zu verwendendes Ausgabeverzeichnis.

• -x. Speichert Transaktionseinträge (d.h. Nicht-HTTP-Einträge) in eine Image-


datei mit der Dateierweiterung .dmp.
• -d. Kann während des Konvertierungsvorgangs einen Domänennamen statt
einer IP-Adresse verwenden.
Wenn ich also eine Protokolldatei im Format »W3C-erweitert« auf meinem Ser-
ver in eine NCSA-Datei mit vierstündiger Differenz zur GMT-Zeit konvertieren
wollte, dann sähe die Syntax so aus:
convlog -ie ex000407.log -t ncsa:-0400

10.7 Fazit
Die Protokollierung der Aktivitäten in Ihrem Netzwerk bietet eine Menge Vor-
teile, denn mit ihrer Hilfe können Sie feststellen, wer Ihre Site wie benutzt.
Die Werbeabteilung Ihrer Organisation ist mit Sicherheit an solchen Informatio-
nen interessiert, denn sie können bei der Bestimmung von Webseiten hilfreich
256 Fazit

sein, die noch ein wenig herausgeputzt werden müssen; ferner ist aus Protokollda-
teien ersichtlich, welche Dienste oder Produkte den Kunden am meisten interes-
sieren.
Auch Administratoren könnten sich für die Protokolle interessieren, denn sie
könnten dieser Gruppe bei der Behandlung von Problemen wie toten Links, Ver-
bindungsschwierigkeiten und Überlastungen der Site behilflich sein.
Da die Protokolldateien auch die IP-Adressen und Namen von Besuchern enthal-
ten, sind sie auch aus sicherheitstechnischer Sicht interessant. Wenn Sie feststel-
len, dass ein Benutzer in einen nichtöffentlichen Bereich der Site eingedrungen
ist, können Sie über die Protokolle feststellen, welche Clients zum Zeitpunkt des
Einbruchs mit Ihrem System verbunden waren und welche Ressourcen sie
benutzten.
Die verschiedenen Protokollierungsformate lassen Ihnen die Wahl zwischen
ASCII-Textdateien (Microsoft IIS, NCSA) oder einem Format wie »W3C-erwei-
tert«, das eine Reihe von Benutzereinstellungen bietet. Zum Zweck der Analyse
und der Tendenzbestimmung können Sie die Protokolldateien ferner auch mit
einer Tabellenkalkulation oder einer Datenbankanwendung laden und bearbeiten.
Insgesamt gesehen sind die Protokollierungsfunktionen von IIS 5.0 eine nützliche
Erweiterung dieses Produkts. Sie versorgen Sie mit wertvollen Daten über die
Aktivitäten auf Ihren Web- und FTP-Sites und machen Ihren Job als Webadminis-
trator so einfacher.
Kapitel 11
Leistungsoptimierung

11.1 IIS-Leistung optimieren 258


11.2 Speicherverwaltung 263
11.3 Prozessorauslastung 267
11.4 Netzwerkkapazität 270
11.5 Fazit 280
258 IIS-Leistung optimieren

Die Leistungsoptimierung ist für jeden Webserver ein Muss. Die Gründe dafür
sind vielfältig, haben aber alle ihre Berechtigung. Websites beanspruchen die
Ressourcen eines Servers weitaus mehr als FTP-Sites, denn eine FTP-Site stellt
lediglich Dateien bereit, während eine Website neben statischen HTML-Seiten
auch serverseitige Anwendungen anbietet. Wie bereits in den vorhergehenden
Kapiteln angemerkt wurde, lassen sich mehrere Anwendungen im gleichen Pro-
zess wie IIS oder in parallel ablaufenden Prozessen ausführen.
Wenn Sie wollen, dass Ihre Besucher beim Besuch Ihrer Website Spaß haben und
sich nicht über überlastete Server oder langes Warten auf Seiten und Anwendun-
gen ärgern müssen, dann sollten Sie die Informationen, die Sie in diesem Kapitel
finden, benutzen, um aus Ihrem Server das Optimum an Leistung herauszuholen.
Leistungsbeeinflussende Faktoren finden sich unter Hardware wie Software. Wir
werden die Leistungsüberwachung unter verschiedenen Gesichtspunkten betrach-
ten: Wie überprüft und optimiert man die Systemleistung? Welche Überwa-
chungsprogramme sind vorhanden? Wie sind die Festplatten zu optimieren?
Es ist zuallererst wichtig, eine Messlatte für die Leistung zu erstellen. Daraus
ergibt sich, dass Überprüfung und Optimierung ständige Arbeiten sind, die regel-
mäßig auszuführen sind. Mit Hilfe der hier gegebenen Informationen werden Sie
recht schnell ein Gefühl dafür entwickeln, wie Serverressourcen benutzt werden
und wann die Zeit für Upgrade oder Austausch von Hardware gekommen ist.

11.1 IIS-Leistung optimieren


Um die Leistung Ihres Servers zu optimieren, müssen Sie zunächst einmal alle
vorhandenen Parameter betrachten und feststellen, wo Engpässe auftreten. IIS 5.0
und Windows 2000 bringen dazu ein paar hilfreiche Tools mit, deren effiziente
Nutzung es Ihnen erlaubt, jene Bereiche zu finden, auf die Sie Ihre Bemühungen
konzentrieren sollten.
Wir haben bereits erwähnt, dass die Leistungsüberwachung ein kontinuierlicher
Prozess ist – Sie suchen einen Flaschenhals, beseitigen ihn, und dann suchen Sie
nach dem nächsten. Dieser Vorgang kann eine ganze Zeit dauern, und am Ende
müssen Sie dann möglicherweise doch alle Serverkomponenten austauschen. Das
ist ganz sicher nicht der Sinn der Übung.
Die im Lieferumfang von Windows 2000 enthaltenen Hilfsprogramme und deren
Funktionen werden in den folgenden Abschnitten beschrieben werden.
Beim Systemmonitor handelt es sich um ein Programm, mit dem Sie die Leistung
des Servers in selbstdefinierten Intervallen überwachen können. Die erhaltenen
Informationen lassen sich auf vielfältige Weise zur Ermittlung der Serverleistung
verwenden.
Kapitel 11 • Leistungsoptimierung 259

Der Systemmonitor verwendet zur Überwachung der Serverleistung so genannte


Leistungsindikatoren. Ein paar der häufiger verwendeten Indikatoren einschließ-
lich empfohlener Wertebereiche sind nachfolgend aufgelistet:
• Speicher: Seiten/s. Sollte zwischen 0 und 20 Seiten pro Sekunde liegen.
• Speicher: Verfügbare Bytes. Sollte bei mindestens 4 Mbyte liegen.
• Speicher: Zugesicherte Bytes. Microsoft empfiehlt, nicht mehr als 75% des
physikalischen Serverspeichers zuzusichern.
• Prozessorzeit (%). Sollte unterhalb von 75% liegen.
• System: Prozessorwarteschlangenlänge. Sollte nicht größer als »2« sein.
• Physikalischer Datenträger: Warteschlangenlänge. Auch hier sollte der
Wert »2« nicht überschritten werden.
• Active Server Pages: Byte in Warteschlange. Sollte »0« sein, d.h. keine
ASP-Anfrage sollte in die Warteschlange gestellt werden.
Dies ist keine vollständige Liste der verfügbaren Indikatoren, die in Zusammen-
hang mit IIS genutzt werden können, aber sie stellt einen guten Ausgangspunkt
für die Überwachung der Serverleistung dar. Weitere Informationen zu diesen und
anderen Indikatoren finden Sie in der Dokumentation zum Leistungsmonitor.
Ein weiteres Tool, das zur Überwachung der Webserverleistung verwendet wer-
den kann, ist die Ereignisanzeige. Auch wenn die Ereignisanzeige in erster Linie
zur Aufzeichnung von Fehlermeldungen und Ereignissen gedacht ist, die auf-
grund von Anwendungen, Systemprogrammen und Sicherheitsmerkmalen des
Servers geschehen, so können Sie die Protokolle trotzdem dahingehend überprü-
fen, ob sich anwendungsseitig bestimmte Tendenzen entwickeln. Fehlermeldun-
gen zu nicht antwortenden oder nicht ausgeführten Anwendungen können auf
Sachverhalte verweisen, die alternativ zu Flaschenhälsen als Ursache einer
schwachen Serverleistung in Frage kommen.
Der Task-Manager (Abbildung 11.1) ist ein praktisches Programm, welches mit
Windows 2000 ausgeliefert wird. Mit ihm können Sie überprüfen, welche Res-
sourcen die auf dem Computer ausgeführten Prozesse beanspruchen.
Auf der Registerkarte PROZESSE des Task-Managers befinden sich sechs Daten-
spalten. Die ersten fünf davon werden standardmäßig angezeigt, die sechste
Spalte Ändern der Speichernutzung habe ich hinzugefügt; sie erlaubt auf einen
Blick die Feststellung, ob sich irgendeine Anwendung daneben benimmt. Die ein-
zelnen Spalten sind die folgenden:
• Name. Diese Spalte listet die zur Zeit ausgeführten Prozesse auf. Der Prozess-
name ist dabei normalerweise der wirkliche Name der zugehörigen ausgeführ-
ten Datei (also etwa iexplore.exe für den Internet Explorer).
260 IIS-Leistung optimieren

Abb. 11.1: Der WINDOWS TASK-MANAGER ist ein sehr praktisches Programm zur
Überwachung der Systemressourcen, die jeder ausgeführte Prozess
beansprucht

• PID. Windows NT und 2000 vergeben eine Prozesskennung (Process ID, PID)
ähnlich der unter UNIX und Linux verwendeten. Die PID wird intern durch das
Betriebssystem verwendet, um eine ausgeführte Anwendung oder einen Pro-
zess schnell aufzufinden. Wird die Anwendung beendet oder neu gestartet,
dann ist die PID nicht mehr dieselbe.
• CPU-Nutzung. In dieser Spalte steht, wie viel Prozessorzeit der jeweilige Pro-
zess beansprucht. Wenn ein Prozess 85% oder mehr verwendet, dann arbeitet
entweder die Anwendung nicht einwandfrei, oder Sie brauchen dringend einen
neuen Prozessor.
• CPU-Zeit. Dies ist die Prozessorgesamtzeit, die der Prozess seit seinem Start
beansprucht hat. Hierbei hat der Leerlaufprozess normalerweise den höchsten
Wert.
• Speichernutzung. Dies ist die Gesamtanzahl an Seiten, die dieser Prozess mo-
mentan im Speicher hält.
Kapitel 11 • Leistungsoptimierung 261

• Ändern der Speichernutzung. Hierbei handelt es sich um die Änderung der


Speichernutzung durch den Prozess seit der letzten Werteaktualisierung. Der
Wert kann sich sowohl nach oben als auch nach unten bewegen.
Einer der Gründe, warum ich die Spalte Ändern der Speichernutzung in meinem
Task-Manager hinzugefügt habe, ist, dass man hiermit sehr schnell feststellen
kann, ob eine Anwendung mit einem Speicherleck vorhanden ist. Ein Speicher-
leck tritt auf, wenn eine Anwendung Speicher anfordert, diesen jedoch nach
Beendigung nicht wieder freigibt. Das kommt häufiger in der Welt der objektori-
entierten Programmierung vor, in der Programmierer manchmal vergessen, ein
Objekt wieder freizugeben, nachdem dessen Abarbeitung im Code abgeschlossen
ist. Der Wert Ändern der Speichernutzung wird zusehends ansteigen, und die
Anwendung wird immer mehr und mehr Speicher beanspruchen – bis am Ende
keiner mehr übrig ist.
Um Spalten im Task-Manager hinzuzufügen, wählen Sie im Menü ANSICHT den
Eintrag SPALTEN AUSWÄHLEN. Daraufhin wird ein Dialogfeld aufgerufen, in dem
Sie die gewünschten Spalten ergänzen können. Wählen Sie dort die Option Verän-
derung der Speichernutzung aus. Wenn Sie ein Kontrollkästchen löschen, wird
die zugehörige Spalte aus der Ansicht entfernt.
Der Netzwerkmonitor überwacht den Datenverkehr im Netzwerk, d.h. er sammelt
detaillierte Daten über die Datenpakete, die in Ihrem Netzwerk unterwegs sind.
Sie können einen Sammelfilter konfigurieren, um die Datensammlung auf
bestimmte Informationen zu beschränken, oder Sie können einen Sammelauslöser
einrichten, der eine Anwendung ausführen kann, wenn ein bestimmtes Ereignis
im Netzwerk auftritt.
Die Festplattenoptimierung ist kein Tool im eigentlichen Sinne, aber sie kann bei
der Beseitigung von Serverengpässen auf solchen Systemen sehr hilfreich sein,
die hardware- oder softwareseitig nicht angemessen für die Datenspeicherung
oder -auffindung eingerichtet sind. Eine Festplatte hat immer das Problem der
Latenz; dieser Begriff bezeichnet die Zeit, welche die Festplatte benötigt, um
Daten auf dem physikalischen Datenträger zu lokalisieren, bevor sie geladen wer-
den können. Bei neueren Laufwerken mit ihren schnellen Motoren sinkt diese
Latenzzeit jedoch zusehends.
Trotzdem gibt es eine Festplattenoptimierung, bei deren Durchführung Sie einen
doppelten Nutzen erzielen. Wenn sich mindestens drei physikalische Festplatten
in Ihrem Server befinden, auf denen jeweils die gleiche Menge an Speicherplatz
vorhanden ist, dann sollten Sie die Einrichtung eines Stripesetdatenträgers mit
Parität in Betracht ziehen. Diese Festplattenkonfiguration erhöht nicht nur die
Leseleistung, sondern bietet auch Datenredundanz: Wenn ein Laufwerk ausfällt,
lassen sich die Daten aufgrund der Paritätsdaten auf den anderen beiden Festplat-
ten wiederherstellen. Diese Option ist natürlich recht speicherintensiv, denn ein
vollständiger Datenträger wird allein zur Speicherung der Paritätsdaten benötigt.
262 IIS-Leistung optimieren

Stripesetdatenträger sind auch als RAID-5-Datenträger (Software-RAID,


Level 5) bekannt. Microsoft hatte diesen RAID-Level unter Windows NT neu ein-
geführt und ihn dann in Windows 2000 übernommen.
Das Wesentliche bei der Erstellung von Stripesetdatenträgern ist die Verwendung
dreier Festplatten zum Zwecke der Fehlertoleranz. Dies wird dadurch erreicht,
dass die Daten auf zwei Festplatten gespeichert und dann anhand eines mathema-
tischen Algorithmus Paritätsdaten berechnet und auf der dritten Festplatte gespei-
chert werden. Einziger Sinn und Zweck dieser Paritätsdaten ist die Wiederher-
stellbarkeit der Daten in dem Fall, dass eine der Festplatten ausfällt.
Damit Sie einen RAID-5-Datenträger auf Ihrem Server erstellen können, müssen
vier Festplatten installiert sein – System- und Startpartition können nämlich nicht
auf einem Stripesetdatenträger mit Parität liegen. Stellen Sie sicher, dass die drei
zu verwendenden Festplatten NTFS-formatiert und partitioniert sind.
Rufen Sie zur Konfiguration die Systemsteuerung auf und wählen Sie dort VER-
WALTUNG. Doppelklicken Sie auf das Symbol COMPUTERVERWALTUNG. In der
Baumstruktur selektieren Sie unter der Überschrift DATENSPEICHER die Option
DATENTRÄGERVERWALTUNG.
Klicken Sie nun mit der rechten Maustaste auf den unpartitionierten Bereich der
ersten Festplatte und wählen Sie die Option DATENTRÄGER ERSTELLEN. Der
ASSISTENT ZUM ERSTELLEN VON DATENTRÄGERN wird gestartet. Klicken Sie im
Begrüßungsbildschirm auf WEITER und wählen Sie im nächsten Fenster die
Option RAID-5-DATENTRÄGER. Folgen Sie dann den Anweisungen, die Ihnen der
Assistent gibt.
Wenn Sie die Fehlertoleranzmöglichkeiten nicht nutzen wollen, dann können Sie
auch einen »normalen« Stripesetdatenträger erstellen. Auch hier werden die
Daten in gleichgroße Stücke aufgeteilt; da aber keine Paritätsdaten erstellt wer-
den, ist die Leistung höher.

Tipp
Wenn Sie sowohl Fehlertoleranz als auch optimale Leistung benötigen,
dann sollten Sie über die Implementation einer hardwaregestützten
Lösung (wie etwa eines Hardware-RAID-Controllers) nachdenken. Hard-
warecontroller berechnen die Paritätsdaten selbst und belasten die CPU
aus diesem Grund nicht.

Dies sind nur ein paar der Möglichkeiten, die Leistung Ihres Servers zu optimie-
ren (und so Ihre Konkurrenten auszustechen). Zugegeben: Diese Verbesserungen
werden Ihren Webserver nicht ins Guinness-Buch der Rekorde katapultieren, aber
sie können Ihnen helfen, das letzte Quäntchen Leistung aus Ihren Hardwareinves-
titionen herauszukitzeln.
Kapitel 11 • Leistungsoptimierung 263

11.2 Speicherverwaltung
Neben dem Prozessor ist bei einem Computer der Arbeitsspeicher einer der wich-
tigsten Faktoren mit Auswirkung auf die Systemleistung. Eine alte Mär besagte,
dass ein Computer umso schneller war, je mehr RAM er beinhaltete. Dies galt
auch für Windows NT 4.0 – bis die Messlatte von 128 Mbyte erreicht worden
war. Zusätzlich eingebauter Arbeitsspeicher hatte nicht den gleichen Steigerungs-
effekt auf die Systemleistung, d.h. die Investitionen zahlten sich nicht mehr auf
gleiche Weise aus wie zuvor. Bei der Entwicklung von Windows 2000 hat man
sich dieses Problems angenommen, und so verläuft die Leistungssteigerung nun
äquivalent zum RAM-Ausbau.
Wenn man über den Arbeitsspeicher eines Servers redet, dann sind einige Aspekte
in Betracht zu ziehen. Erstens: Wenn auf einem Server nicht viel RAM installiert
ist, dann lagert Windows die Daten auf die Festplatte aus. Dies kann an zwei
Fronten zu Leistungseinbußen führen, denn eine hemmungslose Auslagerung
reduziert nicht nur die Anwendungsleistung, sondern stört auch reguläre Schreib-
und Lesevorgänge von Daten.
Ein weiterer Grund, der dafür spricht, möglichst viel RAM in den Server zu
packen, ist die Tatsache, dass IIS und Windows 2000 diesen Speicher als Cache
verwenden werden. Arbeitsspeicher arbeitet wesentlich schneller als eine Fest-
platte, insofern macht es Sinn, häufig benötigte Dateien statt auf der Festplatte im
Speicher abzulegen und den Zugriff so zu beschleunigen. Dieser Zwischenspei-
cher ist tatsächlich das RAM des Computers und nicht der Cachespeicher, der
zwischen Prozessor und Speicher sitzt. IIS speichert einen Dateihandle im Cache,
Windows 2000 die Datei selbst.
Eine Möglichkeit, die Verwendung des Arbeitsspeichers zu optimieren, besteht
darin, den Rechner unter Windows 2000 als Anwendungsserver (statt als Datei-
server) zu konfigurieren. Und auch wenn Sie theoretisch Dateien bereitstellen,
sollten Sie Windows 2000 so konfigurieren, dass es seinen Arbeitsspeicher wie
auf einem Anwendungsserver verwendet. Gehen Sie dazu wie folgt vor:
1. Klicken Sie auf START/EINSTELLUNGEN/NETZWERK- UND DFÜ-VERBINDUN-
GEN.

2. Klicken Sie mit der rechten Maustaste auf das Symbol LAN-VERBINDUNG und
wählen Sie den Eintrag EIGENSCHAFTEN. Das Fenster EIGENSCHAFTEN (Abbil-
dung 11.2) öffnet sich.
3. Doppelklicken Sie auf das Symbol DATEI- UND DRUCKERFREIGABE, um das
Dialogfeld EIGENSCHAFTEN VON DATEI- UND DRUCKERFREIGABE FÜR MICRO-
SOFT-NETZWERKE zu öffnen.

4. Wählen Sie die Option DATENDURCHSATZ FÜR NETZWERKANWENDUNGEN


MAXIMIEREN und klicken Sie auf OK, um das Dialogfeld zu schließen.
264 Speicherverwaltung

5. Klicken Sie im Dialogfeld EIGENSCHAFTEN VON LAN-VERBINDUNG AUF OK,


um es zu schließen und die Änderungen zu übernehmen.

Abb. 11.2: Das Dialogfeld EIGENSCHAFTEN VON LAN-VERBINDUNG erlaubt eine


Speicheroptimierung über die Option DATEI- UND DRUCKERFREIGABE

Die Speicherleistung können Sie bei Bedarf mit den entsprechenden Leistungsin-
dikatoren im Systemmonitor überwachen. Es sind auch Indikatoren für den Cache
vorhanden, die sich ebenfalls verwenden lassen. Diese sind:
• Datei-Cache-Leerungen. Dieser Leistungsindikator muss die Anzahl der
Dateicache-Leerungen, die seit dem Serverstart durchgeführt wurden.
• Datei-Cache-Treffer. Dies ist die Gesamtzahl erfolgter Cache-Lookups.
• Datei-Cache-Treffer (%). Dieser Prozentwert bezeichnet den Anteil der
Cacheanfragen, die erfolgreich beantwortet wurden.
• Datei-Cache-Fehler. Dies ist die Gesamtzahl der Cacheanfragen, die nicht er-
folgreich beantwortet werden konnten.
Zugegeben: Die Liste mit IIS-Speicherobjekten ist wirklich nicht besonders lang.
Aber es gibt noch ein paar weitere Indikatoren, die den BLOB-Cache (Binary
Large Object, großes Binärobjekt) und den URI-Cache überwachen.
Kapitel 11 • Leistungsoptimierung 265

Damit Sie diese Indikatoren einsetzen können, müssen Sie zunächst den System-
monitor ausführen. Klicken Sie dann in der Schaltflächenleiste auf die Schaltflä-
che HINZUFÜGEN (erkennbar am Pluszeichen) und wählen Sie aus der Liste der
Leistungsobjekte den Eintrag INTERNET-INFORMATIONSDIENSTE GLOBAL. Nun
werden die vorhandenen Leistungsindikatoren angezeigt.

Hinweis
Verwechseln Sie die hier vorhandenen Cache-Indikatoren nicht mit
denen, die im Systemmonitor unter dem Objekt Speicher zusammenge-
fasst sind.

Wie können Sie nun mit diesen Daten die Serverleistung optimieren? Grundsätz-
lich lässt die Überwachung erfolgreicher und fehlgeschlagener Cachetreffer
Rückschlüsse darauf zu, ob Ihr Server genug RAM hat oder nicht. Treten zahlrei-
che fehlgeschlagene Cacheanfragen auf, dann heißt das nichts anderes, als dass
der IIS die benötigten Dateien auf der Festplatte suchen muss, da sie im Speicher
nicht vorhanden sind. Sie können dies auch verifizieren, indem Sie den Leistungs-
indikator PHYSIKALISCHER DATENTRÄGER: ZEIT (%) in die gleiche Grafik inte-
grieren. Wenn auch dieser Indikator einen hohen Wert hat, dann können Sie ganz
sicher sein, dass Sie mehr RAM benötigen. Ist der maximale Speicherausbau
Ihres Servers bereits erreicht, dann sollten Sie über ein Upgrade des Mainboards
oder eine Lösung mit Clustering nachdenken.
Eine andere Methode der Leistungsoptimierung über den Speicherausbau ist die
Datenflussschätzung. Bei diesem Vorgang nennen Sie IIS den von Ihnen erwarte-
ten Serverdatenverkehr, und IIS nimmt dann die Speichereinstellungen entspre-
chend vor. Wenn Sie den Wert ein wenig höher einstellen als den tatsächlichen
oder geschätzten Wert, dann haben Sie bereits einen Leistungsgewinn erzielt.
Durch eine viel zu hohe Einstellung hingegen verschwenden Sie Speicherressour-
cen, die an anderer Stelle vielleicht gebraucht werden könnten; auch wenn Ihr
Server eine Website bereitstellt, so wird er trotzdem für die Ausführung der einen
oder anderen Anwendung verwendet werden, und auch Windows 2000 selbst
benötigt ein paar Ressourcen, um diverse Dienste im Hintergrund ausführen zu
können, die für die Betriebssystemfunktionen unerlässlich sind.
Aber wie können Sie Ihren Datenverkehr genau einschätzen? Es ist besser, nicht
ins Blaue hinein zu schätzen, sondern im Systemmonitor die Leistungsindikato-
ren VERBINDUNGSVERSUCHE INSGESAMT und AKTUELLE VERBINDUNGEN zu
überwachen. Diese Indikatoren finden Sie unter dem Objekt WWW-DIENST.
Sammeln Sie für etwa eine Woche (einschließlich Wochenende) Daten für diese
beiden Indikatoren und verwenden Sie diese Zahlen dann als Ausgangspunkt für
Ihre Schätzung.
Um die Anzahl der täglichen Verbindungen für den Webserver einzustellen, öff-
nen Sie das Dialogfeld EIGENSCHAFTEN der Website und aktivieren die Register-
karte LEISTUNG. In Abbildung 11.3 sehen Sie im Abschnitt LEISTUNGSOPTIMIE-
266 Speicherverwaltung

RUNG einen Schiebregler mit drei Skalenpunkten, welche die Anzahl der Zugriffe
bezeichnen: WENIGER ALS 10.000, WENIGER ALS 100.000 oder MEHR ALS
100.000 pro Tag. Verschieben Sie den Regler so, dass die Einstellung mit den von
Ihnen anhand der Protokolldateien ermittelten Werten übereinstimmt.

Abb. 11.3: Die Registerkarte LEISTUNG mit dem Schieberegler zur


Leistungsoptimierung

Wenn Sie den Regler bewegen, werden Sie feststellen, dass er nicht so ganz wie
ein normaler Schiebregler funktioniert; Sie können nur eine der drei angegebenen
Einstellungen wählen, Zwischenwerte sind nicht möglich. Dies widerspricht
natürlich in gewisser Weise meiner obigen Aufforderung, eine »ein wenig
höhere« Einstellung vorzunehmen als die tatsächlichen Werte. Verwenden Sie
also die nächsthöhere Einstellung.
Bevor wir diesen Abschnitt über den Arbeitsspeicher abschließen, will ich noch
einmal wiederholen, dass Sie so viel RAM wie irgend möglich in Ihren Server
packen sollten – insbesondere, wenn Sie Skripts und Anwendungen auf dem Ser-
ver ausführen. Die Investitionen werden sich bereits mittelfristig auszahlen, denn
die Amortisationsrate ist hier recht kurz.
Kapitel 11 • Leistungsoptimierung 267

11.3 Prozessorauslastung
Wann immer von der Optimierung der Serverleistung die Rede ist, muss auch die
CPU berücksichtigt werden – schließlich ist sie für die Verarbeitung der Anwei-
sungen zuständig, die die Bereitstellung von Webseiten und die Ausführung von
Anwendungen ermöglichen. Und dort sollte selbstredend kein Engpass entstehen!
Eine Möglichkeit zur Feststellung, ob die CPU als Flaschenhals in Ihrem System
agiert, ist das Überwachen einiger Indikatoren zur Ermittlung der Prozessorleis-
tung. Der wichtigste Indikator ist in diesem Zusammenhang sicher die PROZES-
SORZEIT (%), aber ich empfehle auch INTERRUPTS/S – auf diese Weise stellen Sie
fest, wer oder was den Prozessor übermäßig verwendet. Beachten Sie jedoch,
dass eine hohe Anzahl von Interrupts pro Sekunde nicht unbedingt das Ergebnis
einer anspruchsvollen Anwendung sein muss; hier können auch eine minderwer-
tige Netzwerkkarte oder ein anderes E/A-Gerät der Verursacher sein.
Ich erwähne dies, da ich eine solche Netzwerkkarte hatte, und es hat eine ganze
Weile gedauert, bis ich herausfand, dass sie der Schuldige war. Das ursprüngliche
Problem war nämlich, dass mein Computer extrem langsam war. Ich verwendete
also den Systemmonitor, um festzustellen, wann die hohe Prozessorauslastung
auftrat. Den Leistungsindikator INTERRUPTS/S hatte ich eigentlich nur versehent-
lich hinzugefügt, aber das war mein Glück.
Abbildung 11.4 zeigt im Leistungsmonitor den Verlauf zweier Indikatoren.
Unglücklicherweise handelt es sich hier um Graustufenabbildungen, d.h. Sie
müssen mir vertrauen, wenn ich behaupte, dass die Kurve mit den hohen Aus-
schlägen den Indikator für die PROZESSORZEIT (%) und die andere, kaum sicht-
bare den für die INTERRUPTS/S darstellt. Wie der Grafik zu entnehmen ist, habe
ich die unbrauchbare Netzwerkkarte inzwischen weggeworfen.
Die in Abbildung 11.4 angezeigten Spitzenwerte weisen keineswegs darauf hin,
dass meine CPU einen Engpass darstellt, denn sie dauern immer nur einen kurzen
Moment. Ersetzt werden sollte der Prozessor, wenn dieser Wert die Marke von
80% dauerhaft überschreitet; wenn jedoch auch der Wert des Indikators INTER-
RUPTS/S einen ständigen hohen Wert hat, sollten Sie die CPU erst ersetzen, nach-
dem Sie sich vergewissert haben, dass alle eingebauten E/A-Karten in Ordnung
sind.
Welche Möglichkeiten haben Sie, wenn Sie feststellen, dass die Prozessorauslas-
tung sehr hoch ist? Nun, Sie sollten die CPU noch nicht gleich ersetzen, insbeson-
dere wenn Sie die Unternehmensführung gerade erst erfolgreich von der Notwen-
digkeit eines Webservers überzeugt haben; man ist dort sicher nicht erfreut über
den Austausch des »neuen« Prozessors, und auch das Vertrauen in Ihre Fähigkei-
ten könnte durch ein solches Vorgehen stark beschädigt werden.
268 Prozessorauslastung

Abb. 11.4: Der Systemmonitor zeigt ein paar Spitzenwerte beim Leistungsindikator
PROZESSORZEIT (%) an

Falls die entsprechenden Bestände vorhanden sind, können Sie die Website oder -
sites auch über mehrere Server verteilen und die Möglichkeit der Replikation
benutzen, um einen Server zu entlasten. Denkbar ist auch der Einbau zusätzlicher
Prozessoren im Server. Windows 2000 Server unterstützt bis zu acht Server in
einem Rechner und Windows 2000 Data Center Server kann sogar mit
32 Prozessoren gleichzeitig arbeiten. Aber Data Center Server werden Sie wohl
kaum zum Betreiben einer Website verwenden.
Ein weiterer Ansatz, der ein Hardwareupgrade unnötig macht, ist die Verschie-
bung von prozessorintensiven Anwendungen auf einen anderen Server. Auf diese
Weise könnten Sie beispielsweise dann vorgehen, wenn Sie eine Website mit
ASP-Seiten und eine Datenbank wie SQL Server auf ein und demselben Server
betreiben; in diesem Fall sollten Sie die Datenbank auf einen anderen Server ver-
schieben, um den Webserver zu entlasten.
IIS 5.0 bringt auch noch ein weiteres neues Feature mit, nämlich die Prozessbe-
schränkung. Durch Implementierung der Prozessbeschränkung können Sie die
Zeit, die der Prozessor Out-of-Process-Anwendungen zuteilt, effizient beschnei-
den. Eine Anwendungsmöglichkeit für diese Funktion währe ein Hostdienst, der
mehrere Websites auf einem einzigen Server verwaltet; Sie können hier die Res-
sourcen für eine Site mit vielen Anwendungen oder CGI-Skripts beschränken, die
andernfalls unnötig viele CPU-Ressourcen mit Beschlag belegen und dadurch
andere Sites kalt stellen würde.
Kapitel 11 • Leistungsoptimierung 269

Die Prozessbeschränkung kann auf einzelne Websites angewandt werden, d.h. Sie
können die so genannten »Beschränkungsebenen« konfigurieren. Über diese
Funktion können Sie veranlassen, dass IIS ein Ereignis protokolliert, wenn eine
Site während eines bestimmten Zeitraums die Prozessorzeitbeschränkung über-
schreitet; in diesem Fall werden als Reaktion Folgeereignisse ausgelöst, die je
nach Beschränkungsebene anders aussehen:
• Ebene 1. Auf dieser Ebene wird lediglich ein Ereignis in das Ereignisprotokoll
von Windows 2000 geschrieben.
• Ebene 2. Damit diese Ebene erreicht wird, muss die Prozessorzeit einen Min-
destwert von 150% des Grenzwerts überschreiten. In diesem Fall wird Ereignis
in das Ereignisprotokoll von Windows 2000 geschrieben, und die Prozessor-
priorität aller Out-of-Process-Anwendungen wird auf Leerlauf zurückgesetzt.
• Ebene 3. Damit diese Ebene erreicht wird, muss die Prozessorzeit einen Min-
destwert von 200% des Grenzwerts überschreiten. In diesem Fall wird Ereignis
in das Ereignisprotokoll von Windows 2000 geschrieben, und alle Out-of-
Process-Anwendungen auf der Website werden beendet.
Die Prozessabrechnung wird alle 24 Stunden zurückgesetzt. Dieses Verhalten
kann ein Administrator beeinflussen, indem er die Website beendet und dann neu
startet; Website-Operatoren können die Einstellung hingegen nicht steuern.

Tipp
Wenn auf Ihrer Seite CGI-Anwendungen benutzt werden und Sie die
Prozessbeschränkung einsetzen, dann sollten Sie den Timeout-Wert für
Ihre CGI-Anwendungen herabsetzen. Falls nämlich eine CGI-Anwen-
dung fehlschlägt, wird der Thread nicht mehr freigegeben, bis der Time-
out erreicht wird.

Betrachten wir nun einmal, wie die Prozessbeschränkung konfiguriert wird. Öff-
nen Sie zunächst das Dialogfeld EIGENSCHAFTEN der Website, auf der Sie die
Prozessbeschränkung einsetzen wollen, und wählen Sie dort die Registerkarte
LEISTUNG. Abbildung 11.5 zeigt diese Registerkarte für die Website von »GK
Computer Consulting«, die auf meinem Server liegt.
Markieren Sie das Kontrollkästchen PROZESSBESCHRÄNKUNG AKTIVIEREN unten
auf der Registerkarte und geben Sie im Textfeld MAXIMALE CPU-VERWENDUNG
den gewünschten Prozentwert ein. Wenn Sie die Ebenen 2 und 3 der Prozessbe-
schränkung aktivieren wollen, markieren Sie auch das Kontrollkästchen
BESCHRÄNKUNGEN ERZWINGEN.
270 Netzwerkkapazität

Abb. 11.5: Auf der Registerkarte LEISTUNG können Sie die Prozessbeschränkung für
einzelne Websites aktivieren und erzwingen

11.4 Netzwerkkapazität
Bis hierher wurde die Leistungsoptimierung bereits für Speicher, Festplatten und
Prozessor beschrieben. Es gibt aber noch einen anderen Aspekt, der bei der (rea-
len wie auch wahrgenommenen) Leistung Ihrer Website eine wesentliche Rolle
spielt: Das Netzwerk.
Wie allgemein bekannt, kann sich die Netzwerkkapazität negativ auf die Leistung
eines Servers bei der Datenübertragung auswirken. Ein Webserver überträgt eben
einfach nur Daten über das Netzwerk – egal ob Internet oder Intranet. Und Sie
können den schnellsten Prozessor aller Zeiten in Ihrem Rechner verwenden und
diesen mit Arbeitsspeicher voll packen, wie Sie wollen: Wenn Netzwerkband-
breite oder Netzwerkkarte eine schnelle Übertragung der Daten verhindern, gibt
es allerseits lange Wartezeiten (und ebensolche Gesichter).
Und auch wenn Sie die benötigte (oder gar die gesamte verfügbare) Bandbreite
zur Verfügung haben, kann es trotzdem Probleme mit langsam oder gar nicht
gesendeten Daten geben. Dies kann für einen Webserver ein größeres Problem
sein, denn er muss unter TCP/IP laufen.
Kapitel 11 • Leistungsoptimierung 271

Dabei ist nicht TCP/IP das Problem. Vielmehr möchte ich unterstreichen, dass
man bei der Entwicklung von TCP/IP ein verbindungsorientiertes, zuverlässiges
Protokoll im Sinn hatte, d.h. es werden eine Menge Reserven zurückgehalten,
damit alle Daten auch wirklich in unveränderter Form ihren Bestimmungsort
erreichen. Klappt dies nicht, dann sendet TCP/IP die Daten eben erneut. Da
dadurch aber die Bandbreite stark in Mitleidenschaft gezogen wird, sollte die
Anzahl dieser Neuübertragungen auf ein Minimum reduziert werden.
Wenn eine der Sites auf Ihrem Server die gesamte Bandbreite für sich benutzt,
dann bekommen die anderen Sites ihre Daten nicht mehr verschickt. Also müssen
Sie die Bandbreite beschränken.
Die Bandbreitenbeschränkung beschränkt nur statische HTML-Seiten. Sie kön-
nen sie auf Computerebene oder für einzelne Websites konfigurieren, wobei Ein-
stellungen auf Websiteebene Vorrang vor den Computereinstellungen haben.
Die Feststellung, ob ein Problem mit der Netzwerkbandbreite vorliegt, treffen Sie
wieder mit dem Systemmonitor. Abbildung 11.6 zeigt erneut das entsprechende
Fenster, wobei diesmal ein paar netzwerkbezogene Leistungsindikatoren hinzuge-
fügt wurden.

Abb. 11.6: Der Systemmonitor mit ein paar netzwerkspezifischen Leistungs-


indikatoren
272 Netzwerkkapazität

In der oberen Zeile sehen Sie die AKTUELLE BANDBREITE. Der Wert liegt etwa
bei 10, d.h. meine Netzwerkkarte arbeitet mit einer Übertragungsrate von
10 Mbps. Dies ist die für meine Netzwerkverbindung vorhandene Gesamtband-
breite.
Der nächsthöhere Indikator ist die GESAMTANZAHL BYTES/S. Er zeigt die Rate an,
mit der die Bytes an der Schnittstelle empfangen und gesendet werden. Mit Hilfe
grundlegender Mathematikkenntnisse und dem Wissen, dass ein Byte acht Bits
entspricht, können Sie hier bereits bestimmen, wie gut Ihre Bandbreite genutzt
wird.
Der letzte von mir hinzugefügte Leistungsindikator hat keinen sehr hohen Wert.
Ja, er hat sich sogar nicht einmal verändert, was hier perfekt ist, denn er misst die
Länge der Ausgabewarteschlangen in Paketen und sollte den Wert 2 niemals über-
schreiten. Tut er es doch, dann weist dies darauf hin, dass Daten nicht gesendet,
sondern auf dem Server zurückgehalten werden; Ursache hierfür könnte eine
langsame Netzwerkkarte sein, d.h. Sie sollten dann zu einer Karte mit 100 Mbps
wechseln oder sogar den Erwerb einer Ethernetkarte mit einer Rate von 1 Gbps in
Betracht ziehen. Vielleicht liegt aber auch nur ein Engpass in Ihrem Datenstrom
vor – z.B. bei Ihrem Internetanbieter.
Eine Möglichkeit, die Auslastung der Netzwerkverbindung zu steuern, besteht in
der Beschränkung der Anzahl gleichzeitiger Verbindungen mit einer Website.
Dadurch können Sie Ressourcen für andere Dienste freistellen, die die gleiche
Verbindung nutzen. Wenn Sie beispielsweise Ihren Webserver auch für E-Mail-
Dienste unter Microsoft Exchange Server nutzen und Ihre Website die gesamte
vorhandene Bandbreite nutzt, dann kann Exchange die Mails nicht mehr über den
Internetmailanschluss versenden, oder aber die Versendung wird zumindest ver-
zögert.

11.4.1 Verbindungen auswählen


Eine der wichtigsten Fragen, mit denen Sie als Webadministrator konfrontiert
werden können, ist die nach der Geschwindigkeit Ihrer Internetverbindung. Brau-
chen Sie eine T1- oder T3-Verbindung? Reicht eine gemietete 56-K-Verbindung
aus oder brauchen Sie doch Teil-T1?
Die Frage nach der Geschwindigkeit lässt sich auf mathematischem Wege beant-
worten. Sie ermitteln zunächst einmal die Durchschnittsgröße der auf Ihrem Web-
server liegenden Dateien und die Zeit, die für die Versendung dieser Daten über
das Netzwerk oder das Internet benötigt wird. Dann schätzen Sie die Anzahl der
Benutzer, die Ihre Site besuchen werden.
Um die durchschnittliche Dateigröße zu berechnen, gehen Sie wie folgt vor. Sie
errechnen die Anzahl der Bits pro Seite, indem Sie 66 mit 80 multiplizieren und
diese Anzahl durch 8 teilen. Diese Zahl entspricht 80 Zeichen pro Zeile und
66 Zeilen pro Seite bei einer Bitbreite von 8 pro Zeichen. Das Ergebnis sind
42.240 Bits pro Seite. Nun multiplizieren Sie diese 42.240 Bits mit 1,5 und lan-
Kapitel 11 • Leistungsoptimierung 273

den bei 63.360 Bits pro Seite; der Multiplikator 1,5 resultiert aus einer Reserve
von 4 Bits, die bei der Übertragung von 8 Datenbits benötigt wird. Beachten Sie,
dass sich diese Werte nur auf reine Textseiten beziehen und Grafiken noch nicht
mit berücksichtigen. Um festzustellen, wie lange der Download einer bestimmten
Grafik dauert, verwende ich gerne Microsoft FrontPage; wenn Sie eine Grafik auf
einer Seite einfügen, zeigt Ihnen das Programm die geschätzte Downloadzeit in
der Statusleiste unten im Bearbeitungsfenster an. Diese Zeitangabe bezieht sich
auf eine Verbindungsgeschwindigkeit von 28,8 Kbps.
Teilen Sie nun die Geschwindigkeit der gewünschten Verbindung durch die
durchschnittliche Dateigröße. Bei eine T1-Leitung wären dies etwa 24 Seiten pro
Sekunde.
Sie können natürlich auch eine andere Formel zur Berechnung der Treffer oder
Verbindungen verwenden, die von Ihrer Verbindungsform unterstützt werden.
Wir wollen hier einmal die Geschwindigkeit einer T1-Verbindung (1,54 Mbps)
als Beispielfaktor benutzen. Teilen Sie diese 1,54 Mbps einfach durch die 12 Bits
(8 Datenbits/Byte + 4 Reservebits) und Sie erhalten 125 Kbyte pro Sekunde.
Nun hat ein Tag 86.400 Sekunden. Wenn wir diese Anzahl mit den oben errechne-
ten 125 Kbyte/s multiplizieren, dann erhalten wir ein Tagespensum von
10.777.994 Kbyte. Wenn wir diese Summe (durch Division mit 1.048.576) in
Gbyte umwandeln, erhalten wir einen Wert von 10,3 Gbyte pro Tag.
Wenn Sie nun – der Einfachheit halber – eine durchschnittliche Dateigröße von
20 Kbyte annehmen, dann können wir die 10.777.994 Kbyte/Tag durch 20 teilen
und erhalten täglich 538.899,7 Treffer.
Die Tabelle 11.1 zeigt die Anzahl gleichzeitiger Verbindungen für verbreitete Ver-
bindungstypen.

Verbindung Unterstützte Benutzer


56K Frame-Relay 10-20
ISDN 10-50
T1 100-500
T3 mehr als 5.000
Tab. 11.1: Gleichzeitige Verbindungen

11.4.2 Berechnung der Verbindungsleistung


Die Onlinehilfe von IIS enthält ein brillantes kleines Tool, mit dem Sie die Leis-
tung Ihrer Verbindungen basierend auf dem Verbindungstyp, der Seitengröße (in
Kbyte) und der erwarteten oder angenommenen Ladezeit für eine Seite berechnen
können.
274 Netzwerkkapazität

Sie können das Programm aufrufen, indem Sie in die Adresszeile Ihres Webbrow-
sers die Adresse http://localhost/iishelp eingeben. Blenden Sie dann nachein-
ander die Einträge Administration/Serververwaltung/Leistungsoptimierung/Netz-
werkkapazität/Berechnen der Verbindungsleistung ein.

11.4.3 Beschränkung der Bandbreite


Wenn Sie wollen, dass andere Dienste, die auf Ihrem Webserver laufen, auch ein
Stückchen Netzwerkbandbreite abbekommen, dann können Sie hierfür die Band-
breitenbeschränkung verwenden. Eine Menge Unternehmen verwenden ein und
denselben Server gleichzeitig als Web-, Mail- und manchmal sogar als News-
server. Wenn all diese Dienste auf einem einzigen Computer ausgeführt werden,
dann verwenden sie alle zur Datenübertragung dieselbe Netzwerkverbindung zum
Internet.
Wenn Sie mehr als eine Website betreiben, dann können Sie die Bandbreite auch
für einzelne Sites beschränken. Auf diese Weise können Sie, wie bereits ange-
merkt, verhindern, dass sich eine einzige Website die gesamte Netzwerkkapazität
unter den Nagel reißt und alle anderen Dienste auf dem Server leer ausgehen.
Betrachten wir erst einmal die Bandbreitenbeschränkung durch IIS selbst. Hier-
mit können Sie, wie zu Beginn dieses Abschnitts erwähnt, Bandbreite für andere
Dienste freistellen. Öffnen Sie den Internetdienste-Manager, klicken Sie mit der
rechten Maustaste auf das Computersymbol im linken Fensterbereich und wählen
Sie den Eintrag EIGENSCHAFTEN. Dadurch wird das Dialogfeld EIGENSCHAFTEN
des Servers (Abbildung 11.7) geöffnet.
Sie können hier die maximale Anzahl von Kbit/s einstellen, die IIS für alle Web-
und FTP-Sites gemeinsam benutzt, d.h. der Wert gilt für den gesamten IIS-
Dienst. Standardmäßig ist ein Wert von 1.024 Kbps eingestellt.
Ferner lässt sich die Beschränkung auch für einzelne Websites vornehmen. Öff-
nen Sie das Dialogfeld EIGENSCHAFTEN der gewünschten Site und aktivieren Sie
die Registerkarte LEISTUNG (Abbildung 11.8).
Sie können hier das Kontrollkästchen BANDBREITENBESCHRÄNKUNG AKTIVIEREN
markieren und den gewünschten Wert wie oben eingeben.

Hinweis
Der Text in diesem Dialogfeld erläutert – wie bereits erwähnt –, dass ein
hier eingesetzter Wert Vorrang vor den Einstellungen hat, die für den
gesamten IIS-Server vorgenommen wurden.
Kapitel 11 • Leistungsoptimierung 275

Abb. 11.7: Das Dialogfeld EIGENSCHAFTEN VON *COMPUTER mit der Einstellung
BANDBREITENBESCHRÄNKUNG AKTIVIEREN

Abb. 11.8: Das Dialogfeld EIGENSCHAFTEN einer Website mit der Registerkarte
LEISTUNG, auf der Sie die Bandbreitenbeschränkung aktivieren können
276 Netzwerkkapazität

11.4.4 Beschränkungen und Timeouts von Verbindungen


Von der Bandbreitenbeschränkung als Mittel zur Steuerung einer Website oder
des IIS-Dienstes selbst war bereits die Rede. Es gibt allerdings noch eine andere
Möglichkeit, Bandbreite für andere Dienste bereitzustellen. IIS erlaubt nämlich
auch die Beschränkung der Anzahl der Verbindungen zur Website.
Durch diese Verbindungsbeschränkung teilen Sie dem IIS mit, dass nur eine
bestimmte Anzahl von Benutzern gleichzeitig auf die Web- oder FTP-Site zugrei-
fen kann. Mit Hilfe dieser künstlichen Datenverkehrsbeschränkung über eine Ver-
bindung lassen sich ebenfalls Bandbreitenreserven erzielen, die anderweitig
benutzt werden können.
Die meisten von Ihnen sind bestimmt schon einmal in der Situation gewesen, dass
sie eine Verbindung mit einem FTP-Server herstellen wollten und die Nachricht
erhielten, dass die maximale Anzahl gleichzeitiger Verbindungen zu diesem Ser-
ver bereits erreicht sei. Das ist genau der gleiche Ansatz.
Um festzustellen, ob Sie eine Begrenzung der Verbindungen erzwingen müssen,
sollten Sie wieder den Systemmonitor verwenden. Überwachen Sie hier die Indi-
katoren, die die aktuelle, die maximale und die Gesamtanzahl der Verbindungen
anzeigen. Nachdem Sie diese Indikatoren für die Web- und FTP-Dienste über
mehrere Tage hinweg protokolliert haben, sollten Sie bereits über eine Entschei-
dungsgrundlage verfügen.
Um nun eine Beschränkung der Verbindungen zu Ihrem Server zu konfigurieren,
öffnen Sie das Dialogfeld EIGENSCHAFTEN der Web- oder FTP-Site. Aktivieren
Sie die Registerkarte WEBSITE bzw. FTP-SITE und markieren Sie dort die Option
BEGRENZT AUF im Abschnitt VERBINDUNGEN. Hier können Sie nun einen Wert
für die maximale Anzahl gleichzeitiger Verbindungen eingeben. Standardmäßig
sind bei Websites 1.000, bei FTP-Sites 100.000 Verbindungen eingestellt.
Sie können hier außerdem einen VERBINDUNGSTIMEOUT angeben. Diese Option
wird zur automatischen Trennung leer laufender Verbindungen verwendet, um
deren Ressourcen und Bandbreite anderweitig zuweisen zu können. Die Einstel-
lung kann bei der Begrenzung der gleichzeitigen Verbindungen praktisch sein,
wenn aufgrund einer nicht mehr verwendeten oder unterbrochenen Verbindung
eine vorhandene Verbindung nicht zugewiesen wird.

11.4.5 HTTP-Keep-Alives
Wenn ein Browser eine Webseite von Ihrem Server anfordert, dann werden tat-
sächlich zahlreiche Anforderungen gesendet, und zwar immer dann, wenn Daten
benötigt werden. Wenn die Seite nun Grafiken enthält, fordert der Browser
zunächst den Textteil an, dann die Grafiken. Diese zahlreichen Anfragen wirken
sich natürlich nicht gerade positiv auf die Bandbreite und die Serverleistung aus.
Browser haben die Neigung, eine Verbindung für mehrere aufeinanderfolgende
Anfragen geöffnet zu halten. IIS aktiviert diese »HTTP-Keep-Alives« standard-
Kapitel 11 • Leistungsoptimierung 277

mäßig, um eine Verbindung zum Webbrowser zu halten, wodurch ein Bedarf an


einer Verbindung für jede einzelne Anfrage verhindert wird.
Um HTTP-Keep-Alives auf Ihrem Server zu aktivieren, öffnen Sie das Dialogfeld
EIGENSCHAFTEN der gewünschten Website und aktivieren die Registerkarte WEB-
SITE (Abbildung 11.9).

Abb. 11.9: Standardmäßig ist die Option HTTP-VERBINDUNG AUFRECHTERHALTEN


(HTTP-KEEP-ALIVE AKTIVIEREN) bei IIS 5.0 aktiviert

Im Bereich VERBINDUNGEN sehen Sie, dass die Option HTTP-VERBINDUNG AUF-


RECHTERHALTEN (HTTP-KEEP-ALIVE AKTIVIEREN) selektiert ist. Sie können die
Option natürlich auch löschen, aber dies wird die Leistung Ihres Servers drastisch
beeinflussen.

11.4.6 HTTP-Komprimierung
IIS 5.0 kann die Komprimierung von HTTP-Daten unterstützen, um das Daten-
aufkommen für Browser zu senken, die diese Funktion unterstützen. Da die
Option sich aber schnell als zweischneidiges Schwert erweisen kann, sollten Sie
gut abwägen, ob Sie sie aktivieren wollen.
278 Netzwerkkapazität

Wenn Sie sich zugunsten der Komprimierung entscheiden, dann beachten Sie,
dass IIS für deren Durchführung natürlich auch Prozessorressourcen benötigt.
Dadurch kann die Serverleistung insgesamt beeinträchtigt werden, wodurch der
durch die Komprimierung erzielte Leistungsgewinn schnell wieder dahin ist.
Aus diesem Grund sollten Sie die Prozessorauslastung vor und nach der Imple-
mentierung der Komprimierung beobachten. Wenn die Auslastung bereits vorher
die 80%-Marke dauerhaft überschreitet, kommt eine Komprimierung selbstver-
ständlich nicht in Frage.
Die HTTP-Komprimierung wird für den gesamten IIS-Server konfiguriert. Des-
wegen müssen Sie, wenn Sie sie aktivieren wollen, das Dialogfeld EIGENSCHAF-
TEN des Servers selbst (Abbildung 11.10) öffnen. Klicken Sie zu diesem Zweck
mit der rechten Maustaste auf das Computersymbol im Internetdienste-Manager
und wählen Sie im Kontextmenü den Eintrag EIGENSCHAFTEN.

Abb. 11.10: Auf der Registerkarte EIGENSCHAFTEN VON *COMPUTER werden


Einstellungen vorgenommen, die sich auf den gesamten IIS-Server
beziehen

Wählen Sie im Listenfeld HAUPTEIGENSCHAFTEN die Option WWW-DIENST.


Klicken Sie dann auf die nebenstehende Schaltfläche BEARBEITEN, um das Dia-
Kapitel 11 • Leistungsoptimierung 279

logfeld HAUPTEIGENSCHAFTEN DES WWW-DIENSTES (Abbildung 11.11) zu öff-


nen. Aktivieren Sie dort die Registerkarte DIENST.

Abb. 11.11: Das Dialogfeld HAUPTEIGENSCHAFTEN DES WWW-DIENSTES mit


aktivierter Registerkarte DIENST, auf der die HTTP-Komprimierung
konfiguriert wird

Sie können sowohl statische HTML-Dateien als auch Anwendungen komprimie-


ren, die auf der Website ausgeführt werden. Wählen Sie eine oder beide Optionen.
Ferner können Sie einen Temporärordner wählen, in dem die komprimierten
Dateien abgelegt werden. Geben Sie den vollständigen Pfad ein oder klicken Sie
auf die Schaltfläche DURCHSUCHEN, um einen Ordner auf Ihrer Festplatte zu wählen.
Ganz unten im Abschnitt HTTP-KOMPRIMIERUNG können Sie auch die Ordner-
größe begrenzen. Auf diese Weise können Sie verhindern, dass Ihre Festplatte mit
Komprimierungsdateien aufgefüllt wird, und reduzieren überdies den Speicher-
platz für Ihre HTTP- und andere Dateien, die von den verschiedenen Diensten
benötigt werden, die auf dem Server installiert sind.

Hinweis
Das Temporärverzeichnis für die komprimierten Dateien muss auf der
lokalen Festplatte liegen, die ihrerseits NTFS-formatiert sein muss.
280 Fazit

11.5 Fazit
Die Leistungsoptimierung auf dem Server ist eine permanente Aufgabe. Die Aus-
lastung der Komponenten ändert sich, neue Hardware wird in den Server inte-
griert – all das wirkt sich auf die Leistung aus.
Durch Verwendung der im IIS und in Windows 2000 vorhandenen Überwa-
chungsprogramme und -prozeduren können Sie bestimmen, welche Wege bei der
Optimierung der Serverleistung einzuschlagen sind. Dies gilt nicht nur für Webs-
eiten und FTP-Dateien, sondern auch für die Verarbeitung von Anwendungen, die
auf dem Server ausgeführt werden.
Wenn die Leistung Ihres Webservers für Sie ein wesentlicher Aspekt ist, dann
stellen Sie sicher, dass auf diesem Server keine Mail- oder anderen Dienste ausge-
führt werden. Auf diese Weise ermöglichen Sie IIS die optimale Nutzung der auf
dem Server vorhandenen Ressourcen.
Kapitel 12
Replikation und
Clusterunterstützung

12.1 Clustering einer Netzwerkanwendung 282


12.2 Replikation 292
282 Clustering einer Netzwerkanwendung

In diesem Kapitel behandeln wir einen etwas gängigeren Ansatz zur Erzielung
einer umfassend skalierbaren Architektur, die nicht nur Fehlertoleranz gewähr-
leistet, sondern es Ihnen auch ermöglicht, die Arbeitslast auf alle Server zu vertei-
len. Ich werde Ihnen hier zeigen, wie die Programme, die für eine »Architektur
der umfassenden Verfügbarkeit« erforderlich sind, installiert, konfiguriert und
verwaltet werden.
Die folgenden Punkte werden an dieser Stelle beschrieben:
• Clustering mit IIS 5.0
• Lastenausgleich mit Hilfe des Netzwerklastenausgleichs
• Inhaltsreplikation innerhalb des Clusters
• Replikationstechnologien wie das Verteilte Dateisystem (DFS), die Content
Replication-Komponente (aus Microsoft Site Server), Robocopy.exe und IIS-
Sync.exe.
Mit dem Netzwerklastenausgleich von Windows 2000 Server können Sie eine
Architektur erstellen, mit der Sie nachts gut schlafen können. Der Netzwerklas-
tenausgleich stellt Ihren Clients die Web- oder FTP-Site oder eine andere Anwen-
dung genau dann bereit, wenn diese sie brauchen. Außerdem nimmt der Netzwer-
klastenausgleich einen ausgefallenen Host sofort aus dem Netzwerk. Der NLBS
(Network Load Balancing Service, Netzwerklastenausgleichsdienst) ermöglicht
Ihnen die Skalierung Ihres Clusters und erlaubt Ihnen die Erweiterung auf bis zu
32 Server.
Die wichtigste Komponente des Netzwerklastenausgleichs ist die VNIC (Virtual
Network Interface Card, virtuelle Netzwerkkarte). Sie ist die Basis des NLBS-
Dienstes, denn sie ermöglicht die Zusammenfassung der 32 Server zu einem
Cluster. Die VNIC wird im Laufe des Kapitels noch ausführlich beschrieben.
In einem Clustersystem muss der Inhalt selbstverständlich synchronisiert werden,
was uns zum nächsten Punkt führt: Der Replikation zwischen den Hosts in einem
Cluster. Die Clusterunterstützung ist unbestritten eine Notwendigkeit, aber ohne
identische Inhalte bei allen Partnern wird ein Cluster ad absurdum geführt. Micro-
soft hat verschiedene Technologien bereitgestellt, die eine automatische Konsis-
tenzherstellung im gesamten Cluster sicherstellen sollen. Im weiteren Verlauf des
Kapitels soll auch auf diese Lösungen, ihre Konfiguration und Implementation
eingegangen werden, und Sie werden sehen, welche Technologie Ihren Cluster
am besten konsolidiert.

12.1 Clustering einer Netzwerkanwendung


Einer der wichtigsten Faktoren, den ein Netzwerkadministrator beim Einsatz
einer Anwendung beachten muss, ist die Verfügbarkeit. Als Administrator wollen
Sie sicherstellen, dass die Lösung, die Sie über das Netzwerk verfügbar machen,
Kapitel 12 • Replikation und Clusterunterstützung 283

auch verfügbar ist: Immer, denn die Clients benötigen sie. Diese Idee führte zur
Entwicklung des Clusterkonzepts, bei dem eine Gruppe ähnlicher Computer
zusammengefasst wird, um die Arbeit eines einzigen Computers zu erledigen.
Robert Metcalfe, der Erfinder des Ethernet, hat das vielzitierte Metcalfesche
Gesetz aufgestellt:
»Kombinieren Sie eine beliebige Anzahl N von Maschinen – seien es Com-
puter, Telefone oder sogar Autos – miteinander, und Sie erhalten im Ergeb-
nis eine um N potenzierte Leistungssteigerung. Denken Sie an Telefone
ohne Netzwerke, oder Autos ohne Straßen. Und nun stellen Sie sich einmal
vor, welch exponentielle Macht sich aus der Verknüpfung von Abermillio-
nen Computern ergeben würde.«
Genau das ist Clustering: Das Zusammenführen mehrerer Computer zum Zweck
der Steigerung von Zuverlässigkeit, Leistung und Skalierbarkeit. Mit Clustering
erstellt man einen »virtuellen« Server (ein logischer Server, der aus mehreren
physikalischen Servern besteht), um lastintensive Anwendungen ausführen, Feh-
lertoleranz gewährleisten oder systemkritische Anwendungen durchführen zu
können.
Ein Beispiel für eine clusterunterstützte Netzwerkanwendung wäre eine Gruppe
von vier Servern, auf denen jeweils eine Instanz von IIS ausgeführt wird und auf
denen die Intranetwebseiten eines Krankenhauses abgelegt sind. Auf diesen Sei-
ten sind wichtige Patientendaten vorhanden, etwa Aufzeichnungen über Allergien
oder Behandlungen. Selbstverständlich müssen die Seiten rund um die Uhr zur
Verfügung stehen. Wenn diese Website lediglich über einen Rechner verfügbar
gemacht wäre, so wäre Zeit für das Herunterfahren eines Servers (etwa zu War-
tungszwecken) oder gar für einen Ausfall nicht vorhanden; in einem solchen Fall
hätten die Ärzte keinen Zugriff auf die Patientendaten, was zu ziemlichen
Schwierigkeiten führen könnte. Bei einer clustergestützten Lösung hingegen träte
dieses Problem nicht auf, denn wenn einer der beteiligten Server vom Netz ginge
bzw. genommen würde, dann werden noch immer drei Instanzen von IIS auf den
anderen Servern ausgeführt und können die benötigten Daten den Clients bereit-
stellen.
Microsofts NLBS-Dienst ermöglicht diese Art des Clusterings. Sie können mit
Hilfe dieses Dienstes aus mehreren Computern (oder Hosts) einen Cluster von
Anwendungsservern bilden. Durch den Zusammenschluss wird die Summe der
einzelnen Teile zu einer leistungsfähigen Lösung.

Hinweis
Microsofts NLBS-Dienst kann bis zu 32 Server in einem Cluster integrie-
ren, wodurch sich diese Lösung in Umfeldern anbietet, in denen viele
Hosts benötigt werden – etwa für Web- oder FTP-Server. Andere Cluste-
ring-Lösungen können derart viele Hosts nicht verwalten; der Microsoft
Cluster Server (MSCS) etwa, der für Anwendungen wie SQL Server entwi-
ckelt wurde, ist auf zwei Hosts pro Cluster beschränkt.
284 Clustering einer Netzwerkanwendung

Der NLBS-Dienst erlaubt den Lastenausgleich über die Verwendung von VNICs
und VIPs (virtuellen IP-Adressen). VNICs und VIPs werden im Laufe dieses
Kapitels noch umfassend beschrieben .

12.1.1 Clustering – warum?


Das Clustering einer Netzwerkanwendung gibt Ihnen eine Methode der Skalier-
barkeit an die Hand. Die Möglichkeit, Ihrem Cluster Server oder Hosts hinzuzu-
fügen (d.h. ihn zu skalieren), ist in einer Clusterumgebung essentiell. Wenn Sie
eine Website hosten, die 2.000 Aufrufe pro Tag aufweist, gibt es kein Problem;
wenn Ihre Website 2.000 Aufrufe am Montag erhält, Sie aber am Dienstag mit
20.000 Aufrufen rechnen, dann könnten Sie ein Problem haben. Durch die Imple-
mentierung eines Clusters können Sie bei Bedarf mehr Hosts hinzufügen und
Ihrer Website so die für 20.000 Aufrufe benötigten Ressourcen zuteilen.
Ein weiterer Grund für das Clustering einer Anwendung ist die Verteilung der
Arbeitslast auf alle Hosts. Durch den Lastenausgleich können Sie die Anzahl der
Aufrufe pro Host steuern; dadurch stellen Sie sicher, dass sich Host A nicht
gerade auf seinen Lorbeeren ausruht, während Host B kurz vor dem Heißlaufen
steht.
Der Netzwerklastenausgleich verteilt empfangene Anforderungen individueller
TCP/IP-Dienste proportional über den gesamten Cluster. Das bedeutet, dass Sie
jedem Host im Cluster einen bestimmten prozentualen Anteil an der zu erledigen-
den Arbeit zuweisen – je nachdem, wie viel Daten er jeweils verarbeiten kann.
Außerdem wird die Last bei Änderung der Clusterkonfiguration automatisch neu
verteilt, d.h. wenn Sie einen Host hinzufügen oder entfernen, dann erkennt der
Cluster dies innerhalb von zehn Sekunden und verteilt die Last entsprechend neu.
Wenn Sie für eine Anwendung das Clustering konfigurieren, dann ist das Erste,
was Ihre Clients bemerken, eine erhöhte Geschwindigkeit bei der Anwendung. Im
Cluster arbeiten alle beteiligten Computer Hand in Hand, um eine Aufgabe zu
erledigen, weswegen die Ausführungswarteschlange – also die Kette der Anfor-
derungen, die noch zu bearbeiten sind – sich wesentlich verkürzt. Die Clientan-
forderungen werden also schneller bearbeitet. Es ist ein bisschen wie im Super-
markt: Je mehr Kassen geöffnet sind, desto kürzer ist die Zeit, die Sie an der
Kasse warten müssen. Und je mehr Server an der Erledigung einer Aufgabe mit-
wirken, desto schneller ist sie erledigt.
Der Netzwerklastenausgleich unterstützt bis zu 32 Server in einem Cluster, d.h.
Sie können die Rechenleistung um das 32fache steigern. Starten Sie Ihre Anwen-
dung mit dem Gefühl, dass sich viele Hosts die Arbeit gegenseitig erleichtern.
Der NLBS-Dienst kann Ihrer Anwendung eine hohe Verfügbarkeit garantieren.
Wenn Sie für Ihre Netzwerkanwendung keinen Cluster erstellt haben und nun der
Katastrophenfall eintritt- sei er nun durch einen Hardware- oder einen Softwa-
reausfall bedingt –, dann haben Sie schlichtweg keine Netzwerkanwendung mehr.
Kapitel 12 • Replikation und Clusterunterstützung 285

Das geschieht hoffentlich nie, aber bedenken Sie: Wenn einer oder mehrere Hosts
in einem Cluster ausfallen, bleibt die Anwendung dank der Architektur trotzdem
weiter verfügbar.
Sie kennen den Begriff »Einzelpunktversagen«? Darunter versteht man einen
Funktionsausfall (beispielsweise des Netzwerks, des Servers, der Anwendung
oder der Architektur), der dazu führt, dass Clientanforderungen nicht mehr bear-
beitet werden können. Wenn Sie nun nur einen Server zur Bereitstellung eines
Dienstes verwenden, dann ist dieser eine mögliche Quelle für ein Einzelpunktver-
sagen. Durch das Clustering wird die Wahrscheinlichkeit eines Einzelpunktversa-
gens drastisch reduziert, denn ausgefallene oder vom Netz genommene Computer
werden sofort erkannt, wodurch eine automatische Fehlertoleranz gewährleistet
ist. Sie können Server in Ihrem Cluster zu Wartungszwecken und zur Durchfüh-
rung von Präventivmaßnahmen vom Netz nehmen, ohne dass der Clusterbetrieb
gestört wird. Aus diesem Grund geht das Leben auch dann weiter, wenn Sie drei
Ihrer vier Server abschalten müssen.
Nach seiner Konfiguration ist ein Cluster betriebsbereit und benötigt nur noch
wenige bis gar keine Bedieneingriffe mehr. Damit wird für Netzwerkadministra-
toren ein Traum wahr: Der Cluster kann Hosts dynamisch entfernen und hinzufü-
gen, ohne dass er – der Administrator – komplexe Aufgaben ausführen muss.
Wenn Sie Clients zu einem Cluster zusammenfassen, benötigen Sie für diese nur
einen Hostnamen bzw. eine IP-Adresse, um auf die Anwendung zugreifen zu kön-
nen, während gleichzeitig die individuellen Computernamen beibehalten werden.
NLBS-Clients verwenden eine IP-Adresse, um auf den gesamten Cluster zuzu-
greifen. Wenn beispielsweise der Domänenname www.xyz.com als IP-
Adresse 10.1.1.2 aufgelöst wird und ein Client nun eine Anfrage bei www.xyz.com
stellt, dann kann jeder der im Cluster vorhandenen Server diese Anfrage bearbei-
ten. Abbildung 12.1 veranschaulicht diesen Cluster.
www.xyz.com wird als virtuelle IP-Adresse 10.1.1.2 aufgelöst, während jeder Host
im Cluster seine eigene reale IP-Adresse (wie etwa 10.1.1.3, 10.1.1.4 usw.) hat.
Vielleicht fragen Sie sich, ob jede in Frage kommende Anwendung auch kompati-
bel zum Clustering ist. Diesbezüglich kann ich Sie beruhigen, denn wenn Sie bei
der Konfiguration des Clusters alles richtig machen, dann brauchen Sie in der Ser-
veranwendung selbst keine Änderungen vorzunehmen. Wenn Sie also beispiels-
weise eine FTP-Site auf einem Server hosten, den Sie dann in einen Cluster inte-
grieren, dann müssen Sie in der Anwendung keine Einstellungen ändern – der
Cluster funktioniert wie erwartet und verteilt die Aufgaben entsprechend.
286 Clustering einer Netzwerkanwendung

Clients
fordern Domäne
»www.xyz.com« an.

10.1.1.2

25% 25% 25% 25%

Cluster-Server1 Cluster-Server2 Cluster-Server3 Cluster-Server4


Priorität=1 P=2 P=3 P=4

Cluster »www.xyz.com«

Abb. 12.1: Vier Hosts in einem Cluster, die die Website www.xyz.com bereitstellen

12.1.2 Netzwerklastenausgleich installieren


Der Netzwerklastenausgleich wird bei allen Installationen von Windows 2000
Advanced Server gleich mitinstalliert. Sie müssen den NLBS-Dienst allerdings
explizit aufrufen, damit er auf Ihrem Windows 2000-Server ausgeführt wird.
Gehen Sie wie folgt vor:
1. Klicken Sie auf START/EINSTELLUNGEN/NETZWERK- UND DFÜ-VERBINDUN-
GEN.

2. Klicken Sie mit der rechten Maustaste auf die Schnittstelle, die als VNIC agie-
ren soll, und wählen Sie EIGENSCHAFTEN.
3. Markieren Sie das Kontrollkästchen NETZWERKLASTENAUSGLEICH.
Der Netzwerklastenausgleich ist nun auf Ihrem Server instanziert.
Kapitel 12 • Replikation und Clusterunterstützung 287

12.1.3 Netzwerklastenausgleich konfigurieren


Um die Grundkonfiguration vorzunehmen, klicken Sie auf die Komponente
NETZWERKLASTENAUSGLEICH und dann auf die Schaltfläche EIGENSCHAFTEN.
Geben Sie auf der Registerkarte CLUSTERPARAMETER, HOSTPARAMETER und
ANSCHLUSSREGELN die für Ihren Cluster notwendigen Daten ein. Tragen Sie bei-
spielsweise in das Textfeld PRIMÄRE IP-ADRESSE die IP-Adresse ein, über die der
Cluster zu erreichen sein soll (die ist die bereits erwähnte virtuelle IP-Adresse
oder VIP). Wenn Sie wissen wollen, was genau Sie in die einzelnen Felder einge-
ben können oder müssen, klicken Sie auf das Fragezeichen in der oberen rechten
Ecke des Fensters und dann in das entsprechende Textfeld. Wenn Sie Ihre Einga-
ben abgeschlossen haben, klicken Sie auf die Schaltfläche OK.
Auf der Registerkarte CLUSTERPARAMETER geben Sie die primäre IP-Adresse,
die Subnetzmaske der Cluster-VIP und das Remotekennwort für die Clusteradmi-
nistration ein.
Auf der Registerkarte HOSTPARAMETER konfigurieren Sie die Parameter des indi-
viduellen Hosts, die die eindeutige IP-Adresse des Hosts definieren. Der Host
benötigt diese eindeutige IP-Adresse für die clusterinterne und die LAN-Kommu-
nikation. PRIORITÄT bezeichnet die Priorität des Hosts innerhalb des Clusters,
d.h. wenn ein Host die Priorität 1 hat, dann verfügt er über die höchste Priorität.
Der Host mit der Priorität 2 hat die zweithöchste Priorität usw.
Klicken Sie nun auf INTERNETPROTOKOLL (TCP/IP) und dann auf EIGENSCHAF-
TEN. Klicken Sie auf FOLGENDE IP-ADRESSE VERWENDEN und geben Sie dann in
das Feld IP-ADRESSE die VIP ein. Wenn für die Schnittstelle bereits eine IP-
Adresse vorhanden ist, die sich von der virtuellen IP-Adresse unterscheidet, dann
klicken Sie auf ERWEITERT und fügen auf der Registerkarte IP-EINSTELLUNGEN
die VIP im Feld IP-ADRESSEN hinzu.

Anschlussregeln konfigurieren
Standardmäßig wird der gesamte Datenverkehr des Clusters vom Host mit der
höchsten Priorität (d.h. mit der niedrigsten Prioritätsnummer) verwaltet. Fällt die-
ser Host nun aus oder wird er vom Netz genommen, dann übernimmt der Host mit
der nächsthöheren Priorität diese Aufgabe. Dieses Regelverhalten gewährleistet,
dass der NLBS-Dienst den Netzwerkverkehr des Clusters nicht auf Anschlüsse
legt, die nicht mit Lastenausgleichsmechanismen arbeiten. Auch wird hierdurch
eine hohe Verfügbarkeit bei der Bearbeitung des Clusterdatenverkehrs sicherge-
stellt.
Um die Steuerung verschiedener Arten des TCP/IP-Verkehrs zu optimieren, kön-
nen Sie konfigurieren, wie der Clusterdatenverkehr im Netzwerk an den einzelnen
Anschlüssen gehandhabt wird. Dabei können Sie für den Netzwerklastenaus-
gleich zwischen drei verschiedenen Filtermodi auswählen: EINZELHOST, MEH-
RERE HOSTS und DEAKTIVIEREN.
288 Clustering einer Netzwerkanwendung

Geben Sie auf dieser Registerkarte die Anschlussregeln und den Filtermodus ein,
in dem der Host betrieben wird.

Der Filtermodus EINZELHOST


Wenn Sie lediglich aus Fehlertoleranzgründen mehrere Server in Ihren Cluster
integriert haben, können Sie den Filtermodus EINZELHOST aktivieren. In diesem
Modus wird der gesamte TCP/IP-Datenstrom zum Host mit der höchsten Priorität
geleitet; hierbei handelt es sich also nicht um einen Lastenausgleich, da ja nur ein
Host die gesamte Arbeit ausführt- die übrigen warten im Leerlauf, bis der erste
Host ausfällt. In diesem Fall übernimmt der Host mit der nächsthöheren Priorität
(Abbildung 12.2).
Beachten Sie, dass keine Daten auf Hosts mit einer höheren Hostnummer geroutet
werden – der gesamte Verkehr wird über den Host mit der höchsten Priorität
abgewickelt.

Der Filtermodus MEHRERE HOSTS


Der Filtermodus MEHRERE HOSTS zeichnet sich durch größte Widerstandsfähig-
keit aus, denn er ermöglicht Fehlertoleranz und Lastenausgleich in einem Cluster.
Der Lastenausgleich wird durch Senden einer TCP/IP-Anfrage an einen Partner
im Cluster ermöglicht; wird die Anfrage nicht beantwortet, dann wurde der Host
aus dem Cluster entfernt, und infolge dessen werden auch keine Daten mehr an
diesen Server geleitet. Durch Aktivierung einer prozentualen Lastverteilung unter
den Servern können Sie die Daten entsprechend der Leistungsfähigkeit der betei-
ligten Server an diese leiten lassen.
Wenn Sie über Ihren Cluster eine prozessorintensive Anwendung bereitstellen
und den Filtermodus MEHRERE HOSTS verwenden, könnten Sie die Arbeitslast
über die Server entsprechend der Prozessorgeschwindigkeit der jeweiligen Rech-
ner verteilen (z.B. 50:50, 60:40 usw.). Wenn also beispielsweise einer Ihrer Ser-
ver einen Pentium III-Prozessor mit 800 MHz hat, während ein anderer mit einem
133-MHz-Prozessor arbeitet, dann sollten Sie die Last etwa in einem Verhältnis
von 90:10 verteilen.
Sie können das exakte Verhalten beim Lastenausgleich in diesem Filtermodus
steuern, indem Sie den Cluster so einstellen, dass die Lastenverteilung gleichmä-
ßig auf alle Server erfolgt, oder indem Sie für jeden Host einen Prozentwert ange-
ben. Wurden Prozentwerte angegeben, dann verteilt der NLBS-Dienst die Lasten
entsprechend der jeweiligen Anteile auf alle Server. Dabei muss die Summe der
Prozentualwerte nicht 100% ergeben – der Dienst rechnet die Werte hoch. Wenn
Sie also z.B. zwei Hosts A und B prozentuale Anteile von 30% bzw. 60% zuwei-
sen, dann leitet der Dienst ein Drittel (30/90) des Datenaufkommens an den
Host A und zwei Drittel (60/90) an den Host B. Hosts mit gleichen Prozentwerten
würden die gleiche Anzahl an Anfragen bedienen (Abbildung 12.3).
Kapitel 12 • Replikation und Clusterunterstützung 289

Clients
fordern Domäne
»www.xyz.com« an.

10.1.1.2

100% 0% 0% 0%

Cluster-Server1 Cluster-Server2 Cluster-Server3 Cluster-Server4


Priorität=1 P=2 P=3 P=4

Cluster »www.xyz.com«

Abb. 12.2: Beispiel für einen Cluster im Modus EINZELHOST mit mehreren Hosts und
deren Hostprioritäten

Die Konfiguration des in Abbildung 12.4 gezeigten Clusters führt dazu, dass die
Hosts je nach Leistungsfähigkeit eine unterschiedliche Anzahl von Abfragen
bearbeiten.
Die letzte Konfigurationsoption in diesem Modus ist die AFFINITÄT, d.h. die
Zugehörigkeit eines Clients zu einem bestimmten Host im Cluster. Auch hier gibt
es wieder drei Möglichkeiten:
• Einfach. Ein Client behält die Verbindung zum ursprünglich kontaktierten
Host bei.
• Keine. Ein Client erhält keine Zuordnung eines bestimmten Servers, d.h. er
wird an den nächsten verfügbaren Host im Cluster verwiesen.
290 Clustering einer Netzwerkanwendung

Clients
fordern Domäne
»www.xyz.com« an.

10.1.1.2

25% 25% 25% 25%

Cluster-Server1 Cluster-Server2 Cluster-Server3 Cluster-Server4


Priorität=1 P=2 P=3 P=4

Cluster »www.xyz.com«

Abb. 12.3: Mehrere Hosts mit gleicher Last, d.h. alle Server bedienen die gleiche
Anzahl an Abfragen

• Klasse C. In diesem Modus werden alle Anforderungen, die aus einem be-
stimmten Klasse-C-IP-Bereich stammen, von ein und demselben Host im
Cluster bearbeitet.
Durch Steuerung der Affinität können Sie Clientsitzungen für Anwendungen ver-
wenden, die solche Sitzungen unterstützen (siehe Abb. 12.4).

Der Filtermodus DEAKTIVIEREN


Dieser Modus blockiert den gesamten Datenverkehr zu einem Anschluss und
stellt auf diese Weise eine Firewall dar, die unerwünschten Netzwerkzugriff auf
Ihren Cluster verhindert. Sie können festlegen, dass ein Filtermodus auf einen
bestimmten Nummernbereich zwischen 1…79 und 81…65.000 angewandt wird –
nur der Anschluss 80 wird für HTTP-Daten offen gehalten. Zu diesem Zweck
müssen Sie eine Anschlussregel mit einem Satz von Konfigurationsparametern
definieren. Jede Regel besteht aus den folgenden Konfigurationsparametern:
Kapitel 12 • Replikation und Clusterunterstützung 291

• TCP- bzw. UDP-Anschlussbereich, auf den die Regel anzuwenden ist.


• Protokolle, auf die die Regel anzuwenden ist (TCP, UDP oder beide).
• Filtermodus, der festlegt, wie der Cluster mit Daten verfährt, die den spezifi-
zierten Anschlussbereichen und Protokollen entsprechen.

Clients
fordern Domäne
»www.xyz.com« an.

10.1.1.2

60% 20% 10% 10%

Cluster-Server1 Cluster-Server2 Cluster-Server3 Cluster-Server4


Priorität=1 P=2 P=3 P=4

Cluster »www.xyz.com«

Abb. 12.4: Mehrere Hosts mit prozessorabhängig unterschiedlicher Last, d.h. alle
Server bedienen eine unterschiedliche Anzahl an Abfragen

12.1.4 Problembehebung beim Netzwerklastenausgleich


Die Tabelle 12.1 beschreibt einige der Probleme, auf die Sie im Zusammenhang
mit dem Netzwerklastenausgleich stoßen könnten, und enthält Lösungsvor-
schläge.
292 Replikation

Problem Lösung
Virtuelle/dedizierte IP- Vergewissern Sie sich, dass Sie die IP-Adresse sowohl
Adresse reagiert nicht auf unter den TCP/IP-EIGENSCHAFTEN als auch im Konfi-
ping-Befehl. gurationsfenster für den Netzwerklastenausgleich ein-
gegeben haben.
Ein anderer Host im Cluster Dieses Problem kann entstehen, wenn die clusterin-
reagiert nicht auf ping-Befehl. terne Kommunikation nicht funktioniert. Stellen Sie
sicher, dass der Cluster nicht für den Unicastmodus
konfiguriert ist.
Ein Host kann dem Cluster Überprüfen Sie die VIP – Sie muss der IP-Adresse des
nicht hinzugefügt werden. Clusters entsprechen.
Ein Host reagiert nicht auf Stellen Sie sicher, dass Sie keine Anschlussregel kon-
Anforderung. figuriert haben, die den Anschluss sperrt, an den die
Anforderung gerichtet ist (d.h. Anschluss 80 für
HTTP-Daten).
Der gesamte Datenverkehr Stellen Sie sicher, dass alle Hosts mit dem Filtermodus
wird nur an einen Host MEHRERE HOSTS konfiguriert sind, sofern dies
geleitet. gewünscht ist.
Tab. 12.1: Problembehebung beim Netzwerklastenausgleich

12.1.5 Fazit
Clustering und Lastenausgleich sind sehr umfangreiche Themen. In diesem
Abschnitt haben wir nur ein paar der von Microsoft angebotenen Technologien
beschrieben. Der wichtigste Punkt, den Sie aus dieser Lektion behalten sollten,
ist, dass ein einzelner Server nur ein einzelner Server ist, und es spielt absolut
keine Rolle, welchen Prozessor Sie einsetzen, mit wie viel Arbeitsspeicher Sie
ihn ausstatten oder welchen Fehlertoleranzgrad er aufweist: Er wird früher oder
später ausfallen. Das Vorhandensein eines solchen potentiellen Einzelpunktversa-
gens ist niemals positiv zu bewerten. Die Verwendung mehrerer Hosts in einem
Cluster ermöglicht Ausfallzeiten aufgrund von Hardware- oder Softwareversagen
oder zu Wartungszwecken – so können Sie nachts gut schlafen. Der Lastenaus-
gleich ist nicht nur eine Möglichkeit, die Überlastung eines Servers zu verhin-
dern, sondern erweist sich auch als sehr leistungssteigernd. Durch die Verteilung
der Arbeit auf mehrere Hosts wird die Systemleistung gesteigert, da viele Server
zur gleichen Zeit am gleichen Ziel arbeiten.

12.2 Replikation
Unter dem Begriff »Replikation« versteht man das Kopieren von Daten eines Ser-
vers auf einen oder mehrere andere Server zwecks Erzielung eines konsistenten
(synchronen) Datenbestandes. Alle für Clients bereitgestellten Daten – egal, ob
auf FTP-, Web-, Mail- oder Dateiservern – müssen in einem Cluster identisch
Kapitel 12 • Replikation und Clusterunterstützung 293

sein. Wenn sich die Daten unterscheiden, dann führt der Aufruf von Webseiten
auf Ihrer Site bei den Besuchern zu immer unterschiedlichen Ergebnissen; ferner
könnten die verschiedenen Daten auch zu Fehlern führen, da ein Dienst oder ein
Vorgang immer die aktuellsten Inhalte benötigt, die für den Dienst bereitstehen.
Damit eine Gruppe von Webservern, die alle zur Bereitstellung identischer Daten
für alle Clients verwendet werden, korrekt zusammenarbeiten, müssen Sie bei
Ihren Planungen die Datenreplikation berücksichtigen. Dies erreichen Sie durch
die Verwendung von Utilities wie der Content Replication-Komponente aus dem
Microsoft Site Server 3.0, den Programmen IISSync.exe und Robocopy.exe oder
dem Verteilten Dateisystem (DFS). Jedes dieser Programme hat seine Stärken und
Schwächen – welches Sie wann verwenden, hängt von Ihren Bedürfnissen und
den speziellen Umständen in Ihrem Netzwerk ab.
Eines der aufregendsten neuen Merkmale von Windows 2000 Server ist das Ver-
teilte Dateisystem (Distributed File System, DFS). Seine Fähigkeiten zur dynami-
schen Replikation und zur Fehlerüberprüfung machen es für Windows 2000-
Administratoren zu einer interessanten Option. In diesem Teil des Kapitels wer-
den wir uns etwas näher mit DFS beschäftigen, da es ohnehin Bestandteil von
Windows 2000 Server ist.

12.2.1 Replikationsprogramme
Jedes Netzwerk ist anders – dank unterschiedlicher Anforderungen, Topologien,
geografischer Standorte und Betriebssysteme. Das bedeutet, dass es kein All-
zweckwerkzeug für jede Netzwerkumgebung gibt, sondern es werden verschie-
dene Programme benötigt, die die jeweiligen Bedürfnisse eines Administrators
erfüllen können. Während die einen Administratoren die Eingabeaufforderung als
optimale Bedienoberfläche betrachten, wollen andere eine wesentlich einfachere
Lösung, Dritte wiederum organisieren ihre Replikation über Skripts. Microsoft
bietet für Replikationsaufgaben in einem Cluster verschiedene Lösungen an, dar-
unter u.a. IISSync, die Content Replication-Komponente aus dem Site Server,
Robocopy und DFS. Werfen wir zunächst einen Blick auf die Merkmale und Vor-
züge der einzelnen Lösungen.

IISSync
IISSync.exe ist das IIS-Synchronisierungsprogramm, das standardmäßig bei der
Installation von IIS installiert wird. Es befindet sich im Verzeichnis %system-
root%\WINNT\system32\inetsrv und ermöglicht zusammen mit IIS die Realisie-
rung einer skriptsteuerbaren und skalierbaren Umgebung für eine skalierbare und
fehlertolerante Gruppe von Webservern. Zwar wurde die Inhaltsreplikation bei
der Entwicklung von IISSync.exe eigentlich nicht beabsichtigt, aber seine Struktur
berücksichtigt die Replikation der Metabasis. Die Replikation der Metabasis ist
bei einem Servercluster ein wesentliches Merkmal, denn hier ändert sich die
Metabasis häufig, und diese Änderungen müssen möglichst umgehend auf alle
Server repliziert werden.
294 Replikation

Die Umsetzung von IISSync.exe ist recht simpel gestrickt. Geben Sie an der
Befehlszeile des Quellservers (oder des Servers, von dem aus Sie die Metabasis
replizieren wollen) den Befehl iissync \\zielserver ein, wobei zielserver der
NetBIOS-Name des Servers ist, auf den Sie die Metabasis replizieren wollen.

Die Content Replication-Komponente aus Microsoft Site Server


Das zweite Tool, die Content Replication-Komponente aus dem Site Server 3.0,
wird nicht mit IIS 5.0 ausgeliefert, sondern ist Bestandteil einer Dienstesamm-
lung von Microsoft namens »Site Server« (die aktuelle Version kann zu Test-
zwecken unter http://www.microsoft.com/siteserver/site/default.htm herun-
tergeladen werden). Die Content Replication-Komponente ist das am besten
skriptsteuerbare und robusteste Tool, das Microsoft für die Replikation innerhalb
einer Gruppe von Servern anbietet. Wir werden hier allerdings nicht zu sehr auf
dieses Thema eingehen, denn der Site Server ist sehr komplex.

Robocopy
Robocopy.exe ist ein Programm, dass mit dem Windows 2000 Resource Kit aus-
geliefert wird. Sie können dieses Befehlszeilen-Utility über den Taskplaner von
Windows 2000 steuern. Robocopy.exe kann alle Verzeichnisse und Dateien rekur-
siv zu festgelegten Zeitpunkten replizieren.

Verteiltes Dateisystem
Mit dem Verteilten Dateisystem (DFS) können Sie bei Ihrer Clusterimplementie-
rung sicherstellen, dass alle Hosts im Cluster identische Daten bereitstellen. DFS
wird mit Windows 2000 Server automatisch installiert. Es gewährleistet, dass alle
Daten in einem DFS-Basisverzeichnis, einem Verzeichnis oder einer Freigabe
repliziert und so synchron gehalten werden. Mit DFS kann ein Administrator ein
Dokument oder eine Datei modifizieren und sie dann auf alle Mitglieder der DFS-
Replikationsgruppe replizieren lassen.

12.2.2 Warum Daten replizieren?


In einem Cluster ist inhaltliche Konsistenz von größter Wichtigkeit und kann
gleichzeitig eine Menge administrativen Ärger bereiten. Wenn Sie einen Cluster
mit 32 Hosts verwalten, in dem sich der Inhalt täglich ändert, dann müssen Sie
sicherstellen, dass zwischen den Servern keine Unstimmigkeiten auftreten. Eine
Aufgabe wie diese kann zum schlimmsten Albtraum des Administrators werden:
Theoretisch müssten Sie alle geänderten Dateien manuell auf die anderen Server
kopieren und dabei immer sicherstellen, dass auch die aktuellsten Daten kopiert
werden; eine solche Aufgabe führt früher oder später zu menschlichem Versagen.
Wenn Sie die falsche Datei auf einen Produktionsserver kopieren, gefährden Sie
nicht nur die Produktion, sondern auch den guten Namen Ihrer Firma. Insofern
bietet sich die Verwendung eines automatischen Replikationsprogramms an, denn
der Umfang der administrativen Aufgaben verringert sich drastisch, und Inhalte
können von einem zentralen Punkt aus eingestellt bzw. aktualisiert werden.
Kapitel 12 • Replikation und Clusterunterstützung 295

12.2.3 Eine DFS-Freigabe für die Replikation konfigurieren


Wenn Sie das Verteilte Dateisystem verwenden wollen, müssen Sie das MMC-
Snap-In VERTEILTES DATEISYSTEM (DFS) verwenden. Gehen Sie dazu wie folgt
vor:
1. Klicken Sie auf START/PROGRAMME/VERWALTUNG/VERTEILTES DATEISYS-
TEM (DFS).

2. Klicken Sie mit der rechten Maustaste auf das Symbol VERTEILTES DATEISYS-
TEM im linken Fensterbereich und wählen Sie den Eintrag NEUEN DFS-STAMM
im Kontextmenü. Der ASSISTENT ZUM ERSTELLEN EINES NEUEN DFS-STAMMS
wird gestartet. Klicken Sie auf WEITER.
3. Vergewissern Sie sich, dass die Option DOMÄNEN-DFS-STAMM ERSTELLEN
selektiert ist, und klicken Sie dann auf WEITER.
4. Wählen Sie die Hostdomäne für den DFS-Stamm und klicken Sie dann auf
WEITER.
5. Bestätigen Sie den Namen des Hostservers für den DFS-Stamm. Klicken Sie
auf WEITER.
6. Wählen Sie den lokalen Freigabepunkt aus, der als Ziel des DFS-Stamms ver-
wendet wird, an dem der Replikationsinhalt abgelegt werden soll. Wenn Sie
zum ersten Mal eine DFS-Freigabe erstellen, müssen Sie einen Freigabepunkt
erstellen. Klicken Sie auf NEUE FREIGABE ERSTELLEN und geben Sie einen
Pfad wie etwa d:\inhalte sowie den Freigabenamen ein, der leicht zu merken
sein sollte. Mit dem Snap-In können Sie sowohl einen neuen Freigabepunkt als
auch ein neues Verzeichnis erstellen, sofern dieses noch nicht vorhanden ist.
7. Klicken Sie auf WEITER. Wenn das angegebene Verzeichnis nicht existiert,
werden Sie gefragt, ob es erstellt werden soll. Klicken Sie auf JA, um den Vor-
gang fortzusetzen. Falls gewünscht, können Sie eine Bemerkung zur Beschrei-
bung der Freigabe eingeben. Klicken Sie auf WEITER.
8. Klicken Sie auf FERTIG STELLEN, um den DFS-Stamm zu erstellen. Wenn der
Assistent seine Arbeit abgeschlossen hat, können Sie den DFS-Stamm admi-
nistrieren.
Nun können Sie die Replikation im Cluster starten. Die Verwendung dieses Pro-
gramms wird den Umfang Ihrer Aufgaben verringern, denn es stellt sicher, dass
alle Inhalte an alle Hosts im Cluster verteilt werden.

Tipp
Wenn Sie ein Replikationsschema implementieren, gehen Sie dabei mit
Umsicht vor. Arbeiten Sie zunächst in einem Testfeld oder einem Testver-
zeichnis, in dem Testinhalte vorhanden sind. Ich rate dringend davon ab,
Replikationsübungen mit Produktionsinhalten auf Produktionsservern
296 Replikation

durchzuführen. Wenn die Inhaltsreplikation falsch konfiguriert ist,


besteht das Risiko, dass Ihr gesamter wertvoller Produktionsinhalt über-
schrieben wird. Erstellen Sie also zunächst ein Testverzeichnis wie etwa
d:\test und setzen Sie in dieses eine Reihe weiterer, ähnlich benannter
Verzeichnisse. Replizieren Sie den Inhalt des Verzeichnisses auf das ent-
sprechende Verzeichnis auf den Zielservern. Sobald Sie das Replikations-
programm sicher nutzen, können Sie die Replikation in der
Produktionsumgebung ausführen.

12.2.4 Fazit
Wenn Sie identische Server als Hosts in einem Cluster benutzen, ist die Synchro-
nizität der bereitgestellten Inhalte einer der wesentlichsten Faktoren. Um die
gigantische administrative Arbeit zu verringern, die sich aus der Sicherstellung
der Inhaltsverteilung auf den betroffenen Servern ergibt, können verschiedene
Automatisierungslösungen verwendet werden. Welches Produkt dabei das ange-
messenste ist, hängt von der Art und Weise der Clusterimplementierung ab. Die
Konfiguration der Replikation in einer Testumgebung ist zwingend, damit nicht
versehentlich falsche Inhalte in ein Produktionsverzeichnis repliziert werden.
Windows 2000 Server verfügt über eine in hohem Maße skalierbares und konfi-
gurierbares Programm namens DFS, welches es Ihnen ermöglicht, die Inhaltsrep-
likation auf mehrere Server in einer Domäne durchzuführen.
Kapitel 13
Administrationsskripts

13.1 Arbeiten mit den IIS-Administrationsskripts 298


13.2 Fazit 312
298 Arbeiten mit den IIS-Administrationsskripts

Wenn Sie in einer UNIX- oder Linux-Umgebung großgeworden sind oder auf
Befehlszeilen-Utilities schwören, dann werden Sie die Skriptingmöglichkeiten
von IIS 5.0 sehr zu schätzen wissen. Sie können eine ganze Reihe der administra-
tiven Aufgaben mit Hilfe von Skripts automatisieren und ferner mit den Skripts
Websites und in diesen wiederum Verzeichnisse und Anwendungen erstellen.

13.1 Arbeiten mit den IIS-Administrationsskripts


Sie können Administrationsskripts unter Verwendung von adsutil.vbs oder adsu-
til.exe ausführen. Die beiden Anwendungen unterscheiden sich in der zu verwen-
denden Skriptsprache: adsutil.vbs verwendet zur Ausführung der Skripts
VBScript-Dateien, während adsutil.exe eine Bearbeitung der Metabasis in C oder
C++ mit Hilfe des ADSI (Active Directory Services Interface, Active-Directory-
Diensteschnittstelle) ermöglicht. Ferner ist wichtig festzuhalten, dass adsutil.exe
in der Lage ist, Befehle aus einer Datei auszulesen – adsutil.vbs kann dies nicht.
Wenn Sie beabsichtigen, die Administrationsskripts in VBScript zu verwenden,
dann beachten Sie auch, dass diese in Verbindung mit dem Befehlszeilen-Skrip-
tingprogramm CScript.exe zu benutzen sind. CScript arbeitet am besten, wenn es
registriert ist. Für diese Registrierung stehen zwei Möglichkeiten bereit.
Die erste Methode besteht darin, den Befehl adsutil.vbs direkt an der Eingabeauf-
forderung zu starten. Windows 2000 gibt in diesem Fall eine Fehlermeldung aus,
laut der adsutil nicht in Verbindung mit WScript funktioniert. Wenn Sie auf die
Schaltfläche OK klicken, wird ein weiteres Meldungsfenster angezeigt (Abbil-
dung 13.1). Hier können Sie adsutil registrieren.

Abb. 13.1: In diesem Dialogfeld werden Sie gefragt, ob Sie CScript als Standardhost
für Ihre VBScript-Anwendungen registrieren wollen. ADSUTIL ist eine
solche VBScript-Anwendung.

Wenn Sie die Schaltfläche JA anklicken, dann registriert Windows 2000 adsutil
und verknüpft es als .vbs-Datei mit CScript. Nachfolgend erscheint ein Mel-
dungsfenster, dass die Registrierung erfolgreich war. Sie können adsutil nun in
der Befehlszeile oder in Stapelverarbeitungsdateien verwenden.
Die zweite Methode zur Registrierung von adsutil ist der Aufruf der Anwendung
CScript.exe in der Befehlszeile. Geben Sie den Befehl cscript //H:cscript in
einer Zeile ein, um die Registrierung von CScript als Scripthost-Standard zu star-
ten. Das Ergebnis sehen Sie in Abbildung 13.2.
Kapitel 13 • Administrationsskripts 299

Abb. 13.2: Dieses Eingabeaufforderungsfenster zeigt den Aufruf des Befehls


CScript und die Mitteilung, dass CScript nun als Scripthost-Standard
registriert ist.

13.1.1 adsutil – das Verwaltungs-Skriptprogramm


Weiter oben haben wir adsutil bereits kurz vorgestellt -hier werden wir uns etwas
genauer mit dem Programm beschäftigen. Wie schon erwähnt, handelt es sich um
ein Verwaltungs-Utility, welches VBScript und ADSI benutzt. Ich persönlich
empfehle die Verwendung von adsutil in Verbindung mit CScript.
Syntax
adsutil befehl <pfad> [parameter]

Die Befehle sind die folgenden:


• GET pfad. Zeigt den gewählten Parameter an.

• SET pfad wert. Weist einen neuen Wert zu.

• ENUM pfad[/P, /A]. Zählt alle Parameter des Pfads auf. Der Schalter /P listet
die Pfade ohne Daten auf, der Schalter /A zeigt alle Daten an, die am Knoten
gesetzt werden können.
• ENUM_ALL [/P, /A]. Listet alle Parameter auf. Die Schalter /P und /A funktio-
nieren analog zum Befehl ENUM.
• DELETE pfad. Löscht den Pfad oder Parameter.

• CREATE pfad [schluesseltyp]. Erstellt einen neuen Pfad und weist ihm den
Wert schluesseltyp zu.
• APPCREATEINPROC pfad. Erstellt eine In-Process-Anwendung.

• APPCREATEOUTPROC pfad. Erstellt eine Out-of-Process-Anwendung.


300 Arbeiten mit den IIS-Administrationsskripts

• APPDELETE pfad. Löscht eine vorhandene Anwendung.

• APPUNLOAD pfad. Entlädt die bezeichnete Out-of-Process-Anwendung.

• APPGETSTATUS pfad. Holt den Status der Anwendung.

• FIND pfad. Sucht den Pfad, von dem aus eine Anwendung gestartet wird.

• START_SERVER pfad. Startet den Server, falls dies noch nicht geschehen ist.

• STOP_SERVER pfad. Stoppt einen laufenden Server.

• PAUSE_SERVER pfad. Hält die Website an.

• CONTINUE_SERVER pfad. Startet eine angehaltene Website wieder.

• HELP. Zeigt eine Liste aller Befehle von adsutil.

Beispiel
Ich habe den folgenden Befehl an meinen Server eingeben:
adsutil STOP_SERVER W3SVC/1

Abbildung 13.3 zeigt das Eingabeaufforderungsfenster, welches eine Bestätigung


enthält, dass der Server angehalten wurde.

Abb. 13.3: Das Eingabeaufforderungsfenster mit eingegebenem Befehl adsutil und


der Antwort des Servers

Hinweis
Diese Befehle halten natürlich nicht den Windows 2000-Server an, son-
dern nur den IIS-Bereich des Servers.
Kapitel 13 • Administrationsskripts 301

13.1.2 dispnode -Verwaltungsknoten anzeigen


Dieser Befehl wird zur Anzeige der Felder eines Verwaltungsknotens in der
Baumstruktur verwendet. Ein Beispiel sehen Sie in Abbildung 13.4.
Syntax
dispnode -a ADSPfad, -h

ADSPfad ist der vollständige Pfad zum anzuzeigenden Knoten.


-h zeigt die Hilfe für den Befehl an.

Abb. 13.4: Beispiel für den Befehl dispnode -a

13.1.3 disptree – Verwaltungsbaumstruktur anzeigen


Dieser Befehl wird zur Anzeige einer Baumstruktur der Verwaltungsobjekte ver-
wendet. Die Anzeige beginnt im gewählten Basisverzeichnis; wurde kein Basis-
verzeichnis spezifiziert, dann ist IIS://localhost das Standardbasisverzeichnis.
Syntax
disptree -a basisverzeichnis, -n, -?

-a basisverzeichnis ist der vollständige ADSI-Pfad zum Basisverzeichnis.


-n sorgt dafür, dass der Befehl in Containerobjekten nicht rekursiv arbeitet.
-? zeigt die Hilfe für den Befehl an.
Beispiel
disptree -a IIS://Localhost/w3svc -n
302 Arbeiten mit den IIS-Administrationsskripts

13.1.4 findweb – Website suchen


Dieser Befehl sucht die angegebene Website auf dem angegebenen Computer.
Syntax
findweb [-c computer] WEBSITE, -?

-c computer gibt den zu suchenden Computer an. Wenn kein Computer angege-
ben wird, wird localhost verwendet.
WEBSITE ist die zu suchende Website. Sie können hier wahlweise die Servernum-
mer, den Servernamen, den Domänennamen des Servers oder seine IP-Adresse
eingeben.
-? zeigt die Hilfe für den Befehl an.
Beispiel
findweb -c computer2 www.gkcomput.com

13.1.5 mkw3site – Website erstellen


Mit diesem Befehl erstellen Sie auf dem Server eine Website. Dabei werden
natürlich keine Inhalte generiert, sondern es wird lediglich eine Sitestruktur
erzeugt.
Syntax
mkw3site -r basisverzeichnis, -t serveranmerkung, -c computer, -o anschlussnum-
mer, -i IPAdresse, -a Administrator, -h Hostname, --DontStart, -? Hilfe

-r gibt den vollständigen Namen des Basisverzeichnisses an.


-t ermöglicht Ihnen die Eingabe einer Anmerkung, die im Internetdienste-Mana-
ger angezeigt wird.
-c ist der Name des Computers, auf dem die Site erstellt wird. Die Angabe ist
optional; wird sie nicht vorgenommen, dann wird als Computer localhost ver-
wendet.
-o bezeichnet die Anschlussnummer, die die Website auf HTTP-Anforderungen
überwachen soll.
-i ist die IP-Adresse des Servers, dem die Site zugewiesen wird. Die Eingabe ist
ebenfalls optional.
-a gibt einen Administrator an, der für die Verwaltung der Site verantwortlich ist.
-h bezeichnet den für die Site zu verwendenden Hostnamen. Verwenden Sie diese
Option nur, wenn Sie DNS zur Namensauflösung verwenden.
Kapitel 13 • Administrationsskripts 303

--DontStart teilt IIS mit, dass der Server nach der Erstellung nicht gestartet wer-
den soll. Die eine oder andere Änderung kann noch notwendig sein,
bevor Sie die Site online bringen.
-? zeigt die Hilfe für den Befehl an.
Beispiel
mkw3site -r F:\InetPub\wwwroot\testweb -t TestSite -h www.newweb.com

Abbildung 13.5 zeigt das Ergebnis dieses Befehls in Form einer in der MMC hin-
zugefügten Website.

Abb. 13.5: Die MMC-Konsole zeigt die neue Website, die mit Hilfe des Befehls
mkw3site hinzugefügt wurde

Eines der besten Anwendungsgebiete für dieses Skript ist die gleichzeitige Erstel-
lung mehrerer Websitestrukturen auf einem Server. Wenn Sie beispielsweise
Administrator bei einem Internet- oder Webspaceprovider sind, bei dem mehrere
Websites auf einem Server liegen, dann können Sie durch Verwendung dieses
Befehls in einer Stapelverarbeitungsdatei schnell Sitestrukturen erstellen.

13.1.6 mkwebdir – virtuelles Webverzeichnis erstellen


Wir haben bereits in früheren Kapiteln über virtuelle Verzeichnisse und darüber
gesprochen, wie diese sich im Internetdienste-Manager erstellen lassen; virtuelle
Verzeichnisse lassen sich aber auch mit Hilfe des Skriptbefehls mkwebdir einrich-
ten.
Wenn Sie den Befehl in einer Stapelverarbeitungsdatei verwenden, können Sie
schnell und unkompliziert mehrere virtuelle Verzeichnisse gleichzeitig erstellen.
304 Arbeiten mit den IIS-Administrationsskripts

Syntax
mkwebdir -c computername, -w website, -v name, pfad, -? Hilfe

-c gibt den Namen des Computers an, auf dem das virtuelle Verzeichnis erstellt
wird. Sie können mehrere Rechner angeben, deren Namen durch Kommata
getrennt werden. Wenn Sie keinen Computer angeben, wird wie üblich local-
host als Standard verwendet.
-w bezeichnet die Website, in der das virtuelle Verzeichnis angelegt wird. Die Site
wird durch die Nummer oder die Beschreibung des Servers, den Hostnamen
oder die IP-Adresse spezifiziert.
-v sind Name und Pfad des zu erzeugenden virtuellen Verzeichnisses. Sie können
auch hier mehrere durch Kommata getrennte Einträge angeben.
-? zeigt die Hilfe für den Befehl an.
Beispiel
mkwebdir -c -w "Website für die Marketingabteilung" -v grafiken, F:\Inetpub\www-
root\Marketing\Grafiken

13.1.7 stopweb – Webserver beenden


Dieser Befehl wird zum Beenden eines laufenden Webservers benutzt. Er stellt
eine Alternative zur Verwendung des Internetdienste-Managers dar.
Syntax
stopweb -a server, -c computer, -v, -? Hilfe

-a zeigt die Nummer des zu beendenden Servers als SERVERx an. Sie können meh-
rere Server, deren Einträge durch Kommata getrennt werden müssen, gleich-
zeitig beenden.
-c bezeichnet den Computer. Auch hier können mehrere kommagetrennte Ein-
träge angegeben werden.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
stopweb -a 1

Abbildung 13.6 zeigt den Internetdienste-Manager, in dem die Standardwebsite


infolge dieses stopweb-Befehls mit dem Vermerk (Beendet) versehen wurde, denn
auf meinem Server ist die Standardwebsite als Website 1 klassifiziert.
Kapitel 13 • Administrationsskripts 305

Abb. 13.6: Der Internetdienste-Manager zeigt die infolge eines stopweb-Befehls


beendete Standardwebsite

13.1.8 stopsrv – Server beenden


Sie können diesen Befehl zum Beenden eines oder mehrerer Server verwenden.
Trennen Sie wie üblich einzelne Einträge der Serverliste gegebenenfalls mit
Kommata.
Syntax
stopsrv -a SERVERx, -c computer, -v, -? Hilfe

-a bezeichnet die Nummer des zu beendenden Servers.


-c bezeichnet den Computer. Auch hier können mehrere kommagetrennte Ein-
träge angegeben werden. Wird kein Name angegeben, so wird wie üblich
localhost als Standard verwendet.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
stopsrv -a w3svc/1

Dieser Befehl würde den Webdienst auf dem Computer localhost beenden.
306 Arbeiten mit den IIS-Administrationsskripts

13.1.9 stopftp – FTP-Server beenden


Verwenden Sie diesen Befehl zum Beenden des angegebenen FTP-Servers.
Syntax
stopftp -a SERVERx, -c computer, -v, -? Hilfe

-a listet die Nummern des oder der zu beendenden Server auf.


-c bezeichnet den oder die betroffenen Computer.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
stopftp -a 1

Dieser Befehl beendet den ersten FTP-Server, der auf Ihrem Computer vorhanden
ist.

13.1.10 startweb – Webserver starten


Die Möglichkeit, einen Webserver über die Befehlszeileneingabe zu beenden,
würde sich als wenig hilfreich erweisen, wenn der Server sich via Befehlszeile
nicht auch wieder starten ließe. Zu diesem Zweck bietet IIS den Befehl startweb
an.
Syntax
startweb -a SERVERx, -c computer, -v, -? Hilfe

-a verweist auf den oder die zu startendenden Server. Sie können mehrere Server,
deren Einträge durch Kommata getrennt werden müssen, gleichzeitig starten.
-c bezeichnet den Computer, auf dem der Webdienst gestartet werden soll. Auch
hier können mehrere kommagetrennte Einträge angegeben werden.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
startweb -a 1

Mit diesem Befehl starten Sie den Webserver neu, den Sie weiter oben mit dem
Befehl stopweb beendet haben.
Kapitel 13 • Administrationsskripts 307

13.1.11 startsrv – Server starten


Mit diesem Befehl können Sie einen oder mehrere Server via Befehlszeile starten.
Syntax
startsrv -a SERVERx, -c computer, -v, -? Hilfe

-a gibt den oder die Servernummern an. Achten Sie gegebenenfalls auf die Kom-
matrennung.
-c bezeichnet den oder die zu startenden Computer.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
startsrv -c computer -a w3svc/1

Dadurch wird der Webdienst auf dem Computer computer gestartet.

13.1.12 startftp – FTP-Server starten


Mit diesem Befehl starten Sie eine zuvor beendete oder neu erstellte FTP-Site.
Syntax
startftp -a SERVERx, -c computer, -v, -? Hilfe

-a listet den oder die zu startenden Server auf.


-c bezeichnet den oder die zu startenden Computer.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
startftp -c computer -a 1

In diesem Beispiel wird der erste FTP-Dienst auf dem Computer computer gestar-
tet.

13.1.13 pauseweb – Webserver anhalten


Mit diesem Befehl können Sie einen Webserver anhalten. Dies kann beispiels-
weise wünschenswert sein, wenn Sie ein paar kleine Änderungen vornehmen
wollen, die die Anzeige einer Seite betreffen oder dafür sorgen, dass vor einer
308 Arbeiten mit den IIS-Administrationsskripts

Aktualisierung von Informationen weiterhin veraltete Daten (statt einer leeren


Seite) angezeigt werden.
Syntax
pauseweb -a SERVERx, -c computer, -v, -? Hilfe

-a listet den oder die anzuhaltenden Webserver auf.


-c bezeichnet den oder die Computer, auf denen der Webserver angehalten wer-
den soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
pauseweb -c computer -a 1

Dieser Befehl hält den ersten Webserver auf dem Computer namens computer an.
In meinem Fall ist dies der Standardwebserver.

13.1.14 pausesrv – Server anhalten


Mit diesem Befehl können Sie einen oder mehrere Server via Befehlszeile starten.
Trennen Sie gegebenenfalls mehrere Server durch Kommata.
Syntax
pausesrv -a SERVERx, -c computer, -v, -? Hilfe

-a listet den oder die anzuhaltenden Server auf.


-c bezeichnet den oder die Computer, auf denen der Server angehalten werden
soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
pausesrv -c computer -a w3svc/1

Dieser Befehl hält den ersten Webserver auf dem Computer namens computer an.
Kapitel 13 • Administrationsskripts 309

13.1.15 pauseftp – FTP-Server anhalten


Mit diesem Befehl können Sie einem FTP-Server im Netzwerk anhalten.
Syntax
pauseftp -a SERVERx, -c computer, -v, -? Hilfe

-a listet den oder die anzuhaltenden FTP-Server auf.


-c bezeichnet den oder die Computer, auf denen der Dienst angehalten werden
soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
pauseftp -c computer -a 1

Dieser Befehl hält den ersten FTP-Server auf dem Computer namens computer
an.

13.1.16 contweb – Webserver fortsetzen


Wenn wir einen Webserver anhalten können, müssen wir ihn auch wieder fortset-
zen können. Im Internetdienste-Manager gibt es dafür die Schaltfläche NEU STAR-
TEN, das entsprechende Befehlszeilen-Tool heißt contweb.

Syntax
contweb -a SERVERx, -c computer, -v, -? Hilfe

-a listet die Nummer(n) des oder der Server auf, auf denen der Webdienst neu
gestartet werden soll.
-c bezeichnet den oder die Computer, auf denen der Webserver neu gestartet wer-
den soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
contweb -c computer -a 1

Mit diesem Befehl wird der angehaltene Webserver auf dem Computer namens
computer neu gestartet.
310 Arbeiten mit den IIS-Administrationsskripts

13.1.17 contserv – Server neu starten


Dieser Befehl wird zum Neustart eines angehaltenen Servers verwendet.
Syntax
contsrv -a SERVERx, -c computer, -v, -? Hilfe

-a listet die Nummer(n) des oder der neu zu startenden Server auf.
-c bezeichnet den oder die Computer, auf denen der Server neu gestartet werden
soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
contsrv -c computer -a msftpsvc/1

Dieser Befehl startet den momentan angehaltenen FTP-Dienst auf dem Computer
computer neu.

13.1.18 contftp – FTP-Server neu starten


Auf die gleiche Weise wie mit contweb und contsrv die jeweiligen angehaltenen
Dienste neu gestartet werden, können Sie mit contftp einen angehaltenen FTP-
Dienst neu starten.
Syntax
contftp -a SERVERx, -c computer, -v verbose, -? Hilfe

-a listet die Nummer(n) des oder der neu zu startenden Server auf.
-c bezeichnet den oder die Computer, auf denen der FTP-Dienst neu gestartet
werden soll.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkungen anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
contftp -c computer -a 1

Dieser Befehl startet den angehaltenen FTP-Server mit der Nummer 1 auf dem
Computer computer neu.
Kapitel 13 • Administrationsskripts 311

13.1.19 chaccess – Zugriffsbeschränkungen ändern


Sie können die Zugriffsbeschränkungen auf einem Server mit Hilfe des Befehls
chaccess ändern, der sowohl in einer Stapelverarbeitungsdatei verwendet als auch
über die Befehlszeile aufgerufen werden kann. Die vorhandenen Zugriffsbe-
schränkungen lauten Read (Lesen), Write (Schreiben), Script (Skriptzugriff),
Execute (Ausführen) und Browse (Durchsuchen) und entsprechen denen auf der
Registerkarte BASISVERZEICHNIS (Abbildung 13.7), die Sie im Dialogfeld EIGEN-
SCHAFTEN einer Website finden.

Abb. 13.7: Auf der Registerkarte BASISVERZEICHNIS werden die


Zugriffsbeschränkungen aufgelistet. Diese können Sie wahlweise auf
dieser Registerkarte oder mit Hilfe des Befehls chaccess setzen.

Syntax
chaccess -a ADSPfad, -c computer,

+/- read
+/- write
+/- script
+/- browse
312 Fazit

+/- execute

-v, -? Hilfe

-a bezeichnet den relativen Pfad zum Rechner.


-c ist eine Liste mit Computernamen, auf die die Änderungen angewandt werden
sollen.
+/- steuert die Beschränkungen. Mit dem Pluszeichen (+) aktivieren Sie eine
Beschränkung, mit dem Minuszeichen (-) deaktivieren Sie. Der (englische)
Name der Zugriffsbeschränkung folgt direkt hinter dem Zeichen.
-v (ausführlicher Modus) bewirkt, dass die Skript-Engine bei der Ausführung des
Skripts Anmerkunge
n anzeigt.
-? zeigt die Hilfe für den Befehl an.
Beispiel
chaccess -a w3svc/1 -c computer +read +write +browse

Mit diesem Befehl werden die Zugriffsbeschränkungen Lesen, Schreiben und


Durchsuchen für den ersten Webdienst auf dem Computer mit Namen computer
gesetzt.

13.2 Fazit
Administrationsskripts sind eine bedeutsame Möglichkeit, die Remoteadministra-
tion oder eine Administrationsautomatisierung zu verwirklichen, bei der verschie-
dene Aspekte der WWW- und FTP-Dienste, die auf dem Computer ausgeführt
werden, gesteuert werden können.
Wenn Sie diese Befehle in Stapelverarbeitungsdateien verwenden, können Sie die
Erstellung von Websites und virtuellen Verzeichnissen auf einem Server automa-
tisieren, wodurch Ihnen stundenlange manuelle Konfigurationsarbeiten für jede
Site im Internetdienste-Manager erspart bleiben.
Aufgrund von Änderungen an einer Web- oder FTP-Site kann es notwendig wer-
den, die Dienste anzuhalten und dann fortzusetzen bzw. neu zu starten. Mit den
hier beschriebenen Skriptbefehlen können Sie auch diese Aufgaben ohne den
Internetdienste-Manager ausführen.
Auch das zeitgesteuerte Beenden von Diensten ist mit den Skriptbefehlen mög-
lich. Beispielsweise könnte ein Skript die Web- oder FTP-Dienste Ihres Unter-
nehmens nach Geschäftsschluss automatisch beenden und so den Sicherheitsgrad
erhöhen. Dadurch ließe sich unbefugter Zugriff verhindern, denn die jeweiligen
Mitarbeiter haben ihr Tagespensum zu diesem Zeitpunkt bereits abgeschlossen
und benötigen nach Geschäftsschluss keinen Zugriff mehr auf die Sites.
Kapitel 13 • Administrationsskripts 313

Viele weitere Anwendungen für Administrationsskripts sind denkbar, und in


jedem Büro sieht der entsprechende Bedarf anders aus. Welche Bedürfnisse Sie
auch immer haben, ich bin sicher, dass Sie Skripts vorteilhaft finden werden.
Kapitel 14
IIS programmgesteuert
administrieren

14.1 IIS mit Objekten und ADSI administrieren 316


14.2 Die IIS-Metabasis 317
14.3 IIS Admin Objects 320
14.4 Fazit 326
316 IIS mit Objekten und ADSI administrieren

IIS umfasst eine Reihe Tools, mit denen Sie Dienste mit Hilfe von Skripts oder
Anwendungen administrieren können. Die Daten, mit denen Sie hierbei arbeiten
bzw. die Sie manipulieren, werden in der so genannten Metabasis gespeichert.
Die Metabasis ist ein nichtflüchtiger Datenspeicher, der dank der Tatsache, dass
die gespeicherten Daten nicht erst von der Festplatte geladen werden müssen,
einen sehr schnellen Zugriff ermöglicht. Wie den meisten von uns bekannt sein
dürfte, reicht die Zugriffsgeschwindigkeit auf Festplattendaten immer noch nicht
ganz an die des Speicherzugriffs heran.

14.1 IIS mit Objekten und ADSI administrieren


Die IIS-Konfigurationsdaten sind in der Metabasis als Binärwerte gespeichert.
Um diese Werte bearbeiten zu können, müssen Sie IIS Admin Objects (IIS-Ver-
waltungsobjekte) verwenden. Es gibt Verwaltungsobjekte, die bestimmten
Schlüsseltypen in der Metabasis entsprechen. Mit Hilfe von ASP oder Skripts
können Sie eigene Anwendungen zur Remoteadministration Ihres IIS-Servers
erstellen. Die Remoteadministration von IIS werden wir in Kapitel 15 näher
beleuchten; die HTML-Oberfläche, die dort besprochen werden wird, wurde mit
IIS Admin Objects erstellt.
Es gibt zwei Möglichkeiten der IIS-Programmierung: Sie können die Verwal-
tungsobjekte verwenden – diesen Ansatz werden wir in diesem Kapitel beschrei-
ben –, oder Sie benutzen das IIS Admin Base Object (IIS Admin Base Object).
Das IIS Admin Base Object bietet Ihnen ein paar erweiterte Programmfunktio-
nen.
Das IIS Admin Base Object ist ein eher bescheidenes Interface, das in Verbindung
mit COM+-kompatiblen Sprachen wie etwa C++ verwendet wird. Die Arbeit am
IIS Admin Base Object erfolgt über eine Schnittstelle namens IMSAdminBase.
Mit dieser Schnittstelle und der Programmiersprache C++ können Sie Anwen-
dungen entwickeln, die zwecks Manipulation der IIS-Konfiguration Zugriff auf
die Schlüssel und Werte der Metabasis gestatten.
Um auf diese Funktionalität zugreifen zu können, müssen Sie mit so genannten
»Handles« arbeiten. Handles beziehen sich auf Schlüssel in der Metabasis. Sie
müssen die Methode OpenKey verwenden, um mit dem Handle einer Metabasis
arbeiten zu können. Dabei ist der vollständige Pfad zum gewünschten Schlüssel in
der Metabasis anzugeben, etwa in der Form /LM/MSFTPSVC/1 (dieser Pfad ver-
weist auf den ersten FTP-Server des lokalen Rechners).
Das IIS Admin Base Object hat einen Haupt-Handle namens METADATA_
MASTER_ROOT_HANDLE. Ungeachtet der Tatsache, dass es sich hierbei um
einen Haupt-Handle handelt, stellt dieser trotzdem keinerlei Schutz gegen Multi-
thread-Zugriff auf die Metabasis dar; das bedeutet, dass eine Multithread-Anwen-
dung auf die Datenbank zugreifen kann und ein Thread den Wert eines Schlüssels
ändert, ohne dass der oder die anderen Threads davon etwas mitbekommen. Dies
Kapitel 14 • IIS programmgesteuert administrieren 317

könnte ein Problem werden, wenn die Ausführung eines Threads von einem Wert
abhängt, der in einem anderen Schlüssel gespeichert ist; die versehentliche Ände-
rung eines Wertes kann zu einer Fehlfunktion der Anwendung führen.
Auch das IIS Admin Base Object nutzt das Vererbungsprinzip, d.h. Sie können
einem Basisobjekt oder einem übergeordneten Objekt einen Wert zuweisen und
festlegen, dass jeder Unterschlüssel oder jedes Unterobjekt diese Einstellungen
übernimmt. Mit dieser Funktion können Einstellungen auf einen ganzen Server
oder eine gesamte Site angewandt werden; Änderungen, die an einzelnen Objek-
ten vorgenommen werden, haben in diesem Fall Vorrang vor den globalen Ein-
stellungen.
Bei der Arbeit mit dem IIS Admin Base Object müssen Sie einige Benutzertypen
kennen. Diese Benutzertypen erlauben die Klassifizierung Ihrer Kennungen durch
die Anwendung. Derzeit verwendet IIS die folgenden vier Benutzertypen:
• IIS_MD_UT_FILE für Verzeichnis- und Dateieigenschaften
• IIS_MD_UT_SERVER zur Konfiguration der Serverparameter
• IIS_MD_UT_WAM zur Verwaltung von Webanwendungen
• ASP_MD_UT_APP zur Konfiguration von ASP-Anwendungen
In Anhang D finden Sie eine vollständige Administrationsreferenz, die die Benut-
zertypen der einzelnen Objekte auflistet. Sie können das SDK (Software Develop-
ment Kit) für die Windows 2000-Plattform unter http://msdn.microsoft.com/
downloads/sdks/platform/platform.asp herunterladen. Unten auf dieser ASP-
Seite wird das SDK in Komponenten unterteilt, so dass Sie nur das herunterladen
müssen, was Sie auch brauchen. Das SDK ist eine wertvolle Informationsquelle,
wenn es um die Entwicklung von Anwendungen zur IIS-Manipulation mit Hilfe
des IIS Admin Base Objects geht.
Die hier vorgestellten IIS Admin Objects werden als Objekte mit Automationsak-
tivierung betrachtet, d.h. sie gestatten über ihre Schnittstellen Datenmanipulatio-
nen mit Sprachen wie Visual Basic, VBScript, C++ oder JScript. Die Objekte
fußen auf das ADSI (Active Directory Services Interface).
Wir werden diese Objekte und das ADSI im Laufe des Kapitels noch ein wenig
näher untersuchen, aber zunächst möchte ich Ihnen die Metabasis vorstellen, denn
hier werden schließlich die Daten für IIS 5.0 gespeichert, und sie wird auch das
Opfer Ihrer Manipulationen mit Hilfe der IIS Admin Objects sein.

14.2 Die IIS-Metabasis


Wie bereits erwähnt, ist die Metabasis der alleinige Ablageort für alle Konfigura-
tionsdaten, die mit IIS 5.0 in Zusammenhang stehen.
318 Die IIS-Metabasis

14.2.1 Struktur
Die Metabasis ist ähnlich wie die Registrierdatenbank aufgebaut, denn auch sie
verwendet ein hierarchisches System mit Schlüsseln und Werten. Die Knoten in
der Metabasis-Struktur heißen Schlüssel. Diese Schlüssel beinhalten Werte, die
IIS-Konfigurationswerte repräsentieren und als Metabasis-Eigenschaften
bezeichnet werden.
Wenn Sie bereits mit früheren IIS-Versionen gearbeitet haben, werden Sie die IIS-
Konfigurationsschlüssel in der Registrierung wahrscheinlich kennen. Diese Werte
sind von nun an in der Metabasis gespeichert, wodurch es erfreulicherweise mög-
lich ist, die gleiche Eigenschaft für verschiedene Knoten unterschiedlich zuzu-
weisen. Sie werden außerdem feststellen, dass die Metabasis einen wesentlich
schnelleren Zugriff auf die Daten gestattet, denn sie ist im RAM gespeichert,
wenn der Server läuft.

IIS Computer

FTP Service Web Service

IISFTPInfo IISWebInfo

IISFTPServer IISFilters

IISFTPVDir IISFilter

IISLogModules IISCompressionSchemes

IISLogModule IISWebServer

IISCustomLogModule IISWebVDir

IISMimeMap IISWebDir

IISWebFile

IISWebFile

IISCertMapper

IISFilters

IISFilter

Abb. 14.1: Die IIS Admin Objects und ihre Beziehungen zueinander

Der oberste Schlüssel heißt IIS Computer und enthält diejenigen Eigenschaften,
die für den gesamten IIS-Dienst auf dem Rechner Gültigkeit haben. Die Schlüssel
werden darunter in verschiedene Dienste unterteilt, nämlich je einer für die FTP-
und für die WWW-Dienste, die auf dem Computer ausgeführt werden.
Kapitel 14 • IIS programmgesteuert administrieren 319

Jeder Dienst beinhaltet spezielle Schlüssel. Unter dem Schlüssel FTP Service fin-
den Sie Schlüssel, die sich auf FTP-Server beziehen. Beachten Sie, dass die Rede
von Servern ist, denn davon kann es mehrere geben. Analog kann auch der
Schlüssel Web Service mehr als einen Webserver bearbeiten. Wenn Sie an den
Schlüsseln Web Service oder FTP Service Änderungen vornehmen, dann wirken
diese auf alle Server der jeweiligen Sorte, die auf dem Computer ausgeführt wer-
den. Wie bereits oben gesagt wurde, können Sie auch an einzelnen Web- oder
FTP-Servern Änderungen vornehmen, die dann Vorrang vor den globalen Einstel-
lungen haben, welche auf der Computer- oder Dienstebene vorgenommen wur-
den.

14.2.2 Schlüsselnamen und Pfade


Wenn wir im Zusammenhang mit der Metabasis von Schlüsseln reden, dann kön-
nen Sie diese durchaus mit einem Verzeichnis in einem Dateisystem vergleichen.
Die Schlüssel können einen Pfad bilden, indem sie – jeweils durch einen Schräg-
strich getrennt – hintereinanderweg eingegeben werden.
In der Metabasis können mehrere Schlüssel gleichen Namens vorhanden sein,
sofern diese über unterschiedliche Pfade zu erreichen sind – ebenso, wie Sie zwei
Dateien mit gleichem Namen in unterschiedlichen Verzeichnissen auf einem
Computer speichern können.
Um auf einen bestimmten Schlüssel mit den IIS Admin Objects zugreifen zu kön-
nen, benötigen Sie den vollständigen Pfad zu diesem Schlüssel; dieser Pfad ist auch
als ADSI-Pfad bekannt. Dieser Pfad beginnt immer mit IIS://, gefolgt von der IP-
Adresse oder dem Hostnamen des Computers. Ein Beispiel wäre IIS://localhost/
W3SVC/1; hiermit würden Sie auf den ersten Webserver auf dem lokalen Server
zugreifen.
Jeder Web- und FTP-Server verfügt über ein Basisverzeichnis (oder ein virtuelles
Basisverzeichnis). Um auf das Basisverzeichnis unseres im vorherigen Absatz
angegebenen Beispielservers zugreifen zu können, geben wir IIS://localhost/
W3SVC/1/ROOT ein. Alle übrigen Verzeichnisse sind Unterverzeichnisse dieses
Verzeichnisses.

14.2.3 Vererbung von Eigenschaften


Die meisten Eigenschaften, die in der Metabasis vorhanden sind, sind vererbbar,
d.h. Sie können sich auf ein paar wenige Einstellungen beschränken und den von
der Metabasis benutzten Speicher sehr klein halten. Schlüssel auf höheren Ebenen
übergeben ihre Eigenschaften an untergeordnete Schlüssel, d.h. die untergeordne-
ten Schlüssel erben die Einstellungen der übergeordneten Schlüssel. Ein gutes
Beispiel dafür ist das Setzen von Dateiberechtigungen wie Schreiben oder Aus-
führen auf der Dienstebene (W3SVC). Alle identischen Schlüssel unterhalb dieses
Basisschlüssels erben die Einstellung, sofern Sie nicht explizit etwas anderes fest-
legen.
320 IIS Admin Objects

Hinweis
Wenn Sie das IIS-Snap-In verwenden und eine vererbbare Eigenschaft
einstellen, wird ein Dialogfeld angezeigt, in dem Sie festlegen müssen,
für welche Unterknoten Sie die Eigenschaft setzen wollen. Wenn Sie hin-
gegen eine vererbbare Eigenschaft mit Hilfe eines Skripts einstellen,
haben Sie keine Eingriffsmöglichkeit – die Unterknoten erben die Einstel-
lung automatisch.

In Anhang D finden Sie eine Liste aller Eigenschaften. Dort ist auch ersichtlich,
welche Eigenschaften vererbbar sind.

14.2.4 Sicherheit und Zuverlässigkeit


Die Metabasis liegt im Arbeitsspeicher – einen Neustart oder das Herunterfahren
des Computers überlebt sie nicht. Aus diesem Grund wird sie auf der Festplatte
gespeichert und beim Start von IIS wieder geladen. Ferner speichert IIS die Meta-
basis regelmäßig auf die Festplatte, um sicherzustellen, dass kürzlich vorgenom-
mene Änderungen erhalten bleiben. Wenn Sie den Dienst beenden, wird die
Metabasis erneut auf die Festplatte gespeichert.
Standardmäßig erhält die Metabasis den Dateinamen metabase.bin und wird im
Verzeichnis \Inetsrv abgelegt. Es ist von fundamentaler Wichtigkeit, die Datei
gegen unbefugten Zugriff zu schützen; speichern Sie sie deswegen immer auf
einer NTFS-Partition und konfigurieren Sie die Zugriffsberechtigungen entspre-
chend.
Sie können die Datei in ein anderes Verzeichnis verschieben oder sie umbenen-
nen. In diesem Fall müssen Sie allerdings ein paar Änderungen in der Registrie-
rung vornehmen, damit IIS die Datei beim Start finden kann. Der hierzu zu
konfigurierende Registrierungsschlüssel heißt HKEY_LOCAL_MACHINE\SOFT-
WARE\Microsoft\InetMgr\Parameters. Sie müssen für diesen Schlüssel einen
Wert vom Typ REG_SZ hinzufügen und diesen dann MetadataFile nennen. Meta-
dataFile beinhaltet den vollständigen Pfad zur Metabasis – einschließlich Lauf-
werksbuchstabe und Dateiname.

14.3 IIS Admin Objects


Microsoft hat die IIS Admin Objects verfügbar gemacht, um die Aufgabe der pro-
grammgesteuerten Administration zu erleichtern. Diese Objekte arbeiten mit
Automationsaktivierung und basieren auf dem ADSI, d.h. jede Sprache, die
Automatisierungen unterstützt, kann auf diese Objekte zugreifen und sie manipu-
lieren. Sowohl VBScript als auch JScript ermöglichen die Automationsaktivie-
rung, und da beide Bestandteil von IIS sind, verfügen Sie bereits über alle Werk-
zeuge, die Sie brauchen.
Kapitel 14 • IIS programmgesteuert administrieren 321

14.3.1 Übersicht
Mit Hilfe der IIS Admin Objects können Sie eine ASP-Seite oder eine benutzer-
definierte Anwendung entwickeln und damit via Zugriff auf die entsprechenden
Objekte die Eigenschaften der Metabasis manipulieren.
Wenn man berücksichtigt, was weiter oben über die Struktur der Metabasis gesagt
wurde, dann ist leicht verständlich, dass man diese Eigenschaften mit den IIS
Admin Objects wahlweise für den gesamten Server oder für einzelne Dateien
oder Dienste einstellen kann – man muss lediglich das richtige Objekt verwenden,
und dafür benötigt man den vollständigen Pfad zu diesem Objekt, beginnend mit
dem Basisverzeichnis.
Die IIS Admin Objects spiegeln die Objekthierarchie der Metabasis wieder, wie
sie in Abbildung 14.1 dargestellt ist. Sie werden im Verlauf dieses Abschnitts
sehen, wie Sie auf das gewünschte Objekt zugreifen können, indem Sie sich ein-
fach von oben nach unten durch diese Hierarchie hangeln.

14.3.2 ADSI
ADSIs (Active Directory Service Interfaces) machen eine Standardsyntax für die
Arbeit mit IIS Admin Objects verfügbar. Mit Hilfe dieser Syntax können Sie auf
die benötigten Konfigurationsdaten zugreifen. Wie bereits erwähnt, verwendet
das HTML-basierte Administrationstool diese Objekte, um eine Remotekonfigu-
ration ausführen zu können.
Der jeweilige Metabasis-Pfad referenziert die IIS Admin Objects. Wenn Sie bei-
spielsweise auf den zweiten Webserver auf einem Computer namens websrvone
zugreifen wollen, dann müssen Sie den vollständigen ADSI-Pfad (AdsPath) ein-
geben, etwa so: IIS://websrvone/W3SVC/2.

ADSI-Objekte
Die IIS Admin Objects implementieren die IADs-Schnittstelle, die durch den
ADSI-Standard definiert ist. Daraus ergibt sich die Implementierung der folgen-
den Funktionen:
• eine Methode zum Auslesen der Namespace-Eigenschaften
• ein Pfad zur Schemadefinition eines Objekts
• Kenndaten wie etwa der Name und der Typ eines Objekts
• ein Cache-System
• eine Methode zum Einstellen und Auslesen von Eigenschaften eines bestimm-
ten Knoten in der Metabasis
322 IIS Admin Objects

• eine Möglichkeit, den Pfad eines dem Objekt übergeordneten Objekts auszule-
sen
• Bindungsdaten für eindeutig identifizierende Objektinstanzen in einem Ver-
zeichnisbaum

ADSI-Containerobjekte
ADSI-Containerobjekte sind diejenigen IIS Admin Objects, die durch Implemen-
tierung der Schnittstelle IADsContainer andere Objekte enthalten können.
Die als Containerobjekte klassifizierten IIS Admin Objects sind IIsComputer und
IIsWebVirtualDir. IIsComputer enthält zwei direkt untergeordnete Objekte
namens IIsWebService und IIsFtpService, während IIsWebVirtualDir ein IIsWeb-
Directory-, ein IIsWebVirtualDir- und ein IIsWebFile-Objekt enthalten kann.
Die Schnittstelle IADsContainer ermöglicht die Ausführung der folgenden Proze-
duren in Bezug auf die Container und ihre Objekte:
• Objekte in einem Container erstellen (Create)
• Objekte aus einem Container löschen (Delete)
• Eine Objektzählung in einem Container durchführen (Count)
• Auf Objekte im Container zugreifen (GetObject)
• Objekte auflisten (_NewEnum)
Nachfolgend jeweils ein Beispiel für die Verwendung der einzelnen Methoden.
Create
Set newObj = Object(KeyType, Name)

newObj wird für den Zugriff auf das neue Objekt im Container benutzt. Object ist
der Name eines IIS-Objekts, der normalerweise von der Methode GetObject
zurückgegeben wird (siehe auch das nachfolgende Codebeispiel). KeyType ist der
Typ des zu erstellenden IIS Admin Object, Name der Name des neuen Objekts.
Zum Beispiel:
<%
Dim WebSrvObject, SrvObject
Set WebSrvObject = GetObject("IIS://computer/W3SVC")
Set SrvObject = WebSrvObject.Create("IISWebServer", "5")
%>

Dieser Codeausschnitt gibt zunächst den Namen des W3SVC-Objekts zurück, das
auf einem Rechner namens computer abgelegt ist, und weist diesen der Variable
WebSrvObject zu. In der nächsten Zeile wird die Variable SrvObject auf das neu
erstellte IISWebServer-Objekt mit der Nummer 5 gesetzt.
Kapitel 14 • IIS programmgesteuert administrieren 323

Delete
Object.Delete KeyType, Name

Object ist das von der Methode GetObject zurückgegebene IIS-Verwaltungsob-


jekt. KeyType ist der Typ und Name der Name des zu löschenden IIS Admin
Object. Zum Beispiel:
<%
Dim WebSrvObject
Set WebSrvObject = GetObject("IIS://computer/W3SVC")
WebSrvObject.Delete "IISWebServer", "5"
%>

Mit diesem Codeausschnitt löschen Sie das Objekt, welches weiter oben mit
Create erstellt worden war.

Hinweis
Wenn das zu löschende Objekt Teil einer Anwendung war, dann wird
zuerst die Methode AppDelete aufgerufen, um die Anwendungsdefini-
tion zu entfernen, bevor das Objekt selbst entfernt wird. Überprüfen Sie
das zu löschende Objekt gegebenenfalls vorher auf Zusammenhänge mit
Anwendungen.

Count
Dies ist eine Eigenschaft des ADSI-Containerobjekts. Sie gibt die Anzahl der
Objekte im Container zurück.
_NewEnum
Diese Eigenschaft gibt ein Auflistungsobjekt (»Enumerator«) zurück. Dieses
kann von VBScript oder JScript zum Auslesen der Objekte in einem Container
mit Hilfe einer For Each-Schleife verwendet werden.

14.3.3 Administrative Tasks


Wie bereits mehrfach erwähnt, speichert die Metabasis die Konfigurationseigen-
schaften des IIS. Durch Verwendung von IIS Admin Objects können Sie diese
Eigenschaften zwecks Konfiguration von IIS manipulieren, neue Web- und FTP-
Sites erstellen, Berechtigungen zuweisen und andere administrative Aufgaben
durchführen.
Das HTML-basierte Administrationstool ist ein gutes Beispiel für die Verwen-
dung der IIS Admin Objects. Dieses Tool verwendet zur IIS-Remoteadministra-
tion einen Webbrowser und wird in Kapitel 15 umfassend beschrieben. Sie kön-
nen es verwenden, um sich mit den verschiedenen Aufgaben vertraut zu machen,
die mit den IIS Admin Objects und den Metabasis-Eigenschaften ausgeführt wer-
den können.
324 IIS Admin Objects

Ferner können Sie HTML-basierte Anwendungen entwickeln, die in einem Web-


browser ausgeführt werden und eine IIS-Serveradministration auf die gleiche
Weise erlauben wie das genannte HTML-Administrationstool.

Die Metabasis manipulieren


Der Zugriff auf die IIS Admin Objects in der Metabasis erfolgt über eine hierar-
chische Struktur, den ADSI-Pfad. Dieser Pfad verwendet eine einem URL ähnli-
che Syntax. Die allgemeine Form dieser Syntax lautet IIS://[pfad], wobei pfad
einen Verzeichnispfad repräsentiert, der zum gewünschten Objekt führt.
Ein Beispiel für einen ADSI-Pfad wäre IIS://computer/MSFTPSVC; dieser Pfad
gäbe Ihnen den Zugriff auf den FTP-Dienst, der auf dem Server computer ausge-
führt wird. Der Server kann als Basisobjekt des FTP-Dienstes betrachtet werden
und enthält außerdem alle anderen Objekte, die als untergeordnete Objekte des
Basisobjekts zu betrachten sind.
Um im Programmcode mit einem Objekt arbeiten zu können, verwenden Sie nor-
malerweise die Methode GetObject, die den Namen eines Objekts zurückgibt, mit
dem Sie arbeiten wollen; diesen Namen können Sie dann in Ihrem Code verwen-
den.
<%@ LANGUAGE=VBScript %>
<HTML>
<HEAD><TITLE> </TITLE></HEAD>
<BODY>
<%
Dim WebSrvObject
Set WebSrvObject = GetObject("IIS://computer/W3SVC")
%>
<B>Web Service Name</B>....<%= WebSrvObject.Name %> <BR>
<B>ADsPath</B>....<%= WebSrvObject.ADsPath %> <BR>
<B>Class</B>....<%= WebSrvObject.Class %> <BR>
<B>GUID</B>....<%= WebSrvObject.GUID %> <BR>
<B>Parent</B>....<%= WebSrvObject.Parent %> <BR>
<B>Schema</B>....<%= WebSrvObject.Schema %> <BR>
</BODY>
</HTML>

Listing 14.1: Beispiellisting zum Holen der Eigenschaften eines ADSI-Objekts

Wenn Sie diesen Code in einer ASP-Datei platzieren und diese auf Ihrem Server
ausführen, dann erhalten Sie eine Anzeige ähnlich der in Abbildung 14.2.
Wie Sie sehen können, habe ich von der Methode GetObject das Objekt holen las-
sen, mit dem ich auf die Eigenschaften von W3SVC zugreifen kann. Hierbei han-
delt es sich um eine ganz simple ASP-Datei, die nur die Eigenschaften anzeigt,
die dem zurückgegebenen Objekt W3SVC zugeordnet sind.
Kapitel 14 • IIS programmgesteuert administrieren 325

Abb. 14.2: Anzeige der sechs Eigenschaften des ADSI-Objekts W3SVC im Internet
Explorer

Die erste Zeile des Codes definiert die Variable WebSrvObject, welche zur Auf-
nahme des von GetObject zurückgegebenen Objekts dient. Auf diese Weise kön-
nen wir den Namen der Variablen beim Zugriff auf die Objekteigenschaften als
Verweis auf das Objekt selbst verwenden, statt jedes Mal, wenn wir eine Eigen-
schaft benötigen, den vollständigen ADSI-Pfad eingeben zu müssen.
Damit Sie die Methode GetObject oder ein anderes ASP-Skript, welches auf die
Metabasis zugreift, verwenden können, müssen Sie über ein Administratoren-
konto auf die ASP-Seite zugreifen; andernfalls erhalten Sie eine Fehlermeldung,
dass der Server die Seite nicht öffnen kann, weil die Berechtigungen für die
Methode GetObject nicht ausreichen.
Der leichteste Weg, dies zu umgehen, besteht in der Zuweisung entsprechender
Berechtigungen für das Verzeichnis \InetPub. Ich habe beispielsweise unter den
SICHERHEITSEINSTELLUNGEN für dieses Verzeichnis die Gruppe Jeder der Benut-
zerliste hinzugefügt und dieser dann Vollzugriff auf das Verzeichnis gewährt. Hier
liegt natürlich ein gewisses Sicherheitsrisiko vor, denn wenn der Server als Pro-
duktionsserver mit dem Internet verbunden ist, gestatten Sie es auf diese Weise
allen Benutzern – internen wie externen –, auf das Verzeichnis \InetPub zuzugrei-
fen und dort Anwendungen auszuführen, Dateien zu modifizieren oder zu
löschen, oder sogar Trojaner und Viren hochzuladen und auszuführen. Deswegen
sollten Sie, wenn Sie meinem Beispiel folgen wollen, dies zunächst auf einem
Testsystem tun. Sobald Ihre Skripts so arbeiten, wie Sie es wünschen, können Sie
sie auf einen Produktionsserver transferieren.
326 Fazit

Alternativ können Sie auch eine Anmeldeseite erstellen, auf der der Benutzer zur
Angabe eines Benutzernamens und eines Kennworts aufgefordert wird, damit der
Server ihn mit Hilfe der Standard- oder der NTLM-Authentifizierung authentifi-
zieren kann. Auf diese Weise schützen Sie Ihren Produktionsserver vor unbefug-
tem Zugriff. Allerdings müssen Sie hierbei einen zusätzlichen Schritt beim Testen
von Seiten einplanen, die die Methode GetObject benutzen.

14.4 Fazit
In diesem Kapitel habe ich Ihnen einen Überblick über die Möglichkeiten der IIS-
Administration mit Hilfe von ASP-Skriptdateien gegeben. Ich habe Ihnen die
Verwendung der HTML-Version des Internetdienste-Managers als Tool zur IIS-
Remoteadministration gezeigt. Ferner wurde auf die Struktur der Metabasis einge-
gangen, in der die Konfigurationsdaten von IIS gespeichert sind, und beschrieben,
wie die Schlüssel und Werte in Zusammenhang mit den verschiedenen IIS Admin
Objects stehen. Im Verlauf dieses Kapitels wurde auch die ADSI-Hierarchie mit
ADSI-Objekten und ADSI-Containerobjekten erläutert.
Wenn Sie sehen wollen, wie das HTML-Administrationstool die Einstellung von
Eigenschaften und die Manipulation des IIS-Dienstes realisiert, dann finden Sie
die entsprechenden ASP-Dateien im Verzeichnis %winnt%\system32\inetsrv\
iisadmin. Nehmen Sie an diesen Dateien keine Änderungen vor, solange Sie keine
Sicherungskopien davon angefertigt haben; durch Vornahme unsachgemäßer
Änderungen an diesen Dateien können Sie die Remoteadministration unbedien-
bar machen.
Kapitel 15
Remoteadministration

15.1 Remoteadministration über das Internet 328


15.2 Remoteadministration im Intranet 337
15.3 Fazit 340
328 Remoteadministration über das Internet

Für die meisten Administratoren stellt sich die Frage, ob sie direkt am Server
arbeiten wollen oder nicht, eigentlich gar nicht. Die meiste Zeit verbringt man
normalerweise mit der Erledigung anderer administrativer Aufgaben am eigenen
Schreibtisch, denn es ist nicht nur so, dass man einen Server eigentlich gar nicht
wie eine normale Workstation benutzen kann, sondern er ist bei den meisten Fir-
men ohnehin in einem Spezialraum mit Zugangsbeschränkung und Klimaanlage
weggeschlossen. Und wenn Sie das dauernde Summen der Netzteillüfter nicht
zum Wahnsinn treibt – nun, die konstante Raumtemperatur von 18°C katapultiert
Sie nach spätestens drei Tagen mit einem grippalen Infekt ins heimische Bett.
Auf den Punkt gebracht: Die Remoteadministration des Servers wird hier der
bevorzugte Ansatz sein, und genau das geht mit IIS. Dabei sind zwei Vorgehens-
weisen zu unterscheiden, nämlich der Zugriff auf den IIS-Server über ein Intranet
oder die Arbeit über das Internet.
Wir werden diese beiden Ansätze nacheinander beschreiben und ein paar der
jeweiligen Vor- und Nachteile benennen. Es gibt hier keine optimale Vorgehens-
weise, und Sie müssen selbst entscheiden, welche Sie bevorzugen – natürlich nur,
sofern Sie angesichts der Strukturen in Ihrer Organisation überhaupt eine Wahl
haben.

15.1 Remoteadministration über das Internet


Sie können zu Administrationszwecken mit einem konventionellen Webbrowser
wie dem Internet Explorer oder dem Netscape Navigator über das Internet auf
Ihren IIS-Server zugreifen. Zu diesem Zweck stellt IIS eine HTML-basierte
Administrationsfunktion bereit. Natürlich müssen Sie diese zuerst einmal aktivie-
ren.
Die Aktivierung der Remoteadministrationsfunktionen für IIS erfolgt in einem
einzigen, einfachen Schritt. Öffnen Sie den Internetdienste-Manager und erwei-
tern Sie die Ansicht, dass die auf dem Server vorhandenen Websites angezeigt
werden (siehe Abbildung 15.1).
Wenn die Verwaltungswebsite nicht bereits ausgeführt wird, selektieren Sie den
entsprechenden Eintrag in der Baumstruktur links und klicken Sie dann auf die
Startschaltfläche in der Werkzeugleiste – schon haben Sie die Remoteadministra-
tion aktiviert. Wenn Sie dies aus Sicherheitsgründen nicht wollen, stellen Sie
sicher, dass diese Website nicht ausgeführt wird.
Wenn die Verwaltungswebsite ausgeführt wird, klicken Sie mit der rechten Maus-
taste darauf und rufen Sie das Dialogfeld EIGENSCHAFTEN auf (Abbildung 15.2).
Beachten Sie den Parameter TCP-ANSCHLUSS im Feld IDENTIFIZIERUNG DER
WEBSITE – dies ist die Nummer, mit der Sie über Ihren Browser auf den Adminis-
trationsbereich der Website zugreifen können.
Kapitel 15 • Remoteadministration 329

Abb. 15.1: Der Internetdienste-Manager beinhaltet eine Verwaltungswebsite für die


Remoteadministration von IIS mit Hilfe eines Webbrowsers

Sie können die Nummer beliebig ändern – beispielsweise um über eine Firewall
hinweg arbeiten zu können. Stellen Sie sicher, dass Sie keine häufig verwendeten
TCP/IP-Anschlussnummern wie etwa 21 (FTP) oder 119 (Newsserver) auswäh-
len.

Hinweis
Reden Sie im Zweifelsfall vor der Auswahl eines Anschlusses mit dem
Netzwerkadministrator bzw. der Person, die für die Firewall Ihrer Organi-
sation verantwortlich ist, und stellen Sie sicher, dass der gewählte
Anschluss für Sie zugänglich ist, damit Sie auf die Verwaltungswebsite
zugreifen können.

Tipp
TCP/IP-Anschlussnummern verweisen nicht auf einen physikalischen
Anschluss, sondern auf eine Anwendung auf dem TCP/IP-Server.

Nach der Konfiguration der Anschlussnummer müssen Sie die Zugriffsrechte für
die Verwaltungswebsite einstellen. Hierbei müssen Sie zunächst die Operatoren
auswählen, die über eine HTTP-Verbindung auf die Verwaltungswebsite zugrei-
fen können. Wählen Sie also die Registerkarte OPERATOREN (Abbildung 15.3)
des Dialogfelds EIGENSCHAFTEN VON VERWALTUNGSWEBSITE.
330 Remoteadministration über das Internet

Abb. 15.2: Das Dialogfeld EIGENSCHAFTEN VON VERWALTUNGSWEBSITE, wo Sie die


Konfigurationsparameter für die Verwaltungswebsite einstellen können

Wie Sie sehen, hat unter Windows 2000 nur die Gruppe Administratoren stan-
dardmäßigen Zugriff auf die Verwaltungswebsite. Sie können nach Belieben
andere Konten oder Gruppen hinzufügen; klicken Sie auf die Schaltfläche HINZU-
FÜGEN, um das Dialogfeld BENUTZER ODER GRUPPEN AUSWÄHLEN (Abbildung
15.4) aufzurufen. Hier können Sie die gewünschten Gruppen- oder Benutzerkon-
ten auswählen.
Wählen Sie die gewünschten Benutzer und Gruppen aus und klicken Sie auf die
Schaltfläche HINZUFÜGEN, um Sie auf die Liste der berechtigten Benutzer zu set-
zen. Wenn Sie alle gewünschten Konten gewählt haben, klicken Sie auf die
Schaltfläche OK, um wieder zur Registerkarte OPERATOREN des Dialogfelds
EIGENSCHAFTEN zurückzukehren.
Eine weitere Sicherheitseinstellung, die Sie vornehmen können, ist die Beschrän-
kung des Zugriffs auf die Verwaltungswebsite dem auf dem von Ihnen spezifizier-
ten Computer. Zu diesem Zweck müssen Sie die Registerkarte VERZEICHNIS-
SICHERHEIT (Abbildung 15.5) im Dialogfeld EIGENSCHAFTEN selektieren.
Kapitel 15 • Remoteadministration 331

Abb. 15.3: Die Registerkarte OPERATOREN des Dialogfelds EIGENSCHAFTEN VON


VERWALTUNGSWEBSITE. Hier können Sie Windows-Konten der Liste der
Operatoren hinzufügen, die sich zu Administrationszwecken über
HTTP-Verbindungen mit dem Webserver verbinden können.

Wir sind bereits in früheren Kapiteln dieses Buches, als es um sicherheitsrele-


vante Fragen ging, auf diese Registerkarte gestoßen. Wenn Sie die Schaltfläche
BEARBEITEN anklicken, können Sie den Zugriff auf einzelne Computer, Comput-
ergruppen oder Domänen beschränken. Sie wählen zu diesem Zweck die Option
ZUGRIFF VERWEIGERT im Dialogfeld BESCHRÄNKUNGEN FÜR IP-ADRESSEN UND
DOMÄNENNAMEN (Abbildung 15.6) für die gewünschten Komponenten aus.
Diese Option ist praktisch, wenn Sie bereits von vornherein wissen, welche Com-
puter Sie für die Serververwaltung verwenden werden. Wenn Sie bei einem Inter-
netprovider ein Konto haben, der mit dynamischer IP-Adresszuweisung arbeitet,
dann wird diese Funktion bei Ihnen nicht funktionieren, denn Ihr Rechner erhält
bei jedem Verbindungsaufbau eine andere IP-Adresse. Einige Provider arbeiten
außerdem mit einem IP-Adresspool, bei dem die Adressen nicht nur dynamisch
zugewiesen werden, sondern neu verwendet werden können, wenn ihre Verbin-
dung sich im Leerlauf befindet. Dies macht die Sache noch schwieriger, denn in
einem solchen Fall wechselt die IP-Adresse Ihres Rechners sogar während der
Verbindung, sobald kein konstanter Datenstrom mehr vorhanden ist.
332 Remoteadministration über das Internet

Abb. 15.4: Das Dialogfeld BENUTZER ODER GRUPPEN AUSWÄHLEN erlaubt das
Hinzufügen von Active-Directory-Benutzern und -Gruppen, die auf dem
Server liegen, so dass Sie Operatoren für die Administration der Website
auswählen können

Die anderen beiden Möglichkeiten bieten sich hier eher an. Wenn Sie beispiels-
weise die Option MEHRERE COMPUTER selektieren wollen, wenden Sie sich zuvor
an Ihren Internetprovider und lassen Sie sich mitteilen, welchem Bereich die von
ihm verwendeten IP-Adressen entstammen. Die meisten Provider arbeiten nur mit
einer Klasse von IP-Adressen (etwa die Klassen A, B oder C); durch die entspre-
chende Eingabe können Sie dann den gesamten IP-Adressbereich abdecken, den
Ihr Provider benutzt. Nachteil: Über einen Rechner, der eine IP-Adresse aus dem
gleichen Bereich hat, könnte Ihre Website theoretisch immer noch von einem
Unbefugten administriert werden. Dies wäre natürlich nur möglich, wenn dieser
die Adresse der Website, die Anschlussnummer und die Kombination von Benut-
zernamen und Kennwort kennen würde. Nicht sehr wahrscheinlich, aber immer-
hin noch möglich.
Die letzte Option – die Beschränkung auf den Domänennamen – funktioniert ähn-
lich wie die vorhergehende Einstellung, nur mit dem Unterschied, dass ein
»Fremdcomputer«, der unberechtigterweise Administrationsaufgaben durchfüh-
ren will, aus der gleichen Domäne stammen muss (und damit gar nicht so fremd
sein kann).
Kapitel 15 • Remoteadministration 333

Abb. 15.5: Klicken Sie auf die Schaltfläche BEARBEITEN im Abschnitt


BESCHRÄNKUNGEN FÜR IP-ADRESSEN UND DOMÄNENNAMEN, um den
Zugriff auf die Verwaltungswebsite auf bestimmte Computer zu
beschränken

In der Regel werden Sie Ihre Website aus dem eigenen Firmennetzwerk heraus
bearbeiten. Dies kann wahlweise über die HTML-Oberfläche oder mit Hilfe der
MMC über einen anderen Computer erledigt werden. Wir werden auf diese
Option weiter unten in diesem Kapitel im Abschnitt »Remoteadministration im
Intranet« noch näher eingehen.
Nachdem Sie nun die notwendigen Zugangsbeschränkungen eingestellt haben, kli-
cken Sie auf die Schaltfläche OK, um die Änderungen zu übernehmen und das Dia-
logfeld EIGENSCHAFTEN zu schließen. Öffnen Sie nun Ihren Lieblingsbrowser und
geben Sie in der Adressleiste den Namen oder die IP-Adresse Ihrer Website gefolgt
von einem Doppelpunkt und der Anschlussnummer ein, etwa http://207.
169.52.31:6765. Nach kurzer Zeit sollte das Verwaltungsfenster (Abbildung 15.7)
in Ihrem Browser geöffnet werden.
Wie aus der Abbildung ersichtlich ist, haben Sie hinsichtlich der Administration
von Web- und FTP-Sites vollständigen Zugriff auf Ihren Webserver. Sie können
im rechten Rahmen eine Site wählen und diese beenden, starten oder anhalten,
indem Sie den entsprechenden Hyperlink im linken Frame selektieren.
334 Remoteadministration über das Internet

Abb. 15.6: Das Dialogfeld BESCHRÄNKUNGEN FÜR IP-ADRESSEN UND


DOMÄNENNAMEN. Hier werden alle Computer angezeigt, die mit der
Verwaltungswebsite auf meinem Server eine Verbindung herstellen
dürfen – in diesem Fall die Rechner mit den IP-Adressen 169.254.76.14
und 127.0.0.1.

Abb. 15.7: Der Internet Explorer zeigt die Weboberfläche des Internetdienste-
Managers, über die Sie Ihre Website administrieren können

Tipp
Wenn Sie bei der Bewegung des Mauszeigers über einen dieser Hyper-
links auf die Statusleiste achten, werden Sie bemerken, dass diese Funk-
Kapitel 15 • Remoteadministration 335

tionalität mit Hilfe von JavaScript realisiert wurde. Jeder Hyperlink führt
eine JavaScript-Funktion aus, die die entsprechenden Befehle an den Ser-
ver sendet, wo die gewählten Vorgänge dann ausgeführt werden.

Die Liste im linken Rahmen listet alle verfügbaren Befehle und Funktionen auf.
Sie werden sehen, dass die gleichen Funktionalitäten wie bei der MMC-Konsole
auch über die Weboberfläche ausführbar sind. Abbildung 15.8 zeigt ein Beispiel
für ein paar Administrationsfunktionen.

Abb. 15.8: Die Eigenschaften der Website der Marketingabteilung, dargestellt als
HTML-Seite

Die Hyperlinks im linken Rahmen bringen Sie zu HTML-Seiten, die den jeweili-
gen Registerkarten im Dialogfeld EIGENSCHAFTEN der Web- oder FTP-Site ent-
sprechen. Wenn Sie hier allerdings Änderungen vornehmen, müssen Sie keine
ÜBERNEHMEN- oder OK-Schaltflächen anklicken, sondern die Schaltfläche SPEI-
CHERN unten auf der Seite betätigen, um die Änderungen an einer Site zu über-
nehmen. Bei Anklicken der Grafik Zurück im linken Frame wird wieder die Start-
seite (Abbildung 15.7) aufgerufen.
Der Vorteil der Siteadministration über HTTP besteht darin, dass Sie Ihren Web-
server von jedem beliebigen Betriebssystem aus verwalten können – der verwen-
dete Browser muss lediglich JavaScript und die Grafikanzeige unterstützen. Das
336 Remoteadministration über das Internet

bedeutet, dass Sie nach Belieben den Internet Explorer unter Windows oder Net-
scape unter Linux usw. nutzen können.
Durch Eingabe der Adresse http://%servername%/iishelp/iis/misc/default.asp
können Sie auch auf die Onlinehilfe und die Dokumentation von IIS zugreifen
(ersetzen Sie die Variable %servername% durch den Namen oder die IP-Adresse
des Servers).

Hinweis
Eine kleine Schrulle, die Sie bemerken werden, wenn Sie den BERECHTI-
GUNGS-ASSISTENTEN oder eine der Sicherheitsoptionen (wie etwa die
Beschränkung von IP-Adressen oder Domänennamen) wählen, besteht
darin, dass der Computer ein neues Browserfenster öffnet, welches die
für die gewählte Funktion notwendigen HTML-Seiten anzeigt.

15.1.1 Eine neue Website erstellen


Zu Übungszwecken wollen wir einmal mit dem HTML-Verwaltungstool eine
neue Website erstellen. Stellen Sie zunächst sicher, dass sich auf dem Server ein
Verzeichnis befindet, in dem die zu erstellende Website untergebracht werden
wird.
Öffnen Sie nun wie oben beschrieben von einem Remotecomputer aus mit einem
Webbrowser die Verwaltungswebsite. Vergewissern Sie sich, dass die IP-Adresse
des Servers gewählt ist, und klicken Sie dann auf die Option NEU im linken
Frame. Der ASSISTENT ZUM ERSTELLEN EINER NEUEN WEBSITE wird geöffnet.
Klicken Sie auf WEITER. Sie können nun wählen, ob Sie eine neue Web- oder eine
FTP-Site erstellen wollen. Lassen Sie die Voreinstellung WEBSITE selektiert und
klicken Sie auf WEITER.
Geben Sie im folgenden Textfeld eine Beschreibung für die Website ein. Wenn
Sie nun die Schaltfläche WEITER anklicken, werden Sie zur Eingabe der Website-
bindungen aufgefordert. Hierzu gehören die zu verwendende IP-Adresse, die
Anschlussnummer, und – bei sicheren Sites – die SSL-Anschlussnummer. Geben
Sie die notwendigen Informationen ein und klicken Sie auf WEITER.
Wenn die Seite PFAD angezeigt wird, können Sie den Pfad zu dem Verzeichnis
eingeben, auf dem der Inhalt der Website liegen wird. Sie können auch die Schalt-
fläche DURCHSUCHEN verwenden, um das Verzeichnis auszuwählen. Ferner kön-
nen Sie den anonymen Zugriff auf die Site ermöglichen, indem Sie die Option
ANONYMEN ZUGRIFF AUF DIE SITE ZULASSEN markieren. Klicken Sie nach Ein-
gabe des Pfadnamens auf WEITER, um die Seite ZUGRIFFSBERECHTIGUNGEN auf-
zurufen.
Auf dieser Seite können Sie die Schreib-, Lese- und Skriptingberechtigungen für
die neue Site konfigurieren. Alle hier vorgenommenen Änderungen haben gege-
benenfalls Vorrang vor den globalen Einstellungen, die für die Website vorge-
Kapitel 15 • Remoteadministration 337

nommen wurden. Dabei gilt diese Vorrangstellung nur für die neue Website, nicht
jedoch für andere Sites auf dem Server.
Klicken Sie auf FERTIG STELLEN. Nach ein paar Sekunden sehen Sie die neu
erstellte Site in der Liste der auf dem Server vorhandenen Websites. Sie werden
dabei feststellen, dass die Site noch nicht gestartet wurde. Dies ist der richtige
Zeitpunkt, um ein paar weitere administrative Aufgaben zu üben: Markieren Sie
die neue Site und klicken Sie auf die Option Starten im linken Frame. Sie können
nun ein Programm zur Publikation von Websites – wie etwa Microsoft FrontPage
– verwenden, um Inhalte für die neue Site zu erstellen.

Hinweis
Wie schnell Ihnen Ihre neue Site angezeigt wird, hängt von der
Geschwindigkeit Ihrer Internetverbindung ab.

15.2 Remoteadministration im Intranet


Wie bereits weiter oben erwähnt, können Sie die HTML-Oberfläche nicht nur zur
Remoteadministration über das Internet, sondern auch über ein Intranet verwen-
den. Wenn Sie mit Website-Operatoren arbeiten, die nicht mit dem Internet-
dienste-Manager oder dem Konzept der MMC vertraut sind, dann können Sie die-
sen Operatoren anbieten, die Administration mit Hilfe der im vorherigen
Abschnitt erläuterten Vorgänge zu administrieren.
Die von mir bevorzugte Methode zur Administration einer Intranetsite ist jedoch
die Verwendung der Funktionen, die in die MMC integriert sind. Die Abbildung
15.9 zeigt den Internetdienste-Manager bei vorhandener Verbindung zu einem
anderen Server namens Pii350 in meinem Netzwerk.
Wie Sie der Abbildung 15.9 entnehmen können, ist die Oberfläche bei der Remo-
teadministration identisch mit der zur Administration des lokalen Servers – mit
dem einzigen Unterschied, dass ich auf einen Remoteserver zugreife. Beachten
Sie die recht subtilen Unterschiede in der Konsole, die darauf hindeuten, dass ich
einen Remoteserver administriere. Im Baumdiagramm links ähnelt das Remote-
serversymbol dem Symbol eines Netzwerkcomputers, und im rechten Fenster fin-
den Sie in der Spalte LOKAL die Feststellung, dass Pii350 eben nicht lokal ist.
Ohne diese eher kosmetischen Anzeichen würde ein Benutzer gar nicht bemer-
ken, dass er einen Remoteserver administriert, denn Befehle, Menüoptionen und
Dialogfelder sind absolut identisch.
Abbildung 15.10 zeigt das Dialogfeld EIGENSCHAFTEN VON STANDARDWEBSITE
des Remoteservers. Sie sehen: Es besteht kein Unterschied zum lokalen Server.
338 Remoteadministration im Intranet

Abb. 15.9: Der Internetdienste-Manager ermöglicht Ihnen die Verbindung mit


anderen IIS-Servern zwecks Administration und Konfiguration

Hinweis
Je nach Geschwindigkeit Ihres Netzwerks werden Sie eventuell eine
ganz kleine Verzögerung bei der Anzeige der Dialogfelder oder Eigen-
schaften bemerken, die sich auf Remotesites beziehen. Dies liegt an der
Übertragungslatenz der Daten im Netzwerk.

Was wir bis jetzt noch nicht erwähnt haben, ist die Frage, wie man mit dem Inter-
netdienste-Manager eine Verbindung zu einem Remoteserver herstellt. Nun, das
ist ein einfacher Vorgang.
Öffnen Sie, falls nicht bereits geschehen, den Internetdienste-Manager und wäh-
len Sie den Eintrag INTERNET-INFORMATIONSDIENSTE im linken Fensterbereich.
Selektieren Sie dann aus dem Menü VORGANG den Eintrag VERBINDEN, um das
Fenster MIT COMPUTER VERBINDEN (Abbildung 15.11) aufzurufen.
Geben Sie im angezeigten Textfeld den Namen des Servers ein, auf dem der IIS-
Dienst liegt, den Sie administrieren wollen, und klicken Sie dann auf OK. Nach
einer ganz kurzen Verzögerung, während derer die MMC den Computer im Netz-
werk sucht, wird er samt seiner IIS-Diensteinträge in der Liste angezeigt. Das war
es schon.
Kapitel 15 • Remoteadministration 339

Abb. 15.10: Das Dialogfeld EIGENSCHAFTEN VON STANDARDWEBSITE ist für lokale und
Remoteserver absolut identisch

Abb. 15.11: Das Dialogfeld MIT COMPUTER VERBINDEN. Hier geben Sie den Namen
des Servers ein, mit dem Sie eine Verbindung herstellen wollen.

Hinweis
Sie müssen keinen Windows 2000 Server verwenden, um die IIS-Installa-
tion auf einem anderen Windows 2000 Server zu administrieren;
genauso gut können Sie Windows 2000 Professional verwenden, denn
die Versionen der dort verwendeten MMC und des IIS sind mit denen
von Windows 2000 Server identisch. Umgekehrt geht das natürlich
auch.
340 Fazit

15.2.1 Verzeichnissicherheit eines Remoteservers mit der MMC


ändern
Im Folgenden wollen wir zu Übungszwecken die Einstellung der Verzeichnissi-
cherheit auf einem Remoteserver mit Hilfe der MMC durchführen.
Öffnen Sie den Internetdienste-Manager und wählen Sie das Symbol INTERNET-
INFORMATIONSDIENSTE in der Baumstruktur im linken Fenster. Selektieren Sie
nun aus dem Menü VORGANG den Eintrag VERBINDEN. Wenn das Dialogfeld MIT
COMPUTER VERBINDEN angezeigt wird, geben Sie den NetBIOS-Namen oder die
IP-Adresse des Computers ein, mit dem Sie zu Remoteadministrationszwecken
eine Verbindung herstellen wollen. Klicken Sie dann auf OK.
Wenn die Verbindung hergestellt ist, werden Ihnen die auf dem Remotecomputer
vorhandenen Sites und Dienste unterhalb der Sites und Dienste des lokalen Com-
puters angezeigt. Klicken Sie mit der rechten Maustaste auf den Eintrag STAN-
DARDWEBSITE oder eine andere Site auf dem Remoteserver und wählen Sie aus
dem Kontextmenü den Eintrag EIGENSCHAFTEN.
Die Dialogfelder sind für lokale und Remotecomputer identisch. Wählen Sie also
im Dialogfeld EIGENSCHAFTEN die Registerkarte VERZEICHNISSICHERHEIT. Kli-
cken Sie im Abschnitt STEUERUNG DES ANONYMEN ZUGRIFFS UND DER AUTHEN-
TIFIZIERUNG auf die Schaltfläche BEARBEITEN. Nun wird das Dialogfeld
AUTHENTIFIZIERUNGSMETHODEN aufgerufen.
Klicken Sie hier im Abschnitt BESCHRÄNKUNGEN FÜR IP-ADRESSEN UND DOMÄ-
NENNAMEN auf die Schaltfläche BEARBEITEN, um die Zugriffssteuerung basie-
rend auf IP-Adresse oder Domänennamen zu konfigurieren. Wenn Sie die not-
wendigen Änderungen vorgenommen haben, klicken Sie auf die Schaltfläche OK,
um das Dialogfeld EIGENSCHAFTEN für diese Website zu schließen.

Hinweis
Der einzige Sicherheitsvorgang, der sich nicht von einem Remotecompu-
ter aus durchführen lässt, ist der Vorgang SERVERZERTIFIKAT. Die Anforde-
rung und Konfiguration eines Serverzertifikats für einen Server lässt sich
nur lokal auf eben diesem Server durchführen.

15.3 Fazit
Die Remoteadministration des IIS-Servers ist häufig praktisch, denn meistens
sitzt der Administrator doch nicht vor dem Server, auf dem der IIS-Dienst ausge-
führt wird. Zu diesem Zweck können Sie die zahlreichen praktischen Funktionen
verwenden, die IIS für die Remoteadministration anbietet, um diese von einem
anderen Computer oder Server aus durchzuführen.
Kapitel 15 • Remoteadministration 341

Wenn Sie alleiniger Administrator aller IIS-Server in Ihrer Firma sind und diese
Server im lokalen Netzwerk administrieren, werden Sie die Vorzüge des Internet-
dienste-Managers in der MMC-Konsole zu schätzen wissen, denn hier finden Sie
eine ausgesprochen konsistente Oberfläche.
Wenn Sie jedoch mit Operatoren arbeiten, die mit der MMC nicht vertraut sind
und lieber in einer bekannten Umgebung arbeiten wollen, dann können Sie die
HTML-basierten Administrationsdienst über die Verwaltungswebsite verfügbar
machen. Auf diese Weise können die Administratoren die Site von einem Remo-
tecomputer aus mit dem bevorzugten Browser über die HTML-Oberfläche ver-
walten.
Wenn Sie die Remoteadministration mit Hilfe der HTML-Oberfläche und der
Verwaltungswebsite gestatten, dürfen Sie keinesfalls die Sicherheitseinstellungen
vernachlässigen. Durch Zuweisung der entsprechenden Windows 2000-Konten
und angemessener Computerbeschränkungen können Sie eine sichere Methode
zur IIS-Administration über das Internet bereitstellen.
Teil III

Anwendungsentwicklung
Kapitel 16 Active Server Pages
Kapitel 17 Installierbare ASP-Komponenten
Kapitel 16
Active Server Pages

16.1 ASP-Seiten erstellen 348


16.2 Skriptsprachen 353
16.3 Prozeduren 359
16.4 Auflistungen 361
16.5 Verarbeitung von Benutzereingaben 362
16.6 Komponenten und Objekte 364
16.7 Der Objektbereich 366
16.8 Inhalte senden 367
16.9 Dateien übermitteln 369
16.10 Sitzungen verwalten 370
16.11 Auf Datenquellen zugreifen 372
16.12 Transaktionen 378
16.13 Skriptdebugging 379
16.14 Integrierte ASP-Objekte 380
16.15 Fazit 381
346

ASP (Active Server Pages) wurde als Umgebung für serverseitige Skripts entwi-
ckelt. Sie können zur Erstellung von ASP-Seiten VBScript oder JScript verwen-
den und damit dynamische Webseiten erstellen, Datenbankzugriffe auf dem
Server ermöglichen, COM-Komponenten aufrufen und Anwendungen ausführen.
Das schönste an ASP ist, dass es browserunabhängig arbeitet, d.h. jeder Web-
browser, der HTML 4.0-Tags verarbeiten kann, zeigt die Seiten an, weil die
Skripts auf dem Server ausgeführt werden.
Und was hat das alles nun mit der IIS-Administrierung zu tun? Nun, ASP kann
nicht nur das Leben eines Webentwicklers erheblich vereinfachen, sondern Sie
können es auch verwenden, um mit IIS zu arbeiten und nicht nur, um dynamische
Inhalte zu erstellen. Zu diesem Zweck benötigen Sie jedoch ein grundlegendes
Verständnis von ASP. Ich kann an dieser Stelle natürlich keinen umfassenden
Kurs zu diesem Thema anbieten, aber ich will Ihnen zumindest so viele Informa-
tionen geben, dass Sie ASP für einfache Aufgaben einsetzen können und auch
wissen, wo Sie im Bedarfsfalle weitere Informationen finden.
Sie können die in diesem Kapitel und in Kapitel 14 enthaltenen Informationen
verwenden, um Ihren Server mit ASP zu administrieren. Mit den IIS Admin
Objects und beliebigen COM-Komponenten, die von Ihrer firmeneigenen Ent-
wicklungsabteilung erstellt wurden, können Sie ASP zu Ihrem Vorteil nutzen.
Einer der überzeugendsten Gründe für den Einsatz von ASP bei der Siteadminist-
ration ist die Möglichkeit, Webseiten mit Hilfe von Cookies oder Skripts speziell
auf Benutzer auszurichten, indem der Sitzungsstatus berücksichtigt wird. Neben-
bei: Wenn Sie ASP verstehen, brauchen Sie Perl oder andere CGI-Skriptsprachen
auch nicht zu lernen.
ASP kann sich auch bei der Arbeit mit einer Site als vorteilhaft erweisen, die
Autorisierungen benötigt. Sie können mit Hilfe von Skripts auf eine Datenbank
mit Benutzernamen und Kennwörtern zugreifen und es Benutzern gestatten,
eigene Kombinationen von Benutzernamen und Kennwörtern einzusetzen. Die
Daten werden in der Datenbank abgelegt, in der Sie die Zugriffsmöglichkeiten
eines Benutzers auf die Site steuern können. Wenn Sie Änderungen vornehmen
und der Benutzer sich danach wieder anmeldet, erhält er Datenzugriff nur im von
Ihnen vorgesehenen Umfang.
Wenn Sie mit früheren Versionen von ASP vertraut sind, werden Sie schnell fest-
stellen, dass die mit IIS 5.0 ausgelieferte Version über eine ganze Reihe neuer
oder geänderter Funktionen verfügt.
Die beiden neuen Methoden Server.Transfer und Server.Execute ermöglichen bei
dieser ASP-Version eine Flusskontrolle, d.h. sie gestatten es Ihnen, Anforderun-
gen an ASP-Dateien zu senden, ohne dabei Umleitungen zu verwenden, die fröh-
lich zwischen Server und Client hin und her pendeln.
Zwar gab es die so genannte Fehlerbehandlung bereits in früheren Versionen,
doch verfügt ASP 3.0 über eine neue Methode namens Server.GetLastError, die
eine Beschreibung des Fehlers und die Zeilennummer zurückgibt, die den Fehler
Kapitel 16 • Active Server Pages 347

enthält. Ferner ist ASP 3.0 auch in der Lage, Dateien mit der Erweiterung .asp zu
verarbeiten, die keine serverseitigen Skripts enthalten. Dies ist für Administrato-
ren und Entwickler ein unschätzbarer Vorteil, denn nun muss die Website nicht
mehr nach Dateien durchsucht werden, bei denen aufgrund eines nachträglichen
Hinzufügens von Skripts eine Umbenennung vonnöten ist; jetzt können einfach
alle Dateien mit der Endung .asp versehen werden.
Die XML-Integration erleichtert das Hosting solcher Dokumententypen auf dem
Server und die Verarbeitung durch XML-Parser (wie der Internet Explorer 4.0
oder höher). Sie müssen zwar bedenken, dass auch heute noch Browser verwen-
det werden, die XML nicht unterstützen, aber da die Akzeptanz von XML mit
hohem Tempo immer weiter ansteigt, können sich die anderen Browserhersteller
einer Implementation von XML bei den nächsten Updates wohl nicht mehr ver-
schließen.
Die ASP-Komponente Browser Capabilities enthält eine neue Funktion, die es
ermöglicht, die Funktionalität eines Browsers einem Cookie zu entnehmen – so
können Sie Ihre Anwendungen entsprechend einstellen. Außerdem optimiert sich
ASP selbst, denn es kann erkennen, wenn Anforderungen – auch durch externe
Auslöser – blockiert wurden, und dann automatisch mehr Threads zur Ausfüh-
rung zusätzlicher Anforderungen und zur Fortsetzung der Bearbeitung bereitstel-
len. Und bei einer Überlastung der CPU kann ASP die Anzahl der Threads auch
selbstständig wieder herunterfahren.
Eines der Merkmale, die Ihre Entwickler schätzen werden, ist die Verwendung
der Skriptverschlüsselung. Früher mussten sich Entwickler Sorgen machen, dass
der Benutzer das Skript und dessen Logik betrachten könnte; auch wenn dies
nicht alle Skripts betrifft. So gibt es doch einige Unternehmen, die proprietäre
Prozeduren verwenden, und wenn Sie solche Skripts einsetzen, dann wünschen
Sie ganz sicher nicht, dass sich jemand den Code einfach so ansehen kann. Die
neue ASP-Version gestattet deswegen eine Verschlüsselung von Skripts, so dass
diese als sinnloser und unleserlicher ASCII-Text erscheinen. Beide Skriptmodule
– VBScript und JScript 5.0 – können diese Kodierung nebenbei ausführen und die
Skripts dann trotzdem normal ausführen.
Wenn die Entwickler in Ihrem Unternehmen bereits ASP-Seiten in früheren Ver-
sionen entwickelt haben, dann werden die nächsten Absätze für diese von beson-
derem Interesse sein, denn sie enthalten Informationen über einige wichtige
Änderungen, die bei der neuen Version von ASP vorgenommen wurden.
Bei IIS 4.0 war die Pufferung von ASP-Inhalten standardmäßig nicht aktiviert,
bei IIS 5.0 hingegen ist sie es. Dies bedeutet, dass die Ergebnisse eines ASP-
Skripts nicht vor Ende der Verarbeitung an den Client gesendet wurden. Sie kön-
nen diese Funktion mit einem Skript abschalten oder aber die Inhalte jederzeit per
Skript mit Hilfe der Methode Response.Flush an den Client senden.
Mittels der Methode IsClientConnected kann IIS 5.0 vor Sendung von Inhalten
feststellen, ob der Browser überhaupt noch verbunden ist. Unter IIS 4.0 mussten
348 ASP-Seiten erstellen

zunächst Inhalte an den Browser gesendet werden, bevor die korrekten Informati-
onen mit der Methode Response.IsClientConnected ermittelt werden konnten.
Ferner verwendet ASP unter IIS 5.0 bei der Verarbeitung von #include-Dateien
erweiterte Sicherheitseinstellungen, denn IIS 5.0 wendet bei der Abarbeitung sol-
cher Dateien die Anmeldeinformationen des physikalischen Pfades an; IIS 4.0 tat
dies nicht.
Wenn eine Anforderung mit einem Parameter gesendet wird, geht IIS 5.0 mit
Standarddateien anders um als IIS 4.0. Wenn eine URL-Anforderung wie etwa
http://www.gkcomput.com/?newuser=true an eine ältere IIS-Version gestellt
wurde, dann wurde die Anforderung oder URL an die Datei default.htm verwie-
sen, denn Dateien vom Typ .asp waren noch nicht spezifiziert. IIS 5.0 hingegen
leitet alle Anforderungen jederzeit an die ASP-Standarddatei weiter.
Die Einträge ProcessorThreadMax und ErrorsToNTLog wurden bei IIS 5.0 aus
der Registrierdatenbank in die Metabasis verschoben.

16.1 ASP-Seiten erstellen


Bevor Sie ASP-Seiten erstellen, müssen Sie eine Skriptsprache wählen. ASP kann
sowohl VBScript als auch JScript direkt verarbeiten, aber Sie können auch Skript-
module für andere Sprachen hinzufügen, etwa Rexx, Perl oder Python. Aller-
dings: Warum sollten Sie diese Skriptsprachen verwenden, wenn IIS bereits zwei
sehr leistungsfähige Sprachen beinhaltet?
Standardmäßig verwendet IIS 5.0 VBScript, aber Sie können auch eine andere
Standardsprache selektieren oder auf Ihren ASP-Seiten eine Mischung beider
Ansätze verfolgen. Um die Standardsprache einzustellen, öffnen Sie den Internet-
dienste-Manager. Klicken Sie dann mit der rechten Maustaste auf das Serversym-
bol und wählen Sie EIGENSCHAFTEN aus dem Kontextmenü (alternativ können Sie
das Serversymbol selektieren und dann den Eintrag EIGENSCHAFTEN aus dem
Menü VORGANG anwählen). Nun wird das Dialogfeld EIGENSCHAFTEN (Abbil-
dung 16.1) aufgerufen.
Klicken Sie im Abschnitt HAUPTEIGENSCHAFTEN auf die Schaltfläche BEARBEI-
TEN, um das Dialogfeld HAUPTEIGENSCHAFTEN DES WWW-DIENSTES zu öffnen.
Aktivieren Sie dort die Registerkarte BASISVERZEICHNIS.
Klicken Sie nun im Abschnitt ANWENDUNGSEINSTELLUNG auf die Schaltfläche
KONFIGURATION, um das Dialogfeld ANWENDUNGSKONFIGURATION aufzurufen
(Abbildung 16.2). Aktivieren Sie die Registerkarte ANWENDUNGSOPTIONEN.
Wie Sie der Abbildung 16.2 entnehmen können, ist die Standardsprache auf mei-
nem Server VBScript. Das liegt zum einen daran, dass dies die voreingestellte
Standardsprache ist, zum anderen daran, dass ich als Visual Basic-Entwickler
VBScript besser kenne als JScript. Wählen Sie die Sprache Ihrer Wahl (oder der
Wahl Ihrer Firmenentwickler).
Kapitel 16 • Active Server Pages 349

Abb. 16.1: Das Dialogfeld EIGENSCHAFTEN VON *COMPUTER zeigt die


Haupteigenschaften für den gesamten IIS-Server an

Abb. 16.2: Auf der Registerkarte ANWENDUNGSOPTIONEN des Dialogfelds


ANWENDUNGSKONFIGURATION wird die ASP-Standardsprache angezeigt
350 ASP-Seiten erstellen

Wenn Sie Ihre Einstellung vorgenommen haben, klicken Sie auf die diversen OK-
Schaltflächen, um die Dialogfelder zu schließen und die Änderungen zu überneh-
men. Sie können nun mit der Entwicklung von ASP-Seiten in der Sprache Ihrer
Wahl beginnen.
Glauben Sie es mir oder nicht: Wenn Sie eine statische HTML-Datei, die eine der
Dateikennungen .htm oder .html hat, mit der Endung .asp versehen, haben Sie
eine ASP-Datei erstellt. Natürlich erfährt die Seite durch die reine Umbenennung
noch keine neue Funktionalität – Sie müssen zu diesem Zweck Skriptbefehle inte-
grieren. Das Listing 16.1 zeigt eine sehr einfach gehaltene ASP-Seite, die die Sys-
temzeit des Servers verwendet, um eine tageszeitbezogene Meldung anzuzeigen.
<%@ LANGUAGE = "VBScript" %>
<HTML>
<HEAD><TITLE>Serverzeit</TITLE></HEAD>
<BODY>
<CENTER><H1><FONT Color="Blue">GK Computer Consulting</FONT></H1></CENTER><HR>
<CENTER><H2>Hinweise zu Transaktionen</H2></CENTER><HR>

<%
Dim timeframe

If Time < #12:00PM# Then


timeframe = "Morgen"
ElseIf Time >= #12:00PM# AND Time < #5:00PM# Then
timeframe = "Nachmittag"
Else
timeframe = "Abend"
End If
%>

Willkommen auf unserer Website! Hier ist es zur Zeit <% =timeframe %>.<P>
Alle von Ihnen heute auf unserer Zeit durchgeführten Transaktionen erhalten<BR>
unseren lokalen Zeitstempel. Dieser lautet im Moment <B><% =Now() %></B>
</BODY>
</HTML>

Listing 16.1: time.asp

Geben Sie diesen Code in Ihren bevorzugten HTML-Editor ein und speichern Sie
ihn unter time.asp im Verzeichnis Ihres Webservers. Sie können nun vom Server
oder einem anderen Computer aus über das Netzwerk darauf zugreifen. Je nach
der Systemzeit auf dem Server werden Sie dann mit einer anderen Meldung
begrüßt. Spielen Sie ein wenig mit den Zeitangaben herum, um sicherzustellen,
dass die korrekte Grußformel angezeigt wird.
Kapitel 16 • Active Server Pages 351

Das Erste, was Sie tun müssen, damit Ihre ASP-Seite funktioniert, ist die Plat-
zierung des Skriptsprachen-Tags ganz oben auf der HTML-Seite – und zwar vor
allen HTML-Tags. Die Syntax hierzu sieht wie folgt aus:
<%@ LANGUAGE="VBScript" %>

Sie werden außerdem bereits gemerkt haben, dass im Code alle Skriptbefehle
zwischen den Trennzeichen <% und %> stehen müssen, damit der Browser nicht
den Skripttext an den Client sendet. Abbildung 16.3 zeigt, was passiert, wenn das
einführende Tag <% im obigen Listing weggelassen wird.

Abb. 16.3: Der Internet Explorer zeigt den vollständigen Text meines VBScript-
Codes im Browserfenster an

Werden die Trennzeichen jedoch korrekt gesetzt, dann erscheint das in Abbildung
16.4 gezeigte Fenster.
Aus zwei Gründen sollten Sie die Trennzeichen nicht vergessen: Erstens funktio-
niert Ihr Code nicht, und Ihren Clients wird der gewünschte Text nicht angezeigt.
Zweitens wird statt dessen allen Clients Ihr Quellcode gezeigt – dies wäre insbe-
sondere dann nicht wünschenswert, wenn es sich hierbei um proprietäre Daten
handeln würde.
352 ASP-Seiten erstellen

Abb. 16.4: Der Internet Explorer zeigt die ASP-Seite wie gewünscht, d.h. der Code
wird korrekt ausgeführt

Sie haben im Codebeispiel gesehen, dass Skripttext und HTML-Befehle in


getrennten Bereichen der Seite verwendet werden. Wenn Sie wollen, können Sie
aber auch die Ausgabe von HTML-Text und -Tags innerhalb des Skriptbereichs
konfigurieren. Hierfür zeigt Listing 16.2 ein Beispiel.
<%@ LANGUAGE = "VBScript" %>
<HTML>
<HEAD><TITLE>HTML-Ausgabe innerhalb des Skripts</TITLE></HEAD>
<BODY>
<CENTER><H2><FONT Color="Blue">Ausgabe von Text aus dem Skript heraus</FONT></
H2>
</CENTER><HR>
<%

Response.Write "<FONT SIZE=14 FACE='Script'>"


Response.Write "<B>Dieser Text hat die folgende Auszeichnung: Script, Fett-
druck, 14-Punkt.</B></FONT><BR>"
Response.Write "Er wird aus einem Skript heraus an den Client gesendet<P>"
Response.Write "Das Datum auf dem Server ist der " & Date()
Kapitel 16 • Active Server Pages 353

%>
</BODY>
</HTML>

Listing 16.2: HTML_Output.asp

Werfen wir nun einen Blick auf die Unterschiede zwischen Ihrem Code und dem,
was ein Benutzer zu sehen bekommt, der die Quelltextansicht wählt. Laden Sie zu
diesem Zweck die gerade erstellte Seite in Ihren Browser. Wählen Sie nun bei-
spielsweise im Internet Explorer den Eintrag QUELLTEXT ANZEIGEN aus dem
Menü ANSICHT. Vergleichen Sie den angezeigten Quelltext mit Ihrem Code, so
werden Sie feststellen, dass der komplette Skriptcode unter den Tisch gefallen ist
– angezeigt wird nur der HTML-Code.
So agieren ASP-Dateien bei Verwendung der Trennzeichen <%und %>. Code zwi-
schen diesen Tags wird nicht angezeigt, wenn der Code auf dem Server ausge-
führt wird. Setzen Sie den Code statt dessen zwischen die Tags <SCRIPT> und
</SCRIPT>, so wird er auf dem Client ausgeführt und dem Benutzer auch ange-
zeigt, wenn er ANSICHT/QUELLTEXT ANZEIGEN wählt.

Hinweis
Die Tatsache, dass ein Benutzer den Code Ihrer Seite nicht betrachten
kann, bedeutet nicht, dass er eine Seite nicht als ganze Datei von Ihrem
Server herunterladen und betrachten kann. Es ist lediglich unmöglich,
die Option DATEI/SPEICHERN zu wählen und den Code dann zu betrach-
ten. Lädt der Benutzer jedoch die gesamte Datei herunter, dann kann er
den Code natürlich sehen.

Nachdem wir nun die grundlegenden Strukturen von ASP-Seiten betrachtet


haben, enthalten die folgenden Abschnitte eine kurze Einführung mit allen Infor-
mationen, die Sie benötigen, um effizient mit ASP-Seiten arbeiten zu können.

16.2 Skriptsprachen
Mit IIS 5.0 können Sie eine beliebige Skriptsprache verwenden, sofern das ent-
sprechende Skriptmodul auf dem Server installiert ist. Alles in allem unterschei-
den sich Skriptsprachen von einfachen Programmiersprachen wie C oder C++
und sind eher wie Visual Basic oder Java, denn Skriptsprachen werden mit einem
Interpreter bearbeitet, der jede Zeile des Codes lesen und dann ausführen muss.
Trotzdem können Skripts nicht zu einer ausführbaren Binärdatei kompiliert wer-
den.
Die beiden Sprachen, die als Bestandteil von IIS 5.0 ausgeliefert werden, sind
VBScript und JScript. VBScript ist ein Subset der Programmiersprache Visual
Basic. Wenn in Ihrem Unternehmen Visual-Basic-Entwickler arbeiten, dann ken-
nen diese bereits die Codekonstrukte für VBScript und können praktisch sofort
354 Skriptsprachen

mit der Erstellung von ASP-Seiten beginnen. JScript ist Microsofts Version von
JavaScript und ist recht eng an die Syntax und die Struktur der Programmierspra-
che Java angelehnt.
Alle Codebeispiele in diesem Buch sind in VBScript geschrieben – aus drei Grün-
den: Erstens ist es die voreingestellte Standardsprache für IIS, zweiten kenne ich
VBScript besser als JScript, und drittens ist VBScript wesentlich einfacher zu
handhaben als JScript oder andere Sprachen wie Perl oder Rexx.
Wir haben im ersten Teil dieses Kapitels bereits gesehen, wie Sie die Standard-
sprache auf dem Server festlegen. Sie können auch für eine ASP-Seite eine vor-
eingestellte Sprache festlegen, indem Sie eine entsprechende Anweisung am Sei-
tenanfang platzieren. Das kann dann etwa so aussehen:
<%@ LANGUAGE=skriptsprache%>

Ersetzen Sie skriptsprache durch den Namen der gewählten Sprache – etwa
VBScript oder JScript.

Hinweis
Bei der Ausführung von VBScript-Code in ASP-Dateien sind ein paar
Besonderheiten zu beachten, mit denen sich Ihre Entwickler vertraut
machen sollten. Beispielsweise können Sie die Funktionen InputBox und
MsgBox in ASP-Dateien nicht verwenden, da eine ASP-Datei nicht über
eine Benutzeroberfläche verfügt.

Wenn Sie aus Übersichtlichkeitsgründen Anmerkungen in Ihren Code einfügen


wollen, müssen Sie auch die verschiedenen Möglichkeiten der Auskommentie-
rung in den unterschiedlichen Sprachen kennen. VBScript verwendet – wie
Visual Basic – den Apostroph:
<%

' Schreibt eine Zeile mit dem aktuellen Datum auf den Bildschirm
Response.Write "Heute ist der " & Date()

%>

Hier wird der Apostroph (') verwendet, um vor dem Code eine Kommentarzeile
einzufügen; in der Kommentarzeile wird erläutert, was der Code bezweckt.
Bei JScript wird ein doppelter Schrägstrich (//) verwendet, wie man es von Java
und C++ her kennt.
<%

// Zeile mit aktuellem Datum auf den Bildschirm schreiben


var x
x = new Date()
Kapitel 16 • Active Server Pages 355

Response.Write (x.ToString())

%>

Wenn der Server den Code verarbeitet, werden die Kommentare aufgrund der
Trennzeichen als solche erkannt und nicht verarbeitet.
Ein weiterer wichtiger Punkt, der bei der Arbeit mit VBScript und JScript zu
beachten ist, ist die Tatsache, dass es sich in beiden Fällen um »typenlose« Spra-
chen handelt, d.h. von Ihnen definierte Variablen werden keinem bestimmten
Datentyp zugeordnet. Wenn man bei Visual Basic mit einer Zeichenkette arbeitet,
muss man eine Variable vom Typ String definieren; das sieht dann etwa so aus:
Dim strNewString As String

Dadurch ist gewährleistet, dass dieser Variable nur Zeichendaten zugewiesen wer-
den können. Bei den beiden hier beschriebenen Skriptsprachen sind alle Variablen
vom Typ Variant. Diesen Datentyp werden wir im folgenden Abschnitt bespre-
chen.

16.2.1 Variablen und Konstanten


Falls Ihnen der Begriff »Variable« nicht geläufig ist: Er bezeichnet den Namen
eines Speicherbereichs, der für die Speicherung von Daten reserviert ist, die unter
diesem Namen abgelegt werden. Auf diese Weise können Sie Daten aus dem
Speicher einfach über ihren Namen abrufen – und der ist leichter zu merken als
eine Speicheradresse. Da der Name, der als Verweis auf Daten dient, eine Vari-
able ist, können Sie einem Namen zu unterschiedlichen Zeiten auch verschiedene
Werte zuweisen.
Nehmen wir beispielsweise einmal an, dass Sie einen Variablennamen erstellen
wollen, der einen ganzzahligen Wert aufnehmen soll, welcher zur Ausführung
einer Schleife in Ihrem Code benötigt wird. Der Name wird als
Dim intCounter

deklariert. In Ihrem Schleifencode könnten Sie die Variable dann etwa so einset-
zen:
For intCounter = 1 to 10
Hier passiert irgendwas in Ihrem Code
Next

Dies ist eine so genannte For-Schleife. Der Wert der Variable intCounter wird
ebenso geändert wie die Daten, die im für diese Variable reservierten Speicherbe-
reich liegen, und zwar aufsteigend von 1 bis 10 mit einer Schrittweite von 1.
356 Skriptsprachen

Ein anderer Datentyp ist die »Konstante«. Der Unterschied zur Variablen besteht
darin, dass einer Konstante genau einmal ein Wert zugewiesen wird, der anschlie-
ßend nicht mehr geändert wird:
Const pi = 3.14159265

Diese Zuweisung besagt, dass dem Datennamen pi der Wert 3,14159265 zuge-
wiesen wird; diese Zuweisung kann durch den Code nicht mehr geändert werden.
Wenn Sie einen Datenspeicher als Konstante definieren, müssen Sie ihn gleich-
zeitig auch mit einem Wert initialisieren, da dies im Nachhinein (d.h. während der
Ausführung des Codes) ja nicht mehr möglich ist.
VBScript setzt keine Definition einer Variablen vor deren Verwendung voraus.
Die explizite Deklaration einer Variablen hat sich jedoch als gängige Program-
miererpraxis erwiesen, und Sie können sogar eine VBScript-Funktion nutzen, die
Sie dazu zwingt, sich diese Verhaltensweise anzugewöhnen. Wenn Sie zu Beginn
Ihrer ASP-Dateien eine Anweisung wie Option Explicit einsetzen, wird sich
VBScript beschweren, wann immer es auf eine nicht deklarierte Variable stößt.
Dadurch wird dem Compiler mitgeteilt, dass jede Variable vor ihrer Verwendung
explizit deklariert werden muss. Die Anweisung Option Explicit folgt ggf. auf
ASP-Anweisungen wie etwa #include, steht aber immer vor HTML- oder Skript-
code.

Variablen deklarieren
Verwenden Sie eine der folgenden vier Anweisungen, um eine Variable in
VBScript zu deklarieren:
• Dim. Deklariert eine Variable als normale Variable und ist die am häufigsten
verwendete Anweisung. Beispiel: Dim intCounter.
• Public. Macht eine Variable mehreren Funktionen oder Prozeduren verfügbar
(»publiziert« die Variable). Beispiel: Public strName.
• Private. Reduziert die Verwendungsmöglichkeiten einer Variable auf die Pro-
zedur oder Funktion, in der sie deklariert wird (»privatisiert« die Variable).
Beispiel: Private m_lngPi.
• ReDim. Wird bei der Arbeit mit Arrays benutzt. Wenn Sie ein bereits vorhan-
denes Array neu deklarieren wollen und hierzu den Befehl ReDim verwenden,
dann werden die ursprünglichen Daten gelöscht, das Array neu formatiert und
dann mit den neuen Daten versehen. Beispiel: ReDim arDice(9) – diese Anwei-
sung konfiguriert das Array arDice mit zehn Elementen neu.
In der Liste der Anweisungen erwähnte ich die Möglichkeit, Variablen zu publi-
zieren bzw. zu privatisieren. Diese Begriffe beziehen sich auf den Wirkungsbe-
reich einer Variable, d.h. auf den Bereich, von dem aus auf die Variable zugegrif-
fen werden kann und innerhalb dessen sie existiert.
Kapitel 16 • Active Server Pages 357

Eine normale Variable ist nur innerhalb der Funktion sichtbar, für die sie dekla-
riert wurde; keine andere Funktion kann darauf zugreifen. Eine Variable gleichen
Namens kann auf diese Weise in einer anderen Funktion vorhanden sein, ohne
dass die beiden einander stören. Wenn die Funktion oder Prozedur beendet ist, ist
die Variable nicht mehr gültig und wird aus dem Wirkungsbereich entfernt, d.h.
sie existiert nicht mehr. Die Daten sind zwar noch im Speicher vorhanden, aber
der Speicherbereich ist nicht mehr reserviert und kann von einer anderen Variab-
len (oder sogar einer anderen Anwendung) beansprucht werden.
Es ist wichtig, sich diese Sachverhalte klarzumachen, denn häufig wollen Sie den
aktuellen Zustand einer Anwendung auf Ihrem Server beibehalten. Die einzige
Möglichkeit, dies zu tun, besteht darin, Ihre Variablen für die gesamte Anwen-
dung sicht- und verfügbar zu machen. Zu diesem Zweck werden globale Variab-
len verwendet, die mit dem Bereich Session (Sitzung) oder Application (Anwen-
dung) deklariert werden. Der Bereich Session macht Ihre Variable für alle Seiten
einer Anwendung verfügbar, die von einem Benutzer angefordert werden; der
Bereich Application macht sie für alle Seiten der Anwendung verfügbar, die von
beliebigen Benutzern angefordert werden.
Um eine Variable mit diesen Bereichstypen zu deklarieren, verwenden Sie die
Objekte Session bzw. Application. Wenn Sie beispielsweise eine Variable mit dem
Bereich Session deklarieren wollen – etwa für den Vornamen eines Benutzers –,
dann verwenden Sie folgenden Code:
<% Session("Vname") = "Gerry" %>

Sie können diese Variable nun über alle Seiten hinweg, die innerhalb einer Sit-
zung verwendet werden, aufrufen und verwenden, indem Sie die folgende Zeile
einfach an der Stelle Ihrer Seite einfügen, an der Sie den Vornamen verwenden
wollen:
<%= Session("Vname") %>

Die Anwendung des Bereichs Application verläuft analog – ersetzen Sie in den
Codeausschnitten lediglich Session durch Application.
Ich kann Ihnen hier leider kein vollständiges ASP-Lehrbuch bieten, sondern
möchte lediglich ein paar Hintergrundinformationen bereitstellen, die Ihnen zei-
gen, wie ASP grundlegend funktioniert, so dass Sie es in Ihrer IIS-Umgebung ein-
setzen können.

16.2.2 Clientseitige Skriptinteraktion


Wenn Sie wollen, können Sie clientseitiges und serverseitiges Skripting auf ein
und derselben Seite mischen. Eine Warnung sei allerdings in diesem Fall ausge-
sprochen: Nicht alle Browser unterstützen alle Skriptsprachen. Netscape bei-
spielsweise unterstützt VBScript nicht, deswegen können Sie diese Skriptsprache
nicht für clientseitigen Code verwenden, wenn Sie kompatibel mit allen Browsern
sein wollen.
358 Skriptsprachen

Die neueste Browsergeneration unterstützt mehr oder minder durchgehend Java-


Applets, JavaScript und JScript – hier sind Sie, was clientseitiges Skripting
angeht, in der Regel auf der sicheren Seite. Listing 16.3 demonstriert die Anwen-
dung dieser Technik.
<%@ LANGUAGE = "VBScript" %>
<HTML>
<HEAD><TITLE>Skripts mischen</TITLE></HEAD>
<BODY>
<%
Dim tmTime, strServerName, strServerSoftware, intGreeting
tmTime = Time()
strServerName = Request.ServerVariables("SERVER_NAME")
strServerSoftware = Request.ServerVariables("SERVER_SOFTWARE")
'Zufallszahl erzeugen.
Randomize
intGreeting = int(rnd * 3)
%>
<SCRIPT LANGUAGE="JScript">
<!--
//Funktionsaufruf für Begrüßungsbildschirm
showIntroMsg()
function showIntroMsg()
{
switch(<%= intGreeting %>)
{
case 0:
msg = "Willkommen zum Webserver <%= strServerName%> unter der Software
<%= strServerSoftware %>."
break
case 1:
msg = "Dies ist mein Webserver <%= strServerName%>. Die Zeit auf dem
Server ist <%= tmTime %>."
break
case 2:
msg = "Auf diesem Computer wird <%= strServerSoftware %> ausgeführt."
break
}

document.write(msg)

}
-->
</SCRIPT>
</BODY>
</HTML>

Listing 16.3: mixscript.asp


Kapitel 16 • Active Server Pages 359

Dieser Code erstellt eine Seite, die Systemzeit, Namen und Softwareversion des
Servers holt und diese Parameter dann an eine JScript-Funktion weitergibt, die
auf dem Computer des Clients ausgeführt wird.
Ein Vorteil dieser Technik besteht darin, dass die Bearbeitung der JScript-Funk-
tionen zum Client verschoben und die Serverbelastung so verringert wird. Eine
Menge kleiner Skripts wie dieses kann die Leistung Ihres Servers verbessern. Ver-
stehen Sie mich nicht falsch: Ich will damit nicht sagen, dass Sie den Clientcom-
putern mit Skripts überlasten sollen, aber je mehr Verarbeitungsvorgänge Sie vom
Server entfernen, desto besser und schneller werden die verbleibenden Prozesse
bearbeitet.

16.3 Prozeduren
In der Dokumentation zu IIS 5.0 heißt es, eine Prozedur ist »eine Gruppe von
Skriptbefehlen, die eine bestimmte Aufgabe ausführt und einen Wert zurückge-
ben kann«. Nach meinen Erfahrungen mit Programmiersprachen ist eine Prozedur
(etwa eine Subprozedur) in der Tat eine Gruppe von Befehlen oder Anweisungen,
die eine bestimmte Aufgabe ausführen; wenn allerdings ein Wert zurückgegeben
wird, dann möchte ich dieses doch eher als »Funktion« bezeichnen – auf der
Basis dieser Definitionen lässt sich eine Prozedur von einer Funktion unterschei-
den.
Entsprechend der typischen Wirkungsbereiche von Funktionen und Prozeduren,
wie sie in anderen Entwicklungstools verwendet werden, können Sie ihre Proze-
dur/Funktion auf der Seite schreiben, die diese auch verwendet. Alternativ kön-
nen Sie allgemeine Prozeduren/Funktionen schreiben, die sie als allgemeine Datei
speichern, und dann die Anweisung #include verwenden, um Datei und Funktio-
nen in die Seite zu integrieren. Auf diese Weise können Sie verhindern, dass Sie
eine Prozedur oder Funktion jedes Mal neu schreiben müssen, wenn Sie sie benö-
tigen.
Prozeduren werden so geschrieben, dass sie entweder auf dem Server oder auf
dem Client ausgeführt werden. Die meisten Skriptbefehle, die ich verwende, ste-
hen normalerweise zwischen den Trennzeichen <% und %>; Funktionen und Proze-
duren werden hingegen in der Regel zwischen den Tags <SCRIPT> und </SCRIPT>
stehen. In diesem Fall wird der Code auf dem Clientcomputer ausgeführt. Wenn
Ihr Code in VBScript verfasst ist, dann wird jeder Browser, der nicht von Micro-
soft stammt, damit seine Probleme haben.
Damit Ihre Funktionen und Prozeduren ausschließlich auf dem Server ausgeführt
werden, können Sie eine zusätzliche Anweisung im eröffnenden <SCRIPT>-Tag
einfügen:
<SCRIPT LANGUAGE=VBScript RUNAT=SERVER>
360 Prozeduren

Dadurch wird IIS mitgeteilt, dass der Code zwischen diesen beiden <SCRIPT>-
Tags auf dem Server ausgeführt werden muss.

Warnung
Stellen Sie immer sicher, dass all Ihre Funktionen und Prozeduren voll-
ständig von den <SCRIPT>-Tags eingeschlossen sind. Ferner sollten Sie
innerhalb eines Satzes von <SCRIPT>-Tags keine Skriptbefehle verwenden,
die nicht Bestandteil der Prozedur sind; andernfalls kann das Verhalten
des Codes unvorhersagbar werden.

Wenn auf Ihrer Seite eine Funktion oder Prozedur verwendet werden soll, dann
müssen Sie diese Funktion/Prozedur aufrufen. Hierzu gibt es verschiedene Wege
– je nachdem, um was für eine Prozedur es sich handelt und welche Skriptsprache
Sie verwendet haben.
Wenn Sie eine JScript-Routine aufrufen, müssen Sie an das Ende des Funktions-
namens Klammern anhängen. Der folgende Codeausschnitt zeigt die korrekte
Syntax für den Aufruf einer JScript-Funktion namens RunMe:
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<% RunMe() %>
</BODY>
</HTML>

Bei VBScript können Sie die Klammern weglassen, sofern Sie an die aufzuru-
fende Funktion oder Prozedur keine Parameter übergeben müssen. Die Parameter
müssen in jedem Fall zwischen den Klammern stehen – egal, ob Sie eine
VBScript- oder eine JScript-Prozedur aufrufen. Der folgende Ausschnitt zeigt,
wie es geht:
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<% Summe(10, 25) %>
</BODY>
</HTML>

Diese Prozedur übergibt die beiden ganzzahligen Werte 10 und 25 an eine Proze-
dur namens Summe. Dem Namen der Prozedur können Sie entnehmen, was diese
mit den beiden Parameterwerten machen soll.
Kapitel 16 • Active Server Pages 361

16.4 Auflistungen
Wenn Sie zwecks Speicherung zusammengehörender Daten bereits mit Arrays
gearbeitet haben, dann werden Sie das Konzept der »Auflistungen« wahrschein-
lich zu schätzen wissen. Auflistungen ähneln Arrays dahingehend, dass sie
zusammengehörige Elemente als Gruppen speichern. Sie können Zahlen, Zei-
chen, Zeichenketten und Objekte in Auflistungen ablegen.
Auf einzelne Daten einer Auflistung greifen Sie – wie bei Arrays auch – über
Indexwerte zu; alternativ können Sie den eindeutigen Zeichenschlüssel verwen-
den. Natürlich lässt sich eine Auflistung auch mittels einer Schleife durcharbei-
ten.
Der Vorteil, den eine Auflistung gegenüber einem Array hat, besteht darin, dass
sie sich automatisch vergrößert oder verkleinert, wann immer Daten hinzugefügt
oder entfernt werden; eine manuelle Neudimensionierung ist nicht notwendig.
Ein gutes Beispiel hierfür ist die Auflistung Contents des Objekts Session. Sie
können mit dieser Auflistung Daten des Sitzungsstatus speichern, so dass Sie spä-
ter wieder auf jeden der zusammengefassten Werte zugreifen können, wenn Sie
ihn für eine bestimmte Seite oder Funktion benötigen. Betrachten Sie einmal den
folgenden Code-Ausschnitt:
<%
Session.Contents("Vname") = "Gerry"
Session.Contents("Nname") = "O'Brien"
Session.Contents("TEL") = "0134-12345"
%>

Wenn ich auf eines der Datenelemente in dieser Auflistung zugreifen will, so
kann ich das entweder mit dem Schlüsselzeichen oder dem Index. Die folgenden
beiden Zeilen zeigen, wie der Nachname aus der Auflistung extrahiert wird:
<%= Session.Contents("Nname") %>
<%= Session.Contents(2) %>

Beide Zeilen geben den Wert »O'Brien« zurück. Der Indexwert ist deswegen »2«
und nicht »1«, weil die Indizierung einer Auflistung mit 1 beginnt (und nicht wie
bei Arrays mit 0).

16.4.1 Anzahl der Elemente in einer Auflistung bestimmen


Vielleicht fragen Sie sich nun: »Okay, aber wie finde ich heraus, wie viele Ele-
mente in einer Auflistung vorhanden sind?« Bei einem Array wissen Sie dies in
der Regel, denn Arrays werden normalerweise mit der korrekten Anzahl der Ele-
mente dimensioniert. Da sich eine Auflistung aber an den Bedarf an Elementen
anpasst, kann sich die Gesamtzahl jederzeit ändern.
362 Verarbeitung von Benutzereingaben

Der leichteste Weg festzustellen, wie viele Elemente in der Auflistung vorhanden
sind, ist das Abarbeiten der Auflistung. Mittels einer Schleife können Sie, wie in
Listing 16.4 gezeigt, den Inhalt der Auflistung ausdrucken.
<%
Dim strItem

For Each strItem in Session.Contents


Response.Write Session.Contents(strItem) & "<BR>"
Next
%>

Listing 16.4: Abarbeiten einer Auflistung

Dieser Code verwendet eine For…Each-Schleife, um die Auflistung durchzuar-


beiten, und druckt den Wert für jedes (engl. »for each«) Element der Auflistung
aus. Es spielt dabei keine Rolle, wie groß oder klein die Auflistung ist; die
Schleife stoppt die Abarbeitung erst, nachdem auf das letzte Element zugegriffen
wurde.
Alternativ können Sie auch eine For…Next-Schleife verwenden. In diesem Fall
sähe der Code wie folgt aus:
<%
Dim intCounter

For intCounter = 1 TO Session.Contents.Count


Response.Write Session.Contents(intCounter) & "<BR>"
Next
%>

Dieser Code tut das gleiche wie die vorhergehende For…Each-Schleife – Sie kön-
nen die gewünschte Vorgehensweise also frei wählen.

Hinweis
Wenn Sie VB-Programmierer und bereits mit der Bearbeitung von Auflis-
tungen in dieser Sprache vertraut sind, dann müssen Sie nur eine winzige
Kleinigkeit in Zusammenhang mit Auflistungen in ASP beachten: Die
Methoden Item, Count, Remove und RemoveAll werden allesamt unter-
stützt, nicht jedoch die Methode Add. Sie müssen Ihre Auflistungen also
bei der Planung bereits einschätzen können.

16.5 Verarbeitung von Benutzereingaben


Vom Administratorenstandpunkt her ist die Verarbeitung von Benutzereingaben
wahrscheinlich eine der schönsten Eigenschaften von ASP. Sie können die ASP-
Funktionen zur Formularverarbeitung nutzen, um Benutzerdaten zu ermitteln und
Kapitel 16 • Active Server Pages 363

zu bewerten. Formulare sind seit einiger Zeit Standard bei der Ermittlung von
Benutzerdaten auf HTML-Seiten. Sie können ASP zur Bewertung von Benutzer-
daten verwenden, die eine ASP-Datei von einer HTML-Datei oder einer anderen
ASP-Datei empfangen hat. Ferner können Sie mit ASP ein Formular erstellen und
die Daten in diesem Formular wieder an die ASP-Seite senden.
Listing 16.5 erzeugt eine Beispielseite, die ein paar Eingabefelder für Benutzer-
daten wie etwa den Vor- und den Nachnamen enthält. Listing 16.6 übergibt diese
Daten an eine ASP-Datei, die sie weiterverarbeitet und mit einer Begrüßungsmel-
dung auf dem Bildschirm anzeigt.
<HTML>
<HEAD><TITLE>Abfrage der Formulardaten</TITLE></HEAD>
<BODY>
<H2>Geben Sie bitte Ihren Vor- und Nachnamen in die entsprechenden Felder ein
und klicken Sie auf die Schaltfläche 'Senden'.</H2>

<FORM METHOD="GET" ACTION="userinfo.asp">


Vorname <INPUT TYPE="Text" NAME="Vorname"> <P>
Nachname <INPUT TYPE="Text" NAME="Nachname"> <P>
<INPUT TYPE="Hidden" NAME="UserStatus" VALUE="New">
<INPUT TYPE="Submit" VALUE="Senden">
</FORM>

</BODY>
</HTML>
Listing 16.5: inputuser.htm

<%@ LANGUAGE="VBScript" %>


<HTML>
<HEAD><TITLE>userinfo.asp</TITLE></HEAD>
<BODY>
<CENTER><H1>UserInfo.asp</H1></CENTER>
<HR>
Willkommen, <% =Request.QueryString("Vorname") & " " %>
<% =Request.QueryString("Nachname") %>
</BODY>
</HTML>
Listing 16.6: userinfo.asp

Listing 16.5 fragt die Benutzerdaten ab. Es handelt sich dabei um eine einfache
kleine HTML-Datei mit einem Formular. Die im Formularabschnitt verwendete
Methode ist GET, der Vorgang wird in der Datei userinfo.asp aufgelistet. Das
bedeutet, dass IIS die Daten aus den Formularfeldern holt und sie in den Variab-
len Vorname und Nachname ablegt, die im Formular durch INPUT NAME deklariert
werden. Die Daten werden nachfolgend als URL an die Datei userinfo.asp über-
geben – das sieht dann etwa so aus:
364 Komponenten und Objekte

http://localhost/userinfo.asp?Vorname=Gerry&Nachname=O%27Brien&UserStatus=New

Die Seite userinfo.asp extrahiert die Daten mit der Methode Request.QueryString
und zeigt sie dann auf der Seite an. Die Daten lassen sich natürlich auch an eine
Datenbank oder eine Textdatei senden, die man später noch betrachten kann.
Dieses Beispiel ist nicht besonders ausführlich, aber es gibt Ihnen eine Ahnung
von den Möglichkeiten, die ASP für den Zugriff auf Benutzerdaten bereitstellt.
Solche Daten lassen sich beispielsweise in der Werbeabteilung verwenden, um
potentielle Kunden zu kontaktieren; auch andere Arten der internen Verwendung
sind denkbar.
Einer der Hauptvorteile bei der Verarbeitung von Benutzereingaben in ein Formu-
lar ist die Möglichkeit der Verwendung von Bewertungsfunktionen, um festzu-
stellen, ob die eingegebenen Daten gültig sind. Sie können diese Funktionen etwa
benutzen, wenn für den Aufruf einer Eingangsseite in einen eingeschränkten
Bereich die Eingabe eines Benutzernamens und eines Kennworts notwendig ist.
Benutzername und Kennwort könnten dann an eine andere ASP-Seite geschickt
werden, die ihrerseits eine Datenbank abfragen und die Benutzereingaben verifi-
zieren könnte. Sind die Daten gültig, dann hat der Benutzer Zugriff auf die ent-
sprechenden Webseiten, andernfalls könnte die ASP-Seite eine Fehlermeldung
generieren, die dem Client angezeigt wird. Die Möglichkeiten der Zeitersparnis
sind riesig, denn Seiten können dynamisch erstellt werden – Sie müssen nie wie-
der viele Seiten auf dem Server speichern, die dort eine Menge Platz brauchen
und deren Erstellung stundenlang dauert.

16.6 Komponenten und Objekte


Praktisch die gesamte Softwareentwicklung hat sich der objektorientierten Pro-
grammierung zugewandt. Die Idee hinter der objektorientierten Programmierung
besteht darin, Objekte zu erstellen, die Objekten im richtigen Leben nachempfun-
den sind, und dann die echten Objekte im Code so gut wie möglich nachzustellen.
Die Erstellung von Objekten bedingt die Erstellung einer Schnittstelle für das
Objekt. Dabei muss es sich nicht unbedingt um eine grafische Oberfläche han-
deln, wie sie eine Windows-Anwendung hat; wir reden hier eher von einem Satz
von Prozeduren, Eigenschaften und Methoden, die Programmierer frei verwenden
und so das Objekt in ihren eigenen Projekten benutzen können.
Microsoft benutzt dieses Konzept für seine COM-, COM+- und DCOM-Kompo-
nenten. Die COM-Komponenten sind »wiederverwendbare« Codestückchen, die
einfach in eine Anwendung eingefügt werden – es besteht kein Grund, die Funk-
tionalität dieser Komponenten von Grund auf neu zu erstellen.
Ein gutes Beispiel hierfür ist das Anwendungspaket »Microsoft Office«. Bestand-
teil dieses Pakets ist VBA (Visual Basic für Applikationen), mit dem Sie das Soft-
Kapitel 16 • Active Server Pages 365

wareprodukt um Funktionen erweitern können, die noch nicht vorhanden sind.


Wenn Sie mit VBA arbeiten, greifen Sie auf COM-Komponenten zu.
Andere Softwareentwickler können eine von Office völlig getrennte Anwendung
erstellen, dabei aber die Rechtschreibprüfung von Microsoft Word verwenden,
sofern Word auf dem System installiert ist. Auch hier greifen Sie auf COM-
Objekte zu und arbeiten mit diesen.
Der größte Vorteil von Komponenten besteht für Webentwickler darin, dass sich
die Funktionalität einer Komponente aus einem Skript heraus aufrufen lässt. Das
bedeutet, dass Sie eine COM-Komponente in einer beliebigen Programmierspra-
che erstellen (die Sprache muss COM-Komponenten natürlich unterstützen) und
von Ihrem VBScript- oder JScript-Code aus auf die Komponente zugreifen kön-
nen. Die Komponente ließe sich beispielsweise in C++ verfassen, was im Ver-
gleich zu einem ASP-Skript eine bessere Optimierbarkeit erlauben würde.
Sie können Ihre proprietären Prozeduren in COM-Komponenten einkapseln,
wodurch diese transportabel würden. Das bedeutet auch, dass, wenn Sie Prozedu-
ren ändern müssen, dies problemlos unter Beibehaltung der Zugriffsmechanismen
tun können, ohne dass Sie vorhandenen Code ändern müssen, der auf die Proze-
duren zugreift.

16.6.1 COM-Objekte in ASP benutzen


Damit Sie eine COM-Komponente oder ein COM-Objekt in Ihrem Skript ver-
wenden können, müssen Sie zunächst eine Instanz davon erstellen. Dies geschieht
mit der folgenden Codezeile:
<% Set adOne = Server.CreateObject("MSWC.AdRotator") %>

Diese Zeile erstellt eine Instanz der Komponente Ad Rotator, die Bestandteil von
IIS 5.0 ist und in Kapitel 17 erläutert werden wird.
Natürlich benötigen Sie nach der Erstellung eines Objekts auch eine Möglichkeit
des Zugriffs auf seine Funktionalität. Jedes Objekt stellt Methoden zur Verfü-
gung, die Sie in Ihrem Code aufrufen können. Diese Methoden dienen der Ein-
stellung oder Prüfung der Objekteigenschaften oder der Ausführung bestimmter
Aufgaben.
Ein gutes Beispiel hierfür befindet sich in einem Code, den wir bereits früher ver-
wendet haben. IIS verfügt über ein Objekt namens Response, welches Sie auf
Ihrer ASP-Seite verwendet haben, um etwas in eine HTML-Seite zu schreiben,
etwa so:
<% Response.Write "<B>Methode WRITE für das Objekt RESPONSE</B>" %>

Die Methode Write bewirkt eine Anzeige des nachfolgenden HTML-Codes auf
der Seite. Write ist eine der Methoden des Objekts Response, die Sie nicht extra
erstellen müssen; Sie rufen die Methode einfach auf und übergeben die benötigten
366 Der Objektbereich

Parameter. Die Methode kümmert sich anschließend um den Rest, damit der ein-
gegebene Text angezeigt wird.
Im Skriptcode lassen sich auch die Eigenschaften eines Objekts einstellen. Das
weiter oben instanzierte Objekt Ad Rotator hat drei Eigenschaften: Width (Breite),
Height (Höhe) und Border (Rahmen). Sie können all diese Eigenschaften in
Ihrem Code einstellen, so etwa die Breite:
<% adOne.Width = 440 %>

Ich habe die Breite des Ad Rotator-Elements auf 440 Pixel gesetzt. Beachten Sie
die Verwendung von adOne anstelle von MSWC.AdRotator. Ich habe nämlich
eine Kopie des Objekts erstellt und diese als adOne bezeichnet. Die Eigenschaf-
ten von adOne als einer Instanz des Objekts lassen sich einstellen, ich kann
jedoch nicht die Eigenschaften von MSWC.AdRotator setzen.
Wie bereits erwähnt, können Sie COM-Komponenten und -Objekte zur Vereinfa-
chung administrativer Aufgaben verwenden, indem Sie die benötigte Logik in
diese Komponenten integrieren und den Code dann für viele Webanwendungen
verfügbar machen – so brauchen Sie ihn nicht jedes Mal neu zu erstellen.

16.7 Der Objektbereich


Bei der Arbeit mit Objekten müssen Sie den Bereich (engl. »scope«) eines
Objekts beachten, d.h. seine »Existenz« für Funktionen und Skripts. Wenn für ein
Objekt der falsche Bereich definiert wurde, dann können Skripts nicht auf die
Funktionalität des Objekts zugreifen.

16.7.1 Objektbereich Seite


Normalerweise gilt eine Seite als Bereich eines Objekts, d.h. für jedes Skript auf
der Seite, auf der das Objekt erstellt wurde, ist das Objekt vorhanden und seine
Funktionalität verfügbar. Wenn Sie auf der Seite default.asp ein Ad Rotator-
Objekt erstellt haben, dann können nur Skripts damit arbeiten, die auf der Seite
default.asp vorhanden sind. Für Skripts auf anderen Seiten – etwa kontakt.asp –
ist das Objekt nicht existent, eben weil es auf der Seite default.asp vorhanden ist.
Jedes Objekt, das mit der Methode Server.CreateObject erstellt wird, arbeitet mit
der Seite als Objektbereich. Wenn die Seite abgearbeitet ist, wird das Objekt –
und damit auch die von ihm verwendeten Ressourcen – freigegeben.

16.7.2 Objektbereich Sitzung


Sie können auch Objekte erstellen, für die Sie den Objektbereich Sitzung definie-
ren können. Der Objektbereich Sitzung macht das Objekt allen Skripts verfügbar,
die innerhalb der Sitzung verarbeitet werden. Sie sollten diesen Bereich für solche
Kapitel 16 • Active Server Pages 367

Komponenten verwenden, die mit Benutzerdaten arbeiten, welche im Verlauf


einer Sitzung mehrfach auf Seiten verwendet werden.
Die Verwendung des Objektbereichs Sitzung setzt Erfahrung mit Threading
voraus, was allerdings ein ganz anderes Thema ist (weswegen ich an dieser Stelle
auch nicht weiter darauf eingehen werde).

16.7.3 Objektbereich Anwendung


Der dritte mögliche Objektbereich ist die Anwendung, d.h. das Objekt steht sei-
ten- und sitzungsübergreifend für eine bestimmte Anwendung zur Verfügung.
Dieser Bereich kann sich hinsichtlich der Serverleistung als vorteilhaft erweisen.
Nehmen wir einmal an, Sie wollen die Komponente Ad Rotator verwenden, um
auf Ihrer Website eine Bannerrotation zu realisieren. Wenn Sie dieses Objekt mit
der Seite als Bereich erstellen würden, müsste jedes Mal, wenn ein Benutzer eine
Seite öffnet, eine neue Instanz dieses Objekts erstellt werden. Jede geöffnete Seite
würde ihre eigene Instanz erstellen, und jede Instanz würde sich negativ auf die
Serverleistung auswirken.
Wenn Sie dem Ad Rotator-Objekt nun den Objektbereich der Anwendung zuwei-
sen, dann könnte jede Seite auf ein und dasselbe Objekt zugreifen und es benut-
zen, statt immer wieder ein neues Objekt zu erstellen. Das spart natürlich Server-
ressourcen.
Weitere Informationen zu dem Objektbereich und zur Implementierung des
Threading finden Sie in der IIS-Hilfe oder beim Microsoft Developer Network
unter http://msdn.microsoft.com/library/default.asp; schlagen Sie dort unter
Platform SDK/Web Services/Internet Information Services 5.0/Active Server
Pages Guide/Active Server Pages/Building ASP Pages/Setting Object Scope nach.

16.8 Inhalte senden


Jeder Text in einer ASP-Datei, der kein HTML-Tag ist und nicht zwischen den
Trennzeichen <%und %> bzw. <SCRIPT> und </SCRIPT> steht, wird zur Anzeige an
den Browser gesandt. Wie aus Listing 16.7 ersichtlich, müssen Inhalte, die im
Browser angezeigt werden sollen, manchmal auch aus dem Code heraus gesendet
werden. Hierzu wird die Methode Write des Objekts Response verwendet.
<%@ LANGUAGE = "VBScript" %>
<HTML>
<HEAD><TITLE>Serverzeit</TITLE></HEAD>
<BODY>
<CENTER><H1><FONT Color="Blue">GK Computer Consulting</FONT></H1></CENTER><HR>
<CENTER><H2>Hinweise zu Transaktionen</H2></CENTER><HR>
<%
Dim timeframe
If Time < #12:00PM# Then
368 Inhalte senden

Response.Write "<B>Guten Morgen</B>"


ElseIf Time >= #12:00PM# AND Time < #5:00PM# Then
Response.Write "<B>Guten Tag</B>"
Else
Response.Write "<B>Guten Abend</B>"
End If
%>
Willkommen auf unserer Website!<P>
Alle von Ihnen heute auf unserer Website durchgeführten Transaktionen<BR>
erhalten unseren lokalen Zeitstempel. Dieser lautet im Moment <B><% =Now() %></B>
</BODY>
</HTML>

Listing 16.7: newtime.asp

Listing 16.7 ähnelt stark Listing 16.1; ich habe lediglich ein paar Änderungen
vorgenommen, um die Verwendung der Methode Response.Write zu veranschau-
lichen. Der Code überprüft nach wie vor, wie spät es auf dem Server ist, und sen-
det eine entsprechende Grußformel an den Client. Hier allerdings habe ich zur
Übertragung des richtigen Textes an den Browser die Methode Response.Write
benutzt. Da sich der Text innerhalb der Trennzeichen befindet, musste ich diese
Methode verwenden, da der Browser den gesamten Code zwischen den Trennzei-
chen ignoriert und infolgedessen den Text auch nicht anzeigen würde.
Sie können natürlich auch andere Daten als Text an den Clientbrowser senden.
Das Objekt Response hat eine weitere Eigenschaft namens ContentType, die zur
Spezifizierung des Typs von an den Browser gesendeten Inhalten benutzt wird.
Der Browser wiederum verwendet diese Information, um zu bestimmen, ob er die
Daten selbst anzeigt oder eine Hilfsanwendung hinzuziehen muss.
Beispiele für dieses Verfahren finden Sie auf den Supportwebsites der meisten
Hardwarehersteller, auf denen Sie häufig Listen mit zahlreichen Handbüchern zur
Ansicht oder zum Download vorfinden. Die meisten dieser Manuals sind als
PDF-Dateien formatiert und benötigen den Acrobat® Reader von Adobe®. Wenn
Sie das Dokument nun herunterladen, müssen Sie den Reader selbst öffnen, um es
betrachten zu können; wollen Sie sich das Dokument hingegen von der Website
aus anzeigen lassen, dann muss der Server den Inhaltstyp pdf an den Browser sen-
den, damit dieser weiß, dass der Acrobat Reader (sofern auf Ihrem System instal-
liert) geöffnet werden und im Browserfenster konfiguriert werden muss.
Der Browser erkennt die Inhaltstypen, weil er mit Hilfe von MIME (Multipurpose
Internet Mail Extensions) eine Zuordnung der Dateikennungen vornehmen kann.

16.8.1 Die Methode Redirect


Eine Methode zur Übermittlung von Inhalten an Clients – die Methode Redirect –
hat sich als wertvolles Tool für IIS-Administratoren erwiesen. Technisch gesehen
Kapitel 16 • Active Server Pages 369

werden hierbei keine Inhalte an den Client gesendet, sondern der Clientbrowser
wird an eine andere Seite oder Webadresse umgeleitet. Wenn Sie eine Seite oder
den Standort von Inhalten einer Website ändern, dann können Sie mit der
Methode Redirect sicherstellen, dass Clients an den richtigen Ort weitergeleitet
werden, bis Sie alle notwendigen Änderungen an den entsprechenden Verknüp-
fungen der verschiedenen Seiten vorgenommen haben. Bei extrem großen Sites
kann das ziemlich lange dauern, deswegen ist die Methode Redirect ganz sicher
eine willkommene Neuerung.
Ein weiterer Anwendungsfall für diese Methode ist es, sicherzustellen, dass
Benutzer, die sich an einer Site angemeldet haben, welche eine Autorisierung
erfordert, eine gültige Benutzerkennung eingeben. Wenn die Überprüfung der
Kennung eine falsche Eingabe ergibt, dann können Sie Ihren Benutzer mit dem
folgenden Codeausschnitt zu einer Registrierungsseite umleiten:
<% If Session("userID")="" then
Response.Redirect "registrierung.asp"
End If
%>

Mit diesem Code wird eine Sitzungsvariable namens userID auf das Vorhan-
densein eines Eintrags überprüft. Ist kein Eintrag vorhanden, dann hat sich der
Benutzer noch nicht registriert und wird infolgedessen auf die Registrierungsseite
umgeleitet. Dies geschieht mit Hilfe der Methode Response.Redirect.
Dies sind nur ein paar Beispiele für die Übermittlung von Inhalten an den Client.
Mehr Informationen und Anwendungsbeispiele finden Sie in der Onlinehilfe.

16.9 Dateien übermitteln


Durch Verwendung von #include-Dateien können Sie sich Ihr Leben und das
Ihrer Webentwickler ein bisschen leichter machen. C- und C++-Programmierer
genießen die Möglichkeit der Verwendung vorhandener Codes in ihren Anwen-
dungen bereits seit langem – Codes, die sie oder andere Programmierer geschrie-
ben und vor allem fehlerbereinigt haben. Die Zeitersparnis ist immens, denn Sie
müssen etwas, das bereits vorhanden ist, nicht noch einmal neu schreiben.
IIS 5.0 kennt die Anweisung #include, die es Ihnen ermöglicht, genau das Glei-
che zu tun wie diese C++-Programmierer. Vielleicht haben Ihre Webentwickler
bereits eine Reihe von ASP- und HTML-Seiten erstellt, die Unternehmensstan-
dard und deswegen auf jeder von der Website benutzten Seite anzuzeigen sind.
Wenn ich FrontPage-Vorlagen verwende, um eine neue IIS-Site zu erstellen, dann
baue ich zunächst einen Navigations-Frame oder -bereich auf, der alle notwendi-
gen Links zu den Hauptseiten der Website enthält. Dann verwende ich die Anwei-
sung #include, um diese Dateien im korrekten Frame oder Bereich jeder betroffe-
370 Sitzungen verwalten

nen Seite zu platzieren. Ich erstelle den Code also nur einmal, danach füge ich auf
allen Seiten, die ihn benötigen, nur noch die entsprechenden Verweise ein.
Die Syntax der Anweisung #include sieht wie folgt aus:
<!-- #include virtual|file ="dateiname" -->

Achten Sie darauf, dass die Anweisung innerhalb der Kommentarzeichen <!--
und --> steht. virtual oder file werden als Hinweis darauf verwendet, ob die
#include-Datei in einem virtuellen oder einem normalen Verzeichnis abgelegt ist.
dateiname ist der vollständige Pfad einschließlich des Namens der einzufügenden
Datei.
Bei der Benennung der #include-Dateien sollten Sie den Standards entsprechend
die Erweiterungen .inc oder .stm verwenden, um diese Dateien von regulären
HTML-Dateien in einem Verzeichnis unterscheiden zu können.
#include-Dateien können ihrerseits wieder Verweise auf andere #include-Dateien
enthalten. Das kann etwas verwirrend sein und ist eine potentielle Fehlerquelle.
Sie können nämlich unabsichtlich eine Schleife konstruieren: include1.inc ruft
dann include2.inc auf, die wiederum einen Aufruf von include1.inc enthält.

Warnung
#include-Dateien werden vor allen Skriptbefehlen auf einer Seite ausge-
führt. Insofern ist es leider nicht möglich, mit Skripts Namen von
#include-Dateien dynamisch zu erzeugen.

Tipp
Sie sollten Ihre #include-Dateien immer wieder prüfen, damit nicht
unbeabsichtigt unnötiger Code auf Ihre Seiten gelangt, der womöglich
Serverressourcen im großen Stil beansprucht.

16.10 Sitzungen verwalten


Es dürfte klar sein, dass es sich bei HTTP um ein im freien Raum schwebendes
Protokoll handelt – jede Anfrage, die an den Server gerichtet wird, wird als voll-
ständig neue Anfrage ohne irgendeine Verbindung zu früheren Anfragen oder zu
bestimmten Benutzerdaten behandelt. Aus diesem Grund ist es recht schwierig,
Anwendungen zu entwickeln, die Benutzerdaten und -eingaben übernehmen, die
während eines Besuches auf der Website ermittelt wurden. Ein Beispiel hierfür ist
der Warenkorb in Onlinewarenhäusern wie Amazon.de oder Netzmarkt.
Kapitel 16 • Active Server Pages 371

16.10.1 Das Objekt Session


Erfreulicherweise bietet uns ASP für dieses Dilemma eine Lösung. Mit Hilfe des
Objekts Session kann der Server eine eindeutige Benutzerkennung erstellen und
diese während einer Sitzung beibehalten.

Hinweis
Es gibt einen gravierenden Nachteil bei dieser Methode, den Sie in
jedem Fall beachten müssen. Das Objekt Session verwendet Cookies;
wenn der Browser Ihres Benutzers zur Ablehnung von Cookies konfigu-
riert ist, funktioniert diese Vorgehensweise natürlich nicht.

Damit Sie verstehen, wie das Objekt Session funktioniert, müssen Sie sich klar-
machen, wie eine Sitzung gestartet wird. Dies kann auf eine von vier unterschied-
lichen Weisen geschehen:
• Der Server empfängt die Anforderung einer Seite oder Anwendung, die ein
Cookie mit einer Sitzungskennung erfordert, die noch nicht vorhanden ist.
• Eine angeforderte URL beinhaltet einen Verweis auf die Datei global.asa, die
wiederum die Prozedur Session_OnStart enthält.
• Der Benutzer speichert im Objekt Session einen Wert.
• Die Datei global.asa einer ASP-Datei enthält ein <OBJECT>-Tag, das ein Objekt
mit dem Bereich »Sitzung« instanziert.
In allen Fällen wird ein Ereignis namens Session_OnStart ausgelöst, in das Sie
den für diesen Fall gewünschten Code platzieren können. Dazu gehört beispiels-
weise die Einstellung eines Timeouts für die Sitzung, also der Zeitspanne (in
Sekunden), die mit der letzten Seitenanforderung oder -aktualisierung durch den
Benutzer beginnt und nach deren Ablauf die Sitzung endet. Dieser Wert muss ent-
sprechend der Zeit, die der Benutzer wahrscheinlich benötigt, um andere Seiten
aufzurufen oder vorhandene Seiten zu aktualisieren, gesetzt werden.
Wählen Sie einen zu frühen Timeout, dann wird die Sitzung des Benutzers been-
det; im Falle eines Onlineshops würde dann der Einkaufswagen quasi umgekippt
und auf rabiate Weise entleert, und der Kunde müsste alle Eingaben (Einkäufe)
von neuem vornehmen. Aber auch die Festsetzung eines zu späten Timeouts ist
keine gute Idee, denn es gibt auch Kunden, die Transaktionen vorzeitig abbre-
chen. Die im Zuge solcher Vorgänge erstellten Objekte verbleiben im Speicher,
bis der Timeout sie freigibt – bei zu hohen Timeoutwerten wird dabei der Spei-
cher des Servers unnötig belastet.
Wenn Sie das Objekt Session verwenden, erstellt der Server eine eindeutige Ken-
nung für einen Benutzer, sobald dieser eine Sitzung initiiert. Der Server sendet
diese Kennung als Cookie an den Clientbrowser und fordert diesen Cookie immer
dann an, wenn neue Anfragen gemacht werden – auf diese Weise bleibt der
372 Auf Datenquellen zugreifen

Benutzer dem Server bekannt. Sie können das Objekt Session auch zur Speiche-
rung von Variablen verwenden, die sich auf den Benutzer beziehen. Das könnte
dann etwa so aussehen:
<%
Session("Vname") = "Markus"
Session("Nname") = "Mustermann"
%>

Diese Art der Flexibilität erlaubt Ihnen eine Anpassung der an den Client über-
mittelten Seiten, indem die Variablen im Code verwendet werden:
Willkommen in unserem Onlineshop, <% =Session("Vname") %>

Wie Sie sehen, würde es hier keinen Unterschied machen, welcher Benutzer die
Seite besucht – der korrekte Name wäre in der Variablen Vname abgelegt. Auch
wenn es abwegig erscheint: Wenn ein Kunde mit seinem Namen angesprochen
wird, dann macht das seinen Besuch zu einem schöneren Erlebnis.
Mit dem Objekt Session lassen sich noch eine Menge weitere Dinge anstellen,
aber ich möchte dieses Buch ja nicht mit einem Wust von Programmierthemen
füllen, sondern Ihnen hier nur die eine oder andere Vorgehensweise zeigen; die
tiefere Erforschung der Sachverhalte bleibt Ihnen oder Ihren Entwicklern überlas-
sen. Die Onlinehilfe enthält eine Menge weitere Informationen über das Objekt
Session und seine Verwendung.

16.11 Auf Datenquellen zugreifen


Mit ASP können Sie aus den Skripts auf Ihren Webseiten heraus auf Datenquellen
zugreifen. Bei dieser Datenquelle kann es sich um eine Microsoft Access-Daten-
bank auf Ihrem Server oder um eine beliebige andere ODBC-kompatible Daten-
quelle handeln, z.B. SQL Server, DB/2 oder Oracle. Sie können sogar auf Daten
zugreifen, die in einer Textdatei oder einer Kalkulationstabelle abgelegt sind – Sie
müssen nur die richtige Methode verwenden.
Der häufigste Ansatz bei Datenquellen ist die Verwendung einer Backend-Daten-
bank, die über Hochleistungsmechanismen für den gleichzeitigen Zugriff durch
mehrere Benutzer verfügt, also etwa SQL Server.
Sie können Daten, die sich häufig ändern, in einer Datenbank ablegen und dann
den Zugriff auf diese Datenbank von vielen Seiten Ihrer Website aus ermöglichen.
Dies stellt eine Möglichkeit dar, viel Zeit zu sparen, denn Sie müssen eine Ände-
rung nur in die Datenbank eingeben – alle Seiten, die die Daten verwenden, wer-
den beim nächsten Zugriff auf die Datenquelle aktualisiert.
Kapitel 16 • Active Server Pages 373

Sie können eine Datenbank natürlich auch zur Speicherung von Benutzerdaten
wie Namen und Kennwörtern verwenden und so unterschiedliche Zugriffsebenen
oder andere Authentifizierungsmöglichkeiten realisieren. Mit den Datenzugriffs-
möglichkeiten von ASP können Sie diese Daten dann bei Bedarf abrufen und
benutzen.
In ASP wird diese Datenbankanbindung mit Hilfe von ADO (ActiveX Data
Object, ActiveX-Datenobjekt) ermöglicht. ADO ist eine Zugriffsschnittstelle für
die Struktur einer ODBC-kompatiblen Datenquelle, d.h. Sie müssen sich nicht
mit unpraktischen APIs herumschlagen, die die eigentliche ODBC-Schnittstelle
bilden.
Um über ASP auf eine Datenquelle zugreifen zu können, müssen Sie die notwen-
digen Verbindungsdaten erstellen. Dazu gehört auch eine Verbindungszeichen-
kette, die das Skript benutzt, um die Datenquelle zu finden; die Zeichenkette
enthält den Datenquellentyp und alle gegebenenfalls benötigten Authentifizie-
rungsangaben.
Für die Beispiele in diesem Abschnitt werden wir eine Access-Datenbank ver-
wenden, die vier Datenelemente enthält: Vor- und Nachnamen der Benutzer,
Kennwörter und Zugriffsebenen. Erstellen Sie also mit Access eine Tabelle, die
die Daten enthält, und nennen Sie sie Benutzer. Geben Sie der Datenbank selbst
den Dateinamen userinfo.mdb und speichern Sie sie im Verzeichnis \wwwroot.
Ich habe zu Demonstrationszwecken drei Benutzer in diese Datenbank eingetra-
gen.

16.11.1 ODBC-Datenquelle auswählen


Bevor Sie ein Objekt erstellen können, dass als Zugriffsmechanismus für eine
Datenbank verwendet werden soll, müssen Sie die ODBC-Datenquelle auf dem
Server konfigurieren. Gehen Sie wie folgt vor, um die für den Datenquellenzugriff
benötigten Daten auf dem Server einzugeben:
1. Öffnen Sie die Systemsteuerung auf dem Server.
2. Doppelklicken Sie das Symbol VERWALTUNG , um das gleichnamige Fenster
aufzurufen. Doppelklicken Sie dort das Symbol DATENQUELLEN (ODBC), wie
in Abbildung 16.5 gezeigt.
3. Wählen Sie im Fenster ODBC-DATENQUELLEN-ADMINISTRATOR die Register-
karte SYSTEM-DSN (Abbildung 16.6).
4. Klicken Sie auf die Schaltfläche HINZUFÜGEN, um das Dialogfeld NEUE DA-
TENQUELLE ERSTELLEN zu öffnen, und wählen Sie hier den Eintrag MICRO-
SOFT ACCESS-TREIBER (*.MDB). Klicken Sie dann auf FERTIG STELLEN. Nun
wird das Fenster ODBC MICROSOFT ACCESS SETUP (Abbildung 16.7) geöff-
net.
374 Auf Datenquellen zugreifen

Abb. 16.5: Das Fenster VERWALTUNG enthält das Applet DATENQUELLEN (ODBC),
über das die Datenquellen konfiguriert werden können

Abb. 16.6: Der ODBC-DATENQUELLEN-ADMINISTRATOR erlaubt Ihnen die Einstellung


verschiedener Optionen für Datenquellennamen
Kapitel 16 • Active Server Pages 375

Abb. 16.7: Das Fenster ODBC MICROSOFT ACCESS SETUP, in dem Sie die Datenbank
auswählen sowie einen Namen und eine Beschreibung eingeben
können

5. Geben Sie im Textfeld DATENQUELLENNAME einen Namen für die Datenquelle


ein. Wir verwenden diesen Namen als Referenz der Datenbank im ASP-Code.
Sie können hier auch eine Beschreibung eingeben; diese ist aber nicht zwin-
gend.
6. Klicken Sie im Abschnitt DATENBANK in der Mitte des Dialogfelds auf die
Schaltfläche AUSWÄHLEN und suchen Sie die oben erstellte Datenbank. Belas-
sen Sie die Einstellungen aller weiteren Optionen und klicken Sie auf die
Schaltfläche OK.
Der neue Datenquellennamen erscheint nun in der Liste SYSTEMDATENQUELLEN
des Dialogfelds ODBC-DATENQUELLEN-ADMINISTRATOR. Die Datenquelle wird
nun erstellt und auf dem Server installiert, damit der Zugriff über den ASP-Code
möglich ist.

16.11.2 Über eine Webseite auf die Datenbank zugreifen


Nun müssen Sie von der Webseite aus auf die Datenbank zugreifen. Listing 16.8
zeigt, wie die benötigte Datenbankverbindung hergestellt wird.
<%@ LANGUAGE = "VBScript" %>
<HTML>
<HEAD>
<TITLE>Beispiel für den Datenbankzugriff</TITLE>
</HEAD>
<BODY>
376 Auf Datenquellen zugreifen

<CENTER><H1><FONT Color="Blue">Datenbankzugriff</FONT></H1></CENTER><HR>
<%
Dim db
Dim rs
Dim strSQL
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Benutzer"
strSQL = "SELECT * FROM Benutzer"
Set rs = db.Execute(strSQL)
%>
<table BORDER="1" WIDTH="100%">
<tr>
<td bgcolor="#C0C0C0"><font face="times new roman, times">
<p align="center"><b><font color="#FF0000">Nachname</font></b>
</font></td>
<td bgcolor="#C0C0C0"><font face="times new roman, times">
<p align="center"><b><font color="#FF0000">Vorname</font>
</b</font></td>
<td bgcolor="#C0C0C0"><font face="times new roman, times">
<p align="center"><b><font color="#FF0000">Zugriffsebene</font>
</b</font></td>
</tr>
<%
Do While Not rs.EOF
%>
<tr>
<td align="center" ><font face="times new roman, times">
<% =rs("NName") %>
</font></td>
<td align="center"><font face="times new roman, times">
<% =rs("VName") %>
</font></td>
<td align="center" ><font face="times new roman, times">
<% =rs("zugriffsebene") %>
</font></td>
</tr>

<%
rs.MoveNext
Loop
db.Close
%>
</BODY>
</HTML>

Listing 16.8: database.asp


Kapitel 16 • Active Server Pages 377

Dieser Code stellt einen Kontakt zur weiter oben erstellten Datenbank user-
info.mdb mit dem Datenquellennamen Benutzer her. Als Erstes wird eine
ADODB-Verbindung hergestellt und die Datenbank geöffnet.
Um Einträge aus der Datenbank zu extrahieren, verwenden Sie die SQL-Anwei-
sung SELECT * From Benutzer. Entsprechend dieser Anweisung wählt ADO alle
Einträge aus, die es in der Tabelle Benutzer findet, welche Bestandteil der gerade
geöffneten Datenbank ist. Die Daten werden dann zur Erstellung einer Datensatz-
gruppe benutzt; hierbei handelt es sich um den Datenmechanismus, der die von
der Datenbank zurückgegebenen Datensätze manipuliert.
Nach der Zuweisung von Daten an die Datensatzgruppe erstellen Sie auf dynami-
schem Wege eine Tabelle und füllen diese mit den Einträgen für Vor- und Nachna-
men und für die Zugriffsebene, die der Datenbank entnommen werden. Beachten
Sie hierbei die Verwendung der Zeile <% Do While Not rs.EOF %> im Code:
Durch Verwendung dieses Schleifentyps und dem Vergleich des Zählers mit
rs.EOF können Sie die Tabelle mit den Daten füllen. Sie müssen dabei gar nicht
wissen, wie viele Einträge in der Tabelle vorhanden sind, denn die Schleife endet,
sobald die Datensatzgruppe deren Ende – angezeigt durch die Eigenschaft EOF –
erreicht. Weitere Informationen zu den Eigenschaften von Datensatzgruppen fin-
den Sie in der ADO-Dokumentation unter http://msdn.microsoft.com/library/
psdk/dasdk/adot9elu.htm.
Abbildung 16.8 zeigt die Ausgabe der Datei database.asp im Internet Explorer.
Beachten Sie, dass das Kennwortfeld nicht angezeigt wird, denn dies könnte tat-
sächlich ein Sicherheitsrisiko sein.
Das vorhergehende Beispiel beinhaltet nur einen ganz einfachen Datenzugriff mit
Hilfe von ASP. Sie könnten auch eine solche Datenbank erstellen und dann auf
deren Daten zugreifen, um innerhalb Ihres ASP-Codes zu entscheiden, ob und
inwieweit Benutzer auf eine Website zugreifen können.
378 Transaktionen

Abb. 16.8: Der Internet Explorer zeigt die Ergebnisse des Zugriffs auf die
Benutzerdatenbank aus dem ASP-Code heraus an

16.12 Transaktionen
Wenn Sie einen Onlineshop auf Ihrem Webserver konfiguriert haben, damit
Benutzer Ihre Produkte über das Internet bestellen können, dann benötigen Sie
eine zuverlässige Vorgehensweise bei der Erfüllung verschiedener Aufgaben: Die
Bestellung und die Zahlungsdaten (Bankeinzug/Kreditkarte) müssen an Sie über-
mittelt werden, der Zahlungsbetrag muss angezeigt werden, und der Kunde will
selbstverständlich auch eine Bestätigung seiner Bestellung sehen.
Sie benötigen also eine Möglichkeit, sicherzustellen, dass all diese Schritte beim
Kauf eines Produkts ausgeführt werden; gelingt einer dieser Schritt nicht, dann
findet das Geschäft nicht statt. All diese Anforderungen werden mit Hilfe von
Transaktionen realisiert.
ASP ermöglicht die Verarbeitung von Transaktionen mit Hilfe der Transakti-
onsumgebung Component Services (Komponentendienste). Diese Umgebung
erlaubt die Erstellung skalierbarer und zuverlässiger Hochleistungsanwendungen
für das Internet. Eigentlich handelt es sich hierbei um ein Programmiermodell,
dass auch eine Laufzeitumgebung zur Entwicklung und Verwaltung solcher
Anwendungstypen verfügbar macht.
Damit Ihre ASP-Seite eine Transaktion realisieren kann, müssen Sie sie mit der
folgenden Codezeile initiieren:
Kapitel 16 • Active Server Pages 379

<%@ TRANSACTION=Required %>

Auch dieser Abschnitt kann lediglich die Möglichkeit des Transaktionseinsatzes


in Ihren ASP-Skripts vorstellen. Transaktionen und COM-Programmierung sind
Themen, die leicht ein ganzes Buch füllen könnten. Deswegen wird an dieser
Stelle nicht weiter darauf eingegangen.

16.13 Skriptdebugging
Ich schreibe nun seit mehr als einem Jahr ASP-Skripts und entwickle bereits seit
drei Jahren Anwendungen in Visual Basic. Trotzdem ist es mir bis heute nicht
gelungen, eine Seite oder Anwendung auf Anhieb völlig fehlerfrei zu erstellen.
Was allerdings nicht weiter verwunderlich ist: Dies hat bisher wohl kaum ein Pro-
grammierer geschafft.
Die Bandbreite der Fehler reicht von so einfachen Dingen wie Rechtschreibfeh-
lern bis hin zu komplexen Sachverhalten – wenn etwa Syntaxfehler vorliegen. Mit
den Fehlerbereinigungsmöglichkeiten von ASP können Sie diese Fehler finden
und beheben.
Ob Sie es glauben oder nicht: Der einfachste (und auch von mir meisteingesetzte)
Debugger ist nichts anderes als der Browser selbst. Wenn Sie eine fehlerhafte
Seite im Internet Explorer öffnen, dann zeigt das Browserfenster eine Fehlermel-
dung an. Abbildung 16.9 zeigt ein Beispiel.
Wie Sie dem in Abbildung 16.9 angezeigten Fehlertyp entnehmen können, hat
das Skript versucht, auf eine Tabelle in der Datenbank zuzugreifen, die nicht vor-
handen ist (hinterhältig habe ich die Beispieldatenbank nämlich vor dem Aufruf
des Skripts in Benuetzer umbenannt). Es wird Ihnen sogar gezeigt, in welcher
Zeile der Fehler aufgetreten ist. Dieses Beispiel demonstriert, wie ein einfacher
Tippfehler ein Skript unbrauchbar machen kann. Ich empfehle Ihnen, Ihre Skripts
immer in einer Testumgebung zu überprüfen, bevor Sie sie auf den Produktions-
server überspielen.
Wenn Sie mehr Kontrolle über die Fehlerbereinigung Ihrer Skripts haben wollen,
können Sie auch den Microsoft Skript-Debugger einsetzen. Dieses Tool gestattet
Ihnen die zeilenweise Abarbeitung Ihres Codes, zeigt Variablen in einem Fenster
an, erlaubt das Einfügen von Pausen oder Haltepunkten in den Code und die
Überwachung von Prozeduren. Ein Nachteil des Programms besteht darin, dass
Sie Ihre Skripts innerhalb des Tools nicht editieren können.
380 Integrierte ASP-Objekte

Abb. 16.9: Der Internet Explorer zeigt einen ASP-Skriptfehler an

16.14 Integrierte ASP-Objekte


ASP verfügt bereits werksseitig über eine Reihe von Objekten, die es Ihnen
gestatten, auf Daten auf dem Server zuzugreifen, auf Browseranfragen zu reagie-
ren und Benutzerdaten zu speichern. Die Objekte sind in der folgenden Liste auf-
geführt. Weitergehende Informationen zu den einzelnen Objekten finden Sie in
der Onlinehilfe.
• Application. Stellt einen Mechanismus zur gemeinsamen Nutzung von Daten
durch alle Benutzer einer Anwendung bereit.
• Request. Ermittelt Informationen aus den HTTP-Headern und Formulardaten,
die mit Hilfe der Methoden GET und POST ermittelt wurden. Das Objekt Re-
quest kann auch auf Daten, die in Cookies gespeichert sind, sowie auf Binär-
daten in Dateien zugreifen, die auf den Server hochgeladen wurden.
• Response. Erlaubt Ihnen eine Steuerung der Daten, die Sie als Cookie oder im
HTML-Format an den Benutzer übermitteln.
Kapitel 16 • Active Server Pages 381

• Server. Gibt Ihnen Zugriff auf die Eigenschaften und Objekte auf dem Server.
Die Verwendung dieses Objekts wurde in diesem Kapitel bereits anhand der
Methode Server.CreateObject verdeutlicht.
• Session. Speichert Daten, die für die gesamte Sitzung Gültigkeit haben (z.B.
Benutzerdaten), zur seitenübergreifenden Verwendung.
• ObjectContext. Wird bei der Verarbeitung von Transaktionen verwendet, um
eine Transaktion anzunehmen oder abzubrechen.
• ASPError. Fängt ASP-Fehler ab, wodurch Sie in die Lage versetzt werden,
den Benutzern gegebenenfalls detailliertere und freundlicher formulierte Feh-
lermeldungen anzeigen zu lassen.
All diese Methoden werden in der IIS-Hilfe in den Abschnitten über ASP umfas-
send beschrieben. Da die meisten Administratoren nicht mit der Erstellung von
und der Arbeit mit solchen Komponenten befasst sind, überlasse ich die Details
den Webentwicklern.

16.15 Fazit
Die Informationen in diesem Kapitel sind als Einführung in die Arbeit mit Active
Server Pages gedacht und sollten keinesfalls als Lehrbuch zu diesem Thema
betrachtet werden.
Ich habe Ihnen ein paar Beispiele zur Verwendung von ASP gezeigt, die Ihnen
das Leben bei der Administration Ihrer Webserver ein wenig leichter machen sol-
len. Die Verwendung der in ASP bereits integrierten Objekte ermöglicht die
Automatisierung zahlreicher Administrationsaufgaben auf Ihrem Server.
Ferner habe ich Ihnen einige Prozeduren gezeigt, damit Sie sehen können, wie
ASP durch Einstellung von Timeouts für Skriptobjekte die Belastung des Servers
reduzieren kann. So können Ressourcen schneller wieder freigegeben werden.
Sie haben außerdem gesehen, wie man sich durch Verwendung von #include-
Dateien in ASP-Skripts eine Menge Zeit bei der Webentwicklung sparen kann,
indem man nämlich vorhandene ASP- und HTML-Dateien in anderen Webseiten
wiederverwendet.
Auch wenn ASP eigentlich nicht als Tool zur Serveradministration gedacht ist,
zeigen Ihnen diese Beispiele doch, wie man ASP zum eigenen Vorteil einsetzt.
Ich lege Ihnen in diesem Zusammenhang dringend die Lektüre der entsprechen-
den Seiten auf der MSDN-Website nahe; hier finden Sie eine Menge Informatio-
nen zu ASP und möglichen Einsatzgebieten.
Kapitel 17
Installierbare ASP-Komponenten

17.1 Die Komponente Ad Rotator 384


17.2 Die Komponente Browser Capabilities 387
17.3 Die Komponente Content Linking 391
17.4 Die Komponente Content Rotator 394
17.5 Die Komponente Counters 395
17.6 Die Komponente Datenbankzugriff 398
17.7 Die Komponente Dateizugriff 399
17.8 Die Komponente IIS-Protokollierung 399
17.9 Die Komponente MyInfo 407
17.10 Die Komponente Page Counter 407
17.11 Die Komponente Permission Checker 409
17.12 Die Komponente Status 410
17.13 Die Komponente Tools 412
17.14 Fazit 413
384 Die Komponente Ad Rotator

ASP beinhaltet eine Reihe installierbarer Komponenten, die Sie auf Ihren Websi-
tes verwenden können, um Interaktivität und dynamische Inhalte zu realisieren. In
diesem Kapitel sollen diese Komponenten beschrieben und jeweils ein Anwen-
dungsbeispiel aufgeführt werden.

17.1 Die Komponente Ad Rotator


Die Komponente Ad Rotator wird zur Erstellung eines Ad Rotator-Objekts auf
einer ASP-Seite benutzt, welches abwechselnd verschiedene Werbebanner
anzeigt – wie man es eben von einer Bannerrotation her gewohnt ist. Statt aber die
Bilder zeitbasiert zu wechseln, wird immer dann ein neues Banner aufgerufen,
wenn der Benutzer eine neue Seite aufruft oder die Schaltfläche AKTUALISIEREN
anklickt.

17.1.1 Übersicht
Der Ad Rotator verwendet zur Feststellung der für die Banner benötigten Pla-
nungs- und Dateidaten eine Ablaufplandatei im ASCII-Format. Ferner ist auch
eine Umleitungsdatei vorhanden, die überwacht, wie oft ein bestimmtes Banner
angeklickt wird, und außerdem die Umleitung zur korrekten URL vornimmt.
Listing 17.1 zeigt einen Ad Rotator-Code für Ihre Site. In diesem Fall wird die Ad
Rotator-Komponente ganz einfach oben auf dem Bildschirm angezeigt. Bei
jedem Aufruf und jeder Aktualisierung der Seite wird ein anderes Banner aufge-
rufen.
<%@ LANGUAGE="VBScript" %>
<HTML>
<HEAD><TITLE>Bannerrotation</TITLE></HEAD>
<BODY>
<CENTER><% Set ad = Server.CreateObject("MSWC.AdRotator") %>

<%= ad.GetAdvertisement("adrot.txt") %>

<HR>
<H1> Willkommen auf unserer Werbeseite!</H1></Center>
</BODY>
</HTML>

Listing 17.1: rotator.asp

Damit diese Seite ordnungsgemäß arbeitet, benötigen Sie eine korrekt konfigu-
rierte Umleitungsdatei. Diese Datei adrot.txt finden Sie in Listing 17.2.
REDIRECT redirect.asp
WIDTH 440
HEIGHT 60
Kapitel 17 • Installierbare ASP-Komponenten 385

BORDER 1
*
http://localhost/gkad.gif
http://www.gkcomput.com/
Bringt Ihnen die Welt nach Hause!
33
http://localhost/samsad.gif
http://www.mcp.com/sams
Sams Publishing
33
http://localhost/mut.gif
http://www.mut.de/
Markt und Technik Verlag
33

Listing 17.2: adrot.txt

Diese ASCII-Datei folgt einer bestimmten Syntax. Der erste Abschnitt weist –
falls vorhanden – die zu verwendende Umleitungsdatei aus und setzt dann Höhe,
Breite und Rahmenbreite der Bilder. Diese Abmessungen sollten unbedingt
beachtet werden, damit die für den Ad Rotator zu verwendenden Bilder auf Ihrem
Server auch die richtige Größe haben.
Ein Sternchen (*) trennt den folgenden Bereich ab, der die Pfade und Namen zu
den Bilddateien, die jeweilige Ziel-URL und den Ersatztext für Browser enthält,
die Grafiken nicht unterstützen oder bei denen der Benutzer die Grafikanzeige
deaktiviert hat. All diese Angaben stehen jeweils in einer separaten Zeile. Die
letzte Option jedes Eintrags ist ein ganzzahliger Prozentwert, der angibt, wie häu-
fig die jeweilige Anzeige im Verhältnis zu den anderen Anzeigen aufgerufen wer-
den soll.
Die letzte erwähnte Datei war die Umleitungsdatei. Diese Datei enthält den ASP-
Skriptcode, der einen Benutzer nach Anklicken einer Anzeige mit der korrekten
URL verbindet.
Listing 17.3 zeigt eine sehr einfache Umleitungsdatei für unser kleines Beispiel.
<%@ LANGUAGE="VBScript" %>
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<% Response.Redirect(Request.QueryString("url")) %>
</BODY>
</HTML>

Listing 17.3: redirect.asp


386 Die Komponente Ad Rotator

Beachten Sie, dass diese Datei die Methode Request.QueryString verwendet, um


die URL zu holen, die beim Anklicken der Anzeige durch den Benutzer überge-
ben wird. Die Variable url wird durch die korrekte URL einer Seite ersetzt, die
entweder die Homepage des werbenden Unternehmens oder eine Seite ist, auf der
es direkt um den beworbenen Artikel geht.

17.1.2 Eigenschaften
Nachdem Sie nun gesehen haben, wie der Ad Rotator funktioniert, wollen wir
noch einen Blick auf die Eigenschaften dieser Komponente werfen. Der Ad Rota-
tor verfügt über lediglich drei Eigenschaften.

Border
Diese Eigenschaft bestimmt, ob das Werbebanner von einem Rahmen umgeben
sein soll oder nicht. Das einzige Argument dieser Eigenschaft ist die Größe.
Syntax
Border=groesse

groesse ist eine ganzzahlige Variable, die festlegt, wie breit der Rahmen ist. Die
Eigenschaft wird im oberen Abschnitt der Ablaufplandatei gesetzt, in der die
Größe des Banners konfiguriert wird.

Clickable
Dies ist ein Boolescher Wert, der nur wahr (TRUE) oder falsch (FALSE) sein
kann. Wenn Sie den Wert TRUE wählen, dann zeigen Sie dem Ad Rotator damit
an, dass das Banner als Hyperlink verwendet werden kann, d.h. beim Anklicken
wird der Client auf die Ziel-URL umgeleitet.
Standardmäßig hat die Eigenschaft Clickable den Wert TRUE.
Syntax
Clickable=wert

wert ist entweder TRUE oder FALSE.


Wenn Sie nicht wollen, dass der Ad Rotator ein Banner als Hyperlink verwendet,
dann müssen Sie diese Eigenschaft gleich bei der Initialisierung des entsprechen-
den Objekts festlegen. Das sieht dann so aus:
<% Set ad = Server.CreateObject("MSWC.AdRotator")
ad.Clickable = FALSE
%>
Kapitel 17 • Installierbare ASP-Komponenten 387

TargetFrame
Wenn auf Ihren Seiten Frames verwendet werden, können Sie mit dieser Eigen-
schaft einen bestimmten Frame als Zielframe für Werbebanner festlegen.
Syntax
TargetFrame=frame

frame bezeichnet den Namen des Frames, in dem die Anzeige erscheinen soll. Sie
können für diese Variable auch HTML-spezifische Schlüsselwörter für Frames
verwenden, also etwa _top, _child, _self usw.
Beispiel
<% Set ad = Server.CreateObject("MSWC.AdRotator")
ad.TargetFrame = _TOP
%>

Standardmäßig hat diese Eigenschaft die Einstellung NO FRAME.

GetAdvertisement
Der Ad Rotator verfügt nur über eine Methode, nämlich GetAdvertisement. Diese
Methode dient dem Auslesen der Ablaufplandatei und der Rückgabe der zugehö-
rigen HTML-Daten. Beim Laden oder Aktualisieren einer Seite setzt sie das
nächste geplante Banner im Ad Rotator-Komponentenfenster ein.
Syntax
GetAdvertisement("ablaufplandatei")

ablaufplandatei ist der relative Pfad und Dateiname der Ablaufplandatei, die die
Angaben zu den URLs der verschiedenen Banner enthält.
Beispiel
<%= ad.GetAdvertisement("/ads/adrot.txt") %>

Die Datei adrot.txt befindet sich im Verzeichnis /ads, welches im Basisverzeich-


nis der Website vorhanden ist.

17.2 Die Komponente Browser Capabilities


Diese Komponente wird verwendet, um die verschiedenen Fähigkeiten des
Clientbrowser zu bestimmen. Diese Daten werden dann in einem BrowserType-
Objekt zurückgegeben, welches Sie dann in Ihrem Skriptcode benutzen können,
um herauszufinden, ob ein Browser eine bestimmte Funktion überhaupt
beherrscht, bevor Sie entsprechende Inhalte an ihn senden.
388 Die Komponente Browser Capabilities

Die Funktion wird mit Hilfe der Datei Browscap.ini realisiert. Der Header des
HTTP-Benutzeragenten, der bei jeder Verbindung eines Clients mit einem Server
an den Server gesandt wird, beinhaltet den Namen und die Versionsnummer des
Browsers. Der Server vergleicht diese ASCII-Zeichenkette mit den Einträgen in
der Datei Browscap.ini und schließt daraus auf die Fähigkeiten, über die der
Browser verfügt.
Die Komponente Browser Capabilities durchsucht die Datei Browscap.ini nach
dem im Browserheader übergebenen Eintrag. Findet sie einen entsprechenden
Eintrag, dann wendet sie die Eigenschaften an, die auf diesen Browsertyp zutref-
fen.
Die Datei Browscap.ini befindet sich normalerweise im Verzeichnis %systemver-
zeichnis%\System32\inetsrv (%systemverzeichnis% bezeichnet wie immer das
Installationsverzeichnis von Windows 2000). Listing 17.4 zeigt eine beispielhafte
Browscap.ini.
[IE 5.0]
browser=IE
Version=5.0
majorver=5
minorver=0
frames=True
tables=True
cookies=True
backgroundsounds=True
vbscript=True
javaapplets=True
javascript=True
ActiveXControls=True
Win16=False
beta=True
AK=False
SK=False
AOL=False
Update=False

[Mozilla/4.0 (compatible; MSIE 5.*; Windows 95*)]


parent=IE 5.0
platform=Win95
beta=True

[Mozilla/4.0 (compatible; MSIE 5.*; Windows 98*)]


parent=IE 5.0
platform=Win98
beta=True

[Mozilla/4.0 (compatible; MSIE 5.*; Windows NT*)]


Kapitel 17 • Installierbare ASP-Komponenten 389

parent=IE 5.0
platform=WinNT
beta=True

[Mozilla/4.0 (compatible; MSIE 5.*; Windows 2000*)]


parent=IE 5.0
platform=Win2000
beta=True

[Mozilla/4.0 (compatible; MSIE 5.*)]


parent=IE 5.0

[*]
browser=Default
Version=0.0
majorver=#0
minorver=#0
frames=False
tables=True
cookies=False
backgroundsounds=False
vbscript=False
javascript=False
javaapplets=False
activexcontrols=False
AK=False
SK=False
AOL=False
beta=False
Win16=False
Crawler=False
CDF=False
AuthenticodeUpdate=

Listing 17.4: Die Datei Browscap.ini

Um es nicht zu übertreiben, liste ich hier keine vollständige Datei auf – wenn Sie
wollen, können Sie sich den Inhalt der Datei im erwähnten Verzeichnis anzeigen
lassen. Wenn zu einem Browser, der eine Verbindung zu Ihrer Site hergestellt hat,
kein passender Eintrag in der Datei gefunden wird, dann befinden sich im letzten
Abschnitt der Datei Einstellungen für einen Standardbrowser, die in diesem Fall
angewandt werden.
Syntax
Set BrowserType = Server.CreateObject("MSWC.BrowserType")
390 Die Komponente Browser Capabilities

BrowserType ist der Name des Objekts, das durch den Aufruf von Server.Create-
Object erstellt wird.
Beispiel
(in dieser Form nicht vollständig lauffähig)
<%@ LANGUAGE="VBScript" %>
<HTML>
<HEAD><TITLE>Browser Capabilities</TITLE></HEAD>
<BODY>
<% Set bc = Server.CreateObject("MSWC.BrowserType") %>
<TABLE BORDER=1>
<TR><TD>Browser</TD><TD> <%= bc.browser %>
<TR><TD>Version</TD><TD> <%= bc.version %> </TD></TR>
<TR><TD>Frames</TD><TD>
<% if (bc.frames = TRUE) then %> TRUE
<% else %> NEIN
<% end if %> </td></TR>
<TR><TD>Tabellen</TD><TD>
<% if (bc.tables = TRUE) then %> JA
<% else %> NEIN
<% end if %> </TD></TR>
<TR><TD>Hintergrundsounds</TD><TD>
<% if (bc.BackgroundSounds = TRUE) then %> JA
<% else %> NEIN
<% end if %> </TD></TR>
<TR><TD>VBScript</TD><TD>
<% if (bc.vbscript = TRUE) then %> JA
<% else %> NEIN
<% end if %> </TD></TR>
<TR><TD>JScript</TD><TD>
<% if (bc.javascript = TRUE) then %> JA
<% else %> NEIN
<% end if %> </TD></TR>
</TABLE>
</BODY>
</HTML>

Dieser Beispielcode legt eine Browser Capabilities-Komponente an und erstellt


dann eine Tabelle mit einigen Daten, die der Browser laut Überprüfung durch die
Komponente darstellen kann.
Die Daten werden mit den Einträgen in der Datei Browscap.ini abgeglichen und
erhalten – sofern der Browser die entsprechende Funktion unterstützt – den Wert
TRUE, andernfalls FALSE.
Kapitel 17 • Installierbare ASP-Komponenten 391

17.3 Die Komponente Content Linking


IIS beinhaltet eine Komponente namens Content Linking, mit der Sie ein Next-
Link-Objekt zur Verwaltung von URLs und zur Navigation auf Ihrer Site erstellen
können. Sie können diese Komponente verwenden, um ein Inhaltsverzeichnis für
Ihre Site zu aktualisieren oder Verknüpfungen für die Schaltflächen ZURÜCK und
VORWÄRTS zuzuweisen, die der Seitennavigation dienen.
Die Komponente stellt diese Funktionalität über den Zugriff auf eine Content
Linking-Listendatei bereit, die auf dem Server gespeichert ist.
Syntax
Set NextLink = Server.CreateObject("MSWC.NextLink")

Beispiel
(in dieser Form nicht lauffähig)
<OL>
<%
Set NextLink = Server.CreateObject ("MSWC.NextLink")
count = NextLink.GetListCount ("/data/nextlink.txt")
I =1
%>

<UL>
<% Do While (I <= count) %>
<LI><A HREF=" <%= NextLink.GetNthURL ("/data/nextlink.txt", I) %> ">
<%= NextLink.GetNthDescription ("/data/nextlink.txt", I) %>
</A>
<%
I = (I + 1)
Loop
%>
</UL>

Mit dem obigen Codeausschnitt können Sie unter Verwendung der Datei next-
link.txt, die eine Beschreibung der verfügbaren Verknüpfungen enthält, ein klei-
nes Beispielinhaltsverzeichnis erstellen.
Die Komponente Content Linking verfügt über eine Liste von Methoden, die alle
für die Komponente notwendigen Funktionen ausführen. Diese Methoden sind
nachfolgend beschrieben.

GetListCount
Diese Methode bestimmt die Anzahl der URLs, die in der Content Linking-
Listendatei gespeichert sind.
392 Die Komponente Content Linking

Syntax
GetListCount(listenURL)

listenURL ist der Pfad und Name der Content Linking-Listendatei.


Diese Methode gibt einen ganzzahligen Wert zurück, den Sie wie oben gezeigt in
Ihrem Code verwenden können.

GetListIndex
Diese Methode ermittelt den Indexwert des aktuellen Eintrags. Die Listendatei
agiert wie ein Array, in dem die vorhandenen URLs durch eine Indexnummer
referenziert werden können.
Syntax
GetListIndex(listenURL)

listenURL ist der Pfad und Name der Content Linking-Listendatei.


Verwenden Sie diese Methode, um den Indexwert der aktuellen Seite in der
Content Linking-Listendatei festzustellen.

GetNextDescription
Verwenden Sie diese Methode, um die Beschreibung des nächsten URL in der
Liste zu holen.
Syntax
GetNextDescription(listenURL)

Auch hier ist listenURL der Pfad und Name der Content Linking-Listendatei.
Diese Methode gibt eine ASCII-Zeichenkette zurück, die die Beschreibung ent-
hält.

GetNextURL
Diese Methode ermittelt den nächsten URL in der Dateiliste. Wenn Sie diese
Methode in eine HREF-Anweisung integrieren, können Sie den Clientbrowser zur
nächsten Adresse in der Liste leiten.
Syntax
GetNextURL(listenURL)

Beispiel
<A HREF="<%= NextLink.GetNextURL ("/data/nextlink.txt") %>">Next Page </A>
Kapitel 17 • Installierbare ASP-Komponenten 393

GetNthDescription
Diese Methode findet die Beschreibung eines Elements, welches durch die im
Aufruf vorhandene Indexnummer spezifiziert wird.
Syntax
GetNthDescription(listenURL, i)

Der in der Klammer vorhandene Wert i ist die zu findende Indexnummer. Sie
können diesen Wert auch in einer Schleife zuweisen, um mehrere Beschreibungen
nacheinander zu holen.

GetNthURL
Diese Methode holt den Wert des n-ten URL in der Content Linking-Listendatei.
Syntax
GetNthURL(listenURL, i)

listenURL ist der Pfad und Name der Content Linking-Listendatei. i dient der
Selektierung der korrekten Indexnummer.

GetPreviousDescription
Verwenden Sie diese Methode, um die Beschreibung des vorherigen URL in der
Liste zu holen.
Syntax
GetPreviousDescription(listenURL)

Diese Methode gibt eine ASCII-Zeichenkette zurück, die die Beschreibung ent-
hält.

GetPreviousURL
Diese Methode ermittelt den vorherigen URL in der Dateiliste.
Syntax
GetPreviousURL(listenURL)

Diese Methode gibt eine ASCII-Zeichenkette zurück, die die URL enthält.
Alle diese Methoden können im Code verwendet werden, um Daten zu ermitteln,
die zur Erstellung des HTML-Codes notwendig sind, aus dem die Seiten beste-
hen.
394 Die Komponente Content Rotator

17.4 Die Komponente Content Rotator


Diese Komponente wird für eine HTML-Inhaltsrotation benutzt, die auf den in
einer entsprechenden Ablaufplandatei gespeicherten Daten basiert. Sie können
diese Komponente etwa verwenden, um ein »Zitat des Tages« in einem bestimm-
ten Frame zu platzieren, zu bestimmten Tageszeiten unterschiedliche Bilder anzu-
zeigen oder zeitbezogen zwischen verschiedenen HTML-Inhalten zu wechseln.
Wie andere installierbare Komponenten auch müssen Sie den Content Rotator
instanzieren, bevor Sie ihn verwenden können. Das geht mit der folgenden Code-
zeile:
<% Set crRot = Server.CreateObject("MSWC.ContentRotator") %>

17.4.1 Die Inhaltsplandatei


Wenn Sie Ihre Komponente erstellt haben, müssen Sie zunächst eine Inhaltsplan-
datei für die Inhaltsrotation erstellen, erst dann können Sie die Methoden des
Objekts verwenden. Die Ablaufplandatei hat die folgende Syntax:
%%[#gewichtung][//anmerkungen]
inhaltszeichenkette

Die beiden Prozentzeichen %% signalisieren den Anfang eines neuen Abschnitts in


der Datei. Das nächste Element ist optional und bezeichnet die »Gewichtung« des
Eintrags. Die Gewichtung ähnelt vom Konzept her dem bei der Ad Rotator-Kom-
ponente verwendeten Prozentwert; sie bestimmt die Häufigkeit, mit der der Ein-
trag angezeigt wird.
Sie können – abgetrennt durch die Kommentarzeichen // – auch optionale
Anmerkungen und Kommentare zum Eintrag einfügen.
Der Bereich inhaltszeichenkette beinhaltet die tatsächlichen HTML-Inhalte.
Die Daten können sich über eine oder mehrere Zeilen erstrecken und Bilder,
Texte und Klänge beinhalten. Alle Daten zwischen den ersten und den nachfol-
genden Prozentzeichen %% werden als eine Inhaltszeichenkette betrachtet. Eine
Beispieldatei mit drei Einträgen folgt:
%% // Der erste Bereich
Willkommen im ersten Bereich der Inhaltsplandatei

%% #2 //Zweiter Bereich
<H1>Text als HTML-Überschrift 1</H1>
<HR>

%% #2
<IMG SRC="bilder/grafik.gif">
Kapitel 17 • Installierbare ASP-Komponenten 395

Hier sehen Sie eine Inhaltsplandatei mit drei Einträgen. Der erste Eintrag zeigt
lediglich eine Textzeile an. Da keine Gewichtung definiert ist, wird standardmä-
ßig der Wert 1 verwendet. Der zweite Bereich verwendet zur Formatierung des
angezeigten HTML-Textes ein paar HTML-Tags und fügt außerdem eine horizon-
tale Linie ein. Der dritte Bereich beinhaltet einen Link zu einem Bild. Der zweite
und der dritte Bereich haben jeweils eine Gewichtung von 2, d.h. sie werden im
Schnitt doppelt so häufig aufgerufen wie der erste Bereich.

ChooseContent
Diese Methode der Komponente Content Rotator ermittelt eine HTML-Inhaltszei-
chenkette in der Inhaltsplandatei. Jedes Mal, wenn die Seite geladen oder aktuali-
siert wird, holt ChooseContent eine neue Zeichenkette, welche die Komponente
enthält.
Syntax
ChooseContent(inhaltsplandatei)

Ersetzen Sie inhaltsplandatei durch den Pfad und Namen Ihrer Inhaltsplandatei.
Beispiel
<%
Set tagestipp= Server.CreateObject("MSWC.ContentRotator")
tagestipp.ChooseContent("/contentrot/tagestipp.txt")
%>

In diesem Beispiel würde eine Komponente auf Ihrer Webseite erzeugt, die nach-
folgend einen Eintrag aus der Inhaltsplandatei tagestipp.txt entnehmen würde, die
sich im Verzeichnis /contentrot befindet.

GetAllContent
Diese Methode holt alle Inhalte aus der Inhaltsplandatei und zeigt sie auf der
Seite an. Jeder Bereich der Datei wird in diesem Fall durch eine horizontale Linie
von den übrigen getrennt. Der häufigste Einsatz dieser Methode ist sicher das
gleichzeitige Korrekturlesen aller in der Datei gespeicherten Inhalte.
Syntax
GetAllContent(inhaltsplandatei)

Ersetzen Sie inhaltsplandatei durch den Pfad und Namen Ihrer Inhaltsplandatei.

17.5 Die Komponente Counters


Die Komponente Counters wird zur Erstellung eines Objekts Counters verwen-
det. Sie können eine beliebige Anzahl von Countern erstellen; es wird jedoch
empfohlen, nur ein einziges Zählerobjekt einzurichten, da sich damit mehr als ein
Counter erstellen lässt.
396 Die Komponente Counters

Wenn Sie einen Counter erstellt haben, existiert dieser so lange, bis Sie ihn wieder
entfernen. Der Counter zählt nicht automatisch hoch – Sie müssen hierzu Metho-
den verwenden, die den Counterwert setzen oder erhöhen.
Das Objekt Counters hat keinen begrenzten Bereich – jede Seite einer Site kann
ein und denselben Counter aufrufen und ihn manipulieren. Der Zugriff auf den
Counter erfolgt über seinen Namen. Wenn Sie beispielsweise einen Counter
erstellt haben, der die Zugriffe auf eine Seite zählt, und diesen PageHits genannt
haben, dann können Sie ein Skript schreiben, das den Counter bei jedem Zugriff
auf die Seite um den Wert 1 erhöht. Sie können den Counter aber auch mit Hilfe
eines ASP-Skripts erhöhen, das auf einer anderen Seite platziert wurde – verwen-
den Sie einfach nur den gleichen Namen PageHits.
Alle Counter werden in der gleichen Textdatei counters.txt gespeichert. Diese
Datei und die Datei counters.dll sollten im gleichen Verzeichnis liegen.
In der Regel müssen Sie das Objekt Counters in der Datei global.asa hinzufügen,
damit es für alle Seiten der Site verfügbar ist. Die Syntax zur Erstellung des
Objekts Counters sieht so aus:
<OBJECT
RUNAT=Server
SCOPE=Application
ID=PageHits
PROGID="MSWC.Counters">
</OBJECT>

Dieses Beispiel erstellt ein Objekt mit der Kennung PageHits. Wie bereits
erwähnt, greifen Sie auf die Funktionalität des Counterobjekts über die entspre-
chenden Methoden zu, die im Folgenden erläutert werden.

Get
Mit dieser Methode holen Sie den aktuellen Wert des Counters. Wenn kein Coun-
ter vorhanden ist, erstellt die Methode einen neuen Counter mit dem angegebenen
Namen und setzt den Wert auf 0.
Syntax
Counters.Get(countername)

countername ist der Name des Counters, dessen Wert geholt werden soll.
Beispiel
Auf diese Seite erfolgten bereits <% =Counters.Get(PageHits) %> Zugriffe.

Dieses Beispiel holt den Wert des Counters PageHits und zeigt ihn im Text an.
Kapitel 17 • Installierbare ASP-Komponenten 397

Increment
Diese Methode erhöht den Wert des Counters um 1. Sie können die Methode in
der Prozedur Session_OnStart in der Datei global.asa einsetzen, um den Zähler
bei jedem Zugriff auf die Seite hochzuzählen. Ist kein Counter vorhanden, so wird
ein neuer Counter mit dem Wert 1 erstellt.
Syntax
Counters.Increment(countername)

countername ist der Name des Counters, dessen Wert hochgezählt wird.
Beispiel
<% Counters.Increment("PageHits") %>

Dieses Beispiel erhöht den Wert des Counters PageHits um 1.

Remove
Mit dieser Methode löschen Sie einen Counter aus dem Objekt Counters. Wenn
sie diese Methode aufrufen, wird auch der entsprechende Eintrag in der Datei
counters.txt entfernt.
Syntax
Counters.Remove(countername)

countername ist der Name des Counters, der aus dem Objekt Counters entfernt
und in der Datei counters.txt gelöscht werden soll.
Beispiel
<% Counters.Remove("PageHits") %>

Dieser Code entfernt den Counter PageHits aus dem Objekt Counters und der
Datei counters.txt.

Set
Dieses ist die einzige der vier verfügbaren Methoden, die zwei Parameter benö-
tigt. Der erste ist der Name des zu manipulierenden Counters, der zweite ein
ganzzahliger Wert, der den neuen Wert des Counters darstellt. Sie können mit der
Methode einen beliebigen Wert für Ihren Counter festlegen. Der Hauptzweck
besteht darin, den Counter mit dem korrekten Wert starten zu lassen, wenn Sie
eine Seite nach der Vornahme von Änderungen wieder auf den Server hochladen.
Syntax
Counters.Set(countername, wert)
398 Die Komponente Datenbankzugriff

countername ist der Name des zu setzenden Counters, wert ist der neue Wert des
Counters.
Beispiel
<% Counters.Set("PageHits, 5000") %>

Sie könnten in Ihrem Code eine derartige Zeile verwenden, um Ihren Counter auf
den Startwert 5000 zu setzen.
Es gibt andere Möglichkeiten, Counter auf Webseiten einzusetzen. FrontPage ver-
fügt über eine Zählerkomponente, die Sie mit FrontPage-Eigenschaften steuern
können, und im Internet sind viele Counter frei verfügbar. Mit dieser Komponente
können Sie jedoch den Counter selbst steuern und ihn erhöhen, wenn Sie es für
angebracht halten.

17.6 Die Komponente Datenbankzugriff


Die Komponente Datenbankzugriff verwendet das ADO-Modell, um auf Daten-
banken auf dem Server zuzugreifen. Das ADO-Modell ist eine komplexe
Methode für den Datenbankzugriff, die die Programmierung schwer zu handha-
bender Datenzugriff-APIs unnötig macht.
Die ADO-Zugriffsmethoden verwenden eine Reihe von Konstanten wie etwa
adOpenStatic oder adLockPessimistic. Diese Konstanten repräsentieren Cursorty-
pen, Datensatzgruppentypen und Sperrmechanismen. Weitere Hinweise hierzu
finden Sie in der ADO-Dokumentation unter http://www.microsoft.com/data/
ado/.
Um diese Komponente benutzen zu können, müssen Sie ADO in der Datei glo-
bal.asa referenzieren oder eine Datei hinzufügen, die die Namen der Konstanten
enthält. Microsoft empfiehlt die Erstellung einer Referenz der ADO-Bibliothek in
der Datei global.asa. Der nachfolgende Beispielcode zeigt, wie das geht:
<!--METADATA TYPE="typelib" FILE="C:\Programme\Gemeinsame Dateien\System\ado\
msado2x.dll" -->

Sie werden bemerken, dass ich in dieser Zeile die Programmbibliothek


msado2x.dll genannt habe. Das liegt daran, dass momentan drei verschiedene 2er-
Versionen von ADO in Umlauf sind, nämlich 2.0, 2.1 und 2.5. Sehen Sie im
erwähnten Verzeichnis nach, um sicherzustellen, dass Sie die Version benutzen,
die auf Ihrem Server vorhanden ist.
Kapitel 17 • Installierbare ASP-Komponenten 399

17.7 Die Komponente Dateizugriff


Diese Komponente ermöglicht Ihnen die Erstellung eines Objekts FileSystem-
Object auf Ihrem Server. Dieses Objekt gibt Ihnen Zugriff auf das Dateisystem.
Es sind Methoden, Eigenschaften und Sammlungen vorhanden, die über dieses
Objekt den benötigten Zugriff auf das Dateisystem gestatten.
Das Objekt FileSystemObject stellt die folgenden Objekte für die Arbeit mit dem
lokalen Dateisystem bereit:
• Drive. Erlaubt Ihnen den Zugriff auf Laufwerke. Dabei kann es sich um phy-
sikalische oder logische, lokale oder Netzlaufwerke handeln.
• Drives. Dies ist eine Auflistung, die eine Liste mit physikalischen und logi-
schen Laufwerken enthält, die am System angeschlossen sind. Wechsellauf-
werke werden auch dann in die Auflistung aufgenommen, wenn keine Medien
einliegen.
• File. Ein Objekt, mit dem Sie Dateien erstellen, löschen, kopieren und ver-
schieben können. Ferner ist es möglich, am System die Existenz einer Datei ab-
zufragen.
• Files. Eine Auflistung, die eine Liste aller in einem Ordner vorhandenen Da-
teien enthält.
• Folder. Ein Objekt, mit dem Sie Ordner im Dateisystem erstellen, löschen, ko-
pieren und verschieben können. Ferner ist es möglich, am System die Existenz
eines Ordners abzufragen.
• Folders. Eine Auflistung, die eine Liste aller in einem Ordner vorhandenen
Ordner enthält.
• TextStream. Mit diesem Objekt können Sie Textdateien auf dem Server er-
stellen, lesen und speichern.
Bei der Arbeit mit dem Objekt FileSystemObject muss mit Umsicht vorgegangen
werden, damit beim Zugriff auf Dateien auf Ihrem Server keine Sicherheitspro-
bleme entstehen.

17.8 Die Komponente IIS-Protokollierung


Sie können Ihren Anwendungen gestatten, mit Hilfe der Komponente IIS-Proto-
kollierung eine IIS-Protokolldatei auszulesen und ein IISLog-Objekt zu erstellen.
Mit der Komponente können Sie Skripts und Anwendungen erstellen, die Ihre
IIS-Protokolle lesen und Daten aus diesen Protokollen extrahieren können. Damit
können Sie eine Menge Zeit sparen, da Sie die Protokolldateien nicht manuell
durchsuchen müssen.
400 Die Komponente IIS-Protokollierung

Hinweis
Ein Client, der mit einem Server, auf dem die Komponente IIS-Protokol-
lierung ausgeführt werden soll, eine Verbindung herstellt, muss als Admi-
nistrator oder als Server-Operator authentifiziert sein. Andere Benutzer
oder solche, die sich anonym angemeldet haben und auf die Seite, auf
der diese Komponente vorhanden ist, und damit auf die Komponente
selbst zugreifen, bringen sie zum Absturz.

Syntax
Set logOne = Server.CreateObject(MSWC.IISLog)

logOne ist der Name, der das IISLog-Objekt bezeichnet.


Wenn Sie ein IISLog-Objekt erstellt haben, können Sie die entsprechenden
Methoden aufrufen und die Eigenschaften einstellen, die im Folgenden beschrie-
ben werden.

AtEndOfLog
Diese Methode zeigt an, ob alle Einträge gelesen wurden. Sind keine weiteren
Objekte vorhanden, dann gibt AtEndOfLog den Booleschen Wert TRUE zurück.
Syntax
AtEndOfLog()

CloseLogFiles
Diese Methode schließt alle geöffneten Protokolldateien.
Syntax
CloseLogFiles(modus)

modus bezeichnet einen von drei Parametern, die bestimmen, welche Dateien
geschlossen werden sollen. Die Parameter sind:
• 1. Verwendet die Konstante ForReading und schließt Protokolldateien, die für
den Lesezugriff geöffnet wurden.
• 2. Verwendet die Konstante ForWriting und schließt Protokolldateien, die für
den Schreibzugriff geöffnet wurden.
• 32. Verwendet die Konstante AllOpenFiles und schließt alle Protokolldateien
unabhängig davon, ob diese für den Lese- oder den Schreibzugriff geöffnet
wurden.

OpenLogFile
Diese Methode öffnet eine Protokolldatei für den Lese- oder Schreibzugriff.
Kapitel 17 • Installierbare ASP-Komponenten 401

Syntax
OpenLogFile(dateiname, [modus], [DienstName], [DienstInstanz], [AusgabeLogDa-
teiFormat])

Parameter
• dateiname. Der Name der zu öffnenden Protokolldatei.

• modus. Bestimmt, wie die Datei geöffnet wird. 1 bedeutet Lesezugriff,


2 Schreibzugriff. Die Standardeinstellung ist 1.

• DienstName. Dieser Parameter ist optional und wird verwendet, um anzuzeigen,


dass das Protokollmodul nur die Einträge zurückgeben soll, die einen bestimm-
ten Dienst betreffen.
• DienstInstanz. Auch dieser Parameter ist optional und wird verwendet, um an-
zuzeigen, dass das Protokollmodul nur die Einträge zurückgeben soll, die eine
bestimmte Instanz eines Dienstes betreffen.
• AusgabeLogDateiFormat. Ein weiterer optionaler Parameter. Er gibt das Proto-
kollformat an, falls das Protokoll für den Schreibzugriff geöffnet wurde.

ReadFilter
Diese Methode spezifiziert ein Start- und ein Enddatum als Auslesekriterium für
das Protokoll.
Syntax
ReadFilter([startzeit], [endzeit])

Parameter
• startzeit. Verwenden Sie diesen optionalen Parameter, um das früheste Da-
tum mit Uhrzeit anzugeben, an dem Protokolleinträge gelesen werden sollen.
• endzeit. Verwenden Sie diesen optionalen Parameter, um das späteste Datum
mit Uhrzeit anzugeben, bis zu dem Protokolleinträge gelesen werden sollen.
Beide Parameter sind optional und Sie können einen oder beide setzen, um die
gewünschten Daten auszulesen.

ReadLogRecord
Mit dieser Methode lesen Sie den nächsten verfügbaren Protokolleintrag aus.
Syntax
ReadLogRecord()

Diese Methode hat keine Parameter.


402 Die Komponente IIS-Protokollierung

WriteLogRecord
Mit dieser Methode schreiben Sie Einträge in eine vorhandene Protokolldatei.
Syntax
WriteLogRecord(IISLog)

Der Parameter IISLog ist ein Objekt, das anzeigt, wo die Protokolldateien gelesen
werden.

BytesReceived
Diese Eigenschaft gibt die Anzahl der Bytes zurück, die während des Vorgangs
empfangen wurden. Die Angabe bezieht sich auf die aktuelle Protokolldatei.
Syntax
bytes = BytesReceived

Die Variable bytes kann einen beliebigen Namen haben. Sie enthält die Anzahl
der empfangenen Bytes.

BytesSent
Diese Eigenschaft gibt die Anzahl der Bytes zurück, die während des Vorgangs
gesendet wurden. Die Angabe bezieht sich auf den aktuellen Protokolldateiein-
trag.
Syntax
zaehler=BytesSent

Auch die Variable zaehler kann einen beliebigen Namen haben. Sie enthält die
Anzahl der gesendeten Bytes.

ClientIP
Diese Eigenschaft gibt die IP-Adresse des Clients zurück. Die Angabe bezieht
sich auf den aktuellen Protokolldateieintrag.
Syntax
var=ClientIP

Die Variable var enthält die übergebene IP-Adresse des Clients.

Cookie
Mit dieser Eigenschaft können Sie den Cookie eines Clients untersuchen.
Syntax
var=cookie
Kapitel 17 • Installierbare ASP-Komponenten 403

Die Variable var enthält den übergebenen Cookie.

CustomFields
Diese Eigenschaft wird zur Ermittlung spezieller oder zusätzlicher HTTP-Header
verwendet, die beim protokollierten Vorgang vorhanden waren. Diese Header
werden als zweidimensionales Array zurückgegeben, das aus einem passenden
Schlüssel mit einem Wert besteht.
Syntax
var=CustomFields

Die Variable var ist ein zweidimensionales Array, welches das zur Beschreibung
des Headers verwendete Schlüssel/Wert-Pärchen enthält.

DateTime
Mit dieser Eigenschaft ermitteln Sie Datum und Uhrzeit der Erstellung des aktu-
ellen Protokolleintragobjekts.
Syntax
var=DateTime

Die Variable var enthält die von der Protokolldatei zurückgegebenen Datums-
und Uhrzeitangaben.

Method
Mit dieser Eigenschaft ermitteln oder extrahieren Sie eine HTTP-Operation aus
dem Protokolleintrag.
Syntax
var=Method

Die Variable var enthält die Methode, die durch die HTTP-Operation verwendet
wurde. Hierbei handelt es sich um Operationen wie GET oder PUT.

ProtocolStatus
Diese Eigenschaft gibt den Statuscode des HTTP-Protokolls zurück.
Syntax
var=ProtocolStatus

Die Variable var enthält den zurückgegebenen Statuscode. Statuscodes zeigen


erfolgreiche oder fehlgeschlagene Ereignisse an, die durch das Protokoll aufge-
zeichnet wurden.
404 Die Komponente IIS-Protokollierung

ProtocolVersion
Mit dieser Eigenschaft können Sie die Protokollversion des aktuellen Protokol-
leintrags ermitteln.
Syntax
var=ProtocolVersion

Die Variable var enthält den übergebenen Wert, der die Version des Protokolls
beinhaltet, das laut Aufzeichnung für den Zugriff auf die Ressource verwendet
wurde. Hierbei handelt es sich um eine Zeichenkette.

Referer
Wenn die Protokolldatei einen Zugriff über einen Hyperlink aufgezeichnet hat,
dann gibt diese Eigenschaft den URL des Links zurück.
Syntax
var=Referer

Die Variable var enthält den URL, über den der Client auf die Website gelangt.

ServerIP
Diese Eigenschaft gibt die IP-Adresse des Servers zurück, der den aufgezeichne-
ten Vorgang ausgeführt hat.
Syntax
var=ServerIP

Die Variable var enthält die IP-Adresse des Servers, die für den Zeitpunkt des
Vorgangs aufgezeichnet ist.

ServerName
Mit dieser Eigenschaft lesen Sie den Namen des Servers aus. ServerName ent-
spricht der Eigenschaft ServerIP, nur dass hier anstelle der IP-Adresse der Name
des Servers zurückgegeben wird.
Syntax
var=ServerName

Die Variable var enthält den Namen des Servers als Zeichenkette.

ServerPort
Mit dieser Eigenschaft ermitteln Sie die während des Vorgangs verwendete
Anschlussnummer.
Kapitel 17 • Installierbare ASP-Komponenten 405

Syntax
var=ServerPort

Die Variable var enthält die im Protokoll aufgezeichnete Nummer des Anschlus-
ses, auf den zum Zeitpunkt des Vorgangs zugegriffen wurde.

ServiceName
Mit dieser Eigenschaft extrahieren Sie den Namen des Dienstes, auf den zum
Zeitpunkt des Vorgangs zugegriffen wurde. Zu diesem Namen gehört auch die
Serverinstanz.
Syntax
var=ServiceName

Die Variable var enthält den Namen des Dienstes und der Serverinstanz (z.B.
MSFTPSVC1 zur Anzeige des FTP-Dienstes, der den ersten FTP-Server verwen-
det).

TimeTaken
Diese Eigenschaft gibt die im Protokoll aufgezeichnete Gesamtdauer zurück, die
der Prozess bis zum Abschluss benötigt hat.
Syntax
var=TimeTaken

Die Variable var enthält die Gesamtdauer des Prozesses.

URIQuery
Wenn ein Client beim Server einen URL mit Parametern angefordert hat, wie sie
beispielsweise bei den Formularmethoden POST oder GET verwendet werden,
dann gibt diese Eigenschaft die entsprechenden Informationen zurück.
Syntax
var=URIQuery

Die Variable var enthält die im Protokoll aufgezeichneten Parameter, die als Teil
des URL übergeben wurden.

URIStem
Über diese Eigenschaft können Sie den im Protokoll für den Anforderungszeit-
punkt aufgezeichneten URL holen.
Syntax
var=URIStem
406 Die Komponente IIS-Protokollierung

Die Variable var enthält den Ziel-URL abzüglich eventuell übergebener Parame-
ter.

UserAgent
Mit dieser Eigenschaft geben Sie den Benutzeragenten des Browsers als Zeichen-
kette zurück.
Syntax
var=UserAgent

Die Variable var enthält den im Protokoll für den Anforderungszeitpunkt aufge-
zeichneten Zeichenkettenwert des Benutzeragenten.

UserName
Wenn Ihre Clients automatisch mit einem Benutzernamen und einem Kennwort
authentifiziert werden, dann gibt diese Eigenschaft den für den Zeitpunkt des Vor-
gangs aufgezeichneten Benutzernamen zurück. Dies gilt nur für Verbindungen
ohne anonymen Zugriff.
Syntax
var=UserName

Die Variable var enthält den Namen des am Server angemeldeten Benutzers.

Win32Status
Mit dieser Eigenschaft wird der Win32-Statuscode zurückgegeben, der zum Zeit-
punkt des Vorgangs ausgestellt wurde.
Syntax
var=Win32Status

Die Variable var enthält den Win32-Statuscode.


Wie Sie sehen, sind schon so einige Methoden und Eigenschaften vorhanden, mit
denen Sie in den Protokolldateien die benötigten Daten abfragen können.

Warnung
Nur die vier Protokolldateiformate, die auch Bestandteil von IIS sind,
können gelesen werden. Wenn Sie das Protokollierungsprogramm eines
Drittanbieters verwenden, arbeitet dieses Objekt möglicherweise nicht
wie hier beschrieben. Lesen Sie diesbezüglich die Dokumentation des
Drittanbieterprodukts aufmerksam durch.
Kapitel 17 • Installierbare ASP-Komponenten 407

17.9 Die Komponente MyInfo


Die Komponente MyInfo gestattet Ihnen die Erstellung von Eigenschaften eines
MyInfo-Objekts, welches Informationen über Sie und Ihre Website enthält. Diese
Komponente wird normalerweise mit den Windows 9x-Versionen des PWS (Per-
sonal Web Server) verwendet.
Die MyInfo-Komponente für PWS enthält eine Reihe von Eigenschaften, die nicht
für IIS gültig sind, insofern werde ich an dieser Stelle nicht weiter darauf einge-
hen. In der IIS-Onlinehilfe finden Sie detaillierte Informationen zu diesen Eigen-
schaften.
Der wesentlichste Aspekt der Komponente MyInfo für IIS ist die Tatsache, dass
Sie Ihre eigenen Eigenschaften erstellen und diesen dann Werte zuweisen können,
die für Ihre persönliche Umgebung Gültigkeit haben. Um die Komponente ver-
wenden zu können, müssen Sie zunächst eine Instanz davon erstellen:
Set MeinEigenesInfoObjekt = Server.CreateObject("MSWC.MyInfo")

Sie können die Komponente auch in einer global.asa-Datei erstellen; verwenden


Sie hierzu wie im folgenden Beispiel die <OBJECT>-Tags:
<OBJECT
RUNAT=Server
SCOPE=Session
ID=MeinEigenesInfoObjekt
PROGID="MSWC.MyInfo">
</OBJECT>

Wenn Sie ein Objekt erstellt haben, können Sie beliebige Eigenschaften dafür
hinzufügen und auf diese zugreifen, um die Daten zu erstellen, die das Objekt ent-
halten soll.
<% MeinEigenesInfoObjekt.LieblingsFarbe = "Blau"
MeinEigenesInfoObjekt.Auto = "7er BMW"
%>

Dieses Beispiel erstellt zwei neue Eigenschaften für das Objekt MeinEigenesInfo-
Objekt, nämlich LieblingsFarbe und Auto. Dann werden den beiden Eigenschaf-
ten Werte zugewiesen. Diese Eigenschaften gelten für die gesamte Website und
können jederzeit innerhalb eines Skripts aufgerufen werden, da das Objekt zuvor
in der Datei global.asa erstellt worden ist.

17.10 Die Komponente Page Counter


Diese Komponente wurde integriert, um festzuhalten, wie oft eine bestimmte
Seite geöffnet wurde. Die Komponente ist anders als die Komponente Counters
nicht für die ganze Website gültig, sondern immer nur für eine Seite.
408 Die Komponente Page Counter

Sie können die Komponente Page Counter verwenden, um zu bestimmen, welche


Seiten am häufigsten und welche überhaupt nicht aufgerufen werden. Auf diese
Weise können Sie Ihre Website optimieren, indem Sie Ihr Hauptaugenmerk auf
stark frequentierte Seiten legen und solche, für die sich keiner interessiert, vom
Server entfernen oder sie neu (und dann ansprechender) erstellen.
Wenn Sie eine Page Counter-Komponente auf Ihrer Webseite erstellt haben, wird
diese die ermittelten Daten regelmäßig in einer Textdatei auf der Festplatte able-
gen, so dass diese im Falle eines Serverausfalls nicht verloren gehen.
Die Page Counter-Komponente verwendet ein internes »zentrales Verwaltungsob-
jekt«, um die Anzahl der Zugriffe aufzuzeichnen. Bei der Erstellung der Page
Counter-Komponente wird die bisherige Zugriffszahl beim zentralen Verwal-
tungsobjekt erfragt. Danach können Sie die Methoden der Komponente benutzen,
um das Objekt zu manipulieren; wie das geht, wird weiter unten in diesem
Abschnitt erläutert.
Um ein Page Counter-Komponentenobjekt auf einer Webseite zu erstellen, ver-
wenden Sie den folgenden Beispielcode:
<% Set ctr = Server.CreateObject("MSWC.PageCounter") %>

Die Variable ctr ist der Name, über den Sie das Objekt aus dem Skriptcode heraus
adressieren können.
Ferner wird für das Objekt ein Registrierungsschlüssel erstellt, der unter HKEY_
CLASSES_ROOT/MSWC.PageCounter zu finden ist. Dieser Schlüssel enthält
zwei Werte:
• File_Location. Eine Zeichenkette, die Pfad und Dateiname der Zählerdatei be-
inhaltet. Standardmäßig liegt diese Datei im Verzeichnis \WINNT und heißt
hitcnt.cnt.
• Save_Count. Ein DWORD-Wert, der zur Anzeige der Anzahl von Zugriffen
dient, die vor der letzten Speicherung der Zugriffszahl in die Zählerdatei gültig
war.
Mit der Page Counter-Komponente sind drei Methoden verknüpfbar:
• Hits. Diese Methode zeigt an, wie oft die Seite oder URL bereits angefordert
wurde.
• PageHit. Diese Methode erhöht die Trefferanzahl um den Wert 1.
• Reset. Diese Methode setzt die Trefferanzahl für eine bestimmte Seite auf 0
zurück.
Kapitel 17 • Installierbare ASP-Komponenten 409

17.11 Die Komponente Permission Checker


Wenn Sie auf Ihrer Website Authentifizierungsfunktionen einsetzen, um sensible
Bereiche vor unbefugtem Zugriff zu schützen, dann können Sie die Komponente
Permission Checker in Ihrem Code verwenden. Die Komponente Permission Che-
cker ändert die Verfügbarkeit einer Webseite basierend auf den Zugriffsberechti-
gungen des Benutzers.
Mit einem Skript können Sie beispielsweise die Zugriffsebene eines Benutzers
überprüfen und darauf basierend nur jene URLs anzeigen, auf die Benutzer dieser
Zugriffsebene zugreifen dürfen. Auf diese Weise sehen Benutzer nicht einmal
Verweise auf Seiten, auf denen sie nichts zu suchen haben.
Um die Komponente verwenden zu können, müssen Sie eine Instanz davon auf
Ihrem Server erzeugen. Verwenden Sie den folgenden Code:
Set prmCheck = Server.CreateObject("MSWC.PermissionChecker")

Sie können dann den Namen prmCheck (oder einen beliebigen anderen Namen)
verwenden, um auf das Objekt zuzugreifen. Die Komponente Permission Checker
hat nur eine Methode, nämlich HasAccess. Sie können diese Methode verwenden,
um festzustellen, ob ein Benutzer über die notwendigen Rechte verfügt, um auf
die angeforderte(n) Datei(en) zuzugreifen.
Das folgende Beispiel zeigt, wie Sie die Komponente verwenden können, um den
Zugriff auf eine Datei zu steuern:
<% Set prmCheck = Server.CreateObject("MSWC.PermissionChecker") %>

Dateizugriff = <% =prmCheck.HasAccess("C:\InetPub\wwwroot\sicheredatei.htm") %>

Sie können auch auf Zugriffsberechtigungen für physikalische oder virtuelle


Dateien und Pfade prüfen.
Damit die Komponente funktionieren kann, müssen Sie sich klarmachen, wie IIS
Benutzer authentifiziert, sofern ein anonymer Zugriff möglich ist. Bei der ersten
Aktivierung authentifiziert IIS alle Benutzer, die einen anonymen Zugriff verwen-
den. Dadurch wird verhindert, dass die Authentifizierungsmechanismen die
Benutzerkonten überprüfen.
Wenn Sie den Permission Checker verwenden, sollten Sie deswegen den anony-
men Zugriff deaktivieren und die Authentifizierungsmethoden Standardauthenti-
fizierung oder Integrierte Windows-Authentifizierung verwenden. Auf diese Weise
überprüft IIS das betreffende Benutzerkonto und gewährt oder verweigert den
Zugriff entsprechend.
Wenn Sie auf ein und derselben Site sowohl einen anonymen als auch einen kenn-
wortgeschützten Zugriff ermöglichen wollen oder müssen, dann sollten Sie den
anonymen Zugriff auf sensible Seiten in jedem Fall unterbinden. In diesem Fall
410 Die Komponente Status

wird IIS die gewählte Authentifizierungsmethode verwenden, d.h. der Permission


Checker arbeitet auf den derart eingeschränkten Seiten.
Um einen anonymen Zugriff auf eine Seite zu verhindern, können Sie ACLs ein-
setzen. Alternativ können Sie auch mit ASP bestimmen, ob ein Benutzer die Seite
ohne vorherige Eingabe einer Kombination aus Benutzernamen und Kennwort
aufrufen will. Verwenden Sie den folgenden Beispielcode:
<% If Request("USER_LOGON") = "" THEN
Response.Status = "401 Unauthorized"
End If
%>

Dieser kleine Codeausschnitt zeigt die Fehlermeldung 401: Nicht autorisiert an,
wenn ein Benutzer ohne Benutzernamen versucht, auf die Seite zuzugreifen. Auf-
grund dessen wird IIS versuchen, die Autorisierung mit Hilfe einer der kennwort-
basierten Authentifizierungsmethoden vorzunehmen.

Tipp
Ich empfehle Ihnen die Verwendung der Standardauthentifizierung,
damit sichergestellt ist, dass auch andere Browser als der Internet Explo-
rer bedient werden. Netscape und andere Browser unterstützen die
Authentifizierungsmethode NTLM (Windows NT LAN Manager) nicht.
Außerdem funktioniert NTLM manchmal nicht, wenn eine Proxyverbin-
dung verwendet wird.

17.12 Die Komponente Status


Mit dieser Komponente erstellen Sie ein Status-Objekt für Ihre Site. Sie können
dann mit den Eigenschaften des Objekts die Serverstatusdaten überprüfen.
Syntax
Set Status = Server.CreateObject("MSWC.Status")

Status ist der Name, mit dem die Komponente im Code adressiert wird. Sie kön-
nen dem Objekt einen beliebigen Namen geben.
In ihrer momentanen Fassung kann die Komponente nur den Status des PWS für
Macintosh zurückgeben. Wenn Sie versuchen, die Komponente auf einer Win-
dows-Plattform zu verwenden, werden alle Statuseigenschaften als unavailable
(nicht verfügbar) zurückgegeben. Um den Serverstatus für ASP-Skripts zu über-
geben, die auf einem Macintosh-Computer entwickelt wurden, können Sie die
folgenden Eigenschaften verwenden:
• VisitorsSinceStart. Die Anzahl der Besucher, die seit dem Serverstart Anfra-
gen gestellt haben. Da die Zählung auf der Basis der IP-Adresse erfolgt, wird
jeder Besucher nur einmal gezählt.
Kapitel 17 • Installierbare ASP-Komponenten 411

• RequestsSinceStart. Die Anzahl der Anforderungen seit dem Serverstart.

• ActiveHTTPSessions. Die aktuelle Anzahl an Verbindungen.

• HighHTTPSessions. Die höchste Anzahl gleichzeitiger Verbindungen seit


Serverstart.
• ServerVersion. Die Versionsnummer des Personal Web Server.

• StartTime. Der Zeitpunkt des letzten Serverstarts.

• StartDate. Das Datum des letzten Serverstarts.

• FreeMem. Der Menge an freiem Speicher auf dem Computer.

• FreeLowMem. Die niedrigste Menge an freiem Speicher auf dem Computer seit
dem Serverstart.
• VisitorsToday. Die Anzahl der Besucher seit Mitternacht lokaler Zeit. Da die
Zählung auf der Basis der IP-Adresse erfolgt, wird jeder Besucher nur einmal
gezählt.
• RequestsToday. Die Anzahl der Anforderungen seit Mitternacht lokaler Zeit.

• BusyConnections. Die Anzahl der Verbindungen, die zurückgewiesen wurden,


da die Verbindungsobergrenze des Servers erreicht war.
• RefusedConnections. Die Anzahl der Verbindungen, die aufgrund ungültiger
Authentifizierungsdaten zurückgewiesen wurden.
• TimedoutConnections. Die Anzahl der Verbindungen, die geschlossen wurden,
weil keine Anforderungen empfangen wurden.
• Ktransferred. Die Anzahl der Daten in Kbyte, die seit dem Serverstart übertra-
gen wurden.
• TotalRequests. Die Gesamtanzahl an Anforderungen, die empfangen wurden,
seit der Counter zum letzten Mal mit Hilfe des Administrationstools zurückge-
setzt wurde.
• CurrentThreads. Die Summe aus aktiven HTTP-Verbindungen und der Anzahl
der Threads im Pool, die zur Zeit keine Verbindungen bearbeiten.
• AvailableThreads. Die Anzahl der Threads im Pool, die zur Zeit keine Verbin-
dungen bearbeiten.
• RecentVisitors. Dies ist eigentlich eine HTML-Tabelle, die die 32 letzten Be-
sucher einschließlich der Domänennamen oder IP-Adressen und der Anzahl
der von Ihnen gestellten Anforderungen enthält.
• PopularPages. Eine weitere HTML-Tabelle für die 32 zuletzt besuchten Seiten
einschließlich der URLs und der Anzahl der Anforderungen.
412 Die Komponente Tools

17.13 Die Komponente Tools


Diese Komponente erstellt ein Tools-Objekt, welches fünf Methoden beinhaltet,
die Sie verwenden können, um wirklich ausgefuchste Funktionen zu entwickeln
und auf dem Webserver bereitzustellen.
Das Objekt wird ähnlich wie die bereits besprochenen Objekte erstellt:
Set Tool = Server.CreateObject("MSWC.Tools")

Die folgenden Abschnitte beschreiben die Methoden dieses Objekts und deren
Einsatzgebiete.

FileExists
Diese Methode überprüft, ob eine Datei vorhanden ist. Falls ja, wird der Wert -1
zurückgegeben, andernfalls der Wert 0. Sie können diese Methode beispielsweise
in einer If…Then-Abfrage benutzen:
<% If Tool.FileExists("/images/logo.gif") Then %>
<img src="C:\InetPub\wwwroot\images\logo.gif">
<% End If %>

Dieser Codeausschnitt überprüft zuerst, ob die Datei logo.gif im Unterverzeichnis


\images vorhanden ist, und fügt sie nur in diesem Fall in die Seite ein.

Owner
Mit dieser Methode stellen Sie fest, ob der aktuelle Benutzer der Siteadministra-
tor ist. Wenn Benutzername und Kennwort übereinstimmen, dann wird der Wert
-1 zurückgegeben, andernfalls der Wert 0. Die Methode funktioniert nur mit PWS
für Macintosh.

PluginExists
Diese Methode gibt den Wert -1 zurück, wenn ein bestimmtes Macintosh-Server-
Plug-In auf dem System vorhanden ist. Sie spezifizieren den Namen des Plug-Ins
als Parameter der Methode wie im folgenden Beispiel:
Tool.PluginExists(PlugInName)

Auf Windows-Computern gibt die Methode immer den Wert 0 zurück.

ProcessForm
Diese Methode verarbeitet von einem Benutzer übermittelte Formularinhalte.
Dabei verwendet sie drei Parameter:
• OutputFileURL. Eine Zeichenkette, die den URL der Datei beinhaltet, an den
die Daten gesendet wurden.
Kapitel 17 • Installierbare ASP-Komponenten 413

• TemplateURL. Der URL, der die Vorlage für die Verarbeitung der Daten ent-
hält.
• InsertionPoint. Dieser Parameter ist optional und zeigt an, wo die Daten in der
Ausgabedatei eingefügt werden sollen. Zur Zeit ist der Parameter noch nicht
implementiert.

Random
Diese letzte Methode gibt eine ganzzahlige Zufallszahl zwischen -32.768…+32.767
aus.
Sie können zwei Funktionen mit Random verwenden, um die Ausgabe einzu-
schränken oder zu manipulieren. Beispielsweise können Sie die Funktion Abs
benutzen, um nur positive Werte zu erhalten. Die Funktion Mod ermöglicht die
Ausgabe einer Zahl unterhalb eines gewünschten Maximalwerts. Im Folgenden
ein paar Beispiele.
<% =Tools.Random %> ' Gibt eine ganzzahlige Zufallszahl im
' oben genannten Bereich aus.
<% =(Abs(Tools.Random)) %> ' Gibt eine positive Zufallszahl aus.
<% =(Abs(Tools.Random)) Mod 50 %> 'Gibt eine positive Zufallszahl zwischen 0
'und 49 aus.

17.14 Fazit
Dieses Kapitel hat die Komponenten beschrieben, die IIS für die Verwendung in
ASP-Skripts bereitstellt. Auch wenn noch nicht alle davon für die Windows-Platt-
form gedacht sind, so besteht doch durchaus die Möglichkeit, dass Microsoft sie
in zukünftigen Versionen umsetzt.
Einige dieser Komponenten – etwa die Protokollierungsfunktionen – können
einem Administrator das Leben erleichtern, denn sie stellen Tools bereit, um Pro-
tokolldateien zu durchsuchen und basierend auf den in diesen Dateien vorhande-
nen Daten Berichte zu erstellen. Dadurch werden der Export der Daten in eine
Textdatei und das nachfolgende Auffinden relevanter Daten mit einer entspre-
chenden Suchanwendung unnötig gemacht.
Andere Komponenten wie Content Rotator oder Content Linking können admi-
nistrative Aufgaben durch ihre Automatisierungsfähigkeiten erleichtern.
Wie auch immer Ihr Bedarf aussieht, ich bin mir sicher, dass Sie hier mindestens
eine Komponente finden, die Ihre tägliche Arbeit als IIS-Administrator etwas
erleichtert.
Anhang A
Referenz für den Administrator

A.1 Registrierung 416


A.2 Metabasis 423
A.3 Windowsereignisse für IIS 424
A.4 Referenz zu Leistungsindikatoren 440
A.5 Referenz zu Timeouts 449
A.6 Referenz zu den Protokollierungseigenschaften 450
A.7 Referenz zur Umleitung 453
416 Registrierung

Dieser Anhang enthält für Sie – den Administrator – eine Referenz der Registrie-
rung, der Metabasis und der Windows-Ereignisse, die für IIS relevant sind. Sie
finden hier außerdem Informationen zu Leistungsindikatoren, Timeouts und Pro-
tokollierungseigenschaften. Jeder Bereich wird dabei in einem eigenen Abschnitt
bearbeitet.

A.1 Registrierung
Wie Sie bereits wissen, speichert die Windows-Registrierung Konfigurationsda-
ten für das Betriebssystem und die darunter laufenden Anwendungen und
Dienste. Änderungen an der Registrierung können über die Systemsteuerung, das
Windows-Setup, das Snap-In IIS-Administrator und die beiden Registrierungsedi-
toren regedit und regedt32 vorgenommen werden.

Tipp
Falls Sie mit den beiden Utilities regedit und regedt32 nicht vertraut sind,
sollten Sie wissen, dass nur regedit das Durchsuchen der Daten und
Werte in der Registrierung gestattet; regedt32 ermöglicht lediglich die
Suche nach Schlüsseln. Sie finden die Suchfunktion bei regedt32 im
Menü SUCHEN. regedit hingegen verfügt über ein Menü namens BEARBEI-
TEN, welches die Einträge SUCHEN und WEITERSUCHEN enthält.

Praktische jede Referenz für die Editierung der Registrierung enthält auch den
folgenden Warnhinweis: Es wird dringend empfohlen, Änderungen an der Regist-
rierung möglichst nur mit der Systemsteuerung oder – in unserem Fall – mit dem
IIS-Snap-In vorzunehmen. Dadurch wird verhindert, dass Sie unbeabsichtigt
Änderungen vornehmen, die dazu führen, dass der Rechner nicht mehr gestartet
werden kann.

A.1.1 Globale Einträge


Die globalen Einträge sind über den Registrierungspfad HKLM\SYSTEM\
CurrentControlSet\Services\InetInfo\Parameters zu erreichen.
CacheSecurityDescriptor
Typ: REG_DWORD. Bereich: 0,1. Standard: 1
Dieser Eintrag legt fest, ob die Dienstbeschreibungen für Dateiobjekte im Cache
zwischengespeichert werden. IIS ermittelt die Sicherheitseinstellungen der Datei
und legt sie im Cache ab. Dadurch wird ein Zugriff auf die Dateizugriffsberechti-
gungen des Dateiobjekts unnötig gemacht.
CheckCertRevocation
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Anhang A • Referenz für den Administrator 417

Dieser Eintrag gibt an, ob Clientzertifikate von IIS auf Widerruf überprüft worden
sind. Wenn Sie ihn aktivieren, dann führt dies aufgrund der für die Überprüfung
über das Internet benötigten Ressourcen zu Leistungseinbußen am Server. Inso-
fern sollte eine Aktivierung nur stattfinden, wenn Ihr Server tatsächlich Zertifi-
kate ausstellt.
DisableMemoryCache
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Deaktiviert den Servercache. Dieser Schlüssel kann mit dem IIS-Snap-In nicht
gesetzt werden.
ListenBackLog
Typ: REG_DWORD. Bereich: 1…250. Standard: 25
Mit diesem Eintrag legen Sie fest, wie viele Verbindungen in der Warteschlange
gehalten werden, wenn der Server ausgelastet ist. Wenn Ihr Server extrem ausge-
lastet ist, dann können Sie diesen Wert auf 50 setzen. Falls Sie eine noch höhere
Einstellung zu benötigen scheinen, sollten Sie dringend über ein Serverupgrade
nachdenken.
MaxConcurrency
Typ: REG_DWORD. Bereich: 0…unendlich. Standard: 0
Mit diesem Eintrag legen Sie für das System die Anzahl der Threads pro Prozes-
sor fest, die gleichzeitig für einen laufenden E/A-Vorgang ausgeführt werden kön-
nen. Die Standardeinstellung (0) überlässt dem Server die Auswahl.
MaxPoolThreads
Typ: REG_DWORD. Bereich: 0…unendlich. Standard: 4
Dies ist die Anzahl der zu erstellenden Poolthreads pro Prozessor. Threads, die
von ISAPI-Anwendungen benutzt werden, werden nicht berücksichtigt.
PoolThreadLimit
Typ: REG_DWORD. Bereich: 0…unendlich. Standard: 2 x # MByte
Die maximale Anzahl der zu erstellenden Poolthreads. Dieser Wert begrenzt alle
IIS-Threads und ist immer größer oder gleich dem Wert MaxPoolThreads.
MinFileKbSec
Typ: REG_DWORD. Bereich: 1…8192. Standard: 1000
Dieser Registrierungseintrag wird in Verbindung mit dem im IIS festgelegten
Timeout-Wert und der Dateigröße verwendet. Wenn IIS eine Datei sendet, dann
wird der Timeout-Wert als Grundlage dafür verwenden, wie lange IIS die Über-
tragung laufen lässt, bevor er sie stoppt. Der Wert ergibt sich aus der Summe des
für IIS festgelegten maximalen Verbindungs-Timeouts und der Größe der Datei,
geteilt durch den in diesem Schlüssel festgelegten Wert.
418 Registrierung

Hinweis
Der Wert in diesem Schlüssel wird in Byte und nicht – wie der Name
impliziert – in Kbyte gemessen. Ich habe absolut keine Ahnung, was
Microsoft sich dabei gedacht haben könnte.

ObjectCacheTTL
Typ: REG_DWORD. Bereich: 0…unendlich. Standard: 30 Sekunden
Dieser Eintrag steuert den TTL-Wert (Time To Live), der die Zeitspanne bezeich-
net, für die Objekte im Cache gehalten werden. Sie verwenden ihn, um zu verhin-
dern, dass selten gebrauchte Objekte Speicherkapazitäten belegen. Wenn für die
angegebene Zeitspanne nicht auf ein bestimmtes Objekt zugegriffen wurde, dann
wird es aus dem Speicher gelöscht, um Platz für ein neues Objekt zu schaffen.
Es ist empfehlenswert, hier einen niedrigen Wert zu wählen, wenn Ihr Server nur
über wenig Speicherressourcen verfügt. Sie können den Objekt-Cache auch deak-
tivieren, indem Sie diesem Schlüssel den Wert 0xFFFFFFFF zuweisen. Alle zwi-
schengespeicherten Objekte bleiben im Cache, bis sie überschrieben werden. Ich
rate von dieser Vorgehensweise ab, wenn Ihr Server nicht über genug Speicher-
ressourcen verfügt.
ThreadTimeout
Typ: REG_DWORD. Bereich: 0…unendlich. Standard: 24 Stunden
Dieser Eintrag zeigt die Zeitspanne an, die für die Aufrechterhaltung eines E/A-
Threads aufgewandt wird, falls keine Aktivitäten festzustellen sind.
UserTokenTTL
Typ: REG_DWORD. Bereich: 0…0x7FFFFFFF. Standard: 15 x 60 (=15 Minuten)
Dieser Eintrag bezieht sich auf die Sicherheitsaspekte der Website. Wenn ein
Benutzer eine Verbindung mit dem Server herstellt und zur Eingabe eines Benut-
zernamens und eines Kennworts aufgefordert wird, dann erstellt der Server für
den Benutzer ein Zugriffs-Token. Der Server wechselt dann die Identität dieses
Tokens, wenn Zugriffe auf Ressourcen versucht werden, die es benötigen. Auf
diese Weise legt der Server das Token im Cache ab, d.h. die Anmeldung muss nur
ein einziges Mal erfolgen. Der Eintrag UserTokenTTL bestimmt die Lebensdauer
des Tokens im Cache und wird in Sekunden gemessen.

A.1.2 Dienstspezifische Einträge


Diese Einträge finden Sie über den Pfad HKLM\SYSTEM\CurrentControlSet\Ser-
vices\dienstname\Parameters. Beachten Sie, dass der dienstname durch den
Namen des gewünschten Dienstes ersetzt werden muss. Dies ist entweder MSFT-
PSVC für einen FTP- oder W3SVC für einen WWW-Dienst.
Anhang A • Referenz für den Administrator 419

AllowGuestAccess
Typ: REG_DWORD. Bereich: 1,0. Standard: 1 (aktiv)
Dieser Wert legt fest, ob Gastanmeldungen für die auf diesem Server ausgeführ-
ten Internetdienste gestattet sind oder nicht. Normalerweise ist der Gästezugang
standardmäßig auf dem Server aktiv, aber die meisten Administratoren schalten
ihn ab, um einen unberechtigten Zugriff auf die Serverressourcen zu unterbinden.
Aus diesem Grund ist es empfehlenswert, den Wert auf 0 (nicht aktiv) zu setzen.
EnableSvcLoc
Typ: REG_DWORD. Bereich: 1,0. Standard: 1 (aktiv)
Damit ein Dienst durch die MMC gefunden werden kann, muss er sich bei einem
Dienst-Locator registrieren. Durch Zuweisung des Wertes 1 (aktiv) an diesen Ein-
trag weisen Sie den Dienst an, diese Registrierung vorzunehmen.
LanguageEngines.
Typ REG_STRING. Bereich: Zeichenfolge. Standard: keiner
Es gibt noch einen weiteren Registrierungsschlüssel, der nicht automatisch
erstellt wird, aber bei Bedarf im jeweiligen Dienstschlüssel liegt. Dies ist der
Schlüssel LanguageEngines; er zeigt alle installierten Nichtstandardskriptspra-
chen an (d.h. alle Skriptsprachen außer VBScript und JScript).
Der Schlüssel ist über den Pfad HKLM\SYSTEM\CurrentControlSet\Services\
W3SVC\ASP\LanguageEngines\sprachname zu finden, wobei die Variable
sprachname den Namen der gewählten Sprache beinhaltet. Es gibt für diesen
Schlüssel zwei Werteinträge:
• Write REG_SZ:Response.WriteEquiv |
• WriteBlock REG_SZ:Response.WriteBlockEquiv |
Sie verwenden diesen Parameter, um eine Skriptsprache zu bezeichnen, die die
Syntax objekt.methode nicht unterstützt. Die beiden oben erwähnten Werte wer-
den benutzt, um die Befehle anzugeben, die den Befehlen Response.Write und
Response.WriteBlock entsprechen. Ich empfehle Ihnen die intensive Lektüre der
Dokumentation zu der Skriptsprache, die Sie verwenden wollen, damit die hun-
dertprozentige Kompatibilität mit IIS gegeben ist. Falls Sie sich nicht sicher sind,
sollten Sie besser VBScript oder JScript lernen.

A.1.3 Einträge für den WWW-Dienst


Neben den bereits beschriebenen dienstspezifischen Einträgen gibt es für den
WWW-Dienst noch ein paar weitere, die unter HKLM\SYSTEM\CurrentControl-
Set\Services\W3SVC\Parameters zu finden sind.
420 Registrierung

AcceptByteRanges
Typ: REG_DWORD. Bereich: 1,0. Standard: 1 (aktiv)
Wenn Sie hier die Einstellung »1« (aktiv) wählen, verarbeitet der HTTP-Server
den »Range«-Header für den Typ bytes. Die Verarbeitung erfolgt gemäß dem
Internetentwurf Byte range extension to HTTP.
AllowSpecialCharsInShell
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Wenn Sie diesen Eintrag durch Zuweisung des Werts 1 aktivieren, dann gestatten
Sie bei der Ausführung von Stapelverarbeitungsdateien die Verwendung von Son-
derzeichen ( |(,;%< >) in der Befehlszeile der Eingabeaufforderung (cmd.exe).
Ich empfehle Ihnen jedoch dringend, die Standardeinstellung 0 beizubehalten,
sofern für die Aktivierung kein zwingender Grund vorliegt. Es handelt sich hier-
bei um eine unter Sicherheitsaspekten sehr zweifelhafte Einstellung, denn sie
kann von einem Eindringling zur Ausführung von Befehlen auf dem Server ver-
wendet werden.
DLCSupport
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Wenn Sie mehrere virtuelle Webseiten auf dem Server betreiben, die Hostheader-
namen verwenden, dann sollten Sie hier den Wert 1 (aktiv) zuweisen. Dadurch
ermöglichen Sie die Unterstützung älterer Browser, die mit Hostheadernamen
eigentlich nichts anfangen können.
DLCCookieNameString
Typ: REG_STRING. Bereich: Zeichenfolge. Standard: keiner.
Mit diesem Eintrag legen Sie den Namen eines Cookies fest, der an Clients älterer
Bauart (Downlevel-Clients) gesendet wird. Die Zeichenkette enthält einen
»Pseudo«-Hostheader, der es dem Server gestattet, die Anforderung des Clients
an die korrekte Site weiterzuleiten.
DLCHostNameString
Typ: REG_STRING. Bereich: Zeichenfolge. Standard: keiner.
Dieser Eintrag zeigt den Namen der Website an, die das Hostmenü für Downle-
vel-Clients enthält. Dieses ist im nachfolgend behandelten Eintrag DLCCookie-
MenuDocumentString vorhanden. Das Menü, von dem hier die Rede ist, ist eine
HTML- oder ASP-Datei, die alle Websites auf dem Server auslistet, die über die
gleiche IP-Adresse zu erreichen sind. Benutzer können aus diesem Menü die
gewünschte Website auswählen.
DLCCookieMenuDocumentString
Typ: REG_STRING. Bereich: Zeichenfolge. Standard: keiner.
Anhang A • Referenz für den Administrator 421

Diese Zeichenkette enthält den Namen der Datei, die als Menü für Downlevel-
Clients dient, die zwar Cookies, aber keine Hostheadernamen unterstützen.
DLCMungeMenuDocumentString
Typ: REG_STRING. Bereich: Zeichenfolge. Standard: keiner.
Diesen Schlüssel können Sie für Clients benutzen, die auch keine Cookies unter-
stützen. Tragen Sie hier den Namen der Datei ein, die das Hostmenü enthält. Die
Datei wird zur Einbettung des Hostnamens in die vom Client gesendete URL
benutzt.
DLCMenuString
Typ: REG_STRING. Bereich: Zeichenfolge. Standard: keiner.
Mit dieser Zeichenkette legen Sie ein spezielles Präfix für den von Downlevel-
Clients angeforderten URL fest. Der Server vergleicht alle von Downlevel-Clients
erhaltenen Anforderungen mit dieser Zeichenkette.
LogSuccessfulRequests
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Dieser Eintrag teilt dem Server mit, ob erfolgreiche Ereignisse in der Protokollda-
tei aufgezeichnet werden sollen. Standardmäßig ist diese Funktion inaktiv, kann
aber durch Zuweisung von 1 aktiviert werden.
SSIEnableCmdDirective
Typ: REG_DWORD. Bereich: 0, 1. Standard: 1.
Dieser Wert ist standardmäßig nicht in der Registrierung vorhanden und muss bei
Bedarf hinzugefügt werden. Wenn Sie den Schlüssel erstellen und ihm den Wert 1
(aktiv) zuweisen, dann gestatten Sie die Verwendung der serverseitigen Anwei-
sung #exec cmd zur Ausführung auf dem Server.
Die Aktivierung ist eine potentielle Gefahrenquelle bei Servern, die mit dem
Internet verbunden sind, denn ein übelwollender Benutzer könnte ein Virus oder
einen Trojaner auf den Server kopieren und diese Anwendung dann mit dem
Befehl cmd ausführen.
TryExceptDisable
Typ: REG_DWORD. Bereich: 0,1. Standard: 0
Die Standardeinstellung dieses Schlüssels ist deswegen 0, weil andernfalls ein
durch eine ISAPI-Anwendung verursachter Ausnahmefehler den Server anhalten
würde. Der einzige akzeptable Grund für eine Aktivierung dieses Schalters liegt
vor, wenn Ihre Entwickler eine Fehlerbereinigung ihrer Anwendungen durchfüh-
ren. Bevor der Server wieder als Produktions-Server verwendet wird, muss die
Einstellung deaktiviert werden.
422 Registrierung

UploadReadAhead
Typ: REG_DWORD. Bereich: 0…0x80000000. Standard: 48 Kbyte
Sie können mit diesem Eintrag steuern, wie viele Daten der Server liest, bevor er
sie an die Anwendung übergibt. Wenn diese Daten an die Anwendung weiterge-
leitet werden, dann gibt der Server auch die Verantwortung an die Anwendung
weiter, die übrigen Daten selbst zu lesen. Je höher der hier eingestellte Wert ist,
desto mehr Arbeitsspeicher brauchen Sie für den Server.
UsePoolThreadForCGI
Typ: REG_DWORD. Bereich: 1,0. Standard: 1
Die CGI-Verarbeitung erfolgt in der Regel mit Hilfe eines Server-Poolthreads. Sie
können die Einstellung aber auch deaktivieren (Wert 0), beispielsweise wenn die
Verarbeitung Ihrer CGIs sehr lange dauert.

A.1.4 Einträge für den FTP-Dienst


Auch der FTP-Dienst hat neben den dienstspezifischen Einträgen einige Sonder-
einträge in der Registrierung. Sie finden diese unter HKLM\SYSTEM\Current-
ControlSet\Services\MSFTPSVC\Parameters.
AnnotateDirectories
Typ: REG_DWORD. Bereich: 1,0. Standard: 0
Über diesen Eintrag haben Sie die Möglichkeit, Verzeichnisse des FTP-Dienstes
mit einer Anmerkung zu versehen, die in einer Anmerkungsdatei abgelegt wird.
Wenn ein FTP CWD-Vorgang ausgeführt wird und die Datei im Zielverzeichnis
vorhanden ist, dann übergibt der Server als Antwort den Inhalt der Datei. Auf
diese Weise können Sie benutzerdefinierte Meldungen für beliebige Verzeichnisse
erstellen.
Die Datei heißt ~ftpsvc~.ckm und muss in dem Verzeichnis liegen, für das die
Anmerkung gilt. Es empfiehlt sich ferner, der Datei das Attribut Versteckt zuzu-
weisen, so dass sie in den Dateilisten nicht aufgeführt wird.
EnablePortAttack
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Da die Spezifikation des FTP-Dienstes passive Verbindungen basierend auf der
vom Client angegebenen Anschlussadresse gestattet, ist diese Einstellung stan-
dardmäßig deaktiviert. Sie können dadurch verhindern, dass Eindringlinge heim-
tückischen Code auf dem Server ausführen. Der einzige Grund zur Aktivierung
der Eigenschaft liegt vor, wenn Sie Ihren Benutzern ermöglichen wollen, sich
über andere Anschlüsse mit dem FTP-Dienst zu verbinden.
Anhang A • Referenz für den Administrator 423

LowercaseFiles
Typ: REG_DWORD. Bereich: 0, 1. Standard: 0.
Der FTP-Dienst übernimmt die Einstellungen bezüglich der Großkleinschreibung
von Dateinamen vom Betriebssystem. Das kann zu Problemen führen, wenn
Dateivergleiche bei Dateisystemen mit Unterscheidung der Schreibweise (etwa
UNIX oder Linux) verwendet werden. In diesem Fall können Sie diesen Eintrag
aktivieren, um die Unterstützung von Dateinamenvergleichen mit Unterscheidung
der Großkleinschreibung zu aktivieren.

A.2 Metabasis
IIS verwendet eine als »Metabasis« bezeichnete Datenbank zur Speicherung sei-
ner Konfigurationsdaten. Dadurch wird die Manipulation dieser Konfigurations-
daten mit Hilfe von Skriptsprachen sehr erleichtert. Die Metabasis konfiguriert
die Konfigurationswerte als Objekte, auf die jede Skriptsprache mit Automations-
aktivierung zugreifen kann.

Warnung
Die direkte Konfiguration der Metabasis ähnelt der direkten Bearbeitung
der Registrierung. Es gibt gewisse Risiken, d.h. unangemessene Konfigu-
rationsänderungen können zum Ausfall eines Dienstes führen. Am bes-
ten verwenden Sie das IIS-Snap-In oder das HTML-Administrationstool,
um die notwendigen Änderungen an der Metabank vorzunehmen.

Die Speicherorte der Metabasis-Eigenschaften sind im Namespace spezifiziert.


Dieser Namespace arbeitet mit der folgenden Syntax:
LM/dienst/website/stamm/virtuellesVerzeichnis/verzeichnis/datei

Dabei ist LM der Name des lokalen Computers, dienst bezeichnet den gewählten
Dienst (entweder W3SVC oder MSFTPSVC). website ist der Name der Website,
stamm das virtuelle Basisverzeichnis und virtuellesVerzeichnis der Name des vir-
tuellen Verzeichnisses. verzeichnis schließlich benennt das Verzeichnis und datei
den Namen der Datei
Ein Beispiel für die Funktionsweise dieses Namespace sieht so aus:
LM/W3SVC/Website1/Root

Dieser Namespace-Pfad könnte dann dem lokalen Pfad C:\InetPub\wwwroot\


Default.htm zugeordnet werden.
Wenn Sie Metabasis-Eigenschaften auf der Ebene des Basisverzeichnisses defi-
niert haben, dann erben dem Basisverzeichnis untergeordnete Objekte diese Ein-
stellungen. Sie können aber an diesen untergeordneten Objekten individuelle
Änderungen vornehmen, die dann Vorrang vor den ererbten Einstellungen haben.
424 Windowsereignisse für IIS

A.3 Windowsereignisse für IIS


IIS generiert Ereignisse in der Ereignisanzeige, so dass Sie die ordnungsgemäße
Ausführung der IIS-Dienste überprüfen können. Die Ereignisanzeige zeichnet
Informations-, Warn- und Fehlerereignisse auf.
Wenn auf der Registerkarte PROZESSOPTIONEN die Option FEHLGESCHLAGENE
CLIENTANFORDERUNGEN IN DAS EREIGNISPROTOKOLL SCHREIBEN aktiv ist, wer-
den alle ASP-Fehler in der Ereignisanzeige dargestellt und im Anwendungsproto-
koll festgehalten und angezeigt.
Um die Einstellung vorzunehmen, öffnen Sie den Internetdienste-Manager, kli-
cken mit der rechten Maustaste auf das Computersymbol in der Baumstruktur und
wählen EIGENSCHAFTEN. Stellen Sie sicher, dass im Listenfeld HAUPTEIGEN-
SCHAFTEN die Einstellung WWW-Dienst gewählt ist, und klicken Sie dann auf die
Schaltfläche BEARBEITEN. Wählen Sie nun die Registerkarte BASISVERZEICHNIS
und klicken Sie dort im Abschnitt ANWENDUNGSEINSTELLUNG auf die Schaltflä-
che KONFIGURATION. Auf der Registerkarte PROZESSOPTIONEN des Dialogfeldes
ANWENDUNGSKONFIGURATION aktivieren Sie das Kontrollkästchen FEHLGE-
SCHLAGENE CLIENTANFORDERUNGEN IN DAS EREIGNISPROTOKOLL SCHREIBEN.

Leider werden auch dann, wenn Sie diese Option aktiviert haben, immer noch
nicht alle ASP-Fehler an das Ereignisprotokoll gesendet. Wenn Sie alle ASP-Feh-
ler protokollieren wollen, müssen Sie der Metabasis-Eigenschaft AspErrorsToNT-
Log den Wert TRUE zuweisen. Weitere Hinweise zur Einstellung von Metabasis-
Eigenschaften und IIS Admin Objects sowie zur Einstellung dieser Eigenschaft
finden Sie in Kapitel 14.

A.3.1 Ereignisse in Bezug auf den WWW-Dienst


Die Tabelle A.1 zeigt eine Liste der Ereignisse für WWW-Dienste. Dabei werden
die Ereigniskennung und eine Beschreibung angegeben.

Authentifizierung

Kennung Beschreibung
1 Fehler beim Laden der Zuordnungsdatei %1, Fehler %2.
2 Anmeldung fehlgeschlagen für Benutzer %1 : %2.
3 Digestauthentifizierung: ungültige Authentifizierung für Benutzer »%1«,
Bereich »%2«.
4 Digestauthentifizierung: unerkannter Benutzer »%1«, Bereich »%2«.
5 Digestauthentifizierung: Authentifizierung angehalten für Benutzer »%1«,
Bereich »%2«.
Anhang A • Referenz für den Administrator 425

Protokollierung

Kennung Beschreibung
1 IIS-Protokollierung für %1 wurde abgebrochen, da die Fehlermeldung
»Festplattenspeicher voll« aufgetreten ist.
2 Für die IIS-Protokollierung konnte Verzeichnis %1 nicht erstellt werden.
Die Daten enthalten Fehlerinformationen.
3 Für die IIS-Protokollierung konnte Datei %1 nicht erstellt werden. Die
Daten enthalten Fehlerinformationen.
4 Die IIS-Protokollierung wurde wiederaufgenommen für %1.
5 Für die IIS ODBC-Protokollierung konnte keine Verbindung zur Daten-
quelle %1 aufgebaut werden. Fehlermeldung [%2].
100 Der Server konnte das Windows-Konto '%1' aufgrund des folgenden Feh-
lers nicht anmelden: %2 Die Daten enthalten Fehlerinformationen.
101 Der Server konnte den virtuellen Stamm '%1' für das Verzeichnis '%2' auf-
grund des folgenden Fehlers nicht hinzufügen: %3 Die Daten enthalten
Fehlerinformationen.
102 Der Server konnte ODBC32.DLL für die SQL-Protokollierung nicht laden.
Der folgende Fehler ist aufgetreten: %1 Die Daten enthalten Fehlerinfor-
mationen.
103 Der Server konnte die ODBC-Datenquelle %1, Tabelle: %2, Benutzer-
name %3 nicht öffnen. Der ODBC-Fehler ist: %4. Die Daten enthalten
Fehlerinformationen.
104 Die angegebenen Parameter für die Protokollierung sind zu lang: Feld:
%1, angegebene Daten: %2.
105 Der Server konnte die Informationen über das Auffinden von Administra-
tionstools nicht registrieren. Der Server kann möglicherweise nicht vom
Administrationstool erkannt werden. Die Daten enthalten Fehlerinforma-
tionen.
106 Der InetLog-Kontext konnte nicht erstellt werden. Die Daten enthalten
Fehlerinformationen.
107 Fehler bei den Protokollierungsinformationen. Das Protokollobjekt wurde
nicht erstellt, da die Konfiguration möglicherweise nicht korrekt ist.
108 Der Server konnte das Verzeichnis %1 der Protokolldatei nicht finden. Die
Daten enthalten Fehlerinformationen.
109 Der Server hat die Anforderungsprotokollierung angehalten, da beim
Schreiben eines Protokolleintrags ein Fehler aufgetreten ist. Die Daten ent-
halten Fehlerinformationen. Die Fehlermeldung ist: %1.
110 Der Server hat die Anforderungsprotokollierung fortgesetzt.
426 Windowsereignisse für IIS

Kennung Beschreibung
111 Der Dienst konnte die Socket-Bibliothek nicht initialisieren. Die Daten
enthalten Fehlerinformationen.
112 Der Dienst konnte Modul %1 nicht finden. Die Daten enthalten Fehlerin-
formationen.
113 Die Bindungsbeschreibung %2 der Instanz %1 ist ungültig.
114 Die sichere Bindungsbeschreibung %2 der Instanz %1 ist ungültig (Host-
name ignoriert).
115 Der Dienst konnte Instanz %1 nicht verbinden. Die Daten enthalten Fehle-
rinformationen.
116 Der Metabasispfad des Dienstes '%1' konnte nicht geöffnet werden. Die
Daten enthalten Fehlerinformationen.

Metabasis

Kennung Beschreibung
1 Kein Zugriff auf IIS-Metabasiskonfiguration für Server %1, Instanz %2,
Fehler %3.
2 Instanz %2 des Servers %1 antwortet nicht auf Protokollabfrage, Fehler
%3.
800 Metadaten wurden nicht initialisiert.
801 Angegebene Metadaten wurden nicht gefunden.
802 Unbekannte Versionsangabe im Speicher der Metadaten.
803 Angegebener Pfad für Metaobjekt wurde nicht gefunden. Das Metaobjekt
und die zugeordneten Metadaten wurden ignoriert.
804 Metaobjekt oder Metadaten wurden mehrfach angegeben. Duplikate wur-
den ignoriert.
805 Es wurden ungültige Metadaten angegeben. Die ungültigen Metadaten
wurden ignoriert.
806 Es konnte kein sicherer Kommunikationskanal zu dem Server hergestellt
werden.
807 Der Pfad wurde nicht, wie angefordert, in die Zeichenkette eingefügt.
Möglicherweise gehören die Daten zu einem Objekt auf einer höheren
Ebene als die Zugriffsnummer.
808 Das Attribut METADATA_SECURE kann nicht mit Hilfe der GetData-
Methode aus den Daten entfernt werden. Verwenden Sie die DeleteData-
Methode, um die sicheren Daten zu entfernen.
809 Das Speichern der Metadaten vor der Sicherungskopie ist fehlgeschlagen.
Es wurde eine Sicherungskopie der früheren Version erstellt.
Anhang A • Referenz für den Administrator 427

ODBC-Protokollierung

Kennung Beschreibung
1 Abfrage %1 konnte nicht durchgeführt werden.
2 In dem von Ihnen bearbeiteten Formular muss der Eintrag %1 ausgefüllt
werden. Füllen Sie den Eintrag aus, und senden Sie das Formular noch-
mals ab.
3 Die Abfragedatei %1 konnte nicht geöffnet werden. Die Datei ist mögli-
cherweise nicht vorhanden, oder Sie haben keine ausreichenden Berechti-
gungen, die Datei zu öffnen.
4 Die Vorlagedatei %1 konnte nicht geöffnet werden. Die Datei ist mögli-
cherweise nicht vorhanden, oder Sie haben keine ausreichenden Berechti-
gungen, die Datei zu öffnen.
5 In der Vorlagedatei steht ein else-Tag ohne ein passendes if-Tag.
6 In der Vorlagedatei steht ein endif-Tag ohne ein passendes if-Tag.
7 In der Vorlagedatei steht ein Ausdruck mit Parametern unterschiedlichen
Typs. Beispielsweise verursacht ein if-Tag, durch das eine Zeichenfolge
mit einer Zahl verglichen wird, diesen Fehler.
8 In der Vorlagedatei steht ein Ausdruck mit dem CONTAINS-Operator, bei
dem mindestens einer der beiden Parameter keine Zeichenfolge ist. CON-
TAINS ist nur gültig, wenn Zeichenfolgen verwendet werden.
9 In der Vorlagedatei steht ein Ausdruck, der eine Zeichenfolge mit Anfüh-
rungszeichen verwendet. Das Anführungszeichen am Ende der Zeichen-
folge fehlt jedoch.
10 In der Vorlagedatei steht ein Ausdruck mit einem ungültigen Operator.
GT, LT, EQ und CONTAINS sind gültige Operatoren.
11 Die Abfragedatei enthält ein ungültiges Feld %1.
12 Die Abfragedatei muss ein gültiges Datasource:- und SQLStatement:-Feld
enthalten.
13 Die Bibliothek odbc32.dll konnte nicht geladen werden, und die Abfrage
konnte nicht ausgeführt werden. Stellen Sie sicher, dass ODBC ordnungs-
gemäß auf dem Server installiert ist.
14 Die angegebene HTTP-Methode wird nicht unterstützt. Es werden nur
POST und GET unterstützt.
15 Fehler bei der Durchführung der Abfrage %1.
16 In der IDC-Datei wurde die maximale Anzahl an SQLStatement-Feldern
überschritten.
428 Windowsereignisse für IIS

Serverseitige Include-Anweisungen

Kennung Beschreibung
1 Der virtuelle Pfad '%1' kann nicht aufgelöst werden.
2 Fehler bei der Verarbeitung der SSI-Datei '%1'.
3 Ungültiges SSI-Tag.
4 flastmod('%1') kann nicht durchgeführt werden. Win32-Fehlercode = %2.
5 fsize('%1') kann nicht durchgeführt werden. Win32-Fehlercode = %2.
6 Variable '%1' kann nicht gefunden werden.
7 Variable '%1' kann nicht ausgewertet werden.
8 SSI-Feature wird nicht unterstützt.
9 SSI-Verarbeitungsfehler. Datei = '%1'. Win32-Fehlercode = %2.
10 SSI-Datei '%1' wurde erfolgreich verarbeitet.
11 SSI-Datei '%1' konnte nicht verarbeitet werden.
12 CMD '%1' konnte nicht ausgeführt werden. Win32-Fehlercode = %2.
13 Skript '%1' konnte nicht ausgeführt werden. Win32-Fehlercode = %2.
14 ISAPI-Erweiterung '%1' konnte nicht ausgeführt werden.
16 Dieses Dokument wurde an diese Stelle verschoben: %1.
17 Umgebung des untergeordneten Prozesses konnte nicht eingerichtet wer-
den: Win32-Fehlercode = %1.
18 Pipes des untergeordneten Prozesses konnten nicht eingerichtet werden:
Win32-Fehlercode = %1.
19 Prozess konnte nicht erstellt werden: Win32-Fehlercode = %1.
20 #EXEC-Befehl hat die zulässige Zeit überschritten.
21 #EXEC ISAPI-Anwendung konnte nicht ausgeführt werden: Win32-Feh-
lercode = %1.
22 ISAPI-Anwendung hat versucht, diese Adresse zu senden: %1
23 #EXEC '%1' kann nicht ausgeführt werden, weil keine Ausführberechti-
gung vorhanden ist.
24 '%1' kann nicht verarbeitet werden, weil der Zugriff verweigert wurde.
25 Eine Include-Datei auf dem Server verweist auf sich selbst, oder die maxi-
male Tiefe an Include-Dateien auf dem Server wurde überschritten.
26 Eine nichtunterstützte Option der ServerSupportFunction() wurde durch
ISA verwendet.
27 Die CMD-Option ist nicht für #EXEC-Aufrufe aktiviert.
Anhang A • Referenz für den Administrator 429

Kennung Beschreibung
28 #EXEC-Aufrufe sind für diesen virtuellen Pfad deaktiviert.
29 Es ist eine #INCLUDE-Kette mit '%1' vorhanden.

WWW-Dienste

Kennung Beschreibung
1 Der HTTP-Server konnte die Sicherheitsfunktion nicht initialisieren. Die
Daten enthalten Fehlerinformationen.
3 Der HTTP-Server konnte die Socket-Bibliothek nicht initialisieren. Die
Daten enthalten Fehlerinformationen.
4 Der HTTP-Server konnte wegen Speichermangel nicht initialisiert wer-
den. Die Daten enthalten Fehlerinformationen.
6 Der HTTP-Server konnte den Hauptverbindungs-Socket nicht erstellen.
Die Daten enthalten Fehlerinformationen.
8 Der HTTP-Server konnte kein Clientverbindungsobjekt für den Benutzer
am Host %1 erstellen. Die Verbindung zu diesem Benutzer wird beendet.
Die Daten enthalten Fehlerinformationen.
14 Die HTTP-Filter-DLL %1 konnte nicht geladen werden. Die Daten ent-
halten Fehlerinformationen.
16 Innerhalb der konfigurierten Zeitspanne kam vom Skript, das von der
URL '%1' mit den Parametern '%2' gestartet wurde, keine Rückmeldung.
Der HTTP-Server beendet das Skript.
18 Der HTTP-Server hat einen Fehler festgestellt, während die Datei '%1' auf
der Serverseite verarbeitet wurde. Der Fehler ist: '%2'.
19 Der HTTP-Server ist bei der Verarbeitung der ISAPI-Anwendung '%1' auf
eine unerwartete Ausnahme gestoßen.
20 Der HTTP-Server konnte die ISAPI-Anwendung '%1' nicht laden. Die
Daten enthalten Fehlerinformationen.
21 Eine Include-Datei auf dem Server verweist auf sich selbst oder die maxi-
male Tiefe an Include-Dateien wurde auf dem Server überschritten.
22 Es wurde versucht, den Filter '%1' auf der Serverinstanz zu laden, wofür
jedoch eine Filterbenachrichtigung SF_NOTIFY_READ_RAW_DATA
notwendig ist. Er muss deshalb als globaler Filter geladen werden.
Tab. A.1: Ereignisse in Bezug auf den WWW-Dienst
430 Windowsereignisse für IIS

Kennung Beschreibung
23 Aus Kompatibilitätsgründen mit der vorherigen Version von IIS wurde
Filter '%1' als globaler Filter von der Registrierung geladen. Sie können
den Filter mit dem Internetdienste-Manager bearbeiten, indem Sie ihn von
der Registrierdatenbank entfernen und ihn mit dem Internetdienste-Mana-
ger als globalen Filter hinzufügen. Filter sind in der Registrierdatenbank
unter HKLM\System\CurrentControlSet\Services\W3Svc\Parameters\
Filter DLLs gespeichert.
26 Der Server konnte die Datei %1 wegen fehlender Zugriffsberechtigung
nicht lesen.
27 Für den Server wurde keine Lizenz für eine SSL-Verbindung ausgestellt.
28 Der Server erfordert »Dienst beenden« für die Anwendung '%1', da die
Anzahl der Out of Process-Komponenten den Grenzwert überschritten
hat.
29 Der Server konnte Anwendung '%1' nicht beenden. Fehler '%2'.
30 Der Server konnte Datei %1 nicht lesen. Die Datei ist nicht vorhanden.
31 Der Server konnte Datei %1 nicht lesen. Der Windows 32-Fehler ist %2.
32 Der Server konnte Datei %1 nicht lesen. Die Datei überschreitet die maxi-
mal erlaubte Größe von %2.
33 Der Server konnte keine Speicher zum Lesen der Datei %1 zur Verfügung
stellen.
34 Der Server konnte PUT bei der URL %1 (Dateiname %2) nicht ausführen.
Diese Datei ist verloren gegangen. Es wurde eine Sicherungskopie %3
angefertigt.
35 Der Server konnte PUT auf %1 (Dateiname %2) nicht ausführen.
36 Der Server konnte Anwendung '%1' nicht laden. Fehler '%2'.
37 Out of Process-Anwendung '%1' wurde unerwartet abgebrochen.
201 WAM-Instanz wurde mit Prozess-ID %1 gestartet.
202 WAM-Instanz konnte in Prozess %1 nicht gestartet werden. Die Daten
enthalten Fehlerinformationen.
203 WAM-Instanz wurde abgebrochen in Prozess %1.
204 Der HTTP-Server ist bei der Verarbeitung der ISAPI-Anwendung '%1' auf
eine unerwartete Ausnahme gestoßen.
205 Der HTTP-Server konnte die ISAPI-Anwendung '%1' nicht laden. Die
Daten enthalten Fehlerinformationen.
Tab. A.1: Ereignisse in Bezug auf den WWW-Dienst (Forts.)

Diese Fehlermeldungen werden im Fenster EIGENSCHAFTEN VON EREIGNIS ange-


zeigt, wenn Sie das zugehörige Ereignis in der rechten Spalte des Fensters EREIG-
NISANZEIGE doppelklicken.
Anhang A • Referenz für den Administrator 431

Die %-Variablen – etwa %1 oder %2 – in der vorherigen Tabelle werden im Fens-


ter EIGENSCHAFTEN VON EREIGNIS durch die entsprechenden Daten ersetzt.

A.3.2 Ereignisse in Bezug auf die FTP-Dienste


Auch die FTP-Dienste erzeugen Einträge im Ereignisprotokoll, wenn auch nicht
ganz so viele wie die WWW-Dienste. Tabelle A.2 listet die Ereignismeldungen
für den FTP-Dienst auf.

Kennung Beschreibung
1 FTP-Server konnte die Sicherheitsfunktion nicht initialisieren. Die Daten
enthalten Fehlerinformationen.
3 FTP-Server konnte die Socket-Bibliothek nicht initialisieren. Die Daten
enthalten Fehlerinformationen.
4 FTP-Server konnte wegen Speichermangel nicht initialisiert werden. Die
Daten enthalten Fehlerinformationen.
5 FTP-Server konnte den FTP-/TCP-Dienst nicht finden. Die Daten enthal-
ten Fehlerinformationen.
6 FTP-Server konnte den Hauptverbindungs-Socket nicht erstellen. Die
Daten enthalten Fehlerinformationen.
7 FTP-Server konnte den Hauptverbindungs-Thread nicht erstellen. Die
Daten enthalten Fehlerinformationen.
8 FTP-Server konnte keinen Clientarbeitsthread für den Benutzer am Host
%1 erstellen. Die Verbindung zu diesem Benutzer wird beendet. Die Daten
enthalten Fehlerinformationen.
9 Unerwarteter Fehler bei einem Systemdienstaufruf. Die Daten enthalten
Fehlerinformationen.
10 Benutzer %1 am Host %2 hat inaktive Zeit nach %3 Sekunden überschrit-
ten.
11 Anonyme Anmeldeanforderung von %1 am Host %2 empfangen.
12 Benutzer-Anmeldeanforderung von %1 am Host %2 empfangen.
13 Fehler beim Anmelden des Benutzers %1. Auf das Basisverzeichnis %2
konnte nicht zugegriffen werden.
14 Dem Benutzer %1 wurde der Zugriff auf das aktuelle Verzeichnis %2
wegen einer Sicherheitsänderung verweigert.
1000 Es konnten keine Daten zur FTP-Leistung gesammelt werden. Der vom
Dienst zurückgegebene Fehlercode ist DWORD 0.
Tab. A.2: Ereignisse in Bezug auf die FTP-Dienste
432 Windowsereignisse für IIS

Die %-Variablen – etwa %1 oder %2 – in der vorherigen Tabelle werden im Fens-


ter EIGENSCHAFTEN VON EREIGNIS durch die entsprechenden Daten ersetzt.

A.3.3 Ereignisse in Bezug auf Active Server Pages


Wie bereits in der Einleitung zu diesem Anhang angemerkt, werden, sofern die
Option AspErrorsToNTLog in der Metabasis nicht gesetzt ist, nicht alle ASP-
Ereignisse in die Protokolldatei geschrieben. Tabelle A.3 listet die Meldungen
auf, die sich auf ASP beziehen.

Kennung Beschreibung
100 Nicht genügend Arbeitsspeicher. Erforderlicher Arbeitsspeicher kann
nicht reserviert werden.
101 Unerwarteter Fehler. Die Funktion hat | zurückgegeben.
102 Zeichenfolge erwartet. Die Funktion erwartet die Eingabe einer Zeichen-
folge.
103 Zahl erwartet. Die Funktion erwartet die Eingabe eines numerischen Wer-
tes.
104 Der Vorgang ist nicht erlaubt.
105 Index außerhalb des zulässigen Bereichs. Ein Arrayindex liegt außerhalb
des zulässigen Bereichs.
106 Typ passt nicht. Es wurde ein unbekannter Datentyp gefunden.
107 Stapelüberlauf. Die zu verarbeitenden Daten haben das erlaubte Limit
überschritten.
108 Objekt konnte nicht erstellt werden. Beim Erstellen des Objekts '%s' ist ein
Fehler aufgetreten.
109 Mitglied nicht gefunden.
110 Unbekannter Name.
111 Unbekannte Schnittstelle.
112 Fehlender Parameter.
113 Timeout für Skript. Das Zeitlimit zum Ausführen eines Skripts wurde
überschritten. Sie können das Zeitlimit ändern, indem Sie einen neuen
Wert für die Eigenschaft Server.ScriptTimeOut festlegen oder den Wert
für ScriptTimeout im Administrationstool von IIS ändern.
114 Objekt nicht im Freethread-Modus. Das Anwendungsobjekt akzeptiert nur
Objekte im Freethread-Modus; das Objekt '%s' ist nicht in diesem Modus.
115 Unerwarteter Fehler. In einem externen Objekt ist ein abfangbarer (%X)
Fehler aufgetreten. Das Skript kann nicht ausgeführt werden.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages
Anhang A • Referenz für den Administrator 433

Kennung Beschreibung
116 Skriptbegrenzungszeichen fehlt. Im Skriptblock fehlt das Skriptbegren-
zungszeichen (%>).
117 Skriptendzeichen fehlt. Im Skriptblock fehlt das Skriptendzeichen
(</SCRIPT>) oder das Endzeichen (>).
118 Objektendzeichen fehlt. Im Objektblock fehlt das Objektendzeichen
(</OBJECT>) oder Endzeichen (>).
119 ClassID- oder ProgID-Attribut fehlt. Die Objektinstanz '|' erfordert eine
gültige Klassen-ID oder Programm-ID im Objekttag.
120 Ungültiges RunAt-Attribut. Für das RunAt-Attribut des Skript- oder
Objekttags ist nur der Wert 'Server' gültig.
121 Ungültiger Bereich im Objekttag. Die Objektinstanz '|' darf keinen
Anwendungs- oder Sitzungsbereich enthalten. Tragen Sie das Objekttag in
die Datei global.asa ein, um eine Objektinstanz mit einem Sitzungs- oder
Anwendungsbereich zu erstellen.
122 Ungültiger Bereich im Objekttag. Die Objektinstanz '|' muss einen Anwen-
dungs- oder Sitzungsbereich enthalten. Das gilt für alle in der Datei glo-
bal.asa eingetragenen Objekte.
123 ID-Attribut fehlt. Das erforderliche ID-Attribut des Objekttags ist nicht
vorhanden.
124 Sprachattribut fehlt. Das erforderliche Sprachattribut des Skripttags ist
nicht vorhanden.
125 Attributendzeichen fehlt. Der Wert des Attributs '|' hat kein Begrenzungs-
zeichen.
126 Eingebundene Datei nicht gefunden. Die eingebundene Datei '|' wurde
nicht gefunden.
127 Endzeichen des HTML-Kommentars fehlt. Das Endzeichen für den
HTML-Kommentar oder die serverseitige Einbindung fehlt (-->).
128 Attribut Virtual oder File fehlt. Die Angabe der Include-Datei muss ein
Attribut Virtuell oder Datei enthalten.
129 Unbekannte Skriptsprache. Die Skriptsprache '|' ist auf dem Server nicht
vorhanden.
130 Ungültiges Attribut File. Das Dateiattribut '|' kann nicht mit einem Schräg-
strich oder einem umgekehrten Schrägstrich beginnen.
131 Unzulässiger übergeordneter Pfad. Die eingebundene Datei '|' darf kein '..'
enthalten, um das übergeordnete Verzeichnis anzugeben.
132 Kompilierungsfehler. Die Active Server Page '|' konnte nicht verarbeitet
werden.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
434 Windowsereignisse für IIS

Kennung Beschreibung
133 Ungültiges ClassID-Attribut. Das Objekttag enthält die ungültige Klas-
sen-ID '|'.
134 Ungültiges ProgID-Attribut. Die Programm-ID '|' des Objekts ist ungültig.
135 Zyklisches Include. Die Datei '|' bindet sich selbst ein (möglicherweise
indirekt). Überprüfen Sie eingebundene Dateien auf weitere Include-
Anweisungen.
136 Ungültiger Objektinstanzname. Die Objektinstanz '|' verwendet einen
reservierten Namen. Dieser Name wird von systeminternen Objekten von
Active Server Pages verwendet.
137 Ungültiges globales Skript. Skriptblöcke müssen eine gültige Prozedur
global.asa sein. In der Datei global.asa sind keine Skriptanweisungen
innerhalb von <% ... %> erlaubt. Die zulässigen Prozedurnamen sind
Application_OnStart, Application_OnEnd, Session_OnStart oder
Session_OnEnd.
138 Verschachtelter Skriptblock. Ein Skriptblock kann nicht in einem anderen
Skriptblock eingetragen werden.
139 Verschachteltes Objekt. Ein Objekttag kann nicht in einem anderen
Objekttag eingetragen werden.
140 Ungültige Befehlsreihenfolge. Der @-Befehl muss der erste Befehl inner-
halb der Active Server Page sein.
141 Wiederholung des Page-Befehls. Der @-Befehl kann in der Active Server
Page nur einmal verwendet werden.
142 Thread Token-Fehler. Ein Thread Token konnte nicht geöffnet werden.
143 Ungültiger Anwendungsname. Es wurde kein gültiger Anwendungsname
gefunden.
144 Initialisierungsfehler. Die Initialisierung der Liste von Objekten, die zu
dieser Seite gehören, ist fehlgeschlagen.
145 Neue Anwendung fehlgeschlagen. Die neue Anwendung konnte nicht hin-
zugefügt werden.
146 Neue Sitzung fehlgeschlagen. Die neue Sitzung konnte nicht hinzugefügt
werden.
147 Serverfehler.
148 Der Server ist zu stark belastet.
149 Anwendung wird neu gestartet. Die Anforderung kann nicht verarbeitet
werden, während die Anwendung neu gestartet wird.
150 Fehler im Anwendungsverzeichnis. Das Anwendungsverzeichnis konnte
nicht geöffnet werden.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
Anhang A • Referenz für den Administrator 435

Kennung Beschreibung
151 Fehler bei Nachricht über Änderung. Die Nachricht über eine Änderung
konnte nicht erstellt werden.
152 Sicherheitsfehler. Beim Verarbeiten von Benutzeranmeldeinformationen
ist ein Fehler aufgetreten.
153 Thread-Fehler. Es konnte kein neuer Thread angefordert werden.
154 Fehler beim Schreiben des HTTP-Headers. Die HTTP-Header konnten
nicht in den Client Browser geschrieben werden.
155 Fehler beim Schreiben des Seiteninhalts. Der Seiteninhalt konnte nicht in
den Client Browser geschrieben werden.
156 Header-Fehler. Die HTTP-Header sind bereits in den Client Browser
geschrieben. Änderungen am HTTP-Header müssen vorgenommen
werden, bevor der Seiteninhalt geschrieben wird.
157 Pufferung aktiviert. Eine aktivierte Pufferung kann nicht deaktiviert
werden.
158 URL nicht vorhanden. Eine URL ist erforderlich.
159 Pufferung deaktiviert. Die Pufferung muss aktiviert sein.
160 Protokollierungsfehler. Eintrag kann nicht ins Protokoll geschrieben
werden.
161 Datentypfehler. Eine Variant-Variable konnte nicht in eine Zeichenfolge
konvertiert werden.
162 Cookie kann nicht geändert werden. Das Cookie ASPSessionID kann nicht
geändert werden, da dieser Name reserviert ist.
163 Ungültige Kommas. Ein Protokolleintrag darf keine Kommas enthalten.
Geben Sie ein anderes Trennzeichen ein.
164 Ungültiger Wert für Timeout. Es wurde ein ungültiger Wert für Timeout
angegeben.
165 SessionID-Fehler. Eine SessionID-Zeichenfolge kann nicht erstellt
werden.
166 Objekt nicht initialisiert. Es wurde auf ein nichtinitialisiertes Objekt zuge-
griffen.
167 Fehler beim Initialisieren der Sitzung. Beim Initialisieren des Sitzungsob-
jekts ist ein Fehler aufgetreten.
168 Unzulässige Objektverwendung. Ein systeminternes Objekt kann nicht im
Sitzungsobjekt gespeichert werden.
169 Objektinformationen fehlen. Ein Objekt mit fehlenden Informationen
kann nicht im Sitzungsobjekt gespeichert werden. Die Informationen zum
Threadingmodell für ein Objekt sind erforderlich.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
436 Windowsereignisse für IIS

Kennung Beschreibung
170 Fehler beim Löschen der Sitzung. Die Sitzung wurde nicht ordnungsge-
mäß gelöscht.
171 Pfad nicht vorhanden. Der Pfadparameter für die MapPath-Methode muss
angegeben werden.
172 Ungültiger Pfad. Der Pfadparameter für die MapPath-Methode muss ein
virtueller Pfad sein. Es wurde ein physischer Pfad angegeben.
173 Ungültiges Zeichen. Im Pfadparameter für die MapPath-Methode wurde
ein ungültiges Zeichen eingegeben.
174 Ungültige(s) Zeichen. Im Pfadparameter für die MapPath-Methode wurde
ein '/' oder '\\' eingegeben.
175 Unzulässige Zeichen. Die Zeichen '..' sind im Pfadparameter für die Map-
Path-Methode nicht zulässig.
176 Pfad nicht gefunden. Der Pfadparameter für die MapPath-Methode ent-
spricht keinem bekannten Pfad.
177 Server.CreateObject-Fehler.
178 Server.CreateObject-Zugriffsfehler. Server.CreateObject konnte beim
Überprüfen der Berechtigungen nicht aufgerufen werden. Der Zugriff auf
dieses Objekt wurde verweigert.
179 Fehler beim Initialisieren der Anwendung. Beim Initialisieren des Anwen-
dungsobjekts ist ein Fehler aufgetreten.
180 Unzulässige Objektverwendung. Ein systeminternes Objekt kann nicht im
Anwendungsobjekt gespeichert werden.
181 Ungültiges Threadingmodell. Ein Objekt, das das Apartment-Threading-
modell verwendet, kann nicht innerhalb des Anwendungsobjekts gespei-
chert werden.
182 Objektinformationen fehlen. Ein Objekt mit fehlenden Informationen
kann nicht im Anwendungsobjekt gespeichert werden. Die Informationen
zum Threadingmodell für das Objekt sind erforderlich.
183 Leerer Cookie-Schlüssel. Ein Cookie mit einem leeren Schlüssel kann
nicht gespeichert werden.
184 Cookie-Name fehlt. Für ein Cookie muss ein Name angegeben werden.
185 Standardeigenschaft fehlt. Es wurde keine Standardeigenschaft für das
Objekt gefunden.
186 Fehler beim Parsen des Zertifikats.
187 Konflikt beim Hinzufügen eines Objekts. Das Objekt konnte nicht zur
Anwendung hinzugefügt werden. Die Anwendung war durch eine andere
Anforderung, ein Objekt hinzuzufügen, gesperrt.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
Anhang A • Referenz für den Administrator 437

Kennung Beschreibung
188 Unzulässige Objektverwendung. Durch Objekttags erstellte Objekte kön-
nen nicht zur Sitzung hinzugefügt werden.
189 Unzulässige Objektverwendung. Durch Objekttags erstellte Objekte kön-
nen nicht zur Anwendung hinzugefügt werden.
190 Unerwarteter Fehler. Beim Freigeben eines externen Objekts ist ein
abfangbarer Fehler aufgetreten.
191 Unerwarteter Fehler. In der OnStartPage-Methode eines externen Objekts
ist ein abfangbarer Fehler aufgetreten.
192 Unerwarteter Fehler. In der OnEndPage-Methode eines externen Objekts
ist ein abfangbarer Fehler aufgetreten.
193 OnStartPage fehlgeschlagen. In der OnStartPage-Methode eines externen
Objekts ist ein Fehler aufgetreten.
194 OnEndPage fehlgeschlagen. In der OnEndPage-Methode eines externen
Objekts ist ein Fehler aufgetreten.
195 Ungültiger Aufruf einer Servermethode. Diese Methode des Serverobjekts
kann nicht während Session_OnEnd und Application_OnEnd aufgerufen
werden.
197 Unzulässige Objektverwendung. Ein Objekt, das sich dem Apartment-
Modell entsprechend verhält, kann nicht zum Anwendungsobjekt hinzu-
gefügt werden.
198 Server wird heruntergefahren. Anforderung kann nicht verarbeitet werden.
199 Unzulässige Objektverwendung. JScript-Objekt kann nicht zur Sitzung
hinzugefügt werden.
200 Ungültiges Expires-Attribut. Das Ablaufdatum und der Ablaufzeitpunkt
liegen außerhalb des zulässigen Bereichs (vor dem 1. Januar 1980 oder
nach dem 19. Januar 2038, 3:14:07 GMT).
201 Unbekannte Skriptsprache in der Registrierung. Die in der Registrierung
angegebene Skriptsprache '|' ist auf dem Server nicht vorhanden.
202 Codepage fehlt. Das Codepage-Attribut fehlt.
203 Ungültige Codepage. Das angegebene Codepage-Attribut ist ungültig.
205 Nachricht über Änderung. Die Nachricht über eine Änderung konnte nicht
erstellt werden.
206 BinaryRead kann nicht aufgerufen werden. Nach Verwendung der Auflis-
tung Request.Form kann BinaryRead nicht aufgerufen werden.
207 Request.Form kann nicht verwendet werden. Nach dem Aufruf von
BinaryRead kann die Auflistung Request.Form nicht verwendet werden.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
438 Windowsereignisse für IIS

Kennung Beschreibung
208 Allgemeine Anforderungsauflistung kann nicht verwendet werden. Nach
dem Aufruf von BinaryRead kann die allgemeine Anforderungsauflistung
nicht verwendet werden.
209 Unzulässiger Wert für Eigenschaft TRANSACTION. Die Eigenschaft
TRANSACTION kann nur die Werte REQUIRED, REQUIRES_NEW,
SUPPORTED oder NOT_SUPPORTED annehmen.
210 Methode nicht verfügbar. Diese Methode wurde noch nicht implementiert.
211 Objekt außerhalb des Bereichs. Es wurde auf ein vordefiniertes ASP-
Objekt Bezug genommen, das nicht länger gültig ist.
212 Puffer kann nicht gelöscht werden. Response.Clear nach Response.Flush
ist nicht erlaubt, wenn Clientdebuggen aktiviert ist.
214 Ungültiger Pfadparameter. Der Pfadparameter überschreitet die maximal
zulässige Länge.
215 Unzulässiger Wert für Eigenschaft SESSION. Die Eigenschaft SESSION
kann nur die Werte WAHR oder FALSCH annehmen.
216 MSDTC-Dienst wird nicht ausgeführt. Webseiten mit Transaktionen kön-
nen nicht ausgeführt werden, wenn der MSDTC-Dienst nicht aktiv ist.
217 Ungültiger Bereich im Objekttag. Objektbereich muss Seite, Sitzung oder
Anwendung sein (Page, Session oder Application).
218 Fehlende LCID. Das LCID-Attribut fehlt.
219 Ungültige LCID. Die angegebene LCID steht nicht zur Verfügung.
220 Anforderungen für GLOBAL.ASA nicht erlaubt. Anforderungen, die mit
der URL auf GLOBAL.ASA zeigen, sind nicht erlaubt.
221 Ungültige @-Kommandozuweisung. Die angegebene '|'-Option ist unbe-
kannt oder ungültig.
222 Ungültige Spezifikation der Typbibliothek. METADATA-Tag enthält eine
ungültige Typbibliotheksspezifikation.
223 Typbibliothek kann nicht gefunden werden. METADATA-Tag enthält eine
Typbibliotheksspezifikation, die nicht mit dem Eintrag in der Registrie-
rung übereinstimmt.
224 Typbibliothek kann nicht geladen werden. Die Typbibliothek aus META-
DATA-Tag kann nicht geladen werden.
225 Kein Wrapping für Typbibliotheken möglich. Es konnte kein Typbiblio-
thek-Wrapperobjekt aus den Typbibliotheken erstellt werden, die in den
METADATA-Tags spezifiziert sind.
226 StaticObjects kann nicht aktualisiert werden. StaticObjects-Auflistung
kann nicht zur Laufzeit aktualisiert werden.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)
Anhang A • Referenz für den Administrator 439

Kennung Beschreibung
227 Server.Execute fehlgeschlagen. Der Aufruf zu Server.Execute ist fehlge-
schlagen.
228 Server.Execute Fehler. Der Aufruf zu Server.Execute ist fehlgeschlagen,
während die Seite geladen wurde.
229 Server.Transfer fehlgeschlagen. Der Aufruf zu Server.Transfer ist fehlge-
schlagen.
230 Server.Transfer Fehler. Der Aufruf zu Server.Transfer ist fehlgeschlagen,
während die Seite geladen wurde.
231 Server.Execute Fehler. Es wurde eine ungültige URL-Form oder eine voll
gekennzeichnete absolute URL verwendet. Verwenden Sie relative URLs.
232 Ungültige Cookie-Spezifikation. METADATA-Tag enthält ein ungültige
Cookie-Spezifikation.
233 Cookie-Skriptquelle kann nicht geladen werden. Die Cookie-Skriptquell-
datei, die in METADATA-Tag angegeben ist, kann nicht geladen werden.
234 Ungültige Include-Anweisung. Serverseitige Include-Anweisung darf
nicht in einem Skriptblock vorhanden sein. Bitte verwenden Sie die SRC=
Attribute von dem <SCRIPT>-Tag.
235 Server.Transfer-Fehler. Es wurde eine ungültige URL-Form oder eine voll
gekennzeichnete absolute URL verwendet. Verwenden Sie relative URLs.
236 Ungültige Cookie-Spezifikation. METADATA-Tag enthält einen ungülti-
gen oder fehlenden SRC-Parameter.
237 Ungültige Cookie-Spezifikation. METADATA-Tag enthält einen ungülti-
gen oder fehlenden NAME-Parameter.
238 Fehlender Attributwert. Es wurde kein Wert angegeben für das '|' Attribut.
239 Datei kann nicht verarbeitet werden. UNICODE ASP-Dateien werden
nicht unterstützt.
240 Skriptmodulausnahme. Skriptmodul: Ausnahme '%X' in '%s' von '%s'.
241 CreateObject-Ausnahme. Das CreateObject von '%s' verursachte Aus-
nahme %X.
242 Abfrage OnStartPage-Schnittstellenausnahme. Abfrage von den OnStart-
Page- oder den OnEndPage-Methoden von Objekt '%s' verursachte Aus-
nahme %X.
Tab. A.3: Ereignisse in Bezug auf Active Server Pages (Forts.)

Die Variablen – etwa %1, %2 oder | – werden im Fenster EIGENSCHAFTEN VON


EREIGNIS durch die entsprechenden Daten ersetzt.
440 Referenz zu Leistungsindikatoren

A.4 Referenz zu Leistungsindikatoren


Die Leistungsindikatoren lassen sich in acht unterschiedliche Kategorien mit je
vier Verfügbarkeitsbereichen unterteilen.

Leistungsindikatoren in Bezug auf die Bandbreitennutzung

Leistungsindikator Verfügbarkeit
Aktuell blockierte Async-E/A-Anforderungen Global, Web, FTP
Gemessene Async-E/A-Bandbreitennutzung Global, Web
Erlaubte Async-E/A-Anforderungen insgesamt Global, Web
Blockierte Async-E/A-Anforderungen insgesamt Global, Web
Abgelehnte Async-E/A-Anforderungen insgesamt Global, Web

Leistungsindikatoren in Bezug auf den Durchsatz

Leistungsindikator Verfügbarkeit
Bytes empfangen/s Web, FTP
Bytes gesendet/s Web, FTP
Bytes/s insgesamt Web, FTP
Dateien/s Web
Dateien empfangen/s Web
Dateien gesendet/s Web
Dateien empfangen insgesamt Web, FTP
Dateien gesendet insgesamt Web, FTP
Dateien übertragen insgesamt Web, FTP

Leistungsindikatoren in Bezug auf bestimmte Anforderungen und auf


Fehler

Leistungsindikator Verfügbarkeit
CGI-Anforderungen/s Web
Aktuelle CGI-Anforderungen Web
Aktuelle ISAPI-Erweiterungsanforderungen Web
Debug-Anforderungen ASP
DELETE-Anforderungen/s Web
Skriptlaufzeit-Fehler ASP
Anhang A • Referenz für den Administrator 441

Leistungsindikator Verfügbarkeit
ASP-Präprozessor-Fehler ASP
Skript-Kompilierfehler ASP
Fehler/s ASP
GET-Anforderungen/s Web
HEAD-Anforderungen/s Web
ISAPI-Erweiterungsanforderungen/s Web
Maximale Anzahl CGI-Anforderungen Web
Maximale Anzahl ISAPI-Erweiterungsanforderungen Web
Fehler: Nicht gefunden/s Web
Andere Anforderungsmethoden/s Web
POST-Anforderungen/s Web
PUT-Anforderungen/s Web
Eingehende Anforderungen insgesamt (in Byte) ASP
Ausgehende Anforderungen insgesamt (in Byte) ASP
Bearbeitungszeit ASP
Anforderungen-Wartezeit ASP
Unterbrochene Anforderungen ASP
Aktuelle Anforderungen ASP
Fehlgeschlagene Anforderungen insgesamt ASP
Nicht autorisierte Anforderungen ASP
Fehler: Nicht gefunden insgesamt ASP
Anforderungen in der Warteschlange ASP
Abgelehnte Anforderungen ASP
Erfolgreiche Anforderungen ASP
Zeitüberschreitungen von Anforderungen ASP
Anforderungen insgesamt ASP
Anforderungen/s ASP
CGI-Anforderungen insgesamt Web
DELETE-Anforderungen insgesamt Web
GET-Anforderungen insgesamt Web
HEAD-Anforderungen insgesamt Web
ISAPI-Erweiterungsanforderungen insgesamt Web
Anforderungsmethoden insgesamt Web
442 Referenz zu Leistungsindikatoren

Leistungsindikator Verfügbarkeit
Anforderungsmethoden insgesamt/s Web
Fehler: Nicht gefunden insgesamt Web
Andere Anforderungsmethoden insgesamt Web
POST-Anforderungen insgesamt Web
PUT-Anforderungen insgesamt Web
TRACE-Anforderungen insgesamt Web
TRACE-Anforderungen/s Web

Leistungsindikatoren in Bezug auf Verbindungen und Benutzer

Leistungsindikator Verfügbarkeit
Anonyme Benutzer/s Web
Verbindungsversuche/s Web
Aktuelle Anonyme Benutzer Web, FTP
Aktuelle Verbindungen Web, FTP
Aktuelle Nicht-Anonyme Benutzer Web, FTP
Maximale Anzahl Anonymer Benutzer Web, FTP
Maximale Anzahl Verbindungen Web, FTP
Maximale Anzahl Nicht-Anonymer Benutzer Web, FTP
Gesamtzahl Anonymer Benutzer Web, FTP
Verbindungsversuche insgesamt Web, FTP
Anmeldeversuche insgesamt Web, FTP
Gesamtzahl Nicht-Anonymer Benutzer Web, FTP

Leistungsindikatoren in Bezug auf Zwischenspeicherung und


Speichernutzung

Leistungsindikator Verfügbarkeit
Cache-Leerungen Global
Cache-Treffer Global
Cache-Treffer % Global
Cache-Fehltreffer Global
Zwischengespeicherte Dateihandles Global
Verzeichnislisten Global
Reservierter Speicher ASP
Anhang A • Referenz für den Administrator 443

Leistungsindikator Verfügbarkeit
Objekte Global
Script-Engines im Cache ASP
Vorlagen im Cache ASP
Trefferanteil im Vorlagen-Cache ASP
Vorlagen-Meldungen ASP

Leistungsindikatoren zu Sitzungen

Leistungsindikator Verfügbarkeit
Sitzungsdauer ASP
Sitzungen ASP
Zeitüberschreitungen von Sitzungen ASP
Sitzungen insgesamt ASP

Leistungsindikatoren für Transaktionen

Leistungsindikator Verfügbarkeit
Abgebrochene Transaktionen ASP
Durchgeführte Transaktionen ASP
Transaktionen in Bearbeitung ASP
Transaktionen insgesamt ASP
Transaktionen/s ASP
Tab. A.4: Verfügbarkeit von Leistungsindikatoren

Es gibt noch einen weiteren Leistungsindikator, der sich auf den Neustart bezieht.
Er heißt »Betriebszeit des Dienstes« und ist für Web- und FTP-Dienste verfügbar.

A.4.1 Beschreibungen der Leistungsindikatoren


Aktuell blockierte Async-E/A-Anforderungen. Aktuelle Anzahl der Anforde-
rungen, die vorübergehend durch die Einstellung der Bandbreitenbegrenzung blo-
ckiert werden.
Gemessene Async-E/A-Bandbreitennutzung. Die Anzahl der Bytes, die vom
Webserver empfangen und gesendet werden, wobei für einen Zeitraum von einer
Minute ein Durchschnittswert erstellt wird.
444 Referenz zu Leistungsindikatoren

Erlaubte Async-E/A-Anforderungen insgesamt. Die Anzahl der Benutzeran-


forderungen, die durch den WWW-Dienst und FTP-Dienst seit dem Starten der
Dienste zugelassen wurden.
Blockierte Async-E/A-Anforderungen insgesamt. Die Gesamtzahl der Anfor-
derungen, die seit dem Dienststart vorübergehend durch die Einstellung der
Bandbreitenbegrenzung blockiert wurden.
Abgelehnte Async-E/A-Anforderungen insgesamt. Die Gesamtzahl der (auf-
grund der Bandbreiteneinstellungen) zurückgewiesenen Benutzeranforderungen
seit Starten des Dienstes.
Bytes empfangen/s. Die Geschwindigkeit, mit der Daten vom Dienst auf der
Anwendungsschicht empfangen werden, Protokollheader und Steuerungsbytes
nicht eingeschlossen.
Bytes gesendet/s. Die Geschwindigkeit, mit der Daten vom Dienst gesendet
werden.
Bytes/s insgesamt. Die Rate, mit der alle Bytes vom WWW-Dienst übertragen
werden
Dateien/s. Die Häufigkeit, mit der Dateien seit dem Start des WWW-Dienstes
übertragen wurden.
Dateien empfangen/s. Die Anzahl der Dateien, die im Durchschnitt vom WWW-
Dienst seit dem Start des Dienstes pro Sekunde empfangen wurden.
Dateien gesendet/s. Die Anzahl der Dateien, die im Durchschnitt vom WWW-
Dienst seit dem Start des Dienstes pro Sekunde gesendet wurden.
Dateien empfangen insgesamt. Die Gesamtzahl der vom WWW-Dienst seit dem
Start des Dienstes empfangenen Dateien.
Dateien gesendet insgesamt. Die Gesamtzahl der vom WWW-Dienst seit dem
Start des Dienstes gesendeten Dateien.
Dateien übertragen insgesamt. Die Gesamtzahl der vom WWW-Dienst seit dem
Start des Dienstes übertragenen Dateien. Dateien insgesamt ist die Summe aus
Dateien gesendet insgesamt und Dateien empfangen insgesamt.
CGI-Anforderungen/s. Die Anzahl der CGI-Anforderungen, die vom WWW-
Dienst pro Sekunde gleichzeitig bearbeitet werden.
Aktuelle CGI-Anforderungen. Aktuelle Anzahl der CGI-Anforderungen, die
vom Dienst gleichzeitig bearbeitet werden.
Aktuelle ISAPI-Erweiterungsanforderungen. Aktuelle Anzahl der ISAPI-
Erweiterungsanforderungen, die vom Dienst gleichzeitig bearbeitet werden.
Debug-Anforderungen. Die Anzahl der Anforderungen zum Debuggen eines
Dokuments.
Anhang A • Referenz für den Administrator 445

DELETE-Anforderungen/s. Die Anzahl der HTTP-Anforderungen, die pro


Sekunde mit der DELETE-Methode gestellt werden.
Skriptlaufzeit-Fehler. Die Anzahl der Anforderungen, die aufgrund von Lauf-
zeitfehlern fehlgeschlagen sind.
ASP-Präprozessor-Fehler. Die Anzahl der Anforderungen, die aufgrund von
Präprozessor-Fehlern fehlgeschlagen sind.
Skript-Kompilierfehler. Die Gesamtzahl der Anforderungen, die aufgrund von
Skript-Kompilierfehlern fehlgeschlagen sind.
Fehler/s. Die Anzahl der Fehler pro Sekunde.
GET-Anforderungen/s. Die Anzahl der HTTP-Anforderungen, die pro Sekunde
mit der GET-Methode gestellt werden.
HEAD-Anforderungen/s. Die Anzahl der HTTP-Anforderungen, die pro
Sekunde mit der HEAD-Methode gestellt werden.
ISAPI-Erweiterungsanforderungen/s. Die Anzahl der ISAPI-Erweiterungsan-
forderungen, die vom WWW-Dienst pro Sekunde gleichzeitig bearbeitet werden.
Maximale Anzahl CGI-Anforderungen. Die größte Anzahl von CGI-Anforde-
rungen, die vom WWW-Dienst seit dem Start des Dienstes gleichzeitig bearbeitet
wurden.
Maximale Anzahl ISAPI-Erweiterungsanforderungen. Die größte Anzahl von
ISAPI-Erweiterungsanforderungen, die vom WWW-Dienst seit dem Start des
Dienstes gleichzeitig bearbeitet wurden.
Fehler: Nicht gefunden/s. Die Anzahl von Fehlern, die pro Sekunde auf Anfor-
derungen zurückzuführen sind, die vom Server nicht erfüllt werden konnten, weil
das angeforderte Dokument nicht gefunden werden konnte.
Andere Anforderungsmethoden/s. Die Anzahl der HTTP-Anforderungen, die
pro Sekunde gestellt werden und nicht die Methode GET, POST, PUT, DELETE,
TRACE oder HEAD verwenden.
POST-Anforderungen/s. Die Anzahl von HTTP-Anforderungen, die pro
Sekunde mit der POST-Methode erfolgen.
PUT-Anforderungen/s. Die Anzahl von HTTP-Anforderungen, die pro Sekunde
mit der PUT-Methode gestellt werden.
Eingehende Anforderungen insgesamt (in Byte). Die Gesamtgröße aller Anfor-
derungen (in Byte).
Ausgehende Anforderungen insgesamt (in Byte). Die Gesamtgröße aller an
Clients gesendeten Antworten (in Byte).
Bearbeitungszeit. Die Anzahl der Millisekunden, die zur Ausführung der letzten
Anforderung benötigt wurden.
446 Referenz zu Leistungsindikatoren

Anforderungen-Wartezeit. Die Anzahl der Millisekunden, die die letzte Anfor-


derung in der Warteschlange verblieben ist.
Unterbrochene Anforderungen. Die Anzahl der Anforderungen, bei denen auf-
grund von Kommunikationsfehlern die Verbindung getrennt wurde.
Aktuelle Anforderungen. Die Anzahl der Anforderungen, die zurzeit ausgeführt
werden.
Fehlgeschlagene Anforderungen insgesamt. Die Gesamtzahl der Anforderun-
gen, die aufgrund von Fehlern, fehlgeschlagener Autorisierung und Ablehnungen
fehlgeschlagen sind.
Nicht autorisierte Anforderungen. Die Anzahl der Anforderungen, die auf-
grund unzureichender Zugriffsrechte fehlgeschlagen sind.
Fehler: Nicht gefunden insgesamt. Die Anzahl der Anforderungen für Dateien,
die nicht gefunden wurden.
Anforderungen in der Warteschlange. Die Anzahl der Anforderungen, die sich
in der Warteschlange für die Verarbeitung durch den Dienst befinden.
Abgelehnte Anforderungen. Die Gesamtzahl der Anforderungen, die nicht aus-
geführt wurden, da die Ressourcen für ihre Verarbeitung nicht ausreichten.
Erfolgreiche Anforderungen. Die Anzahl der Anforderungen, die erfolgreich
ausgeführt wurden.
Zeitüberschreitungen von Anforderungen. Die Anzahl der Anforderungen, für
die eine Zeitüberschreitung eingetreten ist.
Anforderungen insgesamt. Die Gesamtzahl der Anforderungen, die empfangen
wurden, seitdem der Dienst gestartet wurde.
Anforderungen/s. Die Anzahl der Anforderungen, die pro Sekunde ausgeführt
werden.
CGI-Anforderungen insgesamt. Die Gesamtzahl der CGI-Anforderungen, die
seit dem Start des Dienstes ausgeführt worden sind.
DELETE-Anforderungen insgesamt. Die Anzahl der HTTP-Anforderungen
mit der DELETE-Methode.
GET-Anforderungen insgesamt. Die Gesamtzahl der HTTP-Anforderungen mit
der GET-Methode, die vom Dienst empfangen wurden.
HEAD-Anforderungen insgesamt. Die Gesamtzahl der HTTP-Anforderungen
mit der HEAD-Methode, die vom Dienst empfangen wurden.
ISAPI-Erweiterungsanforderungen insgesamt. Die Gesamtzahl der HTTP-
ISAPI-Erweiterungsanforderungen, die vom Dienst empfangen wurden.
Anhang A • Referenz für den Administrator 447

Anforderungsmethoden insgesamt. Die Gesamtzahl der Anforderungen mit den


Methoden HTTP GET, POST, PUT, DELETE, TRACE, HEAD oder anderen
Methoden.
Anforderungsmethoden insgesamt/s. Die Anzahl der HTTP-Anforderungen,
die pro Sekunde gestellt werden und die Methoden GET, POST, PUT, DELETE,
TRACE oder HEAD verwenden.
Fehler: Nicht gefunden insgesamt. Die Anzahl der Anforderungen, die vom
WWW-Dienst nicht erfüllt werden konnten, weil das angeforderte Dokument
nicht gefunden werden konnte
Andere Anforderungsmethoden insgesamt. Die Anzahl der HTTP-Anforderun-
gen, die nicht die Methode GET, POST, PUT, DELETE, TRACE oder HEAD ver-
wenden.
POST-Anforderungen insgesamt. Die Anzahl der HTTP-Anforderungen mit
der POST-Methode.
PUT-Anforderungen insgesamt. Die Anzahl der HTTP-Anforderungen mit der
PUT-Methode.
TRACE-Anforderungen insgesamt. Die Anzahl der HTTP-Anforderungen mit
der TRACE-Methode.
TRACE-Anforderungen/s. Die Anzahl der HTTP-Anforderungen, die pro
Sekunde mit der TRACE-Methode gestellt werden.
Anonyme Benutzer/s. Die Anzahl der Benutzer, die pro Sekunde mithilfe des
WWW-Dienstes eine anonyme Verbindung herstellen.
Verbindungsversuche/s. Die Häufigkeit, mit der Verbindungsversuche zum
WWW-Dienst pro Sekunde unternommen werden.
Aktuelle Anonyme Benutzer. Die Anzahl der Benutzer, die derzeit eine ano-
nyme Verbindung zum WWW-Dienst oder FTP-Dienst hergestellt haben.
Aktuelle Verbindungen. Die aktuelle Anzahl der mit dem WWW-Dienst oder
FTP-Dienst hergestellten Verbindungen.
Aktuelle Nicht-Anonyme Benutzer. Die Anzahl der Benutzer, die derzeit eine
nicht-anonyme Verbindung zum WWW-Dienst oder FTP-Dienst hergestellt
haben.
Maximale Anzahl Anonymer Benutzer. Die maximale Anzahl der Benutzer, die
gleichzeitige anonyme Verbindungen zum WWW-Dienst oder FTP-Dienst (seit
dem Start des Dienstes) hergestellt haben.
Maximale Anzahl Verbindungen. Die höchste Zahl gleichzeitiger Verbindun-
gen, die mit dem WWW-Dienst oder FTP-Dienst seit dem Start des Dienstes her-
gestellt worden sind.
448 Referenz zu Leistungsindikatoren

Maximale Anzahl Nicht-Anonymer Benutzer. Die maximale Anzahl der


Benutzer, die gleichzeitige nicht-anonyme Verbindungen zum WWW-Dienst oder
FTP-Dienst hergestellt haben.
Gesamtzahl Anonymer Benutzer. Die Gesamtzahl der Benutzer, die eine ano-
nyme Verbindung mit dem WWW-Dienst oder FTP-Dienst hergestellt haben.
Verbindungsversuche insgesamt. Die Gesamtzahl der Versuche, die seit dem
Starten des Dienstes gezählt worden sind, um eine Verbindung mit dem WWW-
Dienst oder FTP-Dienst herzustellen.
Anmeldeversuche insgesamt. Die Gesamtzahl der erfolgreichen Anmeldungen
beim WWW-Dienst oder FTP-Dienst seit dem Start des Dienstes.
Gesamtzahl Nicht-Anonymer Benutzer. Die Gesamtzahl der Benutzer, die eine
nicht-anonyme Verbindung mit dem WWW-Dienst oder FTP-Dienst (seit dem
Start des Dienstes) hergestellt haben.
Cache-Leerungen. Die Häufigkeit, mit der seit dem Starten des Dienstes der
Cache insgesamt geleert worden ist.
Cache-Treffer. Die Häufigkeit, mit der seit dem Starten des Dienstes eine Datei-
öffnung, eine Verzeichnisliste oder die Anforderung eines dienstspezifischen
Objekts im IIS-Cache gefunden wurde.
Cache-Treffer %. Verhältnis der Cache-Treffer zu allen Cache-Anforderungen.
Cache-Fehltreffer. Die Häufigkeit, mit der seit dem Start des Dienstes eine
Dateiöffnung, eine Verzeichnisliste oder die Anforderung eines dienstspezifi-
schen Objekts nicht im Cache gefunden wurde.
Zwischengespeicherte Dateihandles. Aktuelle Anzahl der geöffneten Datei-
handles, die von allen IIS-Diensten zwischengespeichert werden.
Verzeichnislisten. Aktuelle Anzahl von zwischengespeicherten Verzeichnislis-
ten, die von allen IIS-Diensten zwischengespeichert werden.
Reservierter Speicher. Der Gesamtumfang des Speichers (in Byte), der zurzeit
durch Active Server Pages reserviert ist.
Objekte. Aktuelle Anzahl der von allen IIS-Diensten zwischengespeicherten
Objekte.
Skript-Engines im Cache. Die Anzahl der Skriptmodule im Cache.
Vorlagen im Cache. Die Anzahl der zurzeit im Cache zwischengespeicherten
Vorlagen.
Trefferanteil im Vorlagen-Cache. Der Prozentsatz der Anforderungen, die im
Vorlagen-Cache gefunden wurden.
Vorlagen-Meldungen. Die Anzahl der Vorlagen im Cache, die aufgrund einer
Änderungsbenachrichtigung ungültig geworden sind.
Anhang A • Referenz für den Administrator 449

Sitzungsdauer. Die Anzahl der Millisekunden, die die letzte Sitzung gedauert
hat.
Sitzungen. Die Anzahl der Sitzungen, die durch den Dienst verarbeitet werden.
Zeitüberschreitungen von Sitzungen. Die Anzahl der Sitzungen, für die eine
Zeitüberschreitung eingetreten ist.
Sitzungen insgesamt. Die Gesamtzahl der Sitzungen seit dem Starten des Diens-
tes.
Abgebrochene Transaktionen. Die Anzahl der abgebrochenen Transaktionen.
Durchgeführte Transaktionen. Die Anzahl der bestätigten oder abgeschlosse-
nen Transaktionen.
Transaktionen in Bearbeitung. Die Anzahl der gegenwärtig bearbeiteten Trans-
aktionen.
Transaktionen insgesamt. Die Gesamtzahl der begonnenen Transaktionen seit
Starten des Dienstes.
Transaktionen/s. Die Anzahl der pro Sekunde begonnenen Transaktionen.

A.5 Referenz zu Timeouts


Timeoutwerte ermöglichen dem Server die Festlegung, wie lange bestimmte
Serverressourcen bestimmten Tasks oder Clients zugeordnet werden. In Tabelle
A.5 sind die verschiedenen Timeoutwerte in IIS sowie deren Einstellmöglichkei-
ten aufgeführt. Wenn in der Spalte »Im Snap-In verfügbar?« der Wert Nein ange-
geben ist, müssen Sie den Timeout in der Metabasis einstellen.

Timeout Standardwert (in Sekunden) Im Snap-In


verfügbar?
AspScriptTimeout 90 Ja
AspSessionTimeout 1200 Ja
ConnectionTimeout 900 Ja
CGITimeout 300 Ja
ServerListenTimeout 12 Nein
PoolIdcTimeout 30 Nein
AspQueueTimeout -1 (kein Timeout) Nein
CpuLimitLogEvent Benutzerdefinierter Prozentwert Ja
CpuLimitPriority 150% des Wertes von CpuLimitLogEvent Ja
Tab. A.5: Timeouts für die Ressourcenzuweisung
450 Referenz zu den Protokollierungseigenschaften

Timeout Standardwert (in Sekunden) Im Snap-In


verfügbar?
CpuLimitProcStop 200% des Wertes von CpuLimitLogEvent Ja
CpuLimitPause 0 (unbegrenzt) Nein
Tab. A.5: Timeouts für die Ressourcenzuweisung (Forts.)

Es gibt außerdem drei IIS-Neustart-Timeouts, die in Tabelle A.6 gezeigt sind.

Timeout Standardwert (in Sekunden)


Stop 60
Restart 20
Reboot 0
Tab. A.6: Neustart-Timeouts

A.6 Referenz zu den Protokollierungseigenschaften


Tabelle A.7 zeigt die Definitionen der Protokollierungseigenschaften und deren
Werte. Dabei ist nur das Protokoll W3C-erweitert berücksichtigt.

Präfix Bedeutung
s- Serveraktionen
c- Clientaktionen
cs- Client-zu-Server-Aktionen
sc- Server-zu-Client-Aktionen

Feld Angezeigt als Definition


Datum date Das Datum, an dem die Aktivität aufgetreten
ist.
Zeit time Die Zeit, zu der die Aktivität aufgetreten ist.
Client-IP-Adresse c-ip Die IP-Adresse des Clients, der auf den Ser-
ver zugegriffen hat.
Benutzername c-username Der Name des authentifizierten Benutzers,
der auf den Server zugegriffen hat. Anonyme
Benutzer sind hier nicht eingeschlossen; diese
werden durch einen Bindestrich dargestellt.
Tab. A.7: Definitionen der Protokolliereigenschaften für
das Format W3C-erweitert.
Anhang A • Referenz für den Administrator 451

Feld Angezeigt als Definition


Dienstname und s-sitename Der auf dem Clientcomputer ausgeführte
Instanznummer Internetdienst und die Instanznummer.
Servername s-computername Der Name des Servers, auf dem der Protokol-
leintrag generiert wurde.
Server-IP s-ip Die IP-Adresse des Servers, auf dem der Pro-
tokolleintrag generiert wurde.
Methode cs-method Die Aktion, die der Client auszuführen ver-
sucht hat (zum Beispiel die Ausführung der
GET-Methode).
URI-Stamm cs-uri-stem Die Ressource, auf die zugegriffen wurde,
z.B. Default.htm.
URI-Abfrage cs-uri-query Die Abfragen, falls zutreffend, die der Client
auszuführen versuchte.
Http-Status sc-status Der Status der Aktion in HTTP-Terminolo-
gie.
Win32-Status sc-win32-status Der Status der Aktion in der von
Windows 2000 verwendeten Terminologie.
Bytes gesendet sc-bytes Die Anzahl der vom Server gesendeten Bytes.
Bytes empfangen cs-bytes Die Anzahl der vom Server empfangenen
Byte.
Serveranschluss s-port Die Anschlussnummer, mit der der Client
verbunden ist.
Zeitdauer time-taken Die Zeitspanne, die für die Aktion benötigt
wurde.
Protokollversion cs-protocol Die Protokollversion (HTTP, FTP), die vom
Client verwendet wird. Für HTTP ist dies ent-
weder HTTP 1.0 oder HTTP 1.1.
Benutzeragent cs(User-Agent) Der auf dem Client verwendete Browser.
Cookie cs(Cookie) Der Inhalt des gesendeten oder empfangenen
Cookies, falls vorhanden.
URI-Referenz cs(Referer) Die von dem Benutzer zuvor besuchte Site.
Diese Site verfügte über einen Hyperlink zu
der aktuellen Site.
Prozesstyp s-proc-type Der Typ des Prozesses, der das Ereignis aus-
gelöst hat.
Prozessereignis s- Das ausgelöste Ereignis.
Tab. A.7: Definitionen der Protokolliereigenschaften für
das Format W3C-erweitert. (Forts.)
452 Referenz zu den Protokollierungseigenschaften

Feld Angezeigt als Definition


Benutzerzeit ins- s-user-time Benutzerzeit insgesamt
gesamt
Kernelzeit insge- s-kernel-time Kernelzeit insgesamt.
samt
Seitenfehler ins- s-page-faults Die Gesamtzahl der Speicherverweise, die zu
gesamt Speicherseitenfehlern führten.
Prozesse insge- s-total-procs Die Gesamtzahl der CGI- und Out-of-
samt Process-Anwendungen, die während des
aktuellen Intervalls erstellt wurden.
Aktive Prozesse s-active-procs Die Gesamtzahl der CGI- und Out-of-
Process-Anwendungen, die während der Auf-
zeichnung des Protokolls ausgeführt wurden.
Beendete Pro- s-stopped-procs Die Gesamtzahl der CGI- und Out-of-
zesse insgesamt Process-Anwendungen, die während des
aktuellen Intervalls aufgrund von Prozess-
beschränkungen beendet wurden.
Prozesstyp s-proc-type Der Typ des Prozesses, der das Ereignis aus-
gelöst hat.
Tab. A.7: Definitionen der Protokolliereigenschaften für
das Format W3C-erweitert. (Forts.)

Tabelle A.8 zeigt jene Ereignisse an, die nur einen Wert und eine Bedeutung
haben (d.h. die Spalten »Wert« und »angezeigt als« sind hier identisch).

Wert Bedeutung
Site-Stop Die Ausführung der Website wurde aus unbestimmtem Grund
beendet.
Site-Start Die Website wurde gestartet oder erneut gestartet.
Site-Pause Die Ausführung der Website wurde angehalten.
Periodic-Log Hierbei handelt es sich um einen regelmäßig definierten
Protokolleintrag; das entsprechende Intervall wurde vom Ad-
ministrator festgelegt.
Interval-Start Das Rücksetzungsintervall hat angefangen.
Interval-End Der Wert für das Zurücksetzungsintervall wurde erreicht und
zurückgesetzt.
Interval-Change Der Websiteadministrator hat den Wert für das Zurücksetzungs-
intervall geändert.
Tab. A.8: Ereignisse mit nur einem Wert und einer Bedeutung.
Anhang A • Referenz für den Administrator 453

Wert Bedeutung
Log-Change-Int/ Eines der folgenden Ereignisse ist eingetreten: das Protokollinter-
Start/Stop vall wurde geändert, ein Intervallereignis ist eingetreten, oder die
Site wurde entweder beendet, gestartet oder angehalten.
Eventlog-Limit Für die Website wurde ein Ereignisprotokoll erstellt, da eine CGI-
oder Out-of-Process-Anwendung den vom Administrator festge-
legten Ereignisprotokollgrenzwert erreicht hat.
Priority-Limit In der Website wurde für eine CGI- oder Out-of-Process-Anwen-
dung niedrige Priorität festgelegt, da der vom Administrator fest-
gelegte Grenzwert für niedrige Priorität erreicht wurde.
Process-Stop- In der Website wurde eine CGI- oder Out-of-Process-Anwendung
Limit beendet, da der vom Administrator festgelegte Grenzwert für Pro-
zessbeendigung erreicht wurde.
Site-Pause-Limit- In der Website wurde eine CGI- oder Out-of-Process-Anwendung
Reset angehalten, da der vom Administrator festgelegte Grenzwert für
das Anhalten der Site erreicht wurde.
Eventlog-Limit- Der Wert für das Zurücksetzungsintervall wurde erreicht, oder
Reset Eventlog-Limit wurde manuell zurückgesetzt.
Priority-Limit- Der Wert für das Zurücksetzungsintervall wurde erreicht, oder
Reset Priority-Limit wurde manuell zurückgesetzt.
Process-Stop- Der Wert für das Zurücksetzungsintervall wurde erreicht, oder
Limit-Reset Process-Stop-Limit wurde manuell zurückgesetzt.
Site-Pause-Limit Der Wert für das Zurücksetzungsintervall wurde erreicht, oder
Site-Pause-Limit wurde manuell zurückgesetzt.
Tab. A.8: Ereignisse mit nur einem Wert und einer Bedeutung. (Forts.)

A.7 Referenz zur Umleitung


IIS bietet Ihnen die Möglichkeit, eine Benutzeranforderung an eine andere URL
umzuleiten, falls die angeforderte URL nicht mehr vorhanden ist. Natürlich sind
auch andere Anwendungsmöglichkeiten für die Umleitung denkbar. Tabelle A.9
zeigt die sechs Umleitungsvariablen, die zur Übergabe von Teilen der ursprüngli-
chen URL an die Ziel-URL verwendet werden.

Variable Beschreibung
$S Übergibt das Suffix der angeforderten URL. Das Suffix ist derjenige Teil
der ursprünglichen URL, der verbleibt, nachdem der umgeleitete Teil der
URL ersetzt wurde.
$P Übergibt die Parameter aus der ursprünglichen URL.
Tab. A.9: Umleitungsvariablen
454 Referenz zur Umleitung

Variable Beschreibung
$Q Übergibt sowohl das Fragezeichen als auch die Parameter aus der
ursprünglichen URL.
$V Übergibt die angeforderte URL ohne den Servernamen.
$0 to $9 Übergibt den Teil der angeforderten URL, der dem angegebenen Platz-
halter entspricht.
! Keine Umleitung.
Tab. A.9: Umleitungsvariablen

Beispiele
• $S. Wenn die ursprüngliche Anforderung http://localhost/default.htm lau-
tete, dann ist das Suffix default.htm.
• $P. Wenn die ursprüngliche Anforderung www.gkcomput.com?username=gobrien
lautete, dann wird der Parameter username=gobrien übergeben.
• $Q. Wenn wir das obige Beispiel weiter verwenden, dann würde der überge-
bene Parameter hier ?username=gobrien sein.
• $V. Im Falle einer Anforderung des URL //localhost/scripts/adrot.asp würde
hiermit die Zeichenkette /scripts/adrot.asp übergeben.
Anhang B
Referenz für IIS Admin Objects

B.1 IIsCertMapper 456


B.2 IIsCompressionSchemes 460
B.3 IIsCompressionScheme 461
B.4 IIsComputer 462
B.5 IIsCustomLogModule 467
B.6 IIsFilter 468
B.7 IIsFilters 469
B.8 IIsFtpInfo 470
B.9 IIsFtpServer 471
B.10 IIsFtpService 474
B.11 IIsFtpVirtualDir 476
B.12 IIsIPSecurity 477
B.13 IIsLogModule 482
B.14 IIsLogModules 483
B.15 IIsMimeMap 484
B.16 IIsMimeType 484
B.17 IIsWebDirectory 486
B.18 IIsWebFile 495
B.19 IIsWebInfo 496
B.20 IIsWebServer 497
B.21 IIsWebService 502
B.22 IIsWebVirtualDir 506
B.23 Konstanten 509
456 IIsCertMapper

In diesem Anhang finden Sie alle notwendigen Informationen zu IIS Admin


Objects.

B.1 IIsCertMapper
Mit Hilfe des Objekts IIsCertMapper werden Windows-Benutzerkonten Zertifi-
kate zugeordnet. IIsCertMapper ist ein ADSI-Objekt.
ADsPath
IIS://computername/W3SVC/n/IIsCertMapper

In ADsPath werden zwei Variablen verwendet. computername ist der Name des
Computers, auf dem das Objekt liegt, n die Anzahl der Dienste, auf die Sie sich
beziehen.
Syntax
varRückgabe = IIsCertMapper.methode

Die Variable varRückgabe enthält den Rückgabewert der Methode.


methode ist die gewählte Methode.
Das Objekt IISCertMapper kann mit den in den folgenden Abschnitten aufgelis-
teten Methoden arbeiten.

CreateMapping
Mit dieser Methode wird einem Windows-Konto ein Zertifikat zugeordnet.
Syntax
IIsCertMapper.CreateMapping vCert, strAcct, strPasswd, strName, boolEnabled

vCert enthält das Zertifikat. strAcct enthält die Zeichenfolge für das Windows-
Konto. strPasswd enthält die Zeichenfolge für das Kennwort. strName enthält den
angezeigten Namen für das Konto. boolEnabled legt für die Aktivierung der
Zuordnung TRUE und für die Deaktivierung der Zuordnung FALSE fest.
Beispiel
<%
Dim objCert, strCert
strCert = Request.ClientCertificate("CERTIFICATE")
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")
objCert.CreateMapping strCert, _ "MEINKTO", "MEINPASS", "Mein Name", True
%>
Anhang B • Referenz für IIS Admin Objects 457

DeleteMapping
Mit dieser Methode wird eine vorhandene Zertifikatszuordnung gelöscht. Es gibt
vier Möglichkeiten, um nach einer Zuordnung zu suchen: Suche nach Zertifikat,
nach Name, nach Windows-Konto und nach numerischem Zeichenfolgenindex.
Syntax
IIsCertMapper.DeleteMapping suchMethode, strKey

suchMethode bezeichnet die Suchmethode für die Zuordnung. Sie enthält einen
von vier gültigen ganzzahligen Werten:
• 1. Suche nach Zertifikat
• 2. Suche nach Name
• 3. Suche nach Windows-Konto
• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. Ist beispielsweise die Suchmethode 2 (Name) gewählt, dann
enthält strKey den zu suchenden Namen.
Beispiel
<%
Dim objCert
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")_
objCert.DeleteMapping 3, "meinKto"
%>

GetMapping
Mit dieser Methode werden ein Zertifikat und die Zuordnungsdaten von einer
vorhandenen Zertifikatszuordnung abgerufen. Es gibt vier Möglichkeiten, um
nach einer Zuordnung zu suchen: Suche nach Zertifikat, nach Name, nach
Windows-Konto und nach numerischem Zeichenfolgenindex. Die abgerufene
Zuordnung wird in Parametervariablen zurückgegeben, die von Ihnen bereitge-
stellt wurden.
Syntax
IIsCertMapper.GetMapping suchMethode, strKey, vCert, strAcct, strPasswd, strNa-
me, boolEnabled

suchMethode bezeichnet die Suchmethode für die Zuordnung. Sie enthält einen
von vier gültigen ganzzahligen Werten:
• 1. Suche nach Zertifikat
• 2. Suche nach Name
458 IIsCertMapper

• 3. Suche nach Windows-Konto


• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. vCert enthält das zurückgegebene Zertifikat. strAcct enthält
den zurückgegebenen Namen des Windows-Kontos. strPasswd enthält das
zurückgegebene Kennwort. strName enthält den zurückgegebenen Namen.
boolEnabled empfängt den zurückgegebenen Wert TRUE für eine aktivierte
Zuordnung bzw. FALSE für eine deaktivierte Zuordnung.
Beispiel
<%
Dim objCert, strCert, strAcct, strPwd, strName, boolEnabled
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")_
objCert.GetMapping 3, "MEINKTO", strCert, strAcct, strPwd,_ strName, boolEnabled
%>

SetAcct
Mit dieser Methode wird ein neuer Wert für die Zeichenfolge des Windows-
Kontos in einer vorhandenen Zertifikatszuordnung festgelegt
Syntax
IIsCertMapper.SetAcct suchMethode, strKey, strAcct

suchMethode bezeichnet die Suchmethode für die Zuordnung. Sie enthält einen
von vier gültigen ganzzahligen Werten:
• 1. Suche nach Zertifikat
• 2. Suche nach Name
• 3. Suche nach Windows-Konto
• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. strAcct bezeichnet einen neuen Wert für die Zeichenfolge des
Windows-Kontos.
Beispiel
<%
Dim objCert
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")
objCert.SetAcct 3, "MEINKTO", "NeuKonto"
%>
Anhang B • Referenz für IIS Admin Objects 459

SetEnabled
Mit dieser Methode wird eine vorhandene Zertifikatszuordnung aktiviert bzw.
deaktiviert.
Syntax
IIsCertMapper.SetEnabled suchMethode, strKey, boolEnabled

suchMethode bezeichnet die Suchmethode für die Zuordnung. Sie enthält einen
von vier gültigen ganzzahligen Werten:
• 1. Suche nach Zertifikat
• 2. Suche nach Name
• 3. Suche nach Windows-Konto
• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. boolEnabled legt für die Aktivierung der Zuordnung TRUE
und für die Deaktivierung der Zuordnung FALSE fest.
Beispiel
<%
Dim objCert
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")_
objCert.SetEnabled 3, "MEINKTO", True
%>

SetName
Mit dieser Methode wird ein neuer Wert für die Zeichenfolge des Windows-
Kontos in einer vorhandenen Zertifikatszuordnung festgelegt.
Syntax
IIsCertMapper.SetName suchMethode, strKey, strName

suchMethode bezeichnet die Suchmethode für die Zuordnung. Sie enthält einen
von vier gültigen ganzzahligen Werten:
• 1. Suche nach Zertifikat
• 2. Suche nach Name
• 3. Suche nach Windows-Konto
• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. strName gibt einen neuen Wert für die Namenszeichenfolge
an.
460 IIsCompressionSchemes

Beispiel
<%
Dim objCert
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")_
objCert.SetName 3, "MEINKTO", "NeuerName"
%>

SetPwd
Mit dieser Methode wird ein neuer Wert für die Zeichenfolge des Windows-Kenn-
worts in einer vorhandenen Zertifikatszuordnung festgelegt.
Syntax
IIsCertMapper.SetPwd suchMethode, strKey, strPwd

von vier gültigen ganzzahligen Werten:


• 1. Suche nach Zertifikat
• 2. Suche nach Name
• 3. Suche nach Windows-Konto
• 4. Suche nach numerischem Zeichenfolgenindex
strKey bezeichnet die Zeichenkette, die bei der durch suchMethode festgelegten
Suche benutzt wird. strName gibt einen neuen Wert für die Zeichenfolge des
Windows-Kennworts an.
Beispiel
<%
Dim objCert
Set objCert = GetObject("IIS://ADsPath../IIsCertMapper")_
objCert.SetPwd 3, "MEINKTO", "NeuKennwort"
%>

B.2 IIsCompressionSchemes
Das Objekt IIsCompressionSchemes ist ein ADSI-Containerobjekt, dass die ein-
zelnen HTTP 1.1-Komprimierungsverfahren enthält, die IIS über das ADSI-
Objekt IIsCompressionScheme zur Verfügung stehen. Darüber hinaus werden alle
globalen Komprimierungseinstellungen für die IIS-Installation in diesem Objekt
gespeichert.
ADsPath
IIS://computername/W3SVC/Filters/Compression/Parameter
Anhang B • Referenz für IIS Admin Objects 461

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode
varRückgabe = objekt.eigenschaft

Die Variable varRückgabe enthält den Rückgabewert der Methode. objekt enthält
das von der Methode GetObject zurückgegebene IISCompressionSchemes-
Objekt. methode/eigenschaft ist die gewählte Methode bzw. Eigenschaft.
Möglicher Objektinhalt
IIsCompressionScheme
Eigenschaften
Eigenschaften von ADSI-Objekten und ADSI-Containerobjekten. Hinweise zu
diesen Eigenschaften finden Sie in Anhang C.

Eigenschaften in der Metabasis


HcCacheControlHeader HcCompressionBufferSize
HcCompressionDirectory HcDoDiskSpaceLimiting
HcDoDynamicCompression HcDoOnDemandCompression
HcDoStaticCompression HcExpiresHeader
HcFilesDeletedPerDiskFree HcIoBufferSize
HcMaxDiskSpaceUsage HcMaxQueueLength
HcMinFileSizeForComp HcNoCompressionForHttp10
HcNoCompressionForProxies HcNoCompressionForRange
HcSendCacheHeaders

Methoden
Methoden für ADSI-Objekte und ADSI-Containerobjekte.
Hinweise zu diesen Methoden finden Sie in Anhang C.

B.3 IIsCompressionScheme
Dies ist ein ADSI-Objekt, das Konfigurationsinformationen über ein individuelles
Komprimierungsverfahren enthält. Alle Instanzen des Objekts IIsCompression-
Scheme sind in dem ADSI-Containerobjekt IIsCompressionSchemes enthalten.
462 IIsComputer

ADsPath
IIS://computername/W3SVC/Filters/Compression/Scheme

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode
varRückgabe = objekt.eigenschaft

Die Variable varRückgabe enthält den Rückgabewert der Methode. objekt enthält
das von der Methode GetObject zurückgegebene IISCompressionScheme-Objekt.
methode/eigenschaft ist die gewählte Methode bzw. Eigenschaft.
Eigenschaften
ADSI-Objekteigenschaften.
Hinweise zu diesen Eigenschaften finden Sie in Anhang C.

Eigenschaften in der Metabasis


HcCompressionDll HcCreateFlags
HcDoDynamicCompression HcDoStaticCompression
HcDoOnDemandCompression HcDynamicCompressionLevel
HcFileExtensions HcMimeType
HcOnDemandCompLevel HcPriority
HcScriptFileExtensions

Methoden
Methoden für ADSI-Objekte.
Wenn dieses Objekt kein Containerobjekt ist, sind die Methoden für ADSI-
Containerobjekte nicht vorhanden. Hinweise zu diesen Methoden finden Sie in
Anhang C.

B.4 IIsComputer
Mit diesem Objekt können Sie Werte für globale Metabasiseigenschaften festle-
gen, die die Funktionsweise von IIS bestimmen. Es handelt sich hierbei um ein
ADSI-Containerobjekt.
Dem Objekt sind vier Methoden zugeordnet, mit denen Sie mehrere Sicherungs-
versionen im Langzeitspeicher ablegen, die Metabasis von einer Sicherungsver-
sion Ihrer Wahl wiederherstellen und Sicherungskopien auflisten und löschen
können.
Anhang B • Referenz für IIS Admin Objects 463

ADsPath
IIS://computername

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Die Variable varRückgabe enthält den Rückgabewert der Methode. objekt enthält
das von der Methode GetObject zurückgegebene IIsComputer-Objekt. methode
ist die gewählte Methode.
Möglicher Objektinhalt
IIsFtpService, IIsMimeMap, IIsLogModules, IIsWebService
Eigenschaften
ADSI-Objekteigenschaften.
Weitere Hinweise hierzu finden Sie in Anhang C.

Eigenschaften in der Metabasis


MaxBandwidth MaxBandwidthBlocked
MimeMap

Backup
Mit dieser Methode können Sie eine Sicherungskopie der Metabasis unter einem
Pfad ablegen, dessen Name aus bis zu 100 Zeichen bestehen kann. In einem
Sicherungsverzeichnis können mehrere Sicherungskopien der Metabasis gespei-
chert werden.
Syntax
IIsComputer.Backup SicherungsPfad, SicherungsVersion, SicherungsOptionen

Parameter
SicherungsPfad ist eine Zeichenfolge mit bis zu 100 Zeichen, die den Sicherungs-
pfad angibt. Der Speichermechanismus wird von IIS bestimmt. Bei einer leeren
Zeichenfolge wird die Sicherungskopie unter dem Standardpfad gespeichert.
SicherungsVersion gibt die Versionsnummer an, die der Sicherungskopie zuge-
wiesen werden soll. Dieser Wert muss kleiner oder gleich MD_BACKUP_MAX_
VERSION sein. Für diesen Parameter kann einer der folgenden Werte festgelegt
werden:
464 IIsComputer

• MD_BACKUP_HIGHEST_VERSION. Überschreibt die höchste Siche-


rungsversionsnummer im angegebenen Sicherungsverzeichnis.
• MD_BACKUP_NEXT_VERSION. Verwendet die nächsthöchste Siche-
rungsversionsnummer im angegebenen Sicherungsverzeichnis.
Die SicherungsOptionen bestimmen, wie die Sicherung ausgeführt wird. Die fol-
genden Werte sind möglich:
• MD_BACKUP_FORCE_BACKUP. Die Durchführung der Sicherung wird
erzwungen, selbst wenn der über MD_BACKUP_SAVE_FIRST angegebene
SaveData-Vorgang nicht ausgeführt wird.
• MD_BACKUP_OVERWRITE. Führt eine Sicherung in das angegebene
Sicherungsverzeichnis aus. Eine eventuell vorhandene Sicherung gleichen
Namens wird überschrieben.
• MD_BACKUP_SAVE_FIRST. Führt einen SaveData-Vorgang vor dem Er-
stellen der Sicherungskopie durch.

Hinweis
Der Speichermechanismus für die Sicherung wird von IIS bestimmt, so
dass der von Ihnen angegebene Name für den Sicherungspfad nicht not-
wendigerweise in ein bestimmtes Verzeichnis, eine bestimmte Datei
bzw. einen bestimmten Speichermechanismus übersetzt wird. In dieser
Version werden Sicherungskopien der Metabasis als Dateien im Ver-
zeichnis System32\Inetsrv\MetaBack gespeichert.

Beispiel
<%
Dim objComputer, varFlags
Set objComputer = GetObject("IIS://computername ")
varFlags = (MD_BACKUP_SAVE_FIRST)
objComputer.Backup "MeineSicherungen", MD_BACKUP_NEXT_VERSION, varFlags
%>

DeleteBackup
Mit dieser Methode können Sie eine Sicherungskopie der Metabasis aus einem
Sicherungsverzeichnis löschen.
Syntax
IIsComputer.DeleteBackup SicherungsPfad, SicherungsVersion

SicherungsPfad ist eine Zeichenfolge mit bis zu 100 Zeichen, die den Sicherungs-
pfad angibt.
Anhang B • Referenz für IIS Admin Objects 465

SicherungsVersion gibt die Versionsnummer der Sicherungskopie an, die aus dem
Sicherungsverzeichnis gelöscht werden soll. Alternativ dazu kann für den Para-
meter die Konstante MD_BACKUP_HIGHEST_VERSION verwendet werden, die
die höchste Sicherungsversionsnummer aus dem angegebenen Sicherungsver-
zeichnis löscht.
Beispiel
<%
Dim objComputer
Set objComputer = GetObject("IIS://computername")
objComputer.DeleteBackup "MeineSicherungen", 1
%>

EnumBackups
Diese Methode listet alle Sicherungen der Metabasis im angegebenen Sicherungs-
verzeichnis auf. Dabei werden die folgenden Werte für jede Sicherung zurückge-
geben:
• Sicherungspfad
• Versionsnummer
• Sicherungsdatum
Syntax
IIsComputer.EnumBackups SicherungspfadIn, IndexIn, SicherungsverAus, Sicherungs-
pfadAus, SicherungsdatumZeitAus

SicherungspfadIn ist eine Zeichenfolge mit bis zu 100 Zeichen, die den Siche-
rungspfad angibt.
IndexIn gibt den Index der aufzulistenden Sicherungskopie an. Starten Sie den
Index bei 0, und erhöhen Sie den Wert um 1, bis MD_ERROR_DATA_NOT_
FOUND zurückgegeben wird.
SicherungsverAus gibt die Versionsnummer der aufgelisteten Sicherungskopie an.
SicherungspfadAus gibt den Sicherungspfad der aufgelisteten Sicherungskopie
an.
SicherungsdatumZeitAus gibt Datum und Uhrzeit der Sicherungskopie im UTC-
Format (Universal Time Coordinate) aus.
Beispiel
<%@ LANGUAGE=VBScript %>
<SCRIPT LANGUAGE = "JScript" RUNAT = SERVER>
var TempDate = new Date();
TempDif = TempDate.getTimezoneOffset();
466 IIsComputer

Session("sTempDif") = TempDif;
</SCRIPT>
<%
Dim objComp, Index, Version, Location, GMTDate, LocDate, MinDif
MinDif = Session("sTempDif")
On Error Resume Next
Set objComp = GetObject("IIS://computername")
Index = 0
Do While True
objComp.EnumBackups "", Index, Version, Location, GMTDate
If Err.Number <> 0 Then
Exit Do
End If
Response.Write Version & ", "
Response.Write Location & ", "
Response.Write GMTDate & ", "
LocDate = DateAdd("n", (-MinDif), GMTDate)
Response.Write "(" & LocDate & ")"
Response.Write "<BR>"
Index = Index + 1
Loop
%>

Restore
Mit dieser Methode können Sie die Metabasis aus einer Sicherungskopie wieder-
herstellen. Beim Wiederherstellungsvorgang werden alle von IISADMIN abhängi-
gen Dienste, einschließlich sämtlicher Server, beendet, bis die Wiederherstellung
abgeschlossen ist. Anschließend werden alle Dienste neu gestartet. Wenn Sie die
Metabasis daher über ein in einer ASP-Seite enthaltenes Skript wiederherstellen,
müssen Sie einen anderen Computernamen angeben als den vom Skript verwen-
deten. localhost kann nicht als Computername verwendet werden. Aufgrund die-
ser Unterbrechung der Dienste sollten Sie das Wiederherstellen der Metabasis
von einer Sicherungskopie sorgfältig planen.
Syntax
IIsComputer.Restore SicherungsPfad, SicherungsVersion, SicherungsOptionen

strSicherungsPfad ist eine Zeichenfolge mit bis zu 100 Zeichen, die den Siche-
rungspfad angibt.
intSicherungsVersion gibt die Versionsnummer der Sicherungskopie an, die aus
dem Sicherungsverzeichnis wiederhergestellt werden soll. Alternativ dazu kann
für den Parameter die Konstante MD_BACKUP_HIGHEST_VERSION verwendet
werden, die die höchste Sicherungsversionsnummer aus dem angegebenen Siche-
rungsverzeichnis wiederherstellt.
SicherungsOptionen ist reserviert und muss Null sein.
Anhang B • Referenz für IIS Admin Objects 467

Beispiel
<%
Dim objComputer, ComputerName
ComputerName = "MeinAndererComputer"
Set objComputer = GetObject("IIS://" & ComputerName)
objComputer.Restore "MeineSicherungen", MD_BACKUP_HIGHEST_VERSION, 0
%>

Dieses Beispiel zeigt, wie die Methode auf einem anderen Computer im Rahmen
einer ASP-Skripts ausgeführt wird. Dadurch wird verhindert, dass die Dienste auf
dem Computer, auf dem das Skript ausgeführt wird, beendet werden müssen.

Hinweis
Sie können den Wiederherstellungsvorgang auf dem gleichen Computer
ausführen, indem Sie das Skriptutility Cscript.exe verwenden. Weitere
Informationen hierzu finden Sie in Kapitel 13.

Warnung
Die Funktionen zur Sicherung und Wiederherstellung der Metabasis die-
nen zur Versionskontrolle, jedoch nicht zur computerübergreifenden
Replikation. Eine Sicherungskopie der Metabasis darf nur auf dem Com-
puter wiederhergestellt werden, auf dem sie ursprünglich erstellt wurde.

B.5 IIsCustomLogModule
Mit dem Objekt IIsCustomLogModule können Sie benutzerspezifische Protokoll-
informationsfelder konfigurieren.
ADsPath
IIS://computername/Logging/CustomLogging
IIS://computername/Logging/CustomLogging/Feld
IIS://computername/Logging/CustomLogging/Feldergruppe
IIS://computername/Logging/CustomLogging/Feldergruppe/Feld

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Die Variable varRückgabe enthält den Rückgabewert der Methode.


Die Variable objekt enthält den Namen des von der Methode GetObject zurückge-
gebenen Objekts.
methode ist die ausgewählte Methode.
468 IIsFilter

Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


LogCustomPropertyDataType LogCustomPropertyHeader
LogCustomPropertyID LogCustomPropertyMask
LogCustomPropertyName LogCustomPropertyServicesString

Methoden
Methoden für ADSI-Objekte

B.6 IIsFilter
Mit dem Objekt IIsFilter können Sie Metabasiseigenschaften festlegen, die die
Funktionsweise von ISAPI-Filtern bestimmen. Filtereigenschaften können auf
WWW-Dienstebene oder für einen individuellen Webserver definiert werden.
ADsPath
IIS://computername/W3SVC/Filters/FilterName

oder
IIS://computername/W3SVC/N/Filters/FilterName

computername kann ein beliebiger Name oder localhost sein. N ist gegebenen-
falls die Nummer eines Webservers.
Syntax
varRückgabe = objekt.methode

Die Variable varRückgabe enthält den Rückgabewert der Methode.


Die Variable objekt enthält das von der Methode GetObject zurückgegebene
Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften
Anhang B • Referenz für IIS Admin Objects 469

Eigenschaften in der Metabasis


FilterDescription FilterEnabled
FilterFlags FilterPath
FilterState NotifyAccessDenied
NotifyAuthentication NotifyEndOfNetSession
NotifyEndOfRequest NotifyLog
NotifyNonSecurePort NotifyOrderHigh
NotifyOrderLow NotifyOrderMedium
NotifyPreProcHeaders NotifyReadRawData
NotifySecurePort NotifySendRawData
NotifySendResponse NotifyUrlMap

Methoden
Methoden für ADSI-Objekte

B.7 IIsFilters
Dieses Objekt ist ein ADSI-Containerobjekt, in dem eine Auflistung der Objekte
vom Typ IIsFilter enthalten ist. Mit dem Objekt IIsFilters können Sie die Eigen-
schaft FilterLoadOrder festlegen, um die Reihenfolge anzugeben, in der die Filter
geladen werden sollen, und um Auflistungen basierend auf Filtern auszugeben.
Filter können mit Hilfe des Objekts IIsFilters auf WWW-Dienstebene oder auf
einem individuellen Webserver verwaltet werden.
ADsPath
IIS://computername/W3SVC/Filters

oder
IIS://computername/W3SVC/N/Filters

computername kann ein beliebiger Name oder localhost sein. N ist gegebenen-
falls die Nummer eines Webservers.
Syntax
varRückgabe = objekt.methode

Die Variable varRückgabe enthält den Rückgabewert der Methode.


470 IIsFtpInfo

Die Variable objekt enthält das von der Methode GetObject zurückgegebene
Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsFilter
Eigenschaften
ADSI-Objekteigenschaften
Eigenschaften in der Metabasis
FilterLoadOrder
Methoden
Methoden für ADSI-Objekte und für ADSI-Containerobjekte.

B.8 IIsFtpInfo
Einige dem FTP-Dienst zugeordneten Metabasiseigenschaften sind im Teilschlüs-
sel Info des Schlüssels MSFTPSVC gespeichert. Mit diesem Objekt können Sie
Werte für diese Eigenschaften festlegen.
ADsPath
IIS://computername/MSFTPSVC/Info

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften
Eigenschaften in der Metabasis
LogModuleList
Anhang B • Referenz für IIS Admin Objects 471

Methoden
Methoden für ADSI-Objekte

B.9 IIsFtpServer
Mit diesem Objekt können Sie Metabasiseigenschaften für einen bestimmten
FTP-Server festlegen und vererbbare Metabasiseigenschaften für virtuelle FTP-
Verzeichnisse definieren. Es stehen ferner besondere Methoden zur Steuerung
von Servervorgängen zur Verfügung.
Das Objekt IIsFtpServer ist ein ADSI-Containerobjekt.
ADsPath
IIS://computername/MSFTPSVC/N

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsFtpVirtualDir
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AccessFlags AccessRead
AccessWrite AdminACL
AllowAnonymous AnonymousOnly
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass ConnectionTimeout
DefaultLogonDomain DisableSocketPooling
DontLog ExitMessage
472 IIsFtpServer

FtpDirBrowseShowLongDate GreetingMessage
IPSecurity LogAnonymous
LogExtFileBytesRecv LogExtFileBytesSent
LogExtFileClientIp LogExtFileComputerName
LogExtFileCookie LogExtFileDate
LogExtFileFlags LogExtFileHttpStatus
LogExtFileMethod LogExtFileProtocolVersion
LogExtFileReferer LogExtFileServerIp
LogExtFileServerPort LogExtFileSiteName
LogExtFileTime LogExtFileTimeTaken
LogExtFileUriQuery LogExtFileUriStem
LogExtFileUserAgent LogExtFileUserName
LogExtFileWin32Status LogFileDirectory
LogFileLocaltimeRollover LogFilePeriod
LogFileTruncateSize LogNonAnonymous
LogOdbcDataSource LogOdbcPassword
LogOdbcTableName LogOdbcUserName
LogPluginClsId LogType
MaxClientsMessage MaxConnections
MaxEndpointConnections MSDOSDirOutput
Realm ServerAutoStart
ServerBindings ServerComment
ServerListenBacklog ServerListenTimeout
ServerSize ServerState

Continue
Diese Methode setzt den Server fort.
Syntax
IIsFtpServer.Continue

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/MSFTPSVC/2")
objServer.Continue
%>
Anhang B • Referenz für IIS Admin Objects 473

Pause
Diese Methode hält den Server an.
Syntax
IIsFtpServer.Pause

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/MSFTPSVC/2")
objServer.Pause
%>

Start
Diese Methode startet den Server.
Syntax
IIsFtpServer.Start

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/MSFTPSVC/2")
objServer.Start
%>

Stop
Diese Methode beendet den Server.
Syntax
IIsFtpServer.Stop

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/MSFTPSVC/2")
objServer.Stop
%>

Status
Diese Methode ruft den aktuellen Serverstatus ab. Die Rückgabe erfolgt als ganz-
zahlige Werte.
474 IIsFtpService

Syntax
IIsFtpServer.Status

Rückgabewerte
• 1. Es wird gestartet.
• 2. Gestartet.
• 3. Es wird beendet.
• 4. Beendet.
• 5. Es wird angehalten.
• 6. Angehalten.
• 7. Der Server wird fortgesetzt.

B.10 IIsFtpService
Mit diesem Objekt können Sie die Eigenschaftswerte der Metabasis festlegen, mit
denen die FTP-Sites und virtuelle FTP-Verzeichnisse gesteuert werden.
ADsPath
IIS://computername/MSFTPSVC

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsFtpServer, IIsFtpInfo
Eigenschaften
ADSI-Objekteigenschaften
Anhang B • Referenz für IIS Admin Objects 475

Eigenschaften in der Metabasis


AccessFlags AccessRead
AccessWrite AdminACL
AllowAnonymous AnonymousOnly
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass ConnectionTimeout
DefaultLogonDomain DirectoryLevelsToScan
DisableSocketPooling DontLog
ExitMessage FtpDirBrowseShowLongDate
GreetingMessage IPSecurity
LogAnonymous LogExtFileBytesRecv
LogExtFileBytesSent LogExtFileClientIp
LogExtFileComputerName LogExtFileCookie
LogExtFileDate LogExtFileFlags
LogExtFileHttpStatus LogExtFileMethod
LogExtFileProtocolVersion LogExtFileReferer
LogExtFileServerIp LogExtFileServerPort
LogExtFileSiteName LogExtFileTime
LogExtFileTimeTaken LogExtFileUriQuery
LogExtFileUriStem LogExtFileUserAgent
LogExtFileUserName LogExtFileWin32Status
LogFileDirectory LogFileLocaltimeRollover
LogFilePeriod LogFileTruncateSize
LogNonAnonymous LogOdbcDataSource
LogOdbcPassword LogOdbcTableName
LogOdbcUserName LogPluginClsId
LogType MaxClientsMessage
MaxConnections MaxEndpointConnections
MSDOSDirOutput Realm
ServerAutoStart ServerBindings
ServerComment ServerListenBacklog
ServerListenTimeout ServerSize
476 IIsFtpVirtualDir

Methoden
Methoden für ADSI-Objekte und für ADSI-Containerobjekte.

B.11 IIsFtpVirtualDir
Mit diesem Objekt können Sie Metabasiseigenschaften für ein virtuelles FTP-
Verzeichnis oder sämtliche virtuellen FTP-Verzeichnisse eines FTP-Servers fest-
legen.
Wenn Sie dieses Objekt auf das virtuelle Stammverzeichnis des Servers anwen-
den, gelten die vererbbaren Eigenschaftswerte für sämtliche virtuellen FTP-
Unterverzeichnisse des virtuellen Stammverzeichnisses, sofern auf untergeordne-
ter Ebene keine speziellen Einstellungen vorgenommen wurden, die Vorrang
haben.
Das Objekt ist ein ADSI-Containerobjekt.
ADsPath
Der Pfad für das virtuelle Stammverzeichnis des Servers lautet
IIS://computername/MSFTPSVC/N/ROOT

Der Pfad für ein bestimmtes virtuelles Verzeichnis lautet


IIS://computername/MSFTPSVC/N/ROOT/vVerzName

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsFtpVirtualDir-Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsFtpVirtualDir
Eigenschaften
ADSI-Objekteigenschaften
Anhang B • Referenz für IIS Admin Objects 477

Eigenschaften in der Metabasis


AccessFlags AccessRead
AccessWrite DontLog
FtpDirBrowseShowLongDate IPSecurity
Path UNCPassword
UNCUserName

Methoden
Methoden für ADSI-Objekte und für ADSI-Containerobjekte.

B.12 IIsIPSecurity
Das Objekt IIsIPSecurity ist ein benutzerdefiniertes ADSI-Objekt, mit dem Sie
Zugriffsberechtigungen für IP-Adressen und Domänenadressen festlegen können.
Mit der booleschen Eigenschaft GrantByDefault wird ermittelt, ob der Benutzer-
zugriff standardmäßig gewährt oder verweigert wird.
ADsPath
Der Pfad für das virtuelle Stammverzeichnis des Servers lautet:
IIS://computername/W3SVVC/N/ROOT

Der Pfad für ein bestimmtes virtuelles Verzeichnis lautet:


IIS://computername/W3SVC/N/ROOT/vVerzName

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsIPSecurity-Objekt.
methode ist die ausgewählte Methode.
478 IIsIPSecurity

Gültige Pfade

Schlüsseltyp Metabasispfad
IIsWebService /LM/W3SVC/
IIsWebServer /LM/W3SVC/1
IIsWebFile /LM/W3SVC/1/ROOT/vVerzName/text.htm
IIsWebDirectory /LM/W3SVC/1/ROOT/vVerzName/unterverzeichnis
IIsFtpVirtualDir /LM/SMFTPSVC/1/ROOT/vVerzName
IIsFtpService /LM/SMFTPSVC/
IIsFtpServer /LM/SMFTPSVC/1
IIsWebVirtualDir /LM/W3SVC/1/ROOT/Samples

Eigenschaften
• IPDeny. Mit dieser Methode wird auf ein Array von IP-Adressen zugegriffen,
über das der Zugriff auf den Server nicht gestattet ist.
• IPGrant. Mit dieser Methode wird auf ein Array von IP-Adressen zugegriffen,
über die der Zugriff auf den Server gestattet ist.
• DomainDeny. Mit dieser Methode wird auf ein Array von Domänen zugegrif-
fen, über das der Zugriff auf den Server nicht gestattet ist.
• DomainGrant. Mit dieser Methode wird auf ein Array von Domänen zuge-
griffen, über das der Zugriff auf den Server gestattet ist.
• GrantByDefault. Mit dieser booleschen Eigenschaft wird ermittelt, ob der Be-
nutzerzugriff standardmäßig gewährt oder verweigert wird.

Hinweis
Wenn die Eigenschaft GrantByDefault den Wert TRUE hat, können Sie
nur die Eigenschaften IPDeny und DomainDeny einsetzen. Um die
Eigenschaften IPGrant und DomainGrant verwenden zu können, müssen
Sie GrantByDefault den Wert FALSE zuweisen.

Eigenschaften in der Metabasis


ADSI Object Properties
Mit IPSecurity werden die IP-Zugriffsbeschränkungen angegeben.

IPDeny
Mit dieser Eigenschaft können Sie Listen mit IP-Adressen bearbeiten, die zu
einem Array zusammengefasst sind und über die der Zugriff auf den Server nicht
gestattet ist.
Anhang B • Referenz für IIS Admin Objects 479

Syntax
SecObj.IPDeny "IPAdresse,subnetzmaske"

Parameter
SecObj ist ein IIS Admin Object vom Typ IIsIPSecurity.
IPAdresse bezeichnet eine spezielle IP-Adresse, für die Sie den Zugriff auf den
Server verweigern möchten.
subnetzmaske ist die Subnetzmaske für die angegebene IP-Adresse.
Beispiel
<%
Dim SecObj, MyIPSec
Dim IPList, DomainList
Set SecObj = GetObject("IIS://computername/W3SVC/1")
Set MyIPSec = SecObj.IPSecurity
DomainList = MyIPSec.DomainDeny
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(IPList)+1)
IPList (Ubound(IPList)) = "142.166.17.1,255.255.255.0"
Redim DomainList (Ubound(DomainList)+1)
DomainList (Ubound(DomainList)) = "domain.com"
IPSec.DomainDeny = DomainList
IPSec.IPDeny = IPList
Set SecObj.IPSecurity = MyIPSec
Ojb.Setinfo
%>

IPGrant
Mit dieser Eigenschaft können Sie Listen mit IP-Adressen bearbeiten, die zu
einem Array zusammengefasst sind und über die der Zugriff auf den Server
gestattet ist.
Syntax
SecObj.IPGrant "IPAdresse,subnetzmaske"

Parameter
SecObj ist ein IIS Admin Object vom Typ IIsIPSecurity.
IPAdresse bezeichnet eine spezielle IP-Adresse, für die Sie den Zugriff auf den
Server gewähren möchten.
subnetzmaske ist die Subnetzmaske für die angegebene IP-Adresse.
480 IIsIPSecurity

Beispiel
<%
Dim SecObj, MyIPSec
Dim IPList, DomainList
Set SecObj = GetObject("IIS://computername/W3SVC/1")
Set MyIPSec = SecObj.IPSecurity
DomainList = MyIPSec.DomainGrant
IPList = MyIPSec.IPGrant
Redim IPList (Ubound(IPList)+1)
IPList (Ubound(IPList)) = "142.166.17.1, 255.255.255.0"
Redim DomainList (Ubound(DomainList)+1)
DomainList (Ubound(DomainList)) = "domain.com"
IPSec.DomainGrant = DomainList
IPSec.IPGrant = IPList
Set SecObj.IPSecurity = MyIPSec
Ojb.Setinfo
%>

DomainDeny
Mit dieser können Sie Listen von Domänen bearbeiten, über die der Zugriff auf
den Server nicht gestattet ist.
Syntax
SecObj.DomainDeny Domäne

Parameter
SecObj ist ein IIS Admin Object vom Typ IIsIPSecurity.
Domäne ist die Domäne, für die Sie den Zugriff auf den Server verweigern möch-
ten.
Beispiel
<%
Dim SecObj, MyIPSec
Dim IPList, DomainList
Set SecObj = GetObject("IIS://computername/W3SVC/1")
Set MyIPSec = SecObj.IPSecurity
DomainList = MyIPSec.DomainDeny
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(IPList)+1)
IPList (Ubound(IPList)) = "123.0.0.1,255.255.255.0"
Redim DomainList (Ubound(DomainList)+1)
DomainList (Ubound(DomainList)) = "domain.com"
IPSec.DomainDeny = DomainList
Anhang B • Referenz für IIS Admin Objects 481

IPSec.IPDeny = IPList
Set SecObj.IPSecurity = MyIPSec
Ojb.Setinfo
%>

DomainGrant
Mit dieser Eigenschaft können Sie Listen von Domänen bearbeiten, über die der
Zugriff auf den Server gestattet ist.
Syntax
SecObj.DomainGrant Domäne

Parameter
SecObj ist ein IIS Admin Object vom Typ IIsIPSecurity.
Domäne ist die Domäne, für die Sie den Zugriff auf den Server verweigern möch-
ten.
Beispiel
<% Dim SecObj, Dim MyIPSec
Dim IPList, DomainList
Set SecObj = GetObject("IIS://computername/W3SVC/1")
Set MyIPSec = SecObj.IPSecurity
DomainList = MyIPSec.DomainGrant
IPList = MyIPSec.IPGrant
Redim IPList (Ubound(IPList)+1)
IPList (Ubound(IPList)) = "142.166.17.1,255.255.255.0"
Redim DomainList (Ubound(DomainList)+1)
DomainList (Ubound(DomainList)) = "domain.com"
IPSec.DomainGrant = DomainList
IPSec.IPGrant = IPList
Set SecObj.IPSecurity = MyIPSec
Ojb.Setinfo
%>

GrantByDefault
Mit dieser booleschen Eigenschaft können Sie festlegen, ob ein Benutzer stan-
dardmäßig Zugriff auf den Server hat oder nicht.
Syntax
SecObj.GrantByDefault Boolesch

Parameter
SecObj ist ein IIS Admin Object vom Typ IIsIPSecurity.
Boolesch ist ein Parameter mit dem Wert TRUE oder FALSE.
482 IIsLogModule

Beispiel
<% Dim SecObj
Set SecObj = GetObject("IIS://computername/W3SVC/1")
SecObj.GrantByDefault=TRUE
SecObj.SetInfo
%>

B.13 IIsLogModule
Mit diesem Objekt können Sie Metabasiseigenschaften festlegen, die die Funkti-
onsweise von Protokollmodulen bestimmen. Filtereigenschaften können auf
Computerebene, auf FTP- und WWW-Dienstebene oder für einen individuellen
Webserver definiert werden.
ADsPath
IIS://computername/LOGGING/protokollmodulname

computername kann ein beliebiger Name oder localhost sein. protokollmodul-


name ist der Name eines Protokollmoduls.
Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsLogModule-Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften
Eigenschaften in der Metabasis
LogModuleIdLogModuleUiId
Methoden
Methoden für ADSI-Objekte
Anhang B • Referenz für IIS Admin Objects 483

B.14 IIsLogModules
Das Objekt IIsLogModules ist ein ADSI-Containerobjekt, in dem eine Auflistung
der Objekte vom Typ IIsLogModule enthalten ist. Mit Hilfe des Objekts IIsLog-
Modules können Sie Protokollmodule auf Computerebene verwalten.
Das Objekt ist ein ADSI-Containerobjekt.
ADsPath
IIS://computername/LOGGING

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsLogModules-Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsLogModule
Eigenschaften
ADSI-Objekteigenschaften
Methoden
Methoden für ADSI-Objekte und für ADSI-Containerobjekte.
Beispiel
<%
Dim LoggingModules, objCurrent
Set objCurrent = GetObject("IIS://computername/W3SVC/1")
Set LoggingModules = GetObject("IIS://computername/logging")
If objCurrent.LogPluginClsid <> "" Then
For Each LogModule in LoggingModules
If LogModule.LogModuleID = objCurrent.LogPluginClsid Then
Response.Write LogModule.Name & "<BR>"
End If
Next
Response.Write objCurrent.LogFileDate
End If
%>
484 IIsMimeMap

B.15 IIsMimeMap
Mit diesem Objekt können Sie vererbte MIME-Zuordnungen (Multipurpose
Internet Mail Extensions) festlegen, die von den Webservern verwendet werden.
ADsPath
IIS://computername/MIMEMAP

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsMimeMap-Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften
Eigenschaften in der Metabasis
MimeMap
Methoden
Methoden für ADSI-Objekte

B.16 IIsMimeType
Die Eigenschaft MimeMap enthält ein Array von IISMimeType-Objekten.
Wenn Sie dem Array ein Element hinzufügen möchten, erstellen Sie ein neues
IISMimeType-Objekt, geben einen Wert für MimeType an, erstellen mit Hilfe von
Extension die Erweiterung und fügen das Element der Gruppe der MimeMap-
Objekte hinzu.
Syntax
varMimeMap = objekt.MimeMap
Set objMimeType = aMimeMap(0)

Komponenten
varMimeMap ist eine Variable, die die Liste der IIsMimeType-Objekte abruft.
Anhang B • Referenz für IIS Admin Objects 485

objekt ist eine Variable, die die Eigenschaft MimeType unterstützt, in der Regel als
Ergebnis eines vorherigen GetObject-Vorgangs.
objMimeType ist eine Objektvariable, die das Objekt IIsMimeType abruft.
Möglicher Objektinhalt
In diesem Objekt kann kein anderes Objekt enthalten sein
Eigenschaften
ADSI-Objekteigenschaften
Eigenschaften in der Metabasis
MimeMap (Stellt eine Liste der Dateinamenerweiterungen für MIME-Zuordnun-
gen bereit.)

MimeType
Mit Hilfe dieser Eigenschaft können Sie über die Werte GET und PUT den
MIME-Typ für Objekte des Typs IISMimeType abrufen bzw. festlegen.
Syntax
objDir.MimeType= zeichenfolge

Parameter
objDir ist ein IIS Admin Object vom Typ IIsMimeType.
zeichenfolge ist eine Zeichenfolge, die den MIME-Typ für das Objekt angibt.
Beispiel
<%Dim objDir, Dim MimeMapNode, Dim MimeMapList, Dim MimeMapEntry
Set objDir = GetObject("IIS://computername/MimeMap")
MimeMapList = objDir.MimeMap
Redim preserve MimeMapList (Ubound(MimeMapList)+1)
Set MimeMapEntry = CreateObject ("IIsMimeTypeEntry")
MimeMapEntry.MimeType = "Text/Plain"
Mime.Extension = ".log"
Set MimeMapList (Ubound(MimeMapList)) = MimeMapEntry
objDir.MimeMap = MimeMapList
objDir.Setinfo
%>

Extension
Hiermit geben Sie den MIME-Typ der Dateinamenerweiterung an.
Syntax
objDir.Extension = zeichenfolge
486 IIsWebDirectory

Parameter
objDir ist ein IIS Admin Object vom Typ IIsMimeType.
zeichenfolge ist eine bestimmte Dateinamenerweiterung, die dem mit der Eigen-
schaft MimeType angegebenen MIME-Typ zugeordnet ist.
Beispiel
<% Dim objDir, Dim MimeMapNode, Dim MimeMapList, Dim MimeMapEntry
Set objDir = GetObject("IIS://computername/MimeMap")
MimeMapList = objDir.MimeMap
Redim preserve MimeMapList (Ubound(MimeMapList)+1)
Set MimeMapEntry = CreateObject ("IIsMimeTyepEntry")
MimeMapEntry.MimeMap = "Text/Plain"
Mime.Extension = ".log"
Set MimeMapList (Ubound(MimeMapList)) = MimeMapEntry
objDir.MimeMap = MimeMapList
objDir.Setinfo
%>

B.17 IIsWebDirectory
Mit diesem Objekt werden Metabasiseigenschaften für Webverzeichnisse eines
Webservers festgelegt. Wenn Sie hiermit Metabasiseigenschaften für ein Webver-
zeichnis konfigurieren, gelten die vererbbaren Eigenschaften für sämtliche Unter-
verzeichnisse und Dateien.
Weiterhin können Sie über die Methoden von IIsWebDirectory Webanwendungen
in Webverzeichnissen und Unterverzeichnissen erstellen und verwalten.
Das Objekt ist ein ADSI-Containerobjekt.
ADsPath
IIS://computername/W3SVC/N/ROOT/vVerzName/VerzName

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsWebDirectory-Objekt.
methode ist die ausgewählte Methode.
Anhang B • Referenz für IIS Admin Objects 487

Möglicher Objektinhalt
IIsWebDirectory,IIsWebFile
Eigenschaften
ADSI-Eigenschaften

Eigenschaften in der Metabasis


AccessExecute AccessFlags
AccessNoRemoteExecute AccessNoRemoteRead
AccessNoRemoteScript AccessNoRemoteWrite
AccessRead AccessScript
AccessSSL AccessSSL128
AccessSSLFlags AccessSSLMapCert
AccessSSLNegotiateCert AccessSSLRequireCert
AccessWrite AnonymousPasswordSync
AnonymousUserName AnonymousUserPass
AppAllowClientDebug AppAllowDebugging
AppFriendlyName AppIsolated
AppOopRecoverLimit AppPackageID
AppPackageName AppRoot
AppWamClsID AspAllowOutOfProcComponents
AspAllowSessionState AspBufferingOn
AspCodepage AspEnableApplicationRestart
AspEnableAspHtmlFallback AspEnableChunkedEncoding
AspEnableParentPaths AspEnableTypelibCache
AspErrorsToNTLog AspExceptionCatchEnable
AspLogErrorRequests AspProcessorThreadMax
AspQueueConnectionTestTime AspQueueTimeout
AspRequestQueueMax AspScriptEngineCacheMax
AspScriptErrorMessage AspScriptErrorSentToBrowser
AspScriptFileCacheSize AspScriptLanguage
AspScriptTimeout AspSessionMax
AspSessionTimeout AspThreadGateEnabled
488 IIsWebDirectory

AspThreadGateLoadHigh AspThreadGateLoadLow
AspThreadGateSleepDelay AspThreadGateSleepMax
AspThreadGateTimeSlice AspTrackThreadingModel
AuthAnonymous AuthBasic
AuthFlags AuthNTLM
AuthPersistence AuthPersistSingleRequest
AuthPersistSingleRequestIfProxy
AuthPersistSingleRequestAlwaysIf-
Proxy
CacheControlCustom CacheControlMaxAge
CacheControlNoCache CacheISAPI
ContentIndexed CpuAppEnabled
CpuCgiEnabled CreateCGIWithNewConsole
CreateProcessAsUser DefaultDoc
DefaultDocFooter DefaultLogonDomain
DirBrowseFlags DirBrowseShowDate
DirBrowseShowExtension DirBrowseShowLongDate
DirBrowseShowSize DirBrowseShowTime
DontLog EnableDefaultDoc
EnableDirBrowsing EnableDocFooter
EnableReverseDns HttpCustomHeaders
HttpErrors HttpExpires
HttpPics HttpRedirect
IPSecurity LogonMethod
MimeMap PoolIDCTimeout
PutReadSize Realm
RedirectHeaders ScriptMaps
SSIExecDisable UNCAuthenticationPassthrough
UploadReadAheadSize

Die Methoden sind in den folgenden Abschnitten aufgelistet.


Anhang B • Referenz für IIS Admin Objects 489

AppCreate
Mit dieser Methode können Sie eine Webanwendungsdefinition erstellen und als
In-Process- oder Out-of-Process-Anwendung konfigurieren.
Wenn unter dem angegebenen Pfad bereits eine Anwendung vorhanden ist, kön-
nen Sie die Anwendung von einer In-Process- in eine Out-of-Process-Anwendung
umwandeln, oder umgekehrt.
Syntax
objDir.AppCreate ProzInOption

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
ProzInOption gibt an, ob die zu erstellende Anwendung als In-Process-Anwen-
dung (TRUE) oder als Out-of-Process-Anwendung (FALSE) ausgeführt werden
soll.
Beispiel
<%
Dim objDir
Const INPROC = True
Const OUTPROC = False
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppCreate INPROC
%>

AppCreate2
Mit dieser Methode können Sie eine Webanwendungsdefinition erstellen und als
In-Process-, Out-of-Process- oder als Pooled-Process-Anwendung konfigurieren.
Wenn unter dem angegebenen Pfad bereits eine Anwendung vorhanden ist,
können Sie einen beliebigen Prozessbereich für die Ausführung der Anwendung
konfigurieren.
Syntax
objDir.AppCreate2 ProzInOption

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
ProzInOption ist ein binärer Wert, der angibt, ob die zu erstellende Anwendung
als In-Process- (0), Out-of-Process- (1) oder als Pooled-Process-Anwendung aus-
geführt werden soll. Wenn die Anwendung bereits vorhanden ist und ausgeführt
wird, und Sie den Wert dieser Option ändern, wird die Anwendungsdefinition
gelöscht und eine neue Anwendung erstellt, die in dem angegebenen Prozessbe-
reich ausgeführt wird.
490 IIsWebDirectory

Beispiel
<%
Dim objDir
Const INPROC = 0
Const OUTPROC = 1
Const POOLED = 2
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppCreate INPROC
%>

AppDelete
Mit dieser Methode können Sie eine Webanwendungsdefinition unter einem
Metabasisschlüssel löschen. Die Anwendung wird beendet, falls diese gerade
ausgeführt wird. Wenn die Anwendung als In-Process-Anwendung unter IIS aus-
geführt wird, werden sämtliche Ressourcen, die ihr zugeordnet sind, wie z.B.
Out-of-Process-Anwendungen, freigegeben, wenn nicht eine andere In-Process-
Anwendung auf die Ressource verweist.

Warnung
Mit AppDelete durchgeführte Löschvorgänge können nicht wieder rück-
gängig gemacht werden.

Syntax
objDir.AppDelete

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppDelete
%>

AppDeleteRecursive
Mit dieser Methode können Sie Webanwendungsdefinitionen unter einem Meta-
basisschlüssel und allen Teilschlüsseln löschen.
Die Anwendungen werden beendet, falls diese zurzeit ausgeführt werden. Wenn
die Anwendung als In-Process-Anwendung unter IIS ausgeführt wird, werden
sämtliche Ressourcen, die ihr zugeordnet sind, wie z.B. Out-of-Process-Pakete,
freigegeben, wenn nicht über eine andere In-Process-Anwendung auf die Res-
source verwiesen wird.
Anhang B • Referenz für IIS Admin Objects 491

Warnung
Mit AppDeleteRecursive durchgeführte Löschvorgänge können nicht
wieder rückgängig gemacht werden.

Syntax
objDir.AppDeleteRecursive

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppDeleteRecursive
%>

AppDisable
Mit dieser Methode können Sie eine Out-of-Process-Webanwendung deaktivie-
ren. Alle Ressourcen der Anwendung werden freigegeben, und der Prozess der
Anwendung wird beendet. Ein Zugriff auf diese Anwendung ist dann nicht mehr
möglich. Mit Hilfe der Methode AppEnable können Sie eine deaktivierte Anwen-
dung wieder aktivieren.
Syntax
objDir.AppDisable

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppDisable
%>

AppDisableRecursive
Mit dieser Methode können Sie Out-of-Process-Webanwendungen deaktivieren.
Die Anwendungen unter dem angegebenen Schlüssel sowie sämtliche unterge-
ordneten Schlüsseln werden deaktiviert.
Alle Ressourcen der Anwendung werden freigegeben und die Anwendungspro-
zesse werden beendet. Ein Zugriff auf diese Anwendung ist dann nicht mehr
492 IIsWebDirectory

möglich. Mit Hilfe der Methode AppEnableRecursive können Sie deaktivierte


Anwendungen wieder aktivieren.
Die Methode hat keine Auswirkungen, wenn die Anwendungen als In-Process-
Anwendung ausgeführt werden.
Syntax
objDir.AppDisableRecursive

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppDisableRecursive
%>

AppEnable
Mit dieser Methode können Sie eine zuvor deaktivierte Webanwendung wieder
aktivieren. Wenn die angegebene Anwendung nicht gelöscht wurde, wird sie mit
den Komponentendiensten erneut registriert.
Syntax
objDir.AppEnable

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppEnable
%>

AppEnableRecursive
Mit dieser Methode können Sie Webanwendungsdefinitionen, die vorher mit der
Methode AppDisable deaktiviert wurden, wieder aktivieren.
Syntax
objDir.AppEnableRecursive
Anhang B • Referenz für IIS Admin Objects 493

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppEnableRecursive
%>

AppGetStatus
Mit dieser Methode können Sie den aktuellen Status einer Webanwendung abru-
fen.
Syntax
varRückgabe = objDir.AppGetStatus

Parameter
Die Variable varRückgabe enthält den Status der Anwendung.
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Rückgabewerte
• APPSTATUS_NOTDEFINED. Unter dem angegebenen Pfad ist keine An-
wendung definiert.
• APPSTATUS_RUNNING. Die Anwendung wird ausgeführt.
• APPSTATUS_STOPPED. Die Anwendung wird nicht ausgeführt.
Beispiel
<%
Dim objDir, varRückgabe
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
varRückgabe = objDir.AppGetStatus
%>

AppUnload
Mit dieser Methode können Sie eine als Out-of-Process-Anwendung ausgeführte
Webanwendung entfernen. Alle Ressourcen der Anwendung werden freigegeben
und der Prozess der Anwendung beendet. Wenn die Anwendung als In-Process-
Anwendung ausgeführt wird, wird sie freigegeben, wenn zurzeit keine anderen
Anwendungen auf diese verweisen.
494 IIsWebDirectory

Syntax
objDir.AppUnload

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppUnload
%>

AppUnloadRecursive
Diese Methode funktioniert genauso wie die Methode AppUnload. Der Unter-
schied besteht darin, dass die Anwendung sowie sämtliche untergeordneten
Schlüssel entfernt werden.
Syntax
objDir.AppUnloadRecursive

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Beispiel
<%
Dim objDir
Set objDir = GetObject("IIS://computername/W3SVC/1/ROOT/AppDir")
objDir.AppUnloadRecursive
%>

AspAppRestart
Mit dieser Methode können Sie ASP-Anwendungen über diese Methode neu star-
ten, ohne auf die Datei global.asa zuzugreifen oder den WWW-Dienst selbst zu
beenden und neu zu starten.
Syntax
objDir.AspAppRestart

Parameter
objDir ist ein IIS Admin Object des Typs IIsWebDirectory oder IIsWebVirtualDir.
Anhang B • Referenz für IIS Admin Objects 495

B.18 IIsWebFile
Mit diesem Objekt können Sie Metabasisschlüsselwerte für eine Datei in einem
Webverzeichnis eines virtuellen Webservers festlegen. Vererbte Werte, die auf
einer höheren Ebene in der Metabasishierarchie konfiguriert wurden, werden mit
den Werten für die Metabasiseigenschaften einer bestimmten Datei überschrie-
ben.
ADsPath
IIS://computername/W3SVC/n/Root/vVerzName/VerzName/DateiName

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsWebFile-Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AccessExecute AccessFlags
AccessNoRemoteExecute AccessNoRemoteRead
AccessNoRemoteScript AccessNoRemoteWrite
AccessRead AccessSource
AccessScript AccessSSL
AccessSSL128 AccessSSLFlags
AccessSSLMapCert AccessSSLNegotiateCert
AccessSSLRequireCert AccessWrite
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass AuthAnonymous
AuthBasic AuthFlags
AuthNTLM AuthPersistence
496 IIsWebInfo

AuthPersistSingleRequest
AuthPersistSingleRequestIfProxy
AuthPersistSingleRequestAlwaysIfProxy
CacheControlCustom CacheControlMaxAge
CacheControlNoCache CpuAppEnabled
CpuCgiEnabled CreateCGIWithNewConsole
CreateProcessAsUser DefaultDocFooter
DefaultLogonDomain DontLog
EnableDocFooter EnableReverseDns
HttpCustomHeaders HttpErrors
HttpExpires HttpPics
HttpRedirect IPSecurity
LogonMethod MimeMap
PoolIDCTimeout PutReadSize
Realm RedirectHeaders
ScriptMaps SSIExecDisable
UNCAuthenticationPassthrough UploadReadAheadSize

Methoden
Methoden für ADSI-Objekte

B.19 IIsWebInfo
Einige dem WWW-Dienst zugeordneten Metabasiseigenschaften sind im Teil-
schlüssel Info des Schlüssels W3SVC gespeichert. Mit Hilfe des Objekts IIsWeb-
Info können Sie Werte für diese Eigenschaften festlegen.
ADsPath
IIS://computername/W3SVC/INFO

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Anhang B • Referenz für IIS Admin Objects 497

Die Variable objekt enthält das von der Methode GetObject zurückgegebene
IIsWebInfo-Objekt.
methode ist die ausgewählte Methode.
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AdminServer CustomErrorDescriptions
LogModuleList ServerConfigAutoPWSync
ServerConfigFlags ServerConfigSSL128
ServerConfigSSL40 ServerConfigSSLAllowEncrypt

Methoden
Methoden für ADSI-Objekte

B.20 IIsWebServer
Mit diesem Objekt können Sie Metabasiseigenschaften für einen bestimmten vir-
tuellen Webserver festlegen und vererbbare Metabasiseigenschaften für virtuelle
Verzeichnisse, Webverzeichnisse und Webdateien definieren.
Es stehen ferner besondere Methoden zur Steuerung von Servervorgängen zur
Verfügung, die im Verlaufe dieses Abschnitts erläutert werden.
Dieses Objekt ist ein ADSI-Containerobjekt.
ADsPath
IIS://computername/W3SVC/N

computername kann ein beliebiger Name oder localhost sein.


Syntax
varRückgabe = objWebServer.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
ObjWebServer verweist auf das IIS Admin Object.
methode ist die ausgewählte Methode.
498 IIsWebServer

Möglicher Objektinhalt
IIsCertMapper, IIsFilters, IIsWebVirtualDir
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AccessExecute AccessFlags
AccessNoRemoteExecute AccessNoRemoteRead
AccessNoRemoteScript AccessNoRemoteWrite
AccessRead AccessSource
AccessScript AccessSSL
AccessSSL128 AccessSSLFlags
AccessSSLMapCert AccessSSLNegotiateCert
AccessSSLRequireCert AccessWrite
AdminACL AllowKeepAlive
AllowPathInfoForScriptMappings
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass AppAllowClientDebug
AppAllowDebugging AppFriendlyName
AppIsolated AppOopRecoverLimit
AppPackageID AppPackageName
AppRoot AppWamClsID
AspAllowOutOfProcComponents AspAllowSessionState
AspBufferingOn AspCodepage
AspEnableApplicationRestart AspEnableAspHtmlFallback
AspEnableChunkedEncoding AspEnableParentPaths
AspEnableTypelibCache AspErrorsToNTLog
AspExceptionCatchEnable AspLogErrorRequests
AspProcessorThreadMax
AspQueueConnectionTestTime
AspQueueTimeout AspRequestQueueMax
AspScriptEngineCacheMax
AspScriptErrorSentToBrowser
Anhang B • Referenz für IIS Admin Objects 499

AspScriptFileCacheSize AspScriptLanguage
AspSessionMax AspScriptTimeout
AspSessionTimeout AspThreadGateEnabled
AspThreadGateLoadHigh AspThreadGateLoadLow
AspThreadGateSleepDelay AspThreadGateSleepMax
AspThreadGateTimeSlice AspTrackThreadingModel
AuthAnonymous AuthBasic
AuthFlags AuthNTLM
AuthPersistence AuthPersistSingleRequest
AuthPersistSingleRequestIfProxy
AuthPersistSingleRequestAlwaysIfProxy
CacheControlCustom CacheControlMaxAge
CacheControlNoCache CacheISAPI
CGITimeout ConnectionTimeout
CpuAppEnabled CpuCgiEnabled
CpuEnableActiveProcs CpuEnableAllProcLogging
CpuEnableAppLogging CpuEnableCgiLogging
CpuEnableEvent CpuEnableKernelTime
CpuEnableLogging CpuEnablePageFaults
CpuEnableProcType CpuEnableTerminatedProcs
CpuEnableTotalProcs CpuEnableUserTime
CpuLimitLogEvent CpuLimitPause
CpuLimitPriority CpuLimitProcStop
CpuLimitsEnabled CpuLoggingInterval
CpuLoggingMask CpuLoggingOptions
CpuResetInterval CreateCGIWithNewConsole
CreateProcessAsUser DefaultDoc
DefaultDocFooter DefaultLogonDomain
DirBrowseFlags DirBrowseShowDate
DirBrowseShowExtension DirBrowseShowLongDate
DirBrowseShowSize DirBrowseShowTime
DisableSocketPooling DontLog
EnableDefaultDoc EnableDirBrowsing
500 IIsWebServer

EnableDocFooter EnableReverseDns
FrontPageWeb HttpCustomHeaders
HttpErrors HttpExpires
HttpPics HttpRedirect
IPSecurity LogAnonymous
LogExtFileBytesRecv LogExtFileBytesSent
LogExtFileClientIp LogExtFileComputerName
LogExtFileCookie LogExtFileDate
LogExtFileFlags LogExtFileHttpStatus
LogExtFileMethod LogExtFileProtocolVersion
LogExtFileReferer LogExtFileServerIp
LogExtFileServerPort LogExtFileSiteName
LogExtFileTime LogExtFileTimeTaken
LogExtFileUriQuery LogExtFileUriStem
LogExtFileUserAgent LogExtFileUserName
LogExtFileWin32Status LogFileDirectory
LogFileLocaltimeRollover LogFilePeriod
LogFileTruncateSize LogOdbcDataSource
LogOdbcPassword LogOdbcTableName
LogOdbcUserName LogonMethod
LogPluginClsId LogType
MaxBandwidth MaxBandwidthBlocked
MaxConnections MaxEndpointConnections
MimeMap NetLogonWorkstation
NotDeletable NTAuthenticationProviders
PasswordCacheTTL PasswordChangeFlags
PasswordExpirePrenotifyDays PoolIDCTimeout
ProcessNTCRIfLoggedOn PutReadSize
Realm RedirectHeaders
ScriptMaps SecureBindings
ServerAutoStart ServerBindings
ServerComment ServerListenBacklog
ServerListenTimeout ServerSize
Anhang B • Referenz für IIS Admin Objects 501

ServerState SSIExecDisable
UNCAuthenticationPassthrough UploadReadAheadSize
UseHostName

Continue
Diese Methode setzt einen zuvor angehaltenen Server fort.
Syntax
IIsWebServer.Continue

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/W3SVC/2")
objServer.Continue
%>

Pause
Diese Methode hält den Server an.
Syntax
IIsWebServer.Pause

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/W3SVC/2")
objServer.Pause
%>

Start
Diese Methode startet den Server.
Syntax
IIsWebServer.Start

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/W3SVC/2")
objServer.Start
%>
502 IIsWebService

Status
Diese Methode gibt einen der folgenden Werte zurück, der den aktuellen Server-
status angibt.
• 1. Es wird gestartet.
• 2. Gestartet.
• 3. Es wird beendet.
• 4. Beendet.
• 5. Es wird angehalten.
• 6. Angehalten.
• 7. Der Server wird fortgesetzt.
Syntax
IIsWebServer.Status

Stop
Diese Methode beendet den Server.
Syntax
IIsWebServer.Stop

Beispiel
<%
Dim objServer
Set objServer = GetObject("IIS://computername/W3SVC/2")
objServer.Stop
%>

B.21 IIsWebService
Mit diesem Objekt können Sie Metabasiseigenschaften für einen bestimmten vir-
tuellen Webserver festlegen und vererbbare Metabasiseigenschaften für virtuelle
Verzeichnisse, Webverzeichnisse und Webdateien definieren.
Dieses Objekt ist ein ADSI-Containerobjekt.
ADsPath
IIS://computername/W3SVC

computername kann ein beliebiger Name oder localhost sein.


Anhang B • Referenz für IIS Admin Objects 503

Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene IIs-
WebServer-Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsFilters, IIsWebInfo, IIsWebServer
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AccessExecute AccessFlags
AccessNoRemoteExecute AccessNoRemoteRead
AccessNoRemoteScript AccessNoRemoteWrite
AccessRead AccessSource
AccessScript AccessSSL
AccessSSL128 AccessSSLFlags
AccessSSLMapCert AccessSSLNegotiateCert
AccessSSLRequireCert AccessWrite
AdminACL AllowKeepAlive
AllowPathInfoForScriptMappings
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass AppAllowClientDebug
AppAllowDebugging AppFriendlyName
AppIsolated
AppPackageID AppPackageName
AppRoot AppWamClsID
AspAllowOutOfProcComponents AspAllowSessionState
AspBufferingOn AspCodepage
504 IIsWebService

AspEnableApplicationRestart AspEnableAspHtmlFallback
AspEnableChunkedEncoding AspEnableParentPaths
AspEnableTypelibCache AspErrorsToNTLog
AspExceptionCatchEnable AspLogErrorRequests
AspProcessorThreadMax
AspQueueConnectionTestTime
AspQueueTimeout AspRequestQueueMax
AspScriptEngineCacheMax AspScriptErrorMessage
AspScriptErrorSentToBrowser
AspScriptFileCacheSize AspScriptLanguage
AspSessionMax AspScriptTimeout
AspSessionTimeout AspThreadGateEnabled
AspThreadGateLoadHigh AspThreadGateLoadLow
AspThreadGateSleepDelay AspThreadGateSleepMax
AspThreadGateTimeSlice AspTrackThreadingModel
AuthAnonymous AuthBasic
AuthFlags AuthNTLM
AuthPersistence AuthPersistSingleRequest
AuthPersistSingleRequestIfProxy
AuthPersistSingleRequestAlwaysIfProxy
CacheControlCustom CacheControlMaxAge
CacheControlNoCache CacheISAPI
ContentIndexed ConnectionTimeout
CpuAppEnabled CpuCgiEnabled
CpuEnableActiveProcs CpuEnableAllProcLogging
CpuEnableAppLogging CpuEnableCgiLogging
CpuEnableEvent CpuEnableKernelTime
CpuEnableLogging CpuEnablePageFaults
CpuEnableProcType CpuEnableTerminatedProcs
CpuEnableTotalProcs CpuEnableUserTime
CpuLimitLogEvent CpuLimitPause
CpuLimitPriority CpuLimitProcStop
Anhang B • Referenz für IIS Admin Objects 505

CpuLimitsEnabled CpuLoggingInterval
CpuLoggingMask CpuLoggingOptions
CpuResetInterval CreateCGIWithNewConsole
CreateProcessAsUser DefaultDoc
DefaultDocFooter DefaultLogonDomain
DirBrowseFlags DirBrowseShowDate
DirBrowseShowExtension DirBrowseShowLongDate
DirBrowseShowSize DirBrowseShowTime
DirectoryLevelsToScan DisableSocketPooling
DontLog DownlevelAdminInstance
EnableDefaultDoc EnableDirBrowsing
EnableDocFooter EnableReverseDns
HttpCustomHeaders HttpErrors
HttpExpires HttpPics
HttpRedirect InProcessIsapiApps
IPSecurity
LogExtFileBytesRecv LogExtFileBytesSent
LogExtFileClientIp LogExtFileComputerName
LogExtFileCookie LogExtFileDate
LogExtFileFlags LogExtFileHttpStatus
LogExtFileMethod LogExtFileProtocolVersion
LogExtFileReferer LogExtFileServerIp
LogExtFileServerPort LogExtFileSiteName
LogExtFileTime LogExtFileTimeTaken
LogExtFileUriQuery LogExtFileUriStem
LogExtFileUserAgent LogExtFileUserName
LogExtFileWin32Status LogFileDirectory
LogFileLocaltimeRollover LogFilePeriod
LogFileTruncateSize LogOdbcDataSource
LogOdbcPassword LogOdbcTableName
LogOdbcUserName LogonMethod
LogPluginClsId LogType
506 IIsWebVirtualDir

MaxConnections MaxEndpointConnections
MimeMap NetLogonWorkstation
NTAuthenticationProviders
PasswordCacheTTL PasswordChangeFlags
PasswordExpirePrenotifyDays PoolIDCTimeout
ProcessNTCRIfLoggedOn PutReadSize
Realm RedirectHeaders
ScriptMaps ServerAutoStart
ServerBindings ServerComment
ServerListenBacklog ServerListenTimeout
ServerSize SSIExecDisable
SSLUseDSMapper UNCAuthenticationPassthrough
UploadReadAheadSize UseHostName
WAMUserName WAMUserPass

Methoden
Methoden für ADSI-Objekte und ADSI-Containerobjekte.

B.22 IIsWebVirtualDir
Mit diesem Objekt können Sie Metabasiseigenschaften für ein virtuelles Ver-
zeichnis oder sämtliche virtuellen Verzeichnisse einer Website festlegen. Wenn
Sie das Objekt IIsWebVirtualDir auf das Stammverzeichnis des Servers anwen-
den, gelten vererbbare Eigenschaftswerte für sämtliche virtuellen Unterverzeich-
nisse. Sie können Eigenschaften für ein bestimmtes virtuelles Verzeichnis festle-
gen, indem Sie das Objekt IIsWebVirtualDir auf ein bestimmtes virtuelles
Verzeichnis anwenden.
Dieses Objekt ist ein ADSI-Containerobjekt.
ADsPath
Der Pfad für das virtuelle Stammverzeichnis des Servers lautet:
IIS://computername/W3SVC/N/ROOT

Der Pfad für ein bestimmtes virtuelles Verzeichnis lautet:


IIS://computername/W3SVC/N/ROOT/vVerzName

computername kann ein beliebiger Name oder localhost sein.


Anhang B • Referenz für IIS Admin Objects 507

Syntax
varRückgabe = objekt.methode

Komponenten
Die Variable varRückgabe enthält den Rückgabewert der Methode.
Die Variable objekt enthält das von der Methode GetObject zurückgegebene IIs-
WebVirtualDir-Objekt.
methode ist die ausgewählte Methode.
Möglicher Objektinhalt
IIsWebVirtualDir, IIsWebDirectory, IIsWebFile
Eigenschaften
ADSI-Objekteigenschaften

Eigenschaften in der Metabasis


AccessExecute AccessFlags
AccessNoRemoteExecute AccessNoRemoteRead
AccessNoRemoteScript AccessNoRemoteWrite
AccessRead AccessSource
AccessScript AccessSSL
AccessSSL128 AccessSSLFlags
AccessSSLMapCert AccessSSLNegotiateCert
AccessSSLRequireCert AccessWrite
AnonymousPasswordSync AnonymousUserName
AnonymousUserPass AppAllowClientDebug
AppAllowDebugging AppFriendlyName
AppIsolated AppOopRecoverLimit
AppPackageID AppPackageName
AppRoot AppWamClsID
AspAllowOutOfProcComponents AspAllowSessionState
AspBufferingOn AspCodepage
AspEnableApplicationRestart AspEnableAspHtmlFallback
AspEnableChunkedEncoding AspEnableParentPaths
508 IIsWebVirtualDir

AspEnableTypelibCache AspErrorsToNTLog
AspExceptionCatchEnable AspLogErrorRequests
AspProcessorThreadMax
AspQueueConnectionTestTime
AspQueueTimeout AspRequestQueueMax
AspScriptEngineCacheMax AspScriptErrorMessage
AspScriptErrorSentToBrowser
AspScriptFileCacheSize AspScriptLanguage
AspSessionMax AspScriptTimeout
AspSessionTimeout AspThreadGateEnabled
AspThreadGateLoadHigh AspThreadGateLoadLow
AspThreadGateSleepDelay AspThreadGateSleepMax
AspThreadGateTimeSlice AspTrackThreadingModel
AuthAnonymous AuthBasic
AuthFlags AuthNTLM
AuthPersistence AuthPersistSingleRequest
AuthPersistSingleRequestIfProxy
AuthPersistSingleRequestAlwaysIfProxy
CacheControlCustom CacheControlMaxAge
CacheControlNoCache CacheISAPI
ContentIndexed CpuAppEnabled
CpuCgiEnabled CreateCGIWithNewConsole
CreateProcessAsUser DefaultDoc
DefaultDocFooter DefaultLogonDomain
DirBrowseFlags DirBrowseShowDate
DirBrowseShowExtension DirBrowseShowLongDate
DirBrowseShowSize DirBrowseShowTime
DontLog
EnableDefaultDoc EnableDirBrowsing
EnableDocFooter EnableReverseDns
HttpCustomHeaders HttpErrors
HttpExpires HttpPics
Anhang B • Referenz für IIS Admin Objects 509

HttpRedirect
IPSecurity LogonMethod
MimeMap Path
PoolIDCTimeout PutReadSize
Realm RedirectHeaders
ScriptMaps SSIExecDisable
UNCAuthenticationPassthrough
UNCPassword UNCUserName
UploadReadAheadSize

Methoden
Das Objekt IIsWebVirtualDir unterstützt die folgenden Methoden. Hinweise zu
diesen finden Sie im Abschnitt über das Objekt IIsWebDirectory.
• AppCreate
• AppCreate2
• AppDelete
• AppDeleteRecursive
• AppDisable
• AppDisableRecursive
• AppEnable
• AppEnableRecursive
• AppGetStatus
• AppUnload
• AppUnloadRecursive
• AspAppStart

B.23 Konstanten
Die folgenden Konstanten werden mit den Methoden und Eigenschaften der IIS
Admin Objects verwendet.
Const ADS_PROPERTY_CLEAR = 1 'PutEx
Const ADS_PROPERTY_UPDATE = 2 'PutEx
Const APPSTATUS_NOTDEFINED = 4 'AppStatus
510 Konstanten

Const APPSTATUS_RUNNING = 2 'AppStatus


Const APPSTATUS_STOPPED = 3 'AppStatus
Const APPSTATUS_UNLOADED = 1 'AppStatus
Const IIS_ANY_PROPERTY = 0 'GetDataPaths
Const IIS_INHERITABLE_ONLY = 1 'GetDataPaths
Const MD_ERROR_DATA_NOT_FOUND = &H800CC801 'GetDataPaths
Const MD_ERROR_IISAO_INVALID_SCHEMA = &H8800CC810 'GetObject
Const MD_BACKUP_FORCE_BACKUP = 4 'Backup
Const MD_BACKUP_HIGHEST_VERSION = &HFFFFFFFE 'Backup, Delete, Restore
Const MD_BACKUP_MAX_VERSION = 9999 'Limit
Const MD_BACKUP_MAX_LEN = 100 'Limit
Const MD_BACKUP_NEXT_VERSION = &HFFFFFFFF 'Backup
Const MD_BACKUP_OVERWRITE = 1 'Backup
Const MD_BACKUP_SAVE_FIRST = 2 'Backup
Const MD_SERVER_STATE_CONTINUING = 7 'ServerState
Const MD_SERVER_STATE_PAUSING = 5 'ServerState
Const MD_SERVER_STATE_PAUSED = 6 'ServerState
Const MD_SERVER_STATE_STARTING = 1 'ServerState
Const MD_SERVER_STATE_STARTED = 2 'ServerState
Const MD_SERVER_STATE_STOPPING = 3 'ServerState
Const MD_SERVER_STATE_STOPPED = 4 'ServerState
Const NOT_A_VALID_PROPERTY = &H80005006 'Various methods
Anhang C
Referenz für ADSI

C.1 ADSI-Objekteigenschaften 512


C.2 ADSI-Methoden 512
C.3 Eigenschaften von ADSI-Containerobjekten 518
C.4 Methoden von ADSI-Containerobjekten 519
C.5 Änderungen an ADSI unter IIS 5.0 522
512 ADSI-Objekteigenschaften

Dieser Anhang beinhaltet Erläuterungen zu den Methoden und Objekten, die für
die Verwendung mit den IIS Admin Objects freigegeben sind.

C.1 ADSI-Objekteigenschaften
Die folgende Liste zeigt die sechs Haupteigenschaften von IIS Admin Objects,
die von allen ADSI-Objekten benötigt werden. Alle Eigenschaften sind vom
Datentyp »Zeichenkette«.

Eigenschaft Beschreibung
Name Der zu verwendende Objektname. Beispiel: W3SVC.
ADsPath Der Pfad, der das Objekt eindeutig identifiziert. Beispiel: IIS:
//computername/W3SVC.
Class Der Name der Schemaklasse. Beispiel: IISWebService.
GUID Die global eindeutige Kennung des Objekts. Beispiel:
{8B645678-7CF4-11CF-B24H-00AA006E1200}.
Parent Wird für den ADsPath des übergeordneten Containerobjekts ver-
wendet. Beispiel: IIS://computername.
Schema Der ADsPath des Objekts. Beispiel: IIS://computername/
schema/IisWebService.

C.2 ADSI-Methoden
Damit die Eigenschaften des IIS Admin Object in der Metabasis geändert werden
können, müssen die so genannten ADSI-Methoden benutzt werden, die im Fol-
genden erläutert werden. Öffnen Sie zuerst das zu modifizierende Objekt, nehmen
Sie dann die Änderungen vor und speichern Sie es dann wieder in der Metabasis.

Get
Mit dieser Methode holen Sie Werte eines Objek und speichern Sie in eine Vari-
able, die Sie in Ihrem Code verwenden können.
Syntax
RückWert = objekt.Get(eigenschaft)

oder
RückWert = objekt.eigenschaft

Komponenten
RückWert ist der zurückgegebene Wert der Eigenschaft.
Anhang C • Referenz für ADSI 513

objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
eigenschaft ist die Eigenschaft des Objekts, das aus der Metabasis geholt wurde.
Beispiel
<%
Dim objIIs, varRead, varWrite
Set objIIs = GetObject("IIS://computername/W3SVC/1/Root")
varRead = objIIs.Get("AccessRead")
varWrite = objIIs.AccessWrite
varRead = True
varWrite = False
objIIs.Put "AccessRead", varRead
objIIs.AccessWrite = varWrite
objIIs.SetInfo
%>

GetDataPaths
Mit dieser Methode ermitteln Sie die Pfade für alle Speicherorte einer Metabasis-
Eigenschaft. Die Pfade sind relativ zum spezifizierten Startpfad.
Syntax
varList = objekt.GetDataPaths(eigenschaft, AttributFlag)

Komponenten
varList enthält eine Liste aller Pfade, unter denen die angegebene Eigenschaft
vorhanden ist.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
eigenschaft ist der Name der Eigenschaft, deren Pfad Sie ermitteln wollen.
AttributFlag ist eines der folgenden Flags:
• IIS_ANY_PROPERTY. Findet die Pfade unabhängig davon, ob die Eigen-
schaft vererbbar ist oder nicht.
• IIS_INHERITABLE_ONLY. Findet die Pfade nur, wenn die Eigenschaft
vererbbar ist. Ist die Eigenschaft nicht vererbbar, dann wird die Zeichenkette
MD_ERROR_DATA_NOT_FOUND zurückgegeben.

Hinweis
Die Anweisung For each Path in varList...Next kann verwendet wer-
den, um einzelne Pfade in der Liste zu ermitteln.
514 ADSI-Methoden

Beispiel
<%
Const IIS_ANY_PROPERTY = 0
Const IIS_INHERITABLE_ONLY = 1
Const MD_ERROR_DATA_NOT_FOUND = &H800CC801
Dim objWebSvr, varList, varProperty
On Error Resume Next
Set objWebSvr = GetObject("IIS://computername/W3SVC/1")
varProperty = "AccessFlags"
varList = objWebSvr.GetDataPaths(varProperty, IIS_INHERITABLE_ONLY)
If Err.Number = 0 Then
Response.Write "Pfade für Eigenschaft " & varProperty & "<BR>"
For each Path in varList
Response.Write Path & "<BR>"
Next
ElseIf Err.Number = MD_ERROR_DATA_NOT_FOUND Then
Response.Write "Eigenschaft ist nicht vererbbar.<BR>"
ElseIf Err.Number = &H80005006 Then
Response.Write "Eigenschaft existiert nicht.<BR>"
Else
Response.Write "Fehler " & Err.Number & " " & Err.Description
End If
%>

GetEx
Diese Methode ermittelt einen oder mehrere Werte einer angegebenen Eigen-
schaft des Objekts. Enthält die Eigenschaft nur einen Wert, so wird dieser zurück-
gegeben; sind mehrere Werte vorhanden, dann werden alle zurückgegeben.
Syntax
RückWert = objekt.GetEx(eigenschaft)

Komponenten
RückWert enthält den von der Methode zurückgegebenen Eigenschaftswert.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
eigenschaft ist die Eigenschaft des Objekts, das aus der Metabasis geholt wurde.
Rückgabewert
Der Wert der Eigenschaft.
Beispiel
<%
Dim objIIs, varList
Anhang C • Referenz für ADSI 515

Set objIIs = GetObject("IIS://computername/W3SVC/Info")


varList = objIIs.GetEx("CustomErrorDescriptions")
objIIs.PutEx 2, "CustomErrorDescriptions", varList
objIIs.SetInfo
%>

GetInfo
Diese Methode holt die in der Metabasis vorhandenen Werte des Objekts. Mit den
zurückgegebenen Daten werden die Objekteigenschaften neu initialisiert.
Syntax
objekt.GetInfo

Komponenten
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Beispiel
<%
Dim objIIs
Set objIIs = GetObject("IIS://computername/W3SVC/1/Root")
' Hier folgt der Code, der die Eigenschaften modifiziert.
objIIs.GetInfo
%>

GetPropertyAttribObj
Mit dieser Methode ermitteln Sie das Objekt, das die Attribute der Eigenschaften
enthält. Sie können diese Angabe dann verwenden, um einzelne Attribute zu fin-
den.
Syntax
Initialisierung:
objPropAtt = objekt.GetPropertyAttribObj (eigenschaft)

Verwendung:
BoolescherRückWert = PropAttObj.Attribute

Komponenten
objPropAtt referenziert ein Objekt, dass die Eigenschaftsattribute von eigenschaft
enthält.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
516 ADSI-Methoden

eigenschaft ist eine Zeichenkette, die den Namen der Eigenschaft enthält, deren
Attribute Sie anfordern.
BoolescherRückWert ist ein Boolescher Wert, der anzeigt, ob das durch attribut
bezeichnete Attribut aktiviert ist oder nicht.

Attribut Beschreibung
Inherit Zeigt an, ob das Objekt vererbbar ist.
PartialPath Zeigt an, ob ein Teilpfad vorhanden ist.
Secure Zeigt an, ob die Eigenschaft sicher ist.
Reference Zeigt an, ob die Eigenschaft über eine Referenz erhalten wurde.
Volatile Zeigt an, ob die Eigenschaft flüchtig ist.
IsInherited Zeigt an, ob die Eigenschaft vererbt wurde.
InsertPath Zeigt an, ob eine Zeichenkette in einer Eigenschaft einen speziellen
Einfügewert enthält.
AllAttributes Enthält die in dieser Tabelle aufgelisteten Attribute als Wert vom Typ
Long.
Tab. C.1: Objektattribute

Beispiel
<%
Dim WebServerObj
Dim BoolescherRückWert

'Objekt für das Basisverzeichnis des ersten virtuellen Webservers öffnen.


Set WebServerObj = GetObject("IIS://MyComputer/W3SVC/1/Root")

propAttribObj = WebServerObj.GetPropertyAttribObj ("Name")


BoolescherRückWert = propAttribObj.Inherit
%>

Hinweis
Diese Eigenschaft unterstützt die Methoden Get und Put nicht – Sie müs-
sen statt dessen die Syntax objekt.eigenschaft verwenden.

Put
Mit dieser Methode weisen Sie der Eigenschaft eines Objekts einen Wert zu.
Syntax
objekt.Put eigenschaft, wert

oder
Anhang C • Referenz für ADSI 517

objekt.eigenschaft = wert

Komponenten
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
eigenschaft ist eine Eigenschaft des abgefragten Objekts.
wert ist der Wert dieser Eigenschaft.
Beispiel
<%
Dim objIIs, varRead
Set objIIs = GetObject("IIS://computername/W3SVC/1/Root")
varRead = objIIs.Get("AccessRead")
varRead = True
objIIs.Put "AccessRead", varRead
objIIs.SetInfo
%>

PutEx
Mit dieser Methode weisen Sie einer einzelnen oder auch mehreren Einstellungen
einer Eigenschaft, die über mehrere Einstellmöglichkeiten verfügt, einen bzw.
mehrere Werte zu.
Syntax
objekt.PutEx steuercode, eigenschaft, wert

Komponenten
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
steuercode legt fest, ob die Eigenschaft aktualisiert wird, oder ob sie aus dem
Objekt entfernt wird. Der Wert kann wahlweise ADS_PROPERTY_UPDATE
(Wert 2) zum Aktualisieren oder ADS_PROPERTY_CLEAR (Wert 1) zum
Löschen sein.
eigenschaft ist eine Eigenschaft des abgefragten Objekts.
wert ist der Wert dieser Eigenschaft. Wird das Objekt entfernt (steuercode =
ADS_PROPERTY_CLEAR), dann ist wert eine leere Zeichenkette.
Beispiel
<%
Dim objIIs, varList
Set objIIs = GetObject("IIS://computername/W3SVC/Info")
varList = objIIs.GetEx("CustomErrorDescriptions")
518 Eigenschaften von ADSI-Containerobjekten

objIIs.PutEx 2, "CustomErrorDescriptions", varList


objIIs.PutEx 1, "ObsoleteProperty", ""
objIIs.SetInfo
%>

SetInfo
Diese Methode schreibt die Eigenschaftswerte in die Metabasis. Sie müssen diese
Methode aufrufen, um Änderungen in der Metabasis zu speichern. Alle geänder-
ten Werte werden beim Aufruf gespeichert, nicht geänderte Werte werden nicht
angerührt.
Syntax
objekt.SetInfo

Komponenten
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Beispiel
<%
Dim objIIs
Set objIIs = GetObject("IIS://computername/W3SVC/1/Root")
' Code, der Eigenschaften ändert
objIIs.SetInfo
%>

C.3 Eigenschaften von ADSI-Containerobjekten


ADSI-Objekte, die andere ADSI-Objekte enthalten können, werden als ADSI-
Containerobjekte bezeichnet. ADSI-Containerobjekte können ADSI-Container-
methoden und -eigenschaften implementieren. In diesem Abschnitt zeigen wir
zwei schreibgeschützte ADSI-Containereigenschaften.
• _NewEnum. Diese Eigenschaft gibt ein Auflistungsobjekt (»Enumerator«) zu-
rück, in dem die abgefragten Objekte abgelegt werden können. Das Objekt
kann von jeder Skriptsprache mit Automationsaktivierung – etwa VBScript –
zum Abarbeiten der Objektsammlung und zur Manipulation der Objekte mit
Hilfe einer For Each-Schleife verwendet werden.
• Count. Diese Eigenschaft beinhaltet die Anzahl der Objekte im Containerob-
jekt. Mit ihr können Sie bestimmen, wie viele Objekte im Container vorhanden
sind, oder Sie können die Objekte mit Hilfe dieser Eigenschaft in einer
For…Next-Schleife abarbeiten.
Anhang C • Referenz für ADSI 519

C.4 Methoden von ADSI-Containerobjekten


Mit den fünf Eigenschaften, die für ADSI-Containerobjekte vorhanden sind, kön-
nen Sie Objekte in einem Containerobjekt manipulieren.

Hinweis
Wenn das IIS Admin Object ebenfalls ein Containerobjekt ist, dann
behält es seine eigenen ADSI-Objekteigenschaften und -methoden. Fer-
ner gelten hierfür auch alle IIS-spezifischen Methoden und die zugehöri-
gen Metabasis-Eigenschaften

CopyHere
Mit dieser Methode kopieren Sie ein Objekt in einen Container.
Syntax
Set objKopie = objekt.CopyHere(Name, NameNeu)

Komponenten
objKopie wird für den Zugriff auf das Objekt verwendet, dass in den Container
kopiert wurde.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Name ist der Name des zu kopierenden Objekts.
NameNeu ist der neue Name für das kopierte Objekt.

Hinweis
Die Variable objKopie erhält nur einen Zeiger auf das Objekt; das Objekt
selbst bleibt im Container. Jedem, der sich mit der C- oder C++-Program-
mierung auskennt, wird dieses Verhalten bekannt vorkommen.

Beispiel
<%
Dim ToobjDir, FromobjDir, RootobjDir
Set RootobjDir = GetObject("IIS://computername/W3SVC/4/ROOT")
Set ToobjDir = RootVDirObj.CopyHere("VDir1", "VDir2")
RootobjDir.SetInfo
%>

Create
Diese Methode wird benutzt, um ein neues Objekt in einem Container zu erstel-
len.
520 Methoden von ADSI-Containerobjekten

Syntax
Set objNewObj = objekt.Create(Typ, Name)

Komponenten
objNewObj wird für den Zugriff auf das Objekt verwendet, dass im Container
erstellt wurde.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Typ ist der Typ des zu erstellenden IIS Admin Object.
Name ist der Name des zu erstellenden Objekts.
Beispiel
<%
Dim objWebService, objServer
Set objWebService = GetObject("IIS://computername/W3SVC")
Set objServer = objWebService.Create("IIsWebServer", "3")
%>

Delete
Mit dieser Methode wird ein Objekt aus einem Container gelöscht.
Syntax
objekt.Delete Typ, Name

Komponenten
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Typ ist der Typ des zu löschenden IIS Admin Object.
Name ist der Name des zu löschenden Objekts.

Hinweis
Wenn das zu entfernende Containerobjekt Bestandteil einer Anwendung
ist, dann entfernt die Methode Delete zunächst die Anwendungsdefini-
tion und erst dann das Objekt.

Beispiel
<%
Dim objWebService
Set objWebService = GetObject("IIS://computername/W3SVC")
objWebService.Delete "IIsWebServer", "4"
%>
Anhang C • Referenz für ADSI 521

GetObject
Mit dieser Methode greifen Sie auf ein Objekt in einem Container zu und überge-
ben es einer aufrufenden Prozedur.
Syntax
Set objUnterObj = objekt.GetObject(Klasse, Name)

Komponenten
objUnterObj wird für den Zugriff auf das Objekt benutzt. Die Methode arbeitet
exakt so wie die ASP-Funktion GetObjekt.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Klasse ist die Klasse des zu holenden Objekts.
Name ist der Name des zu holenden Objekts.

Hinweis
Die Variable objUnterObj erhält nur einen Zeiger auf das Objekt; das
Objekt selbst bleibt im Container.

Beispiel
<%
Dim objWebService, objServer
Set objWebService = GetObject("IIS://computername/W3SVC")
Set objServer = objWebService.GetObject("IIsWebServer", "3")
%>

MoveHere
Diese Methode verschiebt ein Objekt in den Container. Außerdem entfernt es das
Objekt im ursprünglichen Container.
Syntax
Set objMoved = objekt.MoveHere(Name, NameNeu)

Komponenten
objMoved wird für den Zugriff auf das zu verschiebende Objekt benutzt.
objekt beinhaltet ein IIS Admin Object, das durch den Vorgang GetObject zurück-
gegeben wurde.
Name ist der Name des zu verschiebenden Objekts.
NameNeu ist der neue Name für das verschobene Objekt.
522 Änderungen an ADSI unter IIS 5.0

Hinweis
Die Variable objMoved erhält nur einen Zeiger auf das Objekt; das
Objekt selbst bleibt im Container.

Beispiel
<%
Dim ToobjDir, FromobjDir, RootobjDir
Set RootobjDir = GetObject("IIS://computername/W3SVC/3/ROOT")
Set FromobjDir = GetObject("IIS://computername/W3SVC/3/ROOT/VDir1")
Set ToobjDir = RootobjDir.MoveHere("VDir1", "VDir2")
Set FromobjDir = nothing
%>

C.5 Änderungen an ADSI unter IIS 5.0


In diesem Abschnitt werden neue und geänderte Merkmale von ADSI unter
IIS 5.0 aufgelistet.

C.5.1 Leistungsmerkmale von IIS 5.0


Eines der Merkmale von IIS 4.0, das hin und wieder zu Problemen mit der Sys-
temleistung führte, war die Verwendung von Sockets für Websites. Da jede Site
an eine eigene IP-Adresse gebunden werden musste, benötigte sie für den Betrieb
auch einen eigenen Socket. Das bedeutete natürlich auch, dass jede neue Website
zur Kommunikation auch einen Socket öffnen musste. Diese Sockets verwende-
ten nicht ausgelagerten Speicher und jeder neu geöffnete Socket beanspruchte
noch mehr Speicher.
Unter IIS 5.0 können Websites so konfiguriert werden, dass alle über eine eigene
IP-Adresse verfügen, aber die gleiche Anschlussadresse verwenden. Auf diese
Weise können die Sites auch den gleichen Socket nutzen. Es muss also nicht mehr
für jede Site ein neuer Socket geöffnet werden, wodurch der Speicherbedarf dras-
tisch sinkt.
Manche Sites benötigen aus Sicherheitsgründen nach wie vor einen dedizierten
Socket. Eine solche Konfiguration können Sie vornehmen, indem Sie der Eigen-
schaft DisableSocketPooling den Wert TRUE zuweisen. Nehmen Sie diese Ein-
stellung aber in jedem Fall auf Site- und nicht auf der Computerebene vor.

C.5.2 Unter IIS 5.0 entfernte Eigenschaften


Microsoft hat die ADSI-Eigenschaft AspMemFreeFactor unter IIS 5.0 entfernt.
Anhang C • Referenz für ADSI 523

C.5.3 Neue Eigenschaften unter IIS 5.0


Die folgenden ADSI-Eigenschaften wurden unter IIS 5.0 hinzugefügt.

AccessSource AspEnableApplicationRestart
AspEnableAspHtmlFallback AspEnableChunkedEncoding
AspEnableTypeLibCache AspErrorsToNTLog
AspProcessorThreadMax AspQueueConnectionTestTime
AspRequestQueueMax AspSessionMax
AspTrackThreadingModel CPUAppEnabled
CPUCGIEnabled CPUCGILimit
CPUEnableActiveProcs CPUEnableAllProcLogging
CPUEnableAppLogging CPUEnableCGILogging
CPUEnableEvent CPUEnableKernelTime
CPUEnablePageFaults CPUEnableProcType
CPUEnableTerminatedProcs CPUEnableTotalProcs
CPUEnableUserTime CPULimitLogEvent
CPULimitPause CPULimitPriority
CPULimitProcStop CPULimitsEnabled
CPULoggingInterval CPULoggingMask
CPULoggingOptions CPUResetInterval
DisableSocketPooling HcCacheControlHeader
HcCompressionBufferSize HcCompressionDirectory
HcCompressionDll HcCreateFlags
HcDoDiskSpaceLimiting HcDoDynamicCompression
HcDoOnDemandCompression HcDoStaticCompression
HcDynamicCompressionLevel HcExpiresHeader
HcFileExtensions HcFilesDeletedPerDiskFree
HcIoBufferSize HcMaxDiskSpaceUsage
HcMaxQueueLength HcMimeType
HcMinFileSizeForComp HcNoCompressionForHttp10
HcNoCompressionForProxies HcNoCompressionForRange
HcOnDemandCompLevel HcPriority
HcSendCacheHeaders LogCustomPropertyDataType
524 Änderungen an ADSI unter IIS 5.0

LogCustomPropertyHeader LogCustomPropertyID
LogCustomPropertyMask LogCustomPropertyName
LogCustomPropertyServicesString NotDeletable
SSLUseDSMapper

C.5.4 Änderungen bei den Eigenschaftstypen


Bei den folgenden vier Eigenschaften wurden unter IIS 5.0 Änderungen an den
Schlüsseltypen vorgenommen. Diese werden in Anhang D näher beschrieben.
• KeyType
• FrontPageWeb
• CacheISAPI
• AspTrackThreadingModel

C.5.5 Änderungen bei den Eigenschaften unter IIS 5.0


Für die Eigenschaft ScriptMaps wurde bei der aktuellen Version von IIS 5.0 eine
Syntaxänderung implementiert. Microsoft hat den Befehlsausschluss durch einen
Einschluss benötigter Befehle ersetzt. Das bedeutet, dass die Befehle (»Verbs«)
nun in der Eigenschaftssyntax enthalten sein müssen.
Weitere Informationen zum Einschluss von Befehlen finden Sie in Anhang D
unter ScriptMaps.
Anhang D
Skriptreferenz

D.1 Referenz: @-Anweisungen 526


D.2 Referenz für die Datei global.asa 529
526 Referenz: @-Anweisungen

In diesem Anhang finden Sie Referenzinformationen zu den @-Anweisungen, die


Bestandteil von IIS 5.0 sind, und zur Datei global.asa. Auf der MSDN-Website
von Microsoft finden Sie eine extrem umfassende Referenz zu VBScript und
JScript, die Ihnen Informationen und Tutorien zu beiden Sprachen anbietet. Fer-
ner finden Sie Referenzen zu anderen Skriptsprachen mit hoher Verbreitung im
Internet – insbesondere natürlich auf Sites von Anbietern dieser Sprachen.

D.1 Referenz: @-Anweisungen


Dieser Abschnitt erläutert die @-Verarbeitungsanweisungen, die zur Übermitt-
lung von Verarbeitungsdaten an ISS dienen, in Zusammenhang mit Ihren ASP-
Skripts.

@CODEPAGE
Mit dieser Anweisung wird eine Codepage ausgewählt, die durch Ihre ASP-Datei
verwendet wird. Die Codepage definiert den zu verwendenden Zeichensatz auf
gleiche Weise, wie dies eine Textverarbeitung tut.
Syntax
<%@ CODEPAGE = codepage %>

Die Variable codepage bezeichnet hier eine gültige Codepage, die auf der Seite zu
verwenden ist.
Der Wert kann durch die Eigenschaft Session.Codepage überschrieben werden;
dies gilt dann aber nur für die aktuelle Sitzung. Sobald diese endet, wird der Wert
wieder auf die vorherige Codepage zurückgesetzt.
Einige der häufiger verwendeten Codepages sind in der folgenden Tabelle aufge-
listet.

Codepage Sprache
437 Englisch (USA)
850 Multilingual (Latin 1)
852 Slawisch
855 Kyrillisch (Russisch)
857 Türkisch
860 Portugiesisch
861 Isländisch
863 Kanadisches Französisch
865 Nordisch
Tab. D.1: Codeseiten und die zugeordneten Sprachen
Anhang D • Skriptreferenz 527

Codepage Sprache
866 Russisch
869 Modernes Griechisch
932 Japanisch
936 Chinesisch (VRC)
950 Chinesisch (Taiwan)
Tab. D.1: Codeseiten und die zugeordneten Sprachen (Forts.)

Diese Codepages werden normalerweise unter den LÄNDEREINSTELLUNGEN auf


Ihrem Windows-Computer eingestellt. Wenn die Codepagedefinitionen nicht auf
dem Rechner installiert sind, erhalten Sie einen ASP-Fehler.

@ENABLESESSIONSTATE
Diese Anweisung wird zum Aktivieren und Deaktivieren des Sitzungsstatus ver-
wendet. Es handelt sich um einen booleschen Wert, der nur die Einstellungen
TRUE und FALSE akzeptiert. Wenn Sie auf Ihrer Website keine Sitzungen einset-
zen, dann sollten Sie den Wert FALSE zuweisen. Dadurch können Sie die Leis-
tung Ihres Servers verbessern, denn in diesem Fall muss IIS Sitzungsvariablen in
Skripts nicht bearbeiten.
Syntax
<%@ ENABLESESSIONSTATE=TRUE|FALSE %>

Durch Zuweisung von TRUE aktivieren Sie die Verwaltung des Sitzungsstatus auf
der ASP-Seite, über FALSE deaktivieren Sie sie.

@LANGUAGE
Diese Anweisung bezeichnet die Skriptsprache, die auf der ASP-Seite verwendet
wird. Diese Sprache muss auf dem Server installiert sein. Bei der Installation von
IIS werden die Sprachen VBScript und JScript automatisch installiert.
Die unter den IIS-Eigenschaften festgelegte Standardsprache ist VBScript. Diese
Sprache muss deswegen nicht im Header einer ASP-Datei spezifiziert werden.
Syntax
<%@ LANGUAGE=Jscript|VBScript|AndereSkriptSprache %>

AndereSkriptSprache ist der Name einer beliebigen anderen Skriptsprache, für die
Sie eine Skript-Engine installiert haben.
Mit IIS Admin Objects können Sie die Standardskriptsprache über die Eigen-
schaft AspScriptLanguage ändern. Diese Eigenschaft kann auf der Ebene des
WWW-Dienstes, des Webservers, eines virtuellen oder physikalischen Verzeich-
nisses gesetzt werden.
528 Referenz: @-Anweisungen

Alternativ können Sie die Standardskriptsprache durch Änderung der Eigenschaf-


ten einer Website austauschen. Öffnen Sie das Dialogfeld EIGENSCHAFTEN der
Website, auf der Sie die Standardsprache ändern wollen, wählen Sie zunächst die
Schaltfläche BEARBEITEN bei HAUPTEIGENSCHAFTEN und aktivieren Sie anschlie-
ßend die Registerkarte BASISVERZEICHNIS. Klicken Sie dort auf die Schaltfläche
KONFIGURATION, die Sie im Abschnitt ANWENDUNGSEINSTELLUNG unten auf der
Registerkarte finden. Nun wird das Dialogfeld ANWENDUNGSKONFIGURATION
aufgerufen. Wählen Sie dort die Registerkarte ANWENDUNGSOPTIONEN und
ändern Sie die Einstellung ASP-STANDARDSPRACHE nach Bedarf.

@LCID
LCID steht für »locale identifier« (Gebietsschemakennung). Sie verwenden diese
Anweisung, um den entsprechenden Wert einer Webseite basierend auf den auf
dem Computer installierten Gebietsschemata zu setzen. Bei der Kennung handelt
es sich um eine internationale numerische Standardabkürzung.
Indem Sie den Wert setzen, bestimmen Sie, welche Zahlen- und Währungsfor-
mate, welche Trennzeichen und Formate für Datum und Uhrzeit verwendet wer-
den.
LCID verwendet zwei vordefinierte Werte für das Gebietsschema. LOCALE_
SYSTEM_DEFAULT bezeichnet das Standardgebietsschema des lokalen Systems,
LOCALE_USER_DEFAULT das Gebietsschema des aktuellen Benutzers.
Syntax
<%@ LCID=GebietsschemaID %>

Die Variable GebietsschemaID enthält einen gültigen LCID-Eintrag.

@TRANSACTION
Wenn Sie besorgt sind, dass Daten während der Übermittlung verloren gehen
könnten, dann können Sie die COM-Fähigkeiten von Windows 2000, IIS und
Visual Basic nutzen, indem Sie festlegen, dass Transaktionen verwendet werden.
Transaktionen dienen dazu, sicherzustellen, dass eine Datenübertragung entweder
vollständig oder gar nicht durchgeführt wird. Ein gutes Beispiel hierzu ist Nut-
zung von ATM. Wenn eine ATM-Transaktion aus irgendeinem Grund unterbro-
chen wird, dann wünschen Sie natürlich nicht, dass Ihr Konto mit Gebühren für
eine Buchung belastet wird, die gar nicht stattgefunden hat. Dieses Problem wird
mit Transaktionen gelöst.
Durch die Anweisung @TRANSACTION teilen Sie IIS mit, dass Sie Transaktio-
nen für das aktuelle Skript verwenden wollen. In diesem Fall erstellen die Kom-
ponentendienste auf dem Computer das benötigte Objekt, um die Bearbeitung zu
überwachen und sicherzustellen, dass die Transaktion auch tatsächlich wie
gewünscht durchgeführt wird.
Anhang D • Skriptreferenz 529

Syntax
<%@ TRANSACTION=wert %>

Die Variable wert kann einen der folgenden Werte haben:


• Required. In diesem Fall initiiert das Skript eine Transaktion.
• Requires_New. Auch hier wird eine Transaktion initiiert.
• Supported. Es wird keine Transaktion initiiert.
• Not-Supported. Es wird keine Transaktion initiiert.

Hinweis
Die Anweisung @TRANSACTION muss in der ersten Zeile der Seite ste-
hen, damit IIS keinen Fehler erzeugt. Sie müssen außerdem sicherstellen,
dass die Anweisung auf jeder Seite vorhanden ist, die Transaktionen
benötigt.

D.2 Referenz für die Datei global.asa


Bei der Datei global.asa handelt es sich um eine optionale Datei, die zur Deklara-
tion von Objekten für ASP-Seiten mit dem Wirkungsbereich (»Scope«) Session
oder Application benutzt wird. Die Datei muss im Basisverzeichnis der Anwen-
dung abgelegt sein, und jeder Anwendung darf nur eine global.asa-Datei zuge-
ordnet sein.
Die Datei global.asa darf nur die folgenden Elemente enthalten:
• <OBJECT>-Deklarationen. Diese Deklarationen werden zur Erstellung von Ob-
jekten auf dem Server benutzt, die für die Bereiche Session oder Application
benötigt werden. Ein Beispiel könnte etwa so aussehen:
<OBJECT RUNAT=Server SCOPE=Session ID=adRot PROGID="MSWC.AdRotator"></
OBJECT>

Hierdurch wird ein Ad Rotator-Objekt erstellt, das im Bereich Session (d.h.


nur für die aktuelle Sitzung) auf dem Server ausgeführt wird.
• TypeLibrary-Deklarationen. Typbibliotheken sind Dateien, die Daten über
solche Objekte enthalten, die von COM-Komponenten unterstützt werden.
Weitere Informationen über TypeLibrary finden Sie weiter unten in diesem
Anhang unter der Überschrift »TypeLibrary-Deklarationen«.
• Anwendungsereignisse. Hierbei handelt es sich um Ereignisse wie
Application_OnStart oder Application_OnEnd. Diese werden im Verlauf die-
ses Anhangs unter der Überschrift »Anwendungsereignisse« behandelt.
530 Referenz für die Datei global.asa

• Sitzungsereignisse. Es gibt zwei Sitzungsereignisse, nämlich Session_OnStart


und Session_OnEnd. Diese werden im Verlauf dieses Anhangs unter der Über-
schrift »Sitzungsereignisse« behandelt.
Sie können die Verwendung der Datei global.asa in jeder unterstützten Sprache
festschreiben. Skripts, die nicht von den <SCRIPT>-Tags umschlossen sind, verur-
sachen Fehler.
HTML-Befehle in der Datei global.asa werden ebenso ignoriert wie von Tags
umschlossene Skriptteile, die nicht durch Anwendungs- oder Sitzungsereignisse
benutzt werden.
Wenn Sie bei laufenden Anwendungen oder Sitzungen Änderungen an der Datei
global.asa vornehmen, dann werden diese erst übernommen, wenn alle Anwen-
dungen und Sitzungen abgeschlossen sind. Der Server kompiliert die Datei
global.asa dann neu und speichert die Änderungen.

Hinweis
Wenn Sie an der Datei global.asa Änderungen vornehmen und diese
speichern, verarbeitet der Server währenddessen aktive Sitzungen und
Anwendungen unbeeindruckt weiter, bis diese beendet werden. Es ist in
diesem Fall allerdings nicht möglich, neue Verbindungen herzustellen,
solange die Datei global.asa noch nicht wieder kompiliert wurde.

Wenn Sie mit einer global.asa-Datei arbeiten und Prozeduren in Ihrem ASP-Code
verwenden, dann müssen Sie immer bedenken, dass alle Prozeduren oder Funk-
tionen, die in der Datei global.asa definiert wurde, für die Prozeduren in Ihrem
ASP-Code nicht zur Verfügung stehen. Diese Prozeduren und Funktionen in der
Datei global.asa sind nur für solche Skripts vorhanden, die die Ereignisse
Application_OnStart, Application_OnEnd, Session_OnStart und Session_OnEnd
aufrufen. Wenn Sie Prozeduren oder Funktionen für alle oder eine Gruppe von
Anwendungen verfügbar machen wollen, empfehle ich Ihnen daher, die Prozedur
in einer Datei zu erstellen und dieses File über #include in diejenigen Seiten mit
einzuschließen, welche die Funktionalität der Prozedur benötigen.

D.2.1 Anwendungsereignisse
Wenn Sie eine ASP-Anwendung erstellen, die unter IIS laufen soll, dann liegen
die Anwendung und alle zugehörigen Dateien in einem Basisverzeichnis oder in
gegebenenfalls benötigten Unterverzeichnissen.
Wenn nun ein Benutzer auf eine Webseite zugreift, die den ASP-Code enthält,
dann startet er dadurch diese Anwendung. Beim Anwendungsstart sucht der Ser-
ver im Basisverzeichnis der Anwendung nach der Datei global.asa; ist diese vor-
handen, dann arbeitet er das Ereignisskript Application_OnStart ab. Wenn die
Anwendung dann endet, wird das Skript Application_OnEnd verarbeitet.
Anhang D • Skriptreferenz 531

Application_OnStart
Dieses ist das beim Start einer Anwendung zuerst zu verarbeitende Ereignis. Das
Ereignis Session_OnStart wurde noch nicht verarbeitet, und Skripts im Ereignis
Session_OnStart stehen infolgedessen Ihrem Code noch nicht zur Verfügung. Die
einzigen Objekte, die bis jetzt für Ihren Code vorhanden sind, sind Application
und Server; alle Verweise auf andere Objekte erzeugen einen Fehler.
Syntax
<SCRIPT LANGUAGE=SkriptSprache RUNAT=Server>
Sub Application_OnStart
Hier ist der Code
End Sub
</SCRIPT>

Die Variable SkriptSprache bezeichnet die verwendete Skriptsprache.


Beispiel
Sub Application_OnStart

Application("PageCounter") = 0

End Sub

Dieser kleine Codeausschnitt demonstriert, wie das Ereignis Application_OnStart


verwendet wird, um einen Seitenzähler auf 0 zurückzusetzen (in diesem Beispiel
gehen wir davon aus, dass dieser Zähler bei jedem Start einer bestimmten Anwen-
dung zurückgesetzt werden soll). Eine andere Möglichkeit wäre zu ermitteln, wie
oft während einer Anwendungssitzung auf die Seite zugegriffen wird.
Es gibt weitere Methoden des Objekts Application, die Sie in Ihrem Skriptcode
verwenden können, so etwa Application.Lock oder Application.Unlock. Diese bei-
den Methoden verhindern Änderungen am Application-Objekt, solange ein
Benutzer darauf in irgendeiner Weise zugreift. Die Methoden werden allerdings
von Ereignis Application_OnStart nicht benötigt, da das Ereignis nur einmal auf-
gerufen wird.

Application_OnEnd
Wenn der gesamte Code der Sitzung beendet ist und das Ereignis Session_OnEnd
abgearbeitet wurde, dann sind die letzten noch verbleibenden Objekte für Ihre
Anwendung Server und Application. Dies ist allerdings kein Problem, da Sie nor-
malerweise das Ereignis Application_OnEnd verwenden, um alle auf Anwen-
dungsebene deklarierten Objekte auf »Nichts« zu setzen und den entsprechenden
Speicher so freizugeben.
532 Referenz für die Datei global.asa

Syntax
<SCRIPT LANGUAGE= SkriptSprache RUNAT=Server >

Sub Application_OnEnd
Hier ist der Code
End Sub

</SCRIPT>

Die Variable SkriptSprache bezeichnet die verwendete Skriptsprache. Sie können


mehrere Skriptsprachen auf der Seite einsetzen, die dann zwischen den gleichen
<SCRIPT>-Tags kombiniert werden.
Beispiel
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Hier ist der Code
</SCRIPT>

Hinweis
Sie können die Methode MapPath aus dem Skript Application_OnEnd
heraus nicht aufrufen.

D.2.2 Sitzungsereignisse
Wenn ein neuer Client mit dem Server eine Verbindung herstellt und eine Anwen-
dung zu starten versucht, dann initiiert der Server für diesen Benutzer eine neue
Sitzung. Diese dauert solange, bis entweder für eine gewisse Zeitspanne keine
Clientaktivitäten mehr festgestellt wurden (Timeout) oder die Methode Abandon
aufgerufen wurde.
Für Sitzungen gibt es zwei Ereignisse, nämlich Session_OnStart und Session_
OnEnd. Diese Methoden können Skripts enthalten, die in der Datei global.asa
ausgeführt werden, wenn eine Anwendung gestartet wird.

Hinweis
Die Sitzungsüberwachung ist standardmäßig aktiv. Sie kann, wie weiter
oben beschrieben, mit Hilfe der Anweisung @ENABLESESSIONSTATE
deaktiviert werden.

Session_OnStart
Wenn ein Benutzer eine Webseite anfordert, die eine Anwendung enthält, dann
wird das Ereignis Session_OnStart verarbeitet, bevor die Seite ausgeführt und an
den Benutzer zurückgegeben wird. Aus diesem Grund bietet es sich an, in diesem
Ereignis Code abzulegen, der globale Systemvariablen initialisiert und mit Wer-
ten belegt.
Anhang D • Skriptreferenz 533

Für dieses Ereignis sind die Objekte Application, ObjectContext, Response,


Request und Server verfügbar.
Syntax
<SCRIPT LANGUAGE= SkriptSprache RUNAT=Server>
Sub Session_OnStart
Hier ist der Code
End Sub
</SCRIPT>

Die Variable SkriptSprache bezeichnet eine gültige Skriptsprache, die auf dem
Computer installiert ist.
Beispiel
<SCRIPT RUNAT=Server LANGUAGE=VBScript>
Sub Session_OnStart
Dim startPage, currentPage
startPage = "/MeineAnwendung/Startseite.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")

If strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
End If
End Sub
</SCRIPT>

Dieses Codebeispiel funktioniert nur mit Browsern, die Cookies unterstützen,


denn es verwendet die Eigenschaft SessionID (Sitzungskennung). Verwendet der
Benutzer einen Browser, der keine Cookies unterstützt, dann wird bei jedem Auf-
ruf der Seite eine neue Sitzung initiiert.

Warnung
Wird in Ihrem Skript die Methode Redirect benutzt, dann sollten Sie
beachten, dass der gesamte auf Redirect folgende Code nicht verarbeitet
wird. Aus diesem Grund ist es ratsam, den Aufruf der Methode an das
Ende des Skripts im Ereignis Session_OnStart zu setzen.

Session_OnEnd
Dieses Ereignis findet statt, wenn die Sitzung aufgrund eines Timeouts oder durch
die Methode Abandon beendet wird. Die einzigen für dieses Ereignis noch vor-
handenen Objekte sind Application, Server und Session.
Syntax
<SCRIPT LANGUAGE= SkriptSprache RUNAT=Server>
Sub Session_OnEnd
534 Referenz für die Datei global.asa

Hier ist der Code

End Sub
</SCRIPT>

Die Variable SkriptSprache bezeichnet die auf der Seite verwendete Skriptspra-
che.
Beispiel
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnEnd

Set objSomeObject = Nothing

End Sub
</SCRIPT>

Hinweis
Aus diesem Ereignis heraus können Sie die Methode MapPath nicht auf-
rufen.

Dieses Ereignis ist der richtige Platz für alle Codezeilen, die der Löschung von
Sitzungsvariablen dienen.

D.2.3 <OBJECT>-Deklarationen
Das Tag <OBJECT> ist ein in sich abgeschlossenes Tag, das außerhalb der
<SCRIPT>-Tags vorhanden sein kann. Es wird verwendet, um globale Objekte zu
erstellen, die von einer Anwendung oder Sitzung verwendet werden.
Wenn die Skripts in der Datei global.asa verarbeitet werden, werden die Objekte
zur gleichen Zeit erstellt.
Syntax
<OBJECT RUNAT=Server SCOPE=bereich ID=name { PROGID="ProgID"|CLASSID="ClassID"}>

Hier ist der Code

</OBJECT>

bereich bezeichnet den Bereich des Objekts. In der Datei global.asa ist dies wahl-
weise Application oder Session. name gibt dem Objekt einen Namen, über den es
im Code aufgerufen werden kann. ProgID ist eine Objektkennung, die einer Klas-
senkennung zugeordnet ist; normalerweise ist das Format dieser Kennung anbie-
ter.komponente.version. ClassID ist eine eindeutige Kennung eines COM-
Klassenobjekts.
Anhang D • Skriptreferenz 535

Hinweis
Sie müssen im <OBJECT>-Tag entweder eine PROGID oder eine CLASSID
spezifizieren.

Beispiel
<OBJECT RUNAT=Server SCOPE=Session ID=dbConnection PROGID="ADODB.Connection">

Hier ist der Code

</OBJECT>

Dieses Beispiel erstellt eine ADODB-Datenbankverbindung mit dem Bereich


Session (d.h. für die aktuelle Sitzung). Durch Deklaration der Variablen in der
Datei global.asa können Sie diese überall in Ihrem Skriptcode verwenden. Dies
ist sinnvoll, wenn Sie mehrere Webseiten haben, die auf die gleiche Datenbank
zugreifen müssen – wenn Sie die Variable nicht in der Datei global.asa deklarie-
ren würden, dann müsste auf jeder Seite eine ADODB-Verbindung deklariert
werden.

D.2.4 TypeLibrary-Deklarationen
TypeLibrary-Deklarationen verwenden Sie zur Angabe von Informationen über
Objekte und Typen, die von COM-Komponenten unterstützt werden. Sie können
dann durch Angabe des Typbibliotheksnamens aus Ihrem Code heraus auf diese
Daten zugreifen.
Syntax
<!--METADATA TYPE="TypeLib"
FILE="dateipfad"
UUID="TypBibliothekUUID"
VERSION="HöchsteVersionsNummer.NiedrigsteVersionsNummer"
LCID="LocaleID"
-->

Die Variable dateipfad bezeichnet den absoluten Pfad zur Typbibliothek, TypBi-
bliothekUUID ist ihre universelle eindeutige Kennung; einer dieser beiden Para-
meter muss angegeben werden. HöchsteVersionsNummer und NiedrigsteVersions-
Nummer sind optionale Parameter, die die auszuwählende Version spezifizieren.
Ist die hierdurch bezeichnete Version nicht vorhanden, so wird jeweils die neueste
Version benutzt. LocaleID verweist auf das Gebietsschema der zu verwendenden
Bibliothek; ist die angeforderte Gebietsschemakennung nicht vorhanden, dann
wird das Standardgebietsschema des Systems benutzt.
Bei der Arbeit mit Typbibliotheken können verschiedene Fehler auftreten. Der
Server gibt die folgenden Fehlermeldungen zurück:
536 Referenz für die Datei global.asa

• ASP 0222. Ungültige Spezifikation der Typbibliothek. Das Tag <METADATA>


enthält eine ungültige Typbibliothekenangabe.
• ASP 0223. Typbibliothek kann nicht gefunden werden. Das Tag <METADATA>
enthält eine Typbibliothekenangabe, die nicht mit dem Registrierungseintrag
übereinstimmt.
• ASP 0224. Typbibliothek kann nicht geladen werden. ASP kann die im Tag
<METADATA> angegebene Typbibliothek nicht laden.

• ASP 0225. Kein Wrappen für Typbibliothek möglich. ASP kann kein Type-
LibraryWrapper-Objekt für die im Tag <METADATA> angegebene Typbibliothek
erstellen.
Beispiel
<!--METADATA TYPE="TypeLib"
FILE="C:\wwwroot\gkcomput\typelibs\NeueKomponente.tlb"
VERSION="1.0"
LCID="localeid"
-->

Hier sehen Sie die Deklaration der Typbibliothek für eine Komponente
namens NeueKomponente, wobei statt der UUID der vollständige Pfadname
angegeben wurde. Die Versionsnummer und die Gebietsschemakennung wer-
den spezifiziert.

Tipp
Am besten setzen Sie Ihre Typendeklarationen in der Datei global.asa
ganz nach oben. Dadurch wird die Bestimmung der im Code verwende-
ten Typbibliotheken erleichtert – Sie müssen nur den obersten Teil der
Datei überprüfen.

Tipp
Eine Syntax in der Art wie objekt.methode oder objekt.eigenschaft kön-
nen Sie auch bei Typbibliotheken verwenden. ADODB.strConnection
beispielsweise ist leichter zu entschlüsseln als strConnection im Code.
Anhang E
Beispiele für die
programmgesteuerte
Administration

E.1 Sicherung der Metabasis 538


E.2 Wiederherstellen der Metabasis 542
E.3 Fazit 545
538 Sicherung der Metabasis

Die Erfüllung der einen oder anderen administrativen Aufgabe kann bei IIS schon
recht viel Zeit benötigen, wenn man das Snap-In oder die HTML-Oberfläche ver-
wendet. Es gibt auch ein paar vorgefertigte Skripts, die Ihnen bei der effizienteren
oder sogar automatisierten Lösung solcher Aufgaben hilfreich sein können.
Microsofts hat ein paar Beispielskripts erstellt, die Ihnen helfen sollen, einige
häufiger auftretende Arbeiten durchzuführen. Sie können anhand dieser Skripts
außerdem lernen, eigene Skripts zu schreiben. Diese Skripts können Sie beliebig
in VBScript oder JScript verfassen. Die IIS 5.0 beiliegenden Skripts sind für die
Verarbeitung durch den Windows Script Host (WSH) mit Hilfe der Programme
Wscript.exe oder Cscript.exe gedacht.
Cscript.exe ist zur Verwendung in der Befehlszeile gedacht und folgt der Syntax
Csript.exe scriptname, wobei scriptname der Name des auszuführenden Skripts
ist. Wscript.exe können Sie mit der gleichen Syntax zur Ausführung in einem
Fenster starten.
Wenn Sie mehrere Skripts gleichzeitig ausführen wollen, können Sie diese in
einer Stapelverarbeitungsdatei ablegen.

Hinweis
Damit die Skripts auf dem Computer ausgeführt werden können, muss
der WSH lokal installiert sein, um die Befehle bearbeiten zu können.

E.1 Sicherung der Metabasis


Bei diesem Utility handelt es sich mit Sicherheit um eines der wichtigsten Skripts,
die Microsoft jemals veröffentlicht hat. Da die Metabasis praktisch alle wesentli-
chen Daten Ihrer IIS-Konfiguration enthält, muss in jedem Fall gewährleistet sein,
dass sie regelmäßig gesichert wird. Dabei hilft Ihnen dieses Skript. In Listing E.1
ist das Skript abgebildet, das Sie im Verzeichnis \InetPub\iissamples\sdk\admin
finden; es heißt metaback.vbs. Es gibt auch eine Version in JScript namens meta-
back.js.
Eine Anmerkung für diejenigen, die mit VBScript oder Visual Basic nicht ver-
traut sind. Der Unterstrich (»_«) in den Zeilen 53, 92, 96, 102, 105 und 114 zeigt
an, dass die Codezeile in der nächsten Zeile fortgesetzt wird, d.h. es handelt sich
eigentlich nur um eine Zeile. Der Code wurde hier aus Platzgründen abgeschnit-
ten.
Beachten Sie ferner, dass die Zeilennummern nicht Bestandteil des Codes sind,
sondern nur als Orientierungshilfe bei der Beschreibung des Skripts dienen.
Anhang E • Beispiele für die programmgesteuerte Administration 539

1 '''''''''''''''''''''''''''''''''''''''''''''
2'
3 ' Metabasis Backup Utility
4'
5 '''''''''''''''''''''''''''''''''''''''''''''
6
7 ' Description:
8 ' ------------
9 ' This sample admin script allows you to create a backup of your
10 ' Metabasis.
11 '
12 ' To Run:
13 ' -------
14 ' This is the format for this script:
15 '
16 ' cscript metaback.vbs
17 '
18 ' NOTE: If you want to execute this script directly from Windows, 18
19 " ' use 'wscript' instead of 'cscript'.
20 '
21 '''''''''''''''''''''''''''''''''''''''''''''
22
23 ' Initialize error checking
24 On Error Resume Next
25
26 ' Initialize variables
27 Dim ArgCount, BuName, BuVersion, BuFlags, CompObj, VersionMsg
28
29 ' Default values
30 ArgCount = 0
31 BuName= "BeispielSicherung"
32 BuVersion = &HFFFFFFFF ' Use next available version number
33 BuFlags = 0 ' No special flags
34
35
36 ' ** Parse Command Line
37
38 ' Loop through arguments
39 While ArgCount < Wscript.Arguments.Count
40
41 ' Determine switches used
42 Select Case Wscript.Arguments(ArgCount)
43
44 Case "-v": ' Designate backup version number
45 ' Move to next arg, which should be parameter
46 ArgCount = ArgCount + 1
47 If ArgCount => Wscript.Arguments.Count Then
48 Call UsageMsg
49 Else
540 Sicherung der Metabasis

50 BuVersion = Wscript.Arguments(Argcount)
51 End If
52
53 Case "-F": ' Force overwrite, even if name and version_
54 exists
55 BuFlags = 1
56
57 Case "-h", "-?", "/?":
58 Call UsageMsg
59 Case Else:
60 If BuName <> "Beispielsicherung" Then ' Only one name allowed
61 Call UsageMsg
62 Else
63 BuName = Wscript.Arguments(ArgCount)
64 End If
65
66 End Select
67
68 ' Move pointer to next argument
69 ArgCount = ArgCount + 1
70
71 Wend
72
73
74
75 ' **Perform Backup:
76 ' First, create instance of computer object
77 Set CompObj = GetObject("IIS://Localhost")
78
79 ' Call Backup method, with appropriate parameters
80 CompObj.Backup BuName, BuVersion, BuFlags
81
82 ' Make pretty version string
83 If BuVersion = &HFFFFFFFF Then
84 VersionMsg = "Nächste Version"
85 Else
86 VersionMsg = "Version " & BuVersion
87 End If
88
89 ' Check for error backing up Metabasis
90 If Err <> 0 Then 'Errors!
91 If Err.Number = &H80070050 Then ' Duplicate backup
92 Wscript.Echo "'" & BuName & "' (Version " & BuVersion &_
93 ") ist bereits vorhanden. Der Schalter -F erzwingt das
94 Überschreiben der Datei."
95 Else ' Something else went wrong
96 Wscript.Echo "Fehler beim Sichern der Metabasis nach '" & BuName &
97 "' (" & VersionMsg & ")."
Anhang E • Beispiele für die programmgesteuerte Administration 541

98 Wscript.Echo "Fehlernummer: " & Hex(Err.Number)


99 End If
100 Else ' No errors!
101 If BuFlags = 1 Then ' Forced creation
102 Wscript.Echo "Erzwungen erstellt: Sicherung ' " & BuName & "'
103 ("_ 103 & VersionMsg & ")."
104 Else
105 Wscript.Echo "Erstellt: Sicherung '" & BuName & "'
106 (" & VersionMsg & ")."
107 End If
108 End If
109
110
111
112 ' Displays usage message, then QUITS
113 Sub UsageMsg
114 Wscript.Echo "Verwendung: cscript metaback.vbs [<backupname>]
115 [-v_ <versionnum>][-F (zum Erzwingen)]"
116 Wscript.Quit
117 End Sub

Listing E.1: metaback.vbs

Das Listing E.1 führt eine Sicherung der Metabasis durch. Wenn Sie den Skript-
befehl zur Ausführung aufrufen, durchsucht eine Parserroutine den eingegebenen
Befehl zunächst nach gegebenenfalls vorhandenen Schaltern, die bestimmte Opti-
onen aufrufen können. Dieser Codeabschnitt beginnt in Zeile 39 und endet in
Zeile 71. Werden Optionsschalter gefunden, dann werden diese später angewandt.
In Zeile 77 beginnt der Sicherungsprozess. Dabei wird zunächst ein Objekt ange-
fordert, damit der Variablen CompObj ein von der Methode GetObject zurückge-
gebener Wert zugewiesen wird. Dieses Objekt wird für den Zugriff des lokalen
Rechners (localhost) auf die Metabasis benutzt. Ersetzen Sie bei Bedarf localhost
durch den Namen oder die IP-Adresse des Rechners, mit dem Sie arbeiten.
Zeile 80 wendet die Optionsschalter aus dem Skriptaufruf an, die von der Parser-
routine zurückgegeben wurden.
Die Zeilen 90 bis 108 enthalten eine Fehlerprüfroutine. Dies ist nicht dasselbe wie
eine Fehlerbehandlungsroutine bei Codefehlern; diese Routine prüft vielmehr den
Sicherungsstatus, um festzustellen, ob während der Sicherung Fehler aufgetreten
sind. Alle aufgetretenen Fehler werden mit Hilfe des Befehls Echo im Befehls-
fenster angezeigt.
In den Zeilen 113 bis 117 befindet sich noch eine kleine Unterroutine, die die
Syntaxbefehle anzeigt, falls ein Benutzer den Befehl nicht korrekt eingibt und das
Skript dann beendet.
In der Regel werden Sie keine Änderungen an diesem Skript vornehmen müssen,
damit es lokal auf dem Computer läuft, auf dem es gespeichert ist.
542 Wiederherstellen der Metabasis

E.2 Wiederherstellen der Metabasis


Die Sicherung der Metabasis macht natürlich nur Sinn, wenn Sie sie auch wieder-
herstellen können. Das Skript metabackrest.vbs ist für diesen Zweck gedacht.
Ich habe auch dieses Skript in Listing E.2 abgedruckt, um es besser erläutern zu
können. Sie finden es im gleichen Verzeichnis wie das Sicherungsskript.
1 '''''''''''''''''''''''''''''''''''''''''''''
2 '
3 ' Metabasis Backup Restore Utility
4 '
5 '''''''''''''''''''''''''''''''''''''''''''''
6
7 ' Description:
8 ' ------------
9 ' This sample admin script allows you to restore backups of your

10 ' Metabasis
11 '
12 ' To Run:
13 ' -------
14 ' This is the format for this script:
15 '
16 ' cscript metabackrest.vbs
17 '
18 ' NOTE: If you want to execute this script directly from Windows,
19 use
20 ' 'wscript' instead of 'cscript'.
21 '
22 '''''''''''''''''''''''''''''''''''''''''''''
23
24 ' Initialize error checking
25 On Error Resume Next
26
27 ' Initialize variables
28 Dim ArgCount, BuName, BuVersion, BuFlags, CompObj, VersionMsg
29
30 ' Default values
31 ArgCount = 0
32 BuName= "Beispielsicherung"
33 BuVersion = &HFFFFFFFE ' Use highest version number
34 BuFlags = 0 ' RESERVED, must stay 0
35
36
37 ' ** Parse Command Line
38
39 ' Loop through arguments
Anhang E • Beispiele für die programmgesteuerte Administration 543

40 While ArgCount < Wscript.Arguments.Count


41
42 ' Determine switches used
43 Select Case Wscript.Arguments(ArgCount)
44
45 Case "-v": ' Designate backup version number
46 ' Move to next arg, which should be parameter
47 ArgCount = ArgCount + 1
48 If ArgCount => Wscript.Arguments.Count Then
49 Call UsageMsg
50 Else
51 BuVersion = Wscript.Arguments(Argcount)
52 End If
53
54 Case "-?", "-h", "/?":
55 Call UsageMsg
56
57 Case Else:
58 If BuName <> "Beispielsicherung" Then ' Only one name allowed
59 Call UsageMsg
60 Else
61 BuName = Wscript.Arguments(ArgCount)
62 End If
63
64 End Select
65
66 ' Move pointer to next argument
67 ArgCount = ArgCount + 1
68
69 Wend
70
71
72 ' **Perform backup restore:
73 ' First, create instance of computer object
74 Set CompObj = GetObject("IIS://Localhost")
75
76 ' Call Restore method
77 ' NOTE: ** All IIS services will be stopped by this method, then
78 restarted!
79 Wscript.Echo "Alle Dienste werden gestoppt ..."
80 CompObj.Restore BuName, BuVersion, BuFlags ' NOTE: for
81 restoration, BuFlags MUST be 0
82
83 ' Make pretty version string
84 If BuVersion = &HFFFFFFFE Then
85 VersionMsg = "Höchste Version "
86 Else
544 Wiederherstellen der Metabasis

87 VersionMsg = "Version " & BuVersion


88 End If
89
90 ' Check for error backing up Metabasis
91 If Err <> 0 Then 'Errors!
92 If Err.Number = 5 Then ' Location name not available
93 Wscript.Echo "Fehler beim Wiederherstellen der Metabasis: '" & Bu-
Name & "'
94 (" & VersionMsg & ")nicht vorhanden."
95 Else
96 Wscript.Echo "Fehler beim Wiederherstellen der Metabasis aus '" &
BuName &
97 "' (" & VersionMsg & ")."
98 Wscript.Echo "Fehlernummer: " & Hex(Err.Number)
99 End If
100 Wscript.Echo "Dienste werden gestartet."
102 Else ' No errors!
103 Wscript.Echo "Wiederhergestellt: Sicherung '" & BuName & "' (" &
104 VersionMsg & ")."
105 Wscript.Echo "Dienste wurden gestartet."
106 End If
107 ' Display usage messsage, then QUIT
108 Sub UsageMsg
109 Wscript.Echo "Verwendung: cscript metabackrest.vbs <backupname> [-v
110 <versionnum>]"
111 Wscript.Quit
112 End Sub

Listing E.2: metabackrest.vbs

An dieser Stelle werde ich nicht das ganze Skript abhandeln, sondern nur die
Unterschiede zu Listing E.1 benennen.
Wie ich bereits im Abschnitt über das Objekt IISComputer in Anhang B
bemerkte, müssen die IIS-Dienste beendet werden, bevor ein Wiederherstellungs-
vorgang ausgeführt werden kann. Genau dies tut dieses Skript in den Zeilen 76
bis 80. Es ist kein spezieller Stoppbefehl vorhanden, sondern der Befehl Restore
beendet den Dienst. Wenn Restore abgeschlossen ist, werden die IIS-Dienste neu
gestartet.
Sowohl das Sicherungs- als auch das Wiederherstellungsskript sind in VBScript-
und JScript-Versionen im angegebenen Verzeichnis vorhanden. Sie können sich
natürlich auch eigene Skripts in einer Sprache Ihrer Wahl erstellen, sofern Sie
zuvor eine gültige und unterstützte Skript-Engine installieren.
Anhang E • Beispiele für die programmgesteuerte Administration 545

E.3 Fazit
In diesem Anhang habe ich Ihnen zwei sehr wichtige Skripts zur Sicherung und
Wiederherstellung der Metabasis gezeigt und erläutert, die mit IIS ausgeliefert
werden. Diese Skripts können Sie als Richtschnur bei der Erstellung eigener oder
an Ihre Bedürfnisse angepasster Skripts verwenden.
Beachten Sie unbedingt auch die anderen Beispielskripts, die bei der Installation
von IIS im genannten Verzeichnis abgelegt werden; sie bieten weitere nützliche
Funktionen und Administrationsbeispiele, die sich über die Befehlszeile aufrufen
lassen.
Stichwortverzeichnis

! – SMTP-Dienst 85, 89
#config (Anweisung) 49 – vereinfachen 101
#echo (Anweisung) 50 Administrationsskripts 298
#exec (Anweisung) 52 Administrator 341
#flastmod (Anweisung) 52 – Referenz 415
#fsize (Anweisung) 53 ADO (ActiveX Data Object) 373, 377,
#include (Anweisung) 33, 46, 53 398
– verwenden 49 Adobe Acrobat Reader 368
#include-Dateien 348, 369 ADSI (Active Directory Services Inter-
– benennen 370 face) 25, 298, 317, 321
– einsetzen 370 – Änderungen unter IIS 5.0 522
<OBJECT>-Deklarationen 534 – Containerobjekte 322, 518, 519
@-Anweisungen 526 – Eigenschaften 522
_NewEnum (Eigenschaft) 323 – Methoden 512
– Objekte 321
A – Objekteigenschaften 512
Abandon (Methode) 532 – Referenz 511
Ablaufrichtlinien 120, 127 ADSI-Containerobjekte 322
Access Control List siehe ACL 118, 182 – Eigenschaften 518
ACL (Access Control List) 118, 182, 196, – Methoden 519
410 ADSI-Objekte 321
Active Directory 114, 154, 220 – Eigenschaften 512, 522
Active Server Pages siehe ASP 25 ADSI-Pfad 319, 324
ActiveHTTPSessions (Eigenschaft) 411 ADsPath (Eigenschaft) 512
ActiveX Data Object siehe ADO 373 adsutil (Befehl) 298, 299
Ad Rotator (Komponente) 384 Affinität 289
– Eigenschaften 386 Aliasdomäne 110
– Übersicht 384 ALL_HTTP (Variable) 50
Administration Anforderung umleiten 36, 38
– abwärtskompatible 83 Anmeldungsfehlschläge (Leistungs-
– Aufgaben 323 indikator) 129
– Beispiele 537 Anmeldungsversuche (Leistungs-
– HTML-Tool 323 indikator) 129
– NNTP-Dienst 85, 127 Anschluss 51
– programmgesteuerte 315, 537 Anschlussregeln 287, 290
– Skripts 298 Anwendung (Objektbereich) 367
548 Stichwortverzeichnis

Anwendungen – Datenquellen 372


– IIS-Anwendungen 161 – E-Mails automatisch erstellen 238
– Kompatibilität 285 – Ereignisse 432
– prozessorintensive 288 – erstellen 348
– Schutz 25 – Fehler verarbeiten 240
– separate Ausführung 25 – Fehlerbereinigung 379
Anwendungsereignisse 529, 530 – Fehlermeldungen 381, 535
Anwendungsschutz 172 – Fehlerverarbeitungsdatei 240
– einstellen 163 – Inhalte puffern 347
Anwendungsserver 263 – Inhalte übermitteln 367
Anwendungszuordnungen 167 – installierbare Komponenten 384
– ändern 168 – Komponenten 364, 384
AppCreate (Methode) 489 – Konstanten 355
AppCreate2 (Methode) 489 – neue Merkmale in IIS 5.0 25
AppDelete (Methode) 323, 490 – Objekte 364, 380
AppDeleteRecursive (Methode) 490 – Protokolldateien verarbeiten 399
AppDisable (Methode) 491 – Protokollierung 424, 432
AppDisableRecursive (Methode) 491 – Prozeduren 359
AppEnable (Methode) 492 – Quelltextanzeige beim Client 35
AppEnableRecursive (Methode) 492 – Sitzungen 370
AppGetStatus (Methode) 493 – Sitzungsereignisse 532
Application (Bereich) 529 – Skriptaufruf 52
Application (Objekt) 380 – Skriptdebugging 379
Application_OnEnd (Ereignis) 531 – Skriptsprachen 348, 353, 527
Application_OnStart (Ereignis) 531 – Skriptverschlüsselung 347
AppUnload (Methode) 493 – Standardsprache einstellen 348
AppUnloadRecursive (Methode) 494 – Transaktionen 378
Arbeitsspeicher siehe Speicher 263 – TypeLibrary-Deklaration 535
Artikel (Newsgroups) siehe Beiträge 124 – Übersicht 346
ASP (Active Server Pages) 25, 67 – Unterschiede zwischen den Versionen
– #include-Dateien 348, 369 347
– <OBJECT>-Deklarationen 534 – Variablen 355
– @-Anweisungen 526 – Websites verwalten mit 32, 46
– -Anwendungen siehe ASP-Anwendun- – XML-Integration 347
gen 174 ASP-Anwendungen
– Anwendungsereignisse 530 – Fehlerbereinigung 177
– Auflistungen 361 – Fehlermeldungen 237
– Benutzereingaben verarbeiten 362 – konfigurieren 176
– clientseitiges Skripting 357 – Puffer 169
– COM-Komponenten 365 – Sitzungen 168
– Dateien übermitteln 369 – Standardskriptsprache 169
– Dateierweiterungen 35 – zwischenspeichern 174
– Dateisystem 399
Stichwortverzeichnis 549

ASP-Anwendungen siehe auch IIS-Anwen- Basisverzeichnis 36, 91


dungen 168 – erstellen 36, 119
AspAppRestart (Methode) 494 – Optionen 37
ASPError (Objekt) 381 Befehlszeile
AspErrorsToNTLog (Eigenschaft) 424 – Sonderzeichen verwenden 420
AspScriptLanguage (Eigenschaft) 527 Beiträge
ASP-Skriptdateien siehe ASP- – Beschränkungen 124
Anwendungen 174 Benutzer
Assistenten 182 – Leistungsermittlung 442
– verwenden 209 Berechtigungen 137, 319
AtEndOfLog (Methode) 400 – konfigurieren 186, 194
ATM (Automatic Teller Machine) 528 – Typen 187, 200
Auflistungen 361 – Übersicht 197
– Anzahl der Elemente bestimmen 361 – Unterschiede zwischen 200
Ausführberechtigungen 165 – Webserverberechtigungen 200
Ausgangspunkt 162, 163 Bereich 529
Auskommentierung 354 Beschreibung 65, 72
Auslagerung 263 Blue Screen of Death 62
AUTH_PASSWORD (Variable) 50 Border (Eigenschaft) 386
AUTH_TYPE (Variable) 50 browscap.ini (Datei) 388
AUTH_USER (Variable) 50 Browser
Authentifizierung 114, 123, 185 – Cookies 371
– Digestauthentifizierung 135, 185 – umleiten 368
– Ereignisse 424 Browser Capabilities (Komponente) 36,
– implementieren 186, 194 387
– konfigurieren 186, 194 BrowserType (Objekt) 387
– NNTP-Dienst 118 BusyConnections (Eigenschaft) 411
– prüfen 409 BytesReceived (Eigenschaft) 402
– Standardauthentifizierung 102 BytesSent (Eigenschaft) 402
– Standarddomäne 190
– Typen 50, 185 C
– Windows-Authentifizierung 135 C (Programmiersprache) 298, 353
Automationsaktivierung 317 C++ (Programmiersprache) 298, 316, 317
Autostarttyp 61 Cache 263
AvailableThreads (Eigenschaft) 411 – deaktivieren 417
– Leistungsermittlung 442
B – Leistungsindikatoren 264
Backup (Methode) 463 – TTL 418
BadMail (Verzeichnis) 88 cdonts (Objekt) 238
Bandbreite Certificate Trust List siehe CTL 22
– beschränken 274 CGI (Common Gateway Interface) 68, 173
– Leistungsermittlung 440 – Anwendungen konfigurieren 177
Bannerrotation 384 – Skriptaufruf 52
550 Stichwortverzeichnis

– Sonderzeichen 178 CONTENT_TYPE (Variable) 50


– Timeout 269 contftp (Befehl) 310
– Verarbeitung 422 Continue (Methode) 472, 501
chaccess (Befehl) 311 contserv (Befehl) 310
ChooseContent (Methode) 395 contweb (Befehl) 309
Clickable (Eigenschaft) 386 Cookie (Eigenschaft) 402
ClientIP (Eigenschaft) 402 Cookies 371
Clients, Downlevel-Clients 420 – benennen 420
Clientzertifikate 216 CopyHere (Methode) 519
– aktivieren 218, 219 Count (Prozedur) 323
– erwerben 217 Counter 411, 531
– exportieren 221 Counters (Komponente) 395
– installieren 217 Counters (Objekt) 395
– Komponenten 208 CPU (Central Processing Unit) siehe Prozes-
– Kontozuordnung 218, 221 sor 249
– Optionen 219 Create (Methode) 519
CloseLogFiles (Methode) 400 Create (Prozedur) 322
Clustering 64, 99, 265, 281 CreateMapping (Methode) 456
– Anschlussregeln 287 CRS (Content Replication System) 118
– Definition 283 CScript (Programm)
– Gründe für 284 – registrieren 298
– interne Kommunikationsprobleme 292 CTL (Certificate Trust List) 22
– Kompatibilität 285 CurrentThreads (Eigenschaft) 411
– konfigurieren 287 CustomFields (Eigenschaft) 403
– Konzept 282
– Parameter 287 D
– Prioritäten 287 DATE_GMT (Variable) 51
Clustering siehe auch Netzwerklastenaus- DATE_LOCAL (Variable) 51
gleich 281 Dateien
Codepage 526 – Anzeige der Größe festlegen 50
CODEPAGE (@-Anweisung) 526 – Großkleinschreibung 423
COM-Komponenten 364 – Handle 263
– benutzen 365 – NTFS-Berechtigungen 195, 196
– instanzieren 365 – Zugriff einschränken 197
– Typbibliotheken 529 – Zugriff gewähren 197
Computer, Identität im Netzwerk verifizie- – Zugriffssteuerung 192
ren 156 Dateigröße 53
Content Linking (Komponente) 391 – Anzeige festlegen 50
Content Replication (Tool) 294 Dateiserver 263
Content Replication System siehe CRS 118 Dateisystem
Content Rotator (Komponente) 394 – NTFS 182, 194
– Inhaltsplandatei 394 – Zugriff mit ASP 399
CONTENT_LENGTH (Variable) 50 Dateizugriff (Komponente) 399
Stichwortverzeichnis 551

Daten Dienstdomänen 110


– Auslagerung 263 Dienste
– Datenquellen 372 – Dienst-Locator 419
– komprimieren 277 Dienste (Applet) 89
– Konsistenz 292 Dienstkonto (Authentifzierungsmethode)
– replizieren 292 115
– zugreifen auf 372, 375 Dienst-Locator 419
– Zugriffssteuerung 192 Digestauthentifizierung 21, 185
Datenbanken 375 DisableSocketPooling (Eigenschaft) 522
– Datenbankzugriff (ASP-Komponente) Diskussionsgruppen siehe Newsgroups 86
398 dispnode (Befehl) 301
– Zugriff 372 disptree (Befehl) 301
– Zugriffssteuerung 203 DNS (Domain Name System) 153, 154
Datenbankzugriff (Komponente) 398 – Windows 2000-DNS 154
Datendurchsatz siehe Durchsatz 440 – Zonen 154
Datenquellen 372 DOCUMENT_NAME (Variable) 51
– Datensatzgruppe 377 DOCUMENT_URI (Variable) 51
– konfigurieren 373 Dokument
– wählen 373 – Datum der letzten Änderung 51, 52
– zugreifen auf 375 Dokumentfußzeilen siehe Fußzeilen 44
Datenquellenname siehe DSN 99, 246 Domänen
Datensatzgruppe 377 – Aliasdomänen 110
Datenverkehr 265 – Dienstdomänen 110
– überwachen 261 – Domänennamen 148
DateTime (Eigenschaft) 403 – Internetdomänen 155
Datumsformat, festlegen 49 – lokale 110
DB/2 372 – Maskeradendomäne 108
Debugging siehe Fehlerbereinigung 170 – registrieren 155
Delegierung 59, 82 – Remotedomänen 110
Delete (Methode) 520 – Routingdomäne 113
Delete (Prozedur) 323 – SMTP-Domänen 110
DeleteBackup (Methode) 464 – SMTP-Domänen erstellen 110
DeleteMapping (Methode) 457 – Standardanmeldedomäne 190
DENIC 156 – Standarddomäne 111
DeNIC 58 – vergebene Internetdomänen 156
DFS (Distributed File System) 294 – Zugriff gestatten 481
– Freigabe konfigurieren 295 – Zugriff verweigern 480
DFS-Freigabe Domänencontroller 81, 101
– Freigabepunkt 295 Domänennamen 148
– konfigurieren 295 – Registrierung 58
DHCP (Dynamic Host Configuration – vergebene 156
Protocol) 148 – verifizieren 109
– einrichten 151 – vollständig qualifizierte 108, 152
– Funktionsweise 152 – Wartezeit nach Registrierung 157
552 Stichwortverzeichnis

Domain Name System siehe DNS 154 Ereignisse


DomainDeny (Eigenschaft) 480 – ASP 432
DomainGrant (Eigenschaft) 481 – FTP-Dienst 431
Downlevel-Clients 420, 421 – Metabasis 426
Drive (Objekt) 399 – ODBC-Protokollierung 427
Drives (Objekt) 399 – SSI 428
Drop (Verzeichnis) 88 – WWW-Dienst 429
DSN (Data Source Name) 99, 204, 246 ESMTP (Extended SMTP) 113
Durchsatz, Leistungsermittlung 440 Extended SMTP siehe ESMTP 113
Extension (Eigenschaft) 485
E
Eigenschaften F
– geänderte 524 FAT (File Allocation Table)
– unter IIS 5.0 entfernte 522 – konvertierern zu NTFS 194
– unter IIS 5.0 hinzugefügte 523 – vs. NTFS 194
– vererben 319 Fehlerbereinigung 175
Eingabeaufforderung siehe auch Befehls- Fehlercodes 234
zeile 420 Fehlermeldungen 381
Einzelpunktversagen 285 – aktivieren 239
elektronische Post siehe E-Mails 86 – allgemeine 234, 239
E-Mails 86 – ASP-Anwendung 237
– Anzahl der Empfänger beschränken 106 – ASP-Fehler 240
– Anzahl pro Verbindung beschränken 105 – bearbeiten 239
– ausgehende 105 – benutzerdefinierte 24, 49, 233, 239
– automatisch gesandte 238 – Codes 234
– Größe beschränken 105 – detaillierte 239
– Header 108 – einsetzen 235, 240
– Optionen 105 – erstellen 235, 240
– Remotezustellung 88 – konfigurieren 235, 240
– Spamming 104 – nach HTTP 1.1 234
– Stapelverarbeitung beim Versand 88 – Standardwebsite 239
– unzustellbare 107 – Verzeichnis 237
– Verarbeitung 88 Fehlertoleranz 262, 282, 288
– verwalten 105 Festplatten
– Weitergabe 103, 113 – Auslagerung 263
ENABLESESSIONSTATE (@-Anwei- – Latenz 261
sung) 527, 532 – Leistung optimieren 261
Entladen, von IIS-Anwendungen 175 – RAID-5-Datenträger 262
EnumBackups (Methode) 465 – Stripeset 261
Ereignisanzeige 116, 129, 131, 228, 259 – Zugriffszeit 261
– ASP-Ereignisse 424 File (Objekt) 399
– Filter verwenden 130 FileExists (Methode) 412
– IIS-Ereignisse 424 File (Objekt) 399
– Protokollauswahl 116 FileSystemObject (Objekt) 399
Stichwortverzeichnis 553

Filter 130 – Haupteigenschaften 78


– ISAPI-Anwendungen 178 – hinzufügen 64, 68
– Netzwerklastenausgleich 288 – Meldungen 69
findweb (Befehl) 302 – Struktur 69
Firewall 290, 329 – und Hacker 72
– umgehen 329 – Verzeichnisse 69
Folder (Objekt) 399 Funktionen siehe auch Prozeduren 359
Format Fußzeilen 44
– Datum und Uhrzeit 49 – Leistungseinbußen 46
Formulare, verarbeiten 362 – und ASP-Seiten 46
FQDN (Fully Qualified Domain Name)
G
siehe Domänennamen, vollständig quali-
GATEWAY_INTERFACE (Variable) 51
fizierte 108
Gebietsschema 527, 528, 535
Frames 387
Gesamtzahl von Bytes/Sek (Leistungs-
FreeLowMem (Eigenschaft) 411
indikator) 129
FreeMem (Eigenschaft) 411
Gesendete Nachrichten/Sek (Leistungs-
FrontPage Server Extensions 30
indikator) 105
FTP Service (Schlüssel) 319
Get (Methode) 396, 512
FTP-Dienst
GetAdvertisement (Methode) 387
– anhalten 473
GetAllContent (Methode) 395
– beenden 473
GetDataPaths (Methode) 513
– Eigenschaften 471
GetEx (Methode) 514
– Ereignisse 431
GetListCount (Methode) 391
– fortsetzen 472
GetListIndex (Methode) 392
– IIsFtpInfo (Objekt) 470
GetMapping (Methode) 457
– IIsFtpServer (Objekt) 471
GetNextDescription (Methode) 392
– IIsFtpService (Objekt) 474
GetNextURL (Methode) 392
– IIsFtpVirtual (Objekt) 476
GetNthDescription (Methode) 393
– Protokollierung 431
GetNthURL (Methode) 393
– Registrierungseinträge 422
GetObject (Methode) 324, 521
– starten 473
GetPreviousDescription (Methode) 393
– Status 473
GetPreviousURL (Methode) 393
– Verzeichnisse 476
GetPropertyAttribObj (Methode) 515
ftproot (Verzeichnis) 69
global.asa (Datei) 526, 529
FTP-Server
– <OBJECT>-Deklarationen 534
– anhalten 309
– Anwendungsereignisse 529, 530
– beenden 306
– Elemente 529
– neu starten 310
– Prozeduren 530
– Sicherheit 186
– Sitzungsereignisse 530, 532
– starten 307
– TypeLibrary-Deklaration 535
FTP-Sites
GrantByDefault (Eigenschaft) 481
– Administration 57
Groß-/Kleinschreibung 423
– Anzeigeformate 69
Gruppenrichtlinien 224
– Begrüßungsmeldungen 69
GUID (Globally Unique Identifier) 512
554 Stichwortverzeichnis

H – Konstanten 509
Hacker 72, 185 – Leistungsmerkmale 522
Handles 263, 316 – Metabasis 317
HasAccess (Methode) 409 – Namensauflösung 148
HighHTTPSessions (Eigenschaft) 411 – neu starten 74
Hits (Methode) 408 – Neustart des Dienstes 23
Hop Count 108 – Objekte 456
Hostheadernamen 58, 65, 72, 420, 421 – Programmierbarkeit 24
– Unterstützung 77 – Protokollierung 424
Hostname 148 – Registrierungseinträge 416, 418, 419,
– des Clients 51 422
– des Servers 51 – Registrierungseinträge für den FTP-
hosts (Datei) 67, 153, 157 Dienst 422
HTML, Inhaltsrotation 394 – Registrierungseinträge für den WWW-
HTTP 234 Dienst 419
– Administration über 335 – Remoteadministration 321, 323, 327
HTTP_ACCEPT (Variable) 51 – Sicherheit 181
HTTP-Header 41, 50 – sichern 79
HTTP-Keep-Alives 276 – Sicherung 23
– aktivieren 277 – Skripts 298
HTTP-Komprimierung 27, 277 – wiederherstellen 79
– konfigurieren 278 – Wiederherstellung 23
Hyperlink 404 IIS Admin Base Object 316
– Benutzertypen 317
I – Vererbung 317
IADsContainer (Schnittstelle) 322 IIS Admin Objects 316, 320
IDC (Internet Database Connector) 172 – Automationsaktivierung 317
Identitäten 73 – Konstanten 509
– verifizieren 156 – Objekte 456
IETF (Internet Engineering Task Force) – Übersicht 321
230 IIS Computer (Schlüssel) 318
IIS (Internet Information Server) IIS 5.0
– administrieren 315 – Funktionen zur Websiteverwaltung 30
– Änderungen in Version 5.0 522 – Websiteverwaltung 30
– Assistenten 209 IIS (Internet Information Server)
– benutzerdefinierte Fehlermeldungen 24 – Version 3.0 83
– dienstspezifische Registrierungseinträge IIS Admin Objects
418 – Referenz 456 ff.
– Einstellungen sichern und wiederher- IIS-Anwendungen 161
stellen 79 – Anwendungsschutz 162, 172
– Ereignisse 424 – ASP-Anwendungen 237
– globale Registrierungseinträge 416 – Ausführberechtigungen 165
– IP-Konfiguration des Servers 152 – ausführen 162
Stichwortverzeichnis 555

– Ausgangspunkt 162, 163 IIsWebFile (Objekt) 322, 495


– Bereich 162 IIsWebInfo (Objekt) 496
– Debugging 170 IIsWebServer (Objekt) 497
– Definition 162 IIsWebService (Objekt) 322, 502
– erstellen 165 IIsWebVirtualDir (Objekt) 322, 506
– Fehlerbereinigung 170, 175, 177 IMSAdminBase (Schnittstelle) 316
– ISAPI-Anwendungen 164, 178, 237 Increment (Methode) 397
– ISAPI-Erweiterungen 174 Indexdienst 118, 139
– isolieren 172 – automatisch starten 139
– isolierte entladen 175 Indikatoren siehe Leistungsindikatoren 259
– konfigurieren 161, 165, 176, 177 Inhalte
– Optionen 168 – Ablauf 41
– Prozessausführung 162 – Gültigkeit 41
– Puffer 169 – klassifizieren 43
– Schutz 162 – von Websites 41
– Sicherheit 165 Inhaltsklassifikation 43
– Sitzungen 168 Inhaltsrotation 394
– Skriptsprache 164 Internet
– Timeout 169 – Remoteadministration 328
– Warteschlange 259 – Unterstützung von Standards 26
– zuordnen 167 Internet Database Connector siehe IDC 172
– zwischenspeichern 172 Internet Information Server siehe IIS 20
IIsCertMapper (Objekt) 456 Internet Protocol Security siehe IPSec 230
IIsCompressionScheme (Objekt) 461 Internetanbieter 272
IIsCompressionSchemes (Objekt) 460, Internetdienste-Manager 60
IIsComputer (Objekt) 322, 462, 544 Internetdomänen 155
IIsCustomLogModule (Objekt) 467 Internet-Informationsdienste (Snap-In) 31
IIsFilter (Objekt) 468 Internetprovider 108, 331
IIsFilters (Objekt) 469 Internetstandards 26
IIsFtpInfo (Objekt) 470 InterNIC 58, 155
IIsFtpServer (Objekt) 72, 471 IP-Adressen 103, 148
IIsFtpService (Objekt) 322, 474 – Adressierungsschemata 152
IIsFtpVirtual (Objekt) 476 – Adressklassen 149, 332
IIsIPSecurity (Objekt) 477 – auflösen im Internet 153
IIsLogModule (Objekt) 482 – Auflösung mit UND-Verknüpfung 151
IIsLogModules (Objekt) 483 – Bereich einschränken 332
IIsMimeMap (Objekt) 484 – Bereiche 148
IIsMimeType (Objekt) 484 – des Clients 51
IIS-Protokollierung (Komponente) 399 – DHCP 148, 152
iisreset (Befehl) 76 – dynamische Zuweisung 148
IIS-Server – Identität verifizieren 156
– Remoteadministration 328 – im Internet 149
IISSync (Tool) 293 – Klassen 149
IISWebDirectory (Objekt) 322 – Konfiguration des IIS-Servers 152
IIsWebDirectory (Objekt) 486 – leasen 152
556 Stichwortverzeichnis

– nicht verifizierbare 109 – Konfiguration 461


– primäre siehe VIP 287 – Schemata 460, 461
– reservierte Werte 148 Konstanten 355, 398, 509
– statische Zuweisung 148 Konten, Website-Operatoren 82
– Struktur 150 Kontozuordnung
– Subnetting 151 – 1:1-Zuordnung 219
– Subnetzmasken 150, 151 – konfigurieren 222
– virtuelle siehe VIP 284 – n:1-Zuordnung 220
– Zugriff einschränken 199 – Verzeichnisdienstzuordnung 220
– Zugriff gestatten 479 Ktransferred (Eigenschaft) 411
– Zugriff verweigern 478
– Zuweisung 148 L
ipconfig (Befehl) 157 Ländereinstellungen siehe Gebietsschema
IPDeny (Eigenschaft) 478 527
IPGrant (Eigenschaft) 479 LANGUAGE (@-Anweisung) 527
IPSec (Internet Protocol Security) 230 LAST_MODIFIED (Variable) 51
Ipv6 (Adressierungsschema) 152 Latenz 261
ISAPI-Anwendungen 164, 417, 421 Laufwerke konvertieren zu NTFS 194
– Filter 178 LCID (@-Anweisung) 528
– zwischenspeichern 174 LDAP (Lightweight Directory Access
ISAPI-Filter Protocol) 114
– entfernen 178 – Routing 114
– hinzufügen 178 LDAP-Serververbindungen 114
Isolierung 172 Leistung
IUSR_-Konto 192 – Festplatten optimieren 261
IWAM_computername (Konto) 81 – Netzwerk 270
– optimieren 258
J – Prozessbeschränkung 268
Jahreszahlen, Formatierung 72 – Prozessor 267
Java 353 – Speicher 263
JavaScript 32 – überwachen 258
JScript 32, 165, 317, 348 – Warteschlange 259
Leistungsindikatoren 116, 259, 264
K – Beschreibung 443
Keep-Alives siehe HTTP-Keep-Alives 276 – für das Netzwerk 271
Kerberos 22, 135, 185, 230 – Referenz 440
Klassifikation 43 – Verfügbarkeit 440
– Fragebogen 43 Lightweight Directory Access Protocol
Kommunikation, sichere 103, 123 siehe LDAP 114
Komponenten 364 Links siehe auch Verknüpfungen 38
– installierbare 384 Lock (Methode) 531
Komprimierung Locking 134
– HTTP 27 logisches UND 150
Stichwortverzeichnis 557

M Microsoft Visual Studio Enterprise


MapPath (Methode) 532 Edition 134
Maskeradendomäne 108 Microsoft Word 365
Maximale Verbindungen (Leistungsindi- MIME (Multipurpose Internet Mail
kator) 129 Extensions) 118, 368, 484
MCIS (Microsoft Commercial Internet MimeMap (Eigenschaft) 484
System) 114 MimeType (Eigenschaft) 485
metaback.vbs (Skript) 538 mkw3site (Befehl) 302
metabackrest.vbs (Skript) 542 mkwebdir (Befehl) 303
Metabasis 316, 317, 512 MMC (Microsoft Management Console)
– Ablageort 320 23, 31, 419
– bearbeiten 298, 423 – Snap-In 23
– Eigenschaften 318, 319, 462 Moderator 126
– Ereignisse 426 MoveHere (Methode) 521
– manipulieren 324 MSCS (Microsoft Cluster Server) 283
– metabase.bin (Datenbankdatei) 320 Multipurpose Internet Mail Extensions siehe
– Namespace 423 MIME 368
– Registrierungseinstellungen 320 MyInfo (Komponente) 407
– replizieren 293
– Schlüssel 319 N
– Sicherheit 320 Nachrichten siehe auch E-Mails 88
– sichern 463, 538 Namensauflösung 147
– Sicherung löschen 464 – hosts (Datei) 153
– Sicherungen auflisten 465 – mit DNS 154
– Speicherort 423 – und IIS 5.0 148
– Struktur 318 – verifizieren 156
– Werte speichern in 518 Namespace, Metabasis 423
– wiederherstellen 466, 542 National Computer Security Association
– Zuverlässigkeit 320 siehe NCSA 245
Method (Eigenschaft) 403 Navigation 391
Microsoft 110 Navigationsleisten mit ASP erstellen 33
Microsoft Access 372 NCSA (National Computer Security
Microsoft Cluster Server siehe MSCS 283 Association) 245
Microsoft Commercial Internet System NCSA allgemein (Protokollformat) 95,
siehe MCIS 114 245, 255
Microsoft Exchange Server 272 NDR (Non-Delivery Report) siehe Unzu-
Microsoft FrontPage 30, 31, 273, 337, 398 stellbarkeitsbericht 106
Microsoft IIS (Protokollformat) 95, 244 NetBIOS-Namen 152
Microsoft Internet Explorer 328, 410 Netscape Navigator 328
Microsoft Management Console Network Load Balancing Service siehe
siehe MMC 23 NLBS 282
Microsoft Office 32, 364 Netzmaske siehe Subnetzmaske 150
Microsoft Site Server 294 Netzwerk
Microsoft Skript-Debugger 170, 177, 379 – Auslastung 272
558 Stichwortverzeichnis

– Bandbreite beschränken 274 – Sitzungen 121


– Kapazität optimieren 270 – Skripts 127
– Netzwerkkarte 272 – überwachen 127
– optimieren 270 – virtuelle Server 128, 130
– überwachen 261 – virtuelle Verzeichnisse 121
Netzwerkanwendung, Clustering 282 – Wartungsskripts 127
Netzwerkkarte 272 NNTP-Server (Leistungsobjekt im System-
Netzwerklastenausgleich siehe auch monitor) 128
Clustering 282 Non-Delivery Report siehe Unzustellbar-
– Affinität 289 keitsbericht 106
– Anschlussregeln 287, 290 nslookup (Befehl) 159
– Filtermodi siehe Filter beim Netzwerk- NT File System siehe NTFS 118
lastenausgleich 287 NTFS (NT File System) 182
– installieren 286 – Berechtigungen 118, 186
– konfigurieren 287 – Berechtigungen konfigurieren 194
– Lastverteilung 288 – Daten sichern mit 194
– Problembehebung 291 – konvertieren zu 194
Netzwerklastenausgleichsdienst siehe – Sicherheit 194
NLBS 282 – Überwachung 225
Netzwerkmonitor 261 NTFS-Berechtigungen 194
Neustartschaltfläche 63 NTLM (Windows NT LAN Manager) 410
Newsfeeds 125
Newsgroups 86, 117 O
– konfigurieren 119 ObjectContext (Objekt) 381
– moderierte 126 Objektbereiche
– Newsfeeds 125 – Threading 366
– Newsserver 124 Objekte 364, 456
– replizieren 126 – Objektbereich 366
Newsserver 124 – Objektbereich Anwendung 367
NextLink (Objekt) 391 – Objektbereich Seite 366
NLBS (Network Load Balancing Service) – Objektbereich Sitzung 366
282 – Zwischenspeicherung 418
– initialisieren 286 objektorientierte Programmierung 364
NNTP-Befehle (Leistungsobjekt im System- ODBC (Protokollformat) 95, 246, 373, 427
monitor) 128 – Optionen 99
NNTP-Dienst 26, 117 Onlineshop 371, 378
– Ablaufrichtlinien 120, 127 OpenKey (Methode) 316
– Administration 85, 127 OpenLogFile (Methode) 400
– Authentifizierung 123 Operator 82, 101, 126
– Basisverzeichnis erstellen 119 – hinzufügen 329
– Fehlermeldungen 129 Option Explicit (Anweisung) 356
– konfigurieren 119 Oracle 372
– Operator 126 Owner (Methode) 412
– Problembehebung 131
Stichwortverzeichnis 559

P – mit ASP verarbeiten 399


Page Counter (Komponente) 407 – speichern 253
PageHit (Methode) 408 Protokollformate 244
PATH_INFO (Variable) 51 Protokollierung 95, 117, 122
PATH_TRANSLATED (Variable) 51 – aktivieren 96, 247
Pause (Methode) 473, 501 – Aktualisierung 254
pauseftp (Befehl) 64, 309 – ASP 432
Pausenschaltfläche 61 – Dateibenennung 246
pausesrv (Befehl) 64, 308 – Dateien konvertieren 255
pauseweb (Befehl) 64, 307 – Dateigröße 247
PERL (Practical Extraction and Reporting – deaktivieren 247
Language) 164 – Eigenschaften (Referenz) 450
Permission Checker (Komponente) 409 – Formate 95, 244
Personal Web Server siehe PWS 407 – FTP-Dienst 431
Pickup (Verzeichnis) 88 – Häufigkeit 253
PICS (Platform for Internet Content – Objekte 247
Selection Ratings) 27 – ODBC 427
PID (Prozesskennung) 260 – Protokolldatei 96
ping (Befehl) 131, 149, 157 – Protokolldateien speichern 253
PKI (Public Key Infrastructure) 103 – Referenz 450
Platform for Internet Content Selection – SSI 428
Ratings siehe PICS 27 – von Website-Aktivitäten 244
PluginExists (Methode) 412 Prozeduren 359
Poolthreads 417, 422 – aufrufen 360
PopularPages (Eigenschaft) 411 – Definition 359
Port siehe Anschluss 51 – global.asa (Datei) 530
Practical Extraction and Reporting – vs. Funktionen 359
Language siehe PERL 164 Prozessabrechnung siehe Prozessüber-
ProcessForm (Methode) 412 wachung 249
Produktionsserver Prozessausführung 162
– Replikation auf 295 Prozessbeschränkung 268
Programm – konfigurieren 269
– Umleitung zu 40 Prozesse
Programme siehe auch Anwendungen 40 – Abrechnung siehe Prozessüberwachung
Programmierung 249
– objektorientierte 364 – Anwendungsschutz 162
ProtocolStatus (Eigenschaft) 403 – Optionen 174
ProtocolVersion (Eigenschaft) 404 – verteilen 163
Protokoll Prozesskennung siehe PID 260
– HTTP- 51 Prozessnachverfolgung siehe Prozessüber-
Protokolldateien wachung 249
– Formate 244, 406 Prozessor
– konvertieren 255 – Auslastung überwachen 249
560 Stichwortverzeichnis

– optimieren 267 REMOTE_HOST (Variable) 51


– überwachen 249, 267 REMOTE_USER (Variable) 51
Prozessorzeit 259 Remoteadministration 24, 321, 323, 327
Prozessüberwachung 249 – aktivieren 328
Public Key Infrastructure siehe PKI 103 – Firewall umgehen 329
Put (Methode) 516 – im Intranet 333, 337
PutEx (Methode) 517 – konfigurieren 328
PWS (Personal Web Server) 407, 410 ff. – mit Webbrowser 328
– Operatoren 329, 337
Q – Sicherheit 331
Quelltext, fehlende Anzeige von ASP-Code – über das Internet 328
35 – Verwaltungswebsite 328
QUERY_STRING (Variable) 51 – Zugriffssteuerung 329
QUERY_STRING_UNESCAPED Remotedomänen, Konfiguration 112
(Variable) 51 Remoteserver 88, 338
Queue (Verzeichnis) 88 – Verzeichnissicherheit ändern 340
Remotezustellung 88
R Remove (Methode) 397
RAID-5-Datenträger 262 Replikation 281, 292
RAM (Random Access Memory) siehe – Definition 292
Speicher 263 – Gründe für 294
Random (Methode) 413 – Metabasis 293
ReadFilter (Methode) 401 – Programme 293
ReadLogRecord (Methode) 401 – Tipps 295
RecentVisitors (Eigenschaft) 411 Request (Objekt) 380
Redirect (Methode) 368, 533 REQUEST_METHOD (Variable) 51
Referenz für Administratoren 415 RequestsSinceStart (Eigenschaft) 411
Referer (Eigenschaft) 404 RequestsToday (Eigenschaft) 411
RefusedConnections (Eigenschaft) 411 Reset (Methode) 408
regedit (Programm) 416 Resource Kit 294
regedt32 (Programm) 416 Response (Objekt) 365, 380
Registrierdatenbank siehe Registrierung Restore (Methode) 466
416 REXX (Sprache) 348
Registrierung Robocopy (Tool) 294
– dienstspezifische Einträge für IIS 418 route (Befehl) 159
– Editoren 416 – Optionen 159
– Einträge für den FTP-Dienst 422 Router, im Internet 158
– Einträge für den WWW-Dienst 419 Routingdomäne 113
– globale Einträge für IIS 416 Routingtabelle 158
– Referenz 416 – bearbeiten 159
– von Internetdomänen 155 RSAC (Recreational Software Advisory
Registry siehe Registrierung 416 Council) 43
REMOTE_ADDR (Variable) 51
Stichwortverzeichnis 561

S ServerName (Eigenschaft) 404


Schlüssel 318 ServerPort (Eigenschaft) 404
– Namen 319 serverseitige Include-Anweisungen
– öffentlicher vs. privater 206 siehe SSI 428
– Pfade 319 ServerVersion (Eigenschaft) 411
Schlüssel-Manager 123 Serverzertifikate 208
SCRIPT_NAME (Variable) 51 – erwerben 209, 210
Scripthost – installieren 212
– Standard-Scripthost 298 ServiceName (Eigenschaft) 405
SDK (Software Development Kit) 143, 317 Session (Bereich) 529
Secure Sockets Layer siehe SSL 21, 186 Session (Objekt) 371, 381
Seite (Objektbereich) 366 Session_OnEnd (Ereignis) 533
Server Session_OnStart (Ereignis) 532
– anhalten 308 Session_OnStart (Prozedur) 397
– beenden 305 Set (Methode) 397
– Cache deaktivieren 417 SetAcct (Methode) 458
– für CGI konfigurieren 177 SetEnabled (Methode) 459
– konfigurieren 263 SetInfo (Methode) 518
– Leistung 258 SetName (Methode) 459
– Leistung überwachen 258 SetPwd (Methode) 460
– Leistungsoptimierung 162 SGC (Server-Gated Cryptography) 21, 208,
– neu starten 310 210
– Prozessor 267 Sicherheit 21, 181, 418
– Remoteadministration 327 – ACLs 183
– Remoteserver 88, 338 – Assistenten 22
– Sicherheit 182 – ausgehende 104, 108, 113
– Speicher 263 – Authentifizierung 184, 185
– starten 307 – Berechtigungen 137
– virtueller 86, 283 – Bindungen 184
– Webserver 244 – Checkliste 183
Server (Objekt) 381 – Dateisystem 183
Server Gated Cryptography siehe SGC 21 – Datenbanken 203
SERVER_NAME (Variable) 51 – Digestauthentifizierung 21
SERVER_PORT (Variable) 51 – Domänencontroller 184
SERVER_PORT_SECURE (Variable) 51 – durch ACLs 118
SERVER_PROTOCOL (Variable) 51 – FTP-Server 186
SERVER_SOFTWARE (Variable) 52 – IIS-Anwendungen 165
Servercache, deaktivieren 417 – IPSec 230
ServerIP (Eigenschaft) 404 – IUSR_-Konto 192
Serverleistung – Kennwörter 183
– optimieren 258 – konfigurieren 226
– überwachen 258 – NNTP-Dienst 118
562 Stichwortverzeichnis

– NTFS 194 – auf dem Client 357


– NTFS-Berechtigungen 186 – Beispiele 537
– Operatoren 101 – clientseitiges 357
– physikalische 184 – Debugging 379
– PKI 103 – Fehlerbereinigung 379
– Remoteadministration 184, 331 – Referenz 525
– sichere Kommunikation 123 – Skriptnamen 51
– Sicherung 184 – Skriptsprachen 348
– Skripts 183 – Verschlüsselung 347
– SMTP-Dienst 100 Skripts 32
– SSL 186, 204 Skripts siehe auch IIS-Anwendungen 161
– Überwachung 184, 224 Skriptsprachen 165, 348, 353
– Verschlüsselung 21, 184, 204 – Auskommentierung 354
– Vertrauensstellungen 230 – Eigenschaften 353
– Verzeichnisberechtigungen 183 – installierte 419
– Viren 184 – Konstanten 355
– virtuelle Server 100 – Standard ändern 528
– WebDAV 136 – Variablen 355
– Zertifikate 103, 184, 208 – verwendete 527
– Zertifikatsspeicherung 22 Smart Host 109, 114
– Zertifikatsvertrauenslisten 215 SMTP-Dienst 26
– Zugriffssteuerung 137, 192, 197 – Administration 85
Sicherung – anpassen 89
– auflisten 465 – Authentifizierung 102
– löschen 464 – beenden 89
– von IIS-Einstellungen 79 – Clustering 99
Simple Network Management Protocol – deaktivieren 90
siehe SNMP 86 – Domänen 110
Sites – Eigenschaften 86
– hinzufügen 64 – Fehlermeldungen 116
– unterbrechen 60 – Konfiguration 115
– virtuelle 64 – Operatoren 101
Sitzung (Objektbereich) 366 – Problembehebung 115
Sitzungen 121 – Protokollierung 95
– Leistungsermittlung 443 – Sicherheit 87, 100
– Status 527 – SMTP-Domänen 110
– Timeout 371, 532 – Starteigenschaften 89
– verwalten 370 – starten 89
Sitzungsereignisse 530, 532 – überwachen 115
Sitzungsstatus 527 – Verarbeitung von E-Mails 88
Skalierbarkeit 282 – verwalten 89
Skripting – Verzeichnisse 87
– Administrationsskripts 298 – virtuelle Server 86, 90, 92
Stichwortverzeichnis 563

– Weitergabe 103 Status (Komponente) 410


– Zugriffssteuerung 102 Status (Methode) 473, 502
SMTP-Domänen Stop (Methode) 473, 502
– erstellen 110 stopftp (Befehl) 63, 306
Snap-Ins Stoppschaltfläche 60
– hinzufügen 224 stopsrv (Befehl) 63, 305
SNMP (Simple Network Management stopweb (Befehl) 63, 304
Protocol), Eigenschaften 86 Stripesetdatenträger 261
Sockets 522 Subnetting 151
Software Development Kit siehe SDK 317 Subnetzmaske 103, 150
Software-RAID 262 – verwenden 151
Sonderzeichen 420 Systembefehl
SortTemp (Verzeichnis) 88 – Aufruf über ASP 52
Spamming 104 – Gründe für Deaktivierung 52
Speicher Systemmonitor 105, 116, 122, 128, 258,
– Leistungsermittlung 442 264, 271, 276
– optimieren 263
– Speicherleck 261 T
Speicherleck 261 TargetFrame (Eigenschaft) 387
Speichermedium 118 Task-Manager 259
SQL Server 204, 283, 372 Taskplaner 294
SSI (Server-Side Includes) 46, 172 TCP/IP 148, 271
– aktivieren 47 TCP-Anschluss 94
– deaktivieren 48 Telnet 132
– Protokollierung 428 Terminaldienste 24
– Referenz 49 TextStream (Objekt) 399
SSL (Secure Sockets Layer) 21, 59, 136, Threading 367
186, 204 Time To Live siehe TLL-Zeit 158
– Identitäten 73 TimedoutConnections (Eigenschaft) 411
– konfigurieren 208 Timeouts 417, 532
– Zertifikat 74 – Referenz 449
Standardauthentifizierung 102, 409 TimeTaken (Eigenschaft) 405
Standards TLS (Transport Layer Security) 21
– Unterstützung von 26 – Sicherheit 87
Standardskriptsprache 528 Tools (Komponente) 412
Standardversionsverwaltung 134 Toplevel-Domänen 155
Start (Methode) 473, 501 TotalRequests (Eigenschaft) 411
StartDate (Eigenschaft) 411 tracert (Befehl) 158
startftp (Befehl) 63, 307 TRANSACTION (@-Anweisung) 528
Startschaltfläche 60 Transaktionen 378, 381, 528
startsrv (Befehl) 63, 307 – Leistungsermittlung 443
StartTime (Eigenschaft) 411 Transport Layer Security siehe TLS 21
startweb (Befehl) 63, 306 TTL (Time To Live) 158, 418
564 Stichwortverzeichnis

Typbibliotheken 529 – Session (Bereich) 357


– deklarieren 535 – Wirkungsbereich 356
– Fehlermeldungen 535 VBScript 32, 165, 298, 317, 348
– Syntax 536 – fehlende Browserunterstützung 32
TypeLibrary-Deklaration 535 Verbindungen 92
– Anzahl beschränken 122
U – Anzahl gleichzeitiger Verbindungen
Übermittlung beschränken 272, 276
– Dateien 369 – aufrechterhalten 276
– Inhalte 367 – ausgehende 92
Überwachung 224 – automatisch trennen 276
– Gruppenrichtlinien 224 – Bandbreite beschränken 274
– konfigurieren 224 – eingehende 92
– NTFS 225 – Fehlermeldungen 234
– Prozessorauslastung 249 – in Warteschlange 417
– Serverleistung 227 – konfigurieren 92
– Systemleistung 116 – LDAP-Serververbindungen 114
– verwalten 224 – Leistung berechnen 273
Umleitung 36, 38 – Leistungsermittlung 442
– Beispiele 453 – lokale 107
– Gründe 38 – Timeouts 276
– Optionen 39 – Typ auswählen 272
– Referenz 453 – Zeitlimit 122
– Variablen 453 – zu Remoteserver 338
– zu einem Programm 40 Vererbung 317, 319
– zu einem Verzeichnis 39 Verfügbarkeit 282
UND (Verknüpfung) 150 Verknüpfungen
Unlock (Methode) 531 – umleiten 38
Unzustellbarkeitsbericht 106, 126 Verschlüsselung 21, 204
URIQuery (Eigenschaft) 405 – aktivieren 206
URIStem (Eigenschaft) 405 – implementieren 206
URL (Variable) 52 – mit öffentlichem Schlüssel 205
URL, Umleitung 453 – Prinzip 205
UserAgent (Eigenschaft) 406 – Schlüsseltypen 206
UserName (Eigenschaft) 406 – Verschlüsselungsstärke 205, 208
Versionskontrolle siehe Versionsverwaltung
V 134
Variablen 355 Versionsverwaltung 26, 134
– Application (Bereich) 357 – erweiterte 134
– Bereich 356 – Standard- 134
– deklarieren 356 Verwaltung
– privatisieren 356 – SMTP-Dienst 89
– publizieren 356 – von Websites 29
Stichwortverzeichnis 565

Verwaltungsobjekte siehe IIS Admin Web Distributed Authoring and Versioning


Objects 316 siehe WebDAV 26
Verwaltungswebsite 328 Web Service (Schlüssel) 319
Verzeichnisse 36 Webbrowser, Remoteadministration 328
– Basisverzeichnis 91, 119 WebDAV (Web Distributed Authoring and
– Basisverzeichnisse 36 Versioning) 26, 134, 192
– erstellen 303 – Beschreibung 134
– NTFS-Berechtigungen 196 – Clients 134
– Sicherheitseinstellungen ändern 340 – Locking 134
– Umleitung zu 39 – publizieren mit dem Internet Explorer 5.0
– virtuelle 303 144
– virtuelle Verzeichnisse 36, 38 – publizieren mit Office 2000 145
Verzeichnissicherheit, ändern 340 – publizieren mit Windows 2000 143
VIP (virtuelle IP-Adresse) 284, 292 – Sicherheit 135, 136
Virtual Network Interface Card siehe VNIC – Versionsverwaltung 134
282 – verwalten 136
virtuelle Server 86, 128 – Verzeichnis 135
– erstellen 90 WebDAV-Verzeichnis 135
– konfigurieren 92 – Berechtigungen 137
– NNTP-Server 117 – durchsuchen 139
– NNTP-Server wiederherstellen 130 – Eigenschaften 138
– Sicherheit 100 – erstellen 135
– und Clustering 99 – indizieren 139
virtuelle Sites 64 – verwalten 143
virtuelle Verzeichnisse 36, 38 Webdesign, Programme 31
– erstellen 38 Webmaster, bei Fehler informieren 239
VisitorsSinceStart (Eigenschaft) 410 Webserver
VisitorsToday (Eigenschaft) 411 – anhalten 307, 501
Visual Basic 317, 353 – beenden 304, 502
Visual Source Safe 134 – Berechtigungen 200
Visual Studio Enterprise Edition 134 – fortsetzen 501
VNIC (Virtual Network Interface Card) – IIsWebDirectory (Objekt) 486
282 – Leistungsoptimierung 258
Voreinstellungen, ändern 77 – neu starten 309
VPN (Virtual Private Network) 184, 230 – Prozessor 267
– Speicher 263
W – starten 306, 501
W3C-erweitert (Protokollformat) 95, 245, Webserverberechtigungen 200
450 – konfigurieren 201
– erweiterte Einstellungen 250 Website-Operatoren 82
– Optionen 97 Websites
Wahrheitstabelle 150 – Ablauf 41
Warteschlange 417 – abwärtskompatible Administrierung 83
– Administration 57
566 Stichwortverzeichnis

– Aktivitäten protokollieren 243 Windows-SSPI (Authentifzierungsmethode)


– Anzahl gleichzeitiger Verbindungen 115
beschränken 276 WINS (Windows Internet Name System)
– Assistent für neue 65 152, 154
– beenden 60 Write (Methode) 365
– benennen 72 WriteLogRecord (Methode) 402
– Beschreibung 65, 72 WSH (Windows Scripting Host) 81
– Daten sammeln 244 WWW-Dienst
– erstellen 31, 302, 336 – Authentifizierung 424
– Fehlermeldungen 234 – Ereignisse 424, 429
– Fußzeilen 44 – IIsWebDirectory (Objekt) 486
– Gültigkeit 41 – IIsWebInfo (Objekt) 496
– Haupteigenschaften 78 – IIsWebServer (Objekt) 497
– hinzufügen 64 – IIsWebService (Objekt) 502
– Hostheadernamen 420 – IIsWebVirtualDir (Objekt) 506
– Identitäten 73 – Metabasis 426
– Inhalte 41 – ODBC 427
– klassifizieren 43 – Protokollierung 424, 425
– Operatoren 82 – Registrierungseinträge 419
– Protokollierung 243 – SSI 428
– Sicherheit 418 WWW-Publishingdienst
– Sockets 522 – beenden 60
– Standardsite 74
– starten 60 X
– suchen 302 XML (Extended Markup Language) 347
– überwachen 243
– verwalten 29 Z
– verwalten mit ASP 32, 46 Counters (Objekt) 395
– Voreinstellungen ändern 77 Zähler siehe Counter 395
– Zugriffsberechtigungen 67 Zeitlimit 122
Weitergabe 103 Zertifikate 103, 123, 208
Werbebanner 384 – Clientzertifikate 208, 216
– als Hyperlink 386 – exportieren 221
– Rahmen 386 – installieren 213
Wiederherstellung von IIS-Einstellungen – Kontozuordnung 218, 219
79 – Schlüssel-Manager 123
Win32Status (Eigenschaft) 406 – Serverzertifikate 206, 208, 209, 210
Windows 2000 Resource Kit 294 – SSL konfigurieren 208
Windows Internet Name System siehe – Zertifikatsanforderung 209
WINS 152 – Zertifikatsvertrauenslisten 209, 215
Windows NT LAN Manager siehe NTLM – Zertifizierungsstellen 103, 208
410 – zuordnen 456
Windows-Sicherheitspaket (Authentifizie- – Zuordnung aktivieren/deaktivieren 459
rungsmethode) 102, 118 – Zuordnung löschen 457
Stichwortverzeichnis 567

Zertifikatsanforderung, erstellen 210 Zugriffssteuerung 102, 137, 192


Zertifikatsspeicherung 22 – Ablauf (Schema) 193
Zertifikatsvertrauensliste siehe CTL 22 – Datenbanken 203
Zertifizierungsstellen 103 – konfigurieren 197
– Zertifikatsvertrauenslisten 215 – Remoteadministration 329
Zugriff Zugriffssteuerungsliste siehe ACL 182
– einschränken 197, 276 Zugriffs-Token 418
– gewähren 197 Zwischenspeicher siehe Cache 263
– steuern 192 Zwischenspeicherung 172
– unberechtigten erkennen 228 – Leistungsermittlung 442
Zugriffsbeschränkungen
– ändern 311

Das könnte Ihnen auch gefallen