September 2008 September 2008
ISA Server: Eine Anleitung zum Sichern von ISA Server 2006
Viele Organisationen verlassen sich bei der Sicherung ihrer Umgebung auf ISA Server 2006, aber wenige vollziehen den wichtigen Schritt, ISA Server zu sichern. Hier finden Sie eine Anleitung zum Verwenden des Sicherheitskonfigurations-Assistenten sowie der Administratorrollen zur Verringerung der Angriffsfläche und zur Sicherung Ihrer ISA Server 2006-Implementierung. Alan Maddison
ISA Server: Verbessern der TS-Gatewaysicherheit mit ISA Server 2006
Mithilfe des neuen TS-Gatewayfeatures ermöglicht Windows Server 2008 Benutzern, von überall auf ihre Desktops zuzugreifen, ohne VPN zu verwenden. Erfahren Sie, wie Sie TS-Gateway über ISA Server 2006 veröffentlichen können, und erweitern Sie das ISA Server 2006-Veröffentlichungsszenario, sodass es Clientintegritätserzwingung einschließt. Dr. Thomas W. Shinder und Yuri Diogenes
IIS 7.0: Die 10 wichtigsten Leistungsverbesserungen in IIS 7.0
Mit der neuesten Version von IIS wird eine modulare und erweiterbare Plattform mit verbesserter Unterstützung für allgemeine Bereitstellungs- und Verwaltungsszenarios eingeführt, die bedeutende Leistungsverbesserungen ermöglicht. In diesem Artikel werden die 10 Schlüsselbereiche von IIS 7.0 vorgestellt, auf denen diese Verbesserungen beruhen. Mike Volodarsky
Mobilität: Machen Sie Ihre Branchenanwendungen mobil
Für viele mobile Fachleute ist es heute erforderlich, dass ihnen die Branchenanwendungen, die sie im Büro verwenden (CRM, ERP und ähnliche), bei Tätigkeiten im Außendienst über ein mobiles Gerät zugänglich sind. Erfahren Sie, wie Windows Mobile und Mobile Device Manager es Ihnen ermöglichen, umfassende mobile Funktionen für wichtige Branchenanwendungen bereitzustellen. Matt Fontaine
Sicherheit: Verwaltung der Kennwörter gemeinsam genutzter Konten
Kennwörter gemeinsam genutzter und privilegierter Konten sind in aller Munde, aber viel zu viele Organisationen versagen bei der angemessenen Verwaltung dieser gemeinsam genutzten Kennwörter. Dies stellt ein ernstes Sicherheitsproblem dar. Informieren Sie sich über die Risiken, die mit gemeinsam genutzten und privilegierten Konten verbunden sind, und entdecken Sie bessere Ansätze zur Verwaltung von Kennwörtern, die höhere Sicherheit bieten. Chris Stoneff
Columns
Mitteilung der Redaktion: Zurück auf die Schulbank: | Briefe: Leser sagen ihre Meinung: | Toolbox: Neue Produkte für IT-Experten:
Exchange Fragen & Antworten: Ausrichten von Festplattenpartitionen, Planen für SCR und mehr: In der Ausgabe von „Exchange Fragen & Antworten“ im September 2008 werden Fragen zum Berechnen der erforderlichen Anzahl globaler Katalogserver, zum Ändern der Standortmitgliedschaft eines Servers sowie weitere Themen behandelt.Henrik Walther | Schwerpunkt Dienstprogramme: Windows-Speicherdiagnose: Erfahren Sie, wie Sie mit diesem kostenlosen Dienstprogramm herausfinden können, ob Probleme, die beim Ausführen von Windows auftreten, durch fehlerhaften Speicher verursacht werden.Lance Whitney | Einblicke in SharePoint: SharePoint-Verzeichnisintegration: Pav Cherny beschreibt die Einschränkungen des integrierten Verzeichnisverwaltungsdiensts in SharePoint und erklärt, wie Sie diese Komponente durch eine benutzerdefinierte Lösung ersetzen können, die Ihnen ermöglicht, SharePoint-Empfängerinformationen mit anderen Verzeichnislösungen zu synchronisieren.Pav Cherny
Windows PowerShell: Zeichenfolgentheorie: Trotz seiner objektorientierten Natur kann Windows PowerShell auch komplizierte Zeichenfolgen analysieren. Don Jones führt vor, wie Sie dies in Windows PowerShell mittels select-string erreichen können.Don Jones | Hey, Scripting Guy!: Bleiben Sie in Verbindung mit Ihrem Toaster: Erfahren Sie, wie Sie getrennte Recordsets (virtuelle Datenbanktabellen) verwenden können, um VBScript-Einschränkungen beim Sortieren von Daten und Arbeiten mit großen Datensätzen zu umgehen.Die Scripting Guys von Microsoft | Die Desktopdateien: Erweiterte Funktionalität in WDS: In seinem dritten Artikel zu den Windows-Bereitstellungsdiensten untersucht Wes Miller Features zur Verbesserung der Leistung und Skalierbarkeit, der Protokollierung sowie der Befehlszeilenautomatisierung.Wes Miller
Sicherheit auf dem Prüfstand: Kennwörter und Kreditkarten, Teil 3: Im letzten Teil dieser dreiteiligen Reihe befasst sich Jesper Johansson damit, wie Softwarehersteller, Sicherheitssuites und Marketingbestrebungen echte Sicherheitsbestrebungen unterminieren, und warnt uns davor, wie diese Methoden zum Zusammenbruch des Ökosystems der Technologiesicherheit führen können.Jesper M. Johansson | Berichte aus der Praxis: Innovation von innen: Romi Mahajan erläutert seine Theorie der „Innovation von innen“, die die Bedeutung der menschlichen Kreativität und des Humankapitals als Schlüssel zu nachhaltigen komparativen Vorteilen unterstreicht.Romi Mahajan | Windows Confidential: Windows 95 Unplugged: Raymond Chen beschreibt, wie ein wenig Diagnosecode den Windows 95-Build plötzlich auf ein Schneckentempo verlangsamte.Raymond Chen


Eine Anleitung zum Sichern von ISA Server 2006
Alan Maddison
Auf einen Blick:
  • Bewährte Methoden zum Sichern Ihrer Server
  • Einrichten des Sicherheitskonfigurations-Assistenten
  • Eine exemplarische Vorgehensweise für den Sicherheitskonfigurations-Assistenten
  • Zuweisen von Administratorrollen

Inhalt
Sichern Ihrer Server
Einrichten des Sicherheitskonfigurations-Assistenten
Ausführen des Sicherheitskonfigurations-Assistenten
Administratorrollen
Während viele IT-Experten sich auf ISA Server 2006 (Internet Security and Acceleration Server 2006) verlassen, um ihre Technologieressourcen zu sichern, gehen nur wenige einen Schritt weiter und sichern ISA Server selbst. Wenn Sie
ISA Server 2006 erst kürzlich installiert haben, haben Sie vermutlich noch im Gedächtnis, dass daran erinnert wurde, die Sicherung sofort nach Abschluss der Installation vorzunehmen. Leider nehmen sich (oder haben) viele IT-Experten selten die Zeit, diesen wichtigen Schritt durchzuführen, und so landet er auf dem Merkzettel für anstehende Aufgaben, die jedoch nie erledigt werden.
In der sich ständig wandelnden Sicherheitslage von heute ist diese Unterlassung, ISA Server zu sichern, nicht mehr akzeptabel. Glücklicherweise wurden bei den Tools, die für das Sichern von ISA Server verwendet werden, ungeheure Fortschritte erzielt. Viele der Herausforderungen in den Assistenten zur Erhöhung der Sicherheit, die in den Versionen vor ISA Server 2004 enthalten sind, bleiben Ihnen erspart. Stattdessen können Sie sich auf klar definierte Schritte und Tools, wie z. B. den Sicherheitskonfigurations-Assistenten (Security Configuration Wizard, SCW) verlassen, der in Windows Server® 2003 enthalten ist.
Dieser Artikel bietet eine kurze Zusammenfassung allgemeiner bewährter Methoden für das Sichern von Servern. Anschließend werden in einer Schritt-für-Schritt-Anleitung die Strategien für das Absichern von ISA Server untersucht, wobei mit dem SCW die Angriffsfläche der ISA Server- und Administratorrollen verringert wird, um den Zugriff auf ISA Server einzuschränken.

Sichern Ihrer Server
Es gibt viele Elemente und bewährte Methoden für das Sichern von Servern, die sich in einem Datencenter oder im Serverraum neben Ihrem Büro befinden können. Als Administrator fällt es in Ihren Verantwortungsbereich zu verstehen, welches die bewährten Methoden sind, und alles zu tun, um diese Anforderungen in einer für Ihre Organisation praktikablen Weise zu implementieren. Da Sicherheit in den letzten Jahren mit mehr Nachdruck behandelt wird, sind viele Administratoren relativ vertraut mit den Aufgaben, die den Kern dieser Anforderungen bilden. Deshalb werden diese Punkte hier nur in einer kurzen Übersicht zusammengefasst.
Der erste Schritt beim Sichern Ihrer Umgebung ist die Gewährleistung, dass Ihre Server physisch sicher sind. Das heißt praktisch, dass Sie den physischen Zugriff auf Ihre Server einschränken müssen. In kleineren Umgebungen bedeutet das, dass Sie sicherstellen müssen, dass die Tür zum Serverraum nie offen bleibt und nur eine sehr kleine Gruppe von Personen Zugang zu diesem Raum hat. In größeren Umgebungen gilt dieselbe grundlegende Anforderung, sie kann aber in einer komplexeren Weise implementiert werden. Viele Organisationen verwenden beispielsweise eine elektronische Überwachung. Dies ermöglicht ihnen die Überwachung der Serverstandorte und sogar die Einschränkung des Zugangs zu einzelnen Serverschränken, je nachdem, wie die Arbeitsbereiche strukturiert sind.
Es gibt einige spezielle Faktoren, die in Erwägung gezogen werden sollten, wenn es um den Diebstahl oder die physische Gefährdung eines ISA Servers oder ISA-Konfigurationsspeicherservers geht. Die Art der Informationen, die von einem gestohlenen Server gewonnen werden können, kann möglicherweise alle ISA Server und den gesamte Datenverkehr (einschließlich des verschlüsselten Datenverkehrs) in Ihrer Umgebung beeinträchtigen.
Wenn Sie vermuten, dass ein Server beeinträchtigt wurde, entfernen Sie den betroffenen Server unverzüglich, und folgen Sie dem Standardverfahren für das Sichern der Beweise. Nach diesen notwendigen Schritten müssen Sie den Prozess beginnen, bei dem alle vertraulichen Informationen geändert werden. Alle Zertifikate, die auf dem Server installiert sind, müssen widerrufen werden, und alle vorinstallierten und gemeinsamen geheimen Schlüssel müssen geändert werden. Wenn Sie ein Replikat des Konfigurationsspeicherservers verwalten, müssen Sie zudem sicherstellen, dass alle Daten, die sich auf den manipulierten Server beziehen, entfernt werden.
Nachdem Ihre Server physisch sicher sind, muss als Nächstes sichergestellt werden, dass eine strukturierte Methode für das Patchen der gesamten Software vorhanden ist, einschließlich der Virtualisierungsschicht, des Betriebssystems und der Anwendungen. Patches, Upgrades und Hotfixes müssen überprüft und regelmäßig angewendet werden. Aber vergessen Sie nicht, diese Updates zu testen, bevor Sie sie auf die Produktionssysteme anwenden. Ein Patch ist keine Hilfe, wenn es am Ende ein Problem verursacht, durch das die Anwendungs- oder Datenintegrität beeinträchtigt wird.
Falls die Datenintegrität beeinträchtigt ist, müssen Sie sich auf Ihre Sicherungen verlassen können. Dies führt zu einem anderen wichtigen Faktor beim Sichern Ihrer Infrastruktur. Wenn Sie Daten bei Bedarf nicht schnell und vollständig wiederherstellen können, kann die Ausfallzeit eine erhebliche Auswirkung auf Ihre Vorgänge haben und die Kosten der Zugriffsverletzung erhöhen.
Zwei andere Faktoren, die beachtet werden müssen, sind das Überwachen und Überprüfen. Die Überwachung Ihrer Anwendungen und Systeme ist ein entscheidender Aspekt eines guten Sicherheitsplans. Wenn Sie sich die Zeit zum Überprüfen von Protokollen, insbesondere von sicherheitsbezogenen Protokollen, nicht nehmen, ist die Wahrscheinlichkeit, dass Sie jemals vor dem Schadensfall Zugriffsverletzungen aufdecken, gering.
Dementsprechend wichtig ist die Überprüfung. Für viele Organisationen, besonders bei großen Umgebungen, wird dies oft formalisiert und ist sogar gesetzlich vorgeschrieben. Wie dem auch sei, es ist in jeder Umgebung wichtig, die Steuerelemente und die Methodik zur Sicherung Ihrer Ressourcen regelmäßig zu überprüfen, damit Ihre Bemühungen effektiv sind.
Abschließend ist Folgendes anzumerken: Da Sie ISA Server 2006 unter Windows Server® 2003 ausführen, ist es wichtig, dass Sie das Windows Server 2003-Sicherheitshandbuch noch einmal sorgfältig durchgehen und die notwendigen Empfehlungen implementieren. Sie finden das Windows Server 2003-Sicherheitshandbuch unter microsoft.com/technet/security/prodtech/windowsserver2003/w2003hg/sgch00.mspx.
Microsoft empfiehlt derzeit das Implementieren der Vorlage „Baseline Security Policy“, aber Sie sollten keine IPsec-Filter (Internet Protocol Security, Internetprotokollsicherheit) implementieren.

Einrichten des Sicherheitskonfigurations-Assistenten
Wie kann die Sicherheit von ISA Server selbst noch verbessert werden? Das primäre Tool für das Sichern von ISA ist der SCW (Security Configuration Wizard, Sicherheitskonfigurations-Assistent). Dies ist ein Tool zum Verringern der Angriffsfläche. Es erstellt Sicherheitsrichtlinien, die auf die Dienste, die Netzwerksicherheit, die Registrierung sowie die Überwachungsrichtlinie eines Servers abzielen, und konfiguriert das System nur für die erforderlichen Dienste und Features. Beachten Sie, dass Sie nur die ISA Server-Dienste konfigurieren sollten, die Sie auch verwenden werden. Der Webproxydienst ist beispielsweise standardmäßig aktiviert, aber Sie sollten diese Funktionalität deaktivieren, wenn ihre Verwendung nicht vorgesehen ist. Folglich müssen Sie sorgfältig auf die Konfigurationsoptionen achten, die der SCW Ihnen bietet.
Den SCW ist in Windows Server 2003 standardmäßig nicht installiert. Als Erstes müssen Sie deshalb den SCW unter Verwendung des Applets „Windows®-Komponenten hinzufügen/entfernen“ unter der Option „Software“ der Systemsteuerung manuell installieren. (Beachten Sie, dass der SCW standardmäßig in Windows Server 2008 installiert ist.) Nachdem der Bildschirm für die Windows-Komponenten geladen ist, führen Sie einen Bildlauf nach unten durch, und aktivieren Sie das Kontrollkästchen für den SCW.
Nach dem Abschluss der Installation ist die Anwendung unter „Verwaltung“ zu finden. Vor der Arbeit mit dem Assistenten müssen Sie den SCW durch Herunterladen eines Updates für ISA Server 2006 aktualisieren (verfügbar unter go.microsoft.com/fwlink/?LinkId=122532). Dieses Update fügt die Rollen für ISA Server 2006 Standard Edition, ISA Server 2006 Enterprise Edition und den ISA Server-Konfigurationsspeicherserver hinzu.
Nachdem Sie das Update heruntergeladen haben, müssen Sie das Paket ausführen und die Dateien extrahieren. Kopieren Sie nach dem Extrahieren dieser Dateien die zwei XML-Dateien (isa.xml und isaloc.xml) in den Ordner „SCW kbs“, in einer Standardinstallation von Windows Server also unter „C:\Windows\security\msscw\kbs“.
Wenn Sie die Dateien kopieren, werden Sie aufgefordert, zwei vorhandene Dateien mit dem gleichen Namen zu überschreiben. Diese zwei Dateien sind für ISA Server 2004. Deshalb sollten Sie vor dem Überschreiben von ihnen eine Sicherheitskopie erstellen. Im letzten Schritt kopieren Sie die isascwhlp.dll-Datei in den bin-Ordner, der sich in der Regel im Pfad „C:\Windows\security\msscw\bin“ befindet. Nachdem Sie das Hinzufügen der ISA-Rollen zum SCW abgeschlossen haben, kann die Installation beginnen.
Microsoft empfiehlt im Allgemeinen, dass Sie den SCW erst dann ausführen, wenn Sie die Konfiguration von ISA Server abgeschlossen haben. Wenn Sie Enterprise Edition ausführen, schließt dies die Konfiguration aller Arrays und Arraymitglieder ein.

Ausführen des Sicherheitskonfigurations-Assistenten
Als Erstes starten Sie den SCW von „Verwaltung“ aus. Denken Sie daran, dass Sie Verwaltungsberechtigungen benötigen, um den SCW-Prozess erfolgreich abzuschließen.
In Abbildung 1 sehen Sie den ersten Bildschirm des Assistenten. Wenn Sie den Text auf diesem Bildschirm lesen, vor allem die Warnung, die darauf hinweist, dass dieser Assistent die eingehenden Ports erkennt, die von diesem Server empfangen werden, ist leicht ersichtlich, warum es wichtig ist, dass ISA Server und die Arrays vor dem Beginn dieses Prozesses vollständig konfiguriert sind.
Abbildung 1 Starten des Sicherheitskonfigurations-Assistenten (zum Vergrößern auf das Bild klicken)
Falls Sie Ihre Umgebung nicht vollständig konfiguriert haben, ist davon auszugehen, dass Sie die SCW-Konfiguration nach dem Abschluss der ISA-Konfiguration überarbeiten müssen. Im nächsten Bildschirm (siehe Abbildung 2) wird gefragt, welche Aktion Sie durchführen möchten. Wählen Sie die Option zum Erstellen einer neuen Sicherheitsrichtlinie aus.
Abbildung 2 Erstellen einer neuen Sicherheitsrichtlinie (zum Vergrößern auf das Bild klicken)
Sie werden daraufhin aufgefordert, den Server auszuwählen, der als Baseline für die Richtlinie verwendet wird. Da Sie eine neue Richtlinie erstellen, besteht die Standardauswahl darin, den Computer zu verwenden, auf dem Sie den SCW ausführen. Dieses Verhalten ändert sich jedoch in Abhängigkeit von der Aktion, die Sie auf dem vorherigen Bildschirm ausgewählt haben. Unabhängig davon wird als bewährte Methode empfohlen, den SCW auf dem Server zu installieren, den Sie als die Baseline verwenden möchten. Wenn der SCW nicht auf dem Zielserver installiert wird, fehlen die Informationen, die für den Abschluss der Richtlinie verwendet werden. Es ist folglich einfacher, den SCW von dem Server, der als Baseline dienen soll, zu installieren und auszuführen.
Wenn Sie als Nächstes auf „Weiter“ klicken, beginnt der SCW die Analyse von ISA Server. Diese Analyse umfasst das Festlegen der auf dem Server installierten Rollen, der auf dem Server wahrscheinlich installierten Rollen, der installierten Dienste sowie der grundlegenden Netzwerkinformationen. Wenn die Verarbeitung abgeschlossen ist, können Sie die Datenbank durch Auswählen der Ansichtskonfigurationsdatenbank anzeigen. Die Konfigurationsdatenbank enthält viele Informationen, einschließlich aller unterstützten Serverrollen, Clientfeatures und Ports.
Dann beginnt der SCW den Prozess, bei dem Sie durch die rollenbasierte Dienstkonfiguration geführt werden. Durch Klicken auf „Weiter“ gelangen Sie zum nächsten Bildschirm, auf dem Sie aufgefordert werden, die Serverrollen auszuwählen (siehe Abbildung 3). Der anfängliche Scan, der vom SCW durchgeführt wird, ist zuverlässig, und Sie werden feststellen, dass die richtigen Serverrollen bereits identifiziert wurden. Es ist jedoch sehr wichtig, dass Sie sie nochmals überprüfen und alle unnötigen Rollen entfernen. Wenn der Server mehrere Rollen ausführt, stellen Sie sicher, dass alle entsprechenden Rollen ausgewählt sind.
Abbildung 3 Angeben der Serverrollen (zum Vergrößern auf das Bild klicken)
Ein wichtiger Punkt beim Ausführen von ISA Server 2006 Enterprise Edition ist, dass Sie den Konfigurationsspeicherserver berücksichtigen müssen. Wenn der Konfigurationsspeicherserver auf einem Server installiert ist, der gleichzeitig ein ISA Server ist (dies entspricht übrigens nicht den empfohlenen bewährten Methoden, ist aber trotzdem oft der Fall), müssen Sie sicherstellen, dass die Konfigurationsspeicherserver-Rolle ebenfalls ausgewählt ist. Sie sollten keinen Baselinescan eines Servers verwenden, der für Server, die eigentlich nur die ISA Server 2006-Rolle haben, beide Rollen hostet.
Als Nächstes werden Sie aufgefordert, die Clientfeatures des Servers auszuwählen. Anders gesagt, müssen Sie die Dienste angeben, die vom Server benötigt werden. Zum Beispiel werden nahezu alle Server den DNS-Client erfordern, und wenn ein Server Mitglied einer Domäne ist, wird er das Domänenmitgliedsfeature erfordern.
Nachdem Sie dies getan haben, werden der Bildschirm „Verwaltungs- und weitere Optionen“ angezeigt. Hier geben Sie die Optionen für die Anwendung, für die Verwaltung und für das Betriebssystem an, die Dienste verwenden oder auf die Netzwerkkonnektivität angewiesen sind. Alle hier nicht ausgewählten Dienste werden deaktiviert. Nachdem Sie Ihre Auswahl getroffen und auf „Weiter“ geklickt haben, erhalten aber Sie die Gelegenheit, alle zusätzlichen Dienste auszuwählen, die Sie zulassen möchten.
Dann konfigurieren Sie, wie nicht spezifizierte Dienste behandelt werden sollen. So können Sie definieren, was geschehen soll, wenn Dienste gefunden werden, die nicht in der Hauptdatenbank enthalten oder auf dem Baselineserver installiert sind, wenn die Richtlinie angewendet wird. Als allgemeine bewährte Methode empfiehlt sich das Deaktivieren aller nicht spezifizierten Dienste, weil dies unvorhergesehene Angriffsmethoden einschränkt. Leider kann diese Option negative Folgen haben, wenn Ihre Server in wichtigen Bereichen keine Ähnlichkeit aufweisen. Sie müssen sich außerdem an diese Einstellung erinnern, wenn Sie in Zukunft Anwendungen oder Netzwerkdienste hinzufügen.
Der nächste Abschnitt des Assistenten (siehe Abbildung 4) ermöglicht Ihnen das Überprüfen der Dienste, die vom SCW geändert werden. Dieser Bestätigungsbildschirm bietet eine Vergleichsansicht sowohl für den aktuellen als auch den geänderten Status der Dienste, nachdem die Richtlinie angewendet wurde.
Abbildung 4 Überprüfung und Bestätigung der Dienständerungen (zum Vergrößern auf das Bild klicken)
Nach dem Bestätigen der Dienste, die geändert werden sollen, fahren Sie mit dem Abschnitt „Netzwerksicherheit“ fort. Hier ermöglicht der SCW in der Regel das Ändern der Windows-Firewall- und IPsec-Einstellungen. Da Sie jedoch ISA Server 2006 konfigurieren, haben Sie keine andere Wahl, als diesen Abschnitt zu überspringen (siehe Abbildung 5).
Abbildung 5 Überspringen der Netzwerksicherheitseinstellungen (zum Vergrößern auf das Bild klicken)
Der Assistent fährt dann mit dem Konfigurieren der Registrierungseinstellungen fort, die sich auf die Netzwerkauthentifizierungsmethoden und die Sicherheit konzentrieren. Der erste Bildschirm in diesem Abschnitt umfasst die SMB-Signatur (Server Message Block). Das SMB-Protokoll ist ein zentrales Microsoft-Netzwerkprotokoll, und diese Einstellungen ermöglichen die signierte Kommunikation, um die Wahrscheinlichkeit der Man-in-the-Middle-Angriffe zu verringern.
Die Standardeinstellungen (siehe Abbildung 6) bieten eine gute Sicherungsstufe für Ihre ISA Server-SMB-Kommunikation. Sie müssen jedoch die Auswirkungen berücksichtigen, die das Signieren jeglicher Kommunikation zur Folge hat. Wenn Sie die zusätzlichen CPU-Zyklen nicht haben, sollten Sie die zweite Option deaktivieren. Denken Sie außerdem an alle Server, auf die diese Richtlinie angewendet wird. Wenn Sie Server mit verschiedenen Arbeitsauslastungen haben, müssen Sie den Server mit der höchsten CPU-Auslastung als Richtlinie dafür verwenden, ob Sie diese Option auswählen oder nicht.
Abbildung 6 Angeben, ob signierte Kommunikation erforderlich ist (zum Vergrößern auf das Bild klicken)
Die nächsten Bildschirme betreffen die LMCompatibility-Ebene, die der ISA Server verwenden sollte. Im ersten Bildschirm stehen drei Optionen zur Auswahl. Wenn Sie keine Legacy-Windows-Clients (wie z. B. Windows 95 oder Windows 98) haben und keine lokalen Konten für die Zugriffssteuerung verwenden, sollten Sie die Standardauswahl „Domänenkonten“ unverändert lassen.
Auf dem zweiten Bildschirm, auf dem die LMCompatibility-Ebene behandelt wird, stellen Sie Informationen zu Ihren Domänencontrollern bereit. Wenn Sie keine Windows NT® 4.0-Domäne haben, können Sie die Standardauswahl unverändert lassen (Windows NT 4.0 Service Pack 6a oder höher). Auf diesem Bildschirm sollten Sie auch auswählen, dass die Uhren mit der Uhroption auf dem ausgewählten Server synchronisiert werden. Durch Klicken auf „Weiter“ werden einige zusätzliche Konfigurationsoptionen für die eingehende LM-Kommunikation (LAN Manager) angezeigt (siehe Abbildung 7).
Abbildung 7 Angeben eingehender Authentifizierungsmethoden (zum Vergrößern auf das Bild klicken)
In diesem dritten Bildschirm, der sich auf die LMCompatibility-Ebene bezieht, wird festgelegt, ob Windows NT LAN Manager (NTLM), Version 2, erforderlich ist und ob LM-Hashes gespeichert werden. Sie sollten sicherstellen, dass keine dieser Optionen ausgewählt ist, vorausgesetzt, dass Ihre Umgebung diese Konfiguration unterstützt, da das Deaktivieren dieser beiden Optionen die Sicherheit erheblich verbessert. Daraufhin wird eine Zusammenfassung der Registrierungseinstellungen angezeigt. Überprüfen Sie jeden Eintrag, und bestätigen Sie, dass die Richtlinieneinstellungen korrekt sind.
Als Nächstes führt Sie der Assistent zum letzten Abschnitt – der Überwachung. Bei allen Konfigurationsoptionen, die Sie in diesem Abschnitt auswählen, müssen Sie einen wichtigen Punkt beachten: Einmal ausgewählte Optionen können nicht rückgängig gemacht werden. Da sich die Überwachung aber nicht auf die Systemfunktionalität auswirkt, sollten Sie diesen Abschnitt nicht überspringen.
Die Standardauswahl der Option „Erfolgreiche Aktivitäten überwachen“ stellt Ihnen keine Ereignisprotokolleinträge für Anmeldefehler zur Verfügung. Informationen in Bezug auf Anmeldefehler können jedoch wertvolle Informationen über Eindringversuche liefern. Folglich sollten Sie als allgemeine bewährte Methode die Option „Erfolgreiche und nicht erfolgreiche Aktivitäten überwachen“ auswählen.
Sie können dann Ihre Überwachungskonfiguration überprüfen und zweimal auf „Weiter“ klicken, um Ihre Sicherheitsrichtlinie zu speichern. Alles, was auf diesem Bildschirm (siehe Abbildung 8) erforderlich ist, ist ein Dateiname. Sie können aber auch eine kurze Beschreibung angeben. Diese Beschreibung kann sich in großen Umgebungen, in denen verschiedene Administratoren gemeinsam für die Sicherheit verantwortlich sind, als nützlich erweisen.
Abbildung 8 Angeben eines Namens und einer Beschreibung für Ihre Sicherheitsrichtlinie (zum Vergrößern auf das Bild klicken)
Nachdem die Datei gespeichert wurde, haben Sie die Wahl, die Richtlinie sofort oder später anzuwenden. Wenn Sie auswählen, die Richtlinie später anzuwenden, ist der Prozess vollständig. Wenn Sie feststellen, dass Sie in der Richtlinienkonfiguration Fehler gemacht haben, können Sie die Richtlinie, mit der Ausnahme der Überwachungseinstellungen, zurücksetzen.

Administratorrollen
Die Verringerung der Angriffsfläche Ihres ISA Servers ist ein entscheidender Schritt, um die Gefahr von Zugriffsverletzungen von externen Quellen zu verringern. Es ist jedoch auch wichtig, die Zuweisung der Administratorrollen innerhalb von ISA Server zu überprüfen, um das Potenzial für die Gefährdung durch interne Quellen zu begrenzen. Die Administratorrollen und eine partielle Liste allgemeiner zugeordneter Aufgaben sind in den Abbildungen 9 und 10 dargestellt.
Abbildung 9 Mit Standard Edition verknüpfte Rollen und Aufgaben
Aufgabe | Überwachungsprüfprogramm | Prüfprogramm | Hauptadministrator
Dashboard, Alarme, Konnektivität, Sitzungen und Dienste anzeigen | Zugelassen | Zugelassen | Zugelassen
Alarme bestätigen | Zugelassen | Zugelassen | Zugelassen
Protokollinformationen anzeigen | – | Zugelassen | Zugelassen
Alarmdefinitionen erstellen | – | – | Zugelassen
Berichte erstellen | – | Zugelassen | Zugelassen
Sitzungen und Dienste starten und beenden | – | Zugelassen | Zugelassen
Firewallrichtlinie anzeigen | – | Zugelassen | Zugelassen
Firewallrichtlinie konfigurieren | – | – | Zugelassen
Cache konfigurieren | – | – | Zugelassen
Virtuelles privates Netzwerk (VPN) konfigurieren | – | – | Zugelassen
Abbildung 10 Mit Standard Edition verknüpfte Rollen und Aufgaben
Aktivität | Arrayüberwachungs-Prüfprogramm | Arrayprüfprogramm | Arrayadministrator
Dashboard, Alarme, Konnektivität und Sitzungen anzeigen | Zugelassen | Zugelassen | Zugelassen
Alarme bestätigen und zurücksetzen | Zugelassen | Zugelassen | Zugelassen
Protokollinformationen anzeigen | – | Zugelassen | Zugelassen
Alarmdefinitionen erstellen | – | - | Zugelassen
Berichte erstellen | – | Zugelassen | Zugelassen
Sitzungen und Dienste starten und beenden | – | Zugelassen | Zugelassen
Firewallrichtlinie anzeigen | – | Zugelassen | Zugelassen
Firewallrichtlinie konfigurieren | – | – | Zugelassen
Cache konfigurieren | – | – | Zugelassen
Virtuelles privates Netzwerk (VPN) konfigurieren | – | – | Zugelassen
NLB Drain/Stop durchführen | – | Zugelassen | Zugelassen
Lokale Konfiguration anzeigen (in Registrierung des Arraymitglieds) | – | Zugelassen | Zugelassen
Lokale Konfiguration ändern (in Registrierung des Arraymitglieds) | – | – | –
Wie Sie sehen können, gibt es in den administrativen, ISA Server zugeordneten Aufgaben einen hohen Segmentierungsgrad. Dies wiederum erleichtert Ihnen die Aufgabe, Benutzern die richtigen Rollen innerhalb Ihrer Organisation zuzuweisen.
Darüber hinaus müssen Sie daran denken, dass der beste Ansatz für die Rollenzuweisung das Prinzip der geringsten Rechte ist. Alle Benutzer sollten nur jene Berechtigungen haben, die zur Verrichtung ihrer Arbeit notwendig sind.
Es muss außerdem beachtet werden, dass die Mitglieder der lokalen Administratorgruppe für ISA Server 2006 Standard Edition die gleichen Rechte haben wie ein ISA Server-Hauptadministrator. Mit Enterprise Edition haben die Mitglieder der lokalen Administratorgruppe für den Server mit der Konfigurationsspeicherserver-Rolle vollständige Kontrolle über die Enterprise-Konfiguration. Dies bedeutet, dass Sie die Mitgliedschaft der Domänenadministratoren sorgfältig überprüfen müssen (vorausgesetzt, dass Ihr ISA Server Mitglied einer Domäne ist), ebenso wie jede andere Gruppe, die Mitglied der lokalen Administratorgruppe für ISA Server ist.

Alan Maddison ist ein auf Microsoft-Technologien spezialisierter Senior Consultant bei Strategic Business Systems, einer Tochtergesellschaft von Brocade.


ISA Server
Verbessern der TS-Gatewaysicherheit mit ISA Server 2006
Dr. Thomas W. Shinder und Yuri Diogenes
Auf einen Blick:
  • Zwei Szenarios für die Verwendung von TS-Gateway mit ISA Server
  • ISA Server 2006-Konfiguration
  • Testen und Überwachen

Inhalt
Über den Umkreis hinaus
Erstes Szenario
Konfigurieren von ISA Server 2006
Testen und Überwachen des Clientzugriffs
Überwachung über ISA Server
Zweites Szenario
Was geschieht mit dem Client?
Schlussbemerkung
Im Anschluss an den Erfolg von Outlook Anywhere in Exchange Server 2007 bietet Windows Server 2008 nun die Möglichkeit, auf sichere und kontrollierte Weise von überall auf Ihren Desktop zuzugreifen.
Der neue Terminaldienste-Gatewayserver (TS-Gateway) unter Windows Server® 2008 bietet die Flexibilität von Windows®-Terminalserverdiensten sowie die Möglichkeit, eine Verbindung zu einem Terminalserver von überall über eine HTTP-Verbindung herzustellen. Dieser Dienst verwendet RDP (Remotedesktopprotokoll) über HTTPS (SSL), um die Sicherheit zu erhöhen, während eine einzelne Clientschnittstelle für den Zugriff auf Terminaldienste-Ressourcen bereitgestellt wird.
Dieser neue TS-Gatewaydienst bietet bedeutende Vorteile für diejenigen, die auf ihre Computer von einem Remotestandort aus zugreifen müssen:
  • Es ist nicht erforderlich, eine VPN-Sitzung (Virtuelles Privates Netzwerk) einzurichten, bevor eine Verbindung zu internen Ressourcen über RDP hergestellt wird.
  • Verbesserte Sicherheit wird mithilfe von Netzwerkzugriffsschutz (Network Access Protection, NAP) und Windows-Sicherheitsintegritätsüberprüfungen zur Kontrolle von RDP-Verbindungen gewährleistet.
  • Der TCP-Port 3389 für eingehenden Datenverkehr muss nicht geöffnet werden, um ein sichereres Webpublishing über Firewalls zu ermöglichen.
Sie können Microsoft® Internet Security and Acceleration (ISA) Server 2006 verwenden, um die Sicherheit des TS-Gatewaydiensts bei externem Zugriff auf interne Ressourcen zu verbessern. Sie können ein SSL-zu-SSL-Bridgingszenario einrichten, in dem ISA Server 2006 Anforderungen empfängt und sie unter Verwendung von HTTPS an den internen TS-Gatewaydienst weiterleitet. Beim Bridging der Anforderung entschlüsselt die ISA-Firewall die SSL-Kommunikation und führt eine Prüfung der Anwendungsschicht durch.
Wenn der HTTP-Protokolldatenstrom die Prüfung besteht, wird die Kommunikation wieder verschlüsselt und an den Terminaldiensteproxy weitergeleitet. Wenn der Protokolldatenstrom die Prüfung nicht besteht, wird die Verbindung getrennt.

Über den Umkreis hinaus
Microsoft hat ziemlich viel Arbeit in die Sicherheit investiert, und Windows Server 2008 ist bislang die sicherste und stabilste Version von Windows. Das Unternehmen befasst sich auch damit, wie Benutzer die Produkte implementieren und ob sie bewährten Methoden folgen, um ihre Umgebungen zu schützen. Bewährte Methoden erfordern ausführliche Maßnahmen, die Schutz an mehreren Zugriffspunkten bzw. auf mehreren Ebenen bietet. Die für unsere Diskussion wichtigen Schichten sind Richtlinien, Verfahren und Erkennung; Umkreis; internes Netzwerk sowie Host.
Wenn Sie externen Benutzern ermöglichen, auf eine interne Ressource über ISA Server zuzugreifen, müssen Sie die Grenzen jedes beteiligten Produkts verstehen. ISA Server 2006 und TS-Gateway stellen die Sicherheit in der Umkreisschicht bereit, aber für interne Ressourcen benötigen Sie Richtlinien, die bei Bedarf den Zugriff zulassen oder verweigern. Sie können dies mithilfe der Netzwerkrichtlinien- und Zugriffsdienste (Network Policy and Access Services, NPAS) durch Bearbeiten der Schicht für Richtlinien, Verfahren und Erkennung erreichen. Der Zugriff auf interne Ressourcen (Laufwerk, Zwischenablage, Drucker usw.) wird von den Ressourcenautorisierungsrichtlinien für Terminaldienste definiert, die die interne Netzwerkschicht betreffen.
In diesem Artikel untersuchen wir zuerst, wie das Terminaldienstegateway über ISA Server 2006 veröffentlicht werden kann. Dann erweitern wir das ISA Server 2006-Veröffentlichungsszenario, um Integritätserzwingung mithilfe von NAP einzufügen. Mithilfe von NAP können Clientintegritätsrichtlinien erstellt werden, mit denen der Zugriff auf Hostebene besser kontrolliert werden kann.

Erstes Szenario
Unser Ziel besteht darin zu veranschaulichen, wie TS-Gateway über ISA Server 2006 veröffentlicht werden kann. In Abbildung 1 werden Computer und Datenfluss bei der Verbindung zusammengefasst. In diesem Szenario implementieren wir die NPS-Rolle (Network Policy Server, Netzwerkrichtlinienserver) auf TS-Gateway selbst. Wir werden dies jedoch im zweiten Szenario ändern, in dem wir einen zentralen NPS-Server verwenden. Folgen Sie der nachstehenden Abfolge, um zu verstehen, wie die Kommunikation zwischen den Komponenten der TS-Gateway-Veröffentlichungslösung funktioniert:
Abbildung 1 Veröffentlichen von TS-Gateway über ISA Server 2006 (zum Vergrößern auf das Bild klicken)
  1. Der externe RDP-Benutzer initiiert die Verbindung. Die erste Aufgabe des Client ist es, den externen Namen von TS-Gateway aufzulösen (in diesem Fall „tsg.contoso.com“). Das externe DNS löst diesen Namen auf, der auf die externe IP-Adresse von ISA Server zeigt.
  2. Ein SSL-Tunnel wird zwischen dem RDP-Client und der externen Schnittstelle von ISA Server eingerichtet. ISA Server besitzt eine Webveröffentlichungsregel am TCP-Port 443, die ein Zertifikat verwendet, das für tsg.contoso.com ausgestellt ist.
  3. Nach dem Evaluieren der Regel und dem Prüfen, ob der Datenverkehr zugelassen ist, sendet ISA Server dem internen DNS-Server (befindet sich auf dem Domänencontroller) eine DNS-Abfrage, um den Namen des Servers aufzulösen, der in der Webveröffentlichungsregel angegeben ist.
  4. ISA Server öffnet dann einen SSL-Tunnel zu TS-Gateway und übergibt diesem die Authentifizierungsanforderung.
  5. Der TS-Gatewayserver überprüft die Anmeldeinformationen des Benutzers und die Berechtigung des Benutzers für die Einrichtung der Verbindung.
  6. Wenn bestätigt wird, das der Benutzer berechtigt ist, die Verbindung einzurichten, erhält der TS-Gatewaydienst die Anforderungen am TCP-Port 443 und leitet die RDP-Pakete über TCP-Port 3389 (standardmäßig) an den internen Terminalserver weiter, wo sich die Anwendung (wie z. B. eine CRM-Anwendung) befindet.
Ab diesem Zeitpunkt werden sämtliche Pakete, die über ISA Server vom RDP-Client an den TS-Gatewaydienst gesendet werden, zum internen Terminalserver und umgekehrt weitergeleitet.
In diesem Kontext muss erwähnt werden, dass RDP über HTTPS im Hintergrund nichts anderes als RDP/RPC/HTTPS ist. Der RDP-Client kapselt die RDP-Kommunikation in einen RPC-Header, der anschließend mit einem HTTP-Header gekapselt wird, der mithilfe von SSL (oder Transportebenensicherheit, Transport Level Security, TLS) gesichert wird. Alle Komponenten, die Sie für eine RPC-über-HTTPS-Lösung benötigen, müssen vorhanden sein. Deshalb wird der RPC-über-HTTP-Proxy automatisch installiert, wenn Sie den TS-Gatewayrollendienst installieren. Um mehr über die Funktionsweise dieses Protokolls zu erfahren, empfehlen wir, dass Sie „Testen von RPC-über-HTTP durch ISA Server 2006 Teil 1; Protokolle, Authentifizierung und Verarbeitung“ lesen, das im ISA Server-Teamblog (unter blogs.technet.com/isablog) verfügbar ist.
Die Implementierung macht Windows Server 2008 mit installiertem Terminaldienstegateway erforderlich, und das Feature ist vom RPC-über-HTTP-Proxy abhängig. Damit das RPC-über-HTTP-Proxyfeature funktioniert, muss Internetinformationsdienste (IIS) 7.0 installiert sein und ausgeführt werden. Sie benötigen auch Netzwerkrichtlinien- und Zugriffsdienste, aber wenn Sie es bevorzugen, können Sie TS-Gateway so konfigurieren, dass der NPS-Server – früher Internetauthentifizierungsdienste (Internet Authentication Services, IAS) genannt – verwendet wird, um Speicher, Verwaltung und Überprüfung von Terminaldienste-Verbindungsautorisierungsrichtlinien (Terminal Services Connection Authorization Policies, TS CAPs) zu zentralisieren. Abschließend müssen Sie ein SSL-Zertifikat für den TS-Gatewayserver beziehen, wenn Sie noch keines haben. Es ist sehr wichtig, dass ISA Server 2006 der Zertifizierungsstelle (Certification Authority, CA) vertraut, die das Zertifikat ausstellt. Stellen Sie deshalb sicher, dass das Zertifikat in den Speicher vertrauenswürdiger Stammzertifizierungsstellen importiert wird.
Active Directory®-Domänendienste ist nur erforderlich, wenn Sie eine TS-Gatewayautorisierungsrichtlinie konfigurieren, die es erfordert, dass Benutzer Mitglied einer Active Directory-Sicherheitsgruppe sind, um eine Verbindung zum TS-Gatewayserver herstellen zu können. Für dieses bestimmte Setup werden wir Active Directory auf einem Computer mit Windows Server 2003 SP2 verwenden.
Nach Abschluss der Installation des Terminaldienste-Gatewaydiensts erscheint der Bildschirm in Abbildung 2, in dem angezeigt wird, dass die Komponenten installiert wurden. Um das TS-Gateway zu verbinden, muss auf den Clients eines der folgenden Betriebssysteme ausgeführt werden: Windows Vista®; Windows XP mit SP2 und RDP 6.0 oder höher; Windows Server 2008; Windows Server 2003 mit SP1 oder höher und RDP 6.0 oder höher. Weitere Informationen zur Konfiguration von TS-Gateway finden Sie in der Schritt-für-Schritt-Anleitung für Windows Server 2008 TS-Gatewayserver unter go.microsoft.com/fwlink/?LinkId=122251. Im Folgenden wird erläutert, wie ISA Server 2006 konfiguriert wird.
Abbildung 2 TS-Gateway-Installationszusammenfassung (zum Vergrößern auf das Bild klicken)

Konfigurieren von ISA Server 2006
Der erste Schritt besteht darin, einen Weblistener zu erstellen, der die Anforderungen des externen RDP-Clients bearbeitet. Unser Weblistener hat die folgenden Parameter:
  • Authentifizierung: Standard
  • Authentifizierungsprüfung: Windows (Active Directory)
  • Verbindungen: SSL-Verbindungen (HTTPS) aktivieren an Port 443
  • Zertifikate: Zertifikat ausgestellt für tsg.contoso.com
  • Netzwerke: Extern
Als Nächstes erstellen Sie die Webveröffentlichungsregel. Aus Sicht von ISA Server 2006 verwendet der RDP-Client das gleiche Protokoll wie Outlook® Anywhere. Wählen Sie daher den Exchange Server 2007-Assistenten aus. Führen Sie einfach die folgenden Schritte aus:
  1. Klicken Sie mit der rechten Maustaste auf die Firewallrichtlinie, wählen Sie „Neu“ aus, und klicken Sie anschließend auf „Veröffentlichungsregel für den Exchange-Webclientzugriff“.
  2. Geben Sie auf der Begrüßungsseite zum Erstellen einer neuen Webveröffentlichungsregel den Namen der Regel ein, und klicken Sie auf „Weiter“.
  3. Wählen Sie auf der Seite „Regelaktion auswählen“ die Option „Zulassen“ aus, und klicken Sie auf „Weiter“.
  4. Wählen Sie auf der Seite „Neue Exchange-Veröffentlichungsregel“ die Exchange-Version aus, in unserem Fall Exchange Server 2007. Wählen Sie „Outlook Anywhere (RPC/HTTP(s))“ aus, und klicken Sie auf „Weiter“. (Hinweis: Wählen Sie nicht die Option „Zusätzliche Ordner auf Exchange Server for Outlook 2007-Clients veröffentlichen“ aus.)
  5. Wählen Sie auf der Seite „Veröffentlichungstyp“ die Option „Einzelne Website oder Lastenausgleich veröffentlichen“ aus, und klicken Sie auf „Weiter“.
  6. Wählen Sie auf der Seite „Sicherheit der Serververbindung“ die Option „SSL verwenden, um eine Verbindung zum veröffentlichten Webserver oder zur Serverfarm herzustellen“ aus, und klicken Sie dann auf „Weiter“.
  7. Geben Sie auf der Seite „Interne Veröffentlichungsdetails“ im Feld „Interner Sitename“ den Namen des TS-Gatewayservers ein. Aktivieren Sie das Kontrollkästchen „Name oder IP-Adresse eines Computers verwenden, um eine Verbindung zum veröffentlichten Server herzustellen“, und geben Sie anschließend im Feld „Computername oder IP-Adresse“ den Servernamen ein. Wenn Sie den Namen des TS-Gatewayservers nicht kennen, klicken Sie auf „Durchsuchen“, um zu seinem Speicherort zu navigieren. Beachten Sie, dass der Name, den Sie auf dieser Seite verwenden, dem allgemeinen oder Antragstellernamen auf dem Websitezertifikat entsprechen muss, das an die TS-Gatewaywebsite gebunden ist.
  8. Wählen Sie auf der Seite „Details des öffentlichen Namens“ in der Dropdownliste „Anforderungen annehmen“ die Option „Diesen Domänennamen (unten eingeben)“ aus, und geben Sie anschließend im Feld „Öffentlicher Name“ den öffentlichen Namen ein, der dem Namen des Zertifikats entspricht, das für diese URL ausgestellt wurde (in unserem Fall lautete der Name „tsg.contoso.com“). Klicken Sie dann auf „Weiter“.
  9. Klicken Sie auf der Seite „Weblistener auswählen“ auf die Dropdownliste, und wählen Sie den Weblistener aus, der zuvor erstellt wurde. Klicken Sie anschließend auf „Weiter“.
Wählen Sie auf der Seite „Authentifizierungsdelegierung“ die Option „Keine Delegierung, aber direkte Authentifizierung des Clients“ aus, und klicken Sie auf „Weiter“.
Stellen Sie auf der Seite „Benutzersatz“ sicher, dass die Standardoption („Alle Benutzer“) ausgewählt ist, klicken Sie auf „Weiter“ und dann auf „Fertigstellen“, um die Einstellungen anzuwenden.
Wenn Sie auf die Regel doppelklicken und zur Registerkarte „Pfad“ gehen, werden Sie sehen, dass nur der Pfad „/rpc/*“ verfügbar ist. Dies ist auf die Verwendung des Exchange Server 2007 Outlook Anywhere-Assistenten zurückzuführen.

Testen und Überwachen des Clientzugriffs
Wie bereits erwähnt, benötigen Sie den RDP 6.0-Client oder höher, um eine Verbindung zum TS-Gateway herstellen zu können. Um die RDP-Clientanwendung zu konfigurieren, starten Sie diese, und geben Sie den Namen des Terminalservers, zu dem Sie eine Verbindung herstellen möchten, in das Feld „Computer“ ein. Klicken Sie auf die Schaltfläche „Optionen“, anschließend auf die Registerkarte „Erweitert“ und dann auf „Einstellungen“. Geben Sie den externen Namen des TS-Gatewayservers ein (siehe Abbildung 3). In unserem Beispiel ist dies der Name auf dem Zertifikat, das an den Weblistener gebunden ist, der von unserer Webveröffentlichungsregel verwendet wird, um eingehende Anforderungen zu akzeptieren. Beachten Sie, dass in diesem Beispiel die Windows NT® LAN Manager-Authentifizierung verwendet wird. Klicken Sie abschließend auf „OK“ und auf „Verbinden“. Sie erhalten eine Authentifizierungsaufforderung. Geben Sie die Anmeldeinformationen eines Benutzers mit Zugriff auf den Terminalserver ein, und klicken Sie auf „OK“.
Abbildung 3 Konfigurieren des RDP-Clients (zum Vergrößern auf das Bild klicken)
Beachten Sie, dass im RDP 6.0-Client (für Windows XP und Windows Server 2003) der Bildschirm in Abbildung 3 angezeigt wird. Sie werden zweimal zur Authentifizierung aufgefordert: Die erste Authentifizierung ist für den TS-Gatewaycomputer, die zweite für den Terminalserver, auf den Sie zugreifen möchten. Das ist ein wichtiger Punkt, denn während Sie u. U. denken, dass dies aufgrund der ISA Server-Konfiguration geschieht, wird die Authentifizierung in Wirklichkeit nicht von ISA Server gehandhabt, da die Webveröffentlichungsregel auf „Alle Benutzer“ angewendet wird, wodurch anonyme Verbindungen über die ISA-Firewall ermöglicht werden.
Der RDP-Client, der in Windows Server 2008 enthalten ist, verfügt über die Option „Eigene Terminaldienstegateway-Anmeldeinformationen für Remotecomputer verwenden“, wie in Abbildung 4 dargestellt. Wenn diese Option ausgewählt ist, müssen Sie Ihre Anmeldeinformationen nicht zweimal eingeben, wodurch die Benutzerfunktionalität verbessert wird. Diese Option des einmaligen Anmeldens ist auch unter Windows Vista nach Anwenden von SP1 verfügbar.
Abbildung 4 Der Windows Server 2008-RDP-Client (zum Vergrößern auf das Bild klicken)
Sie können die Verbindung über den TS-Gateway-Manager mithilfe der Überwachungsoption überwachen. Der TS-Gatewaydienst stellt auch Details bereit, wenn ein nicht autorisierter Benutzer versucht, eine Verbindung zum Server herzustellen. In Abbildung 5 zeigt die Ereignisanzeige einen Verbindungsversuch eines Benutzers, der keine Berechtigung zur Verbindung über TS-Gateway besitzt.
Abbildung 5 Protokolliertes Ereignis im TS-Gatewaydienst (zum Vergrößern auf das Bild klicken)
Für dieses Ereignis wird die interne IP-Adresse von ISA Server 2006 protokolliert, da die Option „Ursprung der Anforderungen scheint der ISA Server-Computer zu sein“ in der Webveröffentlichungsregel aktiviert ist. Wenn Sie die ursprüngliche Client-IP-Adresse registrieren möchten, müssen Sie die ISA Server 2006-Webveröffentlichungsregel ändern und die Option „Ursprung der Anforderungen scheint der ursprüngliche Client zu sein“ auf der Registerkarte „Nach“ auswählen.

Überwachung über ISA Server
Mit den neuen Features des ISA Server 2006 Supportability Pack ist es möglich, jede Verbindung zum internen Netzwerk detailliert anzuzeigen und nachzuvollziehen. In Abbildung 6 ist eine Verbindung hervorgehoben, und in der Zeile „Anforderung:“ wird das Verb „RPC_IN_DATA“ dargestellt, das die URL für den RPC-über-HTTP-Proxy anzeigt.
Abbildung 6 ISA Server 2006-Protokollierung mithilfe des Unterstützbarkeitsupdates (zum Vergrößern auf das Bild klicken)
Wenn Sie sich die Protokollierung weiter anschauen, sollten Sie auch das andere RPC-über-HTTP-Verb „RPC_OUT_DATA“ sehen können. Vergewissern Sie sich, welche HTTP-Methode verwendet wird (RPC_IN_DATA oder RPC_OUT_DATA für RDP/HTTP), denn wenn Sie die HTTP-Filterung so konfiguriert haben, dass diese Methoden blockiert werden, wird der Datenverkehr auf ISA Server blockiert. Wenn Sie Ihre Umgebung sperren möchten, können Sie die RDP/HTTP-Webveröffentlichungsregel so konfigurieren, dass nur diese zwei Methoden zugelassen werden. Weitere Informationen zu HTTP-Methoden, die in der Regel zum Veröffentlichen verwendet werden, finden Sie im Artikel „HTTP-Filterung in ISA Server 2004“ unter technet.microsoft.com/library/cc302627.

Zweites Szenario
Für dieses Szenario verwendet TS-Gateway eine zentrale NPS-Richtlinie, die sich auf einem anderen Server befindet. Wir werden eine NAP-Richtlinie für die Clients durchsetzen und eine Verbindung von einem Remotestandort aus über das TS-Gateway herstellen. Die gleichen Komponenten, die in Szenario 1 verwendet wurden, werden auch hier verwendet. Es wird nur der NPS-Server hinzugefügt. Aufgrund der NAP-Erzwingung werden jedoch mehr Komponenten auf der Clientseite verwendet, wie in Abbildung 7 dargestellt.
Abbildung 7 Hauptkomponenten der Topologie von Szenario 2 (zum Vergrößern auf das Bild klicken)
Hier werden die einzelnen Komponenten erläutert. Auf dem Windows Vista-Client besteht ein Systemintegritäts-Agent (System Health Agent, SHA) aus den clientseitigen Komponenten, die verantwortlich für das Überwachen und Melden des Systemintegritätszustands des Clients sind. Windows Vista wird mit dem Windows-SHA geliefert. Es gibt aber weitere Softwarehersteller, die an der Erstellung eines eigenen SHA arbeiten.
Der NAP-Agent auf dem Client ist für das Einrichten der Kommunikation mit dem NAP-Erzwingungsserver verantwortlich, wenn der Client versucht, auf das Netzwerk zuzugreifen. Der NAP-Agent sendet das SoH (Statement of Health) des Clients an diesen Server.
Auf dem TS-Gateway ist die TS-Ressourcenautorisierungsrichtlinie (TS-RAP) die Komponente, die Ihnen ermöglicht zu bestimmen, welche Computer verfügbar sein werden, um eingehende RDP-Anforderungen zu empfangen. Die TS-RAP bestimmt auch, welche Benutzer RDP-Verbindungen zu bestimmten Servern einrichten können.
Der zentrale NPS ist für das Kontrollieren der Bedingungen, Einschränkungen und Einstellungen, mit denen der Zugriff auf die internen Computer geregelt wird, verantwortlich. Systemintegritätsprüfungen (System Health Validators, SHVs) auf dem zentralen NPS sind dafür verantwortlich zu evaluieren, ob das vom Client gesendete SoH konform mit der Richtlinieneinstellung des Administrators ist.
Ändern wir jetzt das TS-Gateway so, dass es auf einen zentralen NPS-Server zeigt. Öffnen Sie die TS-Gateway-Managerkonsole, klicken Sie mit der rechten Maustaste auf den Namen des Servers, und wählen Sie die Option „Eigenschaften“ aus. Klicken Sie im Eigenschaftenfenster des Servers auf die Registerkarte „TS-CAP-Speicher“, und wählen Sie den zentralen NPS-Server aus. Geben Sie als Nächstes den Namen oder die IP-Adresse des NPS-Servers ein, und klicken Sie auf die Schaltfläche „Hinzufügen“. Das Fenster „Gemeinsamer geheimer Schlüssel“ wird geöffnet. Geben Sie den Schlüssel ein, und klicken Sie auf „OK“. Klicken Sie erneut auf „OK“, um das Fenster zu schließen. Sie müssen sich diesen Schlüssel merken, da er auf dem NPS-Server verwendet wird.
Sollte der NPS bereits auf einem anderen Server installiert sein, befolgen Sie die folgenden Schritte:
  1. Öffnen Sie die Netzwerkrichtlinienserver-Konsole, und klicken Sie im linken Fensterbereich auf „NPS (Lokal)“.
  2. Klicken Sie im rechten Fensterbereich auf „NAP konfigurieren“. Die Seite „Auswählen der Netzwerkverbindungsmethode zur Verwendung mit NAP“ wird angezeigt.
  3. Wählen Sie unter „Netzwerkverbindungsmethode“ die Option für Terminaldienstegateway (TS-Gateway) aus dem Dropdownfeld aus, und klicken Sie auf „Weiter“.
  4. Klicken Sie auf der Seite „NAP-Erzwingungsserver angeben, auf denen TS-Gateway ausgeführt wird“ auf die Schaltfläche „Hinzufügen“.
  5. Geben Sie in das Fenster „Neues TS-Gateway“ den Anzeigenamen und die IP-Adresse des TS-Gatewayservers ein. Geben Sie dann im unteren Bereich des Fensters den gemeinsamen geheimen Schlüssel ein, der auch für die Konfiguration von TS-Gatewayserver verwendet wird. Klicken Sie anschließend auf „OK“.
  6. Auf der Seite „Clientgeräteumleitung und Authentifizierungsmethoden konfigurieren“ können Sie festlegen, welche Geräte umgeleitet werden, und die zugelassene Authentifizierungsmethode angeben (Kennwort oder Smartcard). Behalten Sie für dieses Beispiel die Standardoptionen bei, und klicken Sie auf „Weiter“.
  7. Fügen Sie auf der Seite „Benutzer- und Computergruppen konfigurieren“ die Benutzergruppe hinzu, die die Verbindung einrichten darf. Klicken Sie für dieses Beispiel unter „Benutzergruppen: (erforderlich)“ auf die Schaltfläche „Benutzer hinzufügen“, und wählen Sie die Domänenadministratoren aus. Klicken Sie auf „OK“ und dann auf „Weiter“.
  8. Sie werden feststellen, dass auf der Seite „NAP-Integritätsrichtlinie definieren“ der Standard-SHV bereits ausgewählt ist. Außerdem wird im unteren Bereich dieser Seite der Zugriff für nicht richtlinienkonforme Computer verweigert. Behalten Sie die ausgewählten Standardeinstellungen bei, und klicken Sie auf „Weiter“.
  9. Überprüfen Sie auf der abschließenden Seite „NAP-Erzwingungsrichtlinien und RADIUS-Clientkonfiguration“ die Optionen, die bereits zuvor ausgewählt wurden. Sie können auch auf den Hyperlink „Konfigurationsdetails“ klicken, wodurch eine HTML-Seite mit einer Zusammenfassung Ihrer Auswahl geöffnet wird. Wenn Sie fertig sind, klicken Sie auf „Fertigstellen“.
Mithilfe dieses Assistenten werden die Einstellungen für eine Reihe wichtiger Richtlinien (Verbindungsanforderungsrichtlinien, Netzwerkrichtlinien und Integritätsrichtlinien) konfiguriert, wodurch die notwendige Arbeit zum Konfigurieren von NAP für dieses Szenario bedeutend verringert wird.

Was geschieht mit dem Client?
Was müssen Sie nun, da der Server eingerichtet und konfiguriert ist, in Bezug auf den Client beachten?
Um die NAP-Erzwingungsrichtlinie zu nutzen, muss der Client entweder unter Windows Server 2008 oder Windows Vista ausgeführt werden. Bei Windows XP muss SP3 installiert sein, in dem der NAP-Client enthalten ist.
Außer den Betriebssystemanforderungen gibt es einige relevante Dienste und Einstellungen, die auf der Clientseite aktiviert sein müssen. Dies beinhaltet folgende Aufgaben:
  • Hinzufügen des TS-Gatewayservernamens zur Liste vertrauenswürdiger Server auf dem Client.
  • Starten des NAP-Agent-Diensts und Setzen des Dienststarttyps auf „Automatisch“.
  • Aktivieren des TS-Gateway-Quarantäneerzwingungsclients.
Zur Vereinfachung der Bereitstellung dieser Lösung hat Microsoft den Terminaldienste-NAP-Clientkonfigurationsbefehl erstellt (Tsgqecclientconfig.cmd), der unter go.microsoft.com/fwlink/?LinkId=122267 heruntergeladen werden kann. Nach dem Ausführen des Befehls wird der Client als NAP-Erzwingungsclient für TS-Gateway konfiguriert. Beachten Sie, dass der Befehl mit erhöhten Berechtigungen ausgeführt werden muss.
In diesem Artikel sollte nicht nur das neue TS-Gatewayfeature beschrieben und erläutert werden, das unter Windows Server 2008 verfügbar ist, und veranschaulicht werden, wie es über ISA Server 2006 veröffentlicht werden kann, sondern es sollte Ihnen auch eine Gesamtperspektive auf die Sicherheitsvorteile gegeben werden, die die Kombination beider Produkte für Ihr Unternehmen bieten kann.
In der heutigen Welt stellt die Möglichkeit der Verbindungsherstellung von jedem Standort aus eine wesentliche Voraussetzung für so ziemlich jedes erfolgreiche Unternehmen dar. Natürlich darf diese Konnektivität nicht zu Lasten einer verbesserten Benutzererfahrung gehen. Noch wichtiger ist, dass all dies in einer Weise durchgeführt wird, die die Sicherheit gewährleistet.

Dr. Thomas W. Shinder ist MCSE-zertifiziert und ein MVP für ISA Server. Er arbeitet seit 1996 als Schulungsleiter, Autor und Berater im Bereich Technologie. Dr. Shinder ist Autor von sechs Büchern zur die ISA-Firewall. Er ist auch eine innovative Führungsperson und Hauptakteur von ISAserver.org, der größten Community von ISA-Firewalladministratoren und eifrigen Anhängern im Internet.

Yuri Diogenes, MCSE+S, MCTS, MCITP, Security+, Network+ und CCNP, ist der Security Support Engineer im Microsoft ISA Server/IAG-Team. Er schreibt Artikel für die Microsoft TechNet-Bibliothek und den ISA Server-Teamblog. Yuri Diogenes arbeitet seit 1993 mit Microsoft-Technologie. Bevor er sich Microsoft anschloss, hat er als Microsoft-Schulungsleiter, Supportanalyst und Berater gearbeitet.


IIS 7.0
Die 10 wichtigsten Leistungsverbesserungen in IIS 7.0
Mike Volodarsky
Auf einen Blick:
  • Minimieren des Speicherbedarfs Ihrer Anwendungen
  • Senken der Bandbreitenkosten
  • Verwenden verbesserter Zwischenspeicherfunktionen

Inhalt
Schlankere Webserver
Schlankes Betriebssystem als Basis
Spezialisierte Anwendungstopologien
Verbesserte Anwendungsunterstützung
Erhöhen der Anwendungsdichte
Bandbreitenverringerung durch Komprimierung
Einschränken der Medienbitrate
Ausgabezwischenspeicherung
Konvertieren von ISAPI-Code in IIS 7.0-Module
Servererweiterbarkeit
Zusammenfassung
Wenn ich mich mit Vertretern von Unternehmen treffe, die die Einführung von IIS 7.0 planen, werde ich unweigerlich gefragt, ob durch die Umstellung auf IIS 7.0 die Leistung von Servern oder Anwendungen verbessert wird. Die
Antwort lautet in der Regel: „Ja, aber Sie sollten nicht überrascht sein, wenn sich bei der erstmaligen Migration Ihrer Anwendungen nach IIS 7.0 keine Leistungsverbesserungen einstellen.“
Um dies nachvollziehen zu können, müssen Sie das Wesen der aktuellen Version verstehen. IIS 6.0 war eine Entwicklungsversion, die auf das Erreichen von drei Zielen ausgerichtet war: stärkere Sicherheit, höhere Zuverlässigkeit und bessere Leistung. IIS 7.0 ist hingegen eine Plattformversion. Ihr Zweck bestand darin, den qualitativ hochwertigen grundlegenden Webserverkern der Vorgängerversion in eine modulare und erweiterbare Plattform mit Unterstützung für wichtige moderne Bereitstellungs- und Verwaltungsszenarios umzuwandeln.
Viele der architektonischen Änderungen und neuen Features können sich tatsächlich negativ auf die Leistung des Webservers auswirken – beispielsweise aufgrund der Tatsache, dass eine der wichtigsten Änderungen darin bestand, dass die streng optimierten Webserver-Codepfade auf eigenständige Module aufgeteilt wurden, die keine spezielle Behandlung vom Webserver erfahren. Dank einer umfangreichen Leistungsoptimierung durch das IIS-Team bietet IIS 7.0 jedoch dieselbe Leistung wie die Vorgängerversion und übertrifft diese sogar in bestimmten Bereichen. Da ich persönlich am Webserverkern und der integrierten Pipeline mitgearbeitet habe, kann ich Ihnen sagen, dass hierzu ein großer Einfallsreichtum beim Entwurf und viel harte Arbeit bei der Implementierung des Produkts erforderlich waren.
Dennoch bietet IIS 7.0 ein viel höheres Potenzial für die Erzielung wesentlicher Leistungsverbesserungen und die Senkung leistungsbezogener Kosten für Ihre Serverfarm als jede andere IIS-Version in der Vergangenheit.
Sie erzielen diese Vorteile nicht unbedingt durch die einfache Migration nach IIS 7.0, einige Umgebungen werden jedoch von ihnen profitieren. So wurde beispielsweise bei Microsoft.com die CPU-Effizienz um 10 Prozent gesteigert. (Die vollständige Analyse finden Sie im Microsoft.com-Teamblog unter go.microsoft.com/fwlink/?LinkId=122497.) Möglicherweise stellen Sie auch deutliche Verbesserungen in bestimmten Bereichen fest, einschließlich SSL- (Secure Sockets Layer) und Windows®-Authentifizierung (beide werden jetzt im Kernel durchgeführt) und besserer vertikaler Skalierbarkeit auf Mehrkern- und Mehrprozessorcomputern.
Dennoch beruht die wahre Leistungsstärke von IIS 7.0 nicht auf inkrementellen Leistungsverbesserungen bei vorhandenen Features, sondern auf neuen Funktionen, die Sie aktiv nutzen sollten. Diese Funktionen basieren häufig auf der Flexibilität und Erweiterbarkeit der Plattform und auf neuen Leistungsfeatures. In diesem Artikel werden 10 der wichtigsten Quellen für die Leistungsverbesserungen beschrieben, die Sie durch den Umstieg auf IIS 7.0 erzielen können.

Schlankere Webserver
Die Möglichkeit zur Bereitstellung schlanker IIS 7.0-Server beruht auf der modularen Architektur des Servers. Praktisch alle Webserverfeatures werden als modulare Komponenten implementiert, die einzeln hinzugefügt oder entfernt werden können. Daher können Sie alle Serverfeatures entfernen, die für den Betrieb einer Anwendung nicht erforderlich sind, was zu bemerkenswerten Vorteilen wie einer wesentlich kleineren Angriffsfläche, geringerem Speicherbedarf und besserer Leistung führt.
Der vollständige Featuresatz für IIS 7.0-Webserver umfasst 44 Module, einschließlich systemeigenen IIS-Modulen und ASP.NET-Modulen, die Dienste für die integrierte Pipeline bereitstellen. Diese Module bieten Dienste wie Authentifizierung (Windows-Authentifizierungs- und Digestauthentifizierungsmodule), Anwendungsframework-Unterstützung (FastCGI-Modul), Anwendungsdienste (Sitzungszustandsmodul), Sicherheit (Anforderungsfilterungsmodul) und Leistung (Ausgabecachemodul). Dennoch kann ein minimaler Webserver, der einfach statische Inhalte bereitstellen muss, mit nur 2 Modulen funktionieren!
Der Mehraufwand durch unnötige Module kann recht groß sein – z. B. im Fall von Modulen zur Anforderungsprotokollierung und zur Ablaufverfolgung für Anforderungsfehler. Das Entfernen solcher Module in Umgebungen, in denen sie nicht benötigt werden, kann zu einem höheren Gesamtdurchsatz und schnelleren Antworten führen, die die TTFB- (Time To First Byte, Zeit bis zum ersten Byte) und TTLB-Metriken (Time To Last Byte, Zeit bis zum letzten Byte) für die Serverarbeitsauslastung verringern.
Abbildung 1 zeigt die Ergebnisse eines einfachen Durchsatztests für eine HTML-Datei (statische Arbeitsauslastung) und eine ASP.NET-Seite namens „Hello World“ (ASP.NET-Arbeitsauslastung) für die Konfiguration mit dem vollständigen Featuresatz, dem Standardfeaturesatz für diese Arbeitsauslastung und dem für die Arbeitsauslastung absolut erforderlichen Mindestfeaturesatz. Obwohl die meisten nicht unbedingt erforderlichen Features bei der vollständigen Konfiguration bereits deaktiviert sind, führt ihre vollständige Entfernung in der Minimalkonfiguration zu einer beträchtlichen Durchsatzsteigerung für die statische Arbeitsauslastung und die ASP.NET-Arbeitsauslastung.
Abbildung 1 Durchsatzraten der statischen Arbeitsauslastung und der ASP.NET-Arbeitsauslastung bei drei verschiedenen Konfigurationen mit 100 gleichzeitigen Clients (zum Vergrößern auf das Bild klicken)
Darüber hinaus können sich Verbesserungen beim Speicherbedarf und eine höhere Websitedichte ergeben, insbesondere in gemeinsamen Hostingumgebungen oder in Fällen, in denen eine Vielzahl von Arbeitsprozessen verwendet wird. Dies wird in der Regel dadurch erreicht, dass in jedem Prozess weniger DLLs geladen werden und alle Speicherzuordnungen während der Modulinitialisierung und Anforderungsverarbeitung entfallen. Abbildung 2 zeigt die Speicherauslastung (private Bytes des IIS-Arbeitsprozesses) beim gleichen Durchsatztest. Obwohl die Verbesserungen bei diesem Beispiel weniger deutlich ausfallen, entsprechen die Steigerungen den Erwartungen, da der Aufwand bei ASP.NET-Anwendungsdomänen im Verhältnis höher als die durch die entfernten Module erzielten grundlegenden Einsparungen ist.
Abbildung 2 Speicherauslastung (private Bytes) der statischen und der ASP.NET-Arbeitsauslastung bei drei verschiedenen Konfigurationen mit 100 gleichzeitigen Clients (zum Vergrößern auf das Bild klicken)
IIS 7.0 bietet durch Modulvorbedingungen eine zusätzliche Kontrolle darüber, welche Module auf der Anwendungsebene aktiviert werden, sowie die Kontrolle über die Modulverwendung auf der Basis der Arbeitsauslastung. Obwohl dies eine erweiterte Konfiguration erfordert, können sich dadurch zusätzliche Vorteile in Multisiteumgebungen oder für Anwendungen ergeben, die mehrere unterschiedliche Arbeitsauslastungen unterstützen.
Ein Wort der Warnung: Es kann schwierig sein, die Funktionen zu ermitteln, die Sie benötigen. Sie müssen nicht nur die zur Unterstützung Ihres Anwendungsframeworks benötigte Mindestfunktionalität, sondern auch alle zusätzlichen Features berücksichtigen, auf die Ihre Anwendung möglicherweise indirekt zurückgreift. Ihre Anwendung kann beispielsweise auf bestimmte Authentifizierungsmethoden angewiesen sein oder auf einer Autorisierungssemantik basieren, die von verschiedenen IIS-Features bereitgestellt wird. In diesem Fall kann die Sicherheit Ihrer Anwendung durch das Entfernen dieser Features beeinträchtigt werden. Desgleichen kann Ihre Anwendung für funktionale oder leistungsbezogene Zwecke auf einige der Module angewiesen sein, in welchem Fall das Entfernen dieser Module zu fehlerhaftem Verhalten oder Leistungsverlusten führen kann.

Schlankes Betriebssystem als Basis
Windows Server® 2008 bietet ebenfalls auf der Betriebssystemebene eine Aufteilung in Komponenten, die Sie zur weiteren Verkleinerung der Oberfläche Ihres Webservers verwenden können. Server Core ist eine Minimalinstallation des Betriebssystems Windows Server 2008 und enthält einen Mindestsatz von zentralen Betriebssystem-Subsystemen. Server Core ist eine ideale Umgebung für schlanke IIS 7.0-Webserver.
Bei der Evaluierung von Server Core sollten Sie jedoch beachten, dass sich bestimmte Einschränkungen auf Ihre Anwendung auswirken können. Server Core bietet keine Unterstützung für Microsoft® .NET Framework, was bedeutet, dass ASP.NET, .NET-Erweiterbarkeit für IIS und IIS-Manager nicht verfügbar sind. Zudem sind für lokale Verwaltungsaufgaben Befehlszeilentools erforderlich, da Microsoft Management Console (MMC) nicht vorhanden ist. Wenn Sie die Aufteilung in Komponenten bei IIS bereits in vollem Umfang nutzen, werden Sie aus der Leistungsperspektive möglicherweise beim Speicherbedarf oder Durchsatz Ihrer unter Server Core ausgeführten Anwendung keinen Unterschied gegenüber einer vollständigen Windows Server-Implementierung feststellen. Dies beruht darauf, dass von IIS und Ihrer Anwendung auf beiden Plattformen die gleiche Arbeit durchgeführt wird. Es gibt jedoch einen Aspekt, bei dem Sie einen Unterschied bemerken werden: beim Gesamtspeicherbedarf des Servers, sowohl im Hinblick auf den Speicherplatz als auch auf die Speicherauslastung.
Als Beispiel wird in Abbildung 3 der Unterschied beim Speicherbedarf nach der Durchführung des Tests für die statische Arbeitsauslastung bei einer vollständigen Windows Server 2008-Konfiguration und unter Server Core gezeigt. Während der IIS-Speicherbedarf in beiden Fällen praktisch identisch ist, ermöglicht es der niedrigere Betriebssystem-Gesamtspeicherbedarf von Server Core, die Arbeitsauslastung mit wesentlich weniger Speicher zu unterstützen. Der geringere Speicherbedarf kann es Ihnen tatsächlich ermöglichen, Ihre Anwendung auf weniger leistungsfähiger Hardware bereitzustellen und sich dabei auf den Verarbeitungsbedarf der Anwendung und nicht der Betriebssystemumgebung zu konzentrieren. Natürlich ist Server Core dadurch eine hervorragende Wahl für virtualisierte Umgebungen.
Abbildung 3 Speicherbedarf der vollständigen Windows Server 2008-Konfiguration im Vergleich zu Server Core nach der Durchführung des Tests für die statische Arbeitsauslastung (zum Vergrößern auf das Bild klicken)

Spezialisierte Anwendungstopologien
Bei der Optimierung im Hinblick auf die Arbeitsauslastung von Anwendungen können Sie die Arbeitsauslastung in verschiedene Teile aufteilen. Anstatt Ihre Anwendung beispielsweise in einer Farm von 30 identischen Webservern auszuführen, können Sie sie auf 10 Webservern, 5 Anwendungsservern und 3 Proxyservern ausführen, die die Zwischenspeicherung und Komprimierung übernehmen.
Diese Spezialisierung funktioniert aus mehreren Gründen. Zunächst einmal hängt die Leistung vieler Anwendungen stark von verschiedenen freigegebenen Ressourcen wie z. B. dem Arbeitsspeicher ab, die von mehreren Teilen der Anwendung gleichzeitig beansprucht werden können. Der Wettbewerb um diese Ressourcen kann zu Engpässen führen, die verhindern, dass die einzelnen Server in Bezug auf andere Ressourcen vollständig genutzt werden. Durch die Trennung von Teilen der Anwendung erhalten diese Teile problemlos Zugriff auf die andernfalls gleichzeitig beanspruchten Ressourcen, was in Bezug auf den gleichen Satz von Hardwareressourcen zu höherer Effizienz führt.
Darüber hinaus kann es die Spezialisierung der Anwendung ermöglichen, eine größere Cachelokalität zu erreichen und dadurch die Leistung zu verbessern. Hierzu gehören untergeordnete Caches wie der Übersetzungslookaside-Puffer (Translation Lookaside Buffer, TLB) für virtuellen Arbeitsspeicher, der Dateisystemcache und andere Betriebssystem- und Anwendungscaches. Eine weitere Quelle für Lokalitätsgewinne ist die CPU. Wenn die Anzahl der parallel stattfindenden Aktivitäten durch Konzentration auf nur einen bestimmten Teil der Anwendung verringert wird, kann die Anwendung die Zahl der Kontextwechsel reduzieren und die von der CPU durchgeführte Arbeit maximieren.
Des Weiteren ermöglicht die Spezialisierung die arbeitsauslastungsspezifische Optimierung, wodurch jeder Teil der Anwendung effizienter arbeitet. Viele dieser Optimierungen sind aufgrund der widersprüchlichen Anforderungen von verschiedenen Teilen der Anwendung nicht möglich, wenn die gesamte Anwendung auf demselben Server unterstützt wird.
Dies kommt bei der Threadingkonfiguration von IIS und ASP.NET häufig vor, die sich wesentlich auf die Parallelität auswirkt und die Speicherauslastung, die Wartezeit und den Durchsatz für viele Anwendungen indirekt beeinflusst. Die statische Dateiarbeitsauslastung von IIS ist hochgradig asynchron und erfordert ein hohes Limit für gleichzeitige Anforderungen, kommt jedoch mit sehr wenigen verfügbaren Threads aus. Dagegen sind viele der ASP.NET-Features synchron, führen zu einer langen Blockierung und erfordern eine hohe Threadzahl, während andere ASP.NET-Features wiederum ein niedrigeres Parallelitätslimit erfordern, um die Auswirkungen auf den Arbeitsspeicher zu verringern. Durch die Trennung der statischen Arbeitsauslastung und die Aufteilung von Teilen der Pipeline für die Anforderungsverarbeitung auf einen separaten Prozess oder Server können Sie die Parallelität jeder einzelnen Arbeitsauslastung optimieren.
Die Spezialisierung kann zudem eine bessere allgemeine Skalierbarkeit ermöglichen, indem es der Anwendung gestattet wird, separate Arbeitsauslastungen oder Anwendungsteile unabhängig voneinander zu skalieren. Dadurch kann die Anwendungstopologie erhöhte Kapazität und Redundanz genau dort bereitstellen, wo dies am dringendsten erforderlich ist, und Sie müssen nicht auf die gesamte Anwendung die gleiche Vorlage anwenden. Bei diesem Modell kann es sich bei den spezialisierten Ressourcen um physische Server, virtuelle Server oder sogar um Anwendungspools auf demselben Computer handeln.
Bei der Evaluierung der potenziellen Vorteile der Spezialisierung in Ihrer Anwendungstopologie sollten Sie zuerst die verarbeitungs- oder ressourcenintensiven Engpässe in Ihrer Anwendung aufspüren. Diese Bereiche sollten die ersten Kandidaten für die Spezialisierung sein, weil sie ein beträchtliches Optimierungspotenzial bieten können, wenn sie isoliert werden, und weil sie die größte horizontale Skalierung erfordern. Beurteilen Sie dann, ob durch ihre Isolierung die übrigen Teile der Anwendung die Ressourcen effektiver nutzen können. Abschließend müssen Sie den Mehraufwand bewerten, der durch die Konnektivitätsmethode verursacht wird, die zur Verbindung der isolierten Anwendungskomponenten benötigt wird.

Verbesserte Anwendungsunterstützung
IIS 7.0 bietet erweiterte Unterstützung für Anwendungsframeworks durch FastCGI, ein offenes Protokoll, das von vielen Open-Source-Anwendungsframeworks unterstützt wird, die andernfalls die stabile und hochleistungsfähige systemeigene Integration in IIS möglicherweise nicht unterstützen. Im Gegensatz zum Protokoll für die gemeinsame Gatewayschnittstelle (Common Gateway Interface, CGI), das schon seit langer Zeit von IIS unterstützt wird, bietet FastCGI eine viel bessere Leistung auf der Windows-Plattform. Dies ist in erster Linie auf die wiederverwendbare FastCGI-Prozessarchitektur zurückzuführen, durch die der hohe Prozesserstellungsaufwand auf der Ebene einzelner Anforderungen entfällt, sodass Clients permanente Keep-Alive-Verbindungen nutzen können.
Wenn Sie in IIS Anwendungsframeworks mithilfe von CGI oder einer anderen Methode unterstützen, erreichen Sie durch den Umstieg auf das FastCGI-Protokoll möglicherweise eine bessere Leistung (und in einigen Fällen eine höhere Stabilität).
Das erste Anwendungsframework, bei dem diese Unterstützung genutzt wird, ist PHP. Tatsächlich hat das IIS-Team direkt mit Zend Technologies zusammengearbeitet, um sicherzustellen, dass die FastCGI-Implementierung von IIS in Verbindung mit PHP gut funktioniert und Leistungsverbesserungen im PHP-Framework unter Windows ermöglicht. (Weitere Informationen zu dem Projekt finden Sie im folgenden Beitrag in meinem Blog unter go.microsoft.com/fwlink/?LinkId=122509.) Wenn Sie über eine Mischung aus verschiedenen Webservertechnologien verfügen, zu denen unter IIS ausgeführte ASP- oder ASP.NET-Anwendungen und PHP oder andere mit FastCGI kompatible Anwendungsframeworks gehören, bei denen andere Technologien verwendet werden, können Sie diese Anwendungen möglicherweise auf der IIS 7.0-Plattform konsolidieren.
Durch die Umstellung von PHP und anderen Anwendungsframeworks auf IIS 7.0 und FastCGI können Sie verschiedene Features von IIS 7.0 nutzen, einschließlich der integrierten ASP.NET-Pipeline. Dies ist eine äußerst praktische Option für die Erweiterung von Anwendungsframeworks mit ASP.NET-Diensten, ohne sie zu ASP.NET zu konvertieren. Gleichzeitig können Anwendungen dadurch unterschiedliche Frameworks für die Zusammenarbeit verwenden. Ein Beispiel dafür, wie mit dieser Methode die Funktionalität vorhandener Anwendungen erweitert und die Leistung verbessert werden kann, ohne Code zu ändern, finden Sie in meinem MSDN® Magazin-Artikel „Erweitern Sie Ihre Anwendungen mit der integrierten ASP.NET-Pipeline“ (unter msdn.microsoft.com/magazine/cc135973.aspx verfügbar).

Erhöhen der Anwendungsdichte
IIS 7.0 umfasst zahlreiche Verbesserungen, die darauf abzielen, die Dichte der Anwendungen zu erhöhen, die auf einem einzelnen Server gehostet werden können. Diese Verbesserungen sind Bestandteil vieler Features, die IIS 7.0 für die Verbesserung der Qualität des gemeinsamen Hostings bietet. Hierzu zählen beispielsweise optimierte Websitebereitstellung und bessere Anwendungsisolation.
Aus der Leistungsperspektive konzentrieren sich die Verbesserungen hauptsächlich auf zwei Aspekte der Erhöhung der Anwendungsdichte – die Erhöhung der Anzahl der Anwendungen, die auf einem IIS 7.0-Server bereitgestellt werden können, und die Erhöhung der Anzahl der Anwendungen, die jeweils aktiv sein können.
Beachten Sie, dass IIS 7.0 es ermöglicht, auf jedem Server mehr Anwendungen als je zuvor bereitzustellen – bei einigen internen Tests waren bis zu 100.000 Websites auf einem einzelnen Server möglich. Dies beruht auf der Möglichkeit, eine Vielzahl von Websites und Anwendungen zu erstellen und zu konfigurieren.
Ein Wort der Warnung: Um eine schnelle Bereitstellung zu erreichen, müssen Sie auf die neuen Konfigurations-APIs umstellen, da dies mit älteren Konfigurations-APIs nicht möglich ist. Zudem bieten nicht alle Konfigurations-APIs von IIS die gleichen Leistungsmerkmale. Daher ist zur Gewährleistung einer hohen Leistung eine sorgfältige Auswahl erforderlich. Entscheiden Sie sich im Zweifelsfall für Konfigurationsoptionen, bei denen die neuen IIS-Konfigurationsobjekte direkt genutzt werden, einschließlich des Microsoft.Web.Administration-Namespace, des Befehlszeilentools „AppCmd.exe“ und der COM-Konfigurationsobjekte von IIS, auf die über Skripts, .NET oder C++-Code zugegriffen wird.
Wie viele Websites bereitgestellt werden können und wie viele aktiv sein können, ist in der IIS-Architektur, bei der permanente Anwendungen und Arbeitsprozesse zur Anforderungsverarbeitung verwendet werden, ein sehr wichtiger Unterschied. Bei diesem Modell beanspruchen aktive Anwendungen mehr Ressourcen auf dem Server, bieten jedoch auch durch Zwischenspeicherung und entfallende Initialisierungskosten eine bessere anhaltende Leistung.
Da jede aktive Anwendung eine bestimmte Speichermenge und einen separaten Arbeitsprozess erfordert (wenn das empfohlene Anwendungsisolationsmodell verwendet wird), hängt die Anzahl der aktiven Anwendungen stark vom Speicherbedarf der Anwendungen ab. Während eine einzelne Anwendung, die nur statische Inhalte bereitstellt, möglicherweise nur 3 MB für ihren Arbeitsprozess benötigt (und sogar den gleichen Arbeitsprozess mit anderen Anwendungen mit statischem Inhalt gemeinsam verwenden kann), können einige dynamische Anwendungen selbst bei geringer Auslastung 100 MB RAM oder mehr erfordern. Daher ist bei der Definition der maximal möglichen Dichte der Speicheraufwand des IIS-Arbeitsprozesses im Vergleich zum Speicherbedarf der Anwendung unbedeutend.
In einem typischen gemeinsamen Hostingszenario ist häufig eine so genannte 80/20-Verteilung anzutreffen, bei der 80 Prozent der Anforderungen an 20 Prozent der Websites gesendet werden. Dies führt dazu, dass jeweils nur ein kleiner Prozentsatz der Websites aktiv ist. Um eine höhere Anzahl von aktiven Websites zu ermöglichen, bietet IIS 7.0 die aktive Lebensdauerverwaltung. Diese kann Ihnen dabei helfen, von inaktiven Anwendungen belegten Arbeitsspeicher freizugeben, damit mehr aktive Anwendungen gehostet werden können.
Mit IIS 7.0 wird ein neuer Algorithmus namens „dynamischer Leerlauf“ eingeführt, durch den die Leerlauftimeouts von Arbeitsprozessen auf der Basis des auf dem Server verfügbaren Speichers proaktiv angepasst werden. Wenn die Speicherkapazität nahezu erschöpft ist, werden im Leerlauf befindliche Anwendungen schneller entfernt, wodurch mehr aktive Anwendungen gehostet werden können. Ist jedoch genügend Arbeitsspeicher verfügbar, können die Timeouts groß bleiben, um eine bessere Leistung zu ermöglichen und den Anwendungszustand beizubehalten. Der dynamische Leerlauf ermöglicht es nicht nur, dass mehr Anwendungen aktiv sind, sondern er trägt auch zur Vermeidung von Bedingungen mit unzureichendem Arbeitsspeicher bei, die aufgrund von Überlastung zu einem starken Leistungsabfall führen.
Um das Hosting zahlreicher aktiver Anwendungen zu ermöglichen, sollten Sie zudem ein 64-Bit-Betriebssystem verwenden, da das Betriebssystem dann mehr als 4 GB Speicher adressieren kann. Darüber hinaus können Sie die IIS-Arbeitsprozesse für die Ausführung im 32-Bit-Modus (SysWoW64) konfigurieren, in dem sie selbst weniger Speicher belegen, und gleichzeitig dem Betriebssystem ermöglichen, mehr Speicher zu adressieren, als es in einer 32-Bit-Umgebung möglich ist.

Bandbreitenverringerung durch Komprimierung
Es ist nicht überraschend, dass die Bandbreitenkosten zu den höchsten Kosten beim Betrieb eines Datencenters mit Internetverbindung gehören. Darüber hinaus ist die zur Bereitstellung der angeforderten Inhalte erforderliche Bandbreite ein wesentlicher Faktor für die wahrgenommene Reaktionsfähigkeit Ihrer Anwendung.
Eine der effektivsten Möglichkeiten zur Verringerung der Bandbreite, die zur Bereitstellung der Antworten von Anwendungen benötigt wird, besteht in der Verwendung der HTTP-Komprimierung. Dadurch kann die Größe der Antwort wesentlich verringert werden, häufig um den Faktor 10, wenn diese Methode auf leicht komprimierbare Textinhalte wie HTML angewendet wird. Das Beste daran ist, dass nahezu alle Desktopbrowser die HTTP-Komprimierung unterstützen und die Dekomprimierungskosten auf Desktophardware im Vergleich zu den auf dem Senden von weniger Daten beruhenden Wartezeiteinsparungen gering sind. Da die Komprimierung auf der im HTTP 1.1-Protokoll definierten Aushandlung der Inhaltscodierung basiert, kann sie unbedenklich für Clients aktiviert werden, die die Komprimierung nicht unterstützen – diese Clients empfangen einfach eine nicht komprimierte Version der Inhalte.
IIS 7.0 bietet die beiden Komprimierungsfeatures, die mit der Vorgängerversion eingeführt wurden: statische Komprimierung und dynamische Komprimierung. Bei der statischen Komprimierung werden statische Inhalte vorkomprimiert und auf einem Datenträger gespeichert, wodurch bei zukünftigen Anforderungen komprimierte Inhalte ohne Komprimierungsaufwand direkt bereitgestellt werden können. Bei der dynamischen Komprimierung wird die Antwort in Echtzeit komprimiert. Sie ermöglicht daher die Komprimierung für Antworten, die von Anwendungen generiert werden. Die dynamische Komprimierung kann von jedem Anwendungsframework unter IIS 7.0 genutzt werden – einschließlich ASP, ASP.NET und PHP.
Trotz des verbreiteten Mythos ist die dynamische Komprimierung in der Regel nicht mit einem unerschwinglich hohen CPU-Aufwand verbunden. Tatsächlich verursacht die dynamische Komprimierung oft weniger als 5 Prozent der gesamten CPU-Auslastung auf einem ausgelasteten Server. Die dynamische Komprimierung kann relativ großzügig eingesetzt werden, um maximale Bandbreiteneinsparungen für alle Arbeitsauslastungen von Anwendungen zu ermöglichen.
Sie können den Komprimierungsaufwand weiter optimieren, indem Sie die Komprimierungsstärke für das Erreichen des gewünschten Verhältnisses zwischen Komprimierung und CPU-Aufwand konfigurieren. Das ist jedoch noch nicht alles. Sie können Ihre Anwendung auch so konfigurieren, dass die Zwischenspeicherung der komprimierten Inhalte ermöglicht wird, wodurch der Komprimierungsaufwand für Cachetreffer entfällt, da bereits komprimierte Inhalte bereitgestellt werden. Beachten Sie, dass sowohl der ASP.NET- als auch der IIS-Ausgabecache mit der optionalen Funktion zum Zwischenspeichern komprimierter Inhalte für Clients, die dies unterstützen, sowie zum Verarbeiten von Anforderungen von Clients, die unkomprimierte Inhalte erfordern, aktualisiert wurden.

Einschränken der Medienbitrate
Aufgrund der zunehmenden Anzahl von Websites, auf denen Medieninhalte angeboten werden, schießen die Bandbreitenkosten für viele Unternehmen in die Höhe. Schlimmer ist noch, dass ein großer Prozentsatz der Medienbandbreite verschwendet wird, weil die an den Client gesendeten Medieninhalte nie wirklich verwendet werden. Warum?
Denken Sie an das letzte Mal, als Sie sich ein Onlinevideo angeschaut oder beim Surfen eine Videowerbung gesehen haben. Haben Sie sich das Video wirklich bis zum Ende angesehen? Häufig schauen sich Benutzer, die Videowebsites durchsuchen, nur einen Teil eines Videos an, bevor sie zum nächsten Video wechseln oder die Seite verlassen. Ein Webserver, bei dem zur Bereitstellung des Videos progressives Herunterladen verwendet wird, sendet jedoch in der Regel mehr Daten, als für diese Wiedergabezeit von wenigen Sekunden benötigt werden. Die meisten dieser Daten werden nie verwendet.
Wenn Ihre Videos im Durchschnitt nur 5 Sekunden lang angezeigt werden, in diesen 5 Sekunden jedoch Videodaten für 30 Sekunden bereitgestellt (gepuffert) werden, verschwenden Sie möglicherweise mehr als 80 Prozent Ihrer Bandbreite!
Vor einem Jahr entwickelte ich zur Lösung dieses Problems für einen Kunden, der eine Betaversion von IIS 7.0 einführte, ein Modul zur Bandbreiteneinschränkung, das die Videobitrate automatisch erkannte und sicherstellte, dass der Server das Video mit ungefähr derselben Rate an den Client sendete. Das IIS-Medienteam übernahm dieses Modul, das als „Bit Rate Throttling Module“ bezeichnet wird (siehe Abbildung 4) und im Download Center von iis.net (iis.net/downloads/?tabid=34&g=6&i=1640) verfügbar ist. Weitere Informationen dazu finden Sie im Blog von Scott Guthrie (unter go.microsoft.com/fwlink/?LinkId=122514 verfügbar).
Abbildung 4 Die Bitrateneinschränkung minimiert die Bandbreitenverwendung (zum Vergrößern auf das Bild klicken)
Das Bit Rate Throttling Module erkennt automatisch die Codierungsrate der gängigsten Videotypen. Sie können steuern, wie viele Daten Sie vorab an den Client senden möchten, um anfängliche Pufferungsverzögerungen zu beseitigen (Schnellstart), und mit welchem Prozentsatz der codierten Rate Sie die Inhalte bereitstellen möchten. Darüber hinaus können Sie viele weitere Optionen wie die maximale Bandbreite und die maximale Anzahl gleichzeitiger Verbindungen konfigurieren und das Modul durch ein Programm steuern.

Ausgabezwischenspeicherung
Im Allgemeinen ist die Zwischenspeicherung die beste Möglichkeit zur Verbesserung der Leistung von Anwendungen, die wiederholte Aufgaben ausführen. Im Gegensatz zu anwendungsspezifischen Leistungsverbesserungen, die häufig zahlreiche Anstrengungen erfordern und auf die Verringerung des Verarbeitungsaufwands einer Anwendung abzielen, entfällt durch die Zwischenspeicherung der Mehraufwand für wiederholte Anforderungen derselben Inhalte.
Vor IIS 7.0 boten sowohl IIS als auch ASP.NET Zwischenspeicherfunktionen in Form des IIS-Kernelcache und des ASP.NET-Ausgabecache. Der IIS-Kernelcache zeichnete sich durch maximale Leistung aus, war aber hauptsächlich auf statische Inhalte beschränkt. Der ASP.NET-Ausgabecache war eine weitaus umfassendere Lösung für die Zwischenspeicherung dynamischer Inhalte, wenn auch mit geringerer Leistung und weniger effizienter Speicherverwaltung. Der neue Ausgabecache in IIS 7.0 schließt die Lücke zwischen dem IIS-Kernelcache und dem ASP.NET-Ausgabecache.
Der Ausgabecache von IIS 7.0 ermöglicht das Zwischenspeichern dynamischer Inhalte aus beliebigen Anwendungen, einschließlich ASP, ASP.NET, PHP und jedes anderen mit IIS 7.0 kompatiblen Anwendungsframeworks. Durch die Bereitstellung grundlegender Unterstützung für die Variabilität und den Ablauf von Inhalten ermöglicht dieses neue Feature die Implementierung der Zwischenspeicherung für Inhalte, die vom IIS-Kernelcache nicht zwischengespeichert werden können. Gleichzeitig kann der Kernelcache nach wie vor für Inhalte verwendet werden, die den Einschränkungen entsprechen.
Darüber hinaus bietet der Ausgabecache von IIS 7.0 eine leistungsfähigere Alternative zum ASP.NET-Ausgabecache für ASP.NET-Inhalte, für die die erweiterten Zwischenspeicherfeatures (wie Cacheabhängigkeiten oder -invalidierung) nicht benötigt werden, die nur im ASP.NET-Ausgabecache verfügbar sind.
Im Hinblick auf die Ausgabezwischenspeicherung liegen die Herausforderungen normalerweise in der Definition angemessener Richtlinien für den Ablauf, die Invalidierung und die Variabilität von Inhalten, die das effiziente Zwischenspeichern von Antworten unter Aufrechterhaltung der erforderlichen Gültigkeit und Aktualität des Cache ermöglichen. In vielen Fällen können Sie dies einfach durch Konfiguration der richtigen Zwischenspeicherungsregeln erreichen, obwohl einige Situationen komplexere Richtlinien erfordern, die von Laufzeitinformationen abhängen. Der Ausgabecache von IIS 7.0 bietet hierfür programmgesteuerte APIs, die zur Gewährleistung des erforderlichen Zwischenspeicherungsverhaltens verwendet werden können. Dadurch wird das Leistungspotenzial der Zwischenspeicherung für Inhalte erschlossen, die andernfalls nicht von der Zwischenspeicherung profitieren würden. Darüber hinaus ermöglicht die integrierte ASP.NET-Pipeline die Verwendung des ASP.NET-Ausgabecache für andere Inhalte als ASP.NET-Inhalte.
Die Bereitstellung der Ausgabezwischenspeicherung für dynamische Inhalte kann schwierig sein und erfordert möglicherweise eine mehrstufige Strategie für die Nutzung der Effizienz und Flexibilität der verschiedenen Zwischenspeicherfeatures auf der IIS 7.0-Plattform. Hierzu gehört häufig das Beschreiben mehrerer Parameter, die sich auf die Antwort auswirken, und das Definieren von Ablauf- und Invalidierungsstrategien zur Aufrechterhaltung der Aktualität des Cache und die anschließende Feststellung, welcher Cache die erforderliche Semantik unterstützt.
Diese Komplexität lohnt sich jedoch fast immer. Durch Implementieren des Ausgabecache von IIS 7.0 können Sie beim Gesamtdurchsatz Ihrer Anwendung Verbesserungen um mehrere Größenordnungen und eine entsprechende Auslastungsverringerung bei Ihren Komponenten auf der Datenbank- und Geschäftsebene erreichen.

Konvertieren von ISAPI-Code in IIS 7.0-Module
Mit IIS 7.0 wird eine neue Server-API eingeführt, auf der alle IIS 7.0-Module basieren. Sie ersetzt die älteren ISAPI-Filter- und ISAPI-Erweiterungs-APIs, die in früheren Versionen von IIS verwendet wurden. Für neue Module, die frühere Versionen nicht unterstützen müssen, sind die neuen APIs einfacher zu verwenden, helfen bei der Erstellung von zuverlässigerem serverseitigem Code und sind viel leistungsfähiger.
IIS 7.0 bietet jedoch eine Option, mit der vorhandene ISAPI-Filter und -Erweiterungen durch eine über optionale IIS 7.0-Module implementierte Kompatibilitätsschicht unterstützt werden können. Dadurch können vorhandene ISAPI-Komponenten unter IIS 7.0 funktionieren, ohne dass sie neu geschrieben werden müssen.
Obwohl die Verwendung vorhandener ISAPI-Investitionen die Migration nach IIS 7.0 erleichtert, sollten Sie ausdrücklich in Betracht ziehen, den ISAPI-Legacycode auf die neuen IIS 7.0-APIs zu portieren. Dadurch erübrigt sich der Aufwand für die ISAPI-Kompatibilitätsschicht, und es ergeben sich Leistungsvorteile, die für ISAPI-Komponenten nicht verfügbar sind. Je nach der von der ISAPI-Komponente übernommenen Arbeit können diese Leistungsvorteile recht bedeutend sein. Die Modul-API von IIS 7.0 bietet beispielsweise integrierte Unterstützung für das Zwischenspeichern von Konfigurationsmetadaten und beliebigen anderen Daten, die mit Websites, Anwendungen und URLs verknüpft sind. Dadurch können die internen Vorgänge der Komponente deutlich beschleunigt werden.
Darüber hinaus ermöglicht die Modul-API von IIS Modulen die asynchrone Durchführung zeitintensiver Vorgänge wie das Empfangen von Anforderungseinheitsdaten oder das Senden der Antwort. Die asynchrone Durchführung dieser Aufgaben ermöglicht dem Server die Skalierung für eine sehr große Zahl gleichzeitiger Clients (im Zehntausenderbereich), statt bei mehreren tausend oder einigen hundert gleichzeitigen Clients aufgrund von Beschränkungen hinsichtlich der Anzahl von Anforderungsthreads das Maximum zu erreichen. Die asynchrone Verarbeitung kann auch die Auswirkung der Verarbeitung auf andere Anforderungen und Aktivitäten in der Anwendung beseitigen, die Speicherauslastung verringern und eine viel bessere CPU-Auslastung ermöglichen.
Zusätzlich zu den spezifischen leistungswirksamen Mustern bietet die systemeigene API Entwicklern größere Flexibilität für Anforderungsverarbeitungsaufgaben. Dadurch können Sie den Entwurf der Serverkomponente verbessern und wiederum eine hohe Effizienz ermöglichen. So können beispielsweise bestimmte Filterungsaufgaben, die zuvor ISAPI-Platzhaltererweiterungen und die Ausführung untergeordneter Anforderungen erforderten, jetzt während der ursprünglichen Anforderung in einem Modul durchgeführt werden. Dabei kann auch die Zwischenspeicherung im IIS-Kernelcache für die Antwort aktiviert werden.
Dies kann die Erstellung von Prototypen und einiges Experimentieren erfordern, um den optimalen Entwurf zu ermitteln, der die Vorteile der Migration maximiert. Aufgrund der grundlegenden Architekturunterschiede zwischen ISAPI und der Modul-API von IIS 7.0 ist die direkte Portierung nicht unbedingt der richtige Weg. Die gute Nachricht ist, dass die Modul-API von IIS 7.0 einfacher zu verwenden ist als ISAPI, wodurch sich die Migration weniger schwierig gestaltet.

Servererweiterbarkeit
IIS 7.0 bietet End-to-End-Erweiterbarkeit. Hierfür sind umfangreiche Vorkenntnisse hinsichtlich des Serverbetriebs erforderlich, gleichzeitig eröffnet sich jedoch auch ein enormes Potenzial für anwendungsspezifische Leistungsgewinne. Wenn Sie über ein gewisses Verständnis der Serverarchitektur und der Anforderungsverarbeitung verfügen, können Sie diese Erweiterbarkeit zum Entwurf benutzerdefinierter Leistungslösungen nutzen, die auf Ihre Anwendung, Arbeitsauslastung und Hardwareanforderungen zugeschnitten sind.
Hierzu können beliebige der integrierten IIS 7.0-Features durch benutzerdefinierte Implementierungen ersetzt werden. Obwohl die Features von IIS 7.0 einer umfangreichen Optimierung und Leistungsprüfung unterzogen wurden, wurden sie natürlich nicht für jeden möglichen Verwendungszweck optimiert. Daher können Sie die Leistung bestimmter Module möglicherweise durch die Integration von Optimierungen für Ihre spezifische Arbeitsauslastung verbessern. Sie könnten sich beispielsweise dafür entscheiden, das Verzeichnisauflistungsmodul wieder zu implementieren, um Verzeichnislisten im Arbeitsspeicher zwischenzuspeichern, statt Dateisystem-APIs zur Aufzählung von Dateien zu verwenden.
Alternativ kann die Erweiterbarkeit zur Erstellung neuer Leistungsfeatures verwendet werden. Zu den integrierten Beispielen für solche Features gehören der Ausgabecache, die Komprimierungsmodule und mehrere andere interne Caches.
Für die Feststellung, ob ein benutzerdefiniertes Leistungsfeature benötigt wird, müssen Sie die Leistungsmerkmale Ihrer Anwendung und ihre Arbeitsauslastung sowie die Engpässe kennen, die Sie beseitigen müssen. IIS 7.0 bietet umfangreiche Diagnoseunterstützung für die Leistungsanalyse, mit der sich die Anforderungen und der mögliche Entwurf der Features, die Sie benötigen, leichter erkennen lassen können.

Zusammenfassung
Obwohl es sich bei IIS 7.0 in erster Linie um eine funktionale Version handelt, bietet diese bemerkenswerte Leistungsverbesserungen, die auf ihrer modularen Architektur, Konfigurierbarkeit und neuen Leistungsfeatures beruhen. Diese Verbesserungen können durch Serverkonsolidierung und geringere Bandbreitenkosten den Weg für bedeutende geschäftliche Einsparungen ebnen sowie eine verbesserte Benutzerfreundlichkeit bieten.
Zur wirksamen Nutzung vieler dieser Verbesserungen ist es häufig notwendig, eine eingehende Analyse Ihrer aktuellen Anwendungsplattform durchzuführen und sich gründliche Kenntnisse in Bezug auf die Architektur von IIS 7.0 anzueignen. Weitere Informationen zur Architektur und zu den in diesem Artikel erwähnten Features von IIS 7.0 finden Sie unter „iis.net“. Zudem führe ich unter mvolo.com einen Blog zu Verfahren, bei denen IIS 7.0 proaktiv zur Verbesserung der Anwendungsleistung und zur Senkung der Betriebskosten genutzt wird.
Mike Volodarsky war früher Programmmanager im IIS-Team von Microsoft. In den letzten fünf Jahren arbeitete er an Entwurf und Entwicklung zentraler Features für ASP.NET 2.0 und IIS 7.0. Jetzt entwickelt er fortschrittliche Webservertechnologien für hochleistungsfähige Webfarmen mit IIS 7.0 und Windows Server 2008. Mike ist der Hauptautor des Buchs IIS 7.0 Resource Kit und verfasst Beiträge für das MSDN Magazin und seinen IIS 7.0-Blog unter mvolo.com.


Mobilität
Machen Sie Ihre Branchenanwendungen mobil
Matt Fontaine
Auf einen Blick:
  • Geschäftsanforderungen für mobile Branchenanwendungen
  • Stabile Plattform für die Entwicklung und Bereitstellung von mobilen Branchenanwendungen
  • Drahtlose Sicherheit, Verwaltung und Bereitstellung

Inhalt
Aktivieren und Verwalten von Fernmitarbeitern
Sicherheit und Geräteverwaltung
Interoperabilität
IT und Benutzerproduktivität
Entwicklung und Verteilung
Fazit
Neben traditionellen Voice-, Messaging- und Produktivitätsfunktionen wünschen viele Unternehmen heute, dass Fernmitarbeiter Zugriff auf dieselben Branchensysteme haben, die sie im
Büro verwenden, und zwar mithilfe von mobilen Branchenanwendungen. Solche Systeme umfassen in der Regel Anwendungen für Customer Relationship Management (CRM), Unternehmensressourcenplanung (ERP), Business Intelligence (BI), Finanzen und Buchhaltung. Mobile Branchenfunktionen ermöglichen mobilen Benutzern den Zugriff auf und die Verwendung von umfassenden Geschäftsanwendungen sowie die Interaktion mit Daten von unterwegs in Echtzeit, wodurch die Zeit bis zum Verkauf verringert, die Kundenzufriedenheit verbessert und die Geschäftsproduktivität erhöht wird. Dies sind einige typische Geschäftsszenarios:
  • Verkaufsteams können Microsoft Dynamics™ CRM Mobile verwenden, um Kundendaten überall anzuzeigen und zu aktualisieren. Eine andere mobile Branchenanwendung könnte ihnen Zugriff auf Preis- und Bestandsdaten in Echtzeit ermöglichen. Zudem könnten Außendienstmitarbeiter spezielle Geräte zum Sammeln von Vertriebsdokumenten im Außendienst verwenden, angefangen beim Ausfüllen von Bestellungen bis hin zum Einholen von Unterschriften. Tatsächlich gibt es sogar Point-of-Sale-Anwendungen für Windows Mobile®-Geräte, die Barcodes scannen und Kreditkarten lesen und dann eine Verbindung zu Back-End-Branchendatensystemen zum Verarbeiten herstellen können.
  • Der Einsatz von Außendienstmitarbeitern kann mithilfe von ERP-Lösungen geplant werden, die das Personal basierend auf Terminen und Standort steuern. Außerdem kann der Standort von Außendienstmitarbeitern automatisch mithilfe GPS-aktivierter Windows Mobile-Geräte rückverfolgt werden. Außendienstmitarbeiter erhalten nur den ersten Auftrag des Tages. Nach Abschluss des Auftrags erhalten sie automatisch den nächsten (siehe Abbildung 1).
  • In Produktionsunternehmen können Windows Mobile-Geräte mit RFID-Scanfunktion (Radiofrequenz-Identifikation) zur Bestandsverwaltung in einem RFID-aktivierten Lager verwendet werden, um eine Datenbank sofort und drahtlos mit Informationen aufzufüllen. Zudem gibt es Windows Mobile-Geräte, die auf hohe Belastung ausgelegt oder für gefährliche Arbeitsumgebungen „eigensicher“ sind, um Daten zu liefern, wo sie gebraucht werden, während gleichzeitig wichtige Sicherheitsanforderungen erfüllt werden.
  • Mobile Führungskräfte, die an nur einem Tag – möglicherweise weit vom Büro entfernt – Kunden treffen, an Versammlungen und Presseveranstaltungen teilnehmen, können überall Finanzdaten, Spesenberichte oder Kundeninformationen abrufen.
Diese und viele andere Geschäftsszenarios sorgen dafür, dass fortschrittliche Unternehmen mobile Branchenanwendungen einführen. Dieser Artikel zeigt Ihnen, wie Windows Mobile und Mobile Device Manager zusammenarbeiten und IT-Experten ermutigen, die umfassenden mobilen Funktionen bereitzustellen, die heute zunehmend von Unternehmen gefordert werden.
Abbildung 1 Eine mobile Branchenanwendung, die einen abgeschlossenen Außendienstauftrag anzeigt

Aktivieren und Verwalten von Fernmitarbeitern
Windows Mobile hat sich als leistungsfähige Plattform für das Aktivieren von Fernmitarbeitern in verschiedenen Branchen bewährt, da die Zusammenarbeit mit vorhandenen Windows®-basierten IT-Beständen gut funktioniert. Mobiles Messaging und einheitliches Kommunikationssystem (Unified Communications, UC) werden dabei von Exchange Server und Office Communications Server bereitgestellt, und sowohl Benutzer als auch IT-Experten verfügen über eine vertraute Windows-Erfahrung, für die weniger Schulung erforderlich ist, um sie zu verwenden und zu verstehen.
Mit der Veröffentlichung von Mobile Device Manager ist Windows Mobile eine noch überzeugendere Wahlmöglichkeit für das Bereitstellen von mobilen Geräten in Geschäftsumgebungen geworden. Mobile Device Manager ermöglichen das drahtlose Bereitstellen, Verwalten und Sichern mobiler Geräte mithilfe von Active Directory® und der Gruppenrichtlinie, und zwar genau so, als handelte es sich bei den Geräten um vernetzte PCs oder Dateifreigaben. Richtlinien und Software können mittels Push automatisch auf Telefone übertragen werden, und Sicherheits-, Software- und Hardwarerichtlinien können sehr detailliert mit umfassenden Bestandsaufnahmefunktionen verwaltet werden.
Der Anstoß für diese Neuerungen ist die Vorstellung, dass mobile Geräte natürliche Erweiterungen von IT-Systemen sein sollten, statt getrennt für sich in einer eigenen Middlewareumgebung zu existieren. Für Unternehmen, die bei Windows Mobile-Geräten weit über Messaging, Kommunikation und grundlegende Produktivität hinaus wollen, ist es wesentlich, mobile Geräte zu vorrangigen Elementen des Netzwerks zu machen.
Was sollten Sie tun, wenn Sie in einem Unternehmen tätig sind, das über die Basisfunktionen hinausgehen möchte? Betrachten wir einmal, wie die Features von Windows Mobile und Mobile Device Manager dies ermöglichen, indem eine hervorragende Plattform für mobile Branchenanwendungen bereitgestellt wird.

Sicherheit und Geräteverwaltung
Dieselben Funktionen, die mobile Branchenanwendungen reizvoll machen (die Tatsache, dass sie überall und zu jeder Zeit Zugriff auf erfolgsentscheidende Informationen über Kunden, Finanzen, Bestand und so weiter bereitstellen), sind dafür verantwortlich, dass die Herausforderungen an die Sicherheit zunehmen. Benutzer geben diese Informationen auf kleinen Geräten über öffentliche Netzwerke an verschiedenen Standorten ein und greifen dort auf sie zu.
Viele Unternehmen ermöglichen bereits den mobilen Zugriff auf Branchenanwendungen sowie auf andere freigegebene Ressourcen und Tools im Intranet über Laptops mit VPN-Verbindungen. Mobile Device Manager erweitert diese Funktionalität auf Windows Mobile-Geräte mit mobilem VPN (siehe Abbildung 2). Der Mobile Device Manager-Gatewayserver ermöglicht einen Tunnel mit IPSec-Verschlüsselung zwischen Windows Mobile-Client und Netzwerk, wobei sicherer Zugriff auf Informationen hinter der Unternehmensfirewall über öffentliche Verbindungen wie das Internet oder drahtlose Paketdatennetzwerke bereitgestellt wird. Windows Mobile unterstützt mehrere Verschlüsselungsarten in dieser Einstellung.
Abbildung 2 Fortschrittliche Geräteverwaltung, Sicherheit und mobiles VPN mit Mobile Device Manager (zum Vergrößern auf das Bild klicken)

Interoperabilität
Verschlüsselungsrichtlinien können festgelegt und für Daten auf Geräten und Speicherkarten durchgesetzt werden. Mitarbeiter, die mobile Branchenanwendungen verwenden, könnten vertrauliche Informationen auf ihre mobilen Geräte herunterladen, die viel leichter als andere Netzwerkgeräte verlegt werden könnten. Glücklicherweise kann eine Remotegerätebereinigung auf jedem Gerät mit einer Datenverbindung durchgeführt werden, bei dem mobiles VPN aktiviert ist (siehe Abbildung 3). Wenn beispielsweise ein Pharmavertreter Kundendateien vom CRM-System seines Unternehmens auf sein mobiles Gerät herunterlädt und das Gerät versehentlich in einem Taxi vergisst, könnte dies ernste Folgen haben.
Abbildung 3 Wenn ein mobiles Gerät verloren geht oder gestohlen wird, können die Informationen, die sich darauf befinden, von einem Remotestandort aus entfernt werden. (zum Vergrößern auf das Bild klicken)
Mobile Device Manager ist für die Behandlung solcher Probleme ausgelegt. Tatsächlich kann Mobile Device Manager fast jeden Aspekt von Windows Mobile-Gerätefunktionen und Benutzerrichtlinien verwalten, angefangen beim Deaktivieren bestimmter Hardwarefeatures über das Steuern der Anwendungen, die installiert werden können, bis zum Begrenzen des Zugriffs auf bestimmte Netzwerkressourcen. Dies alles kann mithilfe einer Lösung und drahtlos erfolgen. Wenn Benutzer über mobile Branchenfunktionen verfügen, werden diese Features noch wichtiger. Möglicherweise möchten Sie Benutzer beispielsweise daran hindern, Bluetooth-Vernetzung zu verwenden, wodurch das Herunterladen von Daten auf unkontrollierte Geräte ermöglicht werden könnte. Vielleicht wünschen Sie, dass nur bestimmte Benutzer in der Lage sein sollen, den mobilen Buchhaltungssoftwareclient zu installieren. In diesem Fall könnten Sie Einstellungen vornehmen, die das Hochladen und automatische Installieren nur den Benutzern ermöglichen, die ihn benötigen.
Zusätzliche Ressourcen
  • Microsoft System Center Mobile Device Manager 2008
  • Einführung in Microsoft System Center Mobile Device Manager 2008
  • Microsoft System Center Mobile Device Manager 2008: Ein technisches Whitepaper
  • Microsoft System Center Mobile Device Manager 2008 – Eine Einführung für Zielgruppen in Unternehmen
  • Windows Mobile Line of Business Solution Accelerator 2008
Außerdem ist es beim Mobile Device Manager nicht erforderlich, dass Unternehmensdaten das Network Operations Center (NOC) eines Drittanbieters passieren, das einen weiteren möglichen Haltepunkt für Verfügbarkeit oder Sicherheit darstellen könnte. Mobile Device Manager gibt Ihnen vollständige Kontrolle über mobile Gerätebereitstellungen in fast jeder Größe, wobei diese Kontrolle das Bereitstellen, Verwalten und Sichern von mobilen Branchenfunktionen erleichtert.
Die Netzwerkintegration bietet einen weiteren Vorteil: Die sehr detaillierte Steuerung wird insgesamt mittels Active Directory und Gruppenrichtlinie erzielt, ohne dass die mobilen Geräte separat von anderen Netzwerkclients verwaltet werden müssen. Dies spart Geld und Zeit. Doch das Wichtigste dabei ist, dass Sie konsistente Sicherheits- und Zugriffsrichtlinien einsetzen können. Die Gruppenrichtlinie ist eine sehr effiziente Möglichkeit zum Steuern des mobilen Zugriffs auf Branchendaten. Diejenigen, die darauf zugreifen müssen, können dies problemlos tun. Bei anderen, die diese Möglichkeit nicht brauchen, kann der Zugriff für alle gemeinsam oder individuell eingeschränkt werden.
Eine weitere wichtige Überlegung für das Verwalten von mobilen Branchenbereitstellungen (und mobiler Geräte im Allgemeinen) ist Interoperabilität mit vorhandener Infrastruktur. Im Unterschied zu Windows Mobile sind die Betriebssysteme einiger mobiler Geräte von anderen Formen der IT getrennt und erfordern ihre eigenen Sprachen, Server und Tools. Diese Faktoren erhalten zunehmende Bedeutung, wenn Sie komplexe Anwendungen und kritischen Datenzugriff auf mobilen Geräten bereitstellen.
Windows Mobile und Mobile Device Manager bieten diese Interoperabilität. Als Windows-Betriebssystem funktioniert Windows Mobile gut mit anderen Windows-basierten IT-Beständen wie Microsoft® Exchange Server, Microsoft Forefront™, SQL Server® und Microsoft Office Communications Server. Diese familienübergreifende Interoperabilität erleichtert das Entwerfen und Erstellen neuester mobiler Branchenfunktionen.
Windows Communication Foundation (WCF) beispielsweise, die Microsoft .NET Framework-Technologie zum Ermöglichen der Kommunikation zwischen Anwendungen, kann Exchange Server aktivieren, sodass er als Dienstprogramm für die Weiterleitung von Nachrichten für Implementierungen mobiler Branchenanwendungen verwendet werden kann, für die eine serviceorientierte Architektur (SOA) verwendet wird. Gelegentlich können verbundene Mitarbeiter mithilfe eines neuen Sync Framework auf den neuesten Stand gebracht werden. Dieses Framework erleichtert das Synchronisieren von Daten zwischen Windows Mobile-Geräten mithilfe von SQL Server Compact 3.5 und von Unternehmensdaten auf SQL Server 2008. Das Implementieren dieser Szenarios könnte ohne eine mobile Infrastruktur, die mit so vielen standardmäßigen Netzwerkressourcen arbeitet, schwieriger sein.

IT und Benutzerproduktivität
Das Erhöhen der Produktivität ist ein wichtiges Ziel der Bereitstellung mobiler Branchenanwendungen. Doch wenn die Verwendung der Funktionen für die Mitarbeiter und ihre Verwaltung für IT-Experten schwierig ist, könnten die Kosten die Vorteile überwiegen oder zumindest die Investitionsrendite (ROI – Return on Investment) verringern. Ein Ziel der Windows Mobile-Entwicklung besteht darin, dass sie der Desktop-Windows-Erfahrung möglichst ähnlich ist. Die sich ergebende Vertrautheit kann den Wert der Lösung für alle Beteiligten erhöhen.
Auf der IT-Seite wurde Windows Mobile mithilfe des Mobile Device Manager so entworfen, dass Windows Mobile-Geräte dem etablierten Netzwerk entsprechen. Dies geschieht mithilfe vertrauter Technologie, insbesondere Active Directory und Windows Server®. Mobile Device Manager ist Teil der System Center-Familie von IT-Verwaltungslösungen, die weltweit von einer großen Zahl von IT-Experten verwendet werden. Statt die Verwendung eines vollständig neuen Satzes an Tools und Praktiken erlernen zu müssen, können IT-Experten, die mit einer Windows-basierten Umgebung vertraut sind, die Microsoft Management Console-Snap-Ins verwenden, die sie bereits kennen.
Dasselbe gilt für die Benutzer. Aufgrund der desktopartigen Erfahrung beim Verwenden von Windows Mobile werden sie schnell damit vertraut. Sie können die Office Mobile-Suite, einschließlich Office Mobilen Outlook®, verwenden, um ihre Aufgaben zu erledigen, ohne sich mit neuen Anwendungen vertraut machen zu müssen. Sie müssen sich nicht um die Geräteverwaltung kümmern, da diese zentral erfolgt. Mobile Branchenanwendungen können so entworfen werden, dass sie wie die Desktopversionen derselben Programme funktionieren, mit denen die Benutzer vertraut sind. Neue Tools können so erstellt werden, dass sie wie typische Windows-Software aussehen und sich entsprechend verhalten. Diese Vertrautheit für den Benutzer dürfte zu weniger Supportanrufen und bei den Vorfällen zu einem geringeren Schweregrad führen, was für IT-Experten ebenfalls ein Segen ist.
Andere Aspekte der Windows Mobile- und Mobile Device Manager-Plattform verbessern die Produktivität ebenfalls. Ein mobiles VPN bietet nahtlose und beständige Konnektivität sogar über Netzwerke hinweg und zudem Funktionen für das schnelle Wiederherstellen der Verbindung, sodass Benutzer bei Bedarf eine Verbindung herstellen können und eine weitere häufige Quelle für Anrufe beim Helpdesk verringert wird. Die von Windows Mobile unterstützten vielfachen Formfaktoren von Geräten ermöglichen Unternehmen das Standardisieren einer kleinen Zahl von Geräten, wobei die Mitarbeiter dennoch die Möglichkeit haben, Geräte auszuwählen, die ihre Anforderungen erfüllen. Die Gerätevielfalt ermöglicht zudem produktivitätsverbessernde mobile Branchenszenarios, etwa die barcodebasierte Bestandsverwaltung oder die Mitarbeitersteuerung mithilfe GPS-aktivierter Geräte.

Entwicklung und Verteilung
Die Attribute, die Branchenanwendungen definieren (umfangreiche Daten, Leistungsstärke und spezielle Funktionen), funktionieren am besten auf einer mobilen Plattform, die für anwendungsbasierte Produktivität entworfen wurde. Windows Mobile bietet eine desktopartige Erfahrung für mobile Mitarbeiter, die das Entwickeln, Verteilen und Verwalten von mobilen Branchenanwendungen erleichtert.
So unterstützt Windows Mobile eine Version von .NET, die als .Net Compact Framework bezeichnet wird. Da das .NET Framework ein Programmiertoolset ist, das weltweit von vielen Millionen Entwicklern verwendet wird, verfügen viele IT-Betriebe bereits intern über die Entwicklungsfähigkeiten, um mobile Branchenanwendungen für Windows Mobile anzupassen und zu erstellen. Ist dies nicht der Fall, sind diese Fähigkeiten leicht auf dem Markt verfügbar.
Windows Mobile unterstützt auch eine große Zahl von kommerziell verfügbaren mobilen Branchenanwendungen. Microsoft bietet mobile Branchenlösungen als Teil der Microsoft Dynamics-Produktfamilie einschließlich Microsoft Dynamics CRM Mobile und Microsoft Dynamics AX Mobile Sales an. Zudem bieten Microsoft Dynamics Mobile-Entwicklungstools Entwicklern Technologien zum Erweitern der Software auf die mobile Umgebung. Microsoft hat sich dazu verpflichtet, andere Microsoft Dynamics-Lösungen ebenfalls für die mobile Verwendung vorzubereiten, und Microsoft Dynamics NAV-Unterstützung wird bald erhältlich sein. Die meisten wichtigen Branchenlösungen, wie z. B. SAP, Siebel, PeopleSoft und SalesForce.com, bieten Windows Mobile-kompatible Versionen ihrer Anwendungssuites an.
Nach ihrem Erwerb oder ihrer Entwicklung können mobile Branchenanwendungen mithilfe von Mobile Device Manager und Windows Server Update Services 3.0 drahtlos bereitgestellt und verwaltet werden. Die Gruppenrichtlinie kann verwendet werden, um festzulegen, welche Geräte die Anwendung erhalten und auf welche Funktionen sie zugreifen können. Beachten Sie, dass Anwendungsupdates auf dieselbe einfache Weise durchgeführt werden können.

Fazit
Eine zunehmende Anzahl von Unternehmen stellt Mitarbeitern und Führungskräften mobile Branchenanwendungen bereit, was zu neuen Überlegungen bei denjenigen führt, die für das Bereitstellen und Verwalten von IT-Systemen zuständig sind. Windows Mobile und Mobile Device Manager werden der Vision für netzwerkbereite mobile Geräte gerecht und bieten eine einfach zu verwaltende Plattform für die Entwicklung und Bereitstellung mobiler Branchenanwendungen. Es ist eine Plattform, die Sicherheit und Benutzerproduktivität maximiert, während Schwierigkeiten in der IT-Abteilung und Infrastrukturinvestitionen minimiert werden. Da Bereitstellungen von mobilen Branchenanwendungen mithilfe von Mobile Device Manager für eine größere Anzahl von Benutzern skaliert werden können, werden die Kosten der Entwicklung und Bereitstellung von mobilen Branchenanwendungen pro Benutzer gesenkt, während sich die Rendite pro Benutzer erhöht. Folglich ermöglicht Ihnen die erleichterte Verwaltung von Windows Mobile mit Mobile Device Manager, kreativ darüber nachzudenken, wie mobile Branchenanwendungen besonders effektiv verwendet werden können, statt überlegen zu müssen, wie sie überhaupt erst einsatzfähig werden.

Matt Fontaine ist als Autor und Berater in Seattle, Washington, tätig. Er betreut eine Reihe unterschiedlichster Branchen in den Bereichen Hochleistungscomputing, Unternehmenssoftware, Versicherungswesen, Immobilien, Ingenieurwesen, Baugewerbe und Verbrauchsgüter. Matt Fontaine ist stolz darauf, ehemaliger Schüler des Evergreen State College in Washington zu sein.


Sicherheit
Verwaltung der Kennwörter gemeinsam genutzter Konten
Chris Stoneff
Auf einen Blick:
  • Risiken für Kennwörter gemeinsam genutzter und privilegierter Konten
  • Speicherung von Kennwörtern
  • Verwalten und Sichern gemeinsam genutzter Kennwörter
  • Einhaltung von Bestimmungen

Inhalt
Beschreibung des Problems
Je länger, desto besser
Domänengewalt
Immer wieder Entschuldigungen
Was rechtliche Bestimmungen fordern
Ein automatisierter Ansatz
Denken Sie darüber nach
Eines der Probleme, mit denen sich Administratoren immer öfter befassen müssen, ist das regelmäßige Ändern des Kennworts für gemeinsam genutzte und privilegierte Konten, wie z. B. für das integrierte
Administrator- oder root-Konto, ein Firecallkonto oder vielleicht sogar ein Prozesskonto. Das vordefinierte Administrator- oder root-Konto ist das Konto, das in jeder Version von Windows®, Linux und UNIX vorhanden ist. Es hat immer die gleiche Sicherheits-ID (SID) oder Benutzer-ID (User Identifier, UID). Firecallkonten sind Konten, die Sie erstellen, um den Notfallzugriff auf ein sicheres System zu vereinfachen. Diese Firecall- oder Administratorkonten werden manchmal von ansonsten weniger privilegierten Benutzern verwendet, um Zugriff auf Schlüsselsysteme zu erlangen, wenn ein Problem vorliegt. Prozesskonten sind jene Konten, die Sie verwenden, um Dienste, Aufgaben, COM+-Anwendungen und eingebettete Elemente auszuführen, wie z. B. Skripts und andere Binärdateien, die einer Anmeldung bedürfen.
Sie haben Ihre Systeme wahrscheinlich mithilfe von Installationsskripts oder Installationsabbildern bereitgestellt. Außerdem besitzen alle Ihre Arbeitsstationen oder Server wahrscheinlich den gleichen Administratorkontonamen und das gleiche, aus 8 Zeichen bestehende Kennwort, das höchstwahrscheinlich seit der ersten Bereitstellung der Systeme nicht mehr geändert wurde. Aus diesem Grund verwende ich den Begriff „Kennwort“ in der Einzahl, statt von „Kennwörtern“ zu sprechen.
Ein Administrator könnte diese Kennwörter ändern, um bewährte Methoden umzusetzen oder um rechtlichen Bestimmungen zu entsprechen, wie z. B. dem Sarbanes-Oxley Act (SOX), dem Payment Card Industry Data Security Standard (PCI) oder dem Health Insurance Portability and Accountability Act (HIPAA). Manchmal führt ein Administrator entsprechende Schritte durch, wenn ein Administrator oder Techniker, der diese Kennwörter kennt, das Unternehmen verlässt, weil befürchtet wird, dass die Existenz einer Sicherheitslücke allgemein bekannt werden könnte oder dass das Unternehmen die Möglichkeit zur Verarbeitung von Kreditkarten verlieren könnte. Trotz dieser Faktoren sollte der Administrator schon allein deswegen diese Kennwörter ändern, um die Sicherheit des Unternehmens sowie der Daten, die das Unternehmen schützen muss, zu gewährleisten.

Beschreibung des Problems
Es gibt einige Faktoren, die Sie verstehen müssen, wenn Sie mit diesen Konten und ihren Kennwörtern zu tun haben:
  1. Je älter ein Kennwort ist, desto unsicherer ist es.
  2. Längere Kennwörter sind im Allgemeinen schwerer zu knacken.
  3. Wie Computer die Authentifizierung durchführen, ändert sich nicht einfach deshalb, weil sie einer Domäne angehören. Jede Domäne ist im Grunde eine Arbeitsgruppe.
„Je älter ein Kennwort ist, desto unsicherer ist es“, ist eine irreführende Aussage. Was dieser Satz wirklich bedeutet, ist, dass es nur eine Frage der Zeit ist, bis es gelingt, in einen Computer einzubrechen, sofern der entsprechende Wille vorhanden ist. Wenn jemand fragt, wie lange es dauert, ein Kennwort zu knacken, sage ich gewöhnlich, dass es darauf keine definitive Antwort gibt. Stattdessen nenne ich einige Faktoren, die helfen können, die Frage für ein bestimmtes System zu beantworten:
  • Wie viele Personen kennen das Kennwort?
  • Arbeiten alle diese Personen immer noch für das Unternehmen?
  • Wenn einige der Personen, die das Kennwort des Kontos kennen, nicht mehr für das Unternehmen arbeiten, haben sie das Unternehmen im Guten verlassen?
  • Verhindern Sie das Starten von Diskette, über das CD- bzw. DVD-Laufwerk oder über das Netzwerk?
  • Sind die Benutzer der Computer auch lokale Administratoren?
  • Verwenden alle Ihre Systeme genau das gleiche Kennwort für ihre privilegierten Konten?
Am Anfang der Liste beginnend, kann man sagen, je mehr Personen ein Geheimnis kennen, desto wahrscheinlicher ist es, dass das Geheimnis allgemein bekannt wird. Ich habe für Unternehmen gearbeitet, deren Administratoren es vorzogen, das gemeinsame Kennwort auf denselben Wert zu setzen und dem IT-Personal sowie den Praktikanten mitzuteilen, wie die Kennwörter lauten, statt die Kennwörter bei Bedarf an ihrer Stelle einzutippen. Mit der Zeit tauchten im Unternehmen Computer mit verschiedenen nicht genehmigten Einstellungen auf, und es gab gewöhnliche Netzwerkbenutzer, die in der Lage waren, sich bei diesen Konten anzumelden.
Wenn alle Personen, die die Kennwörter kennen, immer noch für das Unternehmen arbeiten und zufriedene, pflichtbewusste Mitarbeiter sind, wird dieses Zugriffsrisiko ein wenig verringert. Aber es kann immer passieren, dass Sie es mit einem böswilligen Benutzer zu tun bekommen. Wenn irgendeiner dieser Benutzer das Unternehmen nicht im Guten verlassen hat, gibt es ein unkontrolliertes, schädliches Element, das in der Lage ist, mit einem nicht nachverfolgbaren Konto in Ihr Netzwerk einzubrechen.
Wenn Sie das Starten von etwas anderem als von der Festplatte nicht unterbinden, ermöglichen Sie das Starten der Computer mithilfe nicht autorisierter Abbilder, wie z. B. Windows PE oder verschiedener Linux-Systeme, die das Dateisystem des Computers direkt lesen und Zugriff auf den gesicherten Speicher des Computers erlangen können. (Ich sollte darauf hinweisen, dass viele Sicherheitsverletzungen interne Ursachen haben. Selbst wenn alle Mitarbeiter und Praktikanten immer noch im Unternehmen arbeiten, bietet das keine Garantie dafür, dass die Kennwörter und die Systeme sicher sind.)
Ich habe viele Personen getroffen, die sich weiterhin beim Netzwerk eines früheren Arbeitgebers angemeldet haben, nur weil sie es konnten. Dies ist insofern ein wenig amüsant, als sie das Problem der zweifelhaften Praxis aufzeigen, Systemkennwörter nicht zu ändern. Es ist aber auch erschreckend, wenn man bedenkt, welchen Schaden sie anrichten könnten, wenn sie böswillige Absichten hätten.
Wenn Sie es ermöglichen, Computer von einer DVD oder über das Netzwerk zu starten, können Sie u. U. nicht überwachen, was Benutzer tun. Das bedeutet, dass ein Benutzer mit einer Linux-Startdiskette oder einem Netzwerkabbild oft direkten Zugriff auf Ihrem Dateisystem erlangen kann. Wenn Ihre Systeme für ihre privilegierten Konten den gleichen Benutzernamen und das gleiche Kennwort verwenden, ist die Katastrophe vorprogrammiert. Mehr dazu aber später.
Die Relevanz des Alters und der Länge der Kennwörter hängt von der Methode ab, die zum Knacken eines Kennworts verwendet wird. Wenn eine Brute-Force-Methode eingesetzt wird, um Kennwörter zu ermitteln, ist alles im Wesentlichen eine Frage der Zeit. Je seltener ein Kennwort geändert wird, desto mehr Zeit steht dem Angreifer für das Knacken des Kennworts zur Verfügung.
Entsprechend weisen längere Kennwörter exponentiell mehr Zeichenvariationen auf und erfordern deshalb mehr Zeit, um geknackt zu werden. So ist es wichtig, darauf zu achten, ob Ihre Kennwörter weniger als 7 Zeichen, 8 bis 14 Zeichen oder 15 bzw. mehr Zeichen umfassen. Wenn die Kennwörter weniger als 15 Zeichen lang sind und Sie Windows verwenden: Deaktivieren Sie LM-Hashes (LAN-Manager) als Teil der Systemkonfiguration oder innerhalb der Gruppenrichtlinie?
Welchen Einfluss hat die Länge des Kennworts? Im Fall von Windows ist die Antwort einfach. Wenn wir die Geschichte der Microsoft-Hashingprozesse einmal weglassen, lässt sich sagen, dass Microsoft zwei Arten von Hashes für Kennwörter implementiert: LM-Hashes und MD4-Hashes (Message Digest 4). Standardmäßig verwendet Microsoft LM-Hashes, und die Werte werden für alle Kennwörter mit einer Länge bis zu 14 Zeichen gespeichert, es sei denn Sie deaktivieren explizit die Speicherung dieser Hashes. Diese Kennwörter werden in zwei Werte mit je 7 Zeichen unterteilt – den ersten Wert für die ersten 7 Zeichen und den zweiten Wert für die zweiten 7 Zeichen (siehe Abbildung 1).
Abbildung 1 Beispiel einer Hashtabelle
Kontoname | RID | LM-Hash | NT-Hash | Kennwort | Hinweise
Administrator | 500 | aad3b435b51404ee: aad3b435b51404ee | 31d6cfe0d16ae931: b73c59d7e0c089c0 | Leeres KW | Der LM-Hash ist identisch mit dem LM-Hash des aus 20 Zeichen bestehenden Kennworts.
Administrator | 500 | 0182bd0bd4444bf8: aad3b435b51404ee | 328727b81ca05805: a68ef26acb252039 | 7-Zeichen-KW = 1234567 | Der erste Teil, der die ersten 7 Zeichen repräsentiert, ist identisch mit dem des 8-Zeichen-Kennworts.
Administrator | 500 | 0182bd0bd4444bf8: 36077a718ccdf409 | 0182bd0bd4444bf8: 36077a718ccdf409 | 8-Zeichen-KW = 12345678 | Der erste Teil, der die ersten 7 Zeichen repräsentiert, ist identisch mit dem des 7-Zeichen-Kennworts, aber der zweite Satz ist verschieden.
Administrator | 500 | aad3b435b51404ee: aad3b435b51404ee | b79d07c2ecb3d565: 033ece663f5a0b2e | 20-Zeichen-KW = 9876543210 9876543210 | Der LM-Hash ist identisch mit dem des leeren Kennworts, weil für Kennwörter mit mehr als 14 Zeichen kein LM-Hash erstellt werden kann.
Fred | 1221 | e52cac67419a9a: 224a3b108f3fa6cb6d | 8846f7eaee8fb117: ad06bdd830b7586c | Identisch | Sehen Sie in diesen drei Beispielen, dass der LM-Hash und der NT-Hash identisch sind? Dies bedeutet, dass alle Kennwörter für alle diese Konten identisch sind. Microsoft ändert den Hashingalgorithmus nie.
Monday | 1385 | e52cac67419a9a: 224a3b108f3fa6cb6d | 8846f7eaee8fb117: ad06bdd830b7586c | Identisch
SvcAcctX | 1314 | e52cac67419a9a: 224a3b108f3fa6cb6d | 8846f7eaee8fb117: ad06bdd830b7586c | Identisch
Wenn Ihr Kennwort also nur 7 Zeichen lang ist, wäre es in einem einzigen LM-Hash enthalten. Seit Jahren empfiehlt Microsoft das Verwenden von mindestens 8 Zeichen in Kennwörtern. Der Grund bestand darin, dass das 8. Zeichen dafür sorgen würde, dass das Kennwort in zwei LM-Hashwerte geteilt wird.
Es ist aber wichtig festzuhalten, dass LM-Hashes allgemein verstanden werden und sehr leicht zu umgehen sind. Ihr einziger Zweck besteht in aktuellen Lösungen darin, zur Abwärtskompatibilität mit Legacysystemen wie z. B. Windows NT® 4.0 beizutragen.
Heutzutage sollten Sie Kennwörter (oder vielmehr Kennsätze) mit mindestens 15 oder vorzugsweise noch mehr Zeichen verwenden, weil für sie definitionsgemäß kein LM-Hash generiert wird. Wenn es in Ihrer Umgebung keine realistische Option ist, die Verwendung von Kennwörtern mit mindestens 15 Zeichen erforderlich zu machen, sollten Sie die Speicherung der LM-Hashes sowohl im Abbilderstellungsprozess (mithilfe einer lokalen Richtlinie) als auch in Ihrer Active Directory®-Gruppenrichtlinie deaktivieren.
Diese Richtlinie befindet sich unter Computerkonfiguration\Windows-Einstellungen\Sicherheitseinstellungen\Lokale Richtlinien\Sicherheitsoptionen. Setzen Sie einfach die Richtlinie „Netzwerksicherheit: Keine LAN Manager-Hashwerte für nächste Kennwortänderung speichern“ auf AKTIVIERT.
Es ist wichtig, sich zu erinnern, dass eine gute Richtlinie zwar die Verwendung von Groß- und Kleinbuchstaben sowie Ziffern oder Sonderzeichen vorschreibt, dass aber eine noch bessere Richtlinie eine Kennwortlänge von mindestens 15 Zeichen erzwingt.

Je länger, desto besser
Eine derzeit verwendete Methode zum Eindringen in Computer wird „Rainbow Tables“ (Regenbogentabellen) genannt und nutzt die LM-Hashes aus. Längere Kennwörter können aber die Wirksamkeit von Regenbogentabellen negieren.
Ich bin überrascht, wie viele Administratoren, die für die Sicherheit verantwortlich sind, sehr wenig (oder nichts) über Regenbogentabellen zu wissen scheinen. Es gibt verschiedene Möglichkeiten, Regenbogentabellen zur Behandlung verschiedener Algorithmen zu erstellen. Aber dabei handelt es sich lediglich um eine im Voraus berechnete Liste aller LM-Hashes für Kennwörter mit 0 bis 14 Zeichen.
Voraussetzung für die Verwendung von Regenbogentabellen ist, dass der Angreifer zunächst die LM-Hashes ermittelt kann. Dies führt zur bereits erwähnten Frage, wie das System gestartet werden kann (mittels CD oder DVD) oder ob Ihre Benutzer lokale Administratoren sind. Letzten Endes können diese LM-Hashes in wenigen Sekunden mithilfe frei verfügbarer Tools (wie z. B. pwdump) extrahiert werden. Unter Verwendung von Regenbogentabellen werden dann die Hashes durchsucht, um das Kennwort zu ermitteln.
Um meine eigene Neugier zu befriedigen, habe ich ein Kennwort für das vordefinierte Administratorkonto eines Systems festgelegt. Es umfasste 14 Zeichen und enthielt verschiedene Groß- und Kleinbuchstaben sowie Sonderzeichen und Ziffern. Ich verwendete dann Regenbogentabellen, die ich kostenlos über das Internet heruntergeladen hatte, und es gelang mir, die Kennworthashes für alle Konten auf meinem System zu extrahieren und das Kennwort des Administratorkontos in weniger als zwei Minuten zu ermitteln.
Ich muss zugeben, dass es großen Spaß macht zuzusehen, wie der erste LM-Hash geknackt wird, gefolgt vom zweiten Hash, und wenn Sie sie dann kombinieren, haben Sie das Kennwort. Um es noch einmal zu wiederholen: Wenn ich meine LM-Hashes, wie oben diskutiert, mithilfe der Richtlinie deaktiviert hätte, hätte ich diese Angriffsmethode enorm erschwert, wenn nicht gar unmöglich gemacht.

Domänengewalt
Dadurch, dass Sie sich in einer Domäne befinden, wird das Problem nicht behoben. Computer in einer Domäne führen die Authentifizierung immer noch auf die gleiche Weise durch. Wie bereits erwähnt, ist jede Domäne im Grunde eine Arbeitsgruppe. Diese einfache Aussage ist nicht immer offensichtlich. Ich habe viele Unterhaltungen über dieses Thema geführt, und ich stelle fest, dass ich oft Administratoren daran erinnere, was für den Zugriff auf einen Computer erforderlich ist – ein Benutzername und ein Kennwort. Dann muss ich im Detail erörtern, wie Windows in einer Arbeitsgruppe funktioniert.
Wenn Sie versuchen, auf ein System zuzugreifen, müssen Sie für das Remotesystem einen Benutzernamen und ein Kennwort bereitstellen. Bei Verwendung der integrierten Authentifizierung versucht Windows, dies für Sie zu tun. Dies bedeutet, dass, wenn Sie auf ein anderes Windows-System zugreifen, Windows Ihren derzeit für die Anmeldung verwendeten Benutzernamen und das zugehörige Kennwort verwendet. Wenn Sie also versuchen, auf ein anderes Windows-System zuzugreifen, werden Sie nie aufgefordert, diesen Benutzernamen und dieses Kennwort einzugeben, wenn das Remotesystem den gleichen Benutzernamen und das gleiche Kennwort aufweist.
Dies wird auch als Pass-Through-Authentifizierung bezeichnet. Der Prozess funktioniert sowohl in Arbeitsgruppen als auch domänenübergreifend. Im schlimmsten Fall fragt Sie das System nach einem Benutzernamen und einem Kennwort, was bedeutet, dass Sie einfach Ihre Anmeldeinformationen erneut eingeben müssen.
Selbst wenn Sie eine Arbeitsstation oder einen Server einer Domäne hinzufügen und Active Directory zu Ihrem zentralen Kontorepository wird, verschwinden nicht einfach auf magische Weise alle lokalen Sicherheitskontenverwaltungen (Security Account Managers, SAMs) oder lokalen Kontospeicher auf diesen Systemen. Das Einzige, was mit diesen lokalen SAMs zu geschehen scheint, ist, dass sie nicht mehr verwaltet und gesichert sind, und darin liegt die Ursache des Problems. Wann haben Sie das letzte Mal das integrierte Administrator- oder root-Konto auf Ihren Systemen geändert? Laden Sie besser noch irgendein Berichterstattungs-Dienstprogramm herunter, das Ihnen zeigen kann, wie alt die Kennwörter aller Ihrer Konten sind, und stellen Sie fest, ob die Ergebnisse einer Überprüfung standhalten würden.
Wenn Sie immer noch nicht ganz sicher sind, was ich meine, melden Sie sich über ein Domänenkonto mit Administratorrechten bei irgendeiner Ihrer Domänenarbeitsstationen an. Öffnen Sie die Computerverwaltung auf Ihrem System, und erstellen Sie einen lokalen Benutzer namens „ToldYouSo“. Geben Sie dem Konto ein Kennwort, und fügen Sie es der lokalen Administratorgruppe Ihres Systems hinzu. Wiederholen Sie diesen Prozess auf einem zweiten Domänensystem.
Melden Sie sich nun von einem dieser Systeme mit dem lokalen ToldYouSo-Konto an, und versuchen Sie, auf den zweiten Computer zuzugreifen, indem Sie zu \\systemName\c$ wechseln. Sie können nun auf die administrative Freigabe zugreifen, und Sie werden nicht einmal aufgefordert, ein Kennwort einzugeben! Ich hoffe, dieses Beispiel ist für Sie keine Überraschung. Aber wenn es eine ist, lernen Sie bitte daraus, und lassen Sie mich noch einmal wiederholen: Nur weil Ihr System einer Domäne angehört, ändert dies nichts daran, dass alle diese Systeme immer noch so funktionieren, als ob sie einer Arbeitsgruppe angehören würden.
Der Punkt ist, dass, wenn Sie für Ihre gemeinsam genutzten und privilegierten Konten Kennwörter verwenden, die (wenn überhaupt) nur selten geändert werden, Ihre gemeinsam genutzten und privilegierten Konten gefährdet sind. Alles, was nötig ist, um Ihr gesamtes Netzwerk zu beeinträchtigen, ist Zeit.

Immer wieder Entschuldigungen
Wenn ich mit Administratoren und sogar mit den Hauptverantwortlichen für den IT-Bereich rede, höre ich oft die gleichen Hauptgründe, weshalb diese Kontokennwörter nicht geändert werden:
  • Wir haben Tausende von Systemen und nicht genug Zeit oder genügend Mitarbeiter, um diese Konten zu ändern.
  • Wir haben nicht das notwendige Budget.
  • Wir haben unsere Administratorkonten vollständig deaktiviert.
  • Wir wurden noch nie erfolgreich angegriffen. Deshalb denken wir, dass nicht wirklich ein Problem besteht.
  • Die Prüfer haben es nicht bemerkt.
Obwohl ich die ersten zwei Gründe in gewisser Weise nachvollziehen kann, sind dies keine akzeptablen Entschuldigungen. Ich zittere bei dem Gedanken, dass meine persönlichen Informationen bei Unternehmen gespeichert sein könnten, die sich aus irgendeinem Grund nicht mit diesem Problem befassen.
Obwohl es stimmt, dass nicht auf jedem System in Ihrem Netzwerk vertrauliche Informationen gespeichert sind, haben die Benutzer dieser Computer möglicherweise Zugriff auf vertrauliche Informationen, wie z. B. Ihre Sozialversicherungsnummer, Ihre Krankheitsgeschichte oder Ihre Finanzdaten. Als Administrator eines Systems kann ein Benutzer Key Logger und Dienstprogramme zur Bildschirmaufzeichnung installieren, die Anwendung der Gruppenrichtlinie verhindern, Shims in verschiedene Subsysteme einführen, um Daten aufzuzeichnen und zu übertragen, und so weiter. Wenn der Benutzer dies auf einem einzelnen Computer tut, ist es für Sie viel schwieriger, diesen böswilligen Benutzer zu ermitteln, da er sich Administrator nennt.
Wussten Sie, dass das Deaktivieren des vordefinierten Administratorkontos in Windows nicht verhindert, dass Sie sich mit diesem Konto anmelden können? Probieren Sie Folgendes aus: Starten Sie Ihr System im abgesicherten Modus neu, und melden Sie sich mit dem vordefinierten Administratorkonto an. Sie können wahrscheinlich erfolgreich das Kennwort verwenden, das dem Konto vom ursprünglichen Abbild zugewiesen wurde. Weitere Informationen zu diesem Verhalten finden Sie im Microsoft® Knowledge Base-Artikel „Zugreifen auf den Computer nach dem Deaktivieren des Administratorkontos“ (support.microsoft.com/kb/814777).

Was rechtliche Bestimmungen fordern
Von Bestimmungen wie SOX, PCI, HIPAA und anderen kann einem schwindlig werden. Die Anforderungen zu verstehen, kann sehr schwierig sein, da sie sehr umfangreich und nicht klar definiert sind. Was alle diese Bestimmungen fordern, kann im Allgemeinen folgendermaßen zusammengefasst werden.
Zunächst müssen Sie jederzeit nachweisen können, wer Zugriff auf sämtliche privilegierten Konten und Informationen hat, und eine Methode bereitstellen, um dies zu beweisen. Dies ist in allen Szenarios ein guter Ansatz – ein privilegiertes Konto ist ein Konto mit der Berechtigung, auf jedem System jede beliebige Aktion durchzuführen. Dies ist das vordefinierte Administratorkonto. Dies ist das Firecallkonto. Diese sind die Konten, die alle Ihre Helpdeskmitarbeiter und jeder Administrator, der für Sie arbeitet, wahrscheinlich kennen.
Wenn Sie sich entscheiden, eine Lösung zu implementieren, um diese Kennwörter gemeinsam genutzter Konten zu verwalten, erstellen Sie einen Überwachungspfad zum vordefinierten Administratorkonto, wo derzeit keiner existiert. Sie erhalten ein Kennwort, das variabel ist. Da die Lösung automatisiert ist, kostet es Sie nicht Wochen an Arbeitszeit, diese Kennwörter zu ändern. Da die Lösung Überwachungsfunktionen bietet, kommt Ihr Unternehmen letzten Endes dem Bestehen der Überprüfung einen Schritt näher.

Ein automatisierter Ansatz
Die effektivste Möglichkeit, entsprechende Probleme bei Konten wie diesen zu vermeiden, besteht darin, die Konten regelmäßig zu ändern, damit zwei Konten niemals das gleiche Kennwort aufweisen. Bei gemeinsam genutzten Kennwörtern würde die Beeinträchtigung eines Systems auch die Beeinträchtigung eines anderen bedeuten. Anders gesagt, es sollte keine allgemeinen lokalen Konten oder Domänenkonten geben.
Wenn Sie mit automatisierten Lösungen arbeiten, die diese Kennwörter verwalten und randomisieren können, vermeiden Sie, nur das absolute Minimum dessen zu tun, was die Prüfer fordern. Warum z. B. nur 8 Zeichen für Ihre Kennwörter verwenden, wenn Sie ohne jegliche zusätzliche Anstrengung 15 oder 20 oder 127 verwenden können (siehe Abbildung 2)?
Abbildung 2 Verwendung von Automatisierung zur Erstellung sehr langer Kennwörter (zum Vergrößern auf das Bild klicken)
Erwägen Sie auch, Ihre privilegierten Konten jeden Tag zu randomisieren (siehe Abbildung 3). Es gibt keinen Grund, dies nur alle 90 Tage zu tun, wenn Sie es monatlich oder halbmonatlich oder sogar täglich tun können. Wenn das Verfahren automatisiert ist, sollte schließlich keine zusätzliche Arbeit für Sie entstehen. Wenn Sie dies regelmäßig tun, zwingen Sie außerdem die Benutzer, die Kennwörter über die überwachte Abrufschnittstelle des Tools wiederherzustellen, wodurch ein Überwachungspfad bereitgestellt wird, wo zuvor keiner vorhanden war. (Wenn Sie gegenwärtig geschriebene Kennwörter in einem Umschlag in einem Safe in der hinteren Ecke von jemandes Büro aufbewahren, haben Sie keinen Überwachungspfad für diese Kennwörter, wie Sie ihn hätten, wenn Sie eine Kennwortverwaltungslösung verwenden würden.)
Abbildung 3 Randomisieren Sie Ihre privilegierten Konten täglich (zum Vergrößern auf das Bild klicken)
Stellen Sie abschließend sicher, dass, wenn Kennwörter wiederhergestellt werden, sie nach einem festgelegten Zeitraum nach der Wiederherstellung erneut randomisiert werden. Ich meine nicht die geplanten Randomisierungsaufträge, die Sie erstellt haben. Ich spreche vom Erstellen von Einmalkennwörtern, die nur für ein paar Stunden statt für einige Monate gültig sind. Diese Methode zwingt die Benutzer wiederum, die Kennwörter über die überwachte Abrufschnittstelle des Tools wiederherzustellen, wodurch ein Überwachungspfad bereitgestellt wird.

Denken Sie darüber nach
Das Problem der Verwaltung der Kennwörter gemeinsam genutzter Konten darf nicht ignoriert werden. Dies bedeutet, dass Sie eine Methode haben sollten, um Ihre Kennwörter zuverlässig und regelmäßig zu ändern. Die Lösung muss skalierbar und flexibel sein. Sie muss auch einen gesicherten Zugriff auf die Kennwörter bieten und muss jede Aktion überwachen, die vom Tool sowie von jedem Benutzer des Tools durchgeführt wird. Außerdem müssen die generierten Kennwörter auf jedem System eindeutig sein, um ein Eindringen infolge gemeinsam genutzter Kontoinformationen zu vermeiden.
Viele Anbieter befassen sich seit Jahren mit diesem Problem, und in jüngster Zeit haben sich viele neue Anbieter dieses Problems angenommen. Halten Sie sich unbedingt auf dem aktuellen Stand, und probieren Sie alle neuen Tools aus, bevor Sie eines erwerben, um sicherzustellen, dass die Lösung, für die Sie sich entscheiden, für Ihre Umgebung die richtige ist.

Chris Stoneff ist Produktmanager bei Lieberman Software (liebsoft.com), einem Softwareentwickler im Bereich Sicherheit und Systemverwaltung. Sein Interesse gilt nicht nur der Frage, wie etwas auf eine bestimmte Weise funktioniert, sondern auch warum das so ist.


In den letzten Wochen hatte ich das Glück, in einem Auffrischungskurs daran erinnert zu werden, was es heißt, als IT-Experte zu arbeiten. Dies ist sicher der passende Zeitpunkt, denn der Sommer geht zu Ende, und die Gedanken drehen sich wieder um den Schulanfang. Aber ich muss zugeben, es war trotzdem ein Schock.
Es ist nämlich so, dass das Magazin-Team hier bei Microsoft (die Gruppe, die sowohl das MSDN Magazin als auch das TechNet Magazin veröffentlicht), sich in einem Prozess der Überprüfung und Verbesserung unseres … nun ja … Prozesses befindet. Wir haben schließlich beschlossen, dass jetzt im Jahr 2008 die Zeit dafür gekommen ist, Papierlayouts und Bleistiftkorrekturen hinter uns zu lassen und nur noch digital zu arbeiten. (Ich weiß, wir sind ungeheuer innovativ!) Ganz im Ernst, es war Zeit, etwas von dieser zusätzlichen Effizienz, die die großen Softwareunternehmen versprechen, für uns zu nutzen.
Bei der Eingewöhnung in unseren neuen digitalen Workflow entdeckten wir sehr schnell, dass wir von dem Tool, das den Status der Artikel nachverfolgte, behindert wurden. Unser Workflow war bereits „digital“, aber er basierte auf einer relativ veralteten Technologie (die, so hoffen wir, bald von der Bildfläche verschwinden wird), und er wurde von kleinen Farbfeldern ergänzt, die oben auf jedem Layout gedruckt wurden. Echt Hightech, nicht wahr? Also machte ich mich daran, zu Testzwecken eine Alternative zu entwickeln, und dachte mir, dass SharePoint dafür ideal wäre.
Um kurz vorzugreifen: Ich habe einen ganz neuen Respekt für alle SharePoint-Administratoren unter Ihnen. Dies spricht nicht gegen SharePoint, allenfalls zeugt es von der Leistungsfähigkeit und der Flexibilität der Plattform, aber das Erstellen einer benutzerdefinierten Workflowlösung in SharePoint ist wirklich schwierig! (Zum Glück haben wir unsere neue Rubrik „Einblicke in SharePoint“ als Hilfestellung.) Mich nach einigen Jahren fern von der vordersten Front dieser Herausforderung zu stellen, war ein Weckruf für mich, auch wenn ich jetzt wieder die Schulbank drücken muss.
Es gibt einige großartige Ressourcen, die Ihnen helfen können, Grundlagen aufzufrischen oder sich etwas ganz Neuem zu widmen: von der Videoreihe „Gewusst wie“ auf TechNet (technet.microsoft.com/cc138021), über die Screencasts im Magazin (.com/video) bis hin zu TechNet Edge (edge.technet.com) und mehr. Aber ich denke, dass es wahrscheinlich Zeit ist, unsere Behandlung von „Grundlagen“ im TechNet Magazin zu erweitern. Ich will nicht angeben, denke aber, dass es uns ganz gut gelungen ist, technische Themen mit Tiefgang bereitzustellen, wie Sie es inzwischen gewohnt sind und (hoffentlich) zu schätzen gelernt haben. Trotzdem kann es nicht schaden, die Grundlagen von Zeit zu Zeit zu überprüfen. Dann noch viel Spaß mit dem Rest des Sommers, denn nicht mehr lange, und wir alle drücken wieder die Schulbank. – Joshua Hoffman

Unser Dank gilt folgenden technischen Experten von Microsoft: Nathan Bigman, Nino Bilic, Mai-lan Tomsen Bukovec, Eric Charran, Trina Gorman, Gershon Levitz, Thomas Marquardt, Mandy Maxwell, Michael Murgolo, Sanjeev Nair, Michelle Rutzer, Jez Sadler, Jim Truher und Shimon Yannay.


Briefe Leser sagen ihre Meinung

SharePoint-Kapazitätsplanungstool
Mein Unternehmen hat weniger als 600 Mitarbeiter, und viele von ihnen verwenden ihre PCs oder unser Intranet nicht aktiv. Andererseits wird allgemein zu mehr Kommunikation und Zusammenarbeit in Unternehmen aufgerufen. Ich denke, dass Windows® SharePoint® Services (WSS) 3.0 für unsere Arbeitsumgebung ideal wäre, aber mein Manager hat nur einen Server für diese Maßnahme eingeplant.
Ich habe versucht, das SharePoint-Kapazitätsplanungstool zu verwenden, aber es lässt nicht die Simulation eines Einzelservermodells zu. Kennen Sie eine Simulationsoption für einen einzelnen Server?
Allen M.
Ich denke nicht, dass es eine Option für einen einzelnen Server gibt. Aber es ist schwierig, eine Anpassung vorzunehmen, ohne alle Benutzerverhaltensweisen zu berücksichtigen. Ich würde einen Vierkernprozessor verwenden und mit 8 GB RAM beginnen. Im Grunde müsste ein mittlerer Server gut funktionieren.
Joel Oleson hat eine große Zahl von Referenzen zur Größenfestlegung zusammengestellt. Sie finden sie in seinem Blog unter blogs.msdn.com/joelo/archive/2007/07/09/capacity-planning-key-links-and-info.aspx. Das hilft Ihnen vielleicht dabei, die beste Entscheidung für die Anforderungen Ihres Unternehmens zu treffen.
– Pav Cherny, Autor
Einblicke in SharePoint

Microsoft Bob
Ich weiß, mit dem „Windows Confidential“-Artikel „Geschichte, die viel Raum einnimmt“ (Juli 2008, technet.microsoft.com/magazine/cc565089) sollte deutlich gemacht werden, dass das Programm Microsoft® Bob auf der Windows XP-Festplatte verborgen ist, aber damit gehen nur wieder mehr Lichter für ein Programm aus, das meine Kinder gern mochten und mit dem sie die Grundlagen der Textverarbeitung auf dem Computer erlernten. Bob war auf unserem ersten Heimcomputer, einem NEC Ready mit Windows 95, enthalten. Alle meine Kinder wuchsen mit Bob auf, spielten und verbrachten viele Stunden mit Bob.
Bob wurde im Artikel als ein schlechtes Technologieprodukt verspottet, aber es war wirklich eine großartige Software, die einfach nur auf dem falschen Markt angeboten wurde . . . dem für Erwachsene. Es war für Kinder gedacht, und wäre es so präsentiert worden, wäre es anders angesehen worden, und vielleicht hätte es sogar ein anderes Schicksal gehabt. Wer weiß, wenn es von Anfang an als ein Kinderprogramm angeboten worden wäre, hätten meine Enkelkinder heute noch damit spielen können.
– Jim S.

Printmedien sind tot
Es war sehr interessant für mich, die Anmerkung des Herausgebers „Printmedien sind tot“ in der Ausgabe vom Juli 2008 zu lesen (technet.microsoft.com/magazine/cc595615). Meiner Meinung nach werden Fachbücher über Informationstechnologie bald durch digitale Medien ersetzt. Sie aber schreiben, dass 90 Prozent Ihrer Leser die gedruckten Medien bevorzugen. War dies eine repräsentative Umfrage? Oder haben nur die Personen, die Sie durch gedruckte Medien erreicht haben, die Umfrage beantwortet? In dieser Gruppe wäre die jüngere Generation, die Zeitungen oder Magazine wie dieses nicht abonniert, sondern all ihre Informationen online abruft und nichts von Ihrer Umfrage weiß, nicht enthalten.
Jemand, der einen gedruckten Text liest, kann kein Video oder Webcast aus dem Fließtext heraus starten. Er kann nicht mit der Maus auf einen gedruckten Internetlink klicken, um eine Homepage, eine Newsgroup oder einen Blog zu öffnen. Er ist nicht imstande, mit einem Mausklick ein Add-In oder ein Tool herunterzuladen, das im gedruckten Text nur erwähnt wurde.
Um meinen Punkt zusammenzufassen: Das gedruckte Buch ist ein schlechter Kompromiss. Der Leser wird bald erkennen, dass das Lesen eines gedruckten Buchs nur einen Bruchteil der Vorteile bietet, die ein DVD hat, und er kann den gesamten Inhalt vom DVD auf seinen Laptop kopieren und dann jederzeit und überall auf diesen Inhalt zugreifen.
Ulrich S.
Danke für Ihren Hinweis und Ihr Feedback! Als Antwort auf Ihre spezifischen Fragen in Bezug auf die 90 Prozent unserer Leser, die angaben, dass sie Druckmedien bevorzugen: Die Umfrage richtete sich sowohl an unsere Druckabonnenten als auch unsere Webleser (im ungefähr gleichen Verhältnis) als Teil unserer jährlichen Redaktionsforschung, die elektronisch, nicht gedruckt, präsentiert wurde. Die Frage richtete sich an diejenigen, die angaben, dass sie beides gelesen haben (gedruckt und online), und 90 Prozent der Leser gaben an, dass sie Gedrucktes bevorzugen.
Auch wenn ich Ihnen völlig zustimme, was die Vorteile der Onlineveröffentlichung von Inhalten angeht (umfangreiche Medien, globale Reichweite, Links und so weiter), habe ich nach wie vor das Gefühl, dass das Lesen eines Artikels auf Papier eine ansprechendere Erfahrung bietet. Ich fühle mich mit dem Inhalt wohler und verbundener, und viele andere Leser haben uns mitgeteilt, dass es ihnen ähnlich geht. Nichtsdestotrotz ist die Tatsache, dass jedes Medium seine eigenen Vorteile hat, genau der Grund, warum wir das TechNet Magazin weiterhin in beiden Medien veröffentlichen. Nochmals Danke!
– Joshua Hoffman, Chefredakteur


Toolbox Neue Produkte für IT-Experten
Greg Steen

Überwachen Sie Ihre Server
Mastering SQL Server 2005 Reporting Services Infrastructure Design
sybex.com
Je komplexer unsere Infrastrukturen werden, desto mehr werden wir Administratoren mit Informationen überhäuft, wobei die meisten dieser Informationen in Dateien oder Datenbanken protokolliert werden. Doch um alle diese Informationen auswerten zu können, benötigen Sie ein Analysemodul und ein Tool, das die analysierten Daten in sinnvoller Form anzeigt. Ein sehr nützliches Tool dafür ist Microsoft® SQL Server® 2005 Reporting Services. Dieses Tool kann Ihnen helfen, alle diese Daten in aggregierter Form abzurufen und sie dann in einem von Menschen lesbaren Format darzustellen. Und es kann diese Informationen automatisch oder bei Bedarf an verschiedenen Orten zur Verfügung stellen, sodass Ihre Geschäftsbenutzer Daten, die für intelligentere Geschäftsentscheidungen erforderlich sind, fast in Echtzeit erhalten.
Für das Planen, Bereitstellen und Verwalten einer erfolgreichen Reporting Services-Infrastruktur (oder einer beliebigen neuen Serverinfrastruktur), die die Anforderungen Ihres Unternehmens erfüllt und mit Ihrem Unternehmen wächst, sind Vorbereitung, Fachkenntnisse und ein gewisses Stehvermögen erforderlich. Wenn Sie eine Reporting Services-Instanz bereitstellen möchten, kann „Mastering SQL Server 2005 Reporting Services Infrastructure Design“ von Joseph L. Jorden (Sybex, 2007) Ihre Kenntnisse verbessern und Sie durch die Schlüsselelemente zum erfolgreichen Betrieb führen.
Das Buch befasst sich mit den bisweilen vergessenen Aspekten der Systemimplementierung, bevor es die technischen Einzelheiten einer Reporting Services-Bereitstellung vorstellt. Bei diesen grundlegenden Aspekten geht es um die Frage, warum Sie das System und die Anforderungen dieses geschäftlichen Einsatzes implementieren, und es wird definiert, wie Sie die Erwartungen Ihrer Endbenutzer verwalten können. Ein Kapitel befasst sich mit den Strategien zur Änderungsverwaltung in Ihrem Berichtssystem. Dieser Abschnitt befasst sich mit verschiedenen Ansätzen bei der Änderungsverwaltung und bietet eine Vorlage und Richtlinien für Anforderungsformulare für die Änderungsverwaltung. Ich bin kein Befürworter von Vorteilen der Bürokratie, doch ein wenig Struktur sorgt hier für eine viel stabilere Umgebung.
Nach der Behandlung der geschäftlichen Seite von Reporting Services geht es in dem Buch um die Bereitstellung, wobei die Grundlagen von Installation, Skalierung, Automatisierung und Konfiguration erläutert werden. Es bietet auch Tipps zur Integration mit Microsoft Windows® SharePoint® Services (WSS). Sie erhalten einen guten Ausgangspunkt für eine Bereitstellungsprüfliste, damit Hindernisse vermieden werden können.
Eines der praktischen neuen Features von SQL Server 2005 Reporting Services sind Ad-Hoc- Berichterstattungsfunktionen. Mithilfe dieses Features können Ihre Benutzer Berichte einfach und schnell erstellen. Das Buch erklärt, wie dieses Feature aktiviert und der Berichtsgenerator eingerichtet wird. Als nächstes erläutert das Buch, wie Abonnements für Berichte erstellt werden, die es Ihnen ermöglichen, Ihre Berichte planmäßig über E-Mail, Dateifreigabe oder integrierte SharePoint-Übermittlung zu generieren und zu verteilen.
Alle Systeme müssen im Lauf der Zeit gewartet werden, und das nächste Kapitel befasst sich mit wesentlichen Aufgaben wie dem Erstellen einer Sicherungskopie Ihrer Instanz, dem Verwalten von Berichtsinhalten und dem Behandeln von Problemen mit den verfügbaren Protokollen. Es ist auch ein gutes Kapitel zum Thema Sicherheit vorhanden, in dem die Authentifizierungs- und Autorisierungsoptionen für Ihre Bereitstellung abgedeckt werden.
Programmierer werden das Kapitel über das Erweitern von Reporting Services sowie das Kapitel über das Zugreifen auf und Ändern von Berichten mithilfe von Anwendungen, die auf Microsoft .NET Framework basieren, zu schätzen wissen. Die Berichtsdefinitionssprache (Report Definition Language, RDL) ist ein grundlegender Aspekt von Reporting Services, und ein Kapitel ist einigen der Ihnen zur Verfügung stehenden Hauptelemente, der Struktur einer RDL-Datei und den Grundlagen des Erstellens und Bereitstellens dieser Dateien gewidmet.
Das Buch schließt mit einigen Tipps und Tricks in Bezug auf die Leistungsabstimmung Ihrer Reporting Services-Bereitstellung. Sie finden Informationen zur Leistungsmessung, zu Änderungen an Konfigurationsdateien und zum Verwenden der Performance Console. Es gibt auch einen guten Anhang zum Integrieren von Reporting Services mit SharePoint. Wenn Sie SQL Server 2005 Reporting Services in Ihrer Umgebung einsetzen möchten, sollten Sie sich dieses Buch einmal ansehen. Es kann Ihnen helfen, schnell aus den Startlöchern zu kommen.

Preis: 49,99 $ (Direktversand).

Überwachen Sie Ihre Umgebung
Alloy Discovery Professional Edition
alloy-software.com
Informationen für ein bestimmtes System in Ihrem Bereich schnell abrufen zu können, ist wesentlich für das Durchführen Ihrer Aufgaben, zur Behandlung von Problemen und zur Überprüfung, ob Systeme auf dem neuesten Stand sind und Sicherheits- und Softwarerichtlinien entsprechen. Die Informationen in einem Format vorliegen zu haben, das für den Geschäftsbenutzer benutzerfreundlich ist und Bewertungen Ihrer Infrastruktur auf einen Blick ermöglicht, kann ein großer Vorteil sein (ganz abgesehen davon, dass die Geschäftsleitung Ihr Wissen schätzen wird). Zudem kann dieser schnelle Zugriff auf Informationen Ihnen helfen festzustellen, wer welche Software verwendet, um sicherzustellen, dass Ihre Benutzer ordnungsgemäß lizenziert sind. Ein solches Bestands- und Überwachungstool, das für Sie von Interesse sein könnte, ist Alloy Discovery Professional Edition von Alloy Software.
Diese Anwendung lässt sich einfach einrichten, und Sie können die Überwachung für eine Gruppe oder eine Reihe von Computern in Ihrem LAN sehr schnell starten. Die Benutzeroberfläche gruppiert Ihre Computer in einer organisierten Ansicht, die der Ansicht in Internet Explorer® stark ähnelt, und wenn Sie Ihre Gruppe oder Gruppen überwachbarer Computer eingerichtet haben, erfolgt die Überwachung einer Gruppe einfach mit nur einem Klick. Die gesammelten Informationen sind recht umfangreich und reichen von Hardware, Software und Geräten bis hin zu Druckern, Freigaben und sogar Ereignissen. Sie können sich auch Ressourcentags, Seriennummern, Betriebszeitstatistiken, Umgebungsvariablen, die Netzwerkkonfiguration und lokale Benutzerkonten anzeigen lassen. Sie können praktisch alles, was Sie über Ihre Umgebung wissen müssen, sammeln, ohne Ihren Schreibtisch zu verlassen (obwohl ich aus gesundheitlichen Gründen hin und wieder einen Spaziergang empfehle).
Neben der Überwachung von Computern bei Bedarf können Sie auch Überwachungen planen. Für Computer, die sich außerhalb Ihres direkten LAN befinden und für jene, zu denen Sie keine Remoteverbindung mit ausreichenden Berechtigungen zum Durchführen der Überwachungsaufgabe herstellen können, bietet Alloy Discovery eine agentbasierte Methode zur Überwachung von Zielcomputern. Für diese Art der Überwachung kann ein Skript erstellt werden. Anschließend kann die regelmäßige Ausführung oder die Ausführung über den Agent geplant werden, die dann vom Agent per E-Mail an Ihr Alloy Discovery-Hauptrepository gesendet wird. Eine weitere Option besteht darin, den Agent auf ein Flashlaufwerk zu stellen und die einzelnen Computer aufzusuchen, um eine Überwachung zu initiieren. Nach der Überwachung können Sie die Informationen abhängig der für das Hauptrepository verwendeten Methode automatisch oder manuell synchronisieren.
Alloy Discovery verfügt auch über Filter, die Sie auf Ihre Überwachungsergebnisse anwenden können, um den gesamten Bestand zu analysieren. Sie können beispielsweise sehen, wie viele Computer ein Speicherupgrade brauchen, um eine Anwendung zu unterstützen, oder auf welchen Computern in Ihrer Umgebung Windows® XP Professional statt Windows Vista® Business Edition ausgeführt wird.
Wenn Sie Ihre Daten vorliegen haben, werden Sie Berichte erstellen wollen. Die Anwendung kann Berichte auf HTML-Seiten veröffentlichen, die Sie durchsuchen können. Und Sie können eine geplante Aufgabe einrichten, um diese Berichte kontinuierlich zu generieren, was eine hervorragende Option für Ihr Network Operations Center ist. Zudem können Sie die gesamten Überwachungsinformationen nach XML, CSV oder Microsoft Excel® exportieren, um beispielsweise Nachweise für Wirtschaftsprüfer bereitzustellen.

Preis: 795 $ (Direktversand) für das Basisprodukt plus 3 $ für jeden Knoten. ﻿
Behalten Sie Ihre Umgebung mit Alloy Discovery im Auge (zum Vergrößern auf das Bild klicken)

Verwalten Sie Ihre Kennwörter
Password Corral
cygnusproductions.com
Kennwörter sind heute Bestandteil der vernetzten Welt. (Zumindest, bis alles auf der Biometrie basieren wird oder bis wir eine völlig vertrauenswürdige Utopie erstellen, doch beide Szenarios dürften in naher Zukunft nicht Wirklichkeit werden.) Wahrscheinlich haben Sie genau wie ich verschiedene Arten von Kennwörtern für verschiedene Arten von Umgebungen, und Sie werden diese Kennwörter über verschiedene Medien hinweg abwandeln.
Neben den normalen, hauptsächlichen Verwendungsbereichen gibt es Systemkennwörter für Administratorkonten, Dienstkonten und verschiedene Domänenkonten. Und selbstverständlich sind allen diesen verschiedenen Kennwörtern unterschiedliche Benutzernamen zugeordnet. Und so weiter und so fort. Wie können Sie nun sicher und problemlos den Überblick über alle diese Kennwörter behalten?
Eine Möglichkeit besteht darin, ein Kennwortrepository zu verwenden, das alle Daten in einer stark verschlüsselten Datei sichert. Eine gute Lösung dazu ist Password Corral. Diese leicht zu verwendende und stark verschlüsselte Anwendung, die Diamond2- oder Blowfish- Verschlüsselung zum Verschlüsseln aller Ihrer Kennwörter in einer Datei verwendet, gibt es seit 2001. Sie hat sich im Lauf der Zeit bewährt und wird für derzeitige und zukünftige Veröffentlichungen weiter aktiv unterstützt und weiter entwickelt.
Nach dem Installieren des Programms erhalten Sie Ihre neue Kennwortdatei durch Erstellen eines neuen Benutzers und Auswählen eines Speicherorts für die Kennwortdatei im System (oder auf dem Netzwerklaufwerk). Wenn Sie alle Ihre vertraulichen Kennwortinformationen für alle Ihre Konten in einer einzelnen Password Corral-Datei aufbewahren möchten, sollte Ihr Password Corral-Kennwort natürlich enorm sicher sein und oft geändert werden. Dieses eine Kennwort müssen Sie wirklich im Gedächtnis behalten und schützen, und Sie sollten intelligent damit umgehen.
Nach der Authentifizierung bietet Password Corral eine Benutzeroberfläche, die dem Internet Explorer mit einer hierarchischen Ordnerstruktur links und einem Detailbereich rechts sehr ähnelt. Sie können Ihre Kennwörter in einer baumartigen Ordnerstruktur organisieren. Für jedes Kennwort kann es eine Beschreibung, einen Benutzernamen, ein Kennwort, eine Verweis-URL, eine Verweis-E-Mail-Adresse und Kommentare zu dem Konto geben. Zusätzlich können Sie der Anwendung mitteilen, welche Kennwortrichtlinie für das jeweilige Konto gilt, und die Anzahl der Tage im Ablaufzyklus sowie die Anzahl der verbleibenden Tage angeben, bis ein bestimmtes Kennwort abläuft.
Eine der Ansichtsoptionen umfasst das Filtern abgelaufener Kennwörter, damit Sie sehen können, welches Ihrer Konten bei der nächsten Verwendung zurückgesetzt werden muss. Ein weiteres interessantes Feature besteht darin, dass das Programm für Sie ein Kennwort generieren kann, sodass Sie sich nicht selbst sichere Kennwörter für jedes Konto ausdenken müssen. Dieser Kennwortgenerator ist ebenfalls anpassbar, d. h., Sie können ihn für die gewünschte Länge, Komplexität und Zeichenzusammensetzung einrichten.
Ein weiteres nützliches Feature besteht darin, dass Sie nach dem Eingeben aller Ihrer Kennwörter problemlos anhand der Felder, für die Sie Daten eingegeben haben, nach ihnen suchen können, was besonders gut für die Suche nach selten verwendeten Konten in einer tiefen Ordnerstruktur ist. Sie können auch ein Zeitlimit für die Anwendung festlegen, sodass die Anwendung automatisch gesperrt wird und Ihre vertraulichen Informationen geschützt werden, wenn Sie vergessen, Password Corral zu schließen. Die Anwendung löscht beim Beenden auch standardmäßig automatisch Ihre Zwischenablage, falls Ihr Kennwort, das Sie in Ihren Puffer kopiert haben, nach dem Verwenden noch dort vorhanden sein sollte.
Wenn Sie ständigen Zugriff auf Ihre Kennwörter brauchen, können Sie die Taskleistensymboloption der Anwendung verwenden, sodass die Anwendung von dort aus einfach durch Doppelklicken gestartet werden kann. Wenn Sie Password Corral verwenden und Ihre Konten woanders speichern möchten, ermöglicht die Anwendung auch deren Import aus einer Datei, sodass Sie sich nicht um die ganzen zusätzlichen Dateneingaben kümmern müssen. Sie können Ihre Kennwörter sogar exportieren und ausdrucken, doch Sie sollten den Ausdruck anschließend unbedingt vernichten! Alles in allem ist dies ein sehr nützliches kostenloses Tool.

Preis: Kostenlos.
Behalten Sie mit Password Corral alle Ihre Kennwörter im Auge (zum Vergrößern auf das Bild klicken)

Überwachen der Dateiverwendung
File System Auditor
scriptlogic.com
Das Verwalten eines Überwachungspfads für freigegebene Dateisysteme kann Ihnen viel Kopfzerbrechen ersparen. Doch wichtiger ist, dass es eine Notwendigkeit ist, um bestimmte Standards von Richtlinien für die Datenaufbewahrung zu erfüllen. Um herauszufinden, wer was und wann gemacht hat, könnten Sie sich File System Auditor von ScriptLogic ansehen. Diese Anwendung ist ein zentralisiertes Verwaltungssystem, das die Verwendung von Dateien auf Zielsystemen fast in Echtzeit überwacht und die Informationen in einer SQL Server-Datenbank zum Zweck der Verwendungsberichterstattung speichert.
File System Auditor unterstützt Microsoft SQL Server Desktop Engine (MSDE), SQL Server 2000 und alle Versionen von SQL Server 2005 (einschließlich des kostenlosen SQL Server 2005 Express). Für jedes überwachte System muss ein Agent installiert werden, der zum Überwachen der Dateiverwendung und für Meldungen an SQL Server dient. Nach der Installation verwenden Sie den Assistenten für Datenbanken zum Erstellen des Datenbankrepository, in dem alle Überwachungsinformationen aufgezeichnet werden.
Als Systemadministrator denken Sie bei einem stark genutzten System jetzt wahrscheinlich an Bandbreite und Ausführlichkeit, doch die Anwendung verwendet angeblich ein intelligentes Überwachungssystem, das verschiedene Aktionen in einem einzelnen Überwachungseintrag verbindet. In Bezug auf die Bandbreite verwendet File System Auditor nur 100 Byte Daten für den ersten Zugriff auf eine Datei und 10 bis 20 Byte für jeden nachfolgenden Zugriff.
Vielleicht fragen Sie sich, warum dazu nicht einfach die systemeigene Windows-Überwachung verwendet werden sollte, doch die zentralisierte Verwaltung, die Ereignisverbindung und die Berichtfeatures einer dedizierten Überwachungsanwendung sind etwas flexibler und brauchbarer. Zudem lassen sich Verweise von anderen Systemen aus viel einfacher erstellen, wenn alle diese Informationen in einer SQL-Datenbank enthalten sind.
Nach dem Konfigurieren Ihrer Datenbank richten Sie Ihre Agenten auf den Zielservern über die Agent Configuration Console ein. Sie können entweder den Namen eines Servers eingeben oder ihn mithilfe von Active Directory® suchen. File System Auditor unterstützt auch Clusterdateiserver, sodass Sie den Namen Ihrer Clusterinstanz eingeben können. Als nächstes installieren Sie den Agent-Dienst (durch Klicken auf eine Schaltfläche, wenn Ihr Konto Remotezugriff hat) und wählen das Windows- oder SQL Server-Konto aus, das der Agent für die Verbindung mit der File System Auditor-Datenbank verwenden soll.
Auf einer Basis pro Dienst können Sie drei verschiedene Arten von Überwachungsausschlüssen einrichten: Path Filters (Pfadfilter), Process Exclusion Filters (Prozessausschlussfilter) und User Exclusion Filters (Benutzerausschlussfilter). Mithilfe von Path Filters können Sie einen Pfad auswählen und entscheiden, ob bestimmte Ordner und Dateiereignisse (beispielsweise Berechtigungsänderungen, Erstellen und Löschen) für alle Dateien oder bestimmte Dateitypen einbezogen oder ausgeschlossen werden sollen. Mithilfe von Process Exclusions und User Exclusions können Sie dasselbe für Datei- und Ordnerereignisse durchführen, die einen bestimmten Prozess auf dem Zielserver betreffen, doch die Dateitypenfilter werden dabei nicht unterstützt.
Nach dem Einrichten und Starten des Sammelns von Überwachungsereignissen starten Sie die Report Configuration Console, um diese Überwachungsdaten zu verwenden. Zum Einrichten eines Berichts können Sie einige Filter für die Daten einschließlich Benutzer, bestimmte Datei- oder Ordnerereignisse, Pfade, Server, Prozesse und Datenbereiche festlegen. Zudem können Sie dann den Bericht planen und festlegen, dass die Anwendung den veröffentlichten Bericht per E-Mail über Ihren SMTP-Server sendet. Um zu sehen, was mit Dateien in einem System in Echtzeit geschieht, können Sie schließlich den Real Time Viewer von File System Auditor starten, um sich die rohen Ereignisse in einem Bildlauf ähnlich wie beim „Beschatten“ einer Protokolldatei anzusehen.

Preis: Ab 800 $ (Direktversand) für das Programm und eine Serverlizenz.
Überwachen der Dateiverwendung mithilfe von File System Auditor (zum Vergrößern auf das Bild klicken)

Greg Steen ist Technologieexperte, Unternehmer und Enthusiast. Er ist immer auf der Suche nach neuen Tools, um IT-Experten Betriebs-, Qualitätssicherungs- und Entwicklungsprozesse zu erleichtern.


Schwerpunkt Dienstprogramme Windows-Speicherdiagnose
Lance Whitney

Codedownload verfügbar unter: Utility2008_09.exe (640 KB)

Inhalt
Abrufen der Windows-Speicherdiagnose
Testen des Speichers
Einer der PCs, die Sie unterstützen, bereitet Probleme samt Einfrieren, Absturz und Bluescreens. Versagt hier ein Teil der Hardware? Wird das Problem von einer neu installierten Anwendung verursacht? Oder könnte es an fehlerhaftem Speicher liegen? Eine Möglichkeit, dies mit Sicherheit festzustellen, ist das kostenlose Dienstprogramm der Microsoft® Windows®-Speicherdiagnose. Dieses Tool führt verschiedene Tests für den RAM Ihres PC aus, um zu bestimmen, ob eines der Module fehlerhaft ist.

Abrufen der Windows-Speicherdiagnose
Um die Windows-Speicherdiagnose zu verwenden, laden Sie das Tool unter oca.microsoft.com/en/windiag.asp herunter, und führen Sie mtinst.exe, die einzige Datei des Programms, aus. Beachten Sie, dass Sie die Windows-Speicherdiagnose nicht installieren müssen. Das Tool bietet Ihnen zwei Optionen, wie im Bildschirmfoto angezeigt:
Abbildung 1 Optionen der Windows-Speicherdiagnose zum Erstellen startbarer Medien (zum Vergrößern auf das Bild klicken)
  • „Create Startup Disk“ zum Erstellen einer Startdiskette mit dem Programm.
  • „Save CD Image to Disk“ zum Speichern eines ISO-Abbilds des Programms auf Ihrer Festplatte. Dann können Sie dieses Abbild auf eine CD brennen und es mit einer CD-Erstellungssoftware startbar machen. Nachdem Sie Ihre startbaren Medien erstellt haben, starten Sie Ihren PC neu, und starten Sie das Diagnoseprogramm von der Diskette oder der CD.
Testen des Speichers
Wenn das Programm geladen wird, fängt es sofort an, Ihren RAM zu scannen. Das Windows-Speicherdiagnosetool startet im Standardmodus, der 6 verschiedene, aufeinander folgende Speichertests enthält, von denen jeder einen eindeutigen Algorithmus verwendet, um verschiedene Arten von Fehlern zu scannen. Ein Bildschirm zeigt jeden einzelnen Test an, während er ausgeführt wird, und listet seinen Fortschritt und den Bereich der gescannten Speicheradressen auf. Nachdem diese 6 Tests abgeschlossen sind, führt das Tool einen weiteren Durchlauf durch, bei dem die gleichen Tests verwendet werden, und führt einen Durchlauf nach dem anderen durch, bis Sie die Software beenden. In der Regel reicht jedoch ein Durchlauf aus, um festzustellen, ob der Speicher fehlerhaft ist.
Für eine ausführlichere Prüfung können Sie in den erweiterten Modus wechseln, der 11 separate Speichertests ausführt. Es gibt auch den Modus „Basic“ (Einfach), der nur 2 Tests ausführt, aber der Gründlichkeit halber werden der Standardmodus und der erweiterte Modus empfohlen. Wenn Sie die erweiterte Testsuite ausführen, lautet die Empfehlung, dass Sie die Windows-Speicherdiagnose über Nacht laufen lassen.
Nachdem jeder Test abgeschlossen ist, zeigt das Tool in einer Meldung an, ob der Test erfolgreich war oder fehlgeschlagen ist. Auf die Nachricht „Fehlgeschlagen“ folgen Details über den Fehler, und in der Regel weist dies auf einen Fehler in einem Ihrer RAM-Module hin. Je nach PC-Umgebung kann die Diagnose gegebenenfalls ein Speicherproblem auf ein bestimmtes Modul eingrenzen.
In diesem Fall wird im Menü die Option „View errors by memory module“ (Fehler nach Speichermodul anzeigen) angezeigt. Diese Option kann Ihnen helfen, bestimmte Module zu bestimmen, die fehlschlagen und ersetzt werden sollten.
In Bildschirm für die erweiterten Optionen haben Sie die Wahl zwischen „Basic“ (Einfach), „Standard“ und „Extended“ (Erweitert). Hier können Sie außerdem den Cache des Prozessors während der Scans ausschalten. Dadurch wird erreicht, dass das Tool direkt vom RAM auf die Daten zugreift, was einen gründlicheren Test gewährleistet. Der Systeminformationsbefehl listet die Kapazität und die Art des Arbeitsspeichers auf, der in jedem Steckplatz installiert ist.
Die Windows-Speicherdiagnose unterstützt x86-basierte Plattformen, einschließlich Intel Pentium- und Celeron-Prozessoren sowie AMD K6-, Athlon- und Duron-CPUs. Das Tool kann jedoch nur bis zu 4 GB RAM testen und kann über diesen Bereich hinaus keine Scans durchführen.
Sie können eine Version dieses Diagnosetools unter Windows Vista® unter „Verwaltung“ und in den Windows Vista-Installationsmedien unter der Option „Reparieren“ finden. Die Windows Vista-Version bietet jedoch nicht so viel visuelles Feedback bzw. nicht so viele Optionen. Achten Sie also darauf, dass Sie unbedingt die eigenständige Edition griffbereit haben, wenn Ihr PC das nächste Mal Probleme bereitet.
Lance Whitney ist IT-Berater, Schulungsleiter und Autor technischer Artikel. Er hat sich intensiv mit dem Optimieren von Windows-Arbeitsstationen und -Servern beschäftigt. Er ist von Haus aus Journalist und hat vor etwa 15 Jahren den Sprung in das kalte Wasser der IT-Welt getan.


Einblicke in SharePoint SharePoint-Verzeichnisintegration
Pav Cherny

Codedownload verfügbar unter: SharePoint2008_09.exe (2.775 KB)

Inhalt
SharePoint-Verzeichnisverwaltungsdienst
Benutzerdefinierter Verzeichnisverwaltungsdienst
SharePoint und ILM

Microsoft Windows SharePoint Services (WSS) 3.0 und Microsoft Office SharePoint Server (MOSS) 2007 beinhalten Verzeichnissynchronisierungsfunktionen in Form eines Verzeichnisverwaltungsdiensts, der E-Mail-aktivierte Kontakte und Gruppenobjekte für SharePoint-Ressourcen in Active Directory bereitstellen kann. Durch die Bereitstellung dieser Arten von
Empfängerobjekten für SharePoint®-Ressourcen können Benutzer beim Senden von Dokumenten und anderen Informationen SharePoint-Bibliotheken, -Listen und -Gruppen direkt aus dem Microsoft® Outlook®-Adressbuch auswählen.
SharePoint-Empfängerobjekte bieten auch eine Methode zum Steuern von Nachrichtenübertragung und Formatkonvertierungen in einer Exchange Server-Organisation. Unter anderem können Sie verhindern, dass nicht authentifizierte Absender wie Spammer Nachrichten an SharePoint-Bibliotheken senden, indem Sie in Active Directory® Einschränkungen für die Nachrichtenübermittlung festlegen.
Die SharePoint-Verzeichnisverwaltungsfunktionen sind jedoch begrenzt und setzen zum Zeitpunkt dieses Artikels Exchange Server 2003 als zugrunde liegendes Messagingsystem voraus. Wenn Sie Exchange Server 2007 oder ein Drittanbieter-Messagingsystem verwenden, müssen Sie die integrierten Verzeichnisverwaltungsfeatures vorerst durch eine benutzerdefinierte Lösung erweitern oder ersetzen, um den gewünschten Interoperabilitätsgrad zu erreichen.
In diesem Artikel wird zunächst kurz auf die SharePoint-Verzeichnisverwaltungsfeatures eingegangen und dann ein Ansatz zur Überwindung der vorhandenen Einschränkungen erläutert. Die Prämisse besteht darin, dass der integrierte Verzeichnisverwaltungsdienst nur die grundlegendsten Benutzeranforderungen erfüllt. Umgebungen mit verschiedenen Messagingsystemen und Verzeichnisplattformen erfordern eine größere Flexibilität und Funktionalität. Wenn Sie die integrierte Komponente durch eine benutzerdefinierte Lösung ersetzen, können Sie SharePoint-Empfängerinformationen mit jeder Verzeichnislösung synchronisieren, die eine API oder Importfunktionen bietet.
Um dies zu beweisen, wird Ihnen in diesem Artikel gezeigt, wie Sie SharePoint-Empfängerinformationen in einer mit Exchange Server 2007 kompatiblen Weise synchronisieren können. Analog dazu können Sie eine benutzerdefinierte Lösung verwenden, um Empfängerinformationen mit IBM Lotus Notes oder anderen Systemen zu synchronisieren.
Sie erhalten auch die Möglichkeit, die Prozesse zur Verzeichnisbereitstellung auf Grundlage eines Metaverzeichnisdiensts wie Identity Information Server, der in Microsoft Identity Lifecycle Manager (ILM) 2007 Feature Pack 1 (FP1) enthalten ist, zu zentralisieren. Insbesondere erfahren Sie, wie Sie SharePoint in ILM 2007 integrieren können, um die Bereitstellung von Verzeichnisobjekten für SharePoint-Dokumentbibliotheken zu koordinieren. Sie finden die Tools, den Quellcode und die schrittweisen Anleitungen für die Erstellung dieser Lösung im Begleitmaterial zu diesem Artikel, das im Codedownloadbereich von .com zur Verfügung steht.

SharePoint-Verzeichnisverwaltungsdienst
Im Unterschied zum Exchange Server-System, bei dem Active Directory für nahezu alle Konfigurations- und Empfängerinformationen verwendet wird, basiert SharePoint auf Konfigurations- und Inhaltsdatenbanken. SharePoint muss daher Empfängerinformationen für E-Mail-aktivierte Bibliotheken, Listen und Gruppen aus den entsprechenden Datenbanken an ein Verzeichnis verteilen. Messagingclients erwarten schließlich, Empfängerinformationen in einem Adressbuch zu finden, das in der Regel aus Verzeichnisobjekten generiert wird.
SharePoint enthält zu diesem Zweck standardmäßig einen Verzeichnisverwaltungsdienst, der Bestandteil des E-Mail-Integrationswebdiensts (SharepointEmailWS.asmx) ist, den Sie in der SharePoint 3.0-Zentraladministration auf der Seite „Vorgänge“ unter „Einstellungen für eingehende E-Mail“ konfigurieren können. Abbildung 1 zeigt die Funktionsweise des integrierten Verzeichnisverwaltungsdiensts.
Abbildung 1 Architektur des SharePoint-Verzeichnisverwaltungsdiensts (zum Vergrößern auf das Bild klicken)
Wenn Sie eine Webfarm für die Verzeichnisverwaltung aktivieren und dann einer Bibliothek, Liste oder Gruppe eine E-Mail-Adresse für den Empfang von Nachrichten zuweisen (beispielsweise durch Verwendung von EmailSettings.aspx), können Sie den E-Mail-Integrationswebdienst implizit aufrufen, um entsprechende Empfängerobjekte in Active Directory bereitzustellen. Zuerst speichert SharePoint die E-Mail-Adressinformationen in der Inhaltsdatenbank. Dann sendet SharePoint die Bereitstellungsanforderung unter Verwendung der Identität des Webanwendungspoolkontos für Sie an den E-Mail-Integrationswebdienst. Wenn die Bereitstellungsanforderung fehlschlägt, erhalten Sie zwar E-Mail-Adressinformationen in der Inhaltsdatenbank, aber ohne entsprechende Empfängerobjekte in Active Directory.
Zusätzliche Ressourcen
  • Website zu SharePoint-Produkten und -Technologien
  • Windows SharePoint Services-TechCenter
  • Windows SharePoint Services-Entwicklercenter
  • Teamblog zu Microsoft SharePoint-Produkten und -Technologien
Bereitstellungsanforderungen können aus verschiedenen Gründen fehlschlagen. Der häufigste Grund sind fehlende Zugriffsberechtigungen für die IIS-Metabasis. Da SharepointEmailWS.asmx als Webdienst für Anwendungspoolkonten entwickelt wurde, prüft dieser Webdienst die IIS-Metabasis, um festzustellen, ob der Aufrufer ein Anwendungspoolkonto ist. Ist das nicht Fall, verweigert er unabhängig von Ihren SharePoint-Website- und Active Directory-Berechtigungsstufen den Zugriff.
Da SharepointEmailWS.asmx diese Zugriffsprüfung jedoch mit der Identität des Aufrufers durchführt, benötigt das aufrufende Anwendungspoolkonto Zugriff auf die Metabasis, um seine eigenen Zugriffsberechtigungen zu überprüfen. Dadurch sind Sie gezwungen, Ihren Anwendungspoolkonten erweiterte Berechtigungen zu erteilen, damit der Vorgang erfolgreich durchgeführt wird.
Natürlich ergeben sich aus erweiterten Berechtigungen für einen Webserver Sicherheitsprobleme. Es gibt bessere Möglichkeiten für die Steuerung des Zugriffs auf einen ASP.NET-Webdienst. Außerdem erwartet SharePoint, den Verzeichnisverwaltungsdienst auf der Zentraladministrationswebsite zu finden. Diese Website ist jedoch in einer Webfarm, die zur Verkleinerung der Angriffsfläche gesperrt wurde, nicht dauerhaft verfügbar. Wenn Sie den integrierten Verzeichnisverwaltungsdienst in Ihrer SharePoint-Produktionsumgebung verwenden möchten, müssen Sie daher eine schwächere Sicherheitskonfiguration hinnehmen.
Weitere Einschränkungen beruhen auf der Tatsache, dass der integrierte Verzeichnisverwaltungsdienst auf einer eng gekoppelten Client/Server-Architektur basiert. Microsoft.SharePoint.dll verwendet System.DirectoryServices.dll direkt, sodass Sie keine eigene Logik zur Anpassung des Bereitstellungsprozesses implementieren können. So werden beispielsweise durch die Implementierung des integrierten Verzeichnisverwaltungsdiensts nicht alle Empfängerattribute zur Unterstützung von Exchange Server 2007 geschrieben, und es ist keine Option für die Anpassung der Attributgenerierungsregeln vorhanden.
Die fehlende Möglichkeit zum Implementieren eigener Logik bedeutet auch, dass Sie den Bereitstellungsprozess nicht anpassen können, um beispielsweise benutzerdefinierte Genehmigungen zu implementieren. SharePoint unterstützt Genehmigungsprozesse für Gruppen, aber dieses Feature basiert auf der Zentraladministrationswebsite. Nur SharePoint-Farmadministratoren können ausstehende Anforderungen genehmigen. SharePoint-Administratoren sind jedoch nicht unbedingt für die Genehmigung von Active Directory-Bereitstellungsprozessen verantwortlich.
Noch wichtiger ist vielleicht, dass es keine Genehmigungsprozesse für E-Mail-aktivierte Dokumentbibliotheken und Listen gibt. Wenn Sie die Verzeichnisverwaltung ermöglichen, erteilen Sie im Grunde allen Websiteadministratoren in Ihrer Webfarm das Recht, E-Mail-aktivierte Kontakte und Gruppen in Active Directory zu erstellen. Es ist auch nicht möglich, die Empfängerverwaltung auf Grundlage von Organisationseinheiten (Organizational Units, OUs) zu strukturieren, weil alle Empfängerobjekte pro Webfarm in derselben Organisationseinheit platziert werden.
Sie können die Empfängerobjekte nicht in eine andere Organisationseinheit verschieben, weil der Verzeichnisverwaltungsdienst erwartet, die Empfängerobjekte in der SharePoint-Organisationseinheit zu finden, und Sie müssen dem Anwendungspoolkonto der SharePoint-Zentraladministration Administratorrechte in Active Directory erteilen. Darüber hinaus gibt es keine Möglichkeit zum Implementieren der bidirektionalen Synchronisierung zwischen SharePoint und Active Directory. Beim Ändern von Objektattributen in Active Directory werden die Änderungen nicht wieder an die SharePoint-Umgebung verteilt.

Benutzerdefinierter Verzeichnisverwaltungsdienst
Nachdem nun festgestellt wurde, dass der integrierte Verzeichnisverwaltungsdienst das Potenzial für zusätzliche Flexibilität bietet, sollen jetzt einige Alternativen erläutert werden. Die gute Nachricht ist, dass SharePoint Ihnen die Implementierung eines eigenen Verzeichnisverwaltungsdiensts ermöglicht. Sie müssen Ihren Webdienst lediglich in der SharePoint 3.0-Zentraladministration auf der Seite „Vorgänge“ unter „Einstellungen für eingehende E-Mail“ als Remote-Verzeichnisverwaltungsdienst registrieren.
Ausführliche Schritt-für-Schritt-Anleitungen für die Bereitstellung und Registrierung eines benutzerdefinierten Webdiensts finden Sie im Arbeitsblatt „Directory Integration Based on a Custom Directory Management Service.xps“ (Verzeichnisintegration auf Grundlage eines benutzerdefinierten Verzeichnisverwaltungsdiensts) im Begleitmaterial. Darüber hinaus zeigt das Beispiel für einen benutzerdefinierten Webdienst, wie mit Exchange Server 2007 kompatible Empfängerobjekte in Active Directory ohne Cmdlets oder Exchange-Verwaltungstools bereitgestellt werden können. Den entsprechenden Quellcode finden Sie im Ordner „EmailIntegrationService“. Abbildung 2 zeigt die Lösungsarchitektur.
Abbildung 2 Architektur des benutzerdefinierten Verzeichnisverwaltungsdiensts (zum Vergrößern auf das Bild klicken)
Die Schnittstelle des benutzerdefinierten Webdiensts muss der im SharePoint SDK dokumentierten Verzeichnisverwaltungsdienst-Schnittstelle entsprechen. Wenn Sie auf der MSDN®-Website (msdn.microsoft.com) nach „SharepointEmailWS“ suchen, finden Sie alle erforderlichen Informationen. Sie können sich auch die Datei „Service.cs“ im Ordner „EmailIntegrationService\App_Code“ im Begleitmaterial ansehen. Diese Datei implementiert die erforderliche Webdienstschnittstelle, während sich der eigentliche Code für die Bereitstellung von Active Directory-Objekten in SPRecipient.cs befindet. Die UpdateRecipientAttributes-Funktion in SPRecipient.cs generiert beispielsweise die erforderlichen Exchange Server 2007-Attribute. SPRecipient.cs ist die Codedatei, die Sie ersetzen müssen, wenn Sie einen eigenen benutzerdefinierten Verzeichnisverwaltungsdienst entwickeln möchten.
Ein benutzerdefinierter Verzeichnisverwaltungsdienst ist ein geeignetes Tool für die Beseitigung erweiterter Berechtigungsanforderungen und die Integration von SharePoint in Verzeichnis- oder Messagingsysteme von Drittanbietern. Sie müssen nicht die IIS-Metabasis prüfen, um den Webdienstzugriff auf Anwendungspoolkonten zu beschränken. Stattdessen können Sie der Datei „web.config“ Ihres Webdiensts einen <authorization>-Abschnitt hinzufügen. (Ein Beispiel finden Sie im Begleitmaterial.)
Es bleiben jedoch mehrere Probleme bestehen, da Sie nicht steuern können, ob und wann SharePoint Ihren Verzeichnisverwaltungsdienst aufruft. SharePoint ruft unter anderem den Verzeichnisverwaltungsdienst nicht auf, wenn Sie eine E-Mail-aktivierte Dokumentbibliothek oder Liste löschen, sodass ein ungültiges Empfängerobjekt in Active Directory verbleibt. Unabhängig davon, ob Sie den integrierten Verzeichnisverwaltungsdienst oder eine benutzerdefinierte Lösung verwenden, können Sie nicht garantieren, dass die Empfängerinformationen in Active Directory den SharePoint-Ressourcen entsprechen.

SharePoint und ILM
Um eine zuverlässige Verzeichnisintegration zu erzielen, sollten Sie die Bereitstellung eines professionellen Verzeichnisverwaltungspakets wie ILM in Betracht ziehen. Dieses System beruht auf einem Pull-basierten Verzeichnissynchronisierungsmodell. Verwaltungsagents rufen Informationen mittels Pull aus ihren verbundenen Quellen ab, importieren sie in ein gemeinsames Metaverzeichnis und exportieren Informationen aus dem Metaverzeichnis in ihre verbundenen Systeme. Quellsysteme übertragen ihre Informationen in der Regel nicht mittels Push in das Metaverzeichnis. Durch die Übertragung von Informationen mittels Pull können Sie die Konsistenz mit jedem Synchronisierungszyklus sicherstellen.
Ein weiterer Vorteil besteht darin, dass ILM mehrere Verwaltungsagents zur standardmäßigen Unterstützung von Active Directory, Lotus Notes und verschiedener anderer Systeme enthält. Sie müssen lediglich einen benutzerdefinierten Verwaltungsagent für SharePoint implementieren, um SharePoint-Informationen mit einer anderen unterstützten Verzeichnisplattform in Ihrer Umgebung zu synchronisieren.
Sie müssen die Logik zum Abrufen der gewünschten Informationen aus SharePoint implementieren, die Informationen in einer Importdatei speichern und die importierten Informationen in das Metaverzeichnis übertragen. Es ist jedoch nicht erforderlich, dass Sie die Logik für den Export dieser Informationen aus dem Metaverzeichnis in Active Directory oder eine andere Verzeichnisplattform implementieren. Abbildung 3 zeigt, wie die Synchronisierung von SharePoint zu Active Directory mithilfe von ILM implementiert wird. Es ist auch möglich, die Synchronisierung in der anderen Richtung zur Bereitstellung von SharePoint-Ressourcen für Verzeichnisobjekte zu erreichen, obwohl dies als unnötig oder optional betrachtet werden kann.
Abbildung 3 Verzeichnisintegration auf Grundlage von Identity Lifecycle Manager (zum Vergrößern auf das Bild klicken)
Ein guter Ausgangspunkt für die Entwicklung eines SharePoint-Verwaltungsagent ist der Artikel „Verbinden von ILM 2007 mit SharePoint Services-Listen“ von Alex Tcherniakhovski unter blogs.msdn.com/alextch/archive/2007/09/02/wsslistsandilm.aspx. Alex Tcherniakhovski zeigt, wie eine ILM-basierte Verzeichnisverwaltungslösung erstellt wird, die darauf beruht, dass InfoPath®-basierte Bereitstellungsanforderungen an eine Dokumentbibliothek gesendet werden. Der Verwaltungsagent von Alex Tcherniakhovski ruft alle genehmigten Anforderungen aus der Dokumentbibliothek ab und erstellt entsprechende Metaverzeichnisobjekte, die dann in verbundene Verzeichnisse exportiert werden können.
Standardmäßig generiert SharePoint jedoch keine InfoPath-basierten Bereitstellungsanforderungen, wenn Sie eine Liste oder Gruppe für E-Mail aktivieren. Sie können dies zwar durch einen benutzerdefinierten Verzeichnisverwaltungsdienst erreichen, aber dann treten die bereits erwähnten Konsistenzprobleme auf, weil SharePoint den Verzeichnisverwaltungsdienst nicht unter allen Umständen aufruft. Aus diesem Grund empfiehlt es sich, dass Ihr Verwaltungsagent die gewünschten SharePoint-Empfängerinformationen direkt aus den Listen und Gruppen in Ihrer Websitesammlung abruft. Wenn Sie Genehmigungsprozesse benötigen, können Sie dann InfoPath-basierte Bereitstellungsanforderungen für neue Ressourcen im Verwaltungsagent generieren und anschließend alle genehmigten Anforderungen verarbeiten.
Für das Abrufen von SharePoint-Informationen haben Sie mehrere Optionen. Sie können die Informationen direkt aus den Inhaltsdatenbanken lesen, das SharePoint-Objektmodell verwenden oder SharePoint-Webdienste nutzen.
Der direkte Zugriff auf Inhaltsdatenbanken ist nicht empfehlenswert, da die Datenbankstrukturen sich in zukünftigen Versionen ändern können, wodurch die Funktionstüchtigkeit Ihrer Verzeichnisverwaltungslösung beeinträchtigt werden würde.
Die direkte Verwendung des SharePoint-Objektmodells in Ihrem Verwaltungsagent ist ähnlich problematisch, da das Objektmodell erfordert, dass Sie den Code lokal ausführen. Die Installation von ILM auf einem Webserver in jeder SharePoint-Farm in Ihrer Umgebung kann jedoch die Verzeichnisverwaltungsinfrastruktur verkomplizieren.
Möglicherweise denken Sie an die Verwendung von SharePoint-Webdiensten. Dies wirft jedoch eine weitere Schwierigkeit auf, weil über SharePoint-Webdienste nicht problemlos auf die gewünschten Informationen wie E-Mail-Adressinformationen für SharePoint-Gruppen oder die Anzeigeadresse des Posteingangsservers zugegriffen werden kann.
Letztendlich scheint es am besten, einen benutzerdefinierten SharePoint-Webdienst zu implementieren, der die gewünschten Informationen mithilfe des SharePoint-Objektmodells abruft und sie in Form eines XML-Dokuments an den Aufrufer zurückgibt. Jetzt können Sie die ILM-Bereitstellung zentralisieren und beliebig viele Farmen und Websitesammlungen durch einzelne Instanzen des benutzerdefinierten SharePoint-Webdiensts integrieren, wie in Abbildung 3 dargestellt.
Ein Aspekt bleibt noch zu erwähnen: Durch die ILM-basierte Verzeichnisintegration entfällt nicht die Notwendigkeit eines benutzerdefinierten Verzeichnisverwaltungsdiensts. Dieser benutzerdefinierte Dienst muss keine Arbeiten übernehmen, da ILM die Verzeichnisobjekte bereitstellt. Sie müssen jedoch einen benutzerdefinierten Dienst bereitstellen, um die Verzeichnisverwaltung in der SharePoint 3.0-Zentraladministration zu ermöglichen. Andernfalls können Sie beispielsweise Gruppen keine E-Mail-Adressen zuweisen. Abbildung 4 zeigt die resultierende Lösungsarchitektur.
Abbildung 4 Webdienstbasierte SharePoint-Verzeichnisintegration (zum Vergrößern auf das Bild klicken)
Sie können den im Begleitmaterial enthaltenen benutzerdefinierten Verzeichnisverwaltungsdienst in einen Dummydienst verwandeln, indem Sie den OpMode-Parameter in der Datei „web.config“ (<add key="OpMode" value="dummy"/>) festlegen. In dieser Konfiguration gibt der benutzerdefinierte Dienst immer SUCCESS als Antwort auf Bereitstellungsaufrufe zurück, ohne Arbeiten durchzuführen.
Außerdem macht der benutzerdefinierte Dienst eine ResolveUsers-Methode verfügbar, die der SharePoint-Verwaltungsagent aufrufen kann, um NetBIOS-basierte Benutzerkontonamen in Distinguished Names aufzulösen – ein erforderlicher Schritt beim Bereitstellen von Gruppen. (SharePoint gibt Informationen zur Gruppenmitgliedschaft als eine Liste NetBIOS-basierter Benutzerkontonamen zurück, Active Directory erwartet jedoch Distinguished Names.) Das ist auch schon alles. Informationen zum Bereitstellen der resultierenden Lösung finden Sie in „Configuring Directory Integration based on ILM 2007.xps“ (Konfigurieren der Verzeichnisintegration auf Grundlage von ILM 2007) im Begleitmaterial.
WSS 3.0 und MOSS 2007 enthalten einen Verzeichnisverwaltungsdienst zur Integration von SharePoint in Exchange Server 2003 für die Messaging-basierte plattformübergreifende Zusammenarbeit.
Es gibt jedoch mehrere Einschränkungen. Benutzer müssen den integrierten Verzeichnisverwaltungsdienst durch eine benutzerdefinierte Lösung ersetzen. Sie könnten SharePoint auch mithilfe einer professionellen Verzeichnisverwaltungslösung wie ILM in eine Verzeichnisverwaltungsinfrastruktur integrieren. Dies bietet ein Höchstmaß an Flexibilität und unterstützt die Gewährleistung der Informationskonsistenz durch ein Pull-basiertes Synchronisierungsmodell.

Pav Cherny ist IT-Experte und Autor und ist auf Microsoft-Technologien für Zusammenarbeit und einheitliche Kommunikation spezialisiert. Seine Veröffentlichungen enthalten Whitepaper, Produkthandbücher sowie Bücher mit dem Schwerpunkt IT-Vorgänge und Systemverwaltung. Pav Cherny ist Präsident der Biblioso Corporation, eines Unternehmens, das auf verwaltete Dokumentations- und Lokalisierungsdienste spezialisiert ist.


Windows PowerShell Zeichenfolgentheorie
Don Jones

Inhalt
Ein praktisches Beispiel
Komplexe Entsprechungen
Die Welt der Zeichenfolgen
Wenn ich auf Konferenzen wie Tech•Ed oder TechMentor Vorträge halte, mache ich in der Regel Äußerungen allgemeiner Art, die Benutzern helfen, sich an die wichtigsten Punkte zu erinnern, z. B. in Bezug auf Windows PowerShell. Meine letzte Äußerung lautete: „Wenn Sie eine Zeichenfolge in Windows PowerShell analysieren, machen Sie etwas falsch.“
Sie beruht auf meiner Philosophie, dass Windows PowerShell™ eine objektorientierte Shell ist. Wenn Sie Dienstlisten in einer Textdatei sichern und diese dann analysieren, um festzustellen, welche Dienste gestartet werden, machen Sie sich zu viel Arbeit. Dieser Ansatz eignet sich für ein textorientiertes Betriebssystem, wie z. B. UNIX, aber in Windows PowerShell (sowie in Windows® selbst) können Sie Objekte viel effizienter verwenden.
Video
Don Jones führt hier vor, wie Sie Windows PowerShell verwenden können, um komplexe Zeichenfolgen zu analysieren.

Sogar Ihre eigenen Skripts sollten Objekte, nicht formatierten Text, generieren, damit die verschiedenen Shellbefehle zum Formatieren, Filtern, Exportieren usw. verwendet werden können, um die Ausgabe Ihrer Skripts zu ändern. (Im Artikel vom Juli 2008 zu Windows PowerShell erhalten Sie weitere Informationen zum Konzept benutzerdefinierter Objekte als Skriptausgabe.)
Bei einer TechMentor-Konferenz in Orlando, Florida, hat mich vor kurzem einer meiner Studenten daran erinnert, dass es bei nahezu allen Regeln, besonders allgemeinen Regeln, Ausnahmen gibt. „Was ist mit der Suche in einer IIS-Protokolldatei? Muss in diesem Fall denn kein Text analysiert werden?“
Nun ja, das stimmt. Glücklicherweise ist Windows PowerShell, so objektfreundlich es auch ist, nicht träge, was das Analysieren von Textzeichenfolgen angeht. Bei dieser Gelegenheit muss erwähnt werden, dass IIS-Protokolldateien, Firewallprotokolldateien und andere textorientierte Protokolle perfekte Beispiele darstellen.

Ein praktisches Beispiel
Ich musste einmal für ein Unternehmen einen Satz von Firewallprotokolldateien analysieren. Ein Mitarbeiter war beim Anzeigen einiger unangebrachter Websites erwischt worden, und als Teil der nachfolgenden Untersuchung benötigte die Personalabteilung eine umfassende Liste der von ihm besuchten Websites. Diese Informationen aus der Protokolldatei eines einzigen Tages herauszuziehen ist etwas zäh, und die Zuständigen im Personalbereich wollten sie für mehrere Wochen. Das war eine Aufgabe, die ich nicht gern manuell erledigen wollte.
Der DHCP-Server (Dynamic Host Configuration-Protokoll) des Unternehmens zeigte an, dass der Computer des Mitarbeiters über mehrere Monate die gleiche IP-Adresse (angenommen 192.168.17.54 für dieses Beispiel) verwendet hatte. Das ist natürlich nicht ungewöhnlich, da es sich um einen Desktopcomputer handelte, der selten ausgeschaltet wurde. Da das Firewallprotokoll einen Datensatz der Quell-IP-Adressen enthielt, wusste ich, dass Windows PowerShell behilflich sein könnte.
Das Geheimnis liegt im oft übersehenen Befehl „select-string“. Außerdem ist es nützlich, mit regulären Ausdrücken ausreichend vertraut zu sein (siehe Artikel zu Windows PowerShell in der Ausgabe vom November 2007).
Der Befehl „select-string“ akzeptiert einen Dateipfad voller Textdateien, einen regulären Ausdruck oder eine einfache gesuchte Zeichenfolge. Dann gibt er jede Zeile aus jeder Protokolldatei zurück, die dem regulären Ausdruck oder der einfachen Zeichenfolge entspricht. Um mit der Aufgabe zu beginnen, wollte ich einfach jede Zeile abrufen, die die IP-Adresse des Desktopcomputers des Mitarbeiters enthielt. Jede Protokolldateizeile enthielt ein Datum und einen Zeitstempel, und das war alles, was von der Personalabteilung benötigt wurde.
Hier ist der Befehl dazu:
select-string -path c:\logs\*.txt -pattern "192.168.17.54"
-allmatches –simplematch
Der Parameter „–simplematch“ gibt an, dass das oben genannte Muster nur eine einfache Zeichenfolge und kein regulärer Ausdruck ist. In Abbildung 1 sehen Sie einen Teil der Ausgabe, die auch in eine Datei geleitet werden könnte. Beachten Sie, dass die Ausgabe sowohl den Namen der Datei als auch die Zeilennummer enthält, in denen die Entsprechung gefunden wurde, was sehr nützlich sein kann, wenn Sie zu einem späteren Zeitpunkt weitere Informationen ermitteln möchten.
Cmdlet des Monats: Start-Sleep
Hier ist ein Cmdlet, das Ihnen genau das geben kann, was Sie bei einem langen Arbeitstag benötigen – ein kurzes Mittagsschläfchen. Start-Sleep sorgt für eine kurze Pause, und zwar für Ihre Windows PowerShell-Skripts.
Es ist nicht ungewöhnlich, dass in einem Skript eine kurze Pause erforderlich ist. Angenommen, Sie müssen einen Dienst starten, einige Sekunden warten, bis er betriebsbereit ist und ausgeführt werden kann, und dann einige andere Aufgaben ausführen, die von diesem Dienst abhängen. Start-Sleep ist genau das, was Sie für dieses Verhalten benötigen. Wenn Sie z. B. „Start-Sleep 10“ ausführen, wird die Shell 10 Sekunden lang angehalten. Wenn Sie eine präzisere Steuerung benötigen, können Sie z. B. „Start-Sleep -milli 100“ ausführen, um eine Pause von 100 Millisekunden zu erzielen. Start-Sleep hält die Shell, einschließlich der Skripts, Pipelines und allem anderen, für die angegebene Zeitdauer vollständig an. Wenn nur jemand dieses Start-Mittagsschlaf-Cmdlet schreiben würde, das ich herbeisehne.
Abbildung 1 Ausgabe eines select-string-Befehls (zum Vergrößern auf das Bild klicken)

Komplexe Entsprechungen
Nachdem die Mitarbeiter der Personalabteilung genau die gewünschten Informationen in den Händen hielten, erkannten sie, dass es eigentlich nicht das war, was sie wollten. Der Bericht enthielt die Besuche bei zahlreichen IP-Adressen, wie z. B. 207.68.172.246 (der MSN®-Website). Die nächste Anforderung des Ermittlers bestand darin, den Bericht auf die Besuche einer speziellen IP-Adresse zu reduzieren, die als eine der in Frage kommenden Websites identifiziert worden war. In diesem Artikel wird die tatsächliche IP-Adresse, die bei der Untersuchung ermittelt wurde, nicht enthüllt. Stattdessen soll für dieses Beispiel 207.68.172.246 verwendet werden (auch wenn die MSN-Website normalerweise nicht als unangebracht angesehen wird).
Diese Anfrage könnte etwas schwieriger sein. In der Protokolldatei, mit der ich es zu tun hatte, befanden sich die Quell- und die Ziel-IP-Adresse direkt nebeneinander und waren durch ein Komma getrennt. So konnte die Suchzeichenfolge einfach in „192.168.17.54,207.68.172.246“ geändert und die Suche wiederholt werden.
In einer komplexeren Protokolldatei ist es jedoch möglich, dass zwischen den beiden IP-Adressen veränderliche Daten gespeichert sind, sodass eine Entsprechung anhand einer einfachen Zeichenfolge nicht funktioniert. In diesem Szenario müsste ein regulärer Ausdruck eingesetzt werden, der auch bei einfacheren Protokollformaten gut funktioniert. Dies wird im Folgenden veranschaulicht.
Innerhalb eines regulären Ausdrucks ist der Punkt ein Platzhalter für ein beliebiges einzelnes Zeichen. Dabei kann der Unterausdruck (.)* für die Suche beliebig vieler Zeichen zwischen den beiden IP-Adressen verwendet werden. Es ist jedoch notwendig, dass ein umgekehrter Schrägstrich verwendet wird, um die tatsächlichen Punkte zu berücksichtigen, die in den IP-Adressen selbst vorkommen.
Daraus ergibt sich der folgende Befehl:
select-string -path c:\logs\*.txt -pattern
"192\.168\.17\.54(.)*207\.68\.172\.246" –allmatches
Ich habe den Parameter „–simplematch“ entfernt, da ich dieses Mal einen regulären Ausdruck verwende. Die resultierende Ausgabe zeigte nur die Besuche vom Computer des entsprechenden Mitarbeiters bei einer bestimmten, als unangebracht gekennzeichneten Website an. Die Ausgabe enthielt außerdem die Datums- und Zeitstempelangaben, die der Ermittler angefordert hatte. In Abbildung 2 sehen Sie einen Teil der Ausgabe, die Sie beim Ausführen eines solchen Befehls möglicherweise erhalten.
Abbildung 2 Eingeschränkte Suchergebnisse, die nur die Besuche bei einer bestimmten Website anzeigen (zum Vergrößern auf das Bild klicken)
Dies kann noch verbessert werden, indem die Ausgabe zu „Format-Table“ geleitet und die Fähigkeit des Befehls zur Anzeige berechneter Spalten genutzt wird. Sie können dafür sorgen, dass die Tabelle den Namen der Protokolldatei und die Zeilennummer enthält, wo die Entsprechung gefunden wurde, und dass sie sogar die entsprechende Zeile anzeigt. Die Shell kann jedoch so eingestellt werden, dass sie die Entsprechung mit dem regulären Ausdruck durch eine Zeichenfolge ersetzt, sodass nur die restliche Zeile angezeigt wird, in diesem Beispiel das Datum und den Zeitstempel. Dies ist ein Trick für Fortgeschrittene, aber dadurch wird veranschaulicht, wie Windows PowerShell Zeichenfolgedaten ändern und stark angepasste Ausgaben generieren kann, und das alles in einer einzigen Befehlszeile:
select-string -path c:\logs\*.txt -pattern
"192\.168\.17\.54(.)*207\.68\.172\.246" -allmatches |
ft  filename,linenumber,@{"Label"="Time";
"Expression"={$_.line.replace
($_.matches[0],"")}} –auto
In Abbildung 3 sehen Sie, wie die Endergebnisse aussehen könnten.
Abbildung 3 Formatierte Ausgabe eines select-string-Befehls (zum Vergrößern auf das Bild klicken)

Die Welt der Zeichenfolgen
Ich warte nicht lang mit der Äußerung, dass die objektorientierte Natur von Windows PowerShell eine seiner größten Stärken ist. Aber es gibt nichtsdestotrotz Situationen, in denen Objekte keine Lösung darstellen.
Windows PowerShell existiert in einer objektorientierten Welt. Glücklicherweise hat das Windows PowerShell-Team erkannt, dass Ihre Welt oft externe Daten in formatierten Zeichenfolgen enthält, und deshalb wurde der Befehl „select-string“ hinzugefügt. Mit select-string und der Kenntnis von regulären Ausdrücken können Sie Windows PowerShell dazu verwenden, Einzeiler zu schreiben, die die kompliziertesten Zeichenfolgen analysieren können.

Don Jones ist Mitautor von Windows PowerShell: TFM sowie Autor Dutzender anderer IT-Bücher. Sie erreichen ihn über seinen Blog unter www.concentratedtech.com.


Hey, Scripting Guy! Bleiben Sie in Verbindung mit Ihrem Toaster
Die Scripting Guys von Microsoft

Codedownload verfügbar unter: HeyScriptingGuy2008_09.exe (150 KB)

Wenn irgendetwas unsere moderne Welt in wenigen Worten zusammenfasst, sind es diese drei Wörter: in Verbindung bleiben. Dank Handy müssen Sie nicht mehr zu Hause sein, damit andere Sie anrufen können. Sie sind jederzeit tagsüber und nachts überall erreichbar. (Oh, wie … gut). Dank Drahtloscomputern müssen Sie nicht im Büro sein, um Ihre Arbeit zu tun. Heutzutage können Sie von zu Hause aus, am Strand, ja, praktisch überall arbeiten.
Eine wahre Geschichte: Die Eltern des Scripting Editors haben kürzlich einen Campingausflug unternommen, wobei sie, genau wie die berühmten Entdecker vergangener Tage, mit den rauen Bedingungen auskommen mussten, als sie beim Herstellen einer Verbindung zum Drahtlosnetzwerk des Campingplatzes auf Probleme stießen. Gott sei Dank funktionierte das Satellitenfernsehen noch!
Das ist aber noch nicht alles. Mithilfe von GPS-Geräten wissen Sie mit wenigen Zentimetern Abweichung genau, wo Sie stehen. Diese Geräte können auch anderen genau mitteilen, wo Sie stehen. (Die alte Redensart, dass Sie wegrennen, sich aber nicht verstecken können, war noch nie so wahr wie heute.) Wenn der Scripting Guy, der diese Kolumne schreibt, es wollte, könnte er sich jedes Mal, wenn ein Scheck abgerechnet wird, von seinem Scheckkonto anrufen lassen. Oder sein Auto könnte ihm per E-Mail monatliche Zustandsberichte senden. Doch damit nicht genug: Der Toaster hat angeboten, immer dann, wenn er Urlaub macht, den Hund auszuführen und die Blumen zu gießen.
Also gut, das stimmt nicht so ganz – noch nicht. Doch wenn er es wollte, könnte der Scripting Guy einen internetfähigen Toaster kaufen. Dann könnte er seinen Toaster auf dem Heimweg anrufen, sodass frisch getoastetes Brot auf ihn wartet, wenn er die Haustür aufschließt. Um ehrlich zu sein, wissen wir nicht, warum frisch getoastetes Brot warten sollte, sobald Sie die Haustür aufschließen. Aber wenn Sie es so wollen …
Wenn es das Ziel aller ist, in Verbindung zu bleiben, überrascht es natürlich nicht weiter, dass die Scripting Guys, die noch nie ein Sklave von Trends waren, für mehr Trennung eintreten. Bedeutet das, dass die Scripting Guys Ihnen empfehlen, Ihr Handy oder den Laptop wegzuwerfen? Nein, selbst die Scripting Guys sind nicht so dumm. Sie befürworten jedoch, dass Sie Ihrem Skriptingarsenal getrennte Recordsets hinzufügen. Doch wenn Sie Ihr Handy oder Ihren Laptop wegwerfen wollen, werden wir Sie nicht davon abhalten.
Hinweis: Laut einer Umfrage von Harris Interactive haben 43 Prozent der Amerikaner im Urlaub einen Laptop verwendet, um arbeitsrelevante E-Mails zu überprüfen und zu senden. Und mehr als 50 Prozent der Amerikaner verwenden ihr Handy während des Urlaubs, um ihre E-Mails und/oder Voicemail abzurufen. Und diese Zahlen umfassen nicht die 40 Prozent der Amerikaner, die innerhalb eines Jahres keinen Urlaub nehmen.
Es versteht sich von selbst, dass viele Menschen ihrem Skriptingarsenal getrennte Recordsets hinzufügen würden, wobei es jedoch ein Problem gibt: Sie haben keinerlei Vorstellung davon, was ein getrenntes Recordset ist. Falls Sie mit dem Konzept nicht vertraut sind: Ein getrenntes Recordset ist (mehr oder weniger) eine Datenbanktabelle, die nicht mit einer eigentlichen Datenbank verbunden ist. Stattdessen wird sie durch ein Skript erstellt, befindet sich nur im Speicher und verschwindet, sobald das Skript endet. Anders ausgedrückt: Ein getrenntes Recordset ist eine erstellte Datenstruktur, die nur für einige Minuten vorhanden ist und dann verschwindet, wobei sie Ihre Daten mitnimmt. Also wirklich, Scripting Guys! Das hört sich sehr nützlich an. Danke für eure Hilfe!
Gut, zugegeben: Getrennte Recordsets hören sich wirklich nicht sehr aufregend an. Und sie sind es tatsächlich nicht. Doch sie können äußerst nützlich sein. Wie altgediente VBScript-Ersteller nur allzu gut wissen, verfügt VBScript nicht gerade über die besten Funktionen für das Sortieren von Daten. (Es sei denn, dass Sie überhaupt keine Funktionen zum Sortieren von Daten als die besten Funktionen zum Sortieren von Daten betrachten.) Ebenso ist die Fähigkeit von VBScript, große Datensätze zu behandeln, bestenfalls begrenzt. Außerhalb des Dictionary-Objekts (das Sie darauf beschränkt, mit Elementen zu arbeiten, die höchstens zwei Eigenschaften haben) oder des Array (das größtenteils auf Datenlisten mit einer einzigen Eigenschaft begrenzt ist) … ist das praktisch schon alles.
Mithilfe des getrennten Recordset werden beide Probleme (und mehr) gelöst. Sie müssen Daten sortieren, speziell Daten mit mehreren Eigenschaften? Kein Problem. Wie bereits erwähnt, ist ein getrenntes Recordset das virtuelle Äquivalent einer Datenbanktabelle, und nichts auf der Welt ist einfacher als das Sortieren einer Datenbanktabelle. (OK, wenn Sie pingelig sein wollen, ist das Nichtsortieren einer Datenbanktabelle wohl einfacher als das Sortieren.) Oder vielleicht haben Sie einen großen Satz an Elementen, Elemente mit mehreren Eigenschaften, die Sie verfolgen müssen? Kein Problem. Haben wir schon erwähnt, dass ein getrenntes Recordset das virtuelle Äquivalent einer Datenbanktabelle ist? Müssen Sie diese Informationen in irgendeiner Weise filtern oder diese Daten auf einen bestimmten Wert hin durchsuchen? Wenn es doch nur eine Möglichkeit gäbe, das virtuelle Äquivalent einer Datenbanktabelle zu verwenden …
Richtig bemerkt: Vielleicht sollten wir Ihnen einfach zeigen, um was es hier geht. (Vorausgesetzt, wir wissen, um was es hier geht.) Nehmen wir einfach einmal an, dass wir die in Abbildung 1 dargestellte Baseballstatistik haben. Es handelt sich um eine der Website MLB.com entnommene Statistik, die in der durch Tabulator getrennten Wertedatei C:\Scripts\Test.txt gespeichert wurde.
Abbildung 1 In einer durch Tabulator getrennten Wertedatei gespeicherte Statistik
Player | Home Runs | RBI | Average
D Pedroia | 4 | 28 | .276
K Kouzmanoff | 8 | 25 | .269
J Francouer | 7 | 35 | .254
C Guzman | 5 | 20 | .299
F Sanchez | 2 | 25 | .238
I Suzuki | 3 | 15 | .287
J Hamilton | 17 | 67 | .329
I Kinsler | 7 | 35 | .309
M Ramirez | 12 | 39 | .295
A Gonzalez | 17 | 55 | .299
Das ist alles gut und schön, aber angenommen, wir möchten Ihnen diese Spielerliste nach Anzahl der Homeruns sortiert zeigen. Kann uns ein getrenntes Recordset dabei helfen? Das werden wir gleich herausfinden. Sehen Sie sich Abbildung 2 an. Ja, sie enthält ziemlich viel Code. Aber keine Sorge. Sie werden gleich sehen, dass es nicht so schlimm ist, wie es aussieht.
Abbildung 2 Ein getrenntes Recordset
Const ForReading = 1
Const adVarChar = 200
Const MaxCharacters = 255
Const adDouble = 5

Set DataList = CreateObject("ADOR.Recordset")
DataList.Fields.Append "Player", _
  adVarChar, MaxCharacters
DataList.Fields.Append "HomeRuns", adDouble
DataList.Open

Set objFSO = _
  CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile _
  ("C:\Scripts\Test.txt", ForReading)

objFile.SkipLine

Do Until objFile.AtEndOfStream
    strStats = objFile.ReadLine
    arrStats = Split(strStats, vbTab)

    DataList.AddNew
    DataList("Player") = arrStats(0)
    DataList("HomeRuns") = arrStats(1)
    DataList.Update
Loop

objFile.Close

DataList.MoveFirst

Do Until DataList.EOF
    Wscript.Echo _
        DataList.Fields.Item("Player") & _
        vbTab & _
        DataList.Fields.Item("HomeRuns")
    DataList.MoveNext
Loop
Zuerst definieren wir vier Konstanten:
  • ForReading. Wir verwenden diese Konstante, wenn wir die Textdatei öffnen und aus ihr lesen.
  • AdVarChar. Dies ist eine Standard-ADO-Konstante zum Erstellen eines Felds, das den Variant-Datentyp verwendet.
  • MaxCharacters. Dies ist eine Standard-ADO-Konstante, die zum Anzeigen der maximalen Anzahl von Zeichen (in diesem Fall 255) dient, die ein Variant-Feld enthalten kann.
  • AdDouble. Eine letzte ADO-Konstante zum Erstellen eines Felds, das einen doppelten (numerischen) Datentyp verwendet.
Nach dem Definieren der Konstanten begegnen wir diesem Codeblock:
Set DataList = CreateObject _
    ("ADOR.Recordset")
DataList.Fields.Append "Player", _
    adVarChar, MaxCharacters
DataList.Fields.Append "HomeRuns", _
    adDouble
DataList.Open
Dies ist der Teil des Skripts, in dem wir unser getrenntes Recordset einrichten und konfigurieren. Dazu erstellen wir zuerst eine Instanz des ADOR.Recordset-Objekts, das unsere virtuelle Datenbanktabelle (das heißt unser getrenntes Recordset) erstellt.
Dann verwenden wir diese Codezeile (und die Append-Methode), um dem Recordset ein neues Feld hinzuzufügen:
DataList.Fields.Append "Player", adVarChar, MaxCharacters
Wie Sie sehen können, ist dies nicht weiter kompliziert: Wir rufen einfach die Append-Methode auf, gefolgt von drei Parametern:
  • Der Name des Felds (Players).
  • Der Datentyp für das Feld (adVarChar).
  • Die maximale Anzahl der Zeichen, die im Feld gespeichert werden können (MaxCharacters).
Nach dem Hinzufügen des Felds „Players“ können wir ein zweites Feld hinzufügen: HomeRuns, das einen numerischen (adDouble) Datentyp hat. Wenn wir damit fertig sind, können wir die Open-Methode aufrufen, um unseren Recordset als offen und einsatzbereit zu deklarieren.
Als nächstes erstellen wir eine Instanz von Scripting.FileSystemObject und öffnen die Datei „C:\Scripts\Test.txt“. Dieser Teil des Skripts hat nichts mit dem getrennten Recordset zu tun. Er ist nur vorhanden, weil wir Daten aus einer Textdatei abrufen müssen. Die erste Zeile in der Textdatei enthält unsere Headerinformationen:
Player     Home Runs     RBI        Average
Wir benötigen diese Informationen für unser Recordset nicht. Daher rufen wir als Erstes nach dem Öffnen der Datei die SkipLine-Methode auf, um diese erste Zeile zu überspringen:
objFile.SkipLine
Jetzt, da wir uns in der ersten Zeile mit eigentlichen Daten befinden, richten wir eine Do Until-Schleife ein, damit wir die übrige Datei Zeile für Zeile lesen können. Jedes Mal, wenn wir eine Zeile aus der Datei einlesen, speichern wir diesen Wert in einer Variablen namens „strLine“ und verwenden dann die Split-Funktion, um diese Zeile in ein Array von Werten zu konvertieren (indem wir die Zeile jedes Mal, wenn wir auf einen Tabulator stoßen, aufteilen):
arrStats = Split(strStats, vbTab)
Zugegebenermaßen ist dies eine recht schnelle Übersicht, aber wir erwarten, dass Sie mittlerweile recht gut in der Lage sind, Informationen aus Textdateien abzurufen. Um es kurz zu fassen: Beim ersten Durchlauf der Schleife enthält das Array „arrStats“ die Elemente in Abbildung 3.
Abbildung 3 Inhalt des Array
Item Number | Item Name
0 | D Pedroia
1 | 4
2 | 28
3 | .276
Jetzt wird es unterhaltsam:
DataList.AddNew
DataList("Player") = arrStats(0)
DataList("HomeRuns") = arrStats(1)
DataList.Update
Hier fügen wir die Informationen für Spieler 1 (D Pedroia) zum getrennten Recordset hinzu. Um dem Recordset einen Datensatz hinzuzufügen, beginnen wir mit dem Aufrufen der AddNew-Methode. Dadurch wird ein neuer, leerer Datensatz für uns erstellt, mit dem wir arbeiten können. Wir verwenden die nächsten beiden Codezeilen, um den beiden Recordset-Feldern (Player und HomeRuns) Werte zuzuweisen. Dann rufen wir die Update-Methode auf, um offiziell diesen Datensatz in den Recordset zu schreiben. Und dann beginnen wir wieder oben in der Schleife, wo wir den Prozess mit der nächsten Zeile, d. h. dem nächsten Spieler, in der Textdatei wiederholen. Es stimmt also doch: Es ist zwar viel Code vorhanden, aber alles ist ziemlich einfach und übersichtlich.
Was geschieht nun, wenn dem Recordset alle Spieler hinzugefügt wurden? Nachdem wir die Textdatei geschlossen haben, führen wir diesen Codeblock aus:
DataList.MoveFirst

Do Until DataList.EOF
  Wscript.Echo _
    DataList.Fields.Item("Player") & _
    vbTab & _
    DataList.Fields.Item("HomeRuns")
  DataList.MoveNext
Loop
In Zeile 1 verwenden wir die MoveFirst-Methode, um den Cursor am Anfang des Recordset zu positionieren. Tun wir dies nicht, besteht das Risiko, dass nur einige Daten im Recordset angezeigt werden. Dann richten wir eine Do Until-Schleife ein, die fortfährt, bis keine Daten mehr vorhanden sind (d. h. bis die EOF-Eigenschaft (end-of-file, Dateiende) des Recordset „True“ lautet).
In der Schleife geben wir nur die Werte der Felder „Player“ und „HomeRuns“ zurück (beachten Sie die etwas ungewöhnliche Syntax zum Anzeigen eines bestimmten Felds: DataList.Fields.Item("Player"). Und dann rufen wir einfach die MoveNext-Methode auf, um zum nächsten Datensatz im Recordset überzugehen.
Wie Sie sehen, war dies höchst einfach. Schließlich kehren wir zu Folgendem zurück:
D Pedroia       4
K Kouzmanoff    8
J Francouer     7
C Guzman        5
F Sanchez       2
I Suzuki        3
J Hamilton      17
I Kinsler       7
M Ramirez       12
A Gonzalez      17
Wie Sie sehen können, ist dies eigentlich gar nicht so gut. Stimmt, wir haben die Namen der Spieler und die Gesamtzahlen der Homeruns erhalten, doch die Gesamtzahlen der Homeruns sind nicht sortiert. Verdammt. Warum hat das getrennte Recordset die Daten für uns nicht sortiert?
Dafür gibt es einen guten Grund: Wir haben dem Recordset nicht mitgeteilt, welches Feld sortiert werden soll. Doch das lässt sich leicht korrigieren: Ändern Sie einfach das Skript, sodass die Sortierinformationen direkt vor dem Aufruf der MoveFirst-Methode hinzugefügt werden. Das heißt, der Teil des Skripts sollte wie folgt aussehen:
DataList.Sort = "HomeRuns"
DataList.MoveFirst
Offensichtlich gibt es dabei keinen Trick. Wir weisen der Sort-Eigenschaft einfach das Feld HomeRuns zu. Betrachten Sie jetzt die Ausgabe, die wir beim Ausführen des Skripts erhalten:
F Sanchez       2
I Suzuki        3
D Pedroia       4
C Guzman        5
J Francouer     7
I Kinsler       7
K Kouzmanoff    8
M Ramirez       12
J Hamilton      17
A Gonzalez      17
Viel besser. Mit Ausnahme einer Sache: Meistens werden Gesamtzahlen von Homeruns in absteigender Reihenfolge aufgeführt, wobei die Spieler mit den meisten Homeruns zuerst aufgeführt werden. Gibt es eine Möglichkeit, ein getrenntes Recordset in absteigender Reihenfolge zu sortieren?
Selbstverständlich. Wir müssen nur den hilfreichen DESC-Parameter anfügen, und zwar so:
DataList.Sort = "HomeRuns DESC"
Und was macht der DESC-Parameter für uns? Ganz genau:
A Gonzalez      17
J Hamilton      17
M Ramirez       12
K Kouzmanoff    8
I Kinsler       7
J Francouer     7
C Guzman        5
D Pedroia       4
I Suzuki        3
F Sanchez       2
Es ist übrigens durchaus legal, mehrere Eigenschaften zu sortieren. Die einzelnen Eigenschaften müssen einfach nur der Sortierreihenfolge zugewiesen werden. Nehmen wir beispielsweise an, dass Sie zuerst die Homeruns und dann die RBIs sortieren möchten. Kein Problem. Mit diesem Befehl erreichen Sie dies:
DataList.Sort = "HomeRuns DESC, RBI DESC"
Probieren Sie es ruhig selbst einmal aus. Es macht nicht so viel Spaß wie das Abrufen von E-Mails während des Urlaubs, aber es kommt dem schon sehr nahe.
Hinweis: Denken Sie daran, dass Sie in einem Feld, das dem Recordset nicht hinzugefügt wurde, nicht sortieren können. Was bedeutet das? Es bedeutet, dass Sie vor dem Hinzufügen einer Eigenschaft wie z. B. RBI zur Sort-Anweisung Ihrem Skript diese Zeilen an den entsprechenden Stellen hinzufügen müssen:
DataList.Fields.Append "RBI", adDouble

DataList("RBI") = arrStats(2)
Und wenn Sie sich die Ausgabe ansehen wollen, müssen Sie auch Ihre Wscript.Echo-Anweisung ändern:
Wscript.Echo _
  DataList.Fields.Item("Player") & _
  vbTab & _
  DataList.Fields.Item("HomeRuns") & _
  vbTab & DataList.Fields.Item("RBI")
Was können wir mit getrennten Recordsets noch tun? Hier ist noch etwas. Angenommen, wir rufen alle Informationen für alle Spieler ab und sortieren diese Daten dann nach der durchschnittlichen Zahl der Schläge. (Unter anderem bedeutet dies, dass wir unser ursprüngliches Skript ändern müssen, um Felder mit der Bezeichnung „RBI“ und „BattingAverage“ zu erstellen.) Die Ausgabe sieht folgendermaßen aus:
J Hamilton      17      67      0.329
I Kinsler       7       35      0.309
A Gonzalez      17      55      0.304
C Guzman        5       20      0.299
M Ramirez       12      39      0.295
I Suzuki        3       15      0.287
D Pedroia       4       28      0.276
K Kouzmanoff    8       25      0.269
J Francouer     7       35      0.254
F Sanchez       2       25      0.238
Das ist gut und schön. Doch was tun, wenn wir nur eine Liste der Spieler wünschen, die .300 oder besser schlagen? Wie können wir die angezeigten Daten auf die Spieler begrenzen, die einigen angegebenen Kriterien entsprechen? Nun, eine Möglichkeit besteht darin, dem Recordset einen Filter zuzuweisen:
DataList.Filter = "BattingAverage >= .300"
Ein Recordset-Filter hat denselben Zweck wie eine Datenbankabfrage: Er bietet eine Methode zum Begrenzen zurückgegebener Daten an eine Teilmenge aller Datensätze im Recordset. In diesem Fall bitten wir den Filter einfach, alle Datensätze mit Ausnahme der Datensätze auszumerzen, bei denen das Feld „Batting-Average“ einen Wert von größer oder gleich .300 hat. Und wissen Sie was? Der Filter macht genau das Gewünschte:
J Hamilton      17      67      0.329
I Kinsler       7       35      0.309
A Gonzalez      17      55      0.304
Wenn unsere Kinder doch genauso reagieren würden!
Übrigens können Sie mehrere Kriterien in einem einzigen Filter verwenden. Dieser Befehl beispielsweise begrenzt die zurückgegebenen Daten auf Datensätze, bei denen das BattingAverage-Feld einen Wert von größer oder gleich .300 hat und der Wert des HomeRuns-Felds größer als 10 ist:
DataList.Filter = _
  "BattingAverage >= .300 AND HomeRuns > 10"
Im Gegensatz dazu begrenzt dieser Filter Daten auf Datensätze, bei denen das BattingAverage-Feld einen Wert von größer oder gleich .300 hat oder der Wert des HomeRuns-Felds größer als 10 ist:
DataList.Filter = "BattingAverage >= .300 OR HomeRuns > 10"
Probieren Sie beides aus, um zu sehen, wo der Unterschied liegt. Doch damit nicht genug: Hier ist noch ein Filter, den Sie ausprobieren können:
DataList.Filter = "Player LIKE 'I*'"
Wie sich herausstellt, können Sie auch Platzhalter in Ihren Filtern verwenden. Dazu verwenden Sie den LIKE-Operator (im Gegensatz zum Gleichheitszeichen) und verwenden dann das Sternchen, so wie Sie es beim Ausführen eines MS-DOS®-Befehls wie „dir C:\Scripts\*.txt“ tun würden. Im vorhergehenden Beispiel sollten wir eine Liste der Spieler erhalten, deren Name mit dem Buchstaben „I“ beginnt, denn die von uns verwendete Syntax besagt: „Zeig mir eine Liste aller Datensätze, in denen der Wert des Player-Felds mit einem I beginnt, auf den dann praktisch irgendetwas folgt.“ Probieren Sie es aus. Mittlerweile wissen Sie, wie es geht.
Übrigens sind Durchschnittszahlen von Schlägen wie 0.309 auch kein Problem. (In der Regel werden Durchschnittszahlen ohne die vorstehende Null, also z. B. als .309 ausgedrückt.) Doch das ist in Ordnung. Sie können einfach die FormatNumber-Funktion verwenden, um die Durchschnittszahl der Schläge ganz nach Belieben zu formatieren:
FormatNumber (DataList.Fields.Item("BattingAverage"), 3, 0)
Nehmen Sie diese Funktion einfach in Ihre Wscript.Echo-Anweisung auf, wenn Sie die Zahl anzeigen (alternativ könnten Sie die Ausgabe einer Variablen zuweisen und die Variable in Ihre Echo-Anweisung stellen):
Wscript.Echo _
  DataList.Fields.Item("Player") & _
  vbTab & _
  DataList.Fields.Item("HomeRuns") & _
  vbTab & DataList.Fields.Item("RBI") & _
  vbTab & _
  FormatNumber _
  (DataList.Fields.Item("BattingAverage"), _
   3, 0)
Das macht Spaß, nicht wahr?
Doch leider ist dies alles, wofür wir in diesem Monat Zeit haben. Zusammenfassend möchten wir nur sagen – einen Augenblick, das Telefon klingelt.
Also, wir wollten darauf hinweisen – na super, jetzt klingelt das Handy. Und gerade haben wir eine E-Mail vom Toaster erhalten. Ganz wichtig: Unser Toast ist fertig. Wollen wir Butter oder Marmelade? Ich muss los, aber wir sehen uns im nächsten Monat wieder!
Der Scripting Perplexer von Dr. Scripto
Die monatliche Herausforderung, die nicht nur Ihr Talent zum Rätsellösen testet, sondern auch Ihre Skriptingfähigkeiten.

September 2008: Skriptingsuche
Hier ist eine einfache (oder vielleicht doch nicht so einfache) Wortsuche. Suchen Sie alle VBScript-Funktionen und Anweisungen in der Liste. Das Ganze hat jedoch einen Haken: Die verbleibenden Buchstaben ergeben ein verstecktes Wort, das – richtig geraten – ein Windows PowerShell™-Cmdlet ist!
Wortliste Abs, Array, Atn, CCur, CLng, CInt, DateValue, Day, Dim, Else, Exp, Fix, InStr, IsEmpty, IsObject, Join, Len, Log, Loop, LTrim, Mid, Month, MsgBox, Now, Oct, Replace, Set, Sin, Space, Split, Sqr, StrComp, String, Timer, TimeValue, WeekdayName.

Antwort:
Der Scripting Perplexer von Dr. Scripto
Antwort: September 2008: Skriptingsuche

Die Scripting Guys arbeiten für Microsoft (oder sind zumindest dort angestellt). Wenn sie nicht gerade ihrem Hobby, dem Baseball (oder verschiedenen anderen Aktivitäten) nachgehen, betreiben sie das TechNet-Skriptcenter. Besuchen Sie es unter www.scriptingguys.com.


Die Desktopdateien Erweiterte Funktionalität in WDS
Wes Miller

Inhalt
Befehlszeilenverwaltung
Abbildspeicher
Multicast
Protokollierung in WDS
Andere Probleme
Zusammenfassung
In den letzten beiden Ausgaben dieser Rubrik wurden die Windows-Bereitstellungsdienste (Windows Deployment Services, WDS) untersucht. Zuerst wurde der Hintergrund der auf PXE (Pre-boot eXecution Environment) basierenden Bereitstellungstools von Microsoft beleuchtet, gefolgt von einem Überblick über WDS. In diesem Monat stehen tiefere Einblicke in einige erweiterte Themen an:
WDSUtil (das leistungsfähige Befehlszeilendienstprogramm für WDS), der WDS-Abbildspeicher, die WDS-Protokollierung sowie die Arbeit mit der Multicastfunktionalität in WDS für Windows Server® 2008.
Als in Windows® 2000 und Windows Server 2003 die Remoteinstallationsdienste (Remote Installation Services, RIS) veröffentlicht wurden, boten sie nicht so viele Features, wie es sich viele gewünscht hatten. Dabei fallen vor allem drei Bereiche auf:
  • Leistung (mehr Skalierbarkeit bei der Bereitstellung)
  • Protokollierung/Überwachung
  • Befehlszeilenautomatisierung
Im Artikel dieses Monats erfahren Sie, dass mit der anfänglichen Veröffentlichung von WDS, und insbesondere mit WDS unter Windows Server 2008, wesentliche Fortschritte in allen diesen Bereichen erzielt wurden.

Befehlszeilenverwaltung
Im letzten Monat wurde angemerkt, dass WDS eine stark verbesserte Verwaltungskonsole bietet. Was aber für die meisten Unternehmen noch wichtiger ist: WDS bietet ein neues Befehlszeilendienstprogramm für die Verwaltung namens „WDSUtil.exe“ (siehe Abbildung 1). WDSUtil wird mit WDS Optional Component unter Windows Server 2003 (SP1+WDS oder SP2) und mit WDS Role unter Windows Server 2008 installiert.
Abbildung 1 Aktivieren der Architekturerkennungsoption mittels WDSUtil (zum Vergrößern auf das Bild klicken)
WDSUtil ist ein erstaunlich leistungsfähiges Dienstprogramm, aber es ist ziemlich komplex. Im Grunde kann alles, was Sie mit Microsoft® Management Console (MMC) tun, auch mit WDSUtil erreicht werden. Eigentlich ist das ein großartiges Beispiel dafür, dass es auch eine der besten Möglichkeiten zum Analysieren von Problemen ist. Versuchen Sie es:
wdsutil /get-server /show:config
Die Ergebnisse spiegeln fast vollständig das wider, was Sie im gesamten WDS MMC sehen würden, und WDSUtil kann es auch in einem problemlos lesbaren Format ausgeben, das Sie dann in eine Textdatei ausgeben können.
Nicht genug Informationen? Versuchen Sie, stattdessen den folgenden Befehl auszuführen, der noch mehr zurückgibt:
wdsutil /get-server /show:all /detailed
Sie können den WDS-Server beenden und neu starten, indem Sie Folgendes ausführen:
wdsutil /stop-server
wdsutil /start-server
Einen Befehlsüberblick für WDSUtil finden Sie unter go.microsoft.com/fwlink/?LinkId=112194. Bei Bedarf können Sie unter go.microsoft.com/fwlink/?LinkId=89381 auch eine .chm-Version (zusammen mit allen WDS 2008-Dokumenten) herunterladen.
Ohne ein ADSI-Experte (Active Directory® Service Interfaces) zu sein, gab es bei RIS keine einfache Möglichkeit, über die Befehlszeile herauszufinden, ob eine bestimmte MAC-Adresse oder GUID mit einem Computerkontoobjekt (Machine Account Object, MAO) in Active Directory verknüpft war. Mit WDSUtil können Abfragen auf beidem basieren.
GUIDs können verwirrend sein, da Sie sie als binäre Zeichenfolgen oder als GUID-Zeichenfolge eingeben können, und der einzige Unterschied ist die Bytereihenfolge und die Abwesenheit der Bindestriche. MAC-Adressen können mit oder ohne Bindestriche eingegeben werden, indem eine der folgenden Codezeilen verwendet wird:
wdsutil /get-device /id:01-23-45-67-89-AB
wdsutil /get-device /id:0123456789AB
Sie können die Geräteinformationen durch eine binäre Zeichenfolge mit dem folgenden Befehl abrufen:
wdsutil /get device /id:ACEFA3E81F20694E953EB2DAA1E8B1B6
Sie können die Geräteinformationen durch eine GUID-Zeichenfolge mit dem folgenden Befehl abrufen:
wdsutil /get device /id:E8A3EFAC-201F-4E69-953-B2DAA1E8B1B6
Viele Ihrer Computer können wahrscheinlich die 64-Bit-Version von Windows ausführen, aber einige melden ihre Architektur leider nicht richtig. Sie können gestatten, dass WDS versucht zu bestimmen, ob ein System x64-fähig ist, indem es ein kleines Net-Boot-Programm, das in WDS enthalten ist, ausführt. Wie in Abbildung 1 dargestellt, erreichen Sie das folgendermaßen:
wdsutil /set-server /architecturediscovery:yes
Tatsächlich ermöglicht der set-server-Befehl von WDSUtil die Konfiguration einer großen Anzahl von Servereinstellungen. Um die Möglichkeiten zu sehen, führen Sie den folgenden Befehl aus:
wdsutil /set-server /?
Wenn Sie einen Windows Server 2003 WDS-Server auf Windows Server 2008 aktualisiert haben, können Sie alle RIPrep-Abbilder in WIM-Abbilder (Windows Imaging Format) konvertieren, indem Sie Folgendes ausführen:
WDSUtil /convert-RIPrepImage
Obwohl WDSUtil RIPrep-Abbilder konvertieren kann, können alle übrigen RISetup-Abbilder (herkömmliche RIS- und ältere, von WDS erstellte Installationen) nicht konvertiert werden.
Die Leistungsfähigkeit von WDSUtil liegt in der von ihm gebotenen Möglichkeit, sich wiederholende Aufgaben zu automatisieren. Die Befehle in Abbildung 2 geben Ihnen eine Vorstellung von den WDSUtil-Funktionen. Ob Sie neue WDS-Server einführen, Abbilder über mehrere Server hinzufügen oder ändern, Ihre Multicastinfrastruktur verwalten oder angeben, welches Netzwerkstartprogramm für einen bestimmten Startclient verwendet werden soll, WDSUtil stellt leistungsfähige Funktionen bereit, die bei RIS bisher nicht verfügbar war.
Abbildung 2 WDSUtil-Befehle
Befehl | Beschreibung
/add | Fügt Geräte, Abbilder oder Abbildgruppen hinzu.
/approve-AutoAddDevices | Genehmigt ausstehende Auto-Add-Geräte und ermöglicht Ihnen, Konfigurationsinformationen für sie festzulegen.
/convert-RiprepImage | Konvertiert ein älteres RIPrep-Abbild in ein WIM-Abbild.
/copy-Image | Dupliziert ein Abbild innerhalb eines Abbildspeichers.
/delete-AutoAddDevices | Löscht alle oder bestimmte ausstehende Auto-Add-Geräte.
/disable | Deaktiviert einen WDS-Server oder Transportserver.
/disconnect-Client | Trennt einen Client von einer Multicastübertragung oder einem Namespace.
/enable | Aktiviert einen WDS-Server oder Transportserver.
/export-Image | Wie bei /export in ImageX exportiert dieser Befehl ein vorhandenes Abbild vom Abbildspeicher in ein WIM-Abbild.
/get | Ruft Eigenschaften und Attribute für ein Gerät, ein Abbild, eine Abbildgruppe, einen WDS-Server oder einen Transportserver ab.
/initialize-Server | Konfiguriert einen WDS-Server für die Verwendung nach der Erstinstallation.
/new | Erstellt, erfasst oder erkennt Abbilder, Multicastübertragungen und Namespaces.
/progress | Zeigt den Fortschritt an, während ein bestimmter Befehl ausgeführt wird.
/reject-AutoAddDevices | Lehnt alle oder bestimmte ausstehende Auto-Add-Geräte ab.
/remove | Entfernt Abbilder, Abbildgruppen, Multicastübertragungen und Namespaces.
/replace-Image | Ersetzt (überschreibt) ein Abbild mit einem neuen Abbild.
/set | Legt Eigenschaften und Attribute für ein Gerät, ein Abbild, eine Abbildgruppe, einen WDS-Server oder einen Transportserver fest.
/start | Startet einen WDS-Server oder Transportserver.
/stop | Beendet einen WDS-Server oder Transportserver.
/uninitialize-Server | Stellt die Änderungen wieder her, die während der Serverinitialisierung am Server vorgenommen wurden (Wiederherstellung des unkonfigurierten Zustands).
/update-ServerFiles | Aktualisiert die Dateien in der REMINST-Freigabe des Servers mit den aktuellen Versionen aus dem System32\RemInst-Verzeichnis des Servers.
/verbose | Zeigt die ausführliche Ausgabe an, während ein bestimmter Befehl ausgeführt wird.

Abbildspeicher
Letzten Monat wurde erwähnt, wie Einzelinstanzspeicherung (Single Instance Storage, SIS), die von RIS für das effizientere Speichern von Dateien auf dem Datenträger verwendet wurde, in WDS ignoriert wurde. Jetzt sind alle Abbilder des einheitlichen Modus (WIM), unabhängig vom Betriebssystem, im WDS-Abbildspeicher enthalten. Wie in früheren Artikeln beschrieben, konnten Sie durch die Einzelinstanzfunktionalität in .wim-Dateien Speicherplatz einsparen, wenn die Volumeabbilder entsprechende Dateien aufwiesen. Der WDS-Abbildspeicher funktioniert genauso. Er verwendet die WIM-Funktionalität, um Abbilder zu speichern.
Um mit dem Abbildspeicher zu arbeiten, müssen Sie mindestens eine Abbildgruppe haben. Die WDS-Initialisierung wird Sie in der Regel auffordern, eine zu erstellen. Sie können auch eine neue Abbildgruppe erstellen, während Sie ein Installationsabbild hinzufügen, und das Abbild wird ihr hinzugefügt (siehe Abbildung 3).
Abbildung 3 Erstellen einer neuen Abbildgruppe (zum Vergrößern auf das Bild klicken)
Was also ist der Abbildspeicher? Wenn Sie in Ihrem RemoteInstall-Verzeichnis im Verzeichnis „Images“ nachsehen, finden Sie Verzeichnisse für jede Abbildgruppe, die Sie erstellt haben. Wie in Abbildung 4 dargestellt, gibt es eine .wim-Datei für jedes Installationsabbild, das Sie in die Abbildgruppe importiert haben, und eine einzige .rwm-Datei (Resource WIM).
Abbildung 4 Inhalt einer Abbildgruppe (zum Vergrößern auf das Bild klicken)
Sehen Sie sich die Dateien in Abbildung 4 sorgfältig an. Diese Abbildgruppe besteht aus Folgendem:
  • install.wim (Windows Server 2008, Standard Edition)
  • install-(2).wim (Windows Server 2008, Enterprise Edition)
  • install-(3).wim (Windows Server 2008, Datacenter Edition)
  • install-(4).wim (Windows Server 2008, Standard Edition (Server Core)
  • install-(5).wim (Windows Server 2008, Enterprise Edition (Server Core)
  • install-(6).wim (Windows Server 2008, Datacenter Edition (Server Core)
Vergleichen Sie jetzt die Größen dieser Dateien mit den Größen von MMC (siehe Abbildung 5). Die Größe der einzelnen .wim-Dateien in Abbildung 4 entspricht einem Bruchteil der Größe der Res.rwm-Datei. Warum? Um Platz zu sparen, sind die angezeigten .wim-Dateien einfach Stubs der eigentlichen Dateien. Sie enthalten die Metadaten, um die .wim-Datei wiederherzustellen, enthalten aber nicht die Dateiressourcen. Alle Dateiressourcen in einer Abbildgruppe sind in der .rwm-Datei für diese Abbildgruppe gespeichert.
Abbildung 5 Im Server-Manager angezeigte Abbilder (zum Vergrößern auf das Bild klicken)
Um ein Installationsabbild in einem Abbildspeicher zu bearbeiten, können Sie entweder das Abbild exportieren, Ihre Bearbeitungen vornehmen und dann das Abbild ersetzen (oder es erneut importieren), oder Sie können mit ihm interagieren, indem Sie das entsprechende Installationsabbild vom MMC deaktivieren und Ihre Bearbeitungen durch das Bereitstellen und Ändern der .wim-Datei vornehmen.
Ein Problem, das RIS schon immer hatte, war die Abbildreplikation. Wenn Sie die mit SIS bearbeiteten Dateien über das Netzwerk kopieren, geht SIS verloren, da es ein NTFS-Attribut ist. Das bedeutete, dass Sie 40 GB von RISetup- und RIPrep-Abbildern hatten und sie auf einen anderen Server replizierten. Selbst wenn SIS Groveler ihre Größe auf nur 5 GB verringert hatte, replizierten Sie immer noch 40 GB über das Netzwerk. Dies ist beim WDS-Abbildspeicher nicht der Fall. Wegen der Architektur des Abbildspeichers können Sie sie auf einem DFS-Server (Distributed File System, verteiltes Dateisystem) speichern und die DFS-Replikation (DFS-R) verwenden, um sie von Standort zu Standort zu replizieren.
Die Einzelheiten hierfür ändern sich je nach WDS-Version. Informationen zu Windows Server 2003 finden Sie in Kapitel 7 „Arbeiten mit Abbildern“ in der Dokumentation, die Sie unter go.microsoft.com/fwlink/?LinkId=81031 herunterladen können. Informationen zu Windows Server 2008 finden Sie unter „Speichern und Replizieren von Abbildern mit DFS“ unter go.microsoft.com/fwlink/?LinkId=121960. Da die Ressourcen alle in der .rwm-Datei gespeichert werden, weist die übermittelte Datenmenge, auch wenn Sie eine Abbildgruppe von einem Server auf den anderen kopieren, nur einen Bruchteil der Größe auf, die bei der Übertragung der gesamten .wim-Datei anfallen würde (bzw. in der alten RIS SIS-Architektur).
Wann erstellen Sie also eine neue Abbildgruppe, und wann verwenden Sie die alte? Die Regeln sind normalerweise dieselben wie für eine .wim-Datei. Obwohl Sie ein Abbild von Windows XP Professional SP3 in einer Abbildgruppe platzieren könnten, die überwiegend aus Windows Server 2008-Abbildern besteht, würde dies nicht viel Sinn machen, da Sie nicht viel Platz einsparen. Wie bei .wim-Dateien empfiehlt sich eine Abbildgruppe im Allgemeinen zumindest für Folgendes:
  • Jede spezifische Veröffentlichung von Windows, bei der eine Veröffentlichung sowohl ein SKU (Windows XP Professional) als auch eine Service Pack-Revision (SP3) ist.
  • Windows Server 2003 und früher: Jede lokalisierte Sprachveröffentlichung (keine mehrsprachige Benutzeroberfläche). Vor Windows Vista® waren lokalisierte Builds vollständig verschiedene Binärdateien. Deshalb konnten sie hinsichtlich der Einzelinstanziierung nicht gut in einer .wim-Datei gespeichert werden.
  • Jedes Service Pack einer Veröffentlichung. Auch wenn Sie Windows Server 2008-Abbilder und Windows Vista SP1-Abbilder zusammen speichern können, überlegen Sie, ob diese Funktionalität in Ihrer Organisation angebracht ist.
Der Abbildspeicher trägt gut zum Einsparen von Speicherplatz bei, sogar besser als SIS davor, und zwar sowohl auf Datenträger als auch über das Netzwerk, und sein reibungsloser Betrieb erfordert in der Regel wenig Aufwand.

Einer der größten Schwachpunkte der Remoteinstallationsdienste war ihr Mangel an Skalierbarkeit. Bei der Multicastbereitstellung geht es hauptsächlich darum, dies zu korrigieren. Bei Multicast denken viele an eine „schnellere“ Bereitstellung, aber es geht nicht wirklich darum, dass „schneller“, sondern dass „mehr“ bereitgestellt wird. Sie könnten mehrere Systeme über RIS bereitstellen. Eigentlich könnte RIS die gleichzeitige Bereitstellung von ungefähr 75 Systemen bewältigen.
Aber lange bevor dieser Punkt erreicht wurde, gab es Auswirkungen auf die Leistung, und jede Installation dauerte zunehmend länger. Schlimmer noch, mit der steigenden Anzahl der Installationen stieg auch das Potenzial für Fehler. Gleichzeitig sorgten mehrere Installationen dafür, dass Ihr Netzwerk mit SMB-Netzwerkverkehr (Server Message Block) ausgelastet wurde (sodass während der Bereitstellung die Mitarbeiter auf wichtige Netzwerkressourcen, wie z. B. Microsoft Exchange Server, nicht zugreifen konnten).
Bei Multicast geht es um das Aufwärtsskalieren Ihrer Bereitstellungszahlen. Ob Sie vier Server oder ein Konferenzzentrum mit 100 Systemen bereitstellen, mit Multicasting können Sie diese Bereitstellung ohne lange Wartezeiten und ohne eine vollständige Auslastung des Netzwerks abschließen. Sie können mit Multicast zwar ein einziges System bereitstellen, aber erst bei mehreren Systemen, die die Übertragung empfangen, ist der Vorteil der Skalierung ersichtlich.
Um Multicast zu verwenden, müssen Sie über Router verfügen, die Multicast unterstützen. In der Regel heißt das, dass das Internet Group Management-Protokoll (IGMP) aktiviert sein muss. Sie müssen außerdem über Windows PE 2.1 verfügen (Windows Server 2008 RTM oder Windows Vista SP1), da die Version (2.0), die in Windows Vista RTM enthalten ist, keine Multicastübertragung empfangen kann.
Sie sollten zudem sicherstellen, dass Sie bei mehreren WDS-Servern (oder anderen Multicastservern) auf dem gleichen Netzwerk einen benutzerdefinierten IP-Adressbereich angeben. Dies kann problemlos über WDS MMC vorgenommen werden, indem Sie mit der rechten Maustaste auf den Server klicken und anschließend auf „Eigenschaften“ und auf die Registerkarte „Netzwerkeinstellungen“ klicken.
Beim Durchführen einer Multicastübertragung kann sich der Multicastserver entweder an die Geschwindigkeit anpassen, die der langsamste Client empfangen kann, oder es kann die Geschwindigkeit auf einer höheren Ebene regeln und die Clients aussortieren, die nicht mithalten können. Aus Gründen der Zuverlässigkeit wird WDS mit der Geschwindigkeit des langsamsten Clients ausgeführt, der die Übertragung empfängt.
Wenn Sie feststellen, dass diese Übertragungsleistung langsamer ist, als Sie erwarten, führen Sie „wdsutil /Get-MulticastTransmission/Show-clients“ aus. Dadurch wird der Masterclient aufgedeckt, der die Übertragung einschränkt. Sie können dann die Verbindung zu diesem Client trennen, sodass er wieder SMB statt Multicast verwendet. Ein Beispielskript für die automatische Trennung von langsamen Clients finden Sie unter go.microsoft.com/fwlink/?LinkId=121961.
Um eine Multicastübertragung zu erstellen, können Sie entweder mit der rechten Maustaste auf ein Installationsabbild klicken und „Multicastübertragung erstellen“ auswählen, oder Sie können in der WDS-Konsole mit der rechten Maustaste auf „Multicastübertragungen“ klicken und „Multicastübertragung erstellen“ auswählen. Während Sie die Multicastübertragung erstellen, können Sie sowohl einen automatischen Cast als auch einen geplanten Cast erstellen. Ein automatischer Cast ist nützlich, wenn Sie mehrere Clients haben, die regelmäßig online sind und alle genau das gleiche Abbild benötigen. Neue Clients werden automatisch der laufenden Übertragung hinzugefügt, die für den allerersten Client initiiert wurde, der ein Installationsabbild angefordert hat. Ein geplanter Cast ermöglicht das Festlegen einer Gruppengröße. Wenn die angegebene Größe erreicht ist, wird die Übertragung gestartet.
Sie können außerdem die Startzeit für die Übertragung festlegen. Sobald Clients die Multicastübertragung verwenden, können Sie sie durch Klicken auf den Abbildnamen anzeigen. Im rechten Fensterbereich werden die Einzelheiten zu den Clients angezeigt, die mit der Übertragung verbunden sind.
In der Regel werden Ihre Endbenutzer Multicast vom WDS Setup-Client verwenden. Es gibt aber ein Befehlszeilendienstprogramm namens „WDSMCast“, das im Windows Server 2008 WAIK (Windows Automated Installation Kit) enthalten ist und mit dem Sie eine .wim-Datei über eine Multicastübertragung von WDS anfordern können. Die .wim-Datei muss in ihrer Gesamtheit übertragen und auf den Client angewendet werden. Deshalb sollten Sie sicherstellen, dass angemessener Speicherplatz für die Speicherung und Anwendung des Abbilds vorhanden ist. Im nächsten Monat wird erläutert, wie Sie WDSMCast in Ihren eigenen benutzerdefinierten Bereitstellungsprozess integrieren können.

Protokollierung in WDS
WDS ist zu einer beachtlichen Protokollierung und Ablaufverfolgung fähig, obwohl vieles davon standardmäßig deaktiviert ist, um Platz zu sparen. Es gibt zwei Arten der Ereignisprotokollierung: Wenn ein Client in das Windows-Ereignisprotokoll schreibt sowie das Schreiben in Verlaufsprotokolle für andere Aspekte von WDS.
In Windows Server 2008 protokolliert WDS jedoch standardmäßig relativ viel. Diese Protokolle sind unter „Verwaltung | Ereignisanzeige“ verfügbar. Die WDS-Protokolle werden in der Ereignisanzeige unter „Anwendungs- und Dienstprotokolle | Microsoft | Windows | Deployment-Services-Diagnostics“ angezeigt. Es ist praktisch, dass es sich hier um die gleichen Protokolle handelt, die angezeigt werden, wenn Sie die WDS-Rolle in der MMC anzeigen (siehe Abbildung 6).
Abbildung 6 Anzeigen von WDS im Server-Manager (zum Vergrößern auf das Bild klicken)
Die WDS-Clientprotokollierung (angezeigt in den Ereignisprotokollen in Abbildung 6) kann durch Ausführen von WDSUtil mit den folgenden Argumenten gestartet werden:
wdsutil /wdsclientlogging /enabled:yes /logginglevel:info
Sie können die Ablaufverfolgung auch für mehrere unterschiedliche Unterkomponenten von WDS ermöglichen. Legen Sie zum Konfigurieren der Ablaufverfolgung unter den Registrierungsschlüsseln entsprechend einen DWORD-Registrierungswert fest (siehe Abbildung 7). Alle Protokolle der Ablaufverfolgung werden unter „\Windows\tracing“ gespeichert. Sie müssen dann die entsprechende Komponente neu starten, damit die Protokollierung beginnt.
Abbildung 7 Einrichten der Ablaufverfolgung
WDS-Komponente | Registrierungsschlüssel | Registrierungswert | Protokollname
Server | HKLM\SOFTWARE\Microsoft\Tracing\WDSServer\EnableFileTracing | 1 | wdsserver.log
Multicast | HKLM\System\CurrentControlSet\Services\WDSServer\Providers\WDSMC\TraceDisabled | 0 | wdsserver.log
Verwaltungskomponenten | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\WDSMGMT\EnableFileTracing | 1 | wdsmgmt.log
MMC | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\WDSMMC\EnableFileTracing | 1 | wdsmmc.log
WDS verfügt außerdem über Leistungsindikatoren (die unter go.microsoft.com/fwlink/?LinkId=121962 beschrieben werden), die Sie bei Systemleistungsproblemen (oder zum Ausführen einer vorgezogenen Systemleistungsanalyse) überwachen können. Wie oben erwähnt, können Sie weitere ausführliche Informationen abrufen, wenn bei der Verwendung der Schalter „/detailed“, „/verbose“ oder „/progress“ mit WDSUtil Probleme auftreten.
Wenn Sie Probleme mit WDS-Clients haben, die mit einem WDS-Server interagieren oder eine Verbindung zu einem WDS-Server herstellen, ist Netmon (Microsoft Network Monitor) ein hervorragendes Tool zum Debuggen der Probleme. Network Monitor kann unter go.microsoft.com/fwlink/?LinkId=121491 heruntergeladen werden.

Andere Probleme
Es fielen einige Probleme auf, die erwähnenswert sind. Das erste Problem betrifft den Speicher. Denken Sie daran, dass WDS grundsätzlich auf Windows PE 2.x basiert. Das heißt, dass WDS-Clients mindestens 384 MB RAM benötigen, und realistisch betrachtet sollten Sie für eine optimale Leistung 512 MB bereitstellen. Denken Sie außerdem daran, dass Windows PE 2.x auf Nicht-ACPI-Systemen (Advanced Configuration and Power Interface) nicht starten kann, und damit ist nicht immer alte Hardware gemeint. Es wurde berichtet, dass relativ neue Systeme ACPI nicht unterstützen.
Beachten Sie, dass diese Systeme auch Windows Vista oder Windows Server 2008 nicht unterstützen werden. Für Systeme, die ACPI nicht unterstützen, müssen Sie entweder einen Windows Server 2003-Server oder einen früheren WDS- oder RIS-Server mit diesen vorkonfigurierten Clients zur Verfügung haben, oder Sie müssen Windows mit einer Nicht-PXE-Methode installieren.
Beachten Sie abschließend Folgendes: Wenn Sie Windows PE 1.x von Ihrem Server aus starten möchten, müssen Sie außerdem einen Windows Server 2003-Server oder früheren WDS- oder RIS-Server verwenden, da WDS unter Windows Server 2008 kein Windows PE 1.x-Abbild (RAMDisk oder PXE) starten kann.

In diesem Artikel wurden die Geschichte von WDS, Grundlagen sowie Themen für Fortgeschrittene behandelt. Im nächsten Monat werden einige benutzerdefinierte WDS-Szenarios untersucht, insbesondere, wie Sie mit WDS interagieren und es so optimieren können, dass es die gewünschten Aufgaben durchführt, oftmals ohne die vorhandene WDS-/Setupfunktionalität zu nutzen.

Wes Miller ist Senior Technical Product Manager bei CoreTrace (www.CoreTrace.com) in Austin, Texas. Zuvor war er bei Winternals Software und als Programmmanager bei Microsoft tätig. Sie können Wes Miller unter technet@getwired.com erreichen.


Sicherheit auf dem Prüfstand Kennwörter und Kreditkarten, Teil 3
Jesper M. Johansson

Inhalt
Überlasten von Aktualisierungstechnologien
Inkonsistente Nachrichten zur Sicherheit
Alles dreht sich um die Kontrollkästchen
Ein Ruf zu den Waffen
In den letzten beiden Ausgaben des TechNet Magazin wurde erörtert, wie Sicherheitsfachleute und die IT-Branche insgesamt die Benutzer verwirren und effektive Sicherheitsbemühungen behindern. In den ersten beiden Artikeln dieser Reihe ging es besonders um Dinge wie Lösungen, die den Heimanwendern irreführende Informationen bieten, den
Workflow beim Anmelden überlasten und schlechte Verhaltensweisen vermitteln. Bisher wurden viele verschiedene Beispiele vorgestellt, wie die Branche in ihrem Eifer, über die Verbrauchersicherheit besorgt zu erscheinen, die Situation tatsächlich verschlimmert hat. In diesem dritten und letzten Artikel wird aufgezeigt, wie einige der wichtigsten Technologien, die Heimanwendern zur Verfügung stehen, nicht die Erwartungen erfüllen, die diese Anwender an diese Lösungen stellen sollten. Das Ganze führt zu meinem Ruf zu den Waffen.

Überlasten von Aktualisierungstechnologien
Einer der Hauptgrundsätze für die elektronische Sicherheit, bei dem es sich tatsächlich um eine unbestreitbare Anforderung handelt, lautet, dass Software immer auf dem neuesten Stand sein sollte. Fast jeder wichtige Softwareanbieter bietet heute irgendeine Form eines halbautomatischen Mechanismus, um zumindest einen Teil seiner Software auf dem neuesten Stand zu halten. Doch so einfach ist es nicht.
Zum einen müssen Sie um so mehr Software aktualisieren, je mehr Software Sie besitzen. Und je mehr Softwareanbieter es sind, desto mehr Aktualisierungsmechanismen existieren. Dies ist ein verwirrender Faktor.
Wenn Sie beispielsweise nur über die Standardprogramme verfügen, aktualisiert sich Internet Explorer® selbst. Doch Internet Explorer ist praktisch nur ein Container für andere Technologien. Die mögliche Auswirkung wurde auf der CanSecWest-Konferenz 2008 vorgeführt, als Shane Macaulay eine Kombination aus Sicherheitsrisiken in Java und Adobe Flash verwendete, um einen Mac zu hacken. (Details waren beim Schreiben dieses Artikels nur spärlich vorhanden, da der Fehler immer noch nicht offen gelegt worden war.) Ich möchte damit jedoch nur ausdrücken, dass keine dieser Technologien eine integrierte Komponente ist, und doch sind beide auf den meisten Computern verfügbar, weil sie im Internet so weit verbreitet sind. Beide bedeuten bei der Aktualisierung eine gewisse Herausforderung, denn sie haben zwar einen automatischen Updatemechanismus, der jedoch nicht sehr oft ausgelöst wird.
Zudem wissen die meisten Endbenutzer einfach nicht, dass diese Technologien vorhanden sind und aktualisiert werden müssen. In vielen Fällen wurden diese Technologien auf dem Computer im OEM-Abbild bereitgestellt, das für den Heimanwender vom Betriebssystem nicht zu unterscheiden ist. Was den Endbenutzer betrifft, gibt es keine Updates, wenn Windows® Update dies behauptet.
Das zweite Problem besteht darin, dass die Aktualisierungsmechanismen oft komplizierter sind als notwendig. Jeder Aktualisierungsmechanismus, der keinen vollständig automatischen Modus hat, wird mit großer Wahrscheinlichkeit nicht häufig durchgeführt, weil der Benutzer gewöhnlich nicht weiß, dass er das Aktualisierungstool ausführen muss. Des Weiteren muss der Benutzer in den meisten Fällen Administrator sein, um die Updates zu installieren. Und im schlimmsten Fall muss der Benutzer Administrator sein, um überhaupt bezüglich verfügbarer Updates benachrichtigt zu werden.
Schließlich ist es immer häufiger der Fall, dass Anbieter Technologien für die Softwareaktualisierung verwenden, die Software bereitstellt, die in gar keinem Zusammenhang steht und die der Benutzer nicht installiert hatte, etwa Symbolleisten und so weiter. Die Softwareaktualisierungstechnologien dienen mittlerweile nicht mehr speziell zum Bereitstellen von Softwareupdates, sondern werden als Möglichkeit zum Verteilen zusätzlicher Software verwendet.
Zwei offensichtliche Fälle dafür sind der Microsoft® Windows Update-Dienst (in Abbildung 1 dargestellt) und Apple Software Update (in Abbildung 2 dargestellt). Sowohl Apple als auch Microsoft haben sich dafür entschieden, ihre Aktualisierungsmethoden nicht nur zum Aktualisieren von Software zu verwenden, sondern auch neue Software bereitzustellen, die der Benutzer ursprünglich nicht installiert hat.
Abbildung 1 Verwendung von Windows Update zum Bereitstellen von Silverlight (zum Vergrößern auf das Bild klicken)
Abbildung 2 Verwendung von Apple Software Update zum Bereitstellen von Safari (zum Vergrößern auf das Bild klicken)
Im Fall von Apple werden Ihnen iTunes und Safari angeboten, selbst wenn bei Ihnen nur QuickTime installiert ist. Interessanterweise werden sie alle auch standardmäßig ausgewählt.
Im Fall von Windows Update ist Silverlight™ die neueste Software, die über den Aktualisierungsdienst bereitgestellt wird. Microsoft hat dieses Verfahren in der Vergangenheit verwendet, um neue Software zu verteilen. Zu Gunsten von Microsoft muss gesagt werden, dass das Kontrollkästchen zum Installieren der neuen Software nicht standardmäßig aktiviert ist.
Dieser Ansatz beim Verteilen neuer Software über einen Aktualisierungsmechanismus verursacht für Benutzer zwei Probleme. Zum einen ist schließlich auf dem Computer sehr viel mehr Software vorhanden als zu Anfang. Wie Sie wissen, weist jede inhaltsreiche Softwareanwendung Fehler auf, und einige dieser Fehler können zu potenziellen Sicherheitsrisiken führen. Einige dieser Sicherheitsrisiken werden schließlich in irgendeiner Form von Angriff verwendet werden. Demzufolge werden einige Benutzer über Software angegriffen werden, die sie nicht benötigen oder verwenden, die jedoch über einen Softwareaktualisierungsmechanismus auf ihrem Computer bereitgestellt wurde.
Eine andere Wirkung besteht darin, dass Benutzer einen falschen Eindruck vom Wert von Softwareaktualisierungsmechanismen erhalten könnten. Wenn Benutzer feststellen, dass Softwareaktualisierungsmechanismen zum Bereitstellen neuer Software statt neuer Updates verwendet werden, könnten sie den Aktualisierungsmechanismus als problematisch betrachten und ihn nicht mehr verwenden. Stellen Sie sich einmal vor, wie sich ein Benutzer fühlen wird, nachdem er aufgrund einer Schwachstelle eines Programms angegriffen wurde, das er nie verwendet, aber über einen Softwareaktualisierungsmechanismus erhalten hat.
Es gibt wenige Dinge, die für die Integrität und Sicherheit des Technologieökosystems gefährlicher sind als Benutzer, die Vertrauen in die Technologien verlieren, welche eigentlich für ihre Sicherheit sorgen sollen. Wenn Benutzer dieses Vertrauen erst einmal verlieren, werden diese Technologien abgelehnt und schließlich nicht mehr verwendet werden. Wenn Technologien, die für den Schutz so wesentlich sind wie Aktualisierungstechnologien, an Gunst verlieren, gerät das gesamte Technologieökosystem in Gefahr. Der Schutz dieses Ökosystems ist der Grund, warum Microsoft Sicherheitsupdates sogar an Computer verteilt, von denen bekannt ist, dass auf ihnen durch Piraterie erworbene Software ausgeführt wird.
Im Vergleich dazu respektiere ich die saubere und zweckdienliche Mozilla Firefox-Aktualisierungsoberfläche sehr, die in Abbildung 3 dargestellt ist. Ich hoffe sehr, dass Mozilla weiterhin der Versuchung widersteht, zusätzliche Software über das Software Update-Tool zu verteilen.
Abbildung 3 Die Software Update-Oberfläche für Firefox ist eine der saubersten der Branche (zum Vergrößern auf das Bild klicken)

Inkonsistente Nachrichten zur Sicherheit
Es wäre schön, wenn die Branche Verbrauchern gegenüber gemeinschaftlich auftreten könnte. Obwohl Wettbewerb in der Branche wichtig ist, müssen Heimanwender verstehen, was Sicherheit für sie bedeuten sollte. Leider können sie dies nicht, wenn die Branche stets widersprechende Nachrichten vermittelt. Offen gesagt, würde es mir schon ausreichen, wenn Unternehmen in ihren eigenen Nachrichten konsistent wären.
Die Branche wird sich wahrscheinlich nie zu einem gemeinschaftlichen Auftreten zusammenfinden, doch die Nachrichten sollten zumindest konsistent und ehrlich sein. Aufgrund der großen Bedeutung, die dem Sicherstellen des Vertrauens von Heimanwendern in die Sicherheit zukommt, muss die Branche insgesamt eine bessere Leistung zeigen.
Ähnlich müssen wir hinterfragen, was heute eigentlichen Wert bietet. So glaube ich beispielsweise nicht, dass Antivirusprogramme so effektiv oder kritisch sind, wie uns die Branche glauben lässt. Betrachten wir einmal den Computer, den mein siebenjähriger Sohn verwendet, sowie den Computer in meiner Küche. Auf beiden sind Antivirusprogramme installiert, und in den drei Jahren, seitdem sie installiert wurden, kam es nie zu einer Warnung. Damit will ich nicht sagen, dass wir Antivirusprogramme aufgeben sollten. Zum jetzigen Zeitpunkt sind sie zentrale Komponente des Technologieökosystems. Wenn plötzlich alle Antivirusprogramme entfernt würden, würden Angreifer dies schnell ausnutzen, und es würde zu mehr Infektionen kommen.
Vielmehr kommt es darauf an, dass die Branche an Features denkt, die Benutzer in ihren Sicherheitsprodukten wirklich benötigen, und daran, wie effektiv diese Features sind und wie Unternehmen den Verbrauchern diese Anforderungen und Werte vermitteln können. Wie die Dinge stehen, erhalten Benutzer heute viel zu viele widersprechende, übertriebene und oft unwahre Nachrichten zur Sicherheit.

Alles dreht sich um die Kontrollkästchen
Ein Beispiel: In der Branche für Sicherheitssoftware dreht sich alles um Suites. Heute wird Sicherheitssoftware fast ausschließlich in Paketen scheinbar nicht verwandter Features verteilt. Und es gibt praktisch keine Informationen dazu, welche Features Benutzer tatsächlich benötigen.
Dies scheint zu einem Wettbewerb zu führen, bei dem immer mehr Kontrollkästchen aktiviert werden. Obwohl Checklisten eine gute Möglichkeit zum Vergleich von Produkten bieten, können sie zu Features führen, die nicht unbedingt notwendig oder wünschenswert sind oder überhaupt Sinn ergeben. Die Abbildungen 4 bis 7 zeigen vier verschiedene Listen von vier verschiedenen Anbietern von Sicherheitssoftware mit aktivierten Kontrollkästchen. Können wir davon ausgehen, dass das Produkt mit 17 aktivierten Kontrollkästchen dem Produkt mit nur 10 aktivierten Kontrollkästchen überlegen ist?
Ich finde diese Abbildungen ziemlich amüsant. In Abbildung 4 wurde ein Kontrollkästchen aktiviert, weil es sich bei dem Produkt um eine neue Version handelt. Und bei dem Produkt in Abbildung 5 wurde ein Kontrollkästchen aktiviert, weil es laut Behauptung des Unternehmens „Angriffe von böswilligen Websites unterbindet“. Das Produkt in Abbildung 6 erhält zusätzliche Punkte, weil es „Kinder online schützt“. Offensichtlich würde niemand ein Produkt wollen, das Kinder nicht schützt. Doch Sieger der Auszeichnung für Kreativität ist das Unternehmen, in dessen Sicherheitssuite Features wie Registrierungsbereinigung und Festplattendefragmentierung enthalten sind. Das erste Feature wird kaum jemals gebraucht, und das zweite ist bereits im Betriebssystem integriert. Tatsächlich enthält das Windows-Betriebssystem bereits Lösungen für 15 der 17 aktivierten Kontrollkästchen in Abbildung 7.
Abbildung 4 Bei diesem sehr guten Produkt sind nur 10 Kontrollkästchen aktiviert (zum Vergrößern auf das Bild klicken)
Abbildung 5 Dieses Produkt mit 11 aktivierten Kontrollkästchen muss besser sein (zum Vergrößern auf das Bild klicken)
Abbildung 6 Dieses Produkt hat sogar 12 aktivierte Kontrollkästchen (zum Vergrößern auf das Bild klicken)
Abbildung 7 Doch dieses Produkt mit 17 aktivierten Kontrollkästchen muss die beste Lösung sein, oder? (zum Vergrößern auf das Bild klicken)
Hier gibt es einige störende Trends. Bei diesen Produkten werden nicht nur Funktionen dupliziert, die bereits im Betriebssystem enthalten sind (eine Tatsache, die in der Marketingliteratur nicht erwähnt wird), sondern es wird sogar Falsches behauptet. So kann beispielsweise keine Sicherheitssoftware der Welt wirklich Angriffe von irgendeiner Seite unterbinden. Sie kann nur zur Verhinderung beitragen. Und kein Produkt kann Ihre Präsenz vor Angreifern verbergen.
Das Problem besteht darin, dass das Geschäft der Softwaresicherheit größtenteils darauf aufgebaut wurde, Benutzer vor Sicherheitsrisiken zu schützen, die durch Produkte ermöglicht wurden, welche von anderen Anbietern erstellt wurden. Doch diesen Anbietern gelingt es immer besser, ihre eigenen Kunden zu schützen, und demzufolge stellt die Sicherheitssoftwarebranche fest, dass ihr Geschäftsmodell bedroht wird. Die Sicherheitssoftwarebranche hat sicherlich viel anzubieten, da ständig neue Risiken auftreten, doch die Anbieter müssen den Kunden beim Verwalten von Risiken helfen und nicht einfach nur Schutz vor Bedrohungen bieten, die es eigentlich gar nicht gibt.

Ein Ruf zu den Waffen
Eine Sache, die ich den Lesern dieser dreiteiligen Serie vermitteln möchte, lautet, dass wir als Branche mit unseren Benutzern und Kunden auf gleicher Ebene sein müssen. Wir müssen die Risiken erklären und vermitteln, wie Benutzer diese Risiken behandeln können. Und letztendlich müssen wir die Betreffenden so ausstatten, dass sie sich selbst schützen können.
Meine größten Bedenken bei all diesen „Lösungen“ gehen dahin, dass die ernste Möglichkeit besteht, dass die Sicherheit langfristig schließlich sinkt. Wenn Benutzer und sogar IT-Manager tatsächlich glauben, dass diese Produkte wirkliche Sicherheitsrisiken lösen werden, besonders jene Risiken, die sie laut irreführender Behauptungen zu lösen vorgeben, haben wir möglicherweise keine Gelegenheit mehr, den Betreffenden zu vermitteln, wie sie sich wirklich schützen können.
Ein Beispiel sind Systeme für die Kennwortauthentifizierung. Wenn die Benutzer glauben, dass die schwachen Add-Ons zu kennwortbasierten Authentifizierungssystemen, die im ersten Teil dieser Reihe erörtert wurden, sie tatsächlich schützen, könnten sie sogar noch nachlässiger werden und noch schwächere Kennwörter verwenden. In den schlimmsten Fällen, die in dieser Reihe hervorgehoben wurden, zwingt die Technologie den Benutzer sogar, schwächere Sicherheitsvorkehrungen zu verwenden, als dies der Fall gewesen wäre, wenn die neue Technologie nicht implementiert worden wäre. Wenn böswillige Benutzer herausfinden, wie diese Systeme überwunden werden können, was oft nicht weiter schwer ist, werden wir in einer noch schlechteren Lage sein als zum jetzigen Zeitpunkt. Dies könnte zu einem bedeutenden Vertrauensproblem führen, sodass die Benutzer Lösungen von wirklichem Wert aufgeben.
Wir müssen jetzt handeln, um das Technologieökosystem zu schützen, das unsere Geschäfte stützt. Zu Neuerungen muss selbstverständlich ermutigt werden, doch wir müssen auch sehr vorsichtig sein und vermeiden, dass Neuerungen um ihrer selbst Willen einer echten Risikoanalyse im Weg stehen. Andernfalls haben wir nur ein Sicherheitstheater, das schließlich um uns herum zusammenbrechen wird.
Dasselbe gilt für die anderen Beispiele, die diskutiert wurden, etwa der bedeutungslose Sicherheitsaugenschmaus. Er bietet den Benutzern keinerlei Vorteil, wiegt sie in einem falschen Gefühl von Sicherheit und sorgt dafür, dass Onlinedienstanbieter mit Optimierungen davonkommen, die für die Benutzer tatsächlich indirekten Schaden verursachen. Dabei würden die Nettokosten nur ein paar tausend Dollar oder in den extremsten Fällen vielleicht einige zehntausend Dollar betragen, um den Benutzern richtige Informationen zu bieten. Ist es wirklich zu viel verlangt, dass Anbieter diese kleine Summe für Bemühungen zum Schutz ihrer Kunden und ihres Geschäfts aufwenden?
Dies hat viele Implikationen. Zum einen geht es dabei um die Vorstellung, dass Benutzer nicht in der Lage sind, Entscheidungen zu treffen, und daran gehindert werden müssen. Benutzer können durchaus gelehrt werden, Entscheidungen zu treffen. Schließlich haben diese Benutzer viele Entscheidungen getroffen, beispielsweise die Entscheidung, einen Computer zu erwerben oder Ihre Website zu verwenden oder eines Ihrer Produkte oder Dienste zu erwerben. Genau wie die Betreffenden lernen müssen, ein Auto sicher zu fahren, müssen sie auch lernen, einen Computer sicher zu verwenden. Die Angriffe zielen heute auf die Benutzer persönlich ab, und auf die Technologie können wir uns beim Treffen von Entscheidungen nicht verlassen. Stattdessen müssen Sicherheitstechnologien Supportsysteme für Entscheidungen sein und die richtigen Informationen zum richtigen Zeitpunkt bereitstellen, damit der Benutzer eine intelligente Entscheidung treffen kann.
Einige der schlechtesten Benutzeroberflächen der Welt sind auf Sicherheitslösungen zurückzuführen, weil die Anwendungen so entworfen wurden, dass sie entweder die Entscheidungsfindung vor dem Benutzer verbergen oder ihn (auf unfreundliche Art) mit allen verfügbaren Daten überhäufen. Keiner dieser Ansätze funktioniert. Der erstgenannte setzt Benutzer Risiken aus, da sie sich nicht darauf verlassen können, dass die Technologie die richtige Wahl trifft. Und wenn die Technologie als hinderlich für die Geschäftsziele des Benutzers empfunden wird, dauert es nicht lange, bis die Technologie deaktiviert wird. Der letztgenannte Ansatz unterdessen versagt, weil die Betreffenden nicht mit IP-Adressen, Prozess-IDs und anderen Daten, die für sie bedeutungslos sind, behelligt werden möchten. Sie möchten einfach nur wissen, was der Computer mit ihren Kennwörtern und Kreditkarten macht. Denn darum geht es letztendlich bei der Sicherheit.

Jesper M. Johansson ist Softwarearchitekt mit dem Schwerpunkt Sicherheitssoftware und schreibt redaktionelle Beiträge für das TechNet Magazin. Er hat seine Doktorarbeit zum Thema Management Information Systems geschrieben, verfügt über mehr als 20 Jahre Erfahrung auf dem Gebiet der Sicherheit und ist MVP im Bereich Unternehmenssicherheit. Sein aktuelles Buch ist das Windows Server 2008 Security Resource Kit.


Berichte aus der Praxis Innovation von innen
Romi Mahajan

In seinem Buch Das Ende des Managements: Unternehmensführung im 21. Jahrhundert vertritt der bekannte Managementguru und Geschäftsstratege Gary Hamel die These, dass langfristige komparative Vorteile auf der Schaffung einer Innovationskultur beruhen, die ihrerseits ein Produkt der Weiterentwicklung von Managementtechnologien ist. Während sich die Branche entlang vieler Achsen unzählige Male neu erfunden und erneuert hat, sind die meisten Unternehmen immer noch von einer hierarchischen Managementkultur durchdrungen. Diese verhindert die Entwicklung einer wahrhaft innovativen Kultur einfach dadurch, dass sich menschliche Kreativität und Humankapital nicht angemessen bezahlt machen.
Solche Hierarchien wirken der Innovation entgegen, und die menschliche Kreativität ist, wenn sie entfesselt wird, die Haupttriebkraft für langfristige komparative Innovationsvorteile. Wenn die menschliche Kreativität eingeschränkt wird, sind mehr als 80 Prozent der Arbeitskräfte bei ihrer Tätigkeit nicht sehr engagiert. Hamel glaubt, dass es sich dabei nicht nur um ein geschäftliches, sondern auch um ein moralisches Versagen handelt.
Auf einer sehr allgemeinen Ebene sollte dies ein Weckruf für die Branche sein, übermäßige Hierarchien abzuschaffen. Im Grunde ist das Argument antibürokratischer Natur. Die Entscheidungsgewalt sollte nicht bei praxisfernen Managern und reichen Führungskräften liegen.
Hamel argumentiert, dass das Management und nicht IT die Quelle für Innovationen darstellt. Informationstechnologie kann schließlich zu einem Massenprodukt werden – wie kann sie also zu einem komparativen Vorteil führen? Wenn IT nicht die Quelle für Innovationen ist und durch Produktivitätsgewinne, Betriebszeit, Zuverlässigkeit, schnelle Einführung neuer Anwendungen und einmalige Anmeldung (und dergleichen) keine komparativen Vorteile erzielt werden können, warum machen wir uns alle dann überhaupt so viele Sorgen?
Sind Sie bereit, tief in die Seele Ihrer IT-Organisation und Ihres Unternehmens als Ganzem zu blicken, um zu sehen, ob Hamel nicht vielleicht doch Recht hat? Wie können Sie sicherstellen, dass Informationstechnologie nicht als Massenprodukt betrachtet wird?
Indem ich die besten Konzepte Hamels übernommen und dafür genutzt habe, IT-Organisationen dabei zu helfen, ihre Zukunft als Innovationszentren zu sichern, habe ich eine Theorie namens „Innovation von innen“ entwickelt. Die optimale Nutzung der menschlichen Kreativität und des Humankapitals ist der Schlüssel zu nachhaltigen komparativen Vorteilen, und große Organisationen müssen Innovation als integralen Bestandteil in ihre Tätigkeit einbinden. Organisationen müssen sich der Gemeinschaft und nicht der Bürokratie verpflichtet fühlen. Am wichtigsten ist jedoch, dass das Management zu häufig wahrer Innovation im Wege steht – nur wenn sich das Management weiterentwickelt, ist echte Innovation möglich.
Betrachten wir einmal die IT-Organisationen. IT-Mitarbeiter sind in der Regel intelligent, engagiert und bestrebt, etwas zu bewirken. Da häufig von ihnen verlangt wird, mit weniger Ressourcen mehr zu erreichen, wenden sie den größten Teil ihrer Zeit für ihre Hauptaufgaben auf, sodass ihnen wenig Zeit für Innovationen bleibt.
Bei meinem Konzept der Innovation von innen wird Hamels Theorie auf den Bereich der Informationstechnologie angewendet. Die wesentlichen Prinzipien lauten:
  • Angesichts der natürlichen Kreativität der IT-Mitarbeiter liegt es in unserem besten Interesse, ein IT-Managementmodell zu gewährleisten, bei dem dieses Potenzial genutzt wird.
  • Innovation beruht auf einem systematischen und schonungslosen Prozess aus Gedanke – Versuch – Irrtum – Überarbeitung, einem der Informationstechnologie innewohnenden Prozess.
  • Wenn das Gemeinschaftskonzept aus vollem Herzen und offen angenommen wird, entstehen technische Lösungen. Informationstechnologie kann den Weg dahin weisen, angefangen bei sich selbst!
  • Im IT-Bereich sind die Mitarbeiter die einzige Quelle für komparative Vorteile.
  • Die Führungskräfte im IT-Bereich müssen den Schwerpunkt von Projekten und Budget auf das neue und aufregende Gebiet des Innovationsmanagements verlagern.
  • Bei der Informationstechnologie sollte es nicht um Kosteneindämmung, sondern um das Erreichen großartiger Ergebnisse gehen.
Sind Sie bereit, an diese Theorie zu glauben? Können wir das Konzept der „Innovation von innen“ anwenden und demonstrieren, dass IT-Organisationen der richtige Ort für dieses großartige Experiment sind? Sind die Führungskräfte bereit, Macht abzugeben und sich mit ihren eigenen Communitys zu verbünden? Ist das Management bereit, auf seine Macht zu verzichten und sich unsere kollektive Brillanz zu Eigen zu machen?

Romi Mahajan ist Chief Marketing Officer der Ascentium Corporation. Bevor er zu Ascentium kam, war er mehr als sieben Jahre lang für Microsoft tätig, wo er zuletzt die Position des Director of Technical Audience and Platform Marketing bekleidete. Romi Mahajan hat zahlreiche Arbeiten im Bereich Technologie, Politik, Wirtschaftswissenschaft und Soziologie veröffentlicht.


Windows Confidential Windows 95 Unplugged
Raymond Chen

Obwohl 32-Bit-Programme für Windows® 95 mit einem durchschnittlichen 32-Bit-Compiler und 16-Bit-Programme mit einem durchschnittlichen 16-Bit-Compiler gut beraten wären, benötigte Windows 95 selbst einen besonderen Compiler, und zwar einen, der sowohl mit 32-Bit- als auch mit 16-Bit-Programmen umgehen und diese Lücke überbrücken kann. Windows 95 benötigte außerdem einen benutzerdefinierten Linker, der diese zwei Arten von Code miteinander verknüpfen konnte, und es benötigte einen benutzerdefinierten Linker für VxDs (das Treiberformat für Windows 95).
Das Windows 95-Team war darauf angewiesen, dass die Sprach- und Toolabteilung diese speziellen Compiler und Linker bereitstellen. Ich bin mir sicher, dass sich die Sprachabteilung über diese Anfrage wunderte: „Wir sollen einen Compiler erstellen, der X, Y und Z ausführt, und er wird während seiner gesamten Lebensdauer nur zur Kompilierung von zwei DLLs eingesetzt?“ Richtig. Aber es handelte sich immerhin um zwei ziemlich wichtige DLLs.
Trotz der offensichtlichen Absurdität der Anfrage wurde sie von der Sprach- und Toolabteilung erfüllt, und der hochspezialisierte Compiler und Linker wurde in den Windows 95-Buildprozess aufgenommen. Selbstverständlich war der Compiler nicht von Anfang an fertig entwickelt. Das Windows-Team erhielt eine vorläufige Version und dann regelmäßige Updates, sobald neue Optimierungen implementiert und Fehler korrigiert wurden.
Eines Tages verlangsamte sich der Windows 95-Build unerwartet auf ein Schneckentempo. Eine Datei, die normalerweise in wenigen Sekunden verlinkt wurde, benötigte plötzlich Minuten. Die Datei wurde zwar erfolgreich generiert, aber das Ganze dauerte ewig. Davon war nicht nur der Computer eines einzigen Entwicklers betroffen. Das Problem trat bei allen im Team auf. War unser Code plötzlich auf einen pathologischen Fall im Linker gestoßen? Hatten wir zufällig einen Fehler im Linker entdeckt?
Nach einigem Debuggen stellten wir die Fehlerquelle fest. Die letzte Version des Linkers enthielt einen Diagnosecode, und den hatten die Kollegen aus der Sprachabteilung vergessen zu entfernen, bevor sie den Code dem Windows-Team übergaben. Dieser Diagnosecode protokollierte seine Ausgabe in einer Datei, die auf einem Computer im Büro eines der Mitglieder des Compilerteams gespeichert wurde. Zufällig war dieser Computer ausgeschaltet. (Das erinnert mich an Leslie Lamport und seinen berühmten Aphorismus, mit dem er ein verteiltes System als ein System beschreibt, in dem Sie keine Arbeit erledigen können, weil ein Ihnen völlig unbekannter Computer nicht eingeschaltet ist.)
Diese Version des Linkers war wochenlang völlig problemlos ausgeführt worden. Jedes Mal, wenn jemand versuchte, beim Erstellen von Windows 95 einen VxD zu verknüpfen, wurde die Datei auf dem Computer dieses Entwicklers aktualisiert. Solange dieser Computer eingeschaltet und mit dem Netzwerk verbunden war, hat niemand jemals etwas bemerkt. Aber eines Tages wurde dieser Computer ausgeschaltet, und alles verfiel in ein Schneckentempo.
Nachdem das Problem identifiziert war, dauerte es nicht lange, bis die Compilerleute dem Windows-Team einen Patch gaben, mit dem der Diagnosecode vom Linker entfernt wurde.
Es gibt verschiedene Pointen zu dieser Geschichte, je nachdem, wer sie erzählt. Wenn ich die Geschichte erzähle, ist die Pointe: „Und dieser Compilerentwickler kam später zum Windows-Team und wurde mein Chef.“ Ich habe diese Geschichte immer wieder gern erzählt, um jemanden damit zu necken.
Wenn aber mein Chef sie erzählt, ist die Pointe eine ganz andere: „Und es stellte sich heraus, dass ich diesen Diagnosecode nicht einmal geschrieben hatte. Es war einer meiner Kollegen, der entschieden hatte, dass er lieber meinen als seinen eigenen Computer mit Diagnoseinformationen füllt!“

Raymond Chen befasst sich auf seiner Website „The Old New Thing“ und in seinem gleichnamigen Buch mit der Geschichte von Windows und mit der Win32-Programmierung. Seine DNA ist voll von totem Code.