 TechNet Magazine October 2007

TechNet Magazine October 2007

Grüne EDV: Erstellen Sie ein grünes Datencenter

Unternehmen weltweit suchen inzwischen nach Möglichkeiten, Energie zu sparen und Kosten zu senken, und trotzdem gibt es fast keine Anleitungen, wie dabei am Besten vorzugehen ist. Informieren Sie sich anhand dieser Einführung über Planung, Entwicklung und Implementierung eines grünen Datencenters in Ihrer Organisation.

Dave Ohara Windows-Verwaltung: Eine Anleitung zur Active Directory-Replikation

Active Directory bietet enorm viel Flexibilität bei der Unterstützung einer großen oder dezentralisierten Umgebung, doch die Aufrechterhaltung der Datenintegrität kann eine Herausforderung sein. Die Active Directory-Replikation definiert, wie Updates in Ihrer Umgebung übermittelt und wie Konflikte gelöst werden. Hier finden Sie die erforderlichen Informationen, um sich dieser Herausforderung zu stellen.

Laura E. Hunter System Center: Neue Tools für die Softwareupdateverwaltung

System Center Configuration Manager 2007 bietet eine völlig neue Methode zum Umgang mit der Updateverwaltung, die auf jedem Client bessere Kompatibilität und Erzwingung gewährleistet. Erfahren Sie, wie Ihnen dieser verbesserte Ansatz helfen kann, alle Ihre Computer auf den neuesten Stand zu bringen.

Steve Rachui Kommunikation: Exchange-Edge-Transport-Server bei Microsoft

Wie stellt Microsoft die Zustellung legitimer Nachrichten an Mitarbeiter sicher und hält die Überflutung mit schädlichem Inhalt aus der Messagingumgebung fern? Eine Möglichkeit besteht in der Bereitstellung von Edge-Transport-Servern für Exchange Server 2007 und Forefront Security für Exchange Server. Finden Sie heraus, wie Sie in Ihrer Organisation mithilfe dieser Technologien Sicherheit gewährleisten können.

Kay Unkroth SQL Server: Optimieren der SQL Server-CPU-Leistung

Für eine stabile CPU-Nutzung auf Ihrem Datenbankserver muss vor allem sichergestellt werden, dass die CPU ihre Zeit damit verbringt, das zu verarbeiten, was Sie angeben, statt die Zyklen mit schlecht optimiertem Code oder schwerfälliger Hardware zu vergeuden. Hier sind einige Tipps, wie Sie SQL Server und Ihre Hardware optimal nutzen können.

Zach Nichter Mitteilung der Redaktion: Das Beste steht noch bevor

Joshua Hoffman Toolbox: Neue Produkte für IT-Experten

Greg Steen SQL – Fragen und Antworten: Anmeldungstrigger, Datendateidefragmentierungen und mehr

Edited by Nancy Michell Schwerpunkt Dienstprogramme: Virtual Machine Remote Control Plus

Matthijs ten Seldam Führung eines IT-Unternehmens: Berechnen des Werts der IT-Infrastruktur in Behörden

Acer Maamoun The Cable Guy: Das authentifizierte Internetprotokoll

Joseph Davies Windows PowerShell: Arbeiten ohne Skript

Don Jones Hey, Scripting Guy!: Und es werde Silverlight

The Microsoft Scripting Guys Sicherheit auf dem Prüfstand: BitLocker und die Komplexitäten des Vertrauens

Justin Troutman Die Desktopdateien: Das Poweruser-Handbuch für WIM und ImageX

Wes Miller Berichte aus der Praxis: Recyceln Ihres PCs

Jim Lynch Windows Confidential: Dr. Watson

Raymond Chen


 Gr&#252;ne EDV: Erstellen Sie ein gr&#252;nes Datencenter
Grüne EDV Dave Ohara

Erstellen Sie ein grünes Datencenter
Kurz zusammengefasst:
  • Energieüberwachungssysteme
  • Wichtige Eigenschaften eines grünen Datencenters
  • Auswirkungen von H.R. 5646
  • Bewährte Methoden für den Einstieg

Grün ist das heiße Thema unserer Zeit. Auch Datencenter müssen sich dieser Herausforderung stellen. Unternehmen in der ganzen Welt werben mit Möglichkeiten,
durch den Kauf neuer Hardware und neuer Dienste Energie zu sparen und Kosten zu senken. Dennoch gibt es fast keine Anleitungen dazu, was Sie tun können, um die Energiekosten in den Griff zu bekommen. Früher wurden die Kosten für elektrischen Strom wie die Kosten für Räumlichkeiten als laufende Geschäftskosten behandelt. Doch aufgrund steigender Energiepreise und zunehmender Problemen hinsichtlich Zuverlässigkeit, Versorgung und Kapazität ist für die Energieversorgung jetzt eine eigene spezielle Strategie erforderlich.
Projekte zur Leistungsoptimierung und Kostensenkung sind in fast jedem Unternehmensbereich zu einem Bestandteil alltäglicher bewährter Methoden geworden. Warum werden also die Energiekosten nicht auf dieselbe Weise behandelt?
Viele IT-Experten treffen Entscheidungen über die Konfiguration und das Setup von Servern, die Spezifikationen der Geräte, die von Organisationen erworben werden, sowie die Anforderungen für das Erstellen und Aktualisieren von Datencentern. IT-Experten stellen während der Anwendungsentwicklung sogar anfängliche Entwurfsvorschläge bereit. Bei diesen Projekten bietet sich eindeutig eine hervorragende Gelegenheit, grün zu denken und Einfluss auf die Energieeffizienz des Datencenters zu nehmen.
Der erste Teil jeder Strategie besteht darin, den derzeitigen Energieverbrauch zu kennen. Sie müssen wissen, wo und von welchen Geräten in Ihrem Unternehmen Energie verbraucht wird und welcher Energieverbrauch im Datencenter effizient und welcher unnötig ist. Leider sind nur selten Möglichkeiten vorhanden, den gemessenen Energieverbrauch so aufzuschlüsseln, dass die Benutzer sehen können, welche Folgen ihre Maßnahmen haben. In den meisten Organisationen ist in der Regel nur eine monatliche Stromrechnung verfügbar, in der der gesamte Energieverbrauch aufgeführt ist. Dies bietet nur wenig Anreiz zur Energieeinsparung, da einzelne Mitarbeiter die Auswirkungen ihrer Entscheidungen nicht sehen und keine Möglichkeit haben, zu beweisen, dass ihre Änderungen tatsächlich zu Energieeinsparungen geführt haben.
Eines der ersten Probleme für IT-Mitarbeiter, die eine Initiative für ein grünes Datencenter in Betracht ziehen, ist die Frage, ob ihre Bemühungen von der Unternehmensführung unterstützt werden. Damit dieser Artikel seinen Zweck erfüllen kann, gehe ich davon aus, dass die Antwort auf diese Frage „noch nicht“ lautet. Eine Unterstützung durch die Unternehmensführung setzt ein ernsthaftes Engagement voraus, durch das die Ressourcen und das Budget für die Initiative bereitgestellt werden. Obwohl viel über grüne Datencenter geredet wird, sieht es in Wirklichkeit doch so aus, dass bei der Unternehmensführung die Unterstützung dafür häufig fehlt. Hätten Sie Unterstützung durch die Unternehmensführung, dann würden Sie jetzt wahrscheinlich schon längst ein grünes Datencenter betreiben.
Doch selbst dann, wenn Sie zurzeit keine Unterstützung erhalten, können Sie die Initiative eines grünen Datencenters auf vielerlei Weise vorantreiben. Welche Maßnahmen sind effektiv, um Ihre Ziele zu erreichen? Glücklicherweise ist Energieeffizienz kein neues Konzept, und IT-Experten können vieles von anderen Branchen lernen.

Auswerten des Energieverbrauchs
Eine der schwierigsten Aufgaben, auf die ich beim Schreiben dieses Artikels gestoßen bin, besteht darin, die vielen verschiedenen Zahlen aus den unterschiedlichsten Quellen richtig auszuwerten. Einige Studien besagen, dass Datencenter in den USA zwischen 1,2 bis 2,0 Prozent des gesamten Stromverbrauchs ausmachen. Wenn Sie Datencenter als eine eigenständige Branche betrachten, dann müssten Schätzungen zufolge die Datencenter in den USA zu den 5 Branchen mit dem größten Energieverbrauch gezählt werden. In einem Datencenter eines Unternehmens in den USA kann die Energieversorgung 15 bis 20 Prozent der Betriebskosten ausmachen.
In einer Studie der Lawrence Berkeley National Laboratories für den „American Council for an Energy-Efficient Economy“ wurde festgestellt, dass Datencenter einen bis zu 40 Mal höheren Energieverbrauch als konventionelle Bürogebäude aufweisen können. In dieser Studie wird ausführlich beschrieben, welche Maßnahmen im Bereich der Betriebsanlagen getroffen werden können, um die Energieeffizienz zu verbessern (siehe eetd.lbl.gov/emills/PUBS/PDF/ACEEE-datacenters.pdf). Ein guter Ausgangspunkt ist es, zu ermitteln, in welchem Umfang die in dieser Studie vorgeschlagenen bewährten Methoden in Ihrem Datencenter eingesetzt werden.
Zweifellos gibt es in Bezug auf den Energieverbrauch viele verschiedene Perspektiven, Studien und Zahlen. Eine Tatsache bleibt jedoch unverändert, nämlich, dass sehr viel Energie verschwendet wird. Denken Sie nur daran, wie viele Server mit der Absicht gekauft wurden, für das Geld die beste Ware zu bekommen, d. h. möglichst viel CPU-Leistung, Arbeitsspeicher, Speicherlaufwerke und redundante Stromversorgungen zu erwerben, ohne das vorgegebene Budget zu überschreiten. Viele dieser Server wurden in den letzten 3 bis 5 Jahren mit einer durchschnittlichen Auslastung von 10 bis 15 Prozent betrieben. Während in erster Linie oft nur auf CPUs geachtet wird, spielen hierbei auch noch andere Komponenten eine wichtige Rolle – Speicher, Festplatten und Netzwerkschnittstellen sind ausnahmslos große Energieverbraucher, die in ihrer Gesamtheit den Energieverbrauch der CPU übertreffen.
Mittlerweile kann überschüssige Hardwarekapazität, von Prozessoren bis hin zu redundanten Stromversorgungen, zu einer enormen Verschwendung führen. Aufgrund des in den meisten IT-Abteilungen vorherrschenden Grundsatzes, Risiken möglichst zu vermeiden, ist ein Kapazitätsüberschuss oft die Norm. Die sicherste Strategie besteht darin, überschüssige Hardwarekapazität anzuschaffen, auch wenn dies in finanzieller Hinsicht nicht unbedingt die beste Entscheidung ist. Doch obwohl der Energieverbrauch ein wichtiger Faktor ist, wird er beim Berechnen der Lebenszykluskosten meist außer Acht gelassen. Leider gibt es keine Anreize, effiziente Lösungen zu kaufen, da sich nach der Bereitstellung für die Entscheidungsträger daraus keine Kostenvorteile ergeben.
Doch früher oder später wird ein Wendepunkt erreicht. Wenn Führungskräfte erkennen, wie wenig von der Hardwarekapazität des Datencenters tatsächlich genutzt wird, wird eine Serverkonsolidierung oft als Möglichkeit angesehen, die Kosten zu senken. Es ist viel leichter, Server von vornherein in der geeigneten Größe anzuschaffen, anstatt bereits bereitgestellte Server nachträglich zu konsolidieren.
Die IT-Branche hat jetzt ein neues Niveau erreicht, in dem Optimierung plus Kostensenkung zu einer Priorität werden. Der Energieverbrauch ist einer von mehreren Indikatoren, die Führungskräfte heranziehen können, um die Effektivität von Entscheidungen zu messen, die hinsichtlich des Lebenszyklus von IT-Hardware gefällt wurden. AMD, Intel sowie die OEMs von Servern und Komponenten verweisen ausnahmslos auf das Leistungs-/Watt-Verhältnis ihrer Plattformen. Diese Leistungs-/Watt-Zahlen können dazu verwendet werden, mithilfe der folgenden umgekehrten Formel die Betriebskosten zu berechnen: Watt pro Leistungseinheit. Angesichts der zahlreichen Mitarbeiter die an der Entwicklung von IT-Lösungen beteiligt sind (Mitarbeiter in Unternehmenseinrichtungen und Anwendungsentwicklung, Architekten, Betriebspersonal sowie Mitarbeiter der Geschäftseinheiten), liefert die Leistungs-/Watt-Kennzahl die Antwort auf die Frage „Was bekomme ich dafür?“ und führt Ihnen vor Augen, wie Lösungen hinsichtlich ihrer Energieeffizienz im Vergleich abschneiden.
Wieso ist es häufig üblich, Energiekosten zu ignorieren und Entscheidungen zu übersehen, die sich auf Betriebs- und Einrichtungskosten auswirken? Wie viele Datencenter kennen Sie aus Ihrer Erfahrung, die wegen der Beschränkungen in den Bereichen Energieversorgung und Kühlung vollständig ausgelastet sind? Früher bestand das Hauptproblem von Datencentern darin, genügend Raum bereitzustellen. Heute dagegen stellt sich die Frage, ob genügend Kapazität vorliegt, um sämtliche Geräte ausreichend mit Energie und Kühlung zu versorgen, und wie bald diese Kapazität erschöpft sein wird.

Die Bedeutung von Energieüberwachungssystemen
Es kann schwierig sein, den Energieverbrauch exakt zu messen. Wie an früherer Stelle bereits erwähnt, werden in den meisten Unternehmen die Energiekosten in einer Summe zusammengefasst, statt den Energieverbrauch nach bestimmten Einheiten aufzuschlüsseln. Diese Methode, Energiekosten als laufende Geschäftskosten zu behandeln, erzeugt den Eindruck, die Energiekosten lägen außerhalb der Kontrolle der Geschäftseinheit. Dies ist jedoch nicht der Fall.
In einem Datencenter kann zehn Mal mehr Energie pro Quadratmeter als in normalen Büroräumen verbraucht werden, und daher können selbst geringfügige Effizienzverbesserungen in Datencentern enorme Einsparungen nach sich ziehen. Es überrascht nicht, dass Kosteneinsparungen der Hauptgrund dafür sind, in Datencentern Energiesparprogramme zu implementieren. Hier stellt sich jedoch das Problem, dass beim Energieverbrauch normalerweise nach der Methode der niedrigsten Kosten vorgegangen wird und die monatlichen Anlagenkosten für Datencenter zusammengefasst werden. Anschließend werden die Kosten auf Gruppen umgelegt, wobei der von ihnen eingenommene Raum und/oder ihr Portanschluss zu Grunde gelegt wird, doch dieses Verfahren liefert eine alles andere als genaue Aufschlüsselung der tatsächlichen Kosten, die durch den Betrieb eines bestimmten Datencenter-Geräts entstehen.
Es kommt selten vor, dass eine Organisation ein Messverfahren verwendet, mit dem der tatsächliche Energieverbrauch einzelner Datencenter-Geräte gemessen wird. Dies liegt größtenteils daran, dass die Installation eines Systems zur Messung und Meldung des Energieverbrauchs eine beträchtliche Investition im Vorfeld erfordert. In ein derartiges System zu investieren, kann jedoch auf längere Sicht zu Kosteneinsparungen führen.
Natürlich genügt ein Energieüberwachungssystem alleine noch nicht – Sie benötigen auch einen Plan zur Auswertung der gesammelten Daten, um den Energieverbrauch besser zu kontrollieren, damit sich Ihre Investitionen letzten Endes rentieren. Betrachten Sie das kanadische Unternehmen Abitibi Consolidated, den weltweit größten Erzeuger von Zeitungs- und Papierprodukten. Als im Jahr 2001 der Stromenergiemarkt von Ontario dereguliert wurde, stand Abitibi Consolidated schwankenden Marktpreisen und Verfügbarkeiten gegenüber. Um die Energieversorgung zu optimieren, implementierte das Unternehmen ein Überwachungs- und Messsystem. Das neue System zahlte sich innerhalb weniger Monate dadurch aus, dass das Unternehmen 1 Prozent seiner Kosten einsparen konnte, indem es Strom günstiger bezog.
Wie viel Energie müssen Sie einsparen, um in Ihrem Datencenter Einrichtungen zur Energieüberwachung rechtfertigen zu können? Bill Laing, General Manager für die Entwicklung von Windows Server® 2008 bei Microsoft, sagte vor kurzem in einem Interview, dass die neue Windows Server-Version mit aktivierten Standardfunktionen für Energieeinsparung den Energieverbrauch um bis zu 20 Prozent senken könne, was eine beachtliche Kostensenkung darstellt. (Abbildung 1 zeigt einige der in Windows Server 2008 Beta 3 verfügbaren Energieoptionen.) Beachten Sie jedoch, dass die Ersparnisse nicht als direkte Senkung der Energieverbrauchskosten berechnet werden können. Hier spielen mehrere weitere Faktoren eine Rolle, z. B. die Kosten für den Bau eines neuen Datencenters und die Anzahl weiterer Systeme, von denen derzeit weniger effiziente Konfigurationen verwendet werden.
Abbildung 1 Energieoptionen in Windows Server 2008 Beta 3
Abbildung 1 Energieoptionen in Windows Server 2008 Beta 3
Sie können beispielsweise in Windows Server 2003 SP1 die Option „Durch Server ausgewogene Prozessorleistung und Energieverbrauch“ auswählen. Doch wenn kein Messsystem installiert ist, können Sie die Einsparungen oder die sonstigen Faktoren, die bei dieser Änderung ins Spiel kommen, nicht quantifizieren.
Hier sollte auch darauf hingewiesen werden, dass bei vielen Datencentern der Energieverbrauch in der Regel während eines Zeitraums von 24 Stunden nur um 4 Prozent fluktuiert, was anzeigt, dass der Energieverbrauch nicht von der Auslastung abhängig ist. Aufgrund von Innovationen in der Hardware ändert sich dieses Resultat bei neuen Geräten, und die Energie, die bei geringerer Auslastung verbraucht wird, nimmt ab.

Definieren des grünen Datencenters
Ich könnte noch viele Seiten damit füllen, die Kriterien oder Eigenschaften aufzuzählen, die ein Datencenter zu einem grünen Datencenter machen. Natürlich bietet dieser Artikel nicht genug Platz, um alle Aspekte zu behandeln, trotzdem sollen einige Hauptmerkmale hervorgehoben werden, die Sie im Auge behalten sollten, wenn Sie ernsthaft vorhaben, ein grünes Datencenter einzurichten. Selbst wenn Sie sich jetzt erst in der Planungsphase befinden, können Sie anhand dieser Liste ermessen, an welcher Stelle sich Ihr Datencenter momentan befindet:
  1. Es werden Messgeräte verwendet, um den Energieverbrauch nach einzelnen Komponenten (z. B. 2U-Server, 4U-Server, Switch, SAN und USV) aufzuschlüsseln und zu ermitteln, welchen Geschäftseinheiten die von diesen Komponenten verbrauchte Energie zugeordnet wird.
  2. Der Energieverbrauch wird fortlaufend überwacht, um den Spitzen- und den Minimalverbrauch zu ermitteln.
  3. Die Energiekapazitäten werden für das gesamte Datencenter bis hinunter zu einzelnen Schaltkreisen überwacht, um sicherzustellen, dass alle Schaltkreise innerhalb zulässiger Grenzwerte arbeiten.
  4. Der Energiesparplan wird dokumentiert und Energieeinsparungen belohnt.
  5. Der Energiesparplan wird regelmäßig überprüft, und Fehler werden durch geeignete Maßnahmen korrigiert.
  6. Durch Festlegen, wie Energiekosten unterschiedlichen Geschäftseinheiten in Rechnung gestellt werden, wird das Mitarbeiterverhalten geändert und unter unabhängigen Geschäftseinheiten ein Anreiz geschaffen, Energieeinsparungen zu erreichen. Dieser Punkt muss auf der Führungsebene eines Unternehmens gefördert werden.
  7. Auf den Servern wird die CPU-Einschränkung aktiviert, und in der Leistungstestumgebung wird gemessen, wie viel Energie unter verschiedenen Auslastungen verbraucht wird.
  8. Wärmeprofile werden erstellt, um Stellen mit starker Hitzeentwicklung und übermäßiger Kühlung zu lokalisieren.
  9. Zum IT-Leistungs-Engineering gehören auch Energieeffizienzmessungen.
  10. Das Feedback aus Livedaten ist für einzelne Organisationen verfügbar, um ihnen zu ermöglichen, schnell geeignete Maßnahmen zu ergreifen. (Das kalifornische Energieunternehmen California ISO geht sogar so weit, auf seiner Website Echtzeitdaten öffentlich bereitzustellen, wie in Abbildung 2 zu sehen ist.)
Abbildung 2 Auf der Website von California ISO wird eine Livemomentaufnahme bereitgestellt, in der die derzeitige Nachfrage der Kunden von California ISO und das sich daraus ergebende aktuelle Konservierungsniveau dargestellt sind.
Abbildung 2 Auf der Website von California ISO wird eine Livemomentaufnahme bereitgestellt, in der die derzeitige Nachfrage der Kunden von California ISO und das sich daraus ergebende aktuelle Konservierungsniveau dargestellt sind.
Je mehr dieser Merkmale auf Ihren Fall zutreffen, desto näher sind Sie dem Ziel, erfolgreich ein fortschrittliches Energieüberwachungssystem zu betreiben. Ich habe diesem Artikel eine Punkteliste (siehe Abbildung 3) mit 8 Fragen beigefügt, die Sie sich selbst stellen können, um die derzeitige Ebene Ihres Datencenters zu erkennen: Grundlegende Fragen, Fragen auf mittlerer Ebene oder Fragen auf fortgeschrittener Ebene.
Figure 3 Wie grün ist Ihr Datencenter? (Close Figure 3)

Ebene | Welche Maßnahmen führen Sie bereits durch?
Grundlegende Fragen | Überprüfen Sie Ihre monatliche Stromrechnung?
Überprüfen Sie elektrische Geräte regelmäßig im Hinblick auf die Kapazitätsplanung?
Fragen auf mittlerer Ebene | Verwenden Sie automatische Messungen und Berichte zur Auslastung und zum Energieverbrauch elektrischer Schaltkreise?
Überprüfen Sie beim Kauf die Energieeffizienz neuer Geräte?
Fragen auf fortgeschrittener Ebene | Überwachen Sie den Energieverbrauch pro Rack, Gerät und Schaltkreis?
Analysieren Sie Vergangenheitsdaten aus Überwachung und Berichterstellung?
Verwenden Sie Echtzeitberichte zum Energieverbrauch, um den verschiedenen Abteilungen die Auswirkungen von Änderungen und Installationen näher zu bringen?
Verwenden Sie Daten, um mit den Stromanbietern günstige Strompreise auszuhandeln?

Selbsterkenntnis ist der beste Weg zur Besserung
Ein anderes Problem, das sich Ihnen stellen wird, ist die Standardisierung innerhalb der gesamten Organisation. Das Durchsetzen einer Änderung wie der in diesem Artikel beschriebenen – einer Änderung, die das Modell der Messung des Energieverbrauchs verändert und eine Beteiligung von Geschäftseinheiten im gesamten Unternehmen erfordert – , setzt eine Abstimmung zwischen Gruppen verschiedener Datencentereinrichtungen voraus, die wiederum mit erweiterten IT-Gruppen zusammenarbeiten. Solche organisatorischen Probleme sind die schlimmsten Hindernisse auf dem Weg, ein Energiesparprogramm durchzusetzen.
Sorgen Sie unbedingt dafür, dass eine einzelne Person oder ein einzelnes Team dafür zuständig ist, den Energieverbrauch in den verschiedenen Datencentern zu messen. Eine solche zentrale Sammelstelle für Energieverbrauchsdaten ist unverzichtbar, fehlt jedoch in den meisten Unternehmen. Ferner ist es wichtig, dass Ihre Tools die Daten aus den verschiedenartigen Einrichtungen in einheitlicher Weise sammeln und die Ergebnisse konsistent an die einzelnen Geschäftseinheiten zurückmelden (Abbildung 4 zeigt ein Beispieldashboard für Berichtsdaten).
Abbildung 4 Beispieldashboard einer globalen Datenüberwachung (mit freundlicher Genehmigung von OSIsoft)
Abbildung 4 Beispieldashboard einer globalen Datenüberwachung (mit freundlicher Genehmigung von OSIsoft)
Ohne die richtigen Instrumente können Sie nicht herausfinden, ob Ihr Unternehmen wirklich effizient arbeitet, und die einzelnen Geschäftseinheiten erfahren nicht, ob ihre Bemühungen Früchte tragen. Wenn Sie das Mitarbeiterverhalten wirklich ändern wollen, müssen Sie Benutzern die Informationen in Echtzeit mit Vergangenheitsdatentrends zur Verfügung stellen, damit sie die Ergebnisse ihrer Aktionen sehen können. Sie können Gruppen nicht wirkungsvoll für Energieeffizienzleistungen belohnen, wenn sich jede Geschäftseinheit in einem anderen System befindet, in dem andere Tools und andere Messungen zum Melden ihres Erfolgs verwendet werden.

Branchenbestrebungen
Fühlen Sie sich bei Ihren Bemühungen, Ihr Unternehmen grüner zu gestalten, nicht als einsamer Pionier. Leitende Organisationen in anderen Marktsegmenten, von Unternehmen wie Boeing und Toyota bis hin zu Regierungsbehörden wie denen des Bundesstaats Kalifornien, investieren ernsthaft in Bemühungen, Vorgänge und Produkte energieeffizienter zu gestalten.
Für den Sektor der Informationstechnologie hat das Repräsentantenhaus der USA 2006 ein Gesetz (H.R. 5646, inzwischen als Gesetz 109-431 in Kraft) verabschiedet, mit dem die Umweltschutzbehörde der USA (EPA) dazu aufgerufen wird, die Energiekosten und den Energieverbrauch von Servern und Datencentern sowie die möglichen Auswirkungen eines Umstiegs auf energieeffizientere Systeme zu untersuchen. Die vom EPA-Programm ENERGY STAR durchgeführte Studie prognostizierte für die nahe Zukunft einen Anstieg des Energieverbrauchs von Computerservern und Datencentern in den USA und beurteilte die potenziellen Kosten und Energieeinsparungen, die durch Verbesserungen der Energieeffizienz von Computerservern und Datencentern entstehen, sowie mögliche Anreize und freiwillige Programme zur Förderung engergieeffizienter Computerserver und Datencenter. Die Endergebnisse der Studie wurden dem Kongress im August 2007 vorgelegt. Weitere Informationen zu dieser Studie sind auf der Website energystar.gov zu finden.
Zusätzlich werden neue Normen für den Bau grüner Gebäude entwickelt. Diese Normen fordern Kriterien wie Möglichkeiten zum stündlichen Messen von Schaltkreisen je nach ihrem Zweck und Energieverbrauch, das Entwickeln und Installieren von Messgeräten, die die Daten über den Energieverbrauch an ein Messdatenverwaltungssystem weiterleiten, und das Einrichten von Messdatenverwaltungssystemen, die Messdaten speichern und Benutzerberichte erstellen, die für jedes Messgerät den stündlichen, täglichen, wöchentlichen und jährlichen Energieverbrauch aufzeigen. Viele dieser Kriterien sind für Kompatibilitätssysteme erforderlich, wenn Sie sich für Energiesparprogramme anmelden, bei denen Sie vorweisen müssen, dass Ihre Änderungen zu Ergebnissen geführt haben (z. B. Credits für Energie- und Kohlenstoffeinsparungen sowie Energiesenkungsprogramme).
Einige Benutzer haben um Spezifikationsprüfungen gebeten, aber es ist schwierig, das Spektrum der Verwendungsmöglichkeiten repräsentativ abzudecken. Die Tests sollen nun möglichst standardisiert werden. Diese Tests sind allerdings wie die meisten Leistungstests dazu gedacht, die „wahrgenommenen“ Ergebnisse zu optimieren, die den tatsächlichen Verbrauch nicht wirklich repräsentieren. Denken Sie etwa an die Einschätzung der Kilometerzahl pro Liter. Bei den Bewertungen der Umweltbehörde wird die Zahl Kilometer geschätzt, die ein normaler Fahrer unter typischen Stadt- und Autobahnbedingungen erzielen müsste. Die meisten Fahrer und Fahrbedingungen sind jedoch untypisch, und die Faktoren, die Einfluss auf die Kraftstoffeffizienz nehmen, können beträchtlich variieren. Dasselbe gilt auch für Energieeinsparungen in einem Datencenter. Die einzigen genauen Ergebnisse für Ihre Organisation erhalten Sie durch das Messen der Energieeinsparungen in Ihrer eigenen Umgebung.

Wo liegen diese Einsparungen?
Beim Ermitteln der Einsparungen müssen viele Faktoren berücksichtigt werden. Sind Sie sich der Kosten für eine Energieerhöhung in einem bestimmten Gebiet bewusst? Verfügen Sie über eine Strategie zur Minimierung von Leistungsbeschränkungen? Können Sie das Problem lösen, indem Sie Ihre Datencenter an Orten einrichten, an denen Energie günstiger ist? Sollten Sie sich eher darauf konzentrieren, die Abläufe in Ihren bereits bestehenden Einrichtungen zu verbessern?
Für einige Unternehmen könnte die beste Möglichkeit zur Kostensenkung darin bestehen, die Datencenter in Gebiete mit günstigeren Elektrizitätsquellen zu verlagern. Ein weiteres Verfahren zur Senkung des Energieverbrauchs bietet die Servervirtualisierung. Tatsächlich bieten manche Energieanbieter (zum Beispiel PG&E, SoCal Edison und SDG&E, um nur einige zu nennen) Kunden, die Servervirtualisierungsprojekte durchführen und dadurch eine Reduzierung der Serveranlagen erreichen, finanzielle Anreize.
Es gibt aber auch einfachere, weniger drastische Maßnahmen, die Sie ergreifen können. Die meisten IT-Abteilungen haben derzeit keine Ahnung, wie viel Energie ihre Systeme verbrauchen, und dies bedeutet, dass sich in diesem Bereich enorme Möglichkeiten für potenzielle Einsparungen bieten. Ein erster Schritt könnte darin bestehen, den mit einzelnen Geräten verbundenen Energieverbrauch zu untersuchen und danach zu überlegen, ob Sie Änderungen pro Gerät vornehmen könnten. Viele kleine Änderungen können sich zu beträchtlichen Ersparnissen summieren.
Denken Sie zum Vergleich an einen typischen Haushalt, in dem der Besitzer nicht weiß, wie viel Energie die einzelnen Haushaltsgeräte verbrauchen, sondern jeden Monat eine Stromrechnung bezahlt, auf der nur ein Gesamtbetrag zu sehen ist. Im Handel sind einfache, preiswerte Geräte erhältlich, mit denen der Energieverbrauch einzelner Geräte gemessen werden kann. Wie viel verbrauchen Sie, um Ihren Mikrowellenherd in Bereitschaft zu halten, wenn Sie ihn nicht verwenden? Wie viel Energie wird verbraucht, wenn Sie Ihr Telefonladegerät angeschlossen lassen? Nach genau demselben Verfahren können Sie Energiemessgeräte in Racks integrieren und von verschiedenen Geräten Messdaten sammeln. Bei einigen Servern mit SNMP-Traps zum Energieverbrauch können mithilfe von Verwaltungstools Daten direkt gesammelt werden.

Erste Schritte
Abbildung 5 zeigt eine Liste bewährter Methoden, die Sie nutzen sollten, um Ihren Plan in die Tat umzusetzen. Machen Sie sich in dieser Phase unbedingt bewusst, dass Sie nicht darauf beschränkt sind, sich zwischen zwei Extremen zu entscheiden. Sie können einen ausgewogeneren Ansatz wählen, der wahrscheinlich auch realistischer ist. Fangen Sie ganz unten an, und machen Sie die Mitarbeiter in Ihrem Unternehmen ausfindig, die sich für Energiesparmaßnahmen einsetzen. Messen Sie zunächst einige Geräte innerhalb einer Geschäftseinheit, um den Energieverbrauch sichtbar zu machen. Impulse zu setzen und quantifizierbare Resultate zu präsentieren ist ein wichtiger Schritt dahin, sich im Unternehmen die erforderliche Unterstützung für Investitionen in eine grüne Zukunft zu sichern.
Figure 5 Wichtige Punkte zur Durchsetzung eines Energiesparplans (Close Figure 5)

Sammeln Sie Daten manuell, um den Zustand Ihrer derzeitigen Systeme zu ermitteln. Ermitteln Sie, wie viel Energie von Geräten und Anwendungen verbraucht wird, und schlüsseln Sie die Kosten auf.
Richten Sie ein geschlossenes Feedback-Schleifensystem ein, um die Effektivität der vorgenommenen Änderungen zu messen.
Achten Sie darauf, den Stromverbrauch an den richtigen Stellen und auf der richtigen Ebene zu messen (nach Gerät, IT-Organisation, Geschäftseinheit, Anwendung und so weiter).
Schaffen Sie einen Fonds für Energiesparprojekte, um Ihre Bemühungen zu finanzieren.
Finden Sie heraus, wer Ihnen in Ihrer Organisation bei der Steigerung der Energieeffizienz behilflich sein kann.
Welche Personen in Ihrem Unternehmen sind daran interessiert, die Energieeffizienz zu fördern? Sind es Angehörige der obersten Führungsebene, gehören sie zur mittleren Führungsebene oder handelt es sich um Einzelpersonen, die sich lediglich Sorgen darüber machen, welche Auswirkungen die Unternehmensaktivitäten auf die Umwelt haben? In jedem Unternehmen gibt es engagierte Menschen. Einer Ihrer ersten Schritte besteht in der Entscheidung, ob Sie diese Personen von Anfang an beteiligen sollten.
Für welche Richtung Sie sich auch immer entscheiden, die Planung eines Energieeffizienzprogramms für Ihr Datencenter wird letzten Endes die Zusammenarbeit aller IT-Gruppen erfordern. Bis vor kurzem bestand die typische Vorgehensweise beim Planen von IT-Lösungen darin, schon früh in der Entwurfsphase die Energiekosten zu ignorieren und sich auf die anzuschaffende Hardware und Software sowie auf die Lohn- und Hostingkosten der Lösung zu konzentrieren. Wenn die Energiekosten lediglich als Teil der laufenden Geschäftskosten für das Ausführen von Lösungen in einem Datencenter angesehen werden, hat die Energieeffizienz nur eine geringe Priorität. Wenn Sie aufzeigen können, wie viel Energie tatsächlich von den Lösungen verbraucht wird, so ist dies der erste wichtige Schritt auf dem Weg zu einer Verhaltensänderung innerhalb Ihrer Organisation.

Dave Ohara verfügt über 26 Jahre Technologieerfahrung, in denen er für Unternehmen wie Microsoft, Apple und Hewlett-Packard gearbeitet hat. Dave war in den Bereichen Produktentwicklung, Marketing, Technical Evangelism, Infrastrukturarchitektur, Verfahrenstechnik, Zuverlässigkeitsüberwachung und Verteilungslogistik tätig und arbeitet jetzt mit mehreren Unternehmen zusammen, die grüne Initiativen implementieren.
© 2007 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.


 Windows-Verwaltung: Eine Anleitung zur Active Directory-Replikation
Windows-Verwaltung Laura E. Hunter

Eine Anleitung zur Active Directory-Replikation
Kurz zusammengefasst:
  • Der Übergang zu Active Directory
  • Wahren der Konsistenz
  • Handhabung der Konfliktauflösung
  • Änderungen in Windows Server 2008

Vor der Einführung von Windows 2000 Server und Active Directory wurde in vielen Unternehmensumgebungen Windows NT für die Serverinfrastruktur und die Identitäts- und
Zugriffsverwaltung verwendet. Mit dem Rollout von Windows NT® 4.0 wurde um robustes Angebot im Bereich des Netzwerkbetriebssystems (Network Operating System, NOS) bereitgestellt, aber es gab eine Reihe von Nachteilen, die die Bereitstellung in Großunternehmen erschwerten.
Zum einen verwendete Windows NT einen flachen Namespace zum Speichern von Netzwerkressourcen, sodass es keine gute Möglichkeit zum Aufteilen von Ressourcen in kleinere Untermengen oder zum Konfigurieren einer genauen Verwaltung gab. So konnten Sie beispielsweise keinen Abteilungscontainer für die Ressourcen in Ihrer Marketingabteilung und keinen lokalen Administrator konfigurieren, der über Rechte zum Zurücksetzen von Kennwörtern für die Benutzer nur innerhalb dieser Abteilung verfügte. Dadurch ging es bei der Windows NT-Sicherheit praktisch um alles oder nichts. Wenn administrative Aufgaben an einen Desktopsupporttechniker delegiert werden sollten, waren Sie oft gezwungen, weitaus mehr Berechtigungen zu gewähren, als dies normalerweise der Fall wäre.
Außerdem wurden in Windows NT alle Informationen in einer Datenbank zur Sicherheitskontenverwaltung (Security Account Manager, SAM) gespeichert, die nicht über 40 MB Größe hinauswachsen sollte. Wenn die SAM-Datenbank dieses empfohlene Maximum überstieg (dies geschah abhängig von der Konfiguration bei 25.000–40.000 Objekten), mussten die Umgebung in mehrere separate Domänen aufgeteilt werden, was sowohl die Verwaltung des Netzwerks als auch das Bereitstellen von Ressourcenzugriff für die Benutzer erschwerte. Jede NT-Domäne enthielt einen einzelnen primären Domänencontroller (Primary Domain Controller, PDC), der die einzige Lese-/Schreibkopie der SAM-Datenbank enthielt. Obwohl es möglich war, einen oder mehrere Sicherungsdomänencontroller (Backup Domain Controllers, BDCs) für die Fehlertoleranz bereitzustellen, waren diese BDCs schreibgeschützt und konnten keine Updates, beispielsweise die Änderung eines Benutzerkennworts durchführen, für die ein Schreibvorgang erforderlich war.
Schließlich stützte sich Windows NT auf die NetBIOS-Namensauflösung, die broadcastbasiert war und oft viel Datenverkehr generierte, wenn die Benutzer nach Netzwerkressourcen suchten, besonders, wenn dies über einen langsamen oder stark verwendeten WAN-Link erfolgte.

Ein neues Modell
Im Jahr 2000 wurde Windows® 2000 mit einer wesentlichen Überholung des vorherigen NOS-Angebots veröffentlicht. Der neue NOS-Dienst, Active Directory®, war im Vergleich zu Windows NT etwas völlig anderes. Statt auf einen flachen Namespace angewiesen zu sein, wurde Active Directory auf dem X.500-Standard entwickelt, der eine hierarchische Organisationsstruktur erstellte. Jetzt konnten Ressourcen in mehreren Organisationseinheiten innerhalb einer einzelnen Domäne organisiert und die Verwaltung der einzelnen Organisationseinheiten auf einer aufgabenbasierten Ebene delegiert werden.
Ein anderer wichtiger Unterschied gegenüber Windows NT war das neue Modell der Multimasterreplikation. Es gab keinen einzelnen beschreibbaren PDC und die dazugehörigen BDCs mehr. In Active Directory konnte jeder Domänencontroller in die Active Directory-Datenbank schreiben.
Doch obwohl dies zu sehr viel mehr Flexibilität beim Unterstützen einer großen bzw. dezentralisierten Umgebung führte, ergaben sich dadurch auch neue Herausforderungen für das Aufrechterhalten der Integrität von Active Directory. Wenn John Smith und Jane Dow eine Änderung an demselben Objekt in Büros an verschiedenen Orten vornehmen, was geschieht, wenn diese Änderungen in Konflikt zueinander stehen? Das Active Directory-Replikationsmodell definiert, wie Updates an alle Domänencontroller innerhalb einer Umgebung übermittelt werden und wie Konflikte, die sich aus der Multimasterfähigkeit ergeben, Änderungen von praktisch jedem Ort aus vorzunehmen, behandelt werden.

Die Funktionsweise der Active Directory-Replikation
In diesen Beispielen wird nur die standortübergreifende Replikation erörtert. Grundsätzlich soll die standortübergreifende Replikation Änderungen schnell auf Domänencontrollern innerhalb desselben Standorts replizieren und wird mithilfe von Änderungsbenachrichtigungen durchgeführt. Im Fall der standortübergreifenden Replikation wird DC2 von DC1 benachrichtigt, dass Änderungen vorhanden sind, die repliziert werden müssen, und DC2 übernimmt diese Änderungen von DC1 per Pull-Replikation. Ebenso wird DC1 von DC2 benachrichtigt, wenn bei DC2 Änderungen vorhanden sind, und DC1 übernimmt diese Änderungen von DC2 per Pull-Replikation. Wie Sie sehen, findet die gesamte Active Directory-Replikation in Pull-Vorgängen, nicht in Push-Vorgängen statt.
Da Active Directory Hunderttausende oder sogar Millionen von Objekten skalieren kann, ist es erforderlich, die Active Directory-Datenbank in Abschnitte aufzuteilen, die als Namenskontexte (Naming Context, NC) bezeichnet werden. Jeder Domänencontroller speichert mindestens drei NCs in seiner lokalen Kopie der Active Directory-Datenbank.
Schemanamenskontext Dieser Namenskontext wird auf allen anderen Domänencontrollern in der Gesamtstruktur repliziert. Er enthält Informationen zum Active Directory-Schema, das wiederum die verschiedenen Objektklassen und Attribute innerhalb von Active Directory definiert.
Konfigurationsnamenskontext Dieser Namenskontext wird ebenfalls auf allen anderen Domänencontrollern in der Gesamtstruktur repliziert. Er enthält gesamtstrukturübergreifende Informationen zum physischen Layout von Active Directory sowie Informationen zu Anzeigebezeichnern und gesamtstrukturübergreifende Active Directory-Kontingente.
Domänennamenskontext Dieser Namenskontext wird auf allen anderen Domänencontrollern innerhalb einer einzelnen Active Directory-Domäne repliziert. Dies ist der Namenskontext, der die Active Directory-Daten enthält, auf die am häufigsten zugegriffen wird: die eigentlichen Benutzer, Gruppen, Computer und anderen Objekte, die sich in einer bestimmten Active Directory-Domäne befinden.
Um den Replikationsdatenverkehr zu optimieren, wird jeder Namenskontext separat repliziert, damit ein Namenskontext wie beispielsweise der Schemanamenskontext keine Netzwerkbandbreite verwendet, die für den Domänennamenskontext erforderlich ist, der sich wahrscheinlich sehr viel häufiger ändert.
Da Verzeichnisänderungen von jedem beliebigen Active Directory-Domänencontroller durchgeführt werden können, gibt es zwei Arten von Schreibvorgängen, die von der Active Directory-Replikation verfolgt werden müssen. Eine Art sind Ursprungsschreibvorgänge, wobei es sich um bestimmte Änderungen handelt, die direkt auf einem bestimmten Domänencontroller durchgeführt wurden. Wenn Sie sich beispielsweise mit DC1 verbinden und das Kennwort eines Benutzers ändern, gilt diese Änderung als Ursprungsschreibvorgang auf DC1. Active Directory muss auch replizierte Schreibvorgänge verfolgen. Hierbei handelt es sich um eine bestimmte Änderung, die von einem anderen Domänencontroller aus repliziert wurde. Die Änderung, die auf DC1 ein Ursprungsschreibvorgang war, ist nun ein replizierter Schreibvorgang, wenn diese Änderung auf DC2, DC3 und anderen Domänencontrollern in der Domäne repliziert wird.
Active Directory-Domänencontroller verwalten die Übertragung von Verzeichnisänderungen durch Verwendung der Replikationsmetadaten. Neben der Übermittlung der eigentlichen Daten, die von einem Domänencontroller zu einem anderen hin geändert wurden (die Berufsbezeichnung von John Smith wurde beispielsweise in „Personalchef“ umgeändert), überträgt Active Directory auch zusätzliche Informationen zu dieser Änderung, damit Domänencontroller die Replikation möglichst effizient verwalten können, beispielsweise Informationen zum Domänencontroller, auf dem die ursprüngliche Änderung durchgeführt wurde, der Zeitpunkt der Änderung und andere wichtige Informationen.
Das erste Element der Replikationsmetadaten, das hier erörtert wird, ist die Aktualisierungssequenznummer (Update Sequence Number, USN). Jeder Domänencontroller verwaltet eine für ihn spezifische USN. Bei Durchführung einer Änderung an Active Directory durch diesen Domänencontroller wird die USN um 1 erhöht. Wenn ein Domänencontroller daher um 11 Uhr eine USN von 1.000 hat und um 11.30 Uhr eine USN von 1.005, wissen Sie, dass auf diesem Domänencontroller 5 Änderungen an der Active Directory-Datenbank durchgeführt wurden. Um was für Änderungen es sich dabei handelte, ist für die USN unwichtig. Möglicherweise wurden 5 verschiedene Objekte geändert, 5 Objekte erstellt, 5 Objekte gelöscht oder eine Kombination aus diesen Vorgängen durchgeführt. Die USN des Domänencontrollers erhöht sich dabei immer um 5. Außerdem gelten USNs nur für einen bestimmten Domänencontroller intern und haben beim Vergleich mit anderen Domänencontrollern keinerlei Relevanz. Ein Domänencontroller in einer Domäne könnte eine Änderung um 11.30 Uhr durchführen und ihr eine USN von 1051 zuweisen, und ein zweiter Domänencontroller in derselben Domäne könnte genau im selben Augenblick eine Änderung vornehmen, der eine USN von 5084 zugewiesen wird. Diese beiden Domänencontroller verfügen zwar offensichtlich über völlig unterschiedliche USNs für eine Änderung, die ungefähr zur selben Zeit erfolgte, aber diese Tatsache ist für die Replikation dieser Änderungen irrelevant. Die Aktualisierungssequenznummer eines Domänencontrollers hat keinerlei Bedeutung für andere Domänencontroller, was den Vergleich einer Änderung mit einer anderen betrifft.
Doch dies ist nicht die einzige Möglichkeit zum Erhöhen der USN eines Domänencontrollers. Bedenken Sie, dass eine Änderung an der Active Directory-Datenbank aus einem Ursprungsschreibvorgang oder einem replizierten Schreibvorgang bestehen kann. Die Aktualisierungssequenznummer eines Domänencontrollers wird durch beide Arten von Schreibvorgängen erhöht, was heißt, dass sie jedes Mal erhöht wird, wenn Änderungen von einem anderen Domänencontroller aus repliziert werden. Jeder Domänencontroller muss nachverfolgen können, welche Änderungen bereits repliziert wurden, da sonst jeder Domänencontroller bei jeder Replikation die gesamte Active Directory-Datenbank senden würde. Um dies zu verhindern, verwaltet jeder Active Directory-Domänencontroller einen als „High Watermark“-Vektor (HWMV) bezeichneten Wert für andere Domänencontroller, bei denen Replikationen durchgeführt werden. Jeder Domänencontroller ordnet diesen HWMV der eindeutigen globalen Kennung (Globally Unique Identifier, GUID) des Remotedomänencontrollers zu, um Verwirrung zu verhindern, wenn ein Remotedomänencontroller umbenannt oder aus dem Verzeichnis entfernt wird.
Hier ein einfaches Beispiel: zwei Domänencontroller sind in der contoso.com-Domäne als dc1.contoso.com und dc2.contoso.com konfiguriert. Da in der contoso.com-Domäne nur zwei Domänencontroller vorhanden sind, werden DC1 und DC2 nur miteinander repliziert. (Dies ist lediglich ein vereinfachtes Beispiel, das die Active Directory-Replikation noch nicht ganz beschreibt. Darauf wird später beim Erörtern weiterer Einzelheiten näher eingegangen.)
Weiter wird davon ausgegangen, dass die aktuelle USN von DC1 3.000 ist und die aktuelle USN von DC2 4.500 und dass die Replikation zwischen diesen beiden Domänencontrollern zu Beginn des Beispiels auf dem neuesten Stand ist.
Schritt 1: Die Replikation zwischen DC1 und DC2 ist auf dem neuesten Stand. DC1 hat einen „High Watermark“-Vektor für DC2 von 4.500, und DC2 hat einen „High Watermark“-Vektor für DC1 von 3.000, wie in Abbildung 1 dargestellt.
Abbildung 1 Aktueller Zustand von zwei Domänencontrollern
Abbildung 1 Aktueller Zustand von zwei Domänencontrollern
Schritt 2: Ein Administrator erstellt ein neues Objekt auf DC1, und die USN von DC1 wird auf 3.001 erhöht, wie in Abbildung 2 dargestellt. Beachten Sie, dass sich der HWMV von DC1 auf DC2 nicht geändert hat, weil DC2 von DC1 noch nicht benachrichtigt wurde, dass Änderungen vorhanden sind.
Abbildung 2 Ein neues Objekt wird hinzugefügt
Abbildung 2 Ein neues Objekt wird hinzugefügt
Schritt 3: DC1 benachrichtigt DC2, dass Änderungen verfügbar sind. DC2 initiiert nun die Replikation mit DC1 und fordert verfügbare Updates an. Als Teil dieser Anforderung sendet DC2 den „High Watermark“-Vektor an DC1, der für DC1 gespeichert ist, wie in Abbildung 3 aufgezeigt.
Abbildung 3 Benachrichtigung über Änderungen
Abbildung 3 Benachrichtigung über Änderungen
Schritt 4: DC1 sendet DC2 die Änderung, die USN 3.001 entspricht, d. h. das in Schritt 2 auf DC1 erstellte Objekt. DC2 aktualisiert die eigene USN auf 4.501 und seinen HWMV für DC1 auf 3.001, wie in Abbildung 4 dargestellt.
Abbildung 4 Änderungen und Aktualisierungen
Abbildung 4 Änderungen und Aktualisierungen
So weit so gut. Dabei gibt es allerdings ein Problem. DC2 liegt eine Änderung vor, die repliziert werden muss. Wenn nur USNs und „High Watermark“-Vektoren vorhanden wären, würde DC2 an dieser Stelle DC1 kontaktieren, um dieselbe Änderung, die von DC1 gerade auf DC2 repliziert wurde, wieder auf DC1 replizieren, was zu einem endlosen, immer mehr Bandbreite beanspruchenden Replikationszyklus führen würde. Damit dies nicht geschieht, sind einige weitere Elemente erforderlich, wobei das erste der Aktualitätsvektor (Up-to-Dateness-Vektor, UTDV) ist.
Der UTDV ist ein weiterer Teil der Replikationsmetadaten, das zur Propagierungsdämpfung verwendet wird. Seine Aufgabe besteht darin, zu verhindern, dass dieselbe Änderung Bandbreite verschwendet, indem sie über das Netzwerk hinweg immer wieder repliziert wird. Jeder Domänencontroller verwaltet eine UTDV-Tabelle für alle anderen Domänencontroller, in der ein Replikat des betreffenden Namenkontexts gespeichert wird. Für den Domänennamenskontext verwaltet jeder Domänencontroller in einer Domäne einen UTDV für alle anderen Domänencontroller in der Domäne. Beim Konfigurations- und Schemanamenskontext wird der UTDV für alle Domänencontroller in der Gesamtstruktur verwaltet. Die UTDV-Tabelle verfolgt nicht nur die höchste USN, die die einzelnen Domänencontroller von ihren Replikationspartnern erhalten haben, sondern auch den höchsten USN-Wert, den sie von allen Domänencontrollern, die einen bestimmten Namenskontext replizieren, erhalten hat. Um dies zu ermöglichen, umfasst jede replizierte Änderung auch die folgenden Informationen:
  • Die GUID des Domänencontrollers, der die Änderung repliziert. Dabei kann es sich um eine Änderung handeln, die als Ursprungsschreibvorgang oder als replizierter Schreibvorgang repliziert wird.
  • Die USN des Domänencontrollers, der die Änderung repliziert. Wieder kann es sich um eine Replikation als Ursprungs- oder replizierter Schreibvorgang handeln.
  • Die GUID des Domänencontrollers, der die Änderung verursacht hat. Wenn diese GUID identisch mit der GUID des Domänencontrollers ist, der die Änderung repliziert, handelt es sich um einen Ursprungsschreibvorgang. Andernfalls kommt die UTDV-Tabelle ins Spiel.
  • Die USN des Domänencontrollers, der die Änderung verursacht hat. Auch hier gilt: wenn diese USN identisch mit der USN des Domänencontrollers ist, der die Änderung repliziert, handelt es sich um einen Ursprungsschreibvorgang. Andernfalls kommt die UTDV-Tabelle ins Spiel.
Um diesen Prozess besser zu illustrieren, wird das Beispiel durch Hinzufügen eines dritten Domänencontrollers (DC3) komplexer gestaltet. Bei diesem Beispiel sind DC1, DC2 und DC3 Replikationspartner, die alle miteinander replizieren. DC1 repliziert mit DC2 und DC3, DC2 mit DC1 und DC3 und DC3 mit DC1 und DC2:
Schritt 1: Die Replikation zwischen DC1, DC2 und DC3 ist auf dem neuesten Stand.
Schritt 2: DC3 führt einen einzelnen Ursprungsschreibvorgang durch, indem das Kennwort für das Benutzerkonto „jsmith“ zurückgesetzt wird. DC3 benachrichtigt DC1 und DC2, dass Änderungen verfügbar sind. DC1 und DC2 erhalten den Ursprungsschreibvorgang von DC3 per Pull-Replikation und aktualisieren dann ihre HWMV- und UTDV-Tabelle für DC3, wie in Abbildung 5 dargestellt.
Abbildung 5 Aktualisierung der HWMV- und UTDV-Tabelle
Abbildung 5 Aktualisierung der HWMV- und UTDV-Tabelle
Schritt 3: An dieser Stelle kommt der Aktualitätsvektor ins Spiel. DC2 benachrichtigt DC1, dass Änderungen verfügbar sind. Dann wird DC2 von DC1 kontaktiert, um neue Änderungen anzufordern, indem folgende Informationen an DC2 gesendet werden:
  • Der „High Watermark“-Vektor von DC1 für DC2, in diesem Fall 4.501.
  • Die UTVD-Tabelle von DC1 (dargestellt in Abbildung 6), die die höchste Ursprungs-USN anzeigt, die sie von allen Domänencontrollern einschließlich DC3 erhalten hat.
Figure 6 UTDV-Tabelle (Close Figure 6)

Alle Domänencontroller, die diesen Namenskontext replizieren | UTDV
<GUID von DC2> | 4501
<GUID von DC3> | 7002
Basierend auf dem HWMV 4.501 erkennt DC2, dass die betreffende Änderung auf DC1 nicht repliziert wurde (siehe Abbildung 7).
Figure 7 Eine Änderung muss repliziert werden (Close Figure 7)

Eigenschaft | Wert | GUID des lokalen Domänencontrollers | Lokale USN | GUID des Ursprungsdomänencontrollers | Ursprungs-USN
jsmith-Kennworteigenschaft | %#FH%2rfg2 | <GUID von DC2> | 4501 | <GUID von DC3> | 7002
Doch auf Grundlage der UTDV-Tabelle, die von DC1 vor Beginn der Replikation übertragen wurde, stellt DC2 fest, dass diese Änderung für DC1 nicht erforderlich ist, da DC1 diese Änderung bereits von DC3 erhalten hat. An dieser Stelle aktualisiert DC1 einfach seinen HWMV-Eintrag für DC2, damit die erhöhte USN wiedergegeben wird. Dies ist in Abbildung 8 dargestellt. Damit keine Bandbreite verschwendet wird, werden die eigentlichen Daten nicht über das Netzwerk gesendet.
Abbildung 8 Propagierungsdämpfung
Abbildung 8 Propagierungsdämpfung
Schritt 4: Dieselbe Propagierungsdämpfung findet statt, wenn DC3 von DC2 benachrichtigt wird, dass Änderungen verfügbar sind, und wenn DC1 auf ähnliche Weise DC2 und DC3 benachrichtigt. Alle drei Domänencontroller aktualisieren ihre jeweiligen HWMV-Einträge für ihre Replikationspartner wie in Abbildung 8 dargestellt, aber die eigentlichen Daten werden nicht erneut über das Netzwerk gesendet, da sie bereits in Schritt 2 an die einzelnen Domänencontroller übertragen wurden.

Konfliktauflösung in einer Multimasterumgebung
Bei den bisher vorgestellten Beispielen handelte es sich um eine perfekte Umgebung, in der jeweils nur ein Administrator Änderungen an einem Domänencontroller vornimmt und niemand ihm in die Quere kommt. In der Realität ist dies jedoch nur selten der Fall. Updates an einem Active Directory-Objekt können von jedem beliebigen Domänencontroller in der Domäne stammen. Was passiert, wenn zwei Administratoren widersprüchliche Updates von zwei verschiedenen Domänencontrollern aus durchführen? In einer Active Directory-Umgebung können drei verschiedene Arten von Konflikten auftreten, wobei es für jeden eine andere Methode der Konfliktauflösung gibt.
Widersprüchliche Eigenschaftsänderungen . Dieser Konflikt findet statt, wenn zwei Administratoren dasselbe Objekt auf widersprüchliche Weise aktualisieren: ein Administrator beispielsweise legt die Beschreibung eines Benutzers auf „Marketing“ fest, während ein anderer Administrator die Beschreibung dieses Benutzers auf einem anderen Domänencontroller auf „Vertrieb und Marketing“ festlegt.
Erstellen neuer widersprüchlicher Objekte . Zu diesem Konflikt kommt es, wenn zwei Administratoren gleichzeitig ein Objekt mit demselben Namen erstellen, etwa zwei Benutzer mit dem Namen „jsmith“.
Verschieben eines Objekts in einen gelöschten Container . Diese Konfliktart ist viel seltener. Er tritt ein, wenn ein Administrator ein Objekt, beispielsweise eine Organisationseinheit, innerhalb eines Containers zu derselben Zeit erstellt oder verschiebt, wenn ein anderer Administrator diesen Container auf einem anderen Domänencontroller löscht.
Zum Lösen der ersten beiden Konfliktarten müssen zwei weitere Teile von Replikationsmetadaten vorgestellt werden, die hauptsächlich zur Konfliktauflösung dienen. Der versionID-Wert wird jedem einzelnen Attribut auf einem Objekt mit dem Anfangswert 1 zugewiesen, wenn das Objekt ursprünglich erstellt wird. Die versionID wird immer dann um 1 erhöht, wenn ein einzelnes Attribut von einem beliebigen Domänencontroller geändert wird. Wenn also das Beschreibungsattribut eines bestimmten Benutzers von seinem Standardwert (leer oder <nicht festgelegt>) auf „Marketingabteilung“ aktualisiert wird, erhält das Beschreibungsattribut die versionID 2. Wenn die Beschreibung später auf „Vertrieb und Marketingabteilung“ geändert wird, erhält das Beschreibungsattribut die versionID 3 und so weiter. Diese versionID ist in jedem Replikationseintrag zusammen mit den anderen Teilen der Metadaten enthalten, die bereits vorgestellt wurden.
Die versionID kann zudem zur weiteren Reduzierung des Replikationsdatenverkehrs verwendet werden. Wenn beispielsweise ein Administrator auf DC2 mehrere Änderungen an einem einzelnen Attribut vorgenommen hat (vielleicht hat er die Änderung mehrmals falsch eingegeben), sodass über DC2 Ursprungsschreibvorgänge verfügt, die den versionID-Werten 2, 3, 4 und 5 entsprechen, repliziert DC2 nur den Schreibvorgang, der der letzten versionID, also 5, entspricht. Da die vorherigen Änderungen sowieso einfach überschrieben würden, ist dies eine Abkürzung, um unnötige Bandbreitennutzung zu verringern.
Jede Änderung an Active Directory umfasst auch den zweiten zusätzlichen Teil der Metadaten, das zur Konfliktauflösung verwendet wird: ein Zeitstempel in den Replikationsmetadaten, der anzeigt, wann die Änderung durchgeführt wurde.
Das Zeitstempelattribut dient auch als proaktive Messung der Replikationsintegrität von Active Directory. Wenn ein Domänencontroller von einem bestimmten anderen Domänencontroller keine Änderungen mit einem relativ neuen Zeitstempel empfangen hat, werden Fehlermeldungen generiert, die anzeigen, dass bei dem betreffenden Domänencontroller ein Problem vorliegen könnte.
Wie werden diese beiden Attribute nun bei der Konfliktauflösung verwendet? Die Konfliktarten werden hier der Reihe nach untersucht.

Die Auflösung widersprüchlicher Eigenschaftsänderungen
Im Beispiel geht es um das Benutzerobjekt „jsmith“ in der contoso.com-Domäne. Ein Administrator auf DC1 ändert die Beschreibung von jsmith in „Marketing“. Fast gleichzeitig ändert ein Administrator auf DC3 die Beschreibung desselben Benutzers in „Vertrieb und Marketing“. Zu diesem Zeitpunkt lassen sich die Informationen von DC1 und DC3 über das Beschreibungsattribut von jsmith wie in Abbildung 9 dargestellt vergleichen.
Figure 9 Fast gleichzeitige Änderungen (Close Figure 9)

Server | Eigenschaft | Wert | VersionID | TimeStamp | GUID des lokalen Domänencontrollers | Lokale USN | GUID des Ursprungsdomänencontrollers | Ursprungs-USN
DC1 | jsmith-Beschreibungseigenschaft | „Marketing“ | 2 | 2007-06-07 14:03:25 | <GUID von DC1> | 3003 | <GUID von DC1> | 3003
DC3 | jsmith-Beschreibungseigenschaft | „Vertrieb und Marketing“ | 2 | 2007-06-07 14:04:57 | <GUID von DC3> | 7003 | <GUID von DC3> | 7003
Wenn DC2 diese beiden Änderungen gleichzeitig erhält, muss offensichtlich bestimmt werden, welche Änderung nun wirklich repliziert werden soll. Die Konfliktauflösung erfolgt dabei nach den folgenden Regeln:
  1. Die Änderung mit der höheren versionID wird für die Replikation akzeptiert, während die Änderung mit der niedrigeren versionID überschrieben wird. In diesem Fall ist die versionID für beide Datensätze 2, sodass die zweite Regel ins Spiel kommt.
  2. Wenn beide Datensätze dieselbe versionID haben, wird die Änderung mit dem späteren Zeitstempel akzeptiert, während die andere Änderung überschrieben wird. In diesem Fall zeigt der Zeitstempel des Ursprungsschreibvorgangs von DC3 ein späteres Datum, sodass die Beschreibung von jsmith auf „Vertrieb und Marketing“ festgelegt wird. In dem seltenen Fall, dass sowohl die versionID als auch der Zeitstempel identisch sind, ist eine dritte und endgültige Regel erforderlich.
  3. Wenn beide Datensätze über dieselbe versionID und denselben Zeitstempel verfügen, wird der Schreibvorgang, der seinen Ursprung auf dem Domänencontroller mit der niedrigeren GUID hat, akzeptiert, und der Schreibvorgang vom Domänencontroller mit der höheren GUID wird überschrieben. Wenn also die GUID von DC1 1234567890 ist und die GUID von DC3 2345678901, würde der Ursprungsschreibvorgang von DC1 akzeptiert, wenn sowohl versionID als auch Zeitstempel identisch sind.
Wahrscheinlich fragen Sie sich, ob es nicht sinnvoller wäre, wenn der Zeitstempel an erster Stelle den Ausschlag geben würde. Das ist nicht so eindeutig, wie Sie vielleicht denken. Wenn der Zeitstempel bei der Konfliktauflösung in Active Directory primär den Ausschlag geben würde, müsste ein böswilliger Administrator zum Propagieren seiner Änderungen nur die Uhr auf einem bestimmten Domänencontroller zurückstellen, sodass dieser bei den Zeitstempeln immer als Sieger hervorgehen würde.

Auflösung einer widersprüchlichen Objekterstellung
In Fällen, in denen zwei Objekte mit demselben Namen erstellt werden, verwendet Active Directory dieselben drei ausschlaggebenden Regeln, die im vorherigen Abschnitt beschrieben wurden, um zu bestimmen, welches Objekt akzeptiert wird. Im Gegensatz zum vorherigen Abschnitt wird das jeweils nicht akzeptierte Objekt jedoch nicht überschrieben. Stattdessen wird das nicht akzeptierte Objekt mithilfe der Zeichen CNF (Conflict Objekt, Konfliktobjekt) gefolgt durch einen Doppelpunkt und der GUID des nicht akzeptierten Objekts umbenannt. So können Administratoren methodischer bestimmen, welches Objekt erhalten bleiben und welches gelöscht werden soll.

Auflösung einer Objektverschiebung in einen gelöschten Container
Wie bereits erwähnt, ist die Auflösung einer Objektverschiebung in einen gelöschten Container ein recht seltener Konflikt, der nur in einem von zwei Szenarios eintritt. In einem Szenario erstellt ein Administrator auf einem Domänencontroller innerhalb eines bestimmten Containers, beispielsweise in der Organisationseinheit Schulung, zum selben Zeitpunkt ein Objekt, zu dem ein Administrator auf einem anderen Domänencontroller die Organisationseinheit Schulung löscht. Das zweite Szenario kann eintreten, wenn ein Administrator auf einem Domänencontroller zum gleichen Zeitpunkt ein Objekt in einen Container verschiebt, zu dem ein Administrator auf einem anderen Domänencontroller diesen Container löscht.
Die Auflösung in diesem Fall ist ziemlich einfach: Active Directory verschiebt das „verwaiste“ Objekt in einen besonderen Container innerhalb von Active Directory, der zu diesem Zweck entworfen wurde: der LostAndFound-Container, der vom Stamm jeder Active Directory-Domäne ausgeht. Für die contoso.com-Domäne befindet sich der LostAndFound-Container entlang des folgenden LDAP-Pfads: LDAP://cn=LostAndFound,dc=contoso,dc=com. Wenn Sie den LostAndFound-Container beim Öffnen des Snap Ins „Active Directory-Benutzer und -Computer“ nicht sehen, klicken Sie einfach auf „Ansicht | Advanced Features“ (Ansicht | Erweiterte Features).

Schutz vor einem USN-Rollback
Eine der schwierigsten Situationen, denen Sie in einer Active Directory-Umgebung begegnen können, lässt sich gleichzeitig sehr einfach vermeiden, wenn Sie ihre Ursache verstehen und die Problemumgehung kennen. Ein USN-Rollback ist eine Fehlerbedingung, die die Replikation auf Ihrem Netzwerk völlig stilllegen kann. Sie wird dadurch verursacht, dass ein Domänencontroller zu lange offline bleibt und dann seinen Dienst wiederaufnimmt, oder durch das Wiederherstellen eines Domänencontrollers mithilfe einer nicht unterstützten Methode.
Eine der zugrunde liegenden Ursachen eines USN-Rollbacks ist die Art und Weise, wie Objektlöschungen in der Active Directory-Multimasterumgebung verarbeitet werden. Wenn ein Objekt auf einem Domänencontroller gelöscht wird, statt sofort entfernt zu werden, handelt es sich um ein Tombstone-Objekt. Tombstone-Objekte können auf anderen Domänencontrollern repliziert werden, sodass diese über die Löschung benachrichtigt werden. Am wichtigsten ist, dass ein Tombstone-Objekt ein isDeleted-Attribut besitzt, das auf TRUE eingestellt ist. Um die Größe des Tombstone-Objekts zu verringern, werden die meisten in dem Objekt enthaltenen Werte wie die Beschreibung, persönlich Informationen und die Gruppenmitgliedschaft eines Benutzerobjekts entfernt (weitere Informationen zu diesem Prozess finden Sie in Gil Kirkpatricks Artikel „Tombstone-Wiederbelebung in Active Directory“, der online unter technetmagazine.com/issues/2007/09 verfügbar ist).
Ein USN-Rollback kann eintreten, weil diese Tombstone-Objekte nicht unendlich lange vorhanden sind. Sie werden (abhängig von der Version von Windows Server®, die bei der ersten Erstellung der Active Directory-Umgebung ausgeführt wurde) standardmäßig nach 60 oder 180 Tagen aus der Active Directory-Datenbank gelöscht. Diese Zeitdauer von 60 oder 180 Tagen wird als Tombstone-Lebensdauer bezeichnet. Alle Domänencontroller müssen in der Lage sein, in dieser Zeit mindestens einmal eine Replikation vorzunehmen. Andernfalls sind sie völlig nutzlos, und die Gefahr eines USN-Rollbacks tritt auf. Im Grunde findet ein USN-Rollback statt, wenn ein Domänencontroller so vollständig veraltet ist, dass er eins oder mehrere Tombstone-Objekte „verpasst“ hat und folglich seine lokale Kopie der Active Directory-Datenbank nicht vollständig mit anderen Domänencontrollern auf den neuesten Stand bringen kann. Zum Schutz davor, sollte ein Domänencontroller, der länger als die Tombstone-Lebensdauer offline war, nicht wieder in den Dienst gestellt, sondern ganz neu erstellt werden, nachdem die alten Metadaten des Domänencontrollers mithilfe der im Microsoft Knowledge Base-Artikel 216498 (support.microsoft.com/kb/216498) beschriebenen Schritte entfernt wurden.
Die zweite Ursache für ein USN-Rollback besteht darin, dass ein Domänencontroller mit einer nicht unterstützten Methode (am häufigsten mit einem Tool zum Datenträgerklonen oder einem Abbilderstellungstool) wiederhergestellt wurde. In diesem Fall erkennt die wiederherstellte Active Directory-Datenbank nicht, dass sie „in der Zeit zurückgegangen“ ist, da die Wiederherstellungsmethode nicht Active Directory-fähig war. Ein USN-Rollback war in Windows 2000 und der ersten veröffentlichten Version von Windows Server 2003 nur schwer zu erkennen, doch Windows Server 2003 SP1 (und die bevorstehende Windows Server 2008-Version) verfügen über integrierte Steuerelemente, um zu erkennen, wann ein Domänencontroller nicht richtig wiederherstellt wurde. In diesen neueren Betriebssystemversionen protokolliert ein Domänencontroller die Ereignis-ID 1115, 2095, 2103 und 2110 im Verzeichnisdienste-Ereignisprotokoll. Der Text dieser Ereignisse sowie die erforderlichen Schritte zur Wiederherstellung nach einem USN-Rollback sind im Knowledge Base-Artikel 875495 (support.microsoft.com/kb/875495) für Windows Server 2003 enthalten. (Informationen zum Behandeln eines USN-Rollbacks in Windows 2000 finden Sie im Knowledge Base-Artikel 885875, der unter support.microsoft.com/kb/885875 verfügbar ist.)

Aktualisierung des Multimastermodells in 2008
Mit der bevorstehenden Veröffentlichung von Windows Server 2008 hat Microsoft mit der Einführung des Domänencontrollers ohne Schreibzugriff (Read-Only Domain Controller, RODC) eine geringfügige Änderung am Multimastermodell vorgenommen. Der RODC wurde hauptsächlich für Zweigstellenbereitstellungen oder für Szenarios entwickelt, in denen es vor Ort an einem bestimmten Standort keine dedizierten IT-Mitarbeiter gibt und zusätzliche Schritte unternommen werden müssen, um die Integrität eines bestimmten Domänencontrollers sicherzustellen. Die Erörterung der technischen Einzelheiten des RODC wäre Stoff für einen ganzen Artikel, doch hier werden nur die Hauptpunkte vorgestellt, mit denen Sie vertraut sein sollten.
Wie der Name schon sagt, ist die Kopie der Active Directory-Datenbank, die sich auf einem RODC befindet, schreibgeschützt. Sie können eine Verbindung zu einem RODC herstellen, um fast alle erforderlichen Informationen zu lesen, aber Sie können keine Schreibvorgänge auf einem RODC durchführen.
Zweitens führt ein RODC keine ausgehende Replizierung durch. Dies ist eine grundlegende Änderung gegenüber dem Multimasterreplikationsmodell, das hier bisher erörtert wurde. Ein RODC empfängt die eingehende Replizierung von anderen beschreibbaren Windows Server 2008-Domänencontrollern, repliziert jedoch keinerlei Informationen für andere Domänencontroller. Dies sorgt für eine zusätzliche Sicherheitsschicht, denn selbst wenn ein böswilliger Benutzer das Active Directory vom RODC aus irgendwie ändern könnte, würden diese Änderungen nicht in der übrigen Umgebung propagiert.
Vielleicht am interessantesten ist jedoch die Tatsache, dass der RODC Benutzerkennwörter nicht standardmäßig repliziert. Wenn die Active Directory-Datenbank eingehend von einem beschreibbaren Domänencontroller auf einem RODC repliziert wird, werden alle Benutzerobjekte ohne die Kennwortinformationen des Benutzers repliziert. Dies sorgt für eine weitere Sicherheitsschicht in einer Zweigstellenumgebung, sodass sich selbst beim Diebstahl eines Domänencontrollers keine Kennwortinformationen auf seiner Festplatte befinden. Insgesamt sorgen diese Änderungen an der ursprünglichen Idee der Multimasterreplikation in Active Directory für ein stark verbessertes Modell zur Sicherung von Domänencontrollern in Zweigstellen oder an anderen Remotestandorten.

Laura E. Hunter wurde vier Mal mit dem Microsoft MVP Award im Bereich von Windows Server Networking ausgezeichnet. Sie ist seit zehn Jahren in der IT-Branche tätig und ist Verfasserin oder Mitverfasserin zahlreicher branchenbezogener Bücher, Artikel, und Whitepapers, darunter „Active Directory Cookbook“, zweite Auflage (O'Reilly, 2006).


 System Center: Neue Tools f&#252;r die Softwareupdateverwaltung
System Center Steve Rachui

Neue Tools für die Softwareupdateverwaltung
Kurz zusammengefasst:
  • Updateverwaltung in der Vergangenheit
  • Der neue Prozess in SCCM 2007
  • Benutzerdefinierte Konfiguration und Flexibilität
  • Fein abgestimmte Updateplanung

Die Softwareupdateverwaltung wurde ursprünglich in Systems Management Server (SMS) 2.0 mit den Überprüfungstools für Sicherheit und Office-Updates eingeführt. Diese Tools wurden mehrmals überarbeitet: Das erweiterte
Sicherheitsupdate-Inventurprogramm wurde überarbeitet, um das Überprüfen zusätzlicher Produkte zu unterstützen, das Inventurprogramm für Microsoft® Updates verbindet nun die Sicherheits- und Office-Tools in einem einzelnen Produkt, und das Inventurprogramm für Dell-Updates wurde ebenfalls verbessert. Weiterhin wurde das Veröffentlichungstool für benutzerdefinierte Updates eingeführt, um Patches für Drittanbieterprodukte zu unterstützen. Das Inventurprogramm für Microsoft Updates (Inventory Tool for Microsoft Updates, ITMU) wurde dreimal überarbeitet. Für jedes dieser Tools gibt es eigene Kataloge, eine Scaninfrastruktur und eindeutige Anforderungen und Herausforderungen. Im Lauf der Zeit wurden die Kataloge für diese Systeme sehr groß – so groß, dass ältere Updates aufgrund von Größeneinschränkungen zu Gunsten neuer entfernt wurden.
Bei dem Spektrum an Optionen war die Bereitstellung von Updates mit diesen Tools eine Herausforderung. Daher war eine Vereinfachung des Prozesses erforderlich. Die nächste Veröffentlichung von SMS (System Center Configuration Manager 2007 (SCCM)) bietet große Fortschritte in dieser Richtung. Bei SCCM sorgt die Methode für Softwareupdates für bessere Endergebnisse. Aufgrund eines völlig anderen Ansatzes in Bezug auf Updateverwaltungsvorgänge gehören alte Kataloge und Scanmodule der Vergangenheit an. Für den Updatestatus, der historisch über die Hardwareinventur gemeldet wurde, wird eine neue Methode – die Zustandsmeldung – verwendet, um für erhöhte Kompatibilität und Erzwingung auf jedem Client zu sorgen. Sie werden sehen, dass der neue Ansatz zur Updateverwaltung in SCCM 2007 eine bedeutende Verbesserung darstellt.
In SCCM 2007 werden zwei neue Komponenten eingeführt, die an dieser Stelle zunächst erläutert werden sollen. Anschließend werden dann die Updateverwaltungsfunktionen erörtert.
Softwareupdatepunkt (Software Update Point, SUP) Wie bereits erwähnt, gibt es in SCCM keine Kataloge mehr. Stattdessen arbeitet SCCM direkt mit einem dedizierten Windows Server® Update Services (WSUS)-Server, der als Softwareupdatepunkt (SUP) zum Bereitstellen von Metadatendownloads und für den Clientscan dient. In SCCM sind die binären Updateübermittlungsfeatures der WSUS deaktiviert, um eine Fokussierung auf den Scanvorgang zu ermöglichen. Mithilfe dieser Anpassung überprüft die WSUS-Komponente bis zu 25.000 Clients pro SUP auf einem dedizierten Server. SCCM ermöglicht zudem die Konfiguration des Softwareupdatepunkts auf Grundlage eines Netzwerklastenausgleichs (Network Load Balancing, NLB)-Clusters für erhöhte Verfügbarkeit und Skalierung, sodass an jedem primären Standort bis zu vier Softwareupdatepunkte für insgesamt 100.000 mögliche Clients aktiviert werden können.
Konfigurationselemente (Configuration Items, CI) Ein Konfigurationselement ist ein neuer in SCCM verwendeter Ansatz zum Definieren bestimmter Konfigurationen, die auf Zielsystemen vorhanden sein sollten. Die SCCM-Updateverwaltung verwendet jetzt diese Infrastruktur. Sie sollten sich Updates nicht mehr im Sinne der normalen Softwareverteilung vorstellen, obwohl noch Ähnlichkeiten vorhanden sind. Stattdessen befinden sich Updates in einem eigenen Knoten in der Administratorkonsole und verwenden einzigartige Konfigurationselemente. Auf der Clientseite werden Updates selektiv heruntergeladen und lokal gespeichert.

Konfigurieren der Updateverwaltung
Die Einrichtung der Updateverwaltung lässt sich in drei allgemeine Bereiche aufteilen: Aktivieren des Client-Agents, Konfigurieren des SUP und Konfigurieren der Updates für die Verteilung.
Der SCCM-Client-Agent (wie in Abbildung 1 dargestellt) ähnelt anderen Client-Agents und wird im selben Knoten der Verwaltungskonsole konfiguriert. Auf der Eigenschaftenseite des Knoten für Softwareupdate-Client-Agents aktivieren Administratoren diesen Agent und konfigurieren die Updateinstallation sowie die Einstellungen für die Neubewertung der Bereitstellung. Die Einstellung zum Aktivieren des Softwareupdate-Client-Agents ist standortübergreifend, d. h. bei jedem SCCM-Client, der dem Standort zugewiesen wird, an dem diese Funktion eingeschaltet ist, wird diese Rolle aktiviert. Wenn bei einigen Systemen in einer Umgebung diese Funktion nicht aktiviert sein soll, können Sie die standortübergreifende Einstellung pro System mithilfe lokaler Richtlinieneinstellungen außer Kraft setzen.
Abbildung 1 Client-Agent-Eigenschaften
Abbildung 1 Client-Agent-Eigenschaften
Mithilfe der Einstellungen hier kann der Administrator auch angeben, wie Updatestichtage zu behandeln sind. Ihnen liegen beispielsweise vier zu installierende Updates vor, wobei ein Update (Update A) einen Tag vor den anderen drei installiert werden muss. Doch es ist wünschenswert, alle vier Updates gleichzeitig zu installieren, also auch jene, deren Stichtag noch nicht erreicht wurde. Mithilfe der Registerkartenoption zum Erzwingen aller erforderlichen Bereitstellungen können Sie diese Wahlmöglichkeit konfigurieren. Des Weiteren können Administratoren mithilfe dieser Einstellungen angeben, dass alle Benachrichtigungen und sichtbaren Anzeigen des Aktualisierungsprozesses unterdrückt werden sollen. Abbildung 1 zeigt diese Optionen.
Mithilfe der Einstellungen auf der Registerkarte zur erneuten Bewertung der Bereitstellungen können Administratoren planen, wann Bereitstellungen neu bewertet werden. SCCM-Clients werden gemäß diesem Zeitplan bewertet, um festzustellen, ob bereits installierte Updates noch erforderlich sind, und um sie neu zu installieren, falls sie fehlen.

Konfigurieren des SUP
Wie bereits erwähnt, ist der SUP die Komponente, die zum Herunterladen aller verfügbaren Updateinformationen gemäß einem Zeitplan und für die direkte Interaktion mit SCCM-Clients verantwortlich ist, um Kompatibilitätsscans auf Grundlage der Updatedatenbank durchzuführen. Bevor ein SUP konfiguriert wird, muss ein WSUS 3.0-Server oder höher installiert werden, da der SUP-Prozess WSUS nicht installiert, sondern WSUS nur für die SCCM-Verwendung konfiguriert. Zusätzlich muss die WSUS-Administratorkonsole auf dem Standortserver installiert werden, um die Konnektivität mit dem WSUS-Server zu aktivieren. Wenn SCCM den WSUS-Server für die SUP-Rolle übernimmt, ist der WSUS-Server für SCCM dediziert und kann nur von SCCM-Clients verwendet werden.
Der SUP ist eine neue Standortsystemrolle in SCCM. Um mit der Konfiguration zu beginnen, navigieren Sie zum Standortsystemknoten der Administratorkonsole und fügen ein neues Standortsystem hinzu. Als Nächstes wählen Sie den Softwareupdatepunkt aus und fahren mit dem Assistenten fort, der folgende Informationen sammelt:
  • Proxykonfiguration
  • Port- und SSL-Informationen
  • Wie dieser SUP Updates synchronisieren soll – von Microsoft Update, über einen Upstream-SUP oder manuell
  • Synchronisierungszeitplan
  • Updateklassifizierungen, die von Interesse sind, beispielsweise kritische Updates, Treiber, Sicherheitsupdates, Updaterollups und so weiter
  • Verfügbare Updateprodukte – Windows®, Exchange, SQL Server™ und so weiter (dargestellt in Abbildung 2)
  • Sprache
Abbildung 2 Produkteinstellungen im Assistenten für Standortrollen
Abbildung 2 Produkteinstellungen im Assistenten für Standortrollen
Nach Abschluss des Assistenten wird der SUP installiert, und die internen Konfigurationen werden zur Unterstützung von SCCM-Anforderungen angepasst. Überprüfen Sie, ob die Installation erfolgreich war, indem Sie die SUPSetup.log-Datei im Protokollordner überprüfen, in dem SCCM installiert wurde.
Nach Installation des SUP muss die Synchronisierung durchgeführt werden, damit der SUP Updates abruft und sie in der SUP- und SCCM-Datenbank speichert. Die Synchronisierung kann entweder manuell oder nach einem Zeitplan ausgeführt werden, der beim Ausführen des SUP-Setup-Assistenten konfiguriert wurde. Die manuelle Updatesynchronisierung kann jederzeit initialisiert werden, und Sie sollten sicherstellen, dass die Synchronisierung nach der erstmaligen Installation des SUP durchgeführt wird. In Abbildung 3 wird dies aufgezeigt.
Abbildung 3 Manuelle Ausführung der Synchronisierung
Abbildung 3 Manuelle Ausführung der Synchronisierung
Der Synchronisierungsvorgang besteht aus zwei Schritten. Zuerst wird der SUP (WSUS)-Server so konfiguriert, dass er den SCCM-Einstellungen entspricht, und konfigurierte Updates werden mit dem SUP (WSUS)-Server synchronisiert. Anschließend werden die Updateinformationen des SUP (WSUS) mit der SCCM-Datenbank synchronisiert und für die Updatebereitstellung zur Verfügung gestellt. Durch diesen zweiten Schritt werden die erforderlichen Konfigurationselemente (eins für jedes Softwareupdate) in der SCCM Datenbank erstellt, was zeitaufwändig sein kann. Es ist nicht ungewöhnlich, dass die anfängliche Synchronisierung mehrere Stunden in Anspruch nimmt. Der Synchronisierungsvorgang kann im WSyncMgr-Protokoll überprüft werden. Ein Auszug daraus ist in Abbildung 4 und 5 dargestellt. Speziell Abbildung 4 zeigt, wie der SUP (WSUS)-Server durch den Synchronisierungsprozess aufgefordert wird, die in ihm enthaltene Liste mit Updates von Microsoft Update zu aktualisieren. Abbildung 5 zeigt den Start des Prozesses für das Synchronisieren der SUP-Inventur mit der SCCM-Datenbank.
Abbildung 4 Synchronisieren der Updateliste
Abbildung 4 Synchronisieren der Updateliste
Abbildung 5 Synchronisierung der Updates als Konfigurationselemente in der SCCM-Datenbank
Abbildung 5 Synchronisierung der Updates als Konfigurationselemente in der SCCM-Datenbank
Wenn ein WSUS-Server als SUP konfiguriert wurde, kann die erforderliche Verwaltung über die SCCM-Administratorkonsole erfolgen. Wenn Konfigurationsänderungen direkt am WSUS-Server vorgenommen werden, wirkt sich dies möglicherweise ungünstig auf SCCM aus. Des Weiteren werden diese Konfigurationen stündlich zurückgesetzt, wenn SCCM den SUP prüft, um sicherzustellen, dass die Konfigurationen richtig sind.
In einer mehrschichtigen Hierarchie muss mindestens ein SUP an jedem primären Standort vorhanden sein, an dem Softwareupdates bereitgestellt werden. Diese SUPs arbeiten in einer Hierarchie mit nur einem SUP zusammen, bei dem es sich im Allgemeinen um den höchsten in der Hierarchie handelt und der die Synchronisierung mit Microsoft Updates durchführt. Die übrigen SUPs führen die Synchronisierung von einem konfigurierten Upstream-SUP-Replikationspartner aus durch.

Konfigurieren der Updatebereitstellung
Nach Konfiguration des Client-Agents und der Konfiguration und Synchronisierung des SUP können Sie eine Bereitstellung vorbereiten. Zunächst werden die verschiedenen Knoten der SCCM-Administratoroberfläche überprüft. Im Grunde gibt es fünf Hauptknoten, die von Interesse sind: Updaterepository, Updatelisten, Bereitstellungsvorlagen, Bereitstellungsverwaltung und Bereitstellungspakete.
Im Updaterepository werden alle synchronisierten Updates gespeichert und stehen dort zur Bereitstellung zur Verfügung. Updates können durch Auswahl eines oder mehrerer Updates und Starten des Assistenten zum Bereitstellen von Softwareupdates bereitgestellt werden, der zwei Aufgaben erfüllt: Konfigurieren der Bereitstellungsvorlage (oder Auswahl einer bereits vorhandenen Vorlage) und Konfigurieren der Bereitstellung an sich. Dieser Prozess wird gleich erläutert. Die Liste der Updates kann recht groß werden, und Suchordner, ein neues Feature in SCCM 2007, können bei der Suche nach Updates helfen, die von Interesse sind. Dabei werden 28 updatebezogene Kriterien einschließlich Schweregrad, Klassifizierung, Produkt, Veröffentlichungsdatum und Ersetzung herangezogen.
Mithilfe von Updatelisten können Administratoren einen feststehenden Satz von Updates erstellen, die verwaltet werden sollen. Sie können für Kompatibilitätsberichte, die Erstellung von Bereitstellungen und die Verwaltungsdelegierung verwendet werden. Nach der Erstellung werden diese Updatelisten die Hierarchie hinunter zur Wiederverwendung an untergeordneten Standorten repliziert, genau wie Pakete oder Ankündigungen. Updatelisten sind bei der Replizierung nicht an eine bestimmte Bereitstellung gebunden. Es handelt sich einfach nur um Listen von Updates. Wenn die Liste vollständig ist und repliziert wurde, können die in ihr enthaltenen Updates als Einheit bereitgestellt werden, indem die Liste und das Bereitstellen der Updates ausgewählt werden.

Bereitstellungsvorlagen
Bereitstellungsvorlagen enthalten häufige Einstellungen (beispielsweise Informationen zum Zeitplan und zur Zielsammlung), die während der Softwareupdatebereitstellung verwendet werden. Sie wurden entwickelt, um die Verwaltungszeit beim Bereitstellen von Updates zu verringern. Vorlagen können erstellt werden, um mehrere Bereitstellungsbedingungen in einer Umgebung anzusprechen. Sie können im Bereitstellungsassistenten einfach durch Auswahl der entsprechenden Vorlage verwendet werden. Einstellungen, die von der Bereitstellungsvorlage bereits aufgefüllt wurden, umfassen die Zielsammlung, Einstellungen für Updatestichtage (wie in Abbildung 6 dargestellt), Neustarteinstellungen und Wartungsfenster. Wenn eine Bereitstellung eine große Anzahl von Updates enthält, kann sich dies negativ auf die Leistung des Zielsystems auswirken, da alle Updatestichtage gleichzeitig eintreten. Zudem gilt es zu beachten, dass Einstellungen innerhalb der Vorlage bei der Bereitstellungserstellung auf die Bereitstellung angewendet werden. Diese Einstellungen bleiben bei der Bereitstellung in Kraft, es sei denn, sie werden manuell innerhalb der Bereitstellung geändert. Sie sollten bedenken, dass eine einfache Änderung der Vorlageneinstellungen selbst zu einem späteren Zeitpunkt nicht dazu führt, dass die geänderten Einstellungen bei vorhandenen Bereitstellungen geändert werden, die die geänderte Vorlage verwenden.
Abbildung 6 Einstellen von Bereitstellungsplänen im Assistenten
Abbildung 6 Einstellen von Bereitstellungsplänen im Assistenten
Die Optionen in Abbildung 6 können konfiguriert werden, während der Bereitstellungsvorlagen-Assistent oder der Assistent zum Bereitstellen von Softwareupdates ausgeführt wird (bei Erstellen einer neuen Vorlage). Beachten Sie, dass die Dauer in diesem Bildschirm auf 0 eingestellt ist. Der Standardwert für diese Einstellung ist zwei Wochen. Wenn diese Einstellung auf einen anderen Wert als 0 eingestellt wird, kommt es auf dem Client zu einer Verzögerung bis zur Länge dieses Werts, bevor Updates bereitgestellt werden. In der Zeit zwischen dem Zeitpunkt, an dem die Bereitstellung zur Verfügung gestellt wird, und der Erzwingung des konfigurierten Stichtags steht das Update zur manuellen Installation durch Endbenutzer für Installationen zur Verfügung, die vor dem Stichtag geplant wurden. Am Stichtag wird das Update erzwungen und installiert. Wenn es bei der Updatebereitstellung zu Verzögerungen kommt, sollten Sie sicherstellen, dass diese Einstellung Ihren Anforderungen entsprechend konfiguriert ist.

Bereitstellungsverwaltung
Nach Konfiguration einer Softwareupdatebereitstellung kann auf diese im Bereitstellungsverwaltungsknoten zugegriffen werden. Beachten Sie, dass eine konfigurierte Softwarebereitstellung nicht mit einem Bereitstellungspaket identisch ist. Die Einstellungen im Zusammenhang mit der Bereitstellung sowie in der Bereitstellung enthaltene Updates, aber nicht das Paket selbst, können in diesem Knoten angezeigt und geändert werden. Die hier vorhandenen Bereitstellungseinstellungen entsprechen den im Assistenten zum Bereitstellen von Softwareupdates vorgenommenen Einstellungen sowie denen, die von der ausgewählten Vorlage geerbt werden.

Bereitstellungspakete
Bereitstellungspakete ähneln Standard-SMS-Paketen, da sie ebenfalls die Einzelheiten eines Updates (Quellverzeichnis, Verteilungspunkt und so weiter) definieren. Bereitstellungspakete sind unabhängig von der eigentlichen Bereitstellung, die zum Verteilen der Updates verwendet wird. Sie sind im Wesentlichen ein Speicherort für Updates. Wenn mehr als ein Bereitstellungspaket die für eine Bereitstellung erforderlichen Updates enthält, bestimmen SCCM-Agents den besten Speicherort zum Abrufen des Updates. Es kann ein beliebiges verfügbares Bereitstellungspaket verwendet werden, das das Update enthält.
Der Assistent zum Bereitstellen von Softwareupdates dient zum Bereitstellen von Updates in SCCM. Dieser Assistent kann entweder mit einzelnen Updates oder Updatelisten verwendet werden. Abbildung 7 zeigt, wie der Assistent gestartet wird.
Abbildung 7 Starten des Assistenten zum Bereitstellen von Softwareupdates
Abbildung 7 Starten des Assistenten zum Bereitstellen von Softwareupdates
Der Assistent fragt nach einem Namen für die Bereitstellung, danach, ob vorhandene oder neue Vorlageneinstellungen verwendet werden sollen (bei Wahl einer neuen Vorlage fordert der Assistent die bereits an anderer Stelle beschriebenen Vorlageneinstellungen an), nach Bereitstellungspaketeinstellungen (entweder vorhandene oder neue), Verteilungspunkteinstellungen, Speicherortoptionen für den Download, herunterzuladenden Updatesprachen und Informationen zum Bereitstellungszeitplan.
Nach abgeschlossener Konfiguration wird die Richtlinie aktualisiert, um die Clients bezüglich der vorgesehenen Updates zu benachrichtigen, und die Updates werden auf den Clientsystemen installiert. Die Clientprozesse unterscheiden sich stark von vorherigen Veröffentlichungen und gehen über das Thema dieses Artikels hinaus. Ein Hauptunterschied besteht darin, dass die Updatescans nicht mehr lokal durchgeführt werden (der SUP führt alle Scanvorgänge durch), doch die Einzelheiten zur Updatekompatibilität werden – ähnlich wie in vorherigen Versionen – im lokalen Windows-Verwaltungsinstrumentations (Windows Management Instrumentation, WMI)-Repository gespeichert.
Anders als in vorherigen Versionen wird die Hardwareinventur nicht mehr zum Senden des Updatestatus an den Standortserver verwendet. Stattdessen werden Zustandsmeldungen (eine neue Art von optimierter Statusmeldung) über den Verwaltungspunkt an den Standortserver gesendet. Zustandsmeldungen stellen Daten über alle verwalteten Clients für Kompatibilitätsscans bereit und verfolgen den Fortschritt von Bereitstellungen. Es gibt eine Reihe neuer Berichte in SCCM für die Softwareupdateverwaltung, darunter die Gesamtkompatibilität pro Computer für alle für jeden Client bereitgestellten Updates, der Bereitstellungserzwingungszustand pro Client und Clientfehlerberichte für Scans und Bereitstellungen, die eine Liste der größten zu lösenden Probleme nach Stapelrang enthalten.
Zusätzlich zur traditionellen geplanten/obligatorischen Erzwingung von Updatebereitstellungen können Sie mit SCCM genehmigte Updates vor dem in einem Zeitplan enthaltenen Installationsstichtag ganz ähnlich wie bei den bisherigen automatischen Updates installieren. Durch diese nützliche neue Funktion wird gewährleistet, dass bis zum Bereitstellungsstichtag eine noch größere Anzahl kompatibler Systeme vorliegt.
Wenn benutzerdefinierte Updates für Sie von Interesse sind, werden diese mit SCCM ebenfalls ermöglicht. Das Veröffentlichungstool für benutzerdefinierte Updates in SMS 2003 R2 wurde zur Verwendung mit SCCM 2007 zum System Center Updates Publisher geändert, sodass alle benutzerdefinierten Updates genau wie hier beschrieben bereitgestellt werden können.
Die Änderungen bei der Updateverwaltung in SCCM sind umfangreich, aber aus administrativer Sicht wird die Updateverwaltung erleichtert. SCCM ist somit eine willkommene Verbesserung gegenüber vorherigen Versionen. Obwohl einige konzeptionelle Änderungen anfänglich für Benutzer, die an SMS 2003 gewöhnt sind, eine Herausforderung darstellen mögen, ist der neue Ansatz sicherlich der Mühe wert. Viel Spaß!

Steve Rachui ist Support Escalation Engineer für den Bereich Verwaltbarkeit in der Produktsupportgruppe von Microsoft. Er unterstützt SMS schon seit der Version 1.2. Sie erreichen ihn unter steverac@microsoft.com.


 Kommunikation: Exchange-Edge-Transport-Server bei Microsoft
Kommunikation Kay Unkroth

Exchange-Edge-Transport-Server bei Microsoft
Kurz zusammengefasst:
  • Die Edge-Transport-Serverfunktion in Exchange
  • Einrichten einer Testumgebung
  • Transport-Agents und -Ereignisse
  • Agent-Interna
Laden Sie den Code für diesen Artikel herunter: ExchangeEdge2007_10.exe (354KB)

Microsoft erhält an einem durchschnittlichen Arbeitstag ungefähr 13 Millionen Nachrichtenübermittlungsversuche aus dem Internet. Von diesen werden etwa 10,5 Millionen als nicht legitim blockiert. In kritischen
Situationen, z. B. bei Spamangriffen oder Virenangriffen im Internet, kann das Volumen auf mehr als 90 Millionen Nachrichten ansteigen. Natürlich bezieht sich dieses Ergebnis speziell auf Microsoft. Probleme wie Betrügereien, unerwünschte E-Mails, Phishing, durch E-Mails übertragene Viren, Directory-Harvesting-Angriffe, verteilte Denial-of-Service-Angriffe und ähnliche Themen sind jedoch nicht nur für Microsoft aktuell. Wie ist es angesichts dieser Probleme möglich, die Zustellung aller legitimen Nachrichten an die Benutzer sicherzustellen und gleichzeitig die Überflutung mit unzulässigem, schädlichem Inhalt aus der Messagingumgebung fernzuhalten?
Eine Möglichkeit, einen zuverlässigen Messagingschutz zu erreichen, besteht darin, Edge-Transport-Server für Exchange Server 2007 und Forefront Security für Exchange Server in einem Umkreisnetzwerk zwischen dem Internet und der Produktionsumgebung bereitzustellen. Dadurch wird ein organisiertes Team von mehr als 10 Edge-Transport-Agents in Ihrem Umkreis platziert, um Produktionssysteme und Benutzer zu schützen. Die Gründe dafür, unerwünschten Inhalt zum frühestmöglichen Zeitpunkt zu blockieren, liegen auf der Hand. In Anbetracht der Last, die Ihre Messagingumgebung in einer kritischen Situation bewältigen müsste, findet dies idealerweise bereits statt, bevor der Inhalt Ihre Server erreicht. Die Aufgabe des Messagingschutzes umfasst jedoch viel mehr als nur das Blockieren von Nachrichten.
Dies ist der erste Teil einer zweiteiligen Reihe, in der die in Exchange Server 2007 und Forefront Security für Exchange Server verfügbare Architektur und die Hauptfeatures der entsprechenden Antispam- und Antivirus-Agents erörtert werden. In diesem ersten Artikel soll auf realistische und praktische Art und Weise aufgezeigt werden, wie eine Testumgebung erstellt werden kann, die den Messagingschutzentwurf reflektiert, den Microsoft in seiner eigenen Unternehmensproduktionsumgebung verwendet. Anschließend wird die Edge-Transport-Architektur von Exchange Server 2007 detaillierter besprochen.
Im gesamten Artikel werden Skripts und Batchdateien häufig verwendet, um die wichtigsten Konfigurationsaufgaben zu automatisieren. Diese Dateien enthalten Kommentare, in denen die einzelnen Schritte erklärt werden. Die Skripts stehen zum Download auf der TechNet Magazin-Website unter technetmagazine.com/code07.aspx zur Verfügung

Edge-Transport-Topologie
In Abbildung 1 wird der von Microsoft IT in der Unternehmensproduktionsumgebung implementierte Edge-Transport-Entwurf illustriert. Bevor näher auf die Edge-Transport-Architektur eingegangen wird, sollen ein paar interessante Entwurfsfeatures vorgestellt werden. Die vollständigen Implementierungsdaten finden Sie im IT Showcase-Whitepaper, auf das in der Randleiste „Exchange-Ressourcen“ verwiesen wird.
Abbildung 1 Edge-Transport-Topologie bei Microsoft
Abbildung 1 Edge-Transport-Topologie bei Microsoft
Wenn Sie Abbildung 1 analysieren, stellen Sie fest, dass die Edge-Transport-Topologie bei Microsoft vollständig redundant ist. Es gibt an keinem Ort eine einzelne Fehlerquelle. Für den Lastenausgleich verwendet Microsoft IT extern DNS-Roundrobin sowie intern Messagingconnectors mit mehreren Bridgeheads. Beachten Sie auch, dass alle Transportserver (Hub-Transport und Edge-Transport) für die Virenüberprüfung Forefront Security für Exchange Server ausführen. Dies ermöglicht Microsoft IT, alle eingehenden, ausgehenden und internen Nachrichten zu scannen, sobald die Nachrichten einen Transportserver in der Nachrichtenroutingtopologie erreichen.
Ein anderes wichtiges sicherheitsbezogenes Entwurfsfeature besteht darin, dass die Edge-Transport-Server nicht Teil der Unternehmensumgebung von Active Directory® sind. Es ist nicht erforderlich, Edge-Transport-Server in Active Directory-Gesamtstrukturen bereitzustellen. Um jedoch ein konsistentes Verwaltungsframework beizubehalten, einen gemeinsamen Satz an Richtlinien anzuwenden und die einmalige Anmeldung zu unterstützen, stellt Microsoft IT alle Edge-Transport-Server in einer Extranetgesamtstruktur bereit, die von der Produktionsumgebung getrennt ist.
Schließlich können Sie deutlich erkennen, dass alle Nachrichten aus dem Internet Microsoft über Edge-Transport-Server erreichen, die sich in Nordamerika befinden. Die Edge-Transport-Server in Dublin und Singapur verarbeiten nur ausgehende Nachrichten. Der Vorteil, den gesamten eingehenden Datenverkehr über die Edge-Transport-Server in Nordamerika abzuwickeln, besteht darin, Sicherheits- und Antispamkontrollen zu zentralisieren und gleichzeitig die Übertragung ausgehender Nachrichten von großen regionalen Datenzentren über den internen Messagingbackbone zu vermeiden.
Microsoft IT-Systemingenieur Omesh Desai hat die Edge-Transport-Topologie bei Microsoft entworfen. Als ich ihn zu den wichtigsten Entwurfsfeatures befragte, antwortete er: „In diesem Edge-Transport-Entwurf werden systemeigene Antispam- und Antivirusfunktionen in Exchange genutzt, um einen Messagingschutz auf mehreren Ebenen des Messagingbackbones zu erzielen. Die Messagingumkreissicherheit hat höchste Priorität. Sehr wichtig ist für uns jedoch auch ein unkompliziertes Verwaltungsmodell. Mithilfe von Edge-Transport-Servern können Sie die Sicherheit über strengere Firewallkonfigurationen erhöhen und gleichzeitig die Genauigkeit der Spamfilterung über IP-Zuverlässigkeitsdienste, automatische Inhaltsfilterupdates, die Aggregation von Listen sicherer Adressen und die E-Mail-Poststempelprüfung verbessern. Die gesamte interne Server-zu-Server-Kommunikation wird standardmäßig verschlüsselt. Nach Möglichkeit wird zudem die Kommunikation mit externen Zielen verschlüsselt.
In den Edge-Transport-Servern werden 64-Bit-Prozessoren mit zwei Kernspeichern und acht Gigabyte an Speicher verwendet. Sechs dieser Server mit Lastenausgleich über zwei Datenzentren stellen genügend Kapazitäten zur Verfügung, um sogar Spitzen der Nachrichtenübermittlung, z. B. bei Virenangriffen im Internet, zu bewältigen.“

Edge-Transport-Testumgebung
Einrichten der Testumgebung
Da es als Best Practice empfohlen wird, nicht existierende Domänennamen und private IP-Adressen zu verwenden, verwende ich AdventureWorks.com und IP-Adressen aus den Bereichen 192.168.xxx.0-24. Es gibt keine redundanten Systeme oder Firewallarrays, weil der Lastenausgleich oder die Fehlertoleranz nicht getestet werden. (Außerdem können natürlich echte Firewallsysteme, die Microsoft IT verwendet, aus Sicherheitsgründen nicht besprochen werden.) Solche Details sind für diese Testumgebung nicht relevant.
In dieser Testumgebung wird ISA Server 2006 verwendet, weil dies wahrscheinlich eines der am häufigsten verwendeten Firewallsysteme in Verbindung mit Exchange Server 2007 ist. Wenn ISA Server 2006 sowohl auf der äußeren als auch auf der inneren Firewall ausgeführt wird, kann die Komplexität der Testumgebung auf einen überschaubaren Grad beschränkt werden. Für Produktionsumgebungen ist jedoch zur Erhöhung der Sicherheit die Verwendung unterschiedlicher äußerer und innerer Firewallsysteme empfehlenswert. Es würde den Umfang dieses Artikels überschreiten, auch Richtlinien für die Bereitstellung von IP-Sicherheit (IPSec) oder die Vorbereitung der Umgebung auf Transport Layer Security (TLS) zu erörtern.
Es wurden jedoch virtuelle Computer und 32-Bit-Evaluierungssoftware verwendet, die Sie von der Microsoft-Website herunterladen können. Microsoft unterstützt nicht die sich in der Produktion befindende 32-Bit-Version von Exchange Server 2007, dies ist jedoch in einer Testumgebung nicht relevant.
Diese Testumgebung basiert nach Möglichkeit auf Standardeinstellungen. Nur die IP-Konfiguration, Firewalls und DNS-Zonen müssen vor dem Ausführen von Exchange Server 2007-Setup und dem Abonnieren des Edge-Transport-Servers zur Produktionsumgebung zusätzlich konfiguriert werden. Weitere Einzelheiten zur IP-Konfiguration finden Sie in der IP-Configuration.xls-Datei zur Testumgebung im Download zu diesem Artikel. Wenn Sie die gleichen IP-Adresszuweisungen verwenden, können Sie schnell die äußere Firewall mit der Bezeichnung ISA01 konfigurieren, indem Sie das ISA01_Firewall_Policies.vbs-Skript direkt auf dem ISA01-Computer ausführen und die ISA02_Firewall_Policies.vbs für die innere Firewall (ISA02) verwenden. Im Download zu diesem Artikel sind auch Batchdateien für die Konfiguration der DNS-Server (INTERNET01_DNS_Config.bat, AD01_DNS_Config.bat und AD02_DNS_Config.bat) enthalten. Da diese Batchdateien das DNS-Befehlszeilentool (dnscmd.exe) verwenden, müssen Sie die Windows-Supporttools installieren. Andernfalls müssen die DNS-Einträge über die DNS-Konsole manuell erstellt werden.
Um Störungen von vorhandenen Umgebungen zu vermeiden, ist die Testumgebung nicht mit dem Internet verbunden. Diese Isolierung ist eine gute Vorsichtsmaßnahme. Sie verursacht zwar beim Herunterladen aller Signaturupdates, IP-Zuverlässigkeitsdienste und Inhaltsfilterupdates Fehler, dies ist jedoch für die Testzwecke nicht von Bedeutung. Um Fehlermeldungen zu vermeiden, wechseln Sie in der Forefront Server Security Administrator-Konsole zu „Scanner-Updates“. Setzen Sie dann die Aktualisierungsrate für alle Scanmodule auf „Einmal“, und geben Sie ein Datum in der Vergangenheit an.

Um diese Features in aktivem Zustand zu erforschen, empfiehlt es sich, eine Testumgebung zu erstellen – ein Produktionssystem sollte aus verständlichen Gründen niemals für Testzwecke verwendet werden. Es wird mindestens ein Server benötigt, um Exchange Server 2007 für die Mailbox-, ClientAccess- und Hub-Transport-Serverfunktionen auszuführen. Sie benötigen einen zweiten Exchange Server für die Edge-Transport-Serverfunktion. Sie können die Edge-Transport-Serverinstallation auslassen, wenn Sie alle Transport-Agents auf dem Server mit mehreren Rollen bereitstellen, indem Sie das Install-AntispamAgents.ps1-Skript ausführen. (Dies befindet sich auf Hub-Transportservern im Ordner %ProgramFiles%\Microsoft\Exchange Server\Skript.) Diese Methode entspricht jedoch nicht der Microsoft IT-Bereitstellung. Für eine realistische Testumgebung müssen Sie weitere Server integrieren. Abbildung 2 zeigt die Testumgebung, die für die Recherche dieses Artikels verwendet wurde. Eine ausführlichere Illustration ist im Download zu diesem Artikel verfügbar. Weitere Informationen zum Einrichten der Testumgebung finden Sie in der Randleiste „Einrichten der Testumgebung“.
Abbildung 2 Edge-Transport-Testumgebung
Abbildung 2 Edge-Transport-Testumgebung
Während des Abonnements des Edge-Transport-Servers und der Konfiguration zugeordneter Connectors entfernt Microsoft IT alle Standardconnectors und erstellt anschließend vier Sendeconnectors, um eine effiziente Kommunikation mit unterschiedlichen Arten von SMTP-Hosts (Simple Mail Transfer Protocol) und internen Hub-Transportservern zu ermöglichen. Der erste Sendeconnector ist ein allgemeiner Internetconnector für alle Ziele, die bestimmten Adressraumdefinitionen nicht entsprechen
Die zweite Sendeconnector ist ein Internetconnector mit ausführlichen Adressraumdefinitionen für bekannte Ziele, die ESMTP (HELO-Domänen) nicht unterstützen. Durch Setzen des ForceHELO-Parameters für diesen Connector auf „$true“ vermeidet Microsoft IT beim Einrichten von SMTP-Verbindungen eine unnötige Sequenz von EHLO, Fehlerantwort 500, HELO.
Der dritte Sendeconnector ist ein Internetconnector mit ausführlichen Adressraumdefinitionen für Partner und andere Remotedomänen, die TLS für eine sichere Kommunikation über verschlüsselte Verbindungen (TLS-Domänen) unterstützen. Bei diesem Connector wird der RequireTLS-Parameter auf „$true“ gesetzt.
Der vierte Sendeconnector ist ein eingehender Connector für die Übertragung von empfangenen Internetnachrichten an Hub-Transportserver in der Unternehmensumgebung. Weitere Einzelheiten zur Konfiguration des Edge-Transport-Servers finden Sie im IT-Showcase-Whitepaper, auf das in der Randleiste „Exchange-Ressourcen“ am Endes dieses Artikels verwiesen wird.
Um eine Connector-Topologie im Microsoft IT-Stil auf die Testumgebung anzuwenden, wurde ein skriptbasiertes Verfahren eingesetzt, das Omesh Desai für die interne Microsoft IT-Verwendung erstellt hat. Aus Sicherheitsgründen wurden die einzelnen Befehle geändert und drastisch verkürzt. Die entstandene Connectortopologie entspricht jedoch trotzdem der Microsoft IT-Topologie. Dies sind die Schritte:
  1. Entfernen Sie die Standardconnectors auf dem Exchange-Server mit mehreren Rollen (HUB-MBX-01) und auf dem Edge-Transport-Server (EDGE01).
  2. Erstellen Sie auf HUB-MBX-01 einen neuen Empfangsconnector, indem Sie das HUB-MBX-01_recv_connector.ps1-Skript ausführen, das Sie im Download für diesen Artikel finden.
  3. Erstellen Sie auf EDGE01 zwei neue Empfangsconnectors für die interne und externe Messagingkonnektivität, indem Sie das EDGE01_recv_connector.ps1-Skript ausführen.
  4. Erstellen Sie durch Ausführen des folgenden Befehls eine Abonnementdatei auf EDGE01:
    New-EdgeSubscription -FileName
    "c:\subscriptionfile.xml"
Kopieren Sie dann die entstandene Abonnementdatei in den Stammordner des Hub-Transportservers (c:\subscriptionfile.xml).
5. Stellen Sie sicher, dass der Pfad zur Abonnementdatei auf HUB-MBX-01 c:\subscriptionfile.xml ist, und führen Sie anschließend das HUB-MBX-01_complete_subscription.ps1-Skript aus. Dieses Skript importiert die Abonnementdatei für die Edge-Synchronisierung, ohne automatisch einen Sendeconnector zu erstellen. Es erstellt die Sendeconnectors für die Internetkonnektivität sowie die interne Konnektivität und repliziert die entstehende Konfiguration auf dem Edge-Transport-Server über Edge-Synchronisierung.
6. Überprüfen Sie die Konfiguration, indem Sie vom Internethost Testnachrichten als Contoso.User@contoso.com und Fabrikam.User@fabrikam.com an Administrator@adventureworks.com senden. Antworten Sie auf die empfangenen Nachrichten, um sicherzustellen, dass die eingehende und ausgehende Nachrichtenübermittlung funktioniert.
Es empfiehlt sich, die einzelnen Skriptdateien in Editor zu öffnen und die Cmdlets und Parameter, die diese Skripts für die Konfiguration verwenden, zu analysieren. Ausführliche Informationen zu diesen Cmdlets und Parametern finden Sie online in der Produktdokumentation für Exchange Server 2007.

Edge-Transport-Architektur
In diesem Abschnitt wird auf die Edge-Transport-Agents eingegangen, die seit der Installation der Edge-Transport-Serverfunktion darauf gewartet haben, dass sie jemand mit HELO oder EHLO begrüßt. Wenn Sie das Get-Transport-Agent-Cmdlet auf dem Edge-Transport-Server ausführen, werden die 11 Einträge angezeigt, die in Abbildung 3 aufgelistet sind. Alle Agents sind standardmäßig aktiviert, um mit den entsprechenden Einstellungen Messagingschutz zur Verfügung zu stellen.
Figure 3 Transport-Agents (Close Figure 3)

SMTP-Empfangs-Agents
Verbindungsfilter-Agent
Adressumschreibungs-Agent für eingehende Nachrichten
Edge-Regel-Agent
Inhaltsfilter-Agent
Absender-ID-Agent
Absenderfilter-Agent
Empfängerfilter-Agent
Protokollanalyse-Agent
Anlagenfilter-Agent
Routing-Agents
Adressumschreibungs-Agent für ausgehende Nachrichten
FSE-Routing-Agent
Im Get-Transport-Agent-Cmdlet und in Abbildung 3 werden die Agents in der Reihenfolge ihrer Priorität aufgelistet. Dabei handelt es sich jedoch nicht um die Reihenfolge, in der die Agents ihre Arbeit durchführen. Die Arbeitsreihenfolge hängt hauptsächlich von der Sequenz der SMTP-Empfangsereignisse und Routingereignisse ab, für die die Agents registriert sind. Um zu sehen, wie Agents und Ereignisse zusammenarbeiten, sehen Sie sich das Diagramm in Abbildung 4 an. Es zeigt, wie Transport-Agents in die Edge-Transport-Architektur integriert sind.
Abbildung 4 Transport-Agents innerhalb der Edge-Transport-Architektur
Abbildung 4 Transport-Agents innerhalb der Edge-Transport-Architektur
Transportereignisse finden in verschiedenen Phasen während der Nachrichtenverarbeitung statt, um zusätzlichen Code für die Spamfilterung, die Virenüberprüfung und andere Aufgaben aufzurufen. In diesem locker verbundenen und erweiterbaren Entwurf übernimmt der Edge-Transport-Prozess (Edge-Transport.exe) die Rolle der Ereignisquelle. Bei den Ereignishandlern bzw. den Transport-Agents handelt es sich um verwaltete Delegatobjekte, die auf Microsoft® .NET Framework 2.0 basieren und bei der Ereignisquelle registriert sind, um Rückrufbenachrichtigungen zu empfangen.
Abbildung 5 zeigt die Ereignisregistrierungen für alle Agents, die auf einem Edge-Transport-Server mit Forefront Security installiert sind. Diese Registrierungen sind zunächst vielleicht aufgrund der großen Anzahl an Agent-Registrierungen etwas schwierig zu sortieren. Wenn Sie den Get-TransportPipeline | Format-List-Befehl auf einem Edge-Transport-Server ausführen, können Sie die Registrierungen für jedes einzelne Transportereignis einfacher analysieren. Stellen Sie nur sicher, dass der Microsoft Exchange-Transportdienst (MSExchangeTransport.exe) ausgeführt wird und seit dem letzten Dienstneustart mindestens eine Nachricht über den Edge-Transport-Server gesendet wurde. Wie die Ausgabe zeigt, können sich mehrere Agents für den gleichen Ereignistyp registrieren, und jeder einzelne Agent kann sich für mehrere Ereignisse registrieren. Die Ereignisregistrierungen hängen lediglich von den Verarbeitungsanforderungen des entsprechenden Agents ab.
Abbildung 5 Ereignisregistrierungen für Transport-Agents
Abbildung 5 Ereignisregistrierungen für Transport-Agents
Eines der wichtigsten Ereignisse ist das OnSubmittedMessage-Routingereignis, das ausgelöst wird, wenn eine Nachricht die Übermittlungswarteschlange erreicht. Alle Nachrichten müssen diese Warteschlange durchlaufen, sei es, dass Sie über SMTP, das Dateisystem oder eine andere Methode empfangen wurden. Das Kategorisierungsmodul ist eine zentrale Komponente der Transportarchitektur von Exchange Server. Es ist für die Empfängerauflösung, die Nachrichtengabelung und das Routing sowie die Generierung der Benachrichtigung über den Zustellungsstatus (Delivery Status Notification, DSN) verantwortlich. Das OnSubmittedMessage-Ereignis ist deshalb eine perfekte Registrierungsmöglichkeit für Agents, die alle empfangenen Nachrichten verarbeiten müssen. Der FSE-Routing-Agent ist eine Forefront Security-Komponente, die für das OnSubmittedMessage-Ereignis registriert ist, um alle empfangenen Nachrichten an die Virenüberprüfungsmodule zu übergeben. Da der FSE-Routing-Agent für das OnSubmittedMessage-Ereignis registriert ist, kann keine Nachricht die Antiviruslösung umgehen.
Warum registrieren sich dann nicht alle Agents für das OnSubmittedMessage-Ereignis? Der Grund liegt darin, dass unerwünschte Nachrichten zum frühestmöglichen Zeitpunkt blockiert werden sollen, und zwar bevor der Server eine erfolgreiche Lieferung bestätigt. Andernfalls müssen Ihre Server möglicherweise 90 Millionen unerwünschte Nachrichten während eines Spam- oder Virusangriffs verarbeiten, die vielleicht 90 Millionen Unzustellbarkeitsberichte (Non-Delivery Reports, NDRs) generieren, was wiederum eine ernsthafte Bedrohung für Unbeteiligte darstellen könnte. Spam- und Virusangriffe verwenden fast immer gefälschte Absenderinformationen. Das Senden von Millionen von NDRs an Empfänger, von denen die ursprünglichen Nachrichten nicht erstellt wurden, ist nicht nur eine Verschwendung Ihrer Ressourcen und der Ressourcen der Zielorganisationen, sondern gibt böswilligen Benutzern auch die Gelegenheit, Mailüberflutungen und verteilte Denial-of-Service-Angriffe zu starten. Es ist zu Ihrem eigenen Schutz und dem anderer wichtig, schädliche Nachrichten frühzeitig aufzuhalten.
Um eine Nachricht effizient zu blockieren, muss ein Transport-Agent den SMTP-Nachrichtenaustausch mit dem Remotehost unterbrechen, bevor der Server den Empfang der Daten mit einem 250 OK-Statuscode bestätigt. Gemäß dem SMTP-Prinzip zur Speicherung und Weiterleitung kann Ihr Server alle empfangenen Daten sicher verwerfen, ohne NDRs zu generieren, wenn die Nachrichtenübermittlung nicht bestätigt wurde. Dies kann mit SMTP-Empfangs-Agents erreicht werden. Sie interagieren mit der SMTP-Sitzung, weil die Transportpipeline diese auf SMTP-Empfangsereignissen basierten Agents aufruft, während der Remotehost eine Verbindung zum Server herstellt, eine SMTP-Sitzung einrichtet, SMTP-Verben überträgt, Nachrichten sendet und die Verbindung beendet. (Die SMTP-Empfangsereignisse für jeden Schritt sind in Abbildung 6 aufgelistet.) Aufgrund der Möglichkeit, Nachrichten vor der Lieferung zurückzuweisen und die Verbindung zu Remote-SMTP-Hosts zu trennen, sind alle Antispam-Agents für Exchange Server 2007 als SMTP-Empfangs-Agents implementiert.
Figure 6 SMTP-Sitzungsereignisse (Close Figure 6)

Aktion | Verwandte Ereignisse
Verbindung mit Server herstellen | OnConnectEvent
SMTP-Sitzung einrichten | OnHeloCommand, OnEhloCommand, OnAuthCommand, OnEndOfAuthentication
SMTP-Verben übertragen | OnMailCommand, OnRcptCommand, OnDataCommand, OnNoopCommand, OnHelpCommand
Nachrichten absenden | OnEndOfHeaders, OnEndOfData
Befehle oder Nachrichten abweisen | OnReject
Verbindung zurücksetzen | OnRsetCommand
Verbindung beenden | OnDisconnect
Sie sollten den Unterschied zwischen SMTP-Empfangs-Agents und Routing-Agents hinsichtlich ihres Verarbeitungskontexts kennen. Während Routing-Agents vollständigen Zugriff auf die Nachrichteneigenschaften haben, sind SMTP-Empfangs-Agents kontextbezogener, da diese Agents mit der SMTP-Sitzung interagieren. Zum Beispiel kann ein Spamfilter erst auf Nachrichteneigenschaften reagieren, wenn der Remotehost die Nachricht tatsächlich übertragen hat. Folglich ist es wichtig, den Agent für das richtige SMTP-Empfangsereignis zu registrieren. Weitere Informationen enthalten Sie in der Randleiste „Entwicklung von Transport-Agents“.

Exchange-Ressourcen
  • Edge-Transport und Messagingschutz für Microsoft Exchange Server 2007 (Technisches Whitepaper in Microsoft IT Showcase)
  • Windows PowerShell-Skriptcenter
  • Exchange Server 2007-TechCenter
  • Microsoft Exchange-Teamblog „You Had Me From EHLO“

Bleiben Sie dran
Im nächsten Artikel werden die Transportarchitektur und die Testszenarios eingehender beleuchtet. In diesem Artikel wurden viele Themen angesprochen, von der Bereitstellung von Edge-Transport-Servern im Microsoft IT-Stil bis zu den internen Ereignissen, die in der Transportpipeline während der Nachrichtenverarbeitung ausgelöst werden. Im nächsten Artikel dieser zweiteiligen Reihe wird das Verhalten von Edge-Transport-Agents in einigen interessanten Testszenarios analysiert.
Ich empfehle Ihnen, in der Zwischenzeit die 90 Tage gültige Testversion von Microsoft Visual Studio 2005 Professional Edition herunterzuladen (go.microsoft.com/fwlink/?LinkId=98043) und die Erklärungen des Autors zur Kompilierung und Installation von Beispiel-Agents in Ihrer Testumgebung zu befolgen. Selbst wenn Sie kein Entwickler sind, dürften Sie bei diesen Aufgaben keine Schwierigkeiten haben. Angesichts der Tatsache, wie unkompliziert die Entwicklung benutzerdefinierter Agents in Exchange Server 2007 mit Visual Studio 2005 ist, würde es mich nicht überraschen, wenn die Anzahl der auf diesen Komponenten basierten Geschäftsanwendungen in Zukunft weiter wächst.

Kay Unkroth ist Unternehmer und bereits seit mehr als 15 Jahren als Supporttechniker, Systementwickler, Berater, Schulungsleiter und Autor für Microsoft-Servertechnologien tätig. Außerdem ist er Gründungsmitglied und Vorsitzender der Biblioso Corporation. Dieses Unternehmen spezialisiert sich auf verwaltete Dokumentations- und Lokalisierungsdienste.


 SQL Server: Optimieren der SQL&#160;Server-CPU-Leistung
SQL Server Zach Nichter

Optimieren der SQL Server-CPU-Leistung
Kurz zusammengefasst:
  • Behandlung von Problemen mit der Datenbankleistung
  • Überprüfen der Hardwareursachen
  • Verwenden von PerfMon zum Nachverfolgen von Datenbankengpässen
  • Auswerten der Abfrageleistung

Die Behandlung von Leistungsproblemen auf einem Datenbanksystem kann sehr aufwendig sein. Es ist wichtig zu wissen, wo nach den Fehlern zu suchen ist. Noch wichtiger ist es jedoch zu wissen, warum Ihr System auf diese Weise auf eine bestimmte Anforderung reagiert. Eine Anzahl von Faktoren kann sich auf die CPU-Nutzung
auf einem Datenbankserver auswirken: unter anderem Kompilierung und Neukompilierung von SQL-Anweisungen, fehlende Indexe, Multithreadvorgänge, Datenträger- und Speicherengpässe, Routinenwartung und ETL-Aktivität (Extract, Transform, Load). Die CPU-Nutzung ist an und für sich keine schlechte Sache, denn Arbeit auszuführen, ist der Zweck der CPU. Für eine stabile CPU-Nutzung muss vor allem sichergestellt werden, dass die CPU ihre Zeit damit verbringt, das zu verarbeiten, was Sie angeben, statt die Zyklen mit schlecht optimiertem Code oder schwerfälliger Hardware zu vergeuden.

Zwei Wege zum selben Ziel
Von einer höheren Ebene betrachtet, gibt es zwei Wege zum Erkennen von CPU-Leistungsproblemen. Die erste Möglichkeit ist, die Hardwareleistung des Systems zu überprüfen. Dadurch können Sie erkennen, wo Sie suchen müssen, wenn Sie den zweiten Weg wählen und die Abfrageeffizienz des Servers überprüfen. Dieser zweite Weg ist in der Regel effektiver, wenn es um das Erkennen von SQL Server™-Leistungsproblemen geht. Wenn Sie nicht genau wissen, wo Ihre Abfrageleistungsprobleme liegen, sollten Sie immer mit einer Bewertung der Systemleistung beginnen. Letzten Endes werden Sie in der Regel beide Wege gehen. Im Folgenden soll eine Grundlage gebildet werden, um beide Wege untersuchen zu können.

Bilden der Grundlage
Hyper-Threading
Hyper-Threading ist ein Thema, dessen ausführlichere Behandlung sich aufgrund der Art und Weise lohnt, in der es sich auf SQL Server auswirkt. Hyper-Threading bietet dem Betriebssystem genau genommen zwei logische Prozessoren für jeden physischen Prozessor. Im Grunde leiht es sich auf den physischen Prozessoren Zeit aus, sodass jeder Prozessor im Endeffekt besser genutzt wird. Die Intel-Website (intel.com/technology/platform-technology/hyper-threading/index.htm) beschreibt die Funktionsweise des Hyper-Threading weit ausführlicher.
Auf SQL Server-Systemen behandelt der DBMS eigentlich sein eigenes, äußerst effizientes Queuing und Threading zum Betriebssystem. Hyper-Threading dient also nur der Überlastung der physischen CPUs auf Systemen mit bereits starker CPU-Nutzung. Wenn SQL Server mehrere Anforderungen in die Warteschlange einreiht, um an mehreren Zeitplanungsmodulen zu arbeiten, muss das Betriebssystem genau genommen den Kontext der Threads auf den physischen Prozessoren hin- und herschalten, um die eingehenden Anforderungen zu erfüllen, selbst wenn sich die beiden logischen Prozessoren auf dem gleichen physischen Prozessor befinden. Wenn für „Kontextwechsel/s“ ein höherer Wert als 5000 pro physischen Prozessor angegeben wird, sollten Sie dringend erwägen, Hyper-Threading auf Ihrem System auszuschalten und die Leistung erneut zu testen.
Anwendungen mit einer starken CPU-Nutzung auf SQL Server können in seltenen Fällen Hyper-Threading effektiv verwenden. Testen Sie Ihre Anwendungen immer anhand von SQL Server, sowohl mit aktiviertem als auch deaktiviertem Hyper-Threading, bevor Sie auf Ihren Produktionssystemen Änderungen implementieren.

Ein High-End-Zweikernprozessor übertrifft leicht den RAM in einem Computer, der dadurch schneller wird als ein angeschlossenes Speichergerät. Eine gute CPU kann einen Durchsatz bewältigen, der ungefähr sechs Mal so groß ist wie der Durchsatz eines aktuellen Top-End-DDR2-Speichers und ungefähr zwei Mal so groß wie der eines Top-End-DDR3-Speichers. Der typische Speicherdurchsatz übertrifft den Durchsatz des schnellsten Fiber-Channel-Laufwerks um mehr als das Zehnfache. Festplatten hingegen können nur eine begrenzte Anzahl von IOPS (input/output operations per second, Eingabe/Ausgabevorgänge pro Sekunde) ausführen. Dies ist ein Wert, der völlig von der Anzahl der Suchen pro Sekunde abhängt, die ein Laufwerk durchführen kann. Es ist jedoch nicht typisch, dass nur ein einziges Speicherlaufwerk verwendet wird, um alle Speicheranforderungen auf Unternehmensdatenbanksystemen zu behandeln. Die meisten Setups von heute verwenden SANs (Storage Area Networks) auf Unternehmensdatenbankservern oder größere RAID-Gruppen, die das Problem mit dem Datenträger-E/A-Prozessor beseitigen oder minimieren können. Am wichtigsten ist es, daran zu denken, dass unabhängig davon, wie Ihr Setup aussieht, Datenträger- und Speicherengpässe die Leistung Ihrer Prozessoren beeinträchtigen können.
Aufgrund der E/A-Geschwindigkeitsunterschiede ist das Abrufen von Daten vom Datenträger viel teurer als das Abrufen von Daten vom Speicher. Eine Datenseite in SQL Server hat eine Grüße von 8 KB. Eine Erweiterung in SQL Server besteht aus acht 8 KB-Seiten, was 64 KB entspricht. Dieses Verständnis ist wichtig, denn wenn SQL Server eine bestimmte Datenseite vom Datenträger anfordert, wird nicht nur die Datenseite abgerufen, sondern die gesamte Erweiterung, in der sich die Datenseite befindet. Es gibt Gründe, warum dies eigentlich für SQL Server kostengünstiger ist, doch das soll hier nicht im Einzelnen behandelt werden. Eine bereits zwischengespeicherte Datenseite aus dem Pufferpool abzurufen, und das mit einer Höchstleistung, dauert in der Regel nicht länger als eine halbe Millisekunde. Das Abrufen einer einzigen Erweiterung vom Datenträger dauert in einer idealen Umgebung in der Regel zwischen 2 und 4 Millisekunden. Ich erwarte normalerweise, dass ein funktionstüchtiges stabiles Datenträgersubsystem zum Lesen zwischen 4 und 10 Millisekunden benötigt. Das Abrufen einer Datenseite vom Speicher ist gewöhnlich 4 bis 20 Mal schneller als das Abrufen einer Datenseite vom Datenträger.
Wenn SQL Server eine Datenseite anfordert, prüft es den im Speicher befindlichen Arbeitsspeicherpuffercache, bevor es die Datenseite auf dem Datenträgersubsystem sucht. Wenn die Datenseite im Pufferpool gefunden wird, ruft der Prozessor die Daten ab und führt dann die nötige Arbeit durch. Dies wird ein Softwareseitenfehler genannt. Softwareseitenfehler sind für SQL Server ideal, weil die Daten, die als Teil einer Anforderung abgerufen werden, sich im Puffercache befinden müssen, bevor sie verwendet werden können. Eine Datenseite, die im Puffercache nicht gefunden werden kann, muss vom Datenträgersubsystem des Servers abgerufen werden. Wenn das Betriebssystem die Datenseite vom Datenträger abrufen muss, wird dies als ein Hardwareseitenfehler bezeichnet.
Bei der Korrelation von Speicherleistung, Datenträgerleistung und CPU-Leistung ist ein gemeinsamer Nenner nützlich, um alles in die richtige Perspektive zu rücken: Durchsatz. In einem nicht so wissenschaftlichen Sinne gibt der Durchsatz an, wie viele Daten Sie in einer begrenzten Pipe unterbringen können.

1. Weg: Systemleistung
Es gibt wirklich nur ein paar Methoden, mit denen bestimmt werden kann, ob ein Server einen CPU-Engpass aufweist, und es gibt nicht viele mögliche Ursachen für eine starke CPU-Nutzung. Einige dieser Probleme können mithilfe von PerfMon oder einem ähnlichen Systemüberwachungstool nachverfolgt werden, während andere mithilfe von SQL Profiler oder ähnlichen Tools nachverfolgt werden. Eine andere Methode ist, SQL-Befehle über Query Analyzer oder SSMS (SQL Server Management Studio) zu verwenden.
Meine Philosophie beim Bewerten einer Systemleistung ist „zuerst allgemein anfangen, dann tiefer gehen“. Schließlich können Sie sich erst dann auf Problembereiche konzentrieren, wenn Sie sie identifiziert haben. Nachdem Sie die Gesamt-CPU-Nutzung mit einem Tool wie PerfMon ausgewertet haben, können Sie damit einige sehr einfache und leicht verständliche Leistungsindikatoren untersuchen.
Einer der bekanntesten Leistungsindikatoren ist „Prozessorzeit (%)“. Wenn Sie sich in PerfMon befinden, wird er hervorgehoben, sobald Sie das Fenster „Leistungsindikatoren hinzufügen“ öffnen. Prozessorzeit (%) ist die Zeitdauer, die die Prozessoren mit der Ausführung von Arbeit beschäftigt sind. Bei Prozessoren wird die Nutzung in der Regel als hoch eingestuft, wenn der Wert für den Großteil Ihrer Höchstbetriebsdauer 80 Prozent oder höher ist. Es ist ganz normal, und Sie sollten davon ausgehen, dass Sie in den Zeiten, wenn der Server nicht mit einer Nutzung von 80 Prozent arbeitet, Spitzen bis zu 100 Prozent erhalten.
Ein anderer Leistungsindikator, den Sie auswerten sollten, ist die Prozessor-Warteschlangenlänge. Sie finden ihn unter dem System-Leistungsobjekt in PerfMon. Die Prozessor-Warteschlangenlänge zeigt, wie viele Threads darauf warten, Arbeit auf der CPU durchzuführen. SQL Server verwaltet seine Arbeit durch Zeitplanungsmodule im Datenbankmodul, wo es seine eigenen Anforderungen einreiht und verarbeitet. Da SQL Server seine eigene Arbeit verwaltet, verwendet es nur einen einzigen CPU-Thread für jeden logischen Prozessor. Das heißt, es sollte nur eine kleine Anzahl von Threads vorhanden sein, die in der Prozessorwarteschlange darauf warten, Arbeit auf einem System durchzuführen, das für SQL Server vorgesehen ist. In der Regel sollte der Wert, den Sie erhalten, nicht mehr als fünf Mal so hoch wie die Anzahl physischer Prozessoren auf einem dedizierten SQL Server sein. Meiner Meinung nach ist jedoch mehr als zwei Mal bereits problematisch. Auf Servern, auf denen der DBMS ein System gemeinsam mit anderen Anwendungen verwendet, werden Sie dies zusammen mit den Leistungsindikatoren „Prozessorzeit (%)“ und „Kontextwechsel/s“ überprüfen wollen (später mehr zu Kontextwechsel), um zu bestimmen, ob Ihre anderen Anwendungen oder der DBMS auf einen anderen Server verschoben werden müssen.
Wenn das Einreihen von Prozessoren in Warteschlangen zusammen mit starker CPU-Nutzung auftritt, untersuche ich die Leistungsindikatoren „SQL-Kompilierungen/Sekunde“ und „Erneute SQL-Kompilierungen/Sekunde“ in SQL Server: SQL-Statistik-Leistungsobjekt (siehe Abbildung 1). Kompilieren und erneutes Kompilieren von Abfrageplänen erhöht die CPU-Nutzung eines Systems. Die Werte, die Sie erhalten, sollten nahezu Null sein, was die erneuten Kompilierungen angeht. Achten Sie jedoch auf Trends innerhalb Ihrer Systeme, um das Standardverhalten Ihres Servers und die Anzahl der Standardkompilierungen zu bestimmen. Erneute Kompilierungen können nicht immer vermieden werden, doch Abfragen und gespeicherte Prozeduren können optimiert werden, sodass erneute Kompilierungen verringert und Abfragepläne wiederverwendet werden können. Vergleichen Sie diese Werte mit den tatsächlichen SQL-Anweisungen, die in das System kommen, mithilfe von „Batchanforderungen/Sekunde“, einem ebenfalls in SQL Server verfügbaren Leistungsindikator: SQL-Statistik-Leistungsobjekt. Wenn die Kompilierungen und erneuten Kompilierungen pro Sekunde eine hohen prozentualen Anteil der in das System kommenden Batchanforderungen darstellen, dann sollte dieser Bereich überprüft werden. In einigen Situationen kann es vorkommen, dass SQL-Entwickler nicht verstehen, wie oder warum ihr Code zu dieser Art von Systemressourcenproblemen beiträgt. Weiter unten werde ich einige Verweise bereitstellen, um Ihnen zu helfen, diese Art von Aktivität einzuschränken.
Abbildung 1 Auswählen der zu überwachenden Leistungsindikatoren
Abbildung 1 Auswählen der zu überwachenden Leistungsindikatoren
Überprüfen Sie in PerfMon außerdem den Leistungsindikator „Kontextwechsel/s“ (siehe Abbildung 2). Er teilt Ihnen mit, wie oft Threads aus den Zeitplanungsmodulen des Betriebssystems (nicht den SQL-Zeitplanungsmodulen) herausgenommen werden müssen, um andere wartende Threads zu bearbeiten. Oft sind Kontextwechsel viel häufiger auf Datenbanksystemen zu finden, die gemeinsam mit anderen Anwendungen wie IIS oder anderen Herstelleranwendungs-Serverkomponenten verwendet werden. Der Schwellenwert, den ich für Kontextwechsel/s verwende, ist ungefähr 5000 Mal so groß wie die Anzahl der Prozessoren im Server. Dieser Wert kann auch auf Systemen hoch sein, auf denen Hyper-Threading aktiviert ist und die gleichzeitig einen mittleren bis hohen Wert für die CPU-Nutzung aufweisen. Wenn die CPU-Nutzung und der Kontextwechsel regelmäßig ihre Schwellenwerte überschreiten, zeigt dies einen CPU-Engpass an. Falls dies regelmäßig vorkommt und Ihr System veraltet ist, benötigen Sie mehr oder schnellere CPUs. Weitere Informationen finden Sie in der Randleiste „Hyper-Threading“.
Figure 2 Zu beobachtende Leistungsindikatoren (Close Figure 2)

Leistungsindikatoren | Leistungsindikatorobjekt | Schwellenwert | Hinweise
Prozessorzeit (%) | Prozessor | > 80% | Zu den möglichen Ursachen gehören ungenügender Arbeitsspeicher, geringe Wiederverwendungsrate für Abfragepläne, nicht optimierte Abfragen.
Kontextwechsel/s | System | > 5000 x Prozessoren | Zu den möglichen Ursachen gehören andere Anwendungen auf dem Server, das Ausführen mehr als einer Instanz von SQL Server auf dem gleichen Server, aktiviertes Hyper-Threading.
Prozessor-Warteschlangenlänge | System | > 5 x Prozessoren | Zu den möglichen Ursachen gehören andere Anwendungen auf dem Server, große Anzahl von Kompilierungen oder erneuten Kompilierungen, das Ausführen mehr als einer Instanz von SQL Server auf dem gleichen Server.
SQL-Kompilierungen/Sekunde | SQLServer:SQL-Statistik | Trend | Vergleich mit Batchanforderungen/Sekunde
Erneute SQL-Kompilierungen/Sekunde | SQLServer:SQL-Statistik | Trend | Vergleich mit Batchanforderungen/Sekunde
Batchanforderungen/Sekunde | SQLServer:SQL-Statistik | Trend | Vergleichen Sie mit Kompilierungen und erneuten Kompilierungen pro Sekunde.
Lebenserwartung von Seiten | SQLServer:Puffer-Manager | < 300 | Potenzial für ungenügenden Arbeitsspeicher.
Verzögerte Schreibvorgänge/Sekunde | SQLServer:Puffer-Manager | Trend | Potenzial für Leerungen umfangreicher Datencaches oder für ungenügenden Arbeitsspeicher.
Prüfpunkte/Sekunde | SQLServer:Puffer-Manager | Trend | Bewerten Sie die Prüfpunkte anhand von PLE und verzögerter Schreibvorgänge/Sekunde
Cachetrefferquote: SQL-Pläne | SQLServer:Plancache | < 70% | Zeigt eine niedrige Wiederverwertungsrate für Abfragepläne an.
Puffercache-Trefferquote | SQLServer:Puffer-Manager | < 97% | Potenzial für ungenügenden Arbeitsspeicher.
Der SQL Server Lazy Writer (in SQL Server 2000) bzw. der Ressourcen-Monitor (wie er in SQL Server 2005 genannt wird) ist ein weiterer Bereich, der bei einer starken CPU-Nutzung überprüft werden muss. Das Leeren der Puffer und der Prozedurcaches kann die CPU-Zeit durch den Ressourcenthread namens „Ressourcen-Monitor“ verlängern. Der Ressourcen-Monitor ist ein SQL Server-Prozess, der bestimmt, welche Seiten behalten und welche vom Pufferpool auf den Datenträger geleert werden müssen. Jede Seite im Puffer und die Prozedurcaches werden von Anfang an mit Kosten versehen, die für die Ressourcen stehen, die beim Platzieren der Seite in den Cache verbraucht werden. Dieser Kostenwert wird bei jedem Scannen des Ressourcen-Monitors verringert. Wenn eine Anforderung Cacheplatz benötigt, werden die Seiten auf Grundlage der Kosten, die mit den einzelnen Seiten verbunden sind, aus dem Speicher geleert. Dabei werden die Seiten mit den niedrigsten Werten als Erstes geleert. Die Aktivität des Ressourcen-Monitors kann mithilfe des Leistungsindikators „Verzögerte Schreibvorgänge/Sekunde“ in SQL Server nachverfolgt werden. Puffer-Manager-Objekt in PerfMon. Sie sollten nachverfolgen, wie dieser Wert dazu neigt zu bestimmen, welcher Schwellenwert auf Ihrem System typisch ist. Dieser Leistungsindikator wird in der Regel zusammen mit den Leistungsindikatoren „Lebenserwartung von Seiten“ und „Prüfpunkte/Sekunde“ überprüft, um zu bestimmen, ob der Arbeitsspeicher ungenügend ist.
Der Leistungsindikator „Lebenserwartung von Seiten“ (Page Life Expectancy, PLE) hilft beim Ermitteln der Speicherauslastung. Der PLE-Leistungsindikator zeigt an, wie lange sich eine Datenseite im Puffercache aufhält. 300 Sekunden ist der in der Branche anerkannte Schwellenwert für diesen Leistungsindikator. Jeder Durchschnittswert, der längere Zeit unter 300 Sekunden liegt, zeigt an, dass die Seiten zu häufig aus dem Speicher geleert werden. Wenn dies geschieht, führt es dazu, dass der Ressourcen-Monitor stärker belastet wird, was wiederum mehr Aktivität auf die Prozessoren verlagert. Der PLE-Leistungsindikator sollte zusammen mit dem Prüfpunkte/Sekunde-Leistungsindikator bewertet werden. Wenn im System ein Prüfpunkt auftritt, werden die problematischen Datenseiten im Puffercache auf den Datenträger geleert. Dadurch fällt der PLE-Wert. Im Grunde ist der Ressourcen-Monitor-Prozess der Mechanismus, der diese Seiten auf den Datenträger leert. Während diese Prüfpunkte ausgeführt werden, müssen Sie also damit rechnen, dass der Wert für Verzögerte Schreibvorgänge/Sekunde steigt. Wenn Ihr PLE-Wert sofort nach Abschluss eines Prüfpunkts steigt, können Sie dieses vorläufige Symptom ignorieren. Wenn Sie jedoch feststellen, dass der PLE-Schwellenwert regelmäßig unterschritten wird, sieht es sehr danach aus, dass der zusätzliche Speicher Ihre Probleme verringern und dabei einige Ressourcen für die CPU freigeben wird. All diese Leistungsindikatoren sind in SQL Server verfügbar: Puffer-Manager-Leistungsobjekt.

2. Weg: Abfrageleistung
SP-Verfolgung
Bei der Ablaufverfolgung Ihrer SQL Server-Anwendung lohnt es sich, die gespeicherten Prozeduren kennenzulernen, die für die Verfolgung verwendet werden. Das Verwenden der grafischen Benutzeroberfläche (SQL Server Profiler) für die Verfolgung kann die Systemauslastung um 15 bis 25 Prozent erhöhen. Wenn Sie gespeicherte Prozeduren in Ihrer Verfolgung verwenden können, kann dies zu einer Verringerung um etwa die Hälfte führen.
Wenn ich weiß, dass in meinem System ein Engpass aufgetreten ist, und herausfinden will, welche der aktuellen SQL-Anweisungen Probleme auf meinem Server verursachen, führe ich die unten angeführte Abfrage aus. Diese Abfrage hilft mir, einzelne Anweisungen und die von ihnen genutzten Ressourcen sowie die Anweisungen anzuzeigen, die für die Verbesserungen der Leistung überprüft werden müssen. Weitere Informationen zu SQL-Ablaufverfolgungen finden Sie unter msdn2.microsoft.com/ms191006.aspx.
SELECT
    substring(text,qs.statement_start_offset/2
        ,(CASE
            WHEN qs.statement_end_offset = -1 THEN len(convert(nvarchar(max), text)) * 2
            ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2)
    ,qs.plan_generation_num as recompiles
    ,qs.execution_count as execution_count
    ,qs.total_elapsed_time - qs.total_worker_time as total_wait_time
    ,qs.total_worker_time as cpu_time
    ,qs.total_logical_reads as reads
    ,qs.total_logical_writes as writes
FROM sys.dm_exec_query_stats qs
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
    LEFT JOIN sys.dm_exec_requests r
        ON qs.sql_handle = r.sql_handle
ORDER BY 3 DESC

Abfragepläne werden ausgewertet, optimiert, kompiliert und im Prozedurcache platziert, wenn eine neue Abfrage an SQL Server gesendet wird. Jedes Mal, wenn eine Abfrage zum Server gesendet wird, wird der Prozedurcache überprüft, um so einen Abfrageplan mit einer Anforderung zu paaren. Wenn keiner gefunden wird, erstellt SQL Server einen neuen Plan dafür, was einen möglicherweise sehr aufwendigen Vorgang darstellt.
Hier sind einige Überlegungen für die Optimierung der T-SQL-CPU:
  • Wiederverwenden des Abfrageplan
  • Verringern von Kompilierungen und erneuten Kompilierungen
  • Sortieren von Vorgängen
  • Fehlerhafte Verknüpfungen
  • Fehlende Indexe
  • Tabellen-/Indexscans
  • Funktionsverwendung in Select- und Where-Klauseln
  • Multithreadvorgänge
Im Folgenden soll alles wieder perspektivisch zurechtgerückt werden. SQL Server ruft in der Regel Daten sowohl aus dem Speicher als auch vom Datenträger ab. Oft wird dabei mit mehr als nur einer Seite gearbeitet. In den meisten Fällen arbeiten mehrere Teile einer Anwendung an einem Datensatz und führen dabei mehrere kleinere Abfragen aus oder verknüpfen Tabellen, um eine vollständige Ansicht relevanter Daten bereitzustellen. In OLAP-Umgebungen kann es sein, dass Ihre Anwendungen Millionen von Zeilen aus einer oder zwei Tabellen abrufen, damit Sie die Daten für einen regionalen Verkaufsbericht zusammentragen und zusammenfassen können. In solchen Situationen kann das Zurückgeben von Daten in Millisekunden gemessen werden, falls sich die Daten im Speicher befinden. Doch aus diesen Millisekunden können Minuten werden, wenn dieselben Daten von der Festplatte und nicht aus dem Arbeitsspeicher abgerufen werden.
Das erste Beispiel ist eine Situation mit einer hohen Zahl von Transaktionen, in der die Planwiederverwendung von der Anwendung abhängt. Eine geringe Planwiederverwendung führt zu einer großen Anzahl von Kompilierungen von SQL-Anweisungen, die wiederum die CPU-Verarbeitung stark ankurbeln. Im zweiten Beispiel kann die übermäßige Systemressourcennutzung dazu führen, dass die CPU eines Systems zu aktiv ist, da vorhandene Daten ständig vom Puffercache geleert werden müssen, um für die große Menge neuer Datenseiten Platz zu machen.
Stellen Sie sich ein Transaktionssystem vor, in dem eine SQL-Anweisung, wie unten angeführt, innerhalb von 15 Minuten 2000 Mal ausgeführt wird, um Kartonversandinformationen abzurufen. Ohne die Wiederverwendung von Abfrageplänen könnte dies theoretisch zu individuellen Ausführungszeiten von etwa 450 Millisekunden pro Anweisung führen. Falls nach der anfänglichen Ausführung der gleiche Abfrageplan verwendet wird, könnte jede nachfolgende Abfrage wahrscheinlich in ungefähr 2 Millisekunden ausgeführt werden, was die gesamte Ausführungszeit auf ungefähr 5 Sekunden reduziert.
USE SHIPPING_DIST01;
SELECT
    Container_ID
    ,Carton_ID
    ,Product_ID
    ,ProductCount
    ,ModifiedDate
FROM Container.Carton
WHERE Carton_ID = 982350144;
Das Wiederverwenden von Abfrageplänen ist für die ideale Leistung auf Transaktionssystemen wichtig und wird in den meisten Fällen durch das Parametrisieren Ihrer Abfragen oder gespeicherten Prozeduren erreicht. Hier sind einige ausgezeichnete Ressourcen, in denen Sie Informationen zum Wiederverwenden von Abfrageplänen finden:
  • Batchkompilierung, erneute Kompilierung und Probleme mit dem Zwischenspeichern von Abfrageplänen in SQL Server 2005 (microsoft.com/technet/prodtechnol/sql/2005/recomp.mspx)
  • Optimieren der gespeicherten Prozeduren von SQL Server zur Vermeidung erneuter Kompilierungen (sql-server-performance.com/rd_optimizing_sp_recompiles.asp)
  • Erneute Kompilierung von Abfragen in SQL Server 2000 (msdn2.microsoft.com/aa902682.aspx)
Eine weitere nützliche Ressource voller Informationen sind die SQL Server 2005-DMVs (dynamische Verwaltungssichten, Dynamic Management Views). Bei starker CPU-Nutzung gibt es einige DMVs, die ich verwende, um zu bestimmen, ob die CPU korrekt verwendet wird.
Einer der dynamischen Verwaltungssichten, die ich überprüfe, ist sys.dm_os_wait_stats. Sie ermöglicht den DBAs das Bestimmten der einzelnen Ressourcentypen oder -funktionen, die SQL Server verwendet. Außerdem misst sie die Dauer der durch diese Ressource verursachten Systemwartezeit. Die Leistungsindikatoren in diesem DMV sind kumulativ. Das heißt, dass Sie für eine neu ansetzende Untersuchung, welche Ressourcen sich möglicherweise auf verschiedene Systembereiche auswirken, zuerst den Befehl „DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR)“ ausführen müssen, um alle Leistungsindikatoren nach dem Überprüfen aller ungeklärten Probleme zurückzusetzen. Die DMV „sys.dm_os_wait_stats“ entspricht dem Befehl zur Überprüfung der Datenbankkonsistenz „DBCC SQLPERF(WAITSTATS)“ in SQL Server 2000. Weitere Informationen zu den verschiedenen Wartezeitentypen erhalten Sie in der SQL Server-Onlinedokumentation unter msdn2.microsoft.com/ms179984.aspx.
Es ist wichtig zu wissen, dass in einem System Wartezeiten auch bei optimalem Betrieb normal sind. Sie müssen nur bestimmen, ob die Wartezeiten von einem CPU-Engpass bedingt werden. Was die Gesamtwartezeit betrifft, sollten die Signalwartezeiten so kurz wie möglich sein. Die Zeitdauer, die eine bestimmte Ressource auf eine Prozessorressource wartet, kann einfach dadurch bestimmt werden, dass die Signalwartezeit von der gesamten Wartezeit abgezogen wird. Dieser Wert sollte nicht größer als ungefähr 20 Prozent der gesamten Wartezeit sein.
Die DMV „sys.dm_exec_sessions“ zeigt alle offenen Sitzungen auf dem SQL Server an. Diese dynamische Verwaltungssicht stellt eine Zusammenfassung der Leistung der einzelnen Sitzungen und der gesamten Arbeit bereit, die jede Sitzung von Anfang an durchgeführt hat. Dazu gehört die Gesamtzeit, die eine Sitzung gewartet hat, die gesamte CPU-Nutzung, die Speichernutzung und eine Zählung der Lese- und Schreibvorgänge. Die DMV informiert Sie außerdem über die Anmeldung, die Anmeldezeit, den Hostcomputer und das letzte Mal, dass die Sitzung eine Anforderung an SQL Server gesendet hat.
Mithilfe der DMV „sys.dm_exec_sessions“ sind Sie in der Lage, nur die aktiven Sitzungen zu bestimmen. Wenn Sie also einen hohen Wert für die CPU-Nutzung erhalten, sollten Sie zuerst hier nachsehen. Überprüfen Sie zuerst die Sitzungen, die eine hohe CPU-Zahl aufweisen. Bestimmen Sie die Anwendung und den Benutzer, der die Arbeit durchgeführt hat. Gehen Sie dann ins Detail. Das Koppeln der DMV „sys.dm_exec_sessions“ mit der DMV „sys.dm_exec_requests“ kann viele der Informationen bereitstellen, die anhand der gespeicherten Prozeduren „sp_who“ und „sp_who2“ verfügbar sind. Wenn Sie diese Daten zusammen mit der dynamischen Verwaltungsfunktion (dynamic management function, DMF) namens „sys.exec_sql_text“ über die Spalte „sql_handle“ verknüpfen, können Sie die von der Sitzung derzeit ausgeführte Abfrage abrufen. Der Ausschnitt in Abbildung 3 illustriert, wie diese Daten in einen Zusammenhang gebracht werden, um zu bestimmen, was derzeit auf einem Server geschieht.
Figure 3 Bestimmen der Serveraktivität (Close Figure 3)
SELECT es.session_id
    ,es.program_name
    ,es.login_name
    ,es.nt_user_name
    ,es.login_time
    ,es.host_name
    ,es.cpu_time
    ,es.total_scheduled_time
    ,es.total_elapsed_time
    ,es.memory_usage
    ,es.logical_reads
    ,es.reads
    ,es.writes
    ,st.text
FROM sys.dm_exec_sessions es
    LEFT JOIN sys.dm_exec_connections ec
        ON es.session_id = ec.session_id
    LEFT JOIN sys.dm_exec_requests er
        ON es.session_id = er.session_id
    OUTER APPLY sys.dm_exec_sql_text (er.sql_handle) st
WHERE es.session_id > 50    -- < 50 system sessions
ORDER BY es.cpu_time DESC
Meiner Meinung nach hilft diese Anweisung zu bestimmen, auf welche Anwendungen der Schwerpunkt gelegt werden sollte. Wenn ich die CPU, den Speicher und die Lese- und Schreibvorgänge für alle Sitzungen innerhalb einer Anwendung vergleiche und erkenne, dass die CPU-Ressource viel stärker beansprucht wird als andere genutzte Ressourcen, setze ich als Erstes bei diesen SQL-Anweisungen an.
Um SQL-Anweisungen dem Verlauf entsprechend für eine Anwendung nachzuverfolgen, verwende ich SQL Server-Ablaufverfolgungen. Sie erhalten diese entweder durch das Tool „SQL Server Profiler“ oder durch das Ablaufverfolgungssystem der gespeicherten Prozeduren. So können Sie bewerten, was vor sich geht. (Siehe die Randleiste „SP-Verfolgung“ für weitere Informationen zu diesem Thema.) Profiler sollte bei Anweisungen mit starker CPU-Nutzung sowie bei Hash- und Sortierwarnungen, Cachefehlern und anderen Warnzeichen überprüft werden. Dies kann Ihnen helfen, die Fehlersuche auf bestimmte SQL-Anweisungen oder einen bestimmten Zeitraum, der für eine starke Ressourcennutzung verantwortlich ist, einzuengen. Mit Profiler können Sie Folgendes nachverfolgen: den SQL-Anweisungstext, Ausführungspläne, die CPU-Nutzung, die Speichernutzung, logische Lese- und Schreibvorgänge, das Zwischenspeichern von Abfrageplänen, erneute Kompilierungen, die Entfernung von Abfrageplänen aus dem Cache, Cachefehler, Scans von Tabellen und Indexen, fehlende Statistiken und viele andere Ereignisse.
Nachdem ich entweder von den gespeicherten sp_trace-Prozeduren oder vom SQL Server Profiler Daten gesammelt habe, verwende ich gewöhnlich eine Datenbank, die mit den Ablaufverfolgungsdaten gefüllt wird – entweder nachträglich oder durch die entsprechende Einstellung der Ablaufverfolgung, sodass sie in die Datenbank schreibt. Das nachträgliche Auffüllen der Datenbank kann mithilfe der SQL Server-Systemfunktion „fn_trace_getinfo“ erfolgen. Dieser Ansatz hat den Vorteil, dass ich die Daten auf verschiedene Art und Weise abfragen und sortieren kann, um zu sehen, welche SQL-Anweisungen die CPU am meisten beansprucht haben oder welche die meisten Lesevorgänge aufweisen. Außerdem kann ich zählen, wie viele erneute Kompilierungen stattgefunden haben und vieles andere. Hier ist ein Beispiel, in dem veranschaulicht wird, wie diese Funktion verwendet wird, um eine Tabelle mit einer Profilerablaufverfolgungsdatei zu laden. Die Standardeinstellung gibt an, dass alle Ablaufverfolgungsdateien für diese Ablaufverfolgung in der Reihenfolge geladen werden, in der sie erstellt wurden:
SELECT * INTO trc_20070401
FROM fn_trace_gettable('S:\Mountpoints\TRC_20070401_1.trc', default);
GO

Zusammenfassung
Wie Sie gesehen haben, deutet eine starke CPU-Nutzung nicht unbedingt darauf hin, dass ein CPU-Engpass vorliegt. Hinter einer starken CPU-Nutzung kann sich eine Reihe von anderen Anwendungs- oder Hardwareengpässen verbergen. Nachdem Sie erkannt haben, dass eine starke CPU-Nutzung vorliegt, obwohl Ihre anderen Leistungsindikatoren stabile Werte aufweisen, können Sie anfangen, die Ursache innerhalb des Systems zu suchen, und eine Lösung herausarbeiten (sei es der Erwerb weiterer CPUs oder das Optimieren Ihres SQL-Codes). Welchen Weg Sie auch einschlagen, geben Sie nicht auf. Mit den Tipps, die in diesem Artikel bereitgestellt werden, sowie etwas Praxis und Recherche ist das Optimieren der CPU-Nutzung in SQL Server ein erreichbarer Ausführungsplan.

Zach Nichter ist SQL Server-Experte und verfügt über mehr als 10 Jahre Erfahrung in diesem Bereich. Er hat bereits mehrere SQL Server-Supportrollen innegehabt, einschließlich DBA, Teamleiter, Manager und Berater. Derzeit ist Zach Nichter bei Levi Strauss & Co. als DBA-Architekt tätig. Der Schwerpunkt seiner Tätigkeit liegt im Bereich der Leistung, Überwachung und Architektur von SQL Server und in anderen strategischen Initiativen. Darüber hinaus ist er der Autor eines Videoblogs, der unter www.sqlcatch.com


 Mitteilung der Redaktion: Das Beste steht noch bevor
Mitteilung der Redaktion
Das Beste steht noch bevor
Joshua Hoffman

Ich möchte meine erste Anmerkung als Redakteur mit einer Rückblende beginnen. Eine Rückblende mag zwar zu diesem frühen Zeitpunkt als schlechtes Vorzeichen gelten, doch das soll mich nicht davon abhalten.
Die zwei Eröffnungsausgaben des TechNet Magazins im Sommer 2005 wurden sehr gut aufgenommen. Es war offensichtlich an der Zeit, IT-Experten regelmäßig hochqualitativen technischen Inhalt zur Verfügung zu stellen. Joshua Trupin, unser leitender Redakteur, und Stephen Toub (damals technischer Redakteur unserer Partnerveröffentlichung MSDN Magazin) hatten großartige Arbeit geleistet, indem sie ein Expertenteam zusammenstellten und die ersten Ausgaben planten. Beide arbeiteten damals dennoch hauptberuflich in anderen Jobs.
So trat ich dem Team als neuer technischer Redakteur bei. Ich wusste die bisherige Leistung der beiden sowie das in mich gesetzte Vertrauen wirklich zu schätzen. Die Herausgabe eines Magazins ist nämlich nicht zu unterschätzen. Ich habe einen reinen IT-Hintergrund. In den vier Jahren davor war ich als Experte für Microsoft Consulting Services tätig. Folglich besaß ich relativ wenige Kenntnisse im Publishing. Meine Leseliste war endlos. Die Planung von drei Ausgaben musste sofort in Angriff genommen werden. Es gab neue Teamkollegen, Autoren, technische Prüfer, Geschäftspartner und selbstverständlich Leser, die ich alle erst noch kennenlernen musste. Vor allem aber waren da die Drucktermine, die sich nicht verlegen ließen (eine schwierige Vorstellung für einen langjährigen Microsoft-Mitarbeiter, wie Sie sich sicher vorstellen können).
Das Team hat mich erstklassig aufgenommen, mir meine Eigenheiten nachgesehen und mich größtenteils gewähren lassen. Diese Unterstützung hat sich entscheidend auf die Ausführung meiner Arbeit ausgewirkt. Die Autoren, Prüfer, Partner und Sie – unsere Leser – tragen alle dazu bei, dass sich dieser Job für mich zu einer faszinierenden, herausfordernden und zutiefst befriedigenden Aufgabe entwickelt hat, und ich freue mich immer wieder, so viele neue Freunde gewonnen zu haben. Ich bin stolz darauf, was dieses Team in den vergangenen zwei Jahren alles vollbracht hat. Als neuer Chefredakteur freue ich mich jedoch noch mehr auf das, was auf uns zukommt.
Dieses Magazin hat eine einzige Mission, und sie besteht darin, IT-Experten mit Microsoft-Produkten und -Technologien vertraut zu machen, damit sie erfolgreich damit umgehen können (davon hängt im Endeffekt unsere Bezahlung ab). Sie haben uns in der Vergangenheit mitgeteilt, was wir gut gemacht haben und, noch wichtiger, wo Verbesserungen angebracht sind. Wir nehmen dieses Feedback sehr ernst. In den nächsten Monaten und Jahren werden wir weitere Verbesserungen vornehmen. Wir werden neue Autoren aufnehmen und Artikel unter neuen Rubriken veröffentlichen. Weiterhin soll unsere Onlineplattform mit neuem Inhalt und neuen Medien verbessert werden, sodass Sie sich auf die für Sie bestmögliche Art und Weise über Neuigkeiten informieren können. All dies ist jedoch nur mit Ihrem fortlaufenden Feedback möglich. Teilen Sie uns mit, was für Sie funktioniert und was nicht, und auf welche Themen wir uns konzentrieren sollten. So können Sie als Leser entscheidenden Einfluss auf das Magazin nehmen. Senden Sie eine E-Mail an tnmag@microsoft.com, und teilen Sie uns Ihre Meinung mit. – Joshua Hoffman

Unser Dank gilt folgenden technischen Experten von Microsoft: Omesh Desai, Raja Ganjikunta, Saleem Hakani, Justin Hall, Michael Murgolo, John Orefice, Jim Truher, Marc Umeno, Jeff Wettlaufer, Buck Woody und Minxiao Zhou.


 Toolbox: Neue Produkte f&#252;r IT-Experten
Toolbox
Neue Produkte für IT-Experten
Greg Steen

Leistungsfähigere Skripterstellung
PowerShell Analyzer
www.pwershellanalyzer.com
Es wird viel über Windows PowerShell™ geredet, und das mit gutem Grund. Falls Sie noch keine Gelegenheit hatten, diese Skriptsprache der nächsten Generation auszuprobieren, sollten Sie dies unbedingt nachholen. Diejenigen unter Ihnen, die auf Microsoft® Exchange 2007 aktualisiert haben, werden rasch feststellen, dass die neue Exchange-Verwaltungsshell auf Windows PowerShell beruht und Sie damit alles tun können, was mit der Exchange-Verwaltungskonsole möglich ist, aber in diesem Fall über die Befehlszeile, was sich hervorragend dazu eignet, ständig wiederkehrende Aufgaben zu automatisieren. Leider dauert es u. U. ein bisschen, sich die Syntax und die Semantik anzueignen. Genau an dieser Stelle kommt jetzt der PowerShell Analyzer von ShellTools ins Spiel.
Bei dieser Anwendung handelt es sich im Grunde um eine IDE zum Schreiben und Debuggen von Windows PowerShell-Skripts. Doch im Gegensatz zu einem herkömmlichen Zyklus des Schreibens, Kompilierens und Testens belässt diese Anwendung die Aufmerksamkeit des Administrators bei der Tastatur und bietet Ihnen mit einem Windows PowerShell-Runspace Echtzeitinteraktivität. PowerShell Analyzer ermöglicht Ihnen, entweder zeilenweise Befehle einzugeben oder in einem Editor im unteren Abschnitt der Benutzeroberfläche Windows PowerShell-Skripts zu erstellen, zu bearbeiten und auszuführen. Beide Verfahrensweisen bieten Ihnen eine einfache Codevervollständigung, was Ihnen bei den zahlreichen Parametern der Cmdlets eine große Hilfe sein wird. (Falls Sie Windows PowerShell noch nicht kennen: Cmdlets sind abstrakte, aufgabenbezogene, parametrisierte Befehle.)
Als zusätzliche Hilfe stellt PowerShell Analyzer eine Registerkarte für den Schnellzugriff bereit, auf der für jedes Cmdlet ausführliche Beschreibungen, die Syntax, Parametererklärungen und Beispiele angezeigt werden. Darüber hinaus sind Verweise auf Windows PowerShell-Anbieter, die verfügbaren integrierten Hilfedateien und die kurzen Cmdlet-Aliase vorhanden.
Wenn Sie mit Windows PowerShell Befehle ausführen, werden statt der auf dem Bildschirm sichtbaren Textergebnisse tatsächlich Microsoft .NET Framework-Objekte zurückgegeben. PowerShell Analyzer erlaubt Ihnen, die Eigenschaften der zurückgegebenen Ergebnisse einzulesen und sie an eine Reihe von „Schnellansichten“ zu übergeben. Diese Schnellansichten ermöglichen Ihnen, mit den Objekten zu interagieren, um beispielsweise XML-Daten strukturartig zu untersuchen oder die Daten in einer sortier- und gruppierbaren Tabellenansicht anzuzeigen, und Sie können auch mehrere verschiedene Diagramme generieren, um das zurückgegebene Dataset visuell darzustellen. Natürlich sind nicht für jeden Befehl oder jedes Skript sämtliche dieser Optionen verfügbar, aber in den Fällen, in denen sie zur Verfügung stehen, bieten sie Ihnen einen praktischen Satz von Darstellungsmöglichkeiten für Ihre Daten, die Sie anschließend zur Wiederverwendung speichern oder exportieren können.
PowerShell Analyzer ermöglicht Ihnen auch, mit mehreren Runspaces gleichzeitig zu arbeiten und problemlos zwischen verschiedenen Aufgaben zu wechseln. Darüber hinaus stellt Ihnen das Editorfenster Stile zum Gliedern von Code und anpassbare Stile zum Hervorheben von Code zur Verfügung, die Ihnen helfen, Ihre Skripts lesbarer zu gestalten.
Wenn Sie vorhaben, mit Windows PowerShell zu arbeiten, wird Ihnen ein Tool wie PowerShell Analyzer die Aufgabe, Ihre Skripts zu erstellen, zu bearbeiten und zu debuggen und Ihre Daten visuell darzustellen, beträchtlich vereinfachen.

Preis: 129 $ (direkt) für eine Einzellizenz.
Abbildung von PowerShell
Abbildung von PowerShell

Defragmentieren von Datenträgern
Disk Defrag von Auslogics
www.auslogics.com/disk-defrag
Je mehr Sie mit Ihrer Festplatte arbeiten, desto stärker werden die auf dieser Festplatte gespeicherten Dateien fragmentiert. Das Erstellen und Löschen von Dateien, das Installieren und Entfernen von Anwendungen und sogar das Generieren temporärer Zwischenspeicherungen und temporärer Dateien auf der Festplatte tragen zu dieser Fragmentierung bei. Zudem kann die Fragmentierungsrate drastisch ansteigen, wenn der auf dem Laufwerk verfügbare freie Speicherplatz begrenzt ist, da in diesem Fall neue Dateien auf die noch verfügbaren „Lücken“ auf einem bereits größtenteils genutzten Speichermedium verteilt werden. Diese ganze Fragmentierung führt zu einer Verlangsamung der Systemleistung.
Natürlich weiß jeder, dass bereits Defragmentierungstools in die aktuellen Windows®-Versionen integriert sind. Doch wenn Sie nach einer speziellen Option suchen oder vor kurzem auf Windows Vista® aktualisiert haben und die von früheren Versionen des Defragmentierungstools bereitgestellten Steuerungsmöglichkeiten und das vertraute Aussehen vermissen, gibt es eine sehr interessante Alternative, die Sie einmal ausprobieren sollten: Disk Defrag von Auslogics.
Disk Defrag funktioniert unter Windows XP, Windows 2000, Windows Server® 2003 und Windows Vista. Hinzu kommt, dass dieses Tool, wie Sie wahrscheinlich erwartet haben, auch FAT16-, FAT32- und NTFS-Datenträger defragmentieren kann. Die Anwendung ist nicht sehr umfangreich und die Installation ist nach nur wenigen Mausklicks abgeschlossen.
Die Anwendung auszuführen, ist genauso einfach. Sie müssen lediglich das Laufwerk auswählen, das Sie defragmentieren möchten, und auf „Next“ (Weiter) klicken, und danach können Sie dem Programm bei der Arbeit zusehen. Sobald die Ausführung von Disk Defrag abgeschlossen ist, bietet Ihnen das Programm einen schnellen Überblick über die Ergebnisse, in dem die Gesamtanzahl der Dateien, der Verzeichnisse und der fragmentierten, defragmentierten und ausgelassenen Dateien sowie die prozentuale Abnahme der Fragmentierung angezeigt werden. Wenn Sie möchten, können Sie auch auf die Schaltfläche „Display Report“ (Bericht anzeigen) von Disk Defrag klicken, damit die Anwendung eine HTML-Version des Defragmentierungsberichts erstellt. Dieser Bericht liefert Ihnen einige zusätzliche nützliche Informationen zu Ihrem Datenträger, z. B. eine Liste der ausgelassenen Dateien und ihrer Position, die Anzahl der Fragmente, die für die Ausführung benötigte Zeitspanne sowie die Clusterinformationen für Ihren Datenträger.

Preis: Kostenlos.
Disk Defrag ist leicht zu installieren und zu bedienen
Disk Defrag ist leicht zu installieren und zu bedienen

Übertragen von Dateien
FileZilla
filezilla.sourceforge.net
Es gibt nichts Besseres als einen guten SFTP-Client, um Ihnen die Arbeit zu erleichtern – vor allem dann, wenn der Client solide programmiert wurde und nichts kostet, wie dies beim FileZilla-Client der Fall ist. FileZilla ist ein auf SourceForge.net gehostetes Open-Source-Projekt, das im Jahr 2001 von Tim Kosse und einigen seiner Freunde im Rahmen eines Informatikklassenprojekts begonnen wurde. FileZilla funktioniert von Windows NT® 4.0 bis Windows Vista in allen Windows-Versionen. Das Projekt ist im Verlauf der letzten 6 Jahre beträchtlich größer geworden, aber Kosse ist nach wie vor der Projektleiter für diese Anwendung.
Neben standardmäßigen FTP-Verbindungen unterstützt der Client auch Verbindungen über SFTP mit Secure Shell Version 2 (SSH2), FTP über TLS sowie FTP über SSL mit impliziter und expliziter Verschlüsselung, wodurch Sie Verbindung zu vielen verschiedenen Servern herstellen können. FileZilla erlaubt die Verwendung lokaler Firewalls, indem es Ihnen ermöglicht, sowohl die verwendeten lokalen Ports zu begrenzen als auch eine spezifische IP-Bindung für nichtpassive Übertragungen für IPv4 und IPv6 festzulegen. Der Client unterstützt auch eine Reihe von Proxykonfigurationen einschließlich SOCKS4/5-, HTTP1.1- und FTP-Proxys.
In Bezug auf die Serverauthentifizierung für Ihre FTP-Verbindungen unterstützt FileZilla anonyme Konfigurationen, normale Benutzernamen/Kennwort-Konfigurationen sowie auf Konten beruhende Konfigurationen. Darüber hinaus können Sie Kerberos GSS (Generic Security Services)-Unterstützung aktivieren (dies erfordert die Installation von Kerberos für Windows auf Ihrem System) und eine Liste GSS-fähiger Server erstellen. Natürlich benötigen Sie ein gültiges Kerberos v5-Ticket, damit GSS bei Ihnen funktionieren kann. Sie können auch Unterstützung für Ihren Ident-Server aktivieren, um eine Verbindung zu Servern herzustellen, die dies zur Identifizierung Ihres Clients voraussetzen.
FileZilla kann problemlos eine umfangreiche Sammlung von FTP-Websites verwalten und ermöglicht Ihnen, Ihre Verbindungen in einer baumartigen Struktur zu organisieren. Für jede Verbindung, die Sie einrichten, können Sie auch lokale Standardverzeichnisse und Remotestandardverzeichnisse festlegen, den Port angeben, zu dem eine Verbindung hergestellt werden soll, die Umgehung Ihres konfigurierten Proxy festlegen, explizit aktive oder passive Übertragungsmodi wählen und sogar einen Serverzeitunterschied einstellen. Neben den gespeicherten Verbindungen bietet FileZilla auch ein Quickconnect-Feature für nur einmal stattfindende Übertragungen, bei der Sie einfach die Adresse, den Benutzernamen, das Kennwort und den Port eingeben und danach auf eine Schaltfläche klicken, um die Verbindung herzustellen. Sobald Sie sämtliche Einstellungen und Verbindungen konfiguriert haben, können Sie sie zur Sicherung oder zur Wiederverwendung auf anderen Systemen im XML-Format exportieren.
Die Benutzeroberfläche der Anwendung, die der Benutzeroberfläche von Windows Explorer ähnelt, ermöglicht Ihnen, Dateien per Drag & Drop auf einfache Weise zwischen lokalen Systemen und Remotesystemen zu verschieben. Bei Dateiübertragungen können Sie eine Standardeinstellung für die Dateiüberschreibung festlegen und darüber hinaus Ihre Download- und Uploadgeschwindigkeiten anhand eines vordefinierten Regelsatzes oder durch ein konstantes kBs-Geschwindigkeitslimit begrenzen. In der Standardeinstellung ist FileZilla dafür konfiguriert, auf Servern, die dies unterstützen, Dateiübertragungen mit MODE Z-Komprimierung zu verwenden, Sie können die Komprimierungsstufe aber auch anpassen oder dieses Feature deaktivieren. Der Client verfügt auch über ein Übertragungswarteschlangenfeature, mit dem Sie eine Gruppe von Dateien zur Übertragung in eine Warteschlange stellen und anschließend diese Übertragungsliste zur Wiederverwendung importieren und exportieren können. Dieses Feature eignet sich hervorragend für wiederkehrende Systemadministrationsaufgaben.

Preis: Kostenlos.

Bearbeiten ausführbarer Dateien
PE Explorer
www.heaventools.com
Diejenigen unter Ihnen, die Ihren Anwendungen gründlich auf den Zahn fühlen möchten, sollten sich einmal den PE Explorer von HeavenTools ansehen. Mit dieser Anwendung können Sie in das Innere Ihrer PE-Dateien (PE = Portable Executable, übertragbare ausführbare Datei) vordringen, die als ausführbare Binärdateien für Windows-Anwendungen verwendet werden. In einfachen Worten ausgedrückt, stellt PE Explorer eine Benutzeroberfläche zur Verfügung, mit der die Inhalte dieser ausführbaren Dateien untersucht und bearbeitet werden können. PE Explorer kann eine breite Palette von Dateitypen öffnen, angefangen bei häufig vorkommenden Dateitypen wie beispielsweise EXE- und DLL-Dateien bis hin zu selteneren Dateitypen wie etwa DPL- und CPL-Dateien.
Wenn Sie eine ausführbare Datei untersuchen, zeigt PE Explorer zunächst Informationen zu den Headern der Datei an, wie z. B. die Anzahl der Codeabschnitte, die Größe des Abbilds sowie Informationen zum Anwendungssubsystem und zur Stapelgröße. Eine andere Ansicht bietet Ihnen einen Überblick über die Abschnittsheader innerhalb der ausführbaren Datei, wobei durch Doppelklicken auf einen Abschnittsheader ein Fenster geöffnet wird, in dem Sie den Inhalt jedes Abschnitts untersuchen können.
Mit dieser Anwendung können Sie Abschnitte Ihrer geladenen PE-Datei extrahieren, neu berechnen und löschen. Mit dem Digital Signature Viewer der Anwendung steht Ihnen ein hervorragendes Tool zum Erkennen von Viren, Malwareprogrammen und anderen schädlichen ausführbaren Dateien zur Verfügung, mit dem Sie die in der geladenen ausführbaren Datei enthaltene digitale Microsoft Authenticode-Signatur (sofern vorhanden) anzeigen und überprüfen können. Dies ist eine leistungsfähige Methode, um den Herausgeber und die Integrität der ausführbaren Datei zu überprüfen.
PE Explorer enthält auch eine integrierte Funktion zum schnellen Deassemblieren, mit der Sie den Assemblycode Ihrer ausführbaren Dateien untersuchen können. Darüber hinaus unterstützt dieses Tool die normalen Intel x86-Anweisungssätze sowie Erweiterungen wie z. B. MMX, 3D Now! und SSE/2/3. Der Deassemblierer extrahiert auch ASCII-Textzeichenfolgen aus dem Datenabschnitt Ihrer PE-Datei.
Ein weiteres Feature ist der Dependency Scanner, der alle Module, die mit Ihrer PE-Datei statisch verknüpft sind, sowie alle verspätet in den Speicher geladenen Module überprüft und sie anschließend in einer hierarchischen Baumstruktur anzeigt, die sichtbar macht, worauf die PE-Datei zugreift.
Eine der Komponenten von PE Explorer, die mehr Spaß machen, ist meiner Meinung nach der Ressourcen-Editor. Mit diesem Feature können Sie die Ressourcen einer angegebenen ausführbaren Datei anzeigen, extrahieren, ersetzen, bearbeiten und löschen. Die Benutzeroberfläche präsentiert Ihnen eine verzeichnisartige Struktur der eingebetteten Ressourcen, wie z. B. Abbilder, Klänge, Dialogfelder, Menüs, XML-Daten, HTML-Daten und Symbolleisten. Nicht alle dieser Ressourcen unterstützen eine direkte Bearbeitung, aber Sie können sie in den meisten Fällen ersetzen und bearbeiten. Dadurch könnten Sie beispielsweise einer Anwendung eigene benutzerdefinierte Markenzeichen hinzufügen, Dialogfeldmeldungen ändern, Symbolleistenaktionen anpassen und vieles mehr, ohne auf den Quellcode selbst zugreifen zu müssen. PE Explorer ist ein sehr nützliches Tool für alle, die intensiv mit ausführbaren Dateien arbeiten möchten. Falls der Ressourcen-Editor das einzige Feature ist, auf das Sie wirklich Wert legen, sehen Sie sich die viel billigere Anwendung Resource Tuner dieses Unternehmens an.

Preis: 129 $ (direkt) für eine persönliche Lizenz, 199 $ (direkt) für eine Geschäftslizenz.
Abbildung von PE Explorer
Abbildung von PE Explorer

Buchbesprechung
Endpoint Security
www.awprofessional.com
Ihre interne Infrastruktur mit einem sehr soliden herkömmlichen Umkreisnetzwerk zu umgeben, ist ein wichtiger Schritt zum Schützen Ihrer Ressourcen. Dies ist jedoch kein Allheilmittel. Angesichts der zunehmenden Mobilität und Konnektivität der Hard- und Software von heute hat Ihre Unternehmensinfrastruktur keinen echten Umkreis mehr, sondern erstreckt sich Ihre Infrastruktur bis zu jenen entfernten Endpunkten. Während Sie Ihre Umgebung gegen Angriffe von außen schützen, ist es tatsächlich wahrscheinlicher, dass ein Angriff versehentlich durch einen Benutzer gestartet wird, der seinen Laptop von zu Hause mitbringt und ihn auf Ihr unkontrolliertes Unternehmensnetzwerk loslässt.
Wenn Sie nach Möglichkeiten suchen, eine ordentliche Netzwerkzugriffssteuerung einzurichten und die Endpunkte Ihrer Infrastruktur zu schützen, sollten Sie sich das Buch „Endpoint Security“ von Mark Kadrich (Addison-Wesley Professional, 2007) ansehen. Dieses Buch beginnt mit einer genauen Definition, was unter Endpunkten zu verstehen ist, und gibt Ihnen danach eine Kostprobe davon, wie viele verschiedene Varianten es eigentlich gibt – Windows-Clients, Linux-Clients, eingebettete Geräte, Handys und PDAs. Kadrich sieht in einem Netzwerk ein „Kontrollproblem“. Er lehnt die typische Darstellung eines komplizierten Netzwerks unter Zuhilfenahme einer organischen Analogie ab und beschreibt es stattdessen als etwas, das sich auf nützliche, überschaubare Weise skizzieren und veranschaulichen lässt.
Das Buch befasst sich mit den Grundlagen der Netzwerkzugriffssteuerung und mit der Schaffung einer Vertrauensgrundlage. Im Rahmen dieser Erörterung wird beschrieben, wie Sie eine sichere Basis für Ihre Endpunktsysteme zusammenstellen können, indem Sie Ihre Quellsoftware und Ihre Buildumgebung schützen und kontrollieren. In einem Überblick über Tools, mit denen Sie sicherstellen können, dass Ihre Endpunkte geschützt und zuverlässig bleiben, werden vertraute Punkte wie beispielsweise die Verwendung von Firewalls und Antivirussoftware behandelt, und es wird auf die Notwendigkeit einer proaktiven Patchverwaltung und fortschrittlicherer Tools wie z. B. Angriffserkennungs- und Angriffsverhinderungssysteme, Hostintegritätsprüfer sowie Verschlüsselung hingewiesen.
In der zweiten Hälfte des Buchs werden die Details des Schutzes von Betriebssystemen verschiedener Clienttypen einschließlich Microsoft Windows, Apple OS X und Linux untersucht. Jedes dieser Kapitel vermittelt Ihnen einen Überblick darüber, wie für Ihr Endpunktsystem eine anfängliche Systemdiagnose durchgeführt werden kann. Es gibt auch Kapitel, die sich mit PDAs, Smartphones und eingebetteten Geräten befassen und beschreiben, weshalb diese Geräte zu einer ernsthaften Gefahr für Ihre Infrastruktur geworden sind und wie auf ihnen verschiedene Kommunikationsarten geschützt werden können.
Zum Schluss untersucht Kadrich vier Fallstudien und zeigt am Beispiel jeder Studie auf, wie die Endpunkte gefährdet wurden und wie sich Fehler hätten reduzieren lassen. Das Buch „Endpoint Security“ enthält viele nützliche Informationen für Sicherheitsexperten und bietet eine anbieterunabhängige Übersicht über das Sichern Ihres Netzwerks aus dem Blickwinkel eines Endpunktumkreises.

Preis: 54,99 $ Listenpreis.

Greg Steen ist Technologieexperte, Unternehmer und Enthusiast und immer auf der Suche nach neuen Hilfsmitteln und Referenzmaterialien, um Arbeits- und Entwicklungsprozesse für IT-Experten zu vereinfachen. Haben Sie Vorschläge? Geben Sie ihm unter tntools@microsoft.com


 SQL&#160;– Fragen und Antworten: Anmeldungstrigger, Datendateidefragmentierungen und mehr
SQL – Fragen und Antworten
Anmeldungstrigger, Datendateidefragmentierungen und mehr
Herausgegeben von Nancy Michell

Einstellen des Dienstkontos
Tipp: Sicherere Kennwörter
Durch das SQL Server 2000-Modul werden zwei Kopien jedes SQL Server-Anmeldekennworts verwaltet. Eine Version ist das eigentliche Kennwort, das vom Benutzer bereitgestellt wird, die andere ist das Kennwort in Großbuchstaben.
Diese Vorgehensweise unterstützt Kennwortprüfung ohne Beachtung der Groß-/Kleinschreibung, da ein Benutzer sich sowohl mit einem Kennwort mit Groß- und Kleinschreibung also auch mit einem Kennwort nur in Großschreibung anmelden und Zugriff auf den Server erhalten kann. Diese Methode ist zwar bequem, hat jedoch einen Haken. Das Speichern von Kennwörtern in Großschreibung erleichtert Brute-Force-Angriffe zum Erraten von Kennwörtern durch Verringerung der Anzahl möglicher Kennwörter.
In SQL Server 2005 wird nur die Originalkopie des Kennworts gespeichert. Ein von einem Benutzer eingegebenes Kennwort muss mit dem auf dem Server abgelegten Kennwort übereinstimmen. Wenn das Kennwort nicht übereinstimmt, schlägt die Anmeldung fehl, und dem Benutzer wird der Zugriff verweigert. Wenn die präzise Groß- oder Kleinschreibung der Kennwortzeichen vergessen wurde, muss das Kennwort zurückgesetzt werden.
Angenommen der Anmeldename eines Benutzers lautet SQLCOMMUNITY. Das SQL Server-Kennwort des Benutzers kann mit dem folgenden Befehl zurückgesetzt werden:
Use Master;
ALTER LOGIN SQLCOMMUNITY WITH PASSWORD = 'k3t9h4s8wJF7t';
Durch diesen Befehl wird das Kennwort für die SQLCOMMUNITY SQL Server-Anmeldung auf „k3t9h4s8wJF7t“ zurückgesetzt.

F: In SQL Server™ 2000 habe ich das Dienstkonto für das SQL Server-Modul und den -Agent in der Regel mit dem Applet „Dienste“ in „Verwaltung“ festgelegt. Jetzt habe ich gehört, dass in SQL Server 2005 das Configuration Manager-Tool verwendet werden soll. Weshalb kann ich nicht einfach die Windows-Tools weiterverwenden?
A: SQL Server 2005 bietet mehr Sicherheit als vorherige Versionen. In vielen Unternehmen legen Benutzer nur interne Konten wie „LocalSystem“ fest, um SQL Server auszuführen. Diese Konten verfügen jedoch häufig über mehr oder weniger Rechte und Berechtigungen unter Windows® als sie benötigen. Sie sollten ein Windows-Konto ohne erweiterte Berechtigungen einrichten, um die Dienste SQL Server 2005-Modul und -Agent auszuführen. Wenn Sie diese Konten mit Configuration Manager auswählen, werden ihnen automatisch die entsprechenden Rechte und Berechtigungen sowohl für SQL Server als auch das Betriebssystem gewährt. Wenn Sie die Windows-Tools für die Verwaltung der SQL Server-Dienste verwenden, gewähren Sie möglicherweise nicht die richtigen bzw. zu viele Rechte.
Weitere Informationen finden Sie im Tipp zum Ändern des Dienstkontos.

Wer meldet sich bei meinem Server an?
F: Ich möchte wissen, wer sich wann bei meinem Server anmeldet. Außerdem möchte ich bestimmte Benutzer auf bestimmte Zeiträume einschränken und die Benutzeraktivität nachverfolgen. Ist dies möglich?
A: Ja, all dies ist mit SQL Server 2005 möglich, wenn Service Pack 2 installiert ist.
Mit SQL Server 2005 können Sie Anmeldungstrigger erstellen, die eine T-SQL- oder gespeicherte Prozedur als Reaktion auf ein LOGON-Ereignis auslösen. Sie können einen Anmeldungstrigger verwenden, um Benutzer durch Verfolgen von Anmeldeaktivitäten zu überwachen und zu kontrollieren, um Anmeldungen auf SQL Server zu beschränken, oder die Anzahl an Sitzungen für bestimmte Anmeldungen einzuschränken. Beachten Sie, dass das Ereignis nur nach erfolgreicher Authentifizierung einer Anmeldung ausgelöst wird, jedoch kurz bevor die Sitzung tatsächlich eingerichtet ist. Deshalb werden alle Nachrichten, die von innerhalb des Triggers (z. B. Nachrichten oder Fehler) von der PRINT-Anweisung herrühren, an das SQL Server-Fehlerprotokoll gesendet. Wenn die Authentifizierung für eine Anmeldung fehlschlägt, werden die Anmeldungstrigger nicht ausgelöst.
Das folgende Beispiel zeigt, wie Sie einen Anmeldungstrigger erstellen und eine Meldung an das SQL Server-Fehlerprotokoll senden können, sobald sich ein beliebiger Benutzer angemeldet hat:
ALTER TRIGGER Ops_Login
ON ALL SERVER
AFTER LOGIN
AS
PRINT SUSER_SNAME() + ' has just logged in to ' + LTRIM(@@ServerName) + ' SQL Server at '+LTRIM(getdate())
GO
Um alle auf Serverebene eingerichteten Trigger anzuzeigen, verwenden Sie die folgende Abfrage:
SELECT * FROM sys.server_triggers;

Best Practices für die Defragmentierung
F: Wie lässt sich eine Datendateifragmentierung in SQL Server am besten beheben? Bei Verwendung der Defragmentierungstools in Windows wird die SQL-Datendatei als ein Ganzes behandelt und nicht fein defragmentiert.
A: Sie könnten eine Sicherungskopie der Datenbank erstellen und sie anschließend wiederherstellen. Wenn Platz für eine zusammenhängende Datei vorhanden ist, sollte die Datenbank zusammenhängend geschrieben werden. Die Ausfallzeit für einen Defragmentierungsversuch der physischen Dateien lohnt sich jedoch in der Regel nicht. Normalerweise ist ohnehin nicht viel externe Fragmentierung vorhanden. Es ist hilfreicher, Daten regelmäßig neu zu indizieren, um die interne Defragmentierung so weit wie möglich zu verringern. Dies maximiert die Effizienz von Read-Ahead-Lesevorgängen sowie die Datenmenge, die gepuffert werden kann.
Die wichtigsten Faktoren für effiziente Datenträger-E/A sind folgende: eine Gewährleistung, dass die Datenträgerausrichtung und RAID-Konfiguration korrekt sind, die Skalierung von Festplattenarrays für eine ordnungsgemäße Verarbeitung der E/A-Belastung und die Verwaltung des korrekten Layouts der Protokoll-, Daten-, TempDB- und Sicherungsdateien. Wenn Sie die automatische Vergrößerung/Verkleinerung als primäre Methode für die Größenanpassung von Datendateien vermeiden, verringern Sie die Anzahl der auf Volumeebene erstellten Dateifragmente. Die Durchführung von beispielsweise 10 automatischen Vergrößerungen von jeweils 500 MB hätte wahrscheinlich das Hinzufügen von 10 neuen physischen Dateifragmenten zur Folge. Im Gegensatz dazu wird durch eine einzelne manuelle Vergrößerung von 5 GB nur ein Fragment hinzugefügt.

Tipp: Ändern des Dienstkontos
Wussten Sie, dass wenn das Anmeldekonto des SQL Server-Diensts mit einem Windows NT®-Konto konfiguriert ist, in SQL Server Windows-Benutzerrechte und -Berechtigungen für mehrere Dateien, Ordner und Registrierungsschlüssel festgelegt werden? Sie können auch das SQL Server-Dienstkonto von der Dienstekonsole in der Verwaltung festlegen. Wenn Sie dies jedoch über die Dienste ausführen, werden die Rechte und Berechtigungen nicht festgelegt, und es können ernsthafte Probleme durch fehlende korrekte Sicherheitseinstellungen und die oben genannten SQL Server- und Windows-Elemente auftreten.
Daher wird dringend empfohlen, SQL Server Configuration Manager zu verwenden und nicht die Dienstekonsole, wenn Sie das SQL Server- oder das SQL Server Agent-Dienstkonto ändern. Wenn Sie jedoch bereits Änderungen am Konto mithilfe der Dienstekonsole vorgenommen haben, können Sie dieses Problem nach wie vor beheben.
Schritt 1: Wenden Sie vollständige Berechtigungen für den folgenden Registrierungsschlüssel und dessen Unterschlüssel an:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<MSSQL.x>
Schritt 2: Richten Sie uneingeschränkten Zugriff für das Startkonto für den MSSQLServer-Dienst und den SQLServerAgent-Dienst (entweder ein lokales Windows NT-Konto oder ein Domänen-Windows NT-Konto) auf diesem NTFS-Ordner ein:
Drive:\Program Files\Microsoft SQL Server\<MSSQL.1>\MSSQL
Es wird empfohlen, dies nicht manuell vorzunehmen, sondern SQL Server Configuration Manager für Änderungen an SQL Server/Agent-Dienstkonten zu verwenden.

Unser Dank gilt den folgenden Microsoft-IT-Experten für ihre fachliche Unterstützung: Cary Gottesman, Saleem Hakani, Trayce Jordan, Peter Kalbach, Al Noel, Uttam Parui, Amber Sitko und Buck Woody.


 Schwerpunkt Dienstprogramme: Virtual Machine Remote Control Plus
Schwerpunkt Dienstprogramme
Virtual Machine Remote Control Plus
Matthijs ten Seldam
Laden Sie den Code für diesen Artikel herunter: UtilitySpotlight2007_10.exe (10163KB)

Virtualisierung ist heutzutage ein heiß diskutiertes Thema. Viele IT-Fachleute verwenden Hardwarevirtualisierung in Schulungs- und Testszenarios. Aus diesem Grund bietet Microsoft jetzt mit Virtual PC 2007 eine Softwarevirtualisierungslösung für eigenständige Installationen mit einer begrenzten Anzahl virtueller Computer an. Dabei ist anzumerken, dass dieses neue Produkt kein Ersatzprodukt für die Anwendung Virtual Server 2005
ist, mit der die Virtualisierung Einzug in das Datencenter genommen hat.
Microsoft® Virtual Server 2005 ermöglicht Ihnen, zahlreiche Serverauslastungen zu virtualisieren, aber im Gegensatz zu Virtual PC handelt es sich bei der Virtual Server-Schnittstelle um eine Webanwendung. Obwohl eine webbasierte Verwaltung ihre Vorteile hat, verlangen viele für die tägliche Verwaltung eine umfassende Benutzerschnittstelle, die sich wie eine Windows®-Anwendung verhält.
Eine alternative Benutzerschnittstelle für Virtual Server 2005 ist VMRCplus (Virtual Machine Remote Control Plus). Da es sich bei VMRCplus um eine Windows Forms-Anwendung handelt, ist dieses Programm eine einfache Verwaltungslösung für Virtual Server und dessen virtuelle Computer. Virtual Server umfasst das Tool VMRC zur Steuerung virtueller Computer über das Netzwerk. VMRCplus bietet sowohl die Konfigurationsverwaltung von Virtual Server als auch eine Remotesteuerung virtueller Computer – und das in einer einzigen Anwendung.

Virtual Machine Manager
In Abbildung 1 ist Virtual Machine Manager, das Hauptfenster von VMRCplus, zu sehen. In diesem Beispiel ist Virtual Machine Manager an „localhost“ angeschlossen, es werden 5 Computer ausgeführt: 3 in gespeichertem und die anderen in deaktiviertem Zustand. Der sechste Computer in der Liste ist ausgewählt, es werden zusätzliche Informationen angezeigt, darunter das Gastbetriebssystem, die CPU-Auslastung, Datenträger- und Netzwerk-E/A-Statistiken sowie die Version der installierten Erweiterungen. Die Liste ist nach Status sortiert.
Abbildung 1 VMRCplus Virtual Machine Manager
Abbildung 1 VMRCplus Virtual Machine Manager
Über Virtual Machine Manager können Sie eine Verbindung zu Virtual Server-Hosts herstellen und deren virtuelle Computer anzeigen. Sie können Hosts über die Registerkarten wechseln und Verbindung zu einem Host herstellen, indem Sie diesen in der Dropdownliste auf der Symbolleiste auswählen oder den Namen oder die IP-Adresse des Hosts eingeben. Wenn die Verbindung erfolgreich hergestellt wird, wird der Name bzw. die IP-Adresse in die Liste eingefügt.
Im unteren Fensterbereich werden einige Eigenschaften des Virtual Server-Hosts wie z. B. Angaben zur CPU oder zum Speicher angezeigt. Eine Speichermessfunktion stellt einen schnellen Überblick über den verfügbaren RAM-Speicher virtueller Computer bereit.

Virtual Server-Verwaltung
Virtual Machine Manager zeigt nicht nur Informationen an, sondern kann auch zur Konfigurierung von Einstellungen eingesetzt werden. Über den Menübefehl „View“ können Sie das Intervall einstellen, in dem die Liste der virtuellen Computer aktualisiert wird. Wie in Abbildung 1 zu sehen ist, wird in diesem Fenster das derzeit eingestellte Aktualisierungsintervall in der rechten unteren Ecke angezeigt.
Über das Virtual Server-Menü können Sie auf die Virtual Server-Konfiguration einschließlich der VMRC-Einstellungen (Virtual Machine Remote Control), den Standardstandort für neue virtuelle Computer, Sicherheitseinstellungen und Diensteigenschaften zugreifen. Auf der Seite mit den VMRC-Einstellungen können Sie alle Eigenschaften einstellen, VMRC komplett deaktivieren oder die Standardeinstellungen von Virtual Server wiederherstellen.
Auf der Seite mit den Sicherheitseinstellungen können Sie Virtual Server-Berechtigungen festlegen. Standardmäßig hat die Gruppe der lokalen Administratoren volle Kontrolle über Virtual Server. Sie können Berechtigungen für Gruppen oder Benutzer festlegen. Wenn Sie nicht zur Gruppe der lokalen Administratoren gehören, müssen Sie zuerst eine Gruppe oder Ihr Konto hinzufügen und geeignete Berechtigungen einstellen. Sie müssen VMRCplus allerdings nicht unbedingt als Administrator ausführen, denn normale Benutzerberechtigungen genügen vollkommen.
In Abbildung 2 sind die Eigenschaften des Virtual Server-Hosts einschließlich der physischen Eigenschaften zu sehen. Beachten Sie, dass dieser Host eine hardwaregestützte Virtualisierung unterstützt, wie aus den Prozessorfeatures zu ersehen ist.
Abbildung 2 Virtual Server-Eigenschaften
Abbildung 2 Virtual Server-Eigenschaften

Verwaltung virtueller Datenträger und Netzwerke
VMRCplus stellt weitere Manager für bestimmte Virtual Server-Elemente bereit. Virtual Disks Manager besitzt eine aus Registerkarten bestehende Benutzeroberfläche, wobei die Registerkarten den Typen der virtuellen Datenträger entsprechen, die Sie erstellen können, wie z. B. Festplatten (dynamische oder feste), Disketten und differenzierende Datenträger. Sie können Ihre virtuellen Datenträger auch überprüfen.
Mit Virtual Networks Manager können Sie virtuelle Netzwerke verwalten. Sie können ein virtuelles Netzwerk über eine VNC-Datei (Virtual Network Configuration) hinzufügen oder ein neues virtuelles Netzwerk erstellen. Beim Erstellen des virtuellen Netzwerks können Sie einen Hostnetzwerkadapter anfügen oder das Netzwerk als nur für Gäste vorgesehenes Netzwerk festlegen. Im gleichen Fenster können Sie einen virtuellen DHCP-Server aktivieren und auf seine Einstellungen zugreifen.

Verwaltung virtueller Computer
Die bisher genannten Manager dienen alle in erster Linie der Verwaltung von Virtual Server. Was hat VMRCplus zum Erstellen und Konfigurieren virtueller Computer zu bieten?
Virtuelle Computer zu erstellen, ist recht einfach: Wählen Sie einfach „Virtual Computer“ | „Create“ im Menü aus. In dem nun angezeigten Dialogfeld werden mehrere Vorgaben angeboten, die denen von Virtual Server entsprechen, sich aber unter der Oberfläche auf den zweiten Blick von diesen unterscheiden. VMRCplus erstellt beispielsweise immer zwei virtuelle Festplatten und koppelt sie an SCSI an. Mit VMRCplus können Sie auch mehrere virtuelle Computer gleichzeitig erstellen. Wählen Sie einfach „Create multiple virtual machines“ und die gewünschte Anzahl aus. VMRCplus ergänzt den von Ihnen eingegebenen Namen für den virtuellen Computer durch einen Bindestrich und eine Sequenznummer.
Ein sehr leistungsfähiges Feature ist die Möglichkeit, aus einem übergeordneten virtuellen Computer mehrere virtuelle Computer zu erstellen. Nehmen wir einmal an, Sie haben einen virtuellen Computer mit den neuesten Erweiterungen, Service Packs, Hotfixes und Tools erstellt und möchten ihn als Grundlage für weitere virtuelle Computer verwenden. Nachdem Sie abschließend Sysprep ausgeführt und den übergeordneten virtuellen Computer heruntergefahren haben, können Sie nun mehrere virtuelle Computer erstellen, welche die Eigenschaften des übergeordneten virtuellen Computers übernehmen.
Innerhalb weniger Sekunden können Sie anhand dieses übergeordneten virtuellen Computers viele virtuelle Computer erstellen und diese über dieselbe Referenz rasch in Betrieb nehmen. Wenn Sie Ihre Arbeit (beispielsweise Tests) abgeschlossen haben, können Sie sie ganz einfach wieder löschen. Das ist ebenfalls einfach: VMRCplus unterstützt sowohl die Auswahl mehrerer Geräte aus der Liste der virtuellen Computer als auch das Sortieren nach Spalten. Sie können die virtuellen Computer leicht durch Mehrfachauswahl markieren und entfernen, wodurch ihre Registrierung rückgängig gemacht wird, oder die virtuellen Computer löschen, wodurch zusätzlich die Dateien gelöscht werden.
Es gibt noch weitere Mehrfachauswahlbefehle für virtuelle Computer, wie z. B. Mehrfachauswahl und Starten, Mehrfachauswahl und Öffnen der Konsole oder Mehrfachauswahl und Speichern des Zustands. Alle diese Arbeiten können Sie entweder über die Benutzeroberfläche oder mit Hilfe von Tastenkombinationen ausführen.
Einen virtuellen Computer zu konfigurieren, ist über die Seite mit den Hardwareeinstellungen ebenfalls einfach. Sie können die Speichergröße einstellen, SCSI-Controller hinzufügen, Datenträger oder Abbilder ankoppeln (durch Drag & Drop) sowie Netzwerkadapter aktivieren und konfigurieren. Über das Fenster mit den erweiterten Eigenschaften können Sie die erweiterten Konfigurationselemente einstellen. Sie können beispielsweise virtuelle Computer unter einem bestimmten Benutzerkonto ausführen, um einen Computer festzulegen, der beim Start von Virtual Server automatisch ebenfalls gestartet wird.

Remotesteuerung
VMRCplus enthält auch Console Manager, in dem die Remotesteuerungssitzungen (VMRC-Sitzungen) mit virtuellen Computern enthalten sind. Sie öffnen eine Konsole, indem Sie einen oder mehrere momentan ausgeführte virtuelle Computer auswählen und in der Eigenschaftsymbolleiste auf die Schaltfläche der virtuellen Computerkonsole klicken.
In dem in Abbildung 3 gezeigten Fenster von Console Manager sind die Remotesitzungen in Form von Registerkarten angeordnet. Sie können zwischen virtuellen Computern wechseln, indem Sie die entsprechende Registerkarte auswählen. Es ist auch eine Symbolleiste vorhanden, in der die am häufigsten verwendeten Funktionen enthalten sind.
Abbildung 3 Console Manager
Abbildung 3 Console Manager
Wie Sie sehen, verfügt Console Manager über Kontextmenüs, über die Sie ein virtuelles Disketten- oder ISO-Abbild anfügen, Hostlaufwerke ankoppeln und aktuelle Erweiterungen installieren können. In der Statusleiste wird der Status von CDs, DVDs und Disketten, die Version der aktuellen Erweiterungen des virtuellen Computers, der derzeit aktive Hostschlüssel und die Einstellung der dynamischen Bildschirmgrößenänderung angezeigt. VMRCplus ermöglicht Ihnen, den Hostschlüssel einzustellen. Sie können auch auf die Hardwareeinstellungen und die erweiterten Eigenschaften virtueller Computer zugreifen.
VMRCplus bietet noch weitere nützliche Features. Sie können beispielsweise einen Screenshot der Einstellungen eines virtuellen Computers erstellen und als .jpg-Datei speichern, was bei der Fehlerbehebung sehr nützlich sein kann. Sie können auch Text in Form von Tastenanschlägen an virtuelle Computer senden. Dies ist nicht als Zwischenablagefunktion konzipiert, ist aber beispielsweise in Fällen sehr nützlich, in denen Sie einen Produktschlüssel vom Host kopieren und auf dem virtuellen Computer einfügen müssen.
VMRCplus wurde ursprünglich von Paul Despe als Entwicklertool geschrieben, das einige grundlegende Funktionen ausführen konnte, aber nicht sämtliche Funktionen von Virtual Server umfasste. Es wurde lediglich für Testzwecke verwendet und war mit einigen Problemen behaftet. Vor ungefähr einem Jahr habe ich mir den Code vorgenommen und begonnen, ihn umzuschreiben, ihn zu verbessern und seinen Funktionsumfang zu erweitern. Seither ist dieses Tool unter Virtual Server-Benutzern bei Microsoft sehr beliebt geworden. VMRCplus ist jedoch keine unterstützte Microsoft-Anwendung. VMRCplus wird im gegebenen Zustand und im Rahmen des beiliegenden Endbenutzer-Lizenzvertrags bereitgestellt.
VMRCplus wurde für Virtual Server 2005 Service Pack 1 entwickelt. Vorherige Versionen müssten zwar kompatibel sein, aber VMRCplus wurde nur mit Service Pack 1 getestet. Daher sollten Benutzer ihre Virtual Server-Hosts durch Service Pack 1 aktualisieren, bevor sie VMRCplus verwenden. VMRCplus kann von der Website des TechNet Magazins unter technetmagazine.com/code07.aspx heruntergeladen werden.

Matthijs ten Seldam ist einer der wichtigsten Berater der Microsoft Consulting Services. Er hat sich auf die Bereiche Sicherheit, Bereitstellung und Automatisierung spezialisiert und ist Fachexperte für Virtualisierung.


 F&#252;hrung eines IT-Unternehmens: Berechnen des Werts der IT-Infrastruktur in Beh&#246;rden
Führung eines IT-Unternehmens
Berechnen des Werts der IT-Infrastruktur in Behörden
Acer Maamoun

Die Vorteile einer Investition in die IT-Infrastruktur (Hardware und Software) aufzuzeigen, kann in Behörden schwierig sein. Wie in anderen großen Organisationen müssen Manager überzeugende Argumente für alle Erweiterungen und Verbesserungen liefern, die mit anderen Anträgen auf Finanzierung konkurrieren.
Da es viele verschiedene Möglichkeiten gibt, Geschäftsszenarios auszuarbeiten, müssen IT-Manager die Möglichkeit auswählen, die sich am besten für ihre spezifische Organisationskultur eignet. Dies gilt sowohl für Behörden als auch für Unternehmen. Die Abstimmung zwischen IT und anderen Geschäftsprioritäten ist unbedingt notwendig. In Behörden haben IT-Organisationen mit der Artikulierung von Geschäftsszenarios Erfolge verzeichnet, indem sie in ihrem Ansatz zum Erstellen von Portfolios für Projekte und Initiativen das Konzept des öffentlichen Werts verwenden.
Es ist ein schwieriger Prozess, ein Geschäftsszenario zusammenzustellen, in dem demonstriert wird, wie eine Infrastrukturverbesserung zu einer besseren Produktivität oder einem verbesserten Dienst führt. Im Folgenden werden einige von behördlichen IT-Organisationen eingesetzte Lösungen für das Definieren und Erfassen des Werts, der hinter Investitionen in die IT-Infrastruktur steht, vorgestellt.

Rechtfertigen von Investitionen
Eine häufige Klage innerhalb von IT-Organisationen ist, dass sie zu viele Anforderungen von zu vielen verschiedenen Geschäftsbereichen erhalten, wobei jede Anforderung selbstverständlich äußerst dringend ist. Neue Initiativen sind in der Regel einzelnen Abteilungsrichtlinien oder Zielprioritäten zugeordnet. Diese Initiativen können wie eine zufällige Auswahl erscheinen, sind jedoch oft eng am öffentlichen Wert ausgerichtet, der von einer bestimmten Abteilung erstrebt wird.
Andererseits können Betriebskosten, die nach Aufwand für die Unterstützung einzelner Abteilungsvorgänge aufgeschlüsselt werden, die Kosten (und den Wert) unternehmensweiter Funktionen oder gemeinsam genutzter Dienste bergen. In diesem Fall kann es äußerst schwierig sein, den Wert von Investitionen in eine neue Infrastruktur oder in Verbesserungen einer vorhandenen Infrastruktur, die eine unternehmensweite Auswirkung haben oder direkt den Zielen einzelner Abteilungen zugeordnet werden können, zu evaluieren.
Folglich fällt es der Gesamt-IT-Organisation oft schwer, eine unternehmensübergreifende Sichtweise der Informationstechnologie zu ermöglichen, wie sie in dem Dokument „GSA Federal Enterprise Architecture Framework“ (whitehouse.gov/omb/egov/a-1-fea.html) beschrieben wird. Die praktische Umsetzung der meisten Bemühungen um eine gemeinsame Sichtweise der Unternehmensarchitektur, ein allgemeines Modell zur Erstellung von Geschäftsszenarios und einen Portfolioverwaltungsprozess, bei dem Anträge auf IT-Investitionen und Ausgaben fair behandelt werden, gestaltet sich in solchen Umgebungen schwierig. Ein wirksameres Modell ist, ein Portfolio der IT-Aktivitäten zu unterstützen, die die Vorteile des öffentlichen Werts effektiv maximieren. Dies erfordert, dass die allgemeinen Kriterien im Hinblick auf den öffentlichen Wert im Laufe der Geschäftsszenarioentwicklung, Portfolioverwaltung Erkenntnis der Vorteile und Bewertung ausgewählt und in Kraft gesetzt werden.

Wertmessung
Es gibt einige große Probleme mit unternehmensweiten IT-Investitionen. Erstens sind ihre Auswirkungen im Hinblick auf den öffentlichen Wert eher indirekt und länger anhaltend. Es profitieren verschiedene Teile der Organisation, und zwar oft in unterschiedlichem Ausmaß, sodass die Vorteile nicht immer direkt erkennbar sind. Darüber hinaus werden zugehörige Risiken und Kosten schneller wahrgenommen als der nicht so schnell ersichtliche und quantifizierbare öffentliche Wert.
Ein Geschäftsszenario sollte darauf beruhen, wie eine Infrastrukturinvestition zukünftige Investitionen und derzeitige Aktivitäten ermöglicht. Es gibt verschiedene Möglichkeiten, diesen Wert zu berechnen. Sie haben alle ihre Vor- und Nachteile, und jede Möglichkeit eignet sich bis zu einem bestimmten Grad für die Kultur und Reife einer bestimmten Organisation.
Mathematisch Diese Methoden basieren auf einem mathematischen Modell potenzieller Vorteile. Eine wirksame Methode, die der „Realoptionen“, basiert auf finanzmathematischen Grundlagen. Sie schließt die Überlegung künftiger Änderung und Flexibilität ein, indem sie explizit das Recht in Betracht zieht, eine Maßnahme (d. h. die Realoption) zu einem bestimmten Preis eine bestimmte Zeit lang zu ergreifen. Die Optionen umfassen das Zurückstellen, Erweitern, Bereitstellen oder Abbrechen von Investitionen, das Ändern der Eingaben oder Ausgaben sowie das Entwickeln von Pilotprojekten.
Realoptionen sind besonders dann geeignet, wenn eine Investitionsentscheidung unter dem Einfluss künftiger Ereignisse erfolgt. Im Fall der IT-Infrastruktur kann es sich dabei um Folgendes handeln: Gesetzliche Anforderungen, Geschäftsnachfrage oder gar ein kritisches Ereignis wie ein schwerer Betriebsfehler.
Simulation Die Ungewissheitsanalyse basiert auf der Monte-Carlo-Simulation, die automatisierte Tools verwendet, um die Ergebnisse alternativer Szenarios zu berechnen, die auf der Auswahl veränderlicher Werte und der Wiederholung des Prozesses basieren. Die Simulation erfordert die Identifikation eines Wertebereichs (wie die Anzahl der betroffenen Arbeitsstationen oder das Auffassungsvermögen des elektronischen Kanals) und die Wahrscheinlichkeitsverteilung für jede Variable. Die Simulation ergibt eine Reihe möglicher Ergebnisse und lässt die Ermittlung des Mittelwerts für Vorteile sowie für Kosten und Risiken zu. Die sorgfältige Auswahl der Wert- und Risikovariablen zur Repräsentation der möglichen Auswirkungen von Infrastrukturinvestitionen ermöglicht, dass die Rendite solch einer Investition ins rechte Licht gerückt wird.
Szenarios Wenn mathematische oder Simulationsmodelle unpraktisch oder für die Organisationskultur und -fähigkeiten nicht geeignet sind, können stattdessen auf Szenarios basierte Verfahren verwendet werden. Dadurch, dass sie das Geschäft oder Geschäftsziel einer Behörde, die politischen Prioritäten und relevante Trends (einschließlich Technologietrends) in Betracht zieht, kann eine Organisation eine begrenzte Anzahl plausibler Szenarios für die nächsten drei bis fünf Jahre entwickeln. Jedes Szenario sollte sich ausschließlich auf das Vorführen der Vorteile der Infrastrukturinvestition konzentrieren.
Im Gegensatz zur langfristigeren Planung müssen Szenarios sich nicht gegenseitig ausschließen und können Wahrscheinlichkeiten enthalten. Szenarios können zukünftige Wahlen, die Ergebnisse politischer Debatten und mögliche IT-Marktereignisse wie Akquisitionen oder beachtliche Verschiebungen bei Herstellerstrategien berücksichtigen.
GAU-Szenario Diese Variante des szenariobasierten Ansatzes wird angewendet, wenn die IT-Organisation glaubt, dass eine Investition dringend notwendig ist, um bevorstehende Geschäfts- oder Missionsherausforderungen zu erfüllen oder einfach um aktuelle Serviceniveaus beizubehalten. Wenn Infrastrukturprobleme vernachlässigt werden, verschlechtern sie sich, und die Problembehebung erfordert mehr Aufwand. Diejenigen, die sich für Veränderungen einsetzen, werden wahrscheinlich auf Widerstand stoßen und für ihre Mühe keinen Dank erhalten. So eine Lage kann teilweise mit einem starken Nachdruck auf Metrik und Messung, die für Teile der betroffenen Leistung wichtig sind, behoben werden, wie zum Beispiel die Antwortzeit für Anforderungen und die Zeit für Reparaturen. Diese Informationen müssen allgemein zur Verfügung stehen, sodass potenzielle Leistungsänderungen sichtbar werden.
Bei GAU-Szenarios werden durch Hervorheben der Nachteile und Risiken die Konsequenzen hervorgehoben, die das Unterlassen der Investition hat. Dieser Ansatz sollte sehr umsichtig und nur unter wirklich außergewöhnlichen Umständen verwendet werden. Wird dieser Ansatz routinemäßig verwendet, könnte der Eindruck entstehen, dass die IT-Organisation versucht, feststehende Prozesse für die Investitionsverwaltung umzuwerfen, was zu Konflikten und Unstimmigkeiten führen würde, deren Vermeidung Aufgabe eben dieser Prozesse ist.

Auswählen eine Planungsmethodik
In Abbildung 1 werden die Vor- und Nachteile der einzelnen Methoden zusammengefasst. Außerdem wird aufgeführt, wann sie jeweils in Betracht kommen. Nachdem eine Methode ausgewählt ist, sollte sie organisationsübergreifend gleichförmig verwendet werden, um die Vergleichbarkeit zu sichern.
Figure 1 Geschäftsszenariomethodik (Close Figure 1)

Methode Vorteile Nachteile Situationseignung
Realoption (mathematisch)
  • Streng
  • Stabile theoretische Basis
  • Komplex
  • Nicht angemessen, wenn immaterielle Werte vorherrschen
  • Wert und zukünftiger Wert sind größtenteils quantifizierbar
  • Es ist eine stabile Kultur vorhanden, in der Investitionen geschätzt werden
  • Kompetenzen sind leicht verfügbar
Simulation
  • Ermöglicht die Erforschung alternativer Werte
  • Leichte Möglichkeit, Alternativen zu erstellen
  • Durchschnittswerte haben möglicherweise wenig Sinn bei immateriellen Werten
  • Bereichsauswahl in Variablen ist unbedingt notwendig
  • Materielle Vorteile sind weit verbreitet
  • Toolunterstützung ist verfügbar
Szenario
  • Ermöglicht jede Kombination materieller und immaterieller Vorteile
  • Ermöglicht die Erforschung sehr unterschiedlicher Szenarios, wobei verschiedene Verfahren kombiniert werden
  • Erfordert starke Disziplin, um sich an vergleichbare Szenarios anzunähern
  • Zeithorizont kann sich ändern
  • Immaterielle Werte herrschen vor, oder die eigentliche Art der Vorteile ist unklar
  • Organisationskultur lehnt die anderen Methoden ab
GAU-Szenario
  • Veranschaulicht auf effektive Weise die Konsequenzen, die das Unterlassen einer Investition hat
  • Einfach zu erstellen
  • Hilft nicht, Prioritäten zu setzen
  • Kann missbraucht werden
  • Investition ist absolut entscheidend und überfällig
Die Wirksamkeit der einzelnen Ansätze hängt von verschiedenen Faktoren ab. Die Beantwortung der nachfolgenden Fragen ist ein guter Ausgangspunkt. Wie stark ist der Ansatz in obligatorische Prozesse integriert oder mit ihnen kompatibel (wie z. B. Budgetplanung und Investitionsrechnung)? Ist die ausgewählte Szenariomethode leicht zu verwenden und teilt sie den Wert allen Beteiligten wirksam mit?
Organisationen müssen zwischen der Flexibilität beim Auswählen der für eine bestimmte Behörde geeigneten Wertindikatoren und der Steuerung zur Gewährleistung behördenübergreifender Vergleichbarkeit ein Gleichgewicht finden. Zudem ist die Fähigkeit, eine gegebene Bewertungsmetrik im gesamten Investitionslebenszyklus und nicht nur zur Geschäftsszenariozeit zu verwenden, äußerst wichtig. Ebenso sollte der Plan für verschiedene Arten von Investitionen einen Nutzen haben.
Aus diesem Grund empfiehlt sich die Auswahl eines Wertansatzes und seine Entwicklung in Verbindung mit den Beteiligten in der Führungsstruktur der Organisation. Es ist unbedingt notwendig, dass der ausgewählte Rahmen eine effektive Möglichkeit bereitstellt, internen und externen Beteiligten den Wert zu vermitteln. Dies gilt sowohl für Unternehmensleiter als auch für gewählte Funktionäre oder Behördenverwaltungen.
Zusätzliche Ressourcen
  • Webcast: IT als strategische Geschäftsanlage
  • Reihe „IT Manager Connections“

Acer Maamoun ist ein Unternehmensstrategieberater, der für Microsoft tätig ist. Er hat mehr als 18 Jahre Erfahrung in den Bereichen IT-Strategie und Betriebsabstimmung.


 The Cable Guy: Das authentifizierte Internetprotokoll
The Cable Guy
Das authentifizierte Internetprotokoll
Joseph Davies
In Teilen dieses Artikels wird eine Vorabversion von Windows Server 2008 erörtert. Änderungen an diesen Einzelheiten sind vorbehalten.

Windows Vista und Windows Server 2008 (derzeit in der Betatestversion) unterstützen beide das authentifizierte Internetprotokoll (Authenticated Internet Protocol, AuthIP), eine verbesserte Version des Internetschlüsselaustausch (Internet Key Exchange, IKE)-Protokolls. Sowohl AuthIP als auch IKE sind Protokolle, die zum Festlegen von Schlüsselerstellungsmaterial und Aushandeln von Sicherheitsparametern für die geschützte Kommunikation mithilfe von
Internetprotokollsicherheit (Internet Protocol Security, IPsec) verwendet werden. AuthIP stellt vereinfachte IPSec-Richtlinienkonfiguration und -wartung in vielen Konfigurationen bereit und bietet zusätzliche Flexibilität für die IPSec-Peerauthentifizierung. In diesem Artikel werden die Protokolldetails von AuthIP und Koexistenzverhaltensweisen zwischen IPSec-Peers beschrieben, die entweder AuthIP und IKE oder nur IKE unterstützen.

Übersicht über IKE
Aushandlungsbeispiele
Um das Koexistenzverhalten zu demonstrieren, wird untersucht, was zwischen Windows Vista und Windows XP-basierenden IPSec-Peers bei dem Versuch der IPsec-Schutzaushandlung geschieht.

Beispiel 1: Zwei Windows Vista-basierte IPSec-Peers im Anforderungsmodus
In diesem Beispiel ist ein Windows Vista-basierter IPSec-Peer (Peer 1) der Initiator, und der Antwortdienst wird auf Windows Vista (Peer 2) ausgeführt. Beide Peers sind mit dem Anforderungsmodus sowohl für die eingehende als auch die ausgehende Kommunikation konfiguriert. Im Anforderungsmodus fordert ein IPSec-Peer IPSec-Schutz an, braucht ihn aber nicht. Folgende Nachrichten werden ausgetauscht:
  1. Peer 1 sendet ein Klartext-TCP-Synchronisierungssegment (SYN), wodurch eine TCP-Verbindung mit Peer 2 initiiert wird.
  2. Peer 2 sendet ein TCP-SYN-Bestätigungssegment (Acknowledgment, ACK).
  3. Peer 1 sendet ein TCP-ACK-Segment.
  4. Peer 1 sendet eine AuthIP-basierte ISAKMP-Nachricht, die die AuthIP-Hauptmodusaushandlung initiiert.
  5. Peer 1 sendet eine IKE-basierte ISAKMP-Nachricht, die die IKE-Hauptmodusaushandlung initiiert.
  6. Peer 2 antwortet mit einer AuthIP-basierten ISAKMP-Nachricht, womit die AuthIP-Hauptmodusaushandlung fortgesetzt wird.
  7. Peer 1 und 2 schließen die AuthIP-Aushandlung im Hauptmodus, Schnellmodus und erweiterten Modus (optional) ab.
  8. Nachfolgende, über die TCP-Verbindung gesendete Segmente sind durch IPSec geschützt.
Die genaue Reihenfolge der Nachrichten 1 bis 5 hängt von der Netzwerklatenz ab. Die in diesem Artikel beschriebenen Beispiele sind für ein Netzwerk mit sehr niedriger Latenz gedacht, in dem der TCP-Handshake (Nachricht 1 bis 3) abgeschlossen wird, bevor Peer 1 die anfänglichen ISAKMP-Nachrichten (Nachricht 4 und 5) senden kann. In einem Netzwerk höherer Latenz würde Peer 1 das Klartext-TCP-SYN-Segment, die AuthIP-basierte ISAKMP-Nachricht und dann die IKE-basierte ISAKMP-Nachricht als die ersten drei Nachrichten des Nachrichtenaustauschs senden.

Beispiel 2: Windows Vista-basierter IPSec-Peer im Anforderungsmodus und ein Windows XP-basierter IPSec-Peer im Anforderungsmodus
In diesem Beispiel ist ein Windows Vista-basierter IPSec-Peer (Peer 1) der Initiator, und der Antwortdienst wird auf Windows XP (Peer 2) ausgeführt. Beide Peers sind mit dem Anforderungsmodus sowohl für die eingehende als auch die ausgehende Kommunikation konfiguriert. Folgende Nachrichten werden ausgetauscht:
  1. Peer 1 sendet ein Klartext-TCP-SYN-Segment, wodurch eine TCP-Verbindung mit Peer 2 initiiert wird.
  2. Peer 2 sendet ein TCP-SYN-ACK-Segment.
  3. Peer 1 sendet ein TCP-ACK-Segment.
  4. Peer 1 sendet eine AuthIP-basierte ISAKMP-Nachricht, die die AuthIP-Hauptmodusaushandlung initiiert.
  5. Peer 1 sendet eine IKE-basierte ISAKMP-Nachricht, die die IKE-Hauptmodusaushandlung initiiert.
  6. Peer 2 antwortet mit einer IKE-basierten ISAKMP-Nachricht, womit die IKE-Hauptmodusaushandlung fortgesetzt wird.
  7. Peer 1 und 2 schließen die IKE-Hauptmodus- und Schnellmodusaushandlung ab.
  8. Nachfolgende, über die TCP-Verbindung gesendete Segmente sind durch IPSec geschützt.

Beispiel 3: Windows Vista-basierter IPSec-Peer im Anforderungsmodus und ein Windows XP-basierter IPSec-Peer im Abfragemodus
In diesem Beispiel ist ein Windows Vista-basierter IPSec-Peer (Peer 1) der Initiator, und der Antwortdienst wird auf Windows XP (Peer 2) ausgeführt. Peer 1 ist mit dem Anforderungsmodus für die ausgehende Kommunikation konfiguriert, und Peer 2 ist mit dem Abfragemodus für die eingehende Kommunikation konfiguriert. Im Abfragemodus ist für IPSec-Peer IPSec-Schutz erforderlich, und ungeschützte Pakete werden automatisch verworfen. Folgende Nachrichten werden ausgetauscht:
  1. Peer 1 sendet ein Klartext-TCP-SYN-Segment, wodurch eine TCP-Verbindung initiiert wird, die von Peer 2 automatisch verworfen wird.
  2. Peer 1 sendet eine AuthIP-basierte ISAKMP-Nachricht, wodurch die AuthIP-Hauptmodusaushandlung initiiert wird, die von Peer 2 automatisch verworfen wird.
  3. Peer 1 sendet eine IKE-basierte ISAKMP-Nachricht, die die IKE-Hauptmodusaushandlung initiiert.
  4. Peer 2 antwortet mit einer IKE-basierten ISAKMP-Nachricht, womit die IKE-Hauptmodusaushandlung fortgesetzt wird.
  5. Peer 1 und Peer 2 schließen die IKE-Hauptmodus- und Schnellmodusaushandlung ab.
  6. Peer 1 überträgt das TCP-SYN-Segment (mit IPSec geschützt) neu.
  7. Peer 2 sendet das TCP-SYN-ACK-Segment (mit IPSec geschützt).
  8. Peer 1 sendet das TCP-ACK-Segment (mit IPSec geschützt).

IKE ist ein in RFC 2409 (ietf.org/rfc/rfc2409.txt) definierter Internetstandard, der eine Methode zum Festlegen von IPSec-Sicherheitszuordnungen (Security Association, SA) definiert. Eine SA ist eine Kombination aus einer gegenseitig annehmbaren Richtlinie und Schlüsseln, durch die Sicherheitsdienste und Methoden definiert werden, die zum Schutz der Kommunikation zwischen IPSec-Peers beitragen. Speziell werden in IKE das Internet Security Association and Key Management-Protokoll (ISAKMP) in RFC 2408 und das Oakley Key Determination-Protokoll (RFC 2412) verbunden. IKE verwendet das Oakley Key Determination-Protokoll zum Generieren von geheimem Schlüsselmaterial für die geschützte Kommunikation.
IKE verwendet ISAKMP zum Aushandeln von SAs. ISAKMP umfasst Einrichtungen zum Identifizieren und Authentifizieren von Peers, zum Verwalten von SAs und zum Austauschen von Schlüsselmaterial. ISAKMP ist ein Framework zum Aushandeln geschützter Kommunikation, die unabhängig von bestimmten Schlüsselaustauschprotokollen, Verschlüsselungs- und Integritätsalgorithmen sowie Authentifizierungsmethoden ist.
IPSec-Peers verwenden IKE zum Durchführen der Hauptmodus- und Schnellmodusaushandlung. Bei der Hauptmodusaushandlung wird die ISAKMP-Sicherheitszuordnung erstellt, durch die Sicherheitsaushandlungen geschützt werden. Während der Hauptmodusaushandlung tauschen der Initiator und der Antwortdienst eine Reihe von ISAKMP-Nachrichten aus, um die Verschlüsselungs- und Hashalgorithmen für die ISAKMP-Sicherheitszuordnung auszuhandeln, Schlüsselermittlungsmaterial auszutauschen und einander zu identifizieren und authentifizieren.
In der Schnellmodusaushandlungsphase werden die beiden IPSec-Sicherheitszuordnungen erstellt (eine SA für eingehende Daten und eine andere für ausgehende Daten), wodurch die zwischen zwei IPsec-Peers gesendeten Daten geschützt werden. Während der Schnellmodusaushandlung tauschen der Initiator und der Antwortdienst eine Reihe verschlüsselter ISAKMP-Nachrichten aus, um die Verschlüsselungs- und Hashalgorithmen sowohl für die eingehenden als auch die ausgehenden IPSec-SAs auszuhandeln.
Weitere Informationen zur IKE-basierten Hauptmodus- und Schnellmodusaushandlung finden Sie unter „IKE-Aushandlung für IPsec-Sicherheitszuordnungen“ unter microsoft.com/technet/community/columns/cableguy/cg0602.mspx.

Übersicht über AuthIP
AuthIP ist eine verbesserte Version von IKE, die zusätzliche Flexibilität mit Support für die benutzerbasierte Authentifizierung, Authentifizierung mit mehreren Anmeldeinformationen, verbesserte Authentifizierungsmethodenaushandlung und asymmetrische Authentifizierung bietet. Genau wie IKE unterstützt AuthIP die Hauptmodus- und Schnellmodusaushandlung. AuthIP unterstützt auch den erweiterten Modus, ein Teil der IPSec-Peeraushandlung, in dem eine zweite Authentifizierungsrunde durchgeführt werden kann. Der (optionale) erweiterte Modus kann für mehrere Authentifizierungen verwendet werden. Mit dem erweiterten Modus können beispielsweise separate computerbasierte und benutzerbasierte Authentifizierungen durchgeführt werden.
Der mehrfache Authentifizierungssupport ist Teil der IPSec-Erzwingung für die Netzwerkzugriffsschutz-Plattform (Network Access Protection, NAP), auf der sich IPSec-Peers mit Computeranmeldeinformationen authentifizieren und darüber hinaus mit einem Integritätszertifikat nachweisen, dass sie kompatibel mit Systemintegritätsanforderungen sind. Weitere Informationen zum Netzwerkzugriffsschutz finden Sie unter microsoft.com/nap. Weitere Informationen zu den Features von AuthIP sind unter „AuthIP in Windows Vista“ unter microsoft.com/technet/community/columns/cableguy/cg0806.mspx verfügbar.

AuthIP-Nachrichten
Sowohl IKE als auch AuthIP verwenden ISAKMP als Schlüsselaustausch- und SA-Aushandlungsprotokoll. ISAKMP-Nachrichten werden über das User Datagram-Protokoll (UDP) gesendet und bestehen aus einem ISAKMP-Header und einer oder mehren ISAKMP-Nutzlasten. Der ISAKMP-Header enthält Informationen zur Nachricht einschließlich des Nachrichtentyps. Abbildung 1 zeigt das Format des ISAKMP-Headers.
Abbildung 1 Format des ISAKMP-Headers
Abbildung 1 Format des ISAKMP-Headers
Im ISAKMP-Header werden das Initiatorcookie und das Antwortcookie auf eine von den IPsec-Peers ausgewählte Zufallszahl eingestellt, die nicht Null ist. Das Feld für die nächste Nutzlast zeigt die erste Nutzlast in der ISAKMP-Nachricht gleich hinter dem ISAKMP-Header an. RFC 2408 führt definierte Werte des Felds für die nächste Nutzlast auf. Die Nutzlasttypen 128–255 sind zur privaten Verwendung reserviert. Die Felder „Hauptversion“ und „Nebenversion“ zeigen die Versionen von ISAKMP auf dem IPSec-Peer an, der die ISAKMP-Nachricht sendet. Für IKE und AuthIP ist die Hauptversion 1 und die Nebenversion 0.
Das Feld „Austauschtyp“ zeigt den Typ des durchgeführten ISAKMP-Austauschs an. Der Austauschtyp diktiert die Struktur und Reihenfolge von ISAKMP-Nutzlasten. RFC 2408 definiert die Werte des Felds „Austauschtyp“. Die Austauschtypen 128–255 sind zur privaten Verwendung reserviert.
Das Feld „Flags“ enthält drei in RFC 2408 definierte Kennzeichen. Das untere Bit (Bit 0) ist das Verschlüsselungsbit, das anzeigt, dass die ISAKMP-Nutzlasten (bei Einstellung auf 1) verschlüsselt oder (bei Einstellung auf 0) nicht verschlüsselt sind. Die Verschlüsselung erfolgt mithilfe des für die ISAKMP-SA ausgehandelten Algorithmus, der durch die Kombination der Felder „Initiatorcookie“ und „Antwortcookie“ identifiziert wird. Das nächste untere Bit (Bit 1) ist das Commit-Bit, das anzeigt, dass der Schlüsselaustausch (bei Einstellung auf 1) synchronisiert oder (bei Einstellung auf 0) nicht synchronisiert wird. Das Commit-Bit soll sicherstellen, dass die SA ihre Aushandlung vor dem Senden verschlüsselter Daten abschließt. Das nächste untere Bit (Bit 2) ist das Authentication Only-Bit, mit dem angezeigt wird, dass die Nachricht die gesamte Notify-Nutzlast des Informationsaustauschtyps enthält (bei Einstellung auf 1) oder nicht (bei Einstellung auf 0) und authentifiziert, aber nicht verschlüsselt wurde.
Das Feld „Nachrichten-ID“ enthält einen eindeutigen Bezeichner für die Nachricht. Mit der Nachrichten-ID werden Konflikte verhindert, wenn beide IPSec-Peers versuchen, gleichzeitig eine IPSec-SA einzurichten. Das Feld „Länge“ zeigt die Länge der gesamten ISAKMP-Nachricht an.
Für IKE enthält die ISAKMP-Nachricht eine Reihe von ISAKMP-Nutzlasten. Die erste Nutzlast wird im Feld für die nächste Nutzlast des ISAKMP-Headers angezeigt. Jede ISAKMP-Nutzlast verfügt über ein eigenes Feld zur Anzeige der nächsten Nutzlast. Das Feld für die nächste Nutzlast ist in der letzten Nutzlast auf 0 eingestellt. Abbildung 2 zeigt das Format von IKE-Nachrichten.
Abbildung 2 Format von IKE Nachrichten
Abbildung 2 Format von IKE Nachrichten
AuthIP verwendet ISAKMP-Nachrichten mit den Austauschtypen 243 (Hauptmodus), 244 (Schnellmodus), 245 (erweiterter Modus) und 246 (Benachrichtigen) im Feld „Austauschtyp“ im ISAKMP-Header. Ein wichtiger Unterschied bei AuthIP-basierten ISAKMP-Nachrichten besteht darin, dass sie nur eine ISAKMP-Nutzlast enthalten: entweder die Crypto-Nutzlast oder die Notify-Nutzlast. Die Crypto-Nutzlast enthält die eingebetteten Nutzlasten, die für die Aushandlung im Hauptmodus-, Schnellmodus- oder erweiterten Modus verwendet werden. Die Crypto-Nutzlast kann abhängig vom Verschlüsselungsbit im Feld „Flags“ des ISAKMP-Headers einen Satz von Nur-Text- oder verschlüsselten Nutzlasten enthalten. Abbildung 3 zeigt das Format von AuthIP-Nachrichten, die die Crypto-Nutzlast enthalten.
Abbildung 3 Format von AuthIP-Nachrichten, die die Crypto-Nutzlast enthalten
Abbildung 3 Format von AuthIP-Nachrichten, die die Crypto-Nutzlast enthalten

Koexistenz von AuthIP und IKE
Windows Vista® und Windows Server® 2008 unterstützen sowohl IKE als auch AuthIP. Windows® XP und Windows Server 2003 unterstützen jedoch nur IKE. Ein initiierender IPSec-Peer, der AuthIP und IKE unterstützt und über eine Verbindungssicherheitsrichtlinie verfügt, die sowohl AuthIP als auch IKE verwendet, muss ermitteln, ob der antwortende IPSec-Peer AuthIP oder IKE unterstützt. Dann muss der initiierende IPSec-Peer das passendste Protokoll zum Aushandeln des IPSec-Schutzes verwenden, wobei der Verwendung von AuthIP gegenüber IKE der Vorzug gegeben wird.
Um das Verhandlungsprotokoll des antwortenden IPSec-Peers zu ermitteln, sendet ein initiierender IPSec-Peer, der sowohl AuthIP als auch IKE verwendet, gleichzeitig die folgenden Nachrichten:
  • Nachricht 1 – eine AuthIP-Nachricht, die die Hauptmodusaushandlung initiiert
  • Nachricht 2 – eine IKE-Nachricht, die die Hauptmodusaushandlung initiiert
Wenn der antwortende Knoten AuthIP unterstützt, muss er auf Nachricht 1 mit einer AuthIP-Nachricht antworten, die die Hauptmodusaushandlung fortsetzt, und Nachricht 2 automatisch verwerfen. Ein antwortender Knoten, der AuthIP nicht unterstützt, verwirft automatisch Nachricht 1, da das in ihr enthaltene Austauschtypfeld einen Wert enthält, den er nicht unterstützt, und antwortet auf Nachricht 2.
Um die IKE-basierte Aushandlung zwischen zwei IPSec-Peers zu verhindern, auf denen Windows Vista oder Windows Server 2008 ausgeführt wird, wenn Nachricht 1 im Netzwerk verworfen wird oder nach Nachricht 2 eintrifft, senden IPSec-Peers, auf denen Windows Vista oder Windows Server 2008 ausgeführt wird, Nachricht 2 mit einer AuthIP-unterstützten Hersteller-ID-ISAKMP-Nutzlast. Die AuthIP-unterstützte Hersteller-ID-Nutzlast zeigt an, dass der IPSec-Peer AuthIP unterstützt.
Wenn daher ein IPSec-Peer, auf dem Windows Vista oder Windows Server 2008 ausgeführt wird, Nachricht 2 mit der AuthIP-unterstützten Hersteller-ID-Nutzlast erhält, wartet er darauf, dass der initiierende IPSec-Peer Nachricht 1 und 2 neu überträgt, und antwortet auf Nachricht 1.
Der initiierende IPSec-Peer fährt mit der Neuübertragung von Nachricht 1 und 2 fort, bis er eine Antwort erhält oder ein Timeout eintritt. Wenn der Initiator eine Antwort erhält, ermittelt er die Funktion des Antwortdiensts im ISAKMP-Header der Antwort. Wenn der Austauschtyp auf 243 eingestellt ist (der Austauschtyp für auf AuthIP-basierte Hauptmodusaushandlung), ist der Antwortdienst AuthIP-fähig. Wenn der Austauschtyp auf 2 eingestellt ist (der Austauschtyp für auf Identitätsschutz und IKE-basierte Hauptmodusaushandlung), ist der Antwortdienst IKE-fähig.
Je nach der Antwort antwortet der Initiator entweder mit der nächsten AuthIP-Nachricht für die AuthIP-Hauptmodusaushandlung oder mit der nächsten IKE-Nachricht für die IKE-Hauptmodusaushandlung. Die IPSec-Peers müssen für die Gültigkeitsdauer der SA dasselbe Protokoll verwenden, das zum Aushandeln der ISAKMP-SA verwendet wurde.

Joseph Davies ist technischer Redakteur bei Microsoft und Autor der monatlich erscheinenden TechNet-Rubrik „The Cable Guy“ unter Microsoft.com/technet/community/columns/cableguy.


 Windows PowerShell: Arbeiten ohne Skript
Windows PowerShell
Arbeiten ohne Skript
Don Jones

Wenn ich mich über Windows PowerShell unterhalte – ob auf einer Konferenz, in der öffentlichen Windows PowerShell-Newsgroup oder sogar auf meiner Website – begegne ich stets Administratoren, die mir sagen, dass sie damit „warten“ werden, Windows PowerShell kennenzulernen. Warum? Dies ist der häufigste Grund, den sie dafür angeben:
„Im Moment habe ich einfach keine Zeit zu lernen, wie ein Skript erstellt wird.“
Dies dürfte die allgemeine Stimmung ausdrücken. Administratoren sind vielbeschäftigt und haben nicht gerade viel freie Zeit zum Erlernen neuer Technologien. Doch wir müssen immer vorausschauen und uns mit neuer Software wie Windows Vista®, Windows Server® 2008 und Exchange Server 2007 vertraut machen, sodass wir die Technologien kennen, die über den Erfolg unserer Arbeit entscheiden. Windows PowerShell™ stellt einen großen Teil dieser Technologien dar.
Ein anderer Grund, der von Administratoren häufig dafür angeführt wird, warum sie es aufschieben, die Skripterstellung in Windows PowerShell zu lernen, ist die „Befürchtung zum Programmierer zu werden“, wie ein Kollege dies einmal ausdrückte. Das ist etwas, wobei ich Ihnen helfen kann. Es wird Sie vielleicht überraschen, doch Sie können mit Windows PowerShell Erstaunliches bewerkstelligen, ohne eine einzige Zeile Code zu schreiben.

Vorbereitung auf die Pipeline
Ich habe bereits einen Artikel über die äußerst flexible und leistungsfähige objektorientierte Pipeline geschrieben, die von Windows PowerShell verwendet wird. (Auch wenn Sie aufgrund der Bezeichnung „objektorientiert“ befürchten, dass ich hier auf Programmierung zusteuere, haben Sie bitte Geduld.) Eines der Merkmale, die mir an der Pipeline am meisten zusagen, ist die Art und Weise, wie sie interaktiv eingesetzt werden kann. Sie erhalten unmittelbare Ergebnisse, und können diese leicht optimieren, sodass Sie genau das erhalten, was Sie im Auge hatten. Nehmen Sie zum Beispiel an, dass ich die Bestandsaufnahme des freien Speicherplatzes für mehrere Remotecomputer abrufen will. Angenommen, die Namen der Computer sind in der Textdatei „C:\Computers.txt“ aufgelistet. Es handelt sich einfach um eine Nur-Text-Datei mit einem Computernamen pro Zeile, nichts Kompliziertes wie etwa eine Datenbank.
Als Erstes überprüfe ich, ob ich diese Informationen von meinem lokalen Computer abrufen kann. Denn wenn dies mit einem Computer funktioniert, dann dürfte es relativ einfach auch mit mehreren Computern klappen. Noch einmal zur Erinnerung: Hierbei soll keinerlei Skripterstellung verwendet werden. Der gesamte Arbeitsgang erfolgt interaktiv in der Shell, die Ergebnisse werden direkt nach Drücken der Eingabetaste ausgegeben.
Hier ist ein Tipp zu dieser Art von Aufgabe. Wenn Sie von Remotecomputern Bestandsverwaltungsinformationen abrufen wollen, werden Sie wahrscheinlich Windows® Management Instrumentation (WMI) verwenden. Nehmen Sie jetzt für dieses Beispiel an, dass ich keinerlei über die Verwendung von WMI hinausgehenden Kenntnisse besitze. Also gehe ich zu Live Search und gebe „Windows WMI freier Speicherplatz“ als Suchbegriff ein. Es werden mehrere Ergebnisse angezeigt, deren Auszüge den Ausdruck „Win32_LogicalDisk“ enthalten. Für mich sieht dies nach einer WMI-Klasse aus, und es dürfte diejenige sein, die ich suche. Ich klicke gar nicht erst auf die Suchergebnisse. Stattdessen gebe ich als neuen Suchbegriff „Win32_LogicalDisk“ ein, und das oberste Suchergebnis verweist auf eine Win32_LogicalDisk-Dokumentationsseite auf der MSDN®-Site (msdn2.microsoft.com/aa394173.aspx). Also gehe ich zu dieser Seite und sehe, dass eine der Eigenschaften dieser Klasse „FreeSpace“ heißt, was sich sehr vielversprechend anhört.

Finden eines Cmdlet
Im nächsten Schritt muss ich ein Cmdlet finden, das für mich die Eigenschaften einer WMI-Klasse abruft. Die fantastischen integrierten Selbstermittlungsfeatures stellen einen der bemerkenswerten Aspekte von Windows PowerShell dar. Das heißt, die Shell kann Ihnen helfen, mehr über ihre eigenen Merkmale herauszufinden. Also gebe ich „Help *wmi*“ ein, um festzustellen, inwieweit die Shell mit WMI zusammenarbeiten kann. Das Ergebnis sind der Gwmi-Alias und das Cmdlet „Get-WMIObject“, auf das dieser verweist (siehe Abbildung 1). Im Grunde gibt es zwei Möglichkeiten, auf die gleiche Funktionalität zuzugreifen. Die Entscheidung, welche davon ich verwenden muss, fällt also nicht schwer. Da sie das Gleiche bewirken und die Eingabe von „Gwmi“ kürzer ist, verwende ich das:
Abbildung 1 Was die Shell über die Arbeit mit WMI weiß
Abbildung 1 Was die Shell über die Arbeit mit WMI weiß
PS C:\> gwmi win32_logicaldisk
Bei Windows PowerShell wird nicht zwischen Groß- und Kleinschreibung unterschieden. Administratoren haben schließlich keine Zeit für umständliche Details wie das Drücken der Umschalttaste.
Die Ergebnisse dieses Befehls, die in Abbildung 2 gezeigt werden, umfassen meine fünf lokalen Laufwerke und ihre FreeSpace-Eigenschaften, die offenbar in Byte aufgelistet werden. Außerdem wird die DriveType-Eigenschaft für jedes dieser Laufwerke aufgelistet, auf meinem Computer sehe ich die Werte 2, 3 und 5.
Abbildung 2 Alle lokalen Laufwerke und deren FreeSpace-Eigenschaften
Abbildung 2 Alle lokalen Laufwerke und deren FreeSpace-Eigenschaften

Cmdlet des Monats
Sie haben möglicherweise bereits mit Get-Content den Inhalt einer Textdatei abgerufen. Es behandelt jede Zeile der Datei als [string]-Objekt und leitet die Objekte an die Pipeline weiter, damit sie von anderen Cmdlets bearbeitet werden können. Get-Content weist jedoch eine Reihe von Optionen auf, durch die es flexibler wird: Der Parameter „–readCount“ ermöglicht Ihnen beispielsweise die Angabe, wie viele [string]-Objekte gleichzeitig an die Pipeline weitergeleitet werden (in der Standardeinstellung sind dies alle), während der Parameter „–totalCount“ die Gesamtanzahl der Zeilen steuert, die von der Datei gelesen werden. Beide Parameter sind für die Arbeit mit sehr großen Dateien nützlich, bei denen Sie aus Leistungsgründen möglicherweise nicht die ganze Datei sofort verarbeiten möchten.
Hier ist ein weiterer nützlicher Parameter: –encoding ermöglicht, dass eine große Vielfalt von Dateicodierungstypen, einschließlich Unicode, ASCII, UTF7, UTF8 und viele andere, korrekt gelesen werden. Um eine vollständige Liste unterstützter Codierungstypen anzuzeigen, führen Sie „help gc“ aus (gc ist ein Alias von Get-Content).

Optimieren der Daten
An diesem Punkt stehe ich vor zwei Problemen. Erstens möchte ich nur Angaben zur Eigenschaft „FreeSpace“. Die anderen Eigenschaften interessieren mich nicht. Zweitens will ich nichts über freien Speicherplatz auf optischen Laufwerken, Wechsellaufwerken und Netzwerklaufwerken wissen. Mich interessieren nur lokale Festplatten. Vielleicht kann die DriveType-Eigenschaft mir bei dieser Unterscheidung helfen. Ich gehe zurück zu meinem Webbrowser und sehe, dass die Dokumentation eine Tabelle enthält, in der erklärt wird, was die verschiedenen DriveType-Werte bedeuten. Mich interessieren nur diejenigen mit DriveType 3, wodurch angezeigt wird, dass es sich beim Laufwerk um eine lokale Festplatte handelt. Da ich dies noch nie zuvor ausgeführt habe, möchte ich sehen, ob der Gwmi-Befehl eine Art Filterung vornehmen kann. Durch Ausführen von Help Gwmi –full erhalte ich Einzelheiten über die Funktionsweise des Befehls, einschließlich einiger Beispiele. Ich finde einen Parameter, der nützlich aussieht ( –filter), und beschließe, versuchsweise Folgendes auszuführen:
gwmi win32_logicaldisk -filter "drivetype = 3"
Es hat funktioniert! Meine Laufwerksliste enthält jetzt nur lokale Festplatten. Damit ist das zweite Problem gelöst. Jetzt muss ich das erste Problem lösen und all die Eigenschaften loswerden, die mich nicht interessieren.
Ich führe Get-Command aus, um alle Windows PowerShell-Cmdlets aufzulisten, und schließlich stoße ich auf Select-Object. Die Beschreibung besagt, dass damit die angegebenen Eigenschaften eines Objekts oder Objektsatzes ausgewählt werden. Also versuche ich Folgendes:
gwmi win32_logicaldisk -filter "drivetype = 3" | select freespace
Durch das Leiten der Ergebnisse von Gwmi an Select (dem Alias von Select-Object) kann ich genau die Eigenschaft abrufen, die ich will. Doch diese Ergebnisse sind nicht so gut, da nur noch eine Liste von Nummern bleibt und ich nicht mehr weiß, welches Laufwerk zu welcher Freispeicherplatzliste gehört. Deshalb gehe ich zurück zur Dokumentation und sehe, dass die DeviceID-Eigenschaft den Laufwerkbuchstaben enthält. Ich überarbeite schnell meinen Befehl und versuche es erneut:
gwmi win32_logicaldisk -filter "drivetype = 3" | select deviceid,freespace
Perfekt! Da nur zwei Eigenschaften aufgelistet werden, kann die Shell die Informationen in eine übersichtliche Tabelle eintragen. (Nächsten Monat werde ich erläutern, wann Windows PowerShell Listen und wann Tabellen verwendet.)

Berechnen
Ich habe die Informationen zu freiem Speicherplatz abgerufen, doch sie sind in Byte angegeben und nicht so nützlich wie Megabyte oder Gigabyte. Ggf. interessiert mich die FreeSpace-Eigenschaft selbst gar nicht, sondern ein Wert, der aus dieser berechnet wird. Das Cmdlet „ForEach-Object“ (oder einer seiner vielen Aliase, wie z. B. „%“) kann hier weiterhelfen. Dieses Cmdlet ermöglicht die Verwendung einer besonderen Variablen, $_, für den Verweis auf den aktuellen logischen Datenträger. Außerdem ermöglicht es den Zugriff auf die Eigenschaften der einzelnen Datenträger und das Anstellen einiger Berechnungen. Hier sehen Sie meinen überarbeiteten Befehl:
gwmi win32_logicaldisk -filter "drivetype = 3" | % { $_.deviceid; $_.freespace/1GB }
Ich habe Select entfernt und durch den Alias von ForEach-Object (%) ersetzt. Das Cmdlet benötigt von mir nur die Information, was es mit den einzelnen Win32_LogicalDisk, die es abruft, machen soll. Meine Anweisung lautet, dass es die DeviceID-Eigenschaft abrufen und die FreeSpace-Eigenschaft durch ein Gigabyte teilen soll – Windows PowerShell „weiß“, was ein KB, MB und GB sind – sodass meine Ausgabe in Gigabyte angezeigt wird.

Anwenden auf viele Computer
Der Befehl funktioniert nun mit einem Computer, und es ist Zeit, ihn auf mehrere anzuwenden. Ich weiß, wie ich den Inhalt einer Textdatei abrufe. Wie zu MS-DOS®-Zeiten wird der Befehl „Type“ verwendet. In Windows PowerShell ist dieser ein Alias von Get-Content:
Type c:\computers.txt
Ich habe Folgendes vor: Ich möchte für jeden einzelnen Computer den WMI-Befehl durchführen, den ich bereits ausgearbeitet habe. Bei „für jeden einzelnen“ denken Sie sicher an ein Cmdlet, insbesondere an ForEach-Object. Lange Rede kurzer Sinn, dies ist der endgültige Befehl:
type c:\computers.txt | % { $_;
gwmi –computername $_ win32_logicaldisk -filter "drivetype=3" | % { $_.deviceid; $_.freespace/1GB} }
Furchterregend, nicht wahr? Dank meiner ausschließlichen Verwendung von Aliasen anstatt Cmdlet-Namen, ist er schwierig zu lesen. Er ist jedoch relativ leicht zu entschlüsseln, wenn Sie immer nur einen Teil betrachten.
  • Ich starte durch „Kategorisieren“ des Inhalts meiner Textdatei.
  • Ich leite den Inhalt zu ForEach-Object.
  • ForEach-Object gibt mithilfe der Variablen „$_“ das aktuelle Element aus. (Das ist der aktuelle Computername.)
  • ForEach-Object führt dann meinen WMI-Befehl aus, der einen anderen ForEach-Object-Aufruf umfasst.
Es mag hilfreich sein, die Aliase durch die Cmdlets zu ersetzen. Hier ist der gleiche Befehl, aber diesmal habe ich die Cmdlets ausgeschrieben und den Befehl in einzelne Zeilen unterteilt, damit Sie die Abschnitte leichter sehen können:
Get-Content C:\Computers.txt |
ForEach-Object {
 $_; Get-WMIObject –computername $_
Win32_LogicalDisk -filter "DriveType=3" |
 ForEach-Object {
 $_.DeviceID; $_.FreeSpace/1GB
 }
}
Das nicht sehr ansprechende jedoch funktionsfähige Ergebnis ist in Abbildung 3 zu sehen.
Abbildung 3 Endergebnis
Abbildung 3 Endergebnis

Keine Skripterstellung erforderlich
Diese Anleitung veranschaulicht, dass Sie Windows PowerShell ohne jegliche Skripterstellung verwenden können. Mit nur wenigen Befehlen wie diesem hier und ein wenig Forschungsarbeit in Windows PowerShell selbst können Sie einige der Elemente finden, die Sie für die Erledigung Ihrer jeweiligen Aufgabe benötigen.
Windows PowerShell wird nicht mehr von der Bildfläche verschwinden. Warum also nicht jetzt anfangen, ihre Verwendung zu erlernen? Sie werden sich vielleicht sogar wundern, wie Sie so lange ohne Windows PowerShell ausgekommen sind. Auf jeden Fall sollten Sie sich nicht von dem Gespenst der Skripterstellung davon abhalten lassen, sich gleich in die Materie einzuarbeiten.

Don Jones ist der führende Scripting-Guru bei SAPIEN Technologies und Ausbilder für ScriptingTraining.com. Sie können ihn über seine Website ScriptingAnswers.com erreichen.


 Hey, Scripting Guy!: Und es werde Silverlight
Hey, Scripting Guy!
Und es werde Silverlight
Die Scripting Guys von Microsoft
Laden Sie den Code für diesen Artikel herunter: HeyScriptingGuy2007_10.exe (156KB)

Die Menschheitsgeschichte zeichnet sich seit langem durch einen Schlagabtausch entgegengesetzter Kräfte aus: die Römer gegen die barbarischen Horden, die Griechen gegen Troja, die Scripting Guys gegen jene, die der Meinung sind, dass es in einem Artikel über Systemverwaltungsskripting tatsächlich um Systemverwaltungsskripting gehen sollte und nicht etwa um den historischen Schlagabtausch entgegengesetzter Kräfte.
Die Computerwelt ist gegenüber Konflikten zwischen entgegengesetzten Kräften nicht immun, wobei speziell an den Konflikt zwischen Entwicklern und Systemadministratoren zu denken ist. Wie schon Karl Marx bei der Lagebetrachtung sagte: „Entweder ist dieser Mann tot, oder meine Uhr ist stehen geblieben.“
Verzeihung – das stammt natürlich von Groucho Marx. Karl Marx hat gesagt, dass Kunst immer und überall ein geheimes Geständnis und gleichzeitig die unsterbliche Bewegung ihrer Zeit ist. Ehrlich gesagt haben wir keine Ahnung, was das zu bedeuten hat. Außerdem war Groucho Marx sehr viel amüsanter als Karl Marx, selbst wenn Grouchos geistreiche Bemerkungen für den Konflikt zwischen Entwicklern und Systemadministratoren nicht besonders relevant sind.
Unserer Ansicht nach war es Karl Marx, der dafür gesorgt hat, dass die Scripting Guys jeden Morgen vor der Arbeit den Automatisierungstreueschwur leisteten: „Systemadministratoren sind keine Entwickler.“ Und das stimmte mit Sicherheit: Systemadministratoren waren keine Entwickler. Entwickler waren Leute, die Computerprogramme schrieben, während Systemadministratoren Leute waren die ... ehrlich gesagt, sind wir uns nicht sicher, ob bei Microsoft wirklich jemand wusste, was Systemadministratoren taten. Auf jeden Fall schrieben sie keine Computerprogramme.
Natürlich schrieb Karl Marx auch den Song „The Times, They Are A-Changing“. (Zumindest hat er uns das so erzählt.)
Zum Teil ist es dem TechNet-Scriptcenter (microsoft.com/TechNet/scriptcenter) zu verdanken, dass Systemadministratoren allmählich VBScript entdeckten und damit begannen, eigene Dienstprogramme zu schreiben – Dienstprogramme die zwar nicht so vollständig und umfassend wie das typische Computerprogramm waren, aber dennoch nützliche Verwaltungsaufgaben durchführten. Beim Schreiben dieser Dienstprogramme mussten Systemadministratoren auf Fähigkeiten zurückgreifen, die den Fähigkeiten von Entwicklern sehr ähnlich sind.
Das ist aber noch nicht alles. Die Veröffentlichung von Windows PowerShell™ (microsoft.com/technet/scriptcenter/hubs/msh.mspx) bedeutet, dass das Microsoft® .NET Framework nun auch von Systemadministratoren und Skriptentwicklern genutzt werden kann. Mit Windows Vista® wurden technische Spielereien eingeführt (microsoft.com/technet/scriptcenter/topics/vista/gadgets-pt1.mspx), die zu einer Gleichberechtigung von Systemadministratoren (oder zumindest Systemadministratoren, die Skripts schreiben) und Entwicklern geführt haben. Und jetzt – Trommelwirbel, bitte – gibt es Microsoft Silverlight, das „browserübergreifende, plattformübergreifende Plug-In für die nächste Generation der .NET Framework-basierten Medienerfahrungen und umfassenden interaktiven Anwendungen für das Web“.
Das klingt eindrucksvoll, nicht wahr? Doch wahrscheinlich fragen Sie sich, was das mit Skripterstellern im Bereich Systemverwaltung zu tun hat, wie Sie es sind. Ehrlich gesagt, sind wir uns da nicht ganz sicher. Silverlight erleichtert jedoch das Erstellen äußerst cooler Benutzeroberflächen und Multimediapräsentationen. Obwohl das Marketingmaterial Silverlight ausnahmslos als Möglichkeit zum Erstellen von Webanwendungen vorstellt, hier eine wenig bekannte Tatsache: Silverlight scheint gleichermaßen gut in HTML-Anwendungen oder HTAs (microsoft.com/technet/scriptcenter/hubs/htas.mspx) zu funktionieren, ein Medium das bei Skripterstellern sehr beliebt ist. Vielleicht lohnt es sich daher für Sie, Silverlight einmal auszuprobieren.

Zunächst aber noch ein Hinweis:
Es sollte klargestellt werden, dass die vielen Funktionen und das Potenzial von Silverlight in diesem Artikel nicht erörtert werden. Vielmehr werden Codeausschnitte vorgestellt, um Sie zu Spielereien mit der Technologie anzuregen. Wenn Sie Silverlight (kostenlos) installieren möchten, besuchen Sie die Silverlight-Homepage unter microsoft.com/silverlight. Zudem finden Sie die SDKs, Beispielprojekte und viele andere nützliche Dinge unter silverlight.net/GetStarted.
Hier wird davon ausgegangen, dass Sie Silverlight bereits installiert haben. Außerdem wird angenommen, dass Sie den Bereich mit den Codedownloads auf der TechNet Magazin-Website (technetmagazine.com/code07.aspx) besucht und die in Abbildung 1 beschriebenen Dateien heruntergeladen haben.
Figure 1 Silverlight-Projektkomponenten (Close Figure 1)

Datei | Beschreibung
CreateSilverlight.js | Ein JScript-Skript (in der ersten Version unterstützt Silverlight nur JScript-Skripting), mit dem die ursprünglichen Silverlight-Starteinstellungen einschließlich der zum Konfigurieren der Benutzeroberfläche und von Grafikobjekten verwendeten XAML-Datei angegeben werden.
SampleProject.js | Eine leere Datei, in die JScript-Funktionen eingefügt werden können.
Silverlight.js | Diese Datei dient zum Initialisieren des Silverlight-Steuerelements.
SampleProject.html | Hier geht es richtig los. SampleProject.html ist einfach eine HTML-Datei, die Code zum Einlesen der drei .js-Dateien umfasst. Sie enthält darüber hinaus Code zum Instanziieren des Silverlight-Steuerelements.
SampleProject.xaml | Wozu dient diese Datei? Um das herauszufinden, müssen Sie zum Haupttext dieses Artikels zurückkehren.
SampleProject.js ist nicht unbedingt erforderlich, zumindest nicht für den Artikel dieses Monats. Silverlight ermöglicht das Anfügen von Skripts zu Objekten und Ereignissen in einem Projekt. Diese Skripts können entweder in der HTML-Datei hartcodiert sein oder (wie in diesem Fall) aus einer externen „include“-Datei wie dieser eingelesen werden. Außerdem wird SampleProject.html in eine HTA-Datei konvertiert: die Datei wird einfach in SampleProject.hta umbenannt.
Speichern Sie alle diese Dateien in einem Ordner. Jetzt kann es losgehen.

Die XAML-Datei
Wie Sie vielleicht bereits erraten haben, dreht sich im Artikel dieses Monats alles um die XAML-Datei. (Übrigens wird XAML „samel“ ausgesprochen, mit Betonung auf dem „a“. XAML ist die Abkürzung von Extensible Application Markup Language. Unter anderem bietet XAML die Möglichkeit, Benutzeroberflächen mithilfe einer XML-ähnlichen Sprache zu erstellen. Erleichtert dies die Aufgabe (speziell von Systemadministratoren) beim Erstellen von Benutzeroberflächen? Das werden Sie gleich herausfinden.
Starten Sie den Editor, und öffnen Sie die Datei „SampleProject.xaml“. Wenn Sie vorhandenen Code sehen, ersetzen Sie ihn durch Folgendes:
<Canvas
 xmlns="http://schemas.microsoft.com/
    client/2007"
 xmlns:x="http://schemas.microsoft.com/
    winfx/2006/xaml">
</Canvas>
Anmerkung. SampleProject.hta ist bereits so vorkonfiguriert, dass Informationen aus SampleProject.xaml geladen werden. Zum Verwenden einer anderen XAML-Datei müssen Sie die Datei „CreateSilverlight.js“ bearbeiten.
Nach Einfügen des Codes speichern Sie die Datei, bevor Sie auf SampleProject.hta doppelklicken. Was sehen Sie nun? Richtig: ein großes, langweiliges, graues Feld.
Wahrscheinlich sind Sie enttäuscht, aber das ist schon richtig.
Es gibt einfach noch nicht viel zu sehen, weil noch nichts ausgeführt wurde: bisher wurde der XAML-Datei nur eine Leinwand hinzugefügt. Doch das ist ein wichtiger Schritt. Wenn Sie in Öl malen, ist eine Leinwand schließlich das Erste, was Sie brauchen. Dasselbe gilt für Silverlight: bevor dem Projekt Elemente hinzugefügt werden können, ist eine Leinwand zum „Malen“ erforderlich. Die liegt also jetzt vor.
Warum handelt es sich übrigens um ein graues Feld, das 300 Pixel breit und 300 Pixel hoch ist? Die Antwort ist ganz einfach: es sind die in der Datei „CreateSilverlight.js“ vorhandenen Standardspezifikationen. Wenn Sie diese Standardwerte nicht mögen, öffnen Sie einfach CreateSilverlight.js und optimieren die Einstellungen nach Bedarf. Sie bevorzugen eine weiße Leinwand von 800 Pixeln Breite und 300 Pixeln Höhe? (Eine Größe, die für die hier verwendeten Beispiele wahrscheinlich besser angebracht ist.) Sorgen Sie einfach dafür, dass diese drei Zeilen in CreateSilverlight.js enthalten sind:
width:'800', // Width of rectangular region of
             // control in pixels.
height:'300', // Height of rectangular region
              // of control in pixels.
background:'white', // Background color of
                    // control.
Anmerkung. Richtig bemerkt: In der ursprünglichen .js-Datei ist der Hintergrund auf #D6D6D6 eingestellt. Jetzt wurde Weiß als Farbe festgelegt. Wie sich herausstellt, können Sie in einer XAML-Datei RGB-Werte oder Farbbezeichnungen zur Darstellung von Farben verwenden. (Unter msdn2.microsoft.com/bb188314.aspx finden Sie eine vollständige Liste von Farbwerten und Farbbezeichnungen.) Obwohl die Scripting Guys Farben am liebsten mit ihren RGB-Werten bezeichnen („Mein Haus? Es ist ein FFFFFACD mit FFCD5C5C-Dekor“), wurde entschieden, hier Farbbezeichnungen zu verwenden.
Ein zusätzlicher Tipp: Sie sind nicht darauf beschränkt, Volltonfarben als Leinwandhintergrund zu verwenden. Fügen Sie den Code aus Abbildung 2 in die XAML-Datei ein, und sehen Sie sich das Ergebnis an.
Figure 2 Hübsche Farben (Close Figure 2)
<Canvas
 xmlns="http://schemas.microsoft.com/client/2007"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 Width="800"
 Height="300">

 <Canvas.Background>
 <LinearGradientBrush>
 <GradientStop Color="Blue" Offset="0.0" />
 <GradientStop Color="Black" Offset="1.0" />
 </LinearGradientBrush>
 </Canvas.Background>

</Canvas>
Fertig? Ziemlich cool, nicht wahr?
Natürlich ist eine leere Leinwand für sich nicht besonders interessant. Daher soll nun dieser Leinwand ein Objekt hinzugefügt werden. In Silverlight können zwar alle möglichen verschiedenen Objekte (einschließlich Ellipsen, Rechtecken, Linien und Vielecke) hinzugefügt werden, wird in diesem Beispiel der Leinwand einfach ein herkömmlicher Textblock hinzugefügt. Wie? Durch Einfügen der folgenden Tags zwischen die <Canvas>- und </Canvas>-Tags in der XAML-Datei:
<TextBlock
 Name="Test"
 FontSize="40"
 FontFamily="Georgia"
 FontWeight="Bold"
 Canvas.Top="20"
 Canvas.Left="20"
 Text="The TechNet Script Center">
</TextBlock>
Wie Sie sehen, ist XAML wirklich nicht besonders schwer. Nehmen Sie sich zunächst den <TextBlock>-Tag vor, wobei sichergestellt werden muss, dass verschiedene TextBlock-Parameter (beispielsweise Name und FontSize) in den Tag aufgenommen werden. Dann wird mithilfe des </TextBlock>-Tags angezeigt, dass der TextBlock fertig bearbeitet ist. Was daran so cool ist? Es ist praktisch die Art und Weise, wie jedes beliebige Objekt einer XAML-Datei hinzugefügt wird. Sie möchten ein Rechteck von 300 Pixeln Breite und 100 Pixeln Höhe hinzufügen? Kein Problem:
<Rectangle
 Height="300"
 Width="100"
 Fill="Blue">
</Rectangle>
Wenn Sie übrigens der Leinwand eine Form (beispielsweise ein Rechteck) hinzufügen, stellen Sie sicher, dass Sie eine Füllfarbe und/oder eine Strichfarbe angeben. Falls Sie dies nicht tun, fügt Silverlight der Leinwand ein transparentes Rechteck hinzu. Das Rechteck ist dann zwar vorhanden, aber wenn Sie nicht über Röntgenaugen verfügen, können Sie es nicht sehen.
Apropos Füllfarben und Strichfarben: mit ihrer Hilfe werden einige Silverlight-Objekte mit Farbe versehen. Bei anderen Objekten muss ein Pinsel, beispielsweise der LinearGradientBrush, verwendet werden, der im Bonustipp vorgestellt (aber nicht erläutert) wird. Wenn Sie Objekte in Volltonfarbe bevorzugen, können Sie den entsprechenden SolidColorBrush verwenden. Sehen Sie sich beispielsweise die XAML-Markierung in Abbildung 3 an, mit der der Text (technisch gesehen die Foreground-Eigenschaft von TextBlock) rot „angemalt“ wird.
Figure 3 Text malen (Close Figure 3)
<TextBlock
 Name="Test"
 FontSize="40"
 FontFamily="Georgia"
 FontWeight="Bold"
 Canvas.Top="20"
 Canvas.Left="20"
 Text="The TechNet Script Center">

 <TextBlock.Foreground>
 <SolidColorBrush Name="test_brush" Color="red"/>
 </TextBlock.Foreground>

</TextBlock>
Für eine noch coolere Wirkung probieren Sie die ImageBrush-Eigenschaft aus, die Text mit einem Bild füllt:
<TextBlock.Foreground>
 <ImageBrush Name="test_brush" ImageSource="Sunset.jpg"/>
</TextBlock.Foreground>
Hier noch ein weiterer Tipp: Wenn Sie die ImageBrush-Eigenschaft ausprobieren, sollten Sie wahrscheinlich den FontSize-Wert erhöhen, denn je größer der Text ist, desto besser die Wirkung.
Probieren Sie es aus, und sehen Sie sich das Ergebnis an. Es ist wirklich beeindruckend.

Doch halt: Es kommt noch besser
Zugegebenermaßen haben wir das Beste bisher für uns behalten. Text in Silverlight anzuzeigen ist wirklich eine tolle Sache, genau wie das Zeichnen von Rechtecken, Ellipsen und Vielecken. Doch das ist nichts im Vergleich zu den Animationen, die einem Silverlight-Projekt hinzugefügt werden können.
In diesem Artikel können wiederum nur einige Möglichkeiten zum Erstellen von Silverlight-Animationen vorgestellt werden. Es ist einfach nicht genug Platz vorhanden, um in die Tiefe zu gehen. (Das ist allerdings nicht unsere Schuld. Wir schlagen ständig vor, dass das TechNet Magazin zum „Hey, Scripting Guy!“- Magazin umbenannt werden sollte, aber aus irgendeinem Grund scheinen unsere E-Mails nicht durchzukommen.)
Hier ist ein cooler Effekt, der dafür sorgt, dass der Text langsam (aber sicher) eingeblendet wird. Fügen Sie den Code in Abbildung 4 zwischen dem <TextBlock>- und </TextBlock>-Tag in der XAML-Datei hinzu.
Figure 4 TextBlock-Tricks (Close Figure 4)
<TextBlock.Triggers>
 <EventTrigger RoutedEvent=
     "TextBlock.Loaded">
 <BeginStoryboard>
 <Storyboard>
 <DoubleAnimation
 Storyboard.TargetName="Test"
 Storyboard.TargetProperty="Opacity"
 From="0.0" To="1.0"
 Duration="0:0:5" />
 </Storyboard>
 </BeginStoryboard>
 </EventTrigger>
</TextBlock.Triggers>
Zugegeben: es sieht aus, als ob hier jede Menge passiert, aber glücklicherweise handelt es sich bei vielem nur um herkömmliche Tags. Zunächst einmal können Sie nicht einfach eine Animation zu einer XAML-Datei hinzufügen. Sie müssen angeben, wann diese Animation wiedergegeben werden soll. Dazu ist es erforderlich, einen Satz Trigger für den TextBlock anzugeben. In diesem Fall wird ein Trigger erstellt, der die Animation jedes Mal startet, wenn der TextBlock geladen wird:
<EventTrigger RoutedEvent="TextBlock.Loaded">
In Silverlight müssen Animationen auf einem Storyboard stattfinden (ein Begriff, der der Filmindustrie entliehen wurde). Aus diesem Grund gibt es das <BeginStoryboard>- und das <Storyboard>-Tag.
Damit der Text allmählich eingeblendet wird, muss die Opacity-Eigenschaft geändert werden. Der Wert wird allmählich von 0,0 (transparent) auf 1,0 (Volltonfarbe) erhöht. Da Opacity eine Double-Eigenschaft ist (eine auf einem numerischen Wert mit doppelter Genauigkeit basierende Eigenschaft), wird eine DoubleAnimation-Animation verwendet. Dies geschieht folgendermaßen: Das zu animierende Objekt (in diesem Fall Test, der Name des TextBlock), die Zieleigenschaft (Opacity) und dann sowohl der Animationsbereich (von 0,0 bis 1,0 Deckkraft) als auch die Dauer für die gesamte Animation (5 Sekunden) werden angegeben. Anders ausgedrückt:
<DoubleAnimation
 Storyboard.TargetName="Test"
 Storyboard.TargetProperty="Opacity"
 From="0.0" To="1.0"
 Duration="0:0:5" />
Anmerkung. Verwenden Sie unbedingt die Syntax 0:0:5 (Stunden, Minuten, Sekunden), um 5 Sekunden anzugeben. Die Verwendung des Werts 5 allein generiert keinen Fehler, aber die Animation braucht dann 5 Tage.
Haben Sie es versucht? Versuchen Sie jetzt Folgendes: Legen Sie die AutoReverse-Eigenschaft innerhalb des DoubleAnimation-Tags auf „True“ fest:
AutoReverse="True"
Die Animation wird ein- und dann wieder ausgeblendet.
Legen Sie die RepeatBehavior-Eigenschaft auf „Forever“ fest, und der Text wird für immer und ewig ein- und ausgeblendet:
RepeatBehavior="Forever"
Ist ewig ein bisschen zu lang? Dann legen Sie RepeatBehavior auf „3x“ fest, damit die Animation dreimal abgespielt und dann beendet wird.
RepeatBehavior="3x"
Für diesen coolen Entwurf müssen wir uns wirklich einmal selbst loben. Wenn Sie keinen Text mögen, der langsam ein- und dann ausgeblendet wird, sondern lieber Text, der langsam die Farbe ändert, sollten Sie eine ColorAnimation-Animation verwenden:
<ColorAnimation
 Storyboard.TargetName="test_brush"
 Storyboard.TargetProperty="Color"
 From="Red" To="Blue" Duration="0:0:5" />
Anmerkung. Stellen Sie sicher, dass Sie mit rotem Text beginnen, wenn Sie dies ausprobieren. Sie wissen bereits, wie Sie den Text mit roter Farbe versehen können.
Das war doch unterhaltsam, oder? Dennoch scheinen Sie ein wenig enttäuscht. Ach so, deshalb: Die ColorAnimation war recht nett, aber eigentlich hatten Sie erhofft, dass Dinge auf dem Bildschirm herumfliegen würden. Kein Problem. Was für eine Software wäre Silverlight wohl, wenn es nicht möglich wäre, Dinge auf dem Bildschirm herumfliegen zu lassen? Probieren Sie Folgendes aus:
<DoubleAnimation
 Storyboard.TargetName="Test"
 Storyboard.TargetProperty="(Canvas.Left)"
 To="150"
 Duration="0:0:5" />
Der TextBlock bewegt sich nun langsam von seiner Ausgangsposition an eine Position, die 150 Pixel vom linken Rand der Leinwand entfernt ist (Canvas.Left). Wenn sich der TextBlock nach oben und unten bewegen soll, wird einfach die Canvas.Top-Eigenschaft verwendet:
<DoubleAnimation
 Storyboard.TargetName="Test"
 Storyboard.TargetProperty="(Canvas.Top)"
 To="150"
 Duration="0:0:5" />
Könnten diese Animationen kombiniert werden, sodass sich der TextBlock von einer zur anderen Seite und nach oben und unten bewegt? Keine Ahnung. Aber hier ist ein Hinweis: fügen Sie beide Animationen (gleich hintereinander) in die XAML-Datei ein, und warten Sie ab.
Anmerkung. Also gut, wir haben gelogen. Uns war natürlich bekannt, dass sich diese Animationen kombinieren lassen. Tatsächlich können Sie alle erdenklichen Animationen zusammen in ein einzelnes Silverlight-Projekt einfügen. Es ist ein wenig knifflig. Möglicherweise müssen Sie zusätzliche Tags einfügen, um sicherzustellen, dass eine Animation endet, bevor die nächste beginnt. Doch durch die einfache Eingabe von ein paar XML-ähnlichen Tags können Sie wirklich tolle Animationen erstellen.

Tut uns Leid, Leute, aber die Show ist zu Ende.
Wir müssen Schluss machen, obwohl es doch gerade erst interessant wird. Aber es ist ja kein Abschied auf ewig. Wenn Sie mehr über Silverlight erfahren möchten, schreiben Sie uns unter scripter@microsoft.com. Wenn genug Interesse besteht, kommen wir vielleicht in einem zukünftigen Artikel auf dieses Thema zurück. Außerdem sollten Sie das TechNet Script Center (microsoft.com/technet/scriptcenter/resources/tnmag/archive.mspx) besuchen. Dort finden Sie Links zu vollständigen XAML-Beispielen (eXAMLs?). Wie Karl Marx und Friedrich Engels schon am Ende ihres Manifests sagten: „Gute Nacht und gute Heimfahrt.“

Die Scripting Guys von Microsoft 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.


 Sicherheit auf dem Pr&#252;fstand: BitLocker und die Komplexit&#228;ten des Vertrauens
Sicherheit auf dem Prüfstand
BitLocker und die Komplexitäten des Vertrauens
Justin Troutman

Windows Vista. Ich habe diese beiden Wörter noch nie in einem Artikel verwendet, und beim Schreiben dieses Artikels fühle ich mich wie ein Fünfjähriger, der mit einem Blankoscheck in der Hand ein Spielwarengeschäft betritt. Es gibt Unmengen an Features zu besprechen, enorm viele Dinge zu untersuchen und viele Möglichkeiten für Diskussionen.
Vor einer Weile las ich den Blog von Sicherheitsguru Bruce Schneier und stieß dabei auf einen Eintrag über etwas, das mir damals neu war: BitLocker™. Mir wurde schnell klar, dass damit eine kryptografische Funktionalität in Windows Vista® bereitgestellt werden sollte, ich dachte sofort: „Oh, nein. Kryptografie in Windows Vista? Das kann nicht gut gehen. Selbst wenn es einigermaßen funktioniert, muss es irgendwo eine Hintertür geben.“
Es gibt einige (gültige oder nicht gültige) historische Argumente, warum Benutzer zögern könnten, sich auf Sicherheitsfeatures zu verlassen, die in Windows® integriert sind. Aber das ist nicht der Grund für diesen Artikel. Vielmehr soll im Detail nachgewiesen werden, warum es gute Gründe gibt, BitLocker eine Chance zu geben. Zudem wird die Art von Philosophie vorgestellt, die die Lebensfähigkeit von kryptografischer Software und Hardware sicherstellt.
Damit soll jedoch nicht gesagt werden, dass BitLocker ein Allheilmittel für die Sicherheit insgesamt ist. Vielmehr ist BitLocker nur eins von vielen Teilen im Sicherheitspuzzle. Das Ziel von BitLocker ist die Bereitstellung von Stabilität bei bestimmten Bedrohungsmodellen.
Besonders geht es dabei um verloren gegangene (oder gestohlene) Laptops. Mobile Arbeitskräfte tragen ständig alle möglichen vertraulichen Informationen mit sich herum – in der Bahn oder im Flugzeug, in Restaurants und Hotels, in Heimbüros und Zweigstellen. Diese Informationen befinden sich auf Laptops und anderen mobilen Geräten, die normalerweise nicht richtig gesichert sind, sodass die betreffenden Daten stark gefährdet sind. Was geschieht mit diesen Daten, wenn ein Benutzer einen Laptop irgendwo vergisst?
Schludrigkeit lässt sich nicht aus der Welt schaffen, doch gegen das sich daraus ergebende Durcheinander können Sie etwas tun. Die Kosten für das Ersetzen eines Laptops sind für ein Unternehmen gering im Vergleich zu den Kosten, die durch gefährdete vertrauliche Daten entstehen. Genau um diese Sicherheit geht es bei BitLocker.

Abspann
Meine Erörterungen zu BitLocker besitzen eine interessante Dimension. Ich selbst habe BitLocker noch nicht ausprobiert. Wahrscheinlich denken Sie: „Wie kann jemand, der BitLocker noch nicht verwendet hat, eine Meinung dazu haben und etwas Nützliches zum Thema sagen?“ Bitte haben Sie etwas Geduld. Hier geht es um eine Erörterung der Kryptografie von einer höheren Ebene aus und um die Entwurfsphilosophien, die für eine erfolgreiche Lösung wesentlich sind.
Das Ganze begann damit, was ich in Bruce Schneiers Blog gelesen habe. Angenommen, Sie möchten einen neuen Film sehen. Aufgrund der Vorschau und der Hauptdarsteller haben Sie einige Annahmen über den Film gemacht. Natürlich garantiert eine gute Besetzung allein keinen guten Film. Doch die Darstellerliste kann viel über den Film und realistische Erwartungen aussagen. Ist es ein Film mit Chris Rock und Ben Stiller? Oder einer mit Kate Winslet und Johnny Depp?
Ähnlich erging es mir, als ich den Blog eines international anerkannten Sicherheitsgurus über BitLocker las: Ich machte einige Annahmen. Offenbar ist diese neue Technologie gut genug, dass sie eine ehrenhafte Erwähnung verdient, oder so schlecht, dass dies öffentlich gesagt werden musste. Zu meiner Überraschung war die endgültige Beurteilung von Bruce Schneier positiv.
Ein Satz schien mir besonders wichtig: „Es gibt keine Hintertüren für die Polizei.“ Diese Aussage hat viel Schlagkraft. Sie wurde mit viel Zuversicht geäußert und enthielt einen Link zum Microsoft® System Integrity-Teamblog. Der Link enthielt einen Beitrag von Niels Ferguson, einem Microsoft-Entwickler im Bereich Sicherheit, der Spekulationen verurteilte, denen zufolge Microsoft für Strafverfolgungszwecke absichtlich Hintertüren in BitLocker eingebaut habe. Ferguson erklärte, dass solche Hintertüren unannehmbar seien und er an keinem Projekt mitarbeiten würde, das sie unterstützt. (Er führte weiter aus, dass Microsoft eine solche Hintertür öffentlich bekannt geben oder das Feature ganz zurückziehen würde, wenn das Unternehmen gesetzlich gezwungen wäre, eine Hintertür zu integrieren.)
Der Name des Autors – Niels Ferguson – erklärt das Vertrauen von Schneier, und sorgte auch bei mir dafür, dass ich ihm Glauben schenkte. Ferguson weiß, wovon er spricht, und er kann auf eine Erfolgsgeschichte verweisen, die sicherstellt, dass seine Aussagen vertrauenswürdig sind. Bruce Schneier und Niels Ferguson sind die Mitverfasser von „Practical Cryptography“, einem bahnbrechenden Buch über das einfache, fehlerlose und sichere Anwenden guter Kryptografie, und die Mitentwickler der Blockverschlüsselung Twofish, eines 128-Bit-Feistel-Netzwerks, das Finalist im AES-Auswahlprozess war.
Natürlich ist die Mitarbeit eines erfahrenen Kryptografen an einem Projekt keine Garantie dafür, dass das endgültige Produkt sicher ist. Selbst die Meister dieser Kunst können Fehler machen. Doch unabhängig davon, wie sich BitLocker im Lauf der Zeit entwickelt, können Sie sicher sein, dass solide Entwicklungsstrategien bei der Entwicklung eine gewisse Rolle gespielt haben.
Natürlich gibt es gutgläubige Versuche von Entwicklern, die über keinerlei kryptografische Kenntnisse verfügen, und die bösgläubigen Versuche derjenigen, denen es im Prinzip nur darum geht, ein Produkt auf den Markt zu bringen. Bei beiden Bemühungen kann unabhängig von der zugrunde liegenden Absicht mit zukünftigen Sicherheitsfehlern gerechnet werden. Doch auf BitLocker scheint beides nicht zuzutreffen. Die Beteiligung von mindestens einem kompetenten Kryptografen und die umfassenden Ressourcen zur Unterstützung des Projekts verheißen Gutes.

Einige Anmerkungen zum Thema Vertrauen
Kürzlich hat mir Phil Zimmerman, Ersteller der PGP-Verschlüsselung, einige Faustregeln verraten. Sollte jemals ein „Sicherheitscredo für Entwickler“ veröffentlicht werden, würden seine Ratschläge sicherlich ganz oben stehen. Obwohl seine Ansichten nicht spezifisch für BitLocker galten, lassen sich seine Entwurfsphilosophien praktisch auf die meisten kryptografischen Lösungen anwenden. Vielleicht sind Sie der Meinung, dass sie offensichtlich sind oder von einem gewissen Übereifer zeugen. Doch vom heutigen Zustand der Sicherheit ausgehend, lohnt es sich, sie ausdrücklich zu nennen.
Beim Entwerfen einer kryptografischen Infrastruktur muss der Entwickler einfach, fehlerlos und sicher vorgehen. Obwohl Fehler unvermeidlich sind, sollten sie nicht als naturgegeben akzeptiert und einfach mit einem Achselzucken abgetan werden. Der Entwickler muss ein entschiedener Fürsprecher pedantischen Perfektionismus sein. Laut Zimmerman sollte eine Entwicklung so durchgeführt werden, als ob ein Fehler jemanden das Leben kosten könnte. Sie meinen, das sei übertrieben? Auf der 2005 Annual Computer Security Conference erklärte der NSA-Kryptograf Brian Snow, der sich seitdem aus dem Berufsleben zurückgezogen hat: „In einem Sicherheitsgerät müssen Funktionen und Sicherheiten vorhanden sein. Wir führen keine Betatests am Kunden durch. Wenn mein Produkt versagt, könnte jemand sterben.“ Denken Sie daran: Fehler können zu mehr als nur finanziellen Kosten führen.
Benutzer verdienen Sicherheit. Es ist von zentraler Bedeutung, sich das Vertrauen der Benutzer zu verdienen und zu pflegen. Zimmerman unterstreicht dies weiter: „Verdienen Sie sich das Vertrauen der Benutzer. Wenn Sie diese Last einmal auf sich nehmen, können Sie sie nie wieder ablegen.“ Auf diese Weise erhält ein Unternehmen das Vertrauen des Benutzers und seinen Ruf in Bezug auf die Sicherheit aufrecht. Wenn es dies nicht tut, können beide unwiderruflich verloren gehen.
Dieser Blickwinkel wurden von Microsoft bei der Entwicklung von BitLocker (oder anderen Produkten des Unternehmens) hoffentlich bedacht. Doch ich bin optimistisch, dass Microsoft es richtig gemacht und eine Kryptografietechnologie entwickelt hat, die es ernst zu nehmen gilt.

Der Elephant des armen Mannes
Im Prinzip bildet BitLocker die Methode der Verschlüsselung aller Systemvolumedaten bei Windows Vista (speziell bei der Enterprise- und der Ultimate-Edition). Dies mag sich nach einer einfachen Anwendung anhören, aber Sie sollten die Einschränkungen in Betracht ziehen. Da BitLocker Daten pro Sektor verschlüsselt und der verschlüsselte Text die Länge von Nur-Text nicht überschreiten darf, bleibt für anderes wie z. B. eine Nonce (eine Zahl oder Zeichenfolge, die nur einmal zur Authentifizierung verwendet wird), einen Initialisierungsvektor (IV) oder Nachrichtenauthentifizierungscode (Message Authentication Code, MAC) nichts übrig. Es war zu erwarten, dass solche starken Einschränkungen und die von ihnen auferlegten Bedingungen wahrscheinlich waren, aber gleichzeitig war klar, dass für die Nachrichtenauthentifizierung eine Lösung gefunden werden musste.
BitLocker stützt sich auf etwas, was oft als Authentifizierung des kleinen Mannes bezeichnet wird. Der Kompromiss ist nicht so konservativ, wie er normalerweise sein sollte, da von der Annahme ausgegangen wird, dass manipulierter verschlüsselter Text nicht zu sinnvollem Nur-Text führt. Anders ausgedrückt: Wenn verschlüsselter Text manipuliert wird, sollte dies beispielsweise zu einem Absturz des Systems führen, statt dass ein Gegner eine Funktion durchführen kann.
Das für BitLocker zuständige Microsoft-Team wusste, dass für die Analyse einer völlig neuen Blockverschlüsselung mehr Zeit erforderlich sein würde, als akzeptabel ist, doch vorhandene Entwürfe waren entweder noch nicht gut genug analysiert worden oder nicht effizient genug. Daher wählte Microsoft für die Verschlüsselung AES im CBC-Modus (Cipher Block Chaining). Diese Verschlüsselung wird im Folgenden als „AES-CBC“ bezeichnet. Dies ist unter dem ausgewählten Nur-Text-Angriffsmodell (= IND-CPA) nicht zu unterscheiden, die Integrität wird jedoch nicht aufrechterhalten. Da für MAC kein Platz vorhanden ist und CBC ein Vertraulichkeitsmodus ist, wird die Integrität überhaupt nicht aufrechterhalten. Das ist das Stichwort für Elephant.
Die neue Komponente Elephant weist zwei Diffusoren auf, die eine viel bessere „Authentifizierung des kleinen Mannes“ bieten als einfaches AES-CBC. (Es sollte jedoch darauf hingewiesen werden, dass es die Möglichkeit gibt, AES-CBC ohne Elephant auszuführen, wenn es strenge Richtlinien bei der Standardeinhaltung zu erfüllen gilt.) Obwohl sie nicht immer ideal ist, gilt die Authentifizierung des kleinen Mannes unter den gegebenen Einschränkungen als die geeignetste Lösung, und Elephant versucht, das Beste aus der Situation zu machen. Wie funktioniert dies alles?
Abbildung 1 veranschaulicht den Ablauf. Wenn die Verschlüsselung stattfindet, wird der Nur-Text über XOR mit einem Sektorschlüssel verbunden. Der Text fließt dann durch zwei nicht mit Schlüsseln versehene Diffusoren. Anschließend wird er mithilfe von AES-CBC verschlüsselt. Sowohl der Sektorschlüssel als auch AES-CBC brauchen Schlüsselmaterial und werden daher unabhängig voneinander mit Schlüsseln versehen. Diese Methode vereinfacht die Formalisierung eines Nachweises für die Reduzierung der Sicherheit von AES-CBC mit Elephant auf die von AES-CBC. Elephant ist ein neuer Primitive, und neuen Primitives wird möglicherweise mit Zurückhaltung begegnet, bis sie ausführlich analysiert wurden. Doch dieser Ansatz bietet Ausgewogenheit, da BitLocker zeigen kann, dass AES-CBC mit Elephant nicht leichter angegriffen werden kann als AES-CBC allein.
Abbildung 1 Authentifizierung des kleinen Mannes mit Elephant
Abbildung 1 Authentifizierung des kleinen Mannes mit Elephant
Der Sektorschlüssel und die AES-CBC-Komponenten empfangen beide 256 Bit Schlüsselmaterial, sodass die Schlüssellänge 512 Bit beträgt. Standardmäßig verwenden diese Komponenten jedoch nur 128 Bit Schlüsselmaterial, was bedeutet, dass ein Teil des Schlüsselmaterials nicht verwendet wird. Der Grund dafür ist einfach: Es ist leichter, nicht erforderliche Bits wegzuwerfen, als die Schlüsselverwaltungsinfrastruktur bei variierender Schlüssellänge zu ändern.
Die Blocklänge kann eine beliebige Potenz von zwei im Bereich von 512 bis 8192 Byte sein. Um sicherzustellen, dass eine Veränderung des verschlüsselten Texts dazu führt, dass der gesamte Nur-Text eines Sektors nach dem Zufallsprinzip geändert wird, funktioniert die Blockverschlüsselung mit einer solchen veränderlichen Blockgröße. Wenn sie sich zudem wie eine einstellbare Blockverschlüsselung verhält (wie von Liskov, Rivest und Wagner beschrieben), wobei sich der Algorithmus von Sektor zu Sektor leicht ändert, kann ein Gegner den verschlüsselten Text eines Sektors nicht in einen anderen Sektor verschieben.

Die Zukunft wird es zeigen
Beim Spekulieren über die kryptografische Sicherheit von BitLocker wird etwas viel Wichtigeres außer Acht gelassen. Dass BitLocker sicher ist, reicht nicht unbedingt aus, denn BitLocker ist keine Lösung an sich, sondern nur einer von vielen Zusätzen zu Windows Vista. Laut Microsoft ist BitLocker eng in Windows Vista integriert. Doch wenn eine so enge Integration in das Betriebssystem besteht, ist es dann nicht plausibel, dass der Fehler einer anderen Komponente wiederum dazu führen könnte, dass BitLocker versagt oder beeinträchtigt wird?
Ich persönlich halte viel von Modularität und isoliertem Fehlschlagen. Enge Integration ohne Modularität führt zu Komplexität. Das mag bei Windows Vista und BitLocker nicht der Fall sein, aber nur im Lauf der Zeit (und bei umfangreicher Analyse) wird sich erweisen, ob dies wirklich stimmt.
Was ist nun meine Meinung zu BitLocker? Ich ziehe den Hut vor dem Microsoft System Integrity-Team, weil es sich auf echte, zuverlässige Kryptografen verlassen hat, die ihre Aufgabe so durchführen, wie es für Kryptografen angemessen ist. Es ist offensichtlich, dass dieses Feature für die Kryptografie und nicht für eine Marketingkampagne entworfen wurde. Daher lautet meine Antwort auf diese Frage, dass BitLocker ernst zu nehmen ist. Damit bilde ich mir jedoch kein Urteil über die Sicherheit selbst. Auch dies wird sich im Lauf der Zeit und bei der alltäglichen Bewertung zeigen. Viele kryptografische Primitives und Protokolle wurden verletzt. Doch zumindest hat das Microsoft System Integrity-Team für Einsichten und Plattformen gesorgt, auf denen sich noch bessere Lösungen erstellen lassen.

Justin Troutman ist Kryptograf und Student der Mathematik. Er interessiert sich besonders für die symmetrische Kryptografie. Außerdem ist er Gründer von Extorque, einem Unternehmen, das auf die kryptografische Forschung und Beratung spezialisiert ist.


 Die Desktopdateien: Das Poweruser-Handbuch f&#252;r WIM und ImageX
Die Desktopdateien
Das Poweruser-Handbuch für WIM und ImageX
Wes Miller
Dieser Artikel basiert auf einer Vorabversion von Windows Automated Installation Kit (WAIK) und Windows Server 2008. Änderungen an den in diesem Artikel enthaltenen Informationen sind vorbehalten.

ImageX und Windows Imaging-Format (WIM) waren bereits Gegenstand mehrerer von mir verfasster Artikel. Einige der Kommentare und Fragen, die von IT-Experten auf der Tech•Ed vor ein paar Monaten gestellt wurden, und die sich auf die ersten Schritte beim Einsatz der Windows-Bereitstellungsdienste (Windows Deployment Services, WDS), von ImageX und Windows Automated Installation Kit (WAIK) bezogen, ließen erkennen, dass
die Benutzer weitere Unterstützung benötigten. Aus diesem Grund stehen ImageX und WIM sowie deren optimale Nutzung im Mittelpunkt des vorliegenden Artikels. Die Kombination aus ImageX und WIM ermöglicht eine unkomplizierte Bereitstellung von Windows Vista® und Windows Server® 2008 wie auch von Windows® XP, Windows Server 2003 und Windows 2000.

Änderungen an WAIK
Angesichts der bevorstehenden Veröffentlichung von Windows Server 2008 fragen Sie sich sicherlich, welche Auswirkungen dies auf WAIK haben wird. Microsoft plant, im Zeitrahmen der Veröffentlichung von Windows Server 2008 eine aktualisierte Version von WAIK zu veröffentlichen. Es gibt keine bedeutenden Änderungen an WIM (das ImageX-Tool und das Format bleiben unverändert). Auch WDS für Windows Server 2003 ändert sich nicht. Entgegen bestehender Gerüchte wird das neue Multicastbereitstellungsfeature WDS-Servern unter Windows Server 2003 nicht zur Verfügung stehen, sondern nur solchen, die Windows Server 2008 ausführen.
Windows PE 2.0 und Windows Setup werden überarbeitet, um Folgendes zu unterstützen:
  • Bereitstellung von Windows Server 2008 und Windows Vista.
  • Multicastbereitstellung über WDS von einem WDS-Server aus, auf dem Windows Server 2008 ausgeführt wird.
  • Bereitstellung der x64-sowie x86-Editionen von Windows Vista und Windows Server 2008 von x86 Windows PE aus.
Zunächst einmal bedeutet dies, dass Windows Server 2008 sowie Windows Vista von Windows PE 2.0 aus bereitgestellt werden können: Tools und Prozesse funktionieren unter beiden Systemen gleichermaßen gut. Zweitens werden Sie die Multicastbereitstellung über WDS nutzen können, sobald Ihre WDS-Server unter Windows Server 2008 ausgeführt werden. Und schließlich werden Sie in der Lage sein, sowohl ein x86- als auch ein x64-Abbild von Windows von einem x86 Windows PE 2.0-Datenträger aus bereitzustellen.
Diesen letzten Punkt habe ich auch auf der Tech•Ed in der Sitzung zu x64 Windows erwähnt. Leider gab es ein paar Missverständnisse zu diesem Thema in Blogs und in der technischen Community von Windows. Dies bedeutet nicht, dass Microsoft die x64- und die x86-Edition von Windows auf allen Windows Vista- oder Windows Server 2008-DVDs verteilen wird. Ebenso wenig bedeutet es, dass Sie x64- und x86-Abbilder von Windows in einer einzigen WIM-Datei kombinieren dürfen (obwohl dies möglich ist). Wenn Sie dies täten, entstünden keine Single Instance Storage-Einsparungen, obwohl die WIM-Datei als Einzeldatei übertragen werden kann.
Es wird damit allerdings ermöglicht, dass Unternehmenskunden und OEMs, die Jahre mit der Entwicklung von x86-basierten Bereitstellungsprozessen (und benutzerdefinierten Skripts und Tools) verbracht haben, die x86-Edition bzw. die x64-Edition von Windows von WIM aus mithilfe eines 32-Bit-Setups bereitstellen. Und genau dies stand bei Unternehmenskunden bereits seit der Einführung der x64-Edition von Windows 2005 auf der Wunschliste.

ImageX im Alltag
Verwenden von /mount, /mountrw und /delete
Im Folgenden finden Sie einige wichtige Tipps für die Verwendung von /mount-, /mountrw- und /delete-Schaltern mit ImageX:
  • Stellen Sie ein Volume mit /mountrw bereit, wenn Sie es bearbeiten möchten.
  • Sie müssen WIM-Dateien in einem leerem Verzeichnis bereitstellen, um zu vermeiden, dass Verwechslungen mit anderen dort gespeicherten Dateien entstehen und ImageX eine unnötige Warnmeldung auslöst.
  • Vergessen Sie zu nicht, /unmount /commit auf Ihr Schreib-/Leseabbild anzuwenden, wenn Änderungen gespeichert werden sollen. Mir passiert es immer wieder, dass ich vergesse, die Änderungen zu übergeben. In diesem Fall gehen alle verloren.
  • Wenn Sie Dateien über /mountrw und Volumeabbilder über /delete löschen, stellen Sie keinen Speicherplatz wieder her, im Gegenteil, diese Vorgänge können sogar mehr Platz belegen. Dem Abschnitt über /export im vorliegenden Artikel können Sie weitere Details entnehmen.
  • Sie können eine einzelne WIM-Datei nur einmal für den Schreib-/Lesezugriff bereitstellen. Zwei Benutzer können weder die gleiche WIM-Datei noch zwei Volumeabbilder zur gleichen Zeit bearbeiten.
  • Sogar im schreibgeschützten Modus (/mount) sollten Sie die Anzahl der gleichzeitig bereitgestellten Volumeabbilder beschränken, da der Treiber vom Umfang des nicht ausgelagerten Poolspeichers in Windows abhängig ist, der auf Ihrem System für jedes bereitgestellte Abbild verfügbar ist. Dies führt zu einer Beschränkung, die von System zu System (bzw. Systemarchitektur zu Systemarchitektur) variieren kann. Es empfiehlt sich, nicht mehr als fünf Abbilder gleichzeitig zu bearbeiten.
  • Wenn Sie wesentliche Änderungen mithilfe von /mountrw vornehmen, wird für die Änderungen selbst zwar kaum Zeit benötigt, dieser Vorgang kann jedoch einen erheblichen Zeitaufwand für /commit verursachen, da alle neuen Dateidaten komprimiert und gespeichert werden müssen.
  • Verwenden Sie /delete und /mountrw vorsichtig: Einmal vorgenommene Änderungen werden angewendet und können nicht rückgängig gemacht werden.
  • Sie können /delete nicht ausführen, wenn es nur ein Volumeabbild in einer WIM-Datei gibt (löschen Sie die gesamte WIM-Datei, oder fügen Sie stattdessen ein anderes Volumeabbild hinzu).
  • Verwenden Sie den folgenden Befehl anstelle von /mount, um schnell eine Verzeichnisstruktur des Inhalts eines Volumeabbilds abzurufen:
ImageX /dir <path_to_wim_file> <image index>
  • Wenn Sie zwei WIM-Dateien gleichzeitig bearbeiten, deaktivieren (/unmount) Sie sie nicht gleichzeitig. Führen Sie Ihre Ereignisse zum Bereitstellen/Deaktivieren der Reihenfolge nach durch, sodass sie einander nicht blockieren.

ImageX wurde speziell auf die Methoden ausgelegt, nach denen OEM- und Unternehmenskunden eigenen Angaben zufolge die Tools verwenden. Abbildung 1 veranschaulicht diesen Prozess.
Abbildung 1 Verwenden von ImageX
Abbildung 1 Verwenden von ImageX
Schritt 5 ist extrem wichtig: In der Realität ändert sich ein Abbild ständig. Aus diesem Grund mussten Aufzeichnen und Ändern des Abbilds so schnell und unkompliziert wie möglich gestaltet werden.
Daher können Sie ein zusätzliches Abbild (mithilfe des /append-Schalters) an ein bereits erstelltes Abbild anfügen. Am Anfang herrschte im Entwicklungsteam die Meinung vor, dass die Anwender ihrem früheren Abbild eine zusätzliche SKU (Version von Windows) hinzufügen wollten. Im Verlauf meiner Arbeit mit Unternehmenskunden im frühen Stadium der Windows Vista-Entwicklung stellte ich jedoch immer häufiger fest, dass es für eine schnellere Bereitstellung von X verwendet wurde, um dann X1 erneut aufzuzeichnen, wo eine der Änderungen in Schritt 2 vorgenommen wurde. Auf diese Art und Weise kann schnell das Abbild erneut aufgezeichnet werden, da nur eine beschränkte Anzahl Dateien geändert wurde.
Dieser Umstand führte im Team zu der Erkenntnis, dass es nicht immer sinnvoll sein muss, das ursprüngliche Abbild zu behalten. Weiter unten in diesem Artikel wird der /export-Schalter besprochen, der speziell für dieses Szenario hinzugefügt wurde, sowie der als Nächstes folgende.

Änderungen sind kontinuierlich erforderlich
Das Entwicklungsteam entschied bereits früh, dass es möglich sein soll, WIM-Dateien zu bearbeiten. Da schon feststand, dass ein sektorbasiertes Abbilderstellungsformat nicht funktionieren würde (zu Informationen hierzu siehe Rubrik vom Dezember 2006 unter technetmagazine.com/issues/2006/12/DesktopFiles), musste eine Lösung gefunden werden, mit der die Dateien einfach systemintern als Teil des Windows-Dateisystems bereitgestellt werden und die Änderungen an den bereitgestellten Volumeabbildern in der WIM-Datei vorgenommen werden können. Dies führte zu ein paar weiteren „beweglichen Teilen“, wie ich das gerne nenne. Die Bereitstellung eines sektorbasierten Abbilds ist verhältnismäßig einfach. Wenn Sie jedoch ein proprietäres Archivformat wie z. B. WIM bereitstellen möchten, benötigen Sie sehr spezielle Tools.
Das Format müsste Zugriff von der Eingabeaufforderung aus ermöglichen, wodurch die häufig für die systemeigene Verarbeitung von ZIP- und CAB-Dateien verwendeten Windows Shell-Erweiterungen ausgeschlossen würden. Leider ermöglichen diese Handler in Windows Explorer nur einen abstrakten Zugriff auf ein Objekt.
Demzufolge benötigt die WIM-Lösung einen Treiber (wimfltr.sys) und ImageX, welches als Methode zum Laden des Treibers fungiert und die Schnittstelle zum Bereitstellen der WIM-Datei steuert. Mithilfe des Treibers wird dem Windows-Dateisystem eine Abstraktion hinzugefügt (siehe Abbildung 2). Wenn Sie einen Befehl wie diesen ausführen, weisen Sie ImageX an, den wimfltr.sys-Treiber zu laden und mit dem Treiber das erste Volumeabbild (1 in den hier verwendeten Befehlen) folgendermaßen auf der leeren Verzeichnisbereitstellung zu überlagern:
Abbildung 2 Bereitstellen eines WIM-Volumeabbilds
Abbildung 2 Bereitstellen eines WIM-Volumeabbilds
ImageX /mount iso\sources\boot.wim 1 mount
ImageX /mountrw iso\sources\boot.wim 1 mount
Dies ist das Standardverhalten in WAIK. Wenn Sie folglich eine Verzeichnisliste im Bereitstellungsverzeichnis durchsuchen oder generieren, sehen Sie den Stamm von Volumeabbild 1 in boot.wim. Je nachdem, ob Sie /mountrw oder /mount verwenden, ist dieses Verzeichnis schreibgeschützt oder für Schreib-/Lesevorgänge verfügbar (weitere Informationen enthält die Randleiste „Verwenden von /mount, /mountrw und /delete“).
Die /mountrw-Funktion wurde ursprünglich entwickelt, um Treiber oder andere Xcopy-fähige Dateien bzw. entsprechenden Inhalt einfach hinzufügen zu können, um Antwortdateien einzurichten oder gegebenenfalls die Offlineregistrierung einer bereitgestellten WIM-Datei zu ändern (siehe Abbildung 3). Sie wurde nicht dafür konzipiert, gesamte Anwendungen hinzuzufügen oder zu entfernen, da MSI-Installationen nicht offline erfolgen können.
Abbildung 3 Ändern einer bereitgestellten WIM-Datei
Abbildung 3 Ändern einer bereitgestellten WIM-Datei
Denken Sie unbedingt daran, dass Sie beim Bearbeiten der bereitgestellten WIM-Datei nicht direkt die WIM-Datei selbst ändern (zumindest nicht sofort). Sie ändern lediglich einen Cache der WIM-Datei, in dem die von Ihnen vorgenommenen Änderungen und die Überlagerung zusammengeführt werden. Wie Sie der Randleiste entnehmen können, habe auch ich schon diesbezüglich Fehler gemacht. Stellen Sie sicher, dass Sie bei Abschluss die /unmount- und /commit-Schalter verwenden, da Ihre Änderungen erst dann in der WIM-Datei übernommen werden. Andernfalls gehen sie vollständig verloren.
Wenn Sie Ihre Änderungen solchermaßen übernehmen, weisen Sie den Treiber an, die Änderungen in der WIM-Datei selbst vorzunehmen. Der Treiber fügt die zusätzlichen Dateidaten hinzu. (Beachten Sie, dass bei einer großen Anzahl von Änderungen /commit möglicherweise viel Zeit benötigt, da Sie erst zu diesem Zeitpunkt die Dateidaten in die WIM-Datei einfügen.)
Darüber hinaus haben Sie vielleicht im Gegensatz zu einem sektorbasierten Abbilderstellungsformat eine oder mehrere Dateien im Volumeabbild geändert. Folglich befinden sich diese nicht mehr im Einzelinstanzformat (es sei denn, dass diese Datei bereits einmal gespeichert wurde), und die ursprünglichen Dateidaten gehen verloren. WIM markiert im Unterschied zu einem NTFS- oder FAT-Volume keine Datei als gelöscht. Es bestehen zwar keine Verweise mehr, eine Bereinigung findet jedoch nicht statt. Wenn Sie nun häufig Änderungen über /mountrw vornehmen oder über /append zahlreiche Abbilder hinzufügen oder mithilfe von /delete ein Volumeabbild löschen, werden durch die WIM-Datei nur die Verweise auf die Dateidaten gelöscht und nicht die zugehörigen Dateidaten selbst.
Deshalb hat das Entwicklungsteam den /export-Schalter erstellt, der auch als „WIM-Defragmentierung“ bezeichnet wird.

Exportvorgang
Wichtige Hinweise zu /export
Wenn /export zum Erstellen einer neuen WIM-Datei verwendet wird, können Sie den zu verwendenden Komprimierungstyp angeben und müssen nicht den derzeit verwendeten Standardkomprimierungstyp akzeptieren. Wenn Sie den aktuellen Komprimierungstyp ändern, kann der Exportvorgang mehr Zeit in Anspruch nehmen.
Wenn /export wie /append verwendet wird (durch Hinzufügen eines Volumeabbilds zu einer vorhandenen WIM-Datei), können Sie das /compression-Attribut der WIM-Datei nicht ändern.
Sie können den /boot-Schalter angeben, wenn Sie ein völlig neues Windows PE 2.0-Volumeabbild exportieren.

Der /export-Schalter wurde als Reaktion auf die beiden oben erwähnten und einige andere komplexe Szenarios erstellt, die das Team entdeckte. Zusammengefasst lässt sich sagen, dass Sie mithilfe von /export ein vorhandenes Volumeabbild (oder zwei oder drei) exportieren können. Dies bedeutet, auf der Basis der oben erwähnten WIM-Dateien X und X1 rasch entweder eine neue WIM-Datei nur mit X, nur mit X1 oder mit X1 und Y1 zu erstellen, indem eine weitere WIM-Datei exportiert wird.
Stellen Sie sich das Szenario vor, in dem Sie Änderungen an X vornehmen und diese Änderungen mithilfe von /append als X1 anhängen. Sie entscheiden, dass Sie X löschen wollen, da Sie es durch ein neues Abbild ersetzt für das Quartal haben. Sie können den /delete-Schalter verwenden, und ImageX löscht die Verweise auf das X-Abbild. Sie können jedoch den folgenden Befehl ausführen, um durch Löschen aller Informationen mit Bezug auf X Platz zu sparen:
ImageX /export source.wim 2 destination.wim "New image for Q4CY07"
Dadurch wird das zweite Volumeabbild in eine neue WIM-Datei mit dem neuen Namen exportiert, die früheren Informationen von Volumeabbild 1 werden vollständig gelöscht. Sie können ebenso von übergreifenden WIM-Abbildern einen Export durchführen, wenn Sie sie in einer WIM-Datei wieder zusammensetzen möchten (dies wird weiter unten in diesem Artikel genauer erörtert). Übergreifende Abbilder können nicht über /mountrw bearbeitet werden. Sie müssen hierfür wieder zusammengesetzt werden. Es gibt keinen /import-Befehl für ImageX, da /export entweder neue WIM-Dateien erstellen oder an existierende anhängen kann. Weitere Informationen zu diesem Thema finden Sie in der Randleiste „Wichtige Hinweise zu /export“.
Dies ist auch wichtig, wenn Sie peimg /prep ausführen: Obwohl dieser Befehl Ihr Windows PE-Abbild auf die Verwendung vorbereitet, wird keine Bereinigung in der WIM-Datei vorgenommen. Idealerweise sollten Sie das Abbild als Teil des Windows PE-Veröffentlichungsprozesses vorbereiten und anschließend in eine neue boot.wim-Datei exportieren. Denken Sie daran, dass die WIM-Datei während des Startvorgangs nur im Verzeichnis „\sources\boot.wim“ gesucht wird. Stellen Sie also sicher, dass die Bezeichnung korrekt ist und die Markierung als Startvolumeabbild vorgenommen wurde.
Oben wurde erwähnt, dass Sie möglicherweise Ihre Abbilder durch Ausführen von /export optimieren möchten, wenn Sie bereit sind, alte Volumeabbilder zu deaktivieren oder mehrere miteinander zu kombinieren. Dies bietet sich auch an, wenn Sie zahlreiche Änderungen über /mountrw oder /delete vorgenommen haben. Andernfalls wird Ihre WIM-Datei mit der Zeit (auf mysteriöse, nicht diagnostizierbare Art und Weise) immer größer. Wenn Sie /mountrw oder /delete regelmäßig verwenden, sollten Sie überlegen, Ihrem Workflow /export hinzuzufügen, um eine Optimierung Ihrer Abbilder sicherzustellen.

Verteilung auf mehrere Datenträger
Zu einem frühen Zeitpunkt wurde bereits ein anderes Problem festgestellt, und zwar die mögliche Notwendigkeit, WIM-Dateien auf mehreren CDs zu verteilen. Wir gingen davon aus, dass Windows auf mehreren CDs geliefert würde (und möglicherweise auf DVD, wie es tatsächlich geschehen ist) und haben WIM und ImageX daher so entwickelt, dass eine CD-übergreifende Verteilung möglich wurde.
Wie oben erwähnt wurde, ist ein übergreifendes, über /split erstelltes Abbild im Grunde schreibgeschützt: Sie können über /capture nicht direkt ein neues übergreifendes Abbild aufzeichnen, es kann nicht über ImageX bereitgestellt werden, und es kann nicht über /append angehängt werden. Folglich empfiehlt es sich, die WIM-Datei erst zu teilen, wenn Sie Ihren Standardworkflow abgeschlossen haben und für die Veröffentlichung bereit sind. Führen Sie also alle Änderungen in der normalen WIM-Datei durch, und betrachten Sie die Teilung als Teil des Veröffentlichungsprozesses für Ihr Bereitstellungsszenario.
Wenn es zum Anwenden des Abbilds kommt, können übergreifende Abbilder eine Herausforderung darstellen. Für übergreifende Abbilder empfiehlt sich die Verwendung von ImageX anstatt von Setup. Darüber hinaus sollten Sie die Abbilder über das Netzwerk anwenden (um eine optimale Leistung zu erzielen, ohne ein Abbild des Datenträgers zu erzeugen, von dem aus Sie die Anwendung durchführen), oder Sie sollten sie direkt in das Laufwerk kopieren und anschließend anwenden (dabei besteht Bindung an den Datenträger, da er zur Anwendungszeit sich selbst liest und beschreibt).

Auf der Suche nach einer Prüfung
Wenn Sie ImageX verwenden, verschieben Sie viele Daten, viele sehr wichtige Daten. Eine häufig gestellte Frage auf der diesjährigen Tech•Ed war: „Wie kann ich sicherstellen, dass meine Abbilder einwandfrei sind?“ Dies ist nicht unbedingt ein Kinderspiel, jedoch auch eigentlich nicht schwierig.
Sie müssen vor allem daran denken, dass WIM wie die meisten anderen Archivformate anfällig für Beschädigungen ist. Am häufigsten finden diese Beschädigungen statt, wenn eine WIM-Datei über das Netzwerk übertragen wird. Wir haben bereits frühzeitig in Windows Vista einige Probleme mit bestimmten Netzwerkkarten erkannt. Wenn Pakete verworfen wurden, war die WIM-Datei beschädigt, und zwar nicht immer auf eine leicht zu diagnostizierende Art und Weise. Diese Situation reflektierte genau das, was Jahre zuvor passierte, als die driver.cab-Datei an Größe zunahm: Es kam zu ähnlichen zufälligen Beschädigungen. Wenn Sie Berichte von ungültigen Abbildern oder von Setupfehlern erhalten, sollten Sie überprüfen, welche Art Netzwerkkarte auf den Systemen verwendet wird, von denen die Berichte kommen. Führen Sie diese Prüfung durch, wenn Sie ImageX allein verwenden oder WDS ausführen.
Woran können Sie die Qualität eines Abbilds erkennen? Erstens können Sie den /check-Schalter verwenden. Er speichert zusätzliche Integritätsprüfungen in der WIM-Datei und überprüft vor der Anwendung, ob diese beschädigt wurde. Führen Sie /check auch unbedingt immer zur Anwendungszeit aus, um das Abbild zu überprüfen (auch wenn dies mehr Zeit in Anspruch nimmt).
Außerdem können Sie, wenn Sie Probleme haben oder einfach besonders sorgfältig arbeiten möchten, vor der Aufzeichnung und nach der Anwendung ein Hashingdienstprogramm an den Dateien ausführen. Sie können die Prüfung auch nach der Aufzeichnung durch Bereitstellen des Abbilds und erneutes Hashing durchführen und somit sicherstellen, dass ein Abbild korrekt aufgezeichnet wurde.
Sie sollten von Anfang an sicherstellen, dass Ihre Abbilder richtig aufgezeichnet werden. Der /check-Schalter und das Format selbst wurden als Prüfpunkte entworfen und nicht als Wiederherstellungstools zur Reparatur eines falsch aufgezeichnetes Abbilds.

Starten und Kennzeichen
Wie oben erwähnt können Sie /boot verwenden, um ein WIM-Volumeabbild von Windows PE aufzuzeichnen und zu starten. Stellen Sie sich dies einfach als Startsektor auf einem bestimmten Volumeabbild vor. Es ist nur ein solcher Startsektor pro Volumeabbild und WIM möglich, und dieser gilt nur für Windows PE 2.0. Windows PE 1.x kann nicht über WIM gestartet werden – dies ist einfach unmöglich.
Windows-Volumeabbilder weisen möglicherweise Verweise auf Kennzeichen auf. Kennzeichen werden nur von Windows Setup verwendet. Kennzeichen 2 in einem Volumeabbild bedeutet, dass ein Volumeabbild Windows PE und Setup enthält. Kennzeichen 9 bedeutet, dass es nur Windows PE enthält. Alle anderen Kennzeichen bzw. das Nichtvorhandensein von Kennzeichen bedeuten, dass das Abbild nicht von Setup verwendet werden kann. Sie können in einem Abbild mithilfe von ImageX Kennzeichen nach der Aufzeichnung einstellen. Es empfiehlt sich die Verwendung von WAIK (und optional von Business Desktop Deployment Solution Accelerator) zur Erstellung von Windows PE WIM-Startabbildern, da so die Kennzeichen gleich ordnungsgemäß eingestellt werden.

Hinweis für HTA-Benutzer
In der letzten Zeit habe ich mehrere Berichte über Probleme beim Ausführen von HTA-Dateien unter Windows PE 2.0 erhalten. Leider scheinen Probleme bei HTA-Dateien aufzutreten, die ein gewisses Maß an Skriptelementen enthalten. Abbildung 4 zeigt einen Screenshot der von mir erstellten Beispieldatei mit dem zurückgegebenen Skriptfehler (ohne Informationen). Mehrere Kunden berichteten von diesem Problem, und auch mir ist es widerfahren.
Abbildung 4 HTA-Skriptfehler
Abbildung 4 HTA-Skriptfehler
Glücklicherweise kann dieses Problem relativ einfach behoben werden. Fügen Sie beim Vorbereiten Ihres Abbilds XML-Support sowie HTA-Support hinzu. Die fehlende Abhängigkeit in der HTA-Komponente ist anscheinend im XML-Add-In Modul enthalten, womit dieses Problem gelöst wurde.
Ich möchte mich bei Bruce Green, ImageX-Entwickler, und bei Minxiao Zhou und Raja Ganjikunta vom Windows-Bereitstellungstestteam für ihre Unterstützung bei diesem Artikel bedanken.

Wes Miller ist Entwicklungsmanager bei Pluck (www.pluck.com) in Austin, Texas. Davor arbeitete er bei Winternals Software in Austin und bei Microsoft als Programmmanager und Produktmanager für Windows. Sie können Wes Miller unter technet@getwired.com erreichen.


 Berichte aus der Praxis: Recyceln Ihres PCs
Berichte aus der Praxis
Recyceln Ihres PCs
Jim Lynch

Die Zielgruppen Das Microsoft Authorized Refurbisher (MAR)-Programm (microsoft.com/mar) ist ein außergewöhnliches und verhältnismäßig unbekanntes Projekt der Microsoft Unlimited Potential-Initiative, mit dem Microsoft unterschiedliche Projekte in den Bereichen Bildungsarbeit, Unternehmensgründung, Schaffung von Arbeitsplätzen und Freisetzen zukunftsfähiger wirtschaftlicher Möglichkeiten für zahlreiche benachteiligte gesellschaftliche Gruppen unterstützt. Das im Jahr 2000 in Großbritannien gestartete Community MAR-Programm besteht inzwischen aus mehr als 800 Mitarbeitern in 50 Ländern weltweit, die sich der PC-Instandsetzung widmen.
Einer der erstaunlichsten Aspekte des Community MAR-Programms ist, dass Lizenzen für Windows® 2000 und Windows XP für lediglich 5 US$ bereitgestellt werden können. Das MAR-Programm stellt diese Lizenzen – mehr als 200.000 pro Jahr – gemeinnützigen Unternehmen, Schulen, Bibliotheken, Hochschulen, und in den USA auch Technologiezugriffsprogrammen für Personen mit niedrigem Einkommen oder Behinderungen auf erneuerten PCs zur Verfügung. Auf diese Weise erreicht das Community MAR-Programm diejenigen, die digital benachteiligt sind, und bietet Zugriff auf Ausbildungs- und Stellenangebote.
Eines der Ziele von Community MAR ist es, benachteiligte Kinder weltweit zu erreichen. Operation Homelink beispielsweise stellt Familien des US-Militärs mit niedrigem Einkommen Computer zur Verfügung. Computer Aid International in Großbritannien ist das größte nichtstaatliche Unternehmen, das Computer nach Afrika liefert. Das Instandsetzungsnetzwerk Computers for Schools Canada schließlich stellt einen erheblichen Anteil der Computer zur Verfügung, die in kanadischen Schulen eingesetzt werden.
Die Vorteile der Wiederverwendung
Die US-amerikanische Umweltschutzbehörde (EPA) hat in Zusammenarbeit mit der University of Tennessee die Wiederverwendungsvorteile von Elektronikgeräten in Bezug auf Energie und Rohstoffe sowie Kohlendioxyd-2und Schadstoffemissionen demonstriert. Gemäß dem Electronics Environmental Benefits Calculator (eerc.ra.utk.edu/ccpct/eebc/eebc.html) fallen durch die Wiederverwendung von nur einem Computer mit einem CRT-Monitor die folgenden Umweltbelastungen weg:
  • 14 kg Sondermüll
  • 35 kg Festmüll
  • 35 kg Rohstoffe
  • 66 Liter Schmutzwasser
  • 32 Tonnen Luftverschmutzung
  • 605 kg Kohlendioxyd-2 Emissionen
  • 7.719 Kilowatt Energie

Das Community MAR-Programm wurde im Jahr 2000 gegründet, um das Angebot an Arbeitsausrüstung für Schulen und Wohltätigkeitsorganisationen in Großbritannien zu verbessern, die oft nur begrenzten Zugriff auf Technologie hatten. Das Programm wurde 2003 auch in den USA und Australien und 2005 weltweit eingeführt. Es steht nun allen Arten der Instandsetzung zur Verfügung (gewerblich, nicht gewerblich, staatliche und Ausbildungseinrichtungen). Im Zuge dessen wurde eine ganze Industriesparte für die Computerwiederverwendung und -erneuerung geschaffen.
Einer der weniger offensichtlichen Vorteile des Community MAR-Programms liegt im Umweltschutz. Eine verlängerte Lebensdauer elektronischer Geräte bietet die wirksamste Art von Recycling, da die eigentliche Funktion des Geräts beibehalten wird und somit die bestmöglichen Vorteile für Wirtschaft, Umwelt und Gesellschaft erzielt werden. End-of-Life-Recycling ist sicher gut und notwendig, hat aber einen Verlust von 10-30 Prozent an Rohstoffen und Energie pro Gerät zur Folge.
Die Herstellung von Computern stellt bereits eine große Umweltbelastung dar. Nach Ansicht des Umweltwissenschaftlers Eric D. Williams von der Arizona State University erfordert die Herstellung eines durchschnittlichen 24 kg schweren Desktopcomputers und Monitors 240 kg fossile Brennstoffe, 23 kg Chemikalien und 1510 Liter Wasser. Eine Verlängerung der Lebensdauer um zwei bis drei Jahre spart 5 bis 20 Mal mehr Energie als End-of-Life-Recycling im Lebenszyklus eines Computers (in der Randleiste „Die Vorteile der Wiederverwendung“ finden Sie noch erstaunlichere Zahlen).
Insgesamt schafft Microsoft mithilfe dieses innovativen Programms durch die Bereitstellung von Technologie neue Möglichkeiten für benachteiligte gesellschaftliche Gruppen. Ein unerwarteter zusätzlicher Vorteil ist, dass sich das öffentliche Bewusstsein und die Unterstützung für eine Wiederverwendung von Computern durch das Community MAR-Programm erhöht hat.

Jim Lynchist Program Director für Computerrecycling und Wiederverwendung bei TechSoup.org, einem gemeinnützigen Unternehmen mit Sitz in San Francisco, dessen Zielsetzung darin liegt, Wohltätigkeitsorganisationen auf der ganzen Welt preiswerte Hardware und Software sowie die entsprechenden Fachkenntnisse anzubieten.


 Windows Confidential: Dr.&#160;Watson
Windows Confidential
Dr. Watson
Raymond Chen

Vielleicht haben Sie schon bemerkt, dass dann, wenn Sie Dr. Watson (drwtsn32.exe) bitten, ein Speicherabbild des Winlogon-Prozesses zu erstellen, Windows® nach Abschluss dieses Vorgangs heruntergefahren wird. Manche Leute fragen sich: Wieso wird das ganze System heruntergefahren, wenn man einen Debugger mit Winlogon verbindet?
Das passiert hier aber eigentlich gar nicht. Das Ausführen von Dr. Watson an einem Prozess ist nicht dasselbe wie das Anhängen eines Debuggers an einen Prozess. Beim Anhängen eines Debuggers wird etwas Ähnliches wie NTSD verwendet, und das funktioniert, wenn Sie über die erforderlichen Berechtigungen verfügen. Das ist genau die Methode, mit der das Windows-Team Probleme im Zusammenhang mit Winlogon debuggt. Daher lautet die richtige Antwort auf diese Frage: Das Anhängen eines Debuggers an Winlogon führt nicht dazu, dass das System heruntergefahren wird.
Allerdings ist Dr. Watson kein Hausarzt, sondern eine Art Gerichtsmediziner, der von einem problematischen Prozess zuerst ein Speicherabbild erstellt und diesen Prozess anschließend beendet. Da Dr. Watson nicht versucht, das Problem zu beheben, würde der Prozess einfach erneut abstürzen, wenn er weiter ausgeführt werden dürfte. Dann würde der Doktor sofort wieder geholt und somit eine Endlosschleife entstehen. Dr. Watson ist also im Grunde ein Debugger, der kein Debugging durchführt. Er erscheint lediglich, macht gewissenhaft ein paar Notizen und bricht dann den problematischen Prozess ab. Das ist denn auch die eigentliche Ursache des Systemabsturzes: das Beenden von Winlogon nach dem Erstellen des Speicherabbilds.
Wird Winlogon beendet, wird das System neu gestartet
Wird Winlogon beendet, wird das System neu gestartet
Winlogon ist ein so genannter „kritischer Systemprozess“, bei dessen Beenden das System gezwungen wird, einen Neustart auszuführen. Weshalb wird Winlogon vom System als unerlässliche Voraussetzung für seine Funktionsfähigkeit betrachtet? Zunächst einmal ist Winlogon für die Abwicklung des Windows-Sicherheitsaufrufs zuständig, der mit der Tastenkombination Strg+Alt+Entf gestartet wird. Wird Winlogon beendet, funktioniert dieser Aufruf nicht mehr. Das allein ist bereits schon ziemlich schlecht. Es wird jedoch noch schlimmer: Wenn der Prozess verschwunden ist, der offiziell für den Sicherheitsaufruf zuständig ist, kann ein anderes Programm einfach warten, bis der Benutzer die Tastenkombination Strg+Alt+Entf drückt, und ihm dann ein gefälschtes Kennwortdialogfeld präsentieren. Der Sicherheitsaufruf wäre nicht besonders gut, wenn er gespooft werden könnte! Als Schutzmaßnahme wird daher Windows heruntergefahren, bevor die ohnehin schon üble Lage noch schlimmer wird.
Wenn Sie den Task-Manager ausführen, einen kritischen Systemprozess wie beispielsweise Winlogon markieren, auf die Schaltfläche „Prozess beenden“ klicken und diesen Vorgang bestätigen, dann wird Winlogon beendet und das System neu gestartet (natürlich vorausgesetzt, dass Sie als Administrator mit erhöhten Rechten angemeldet sind und daher über die erforderlichen Berechtigungen zum Beenden dieses Prozesses verfügen).
In früheren Windows-Versionen hat der Task-Manager versucht, Sie davon abzuhalten, diese kritischen Systemprozesse zu beenden, doch der Algorithmus, mit dem entschieden wurde, welche Prozesse kritisch sind, war nicht besonders ausgereift. Wenn Sie schlau genug waren, konnten Sie den Task-Manager überlisten und ein Programm erstellen, das von diesem als so wichtig eingestuft wurde, dass es nicht beendet werden konnte. Das war natürlich nicht der Fall. Man konnte ein solches Programm nach wie vor beenden, musste dazu jedoch statt des Task-Managers ein anderes Programm verwenden (z. B. taskkill).
Um zu vermeiden, überlistet zu werden, hindert Sie der Task-Manager nun nicht mehr daran, kritische Systemprozesse zu beenden. Damit macht er schließlich nichts falsch. Er schaut Ihnen also jetzt nicht mehr über die Schulter, wenn Sie einen Prozess beenden. Er wird Ihnen auch nicht auf die Finger klopfen, wenn Sie versuchen, etwas zu beenden, das Sie wahrscheinlich besser in Ruhe lassen sollten. Wenn Sie die Entscheidung treffen, einen kritischen Systemprozess zu beenden, müssen Sie eben auch die Konsequenzen in Kauf nehmen.

Raymond Chen befasst sich auf seiner Website „The Old New Thing“ und in seinem gleichnamigen Buch (Addison-Wesley, 2007) mit der Geschichte von Windows und mit der Win32-Programmierung. Die Arbeit an betrieblichen Mechanismen überlässt er anderen.