 TechNet Magazine September 2007

TechNet Magazine September 2007

Windows Vista: Bereitstellen von Windows Vista mit BDD 2007

Stellen Sie sich vor, Ihr Unternehmen möchte von Windows 2000 oder Windows XP zu Windows Vista migrieren, und das Projekt unterliegt Ihrer Verantwortung. Kein Problem. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie Business Desktop Deployment 2007 Solution Accelerator zur Vereinfachung Ihrer Windows Vista-Bereitstellung verwenden können.

Michael Niehaus Windows Vista: Windows Vista-Sicherungstechnologien

An Sicherung denken viele Leute erst, wenn es zu spät ist. Dafür gibt es jedoch keine Entschuldigung, insbesondere jetzt, wo die neue Sicherung und Wiederherstellung in Windows Vista eine Vielzahl von Features bietet, mit denen Daten problemlos vor den meisten Formen von Datenverlust geschützt werden können. Finden Sie heraus, wie Sie mit Windows Vista eine vollständige Wiederherstellungsstrategie planen können.

Christine Fok Windows Server: 11 wichtige Tools zur Verwaltung von Active Directory

In einer großen Organisation können sogar die alltäglichsten Active Directory-Aufgaben, wie das Hinzufügen und Bearbeiten von Objekten, aufwendig und zeitraubend sein. Diese 11 Tools können die Verwaltung von Active Directory entscheidend vereinfachen.

Laura E. Hunter Windows Server: Tombstone-Wiederbelebung in Active Directory

Es gibt einige wichtige Tricks und Tools, die Teil jedes Notfallwiederherstellungsplans für Active Directory sein sollten. Eines dieser Verfahren ist das Wiederbeleben von Tombstones, das die einzige Möglichkeit darstellt, gelöschte Objekte wiederherzustellen, ohne einen Domänencontroller offline zu schalten. In diesem Artikel werden Suche und Wiederherstellung von Tombstones in Active Directory behandelt.

Gil Kirkpatrick Kommunikation: Verbinden von Benutzern mit Office Communications Server 2007

Endlich gibt es eine einheitliche Kommunikation. Lernen Sie Microsoft Office Communications Server 2007 kennen, und erfahren Sie, wie integrierte Messaging-, Sprach-, Video- und Konferenzfeatures die Produktivität und die Zusammenarbeit über weite Entfernungen in Ihrem Unternehmen verbessern können.

Alan Maddison Mitteilung der Redaktion: Wege zum Lernen

Joshua Trupin Briefe: Antworten auf Ihre Fragen

Toolbox: Neue Produkte für IT-Experten

Greg Steen SQL – Fragen und Antworten: CPU-Engpässe, Wiederherstellen und Verschieben von Datenbanken und mehr

Edited by Nancy Michell Schwerpunkt Dienstprogramme: PageDefrag

Das typische Windows-Defragmentierungstool kann die meisten Dateien auf Ihrer Festplatte optimieren. Aber bestimmte Elemente, wie z. B. die Windows-Auslagerungsdatei und Registrierungsstrukturen, übersteigen die Möglichkeiten der meisten Defragmentierungstools. Dieses Dienstprogramm aber, von Mark Russinovich für Sysinternals erstellt, sorgt für Abhilfe, indem es die Dateien defragmentiert, die von anderen Tools unangetastet bleiben.

Lance Whitney The Cable Guy: Starke und schwache Hosts

Ein mehrfach vernetzter Host bietet durch gleichzeitiges Herstellen einer Verbindung zu mehreren Netzwerken verbesserte Konnektivität. Allerdings sind Dienste, die auf mehrfach vernetzten Hosts ausgeführt werden, einem erhöhten Angriffsrisiko ausgesetzt. Um Ihnen zu helfen, Angriffe zu verhindern, folgt hier ein Überblick über die verschiedenen Modelle mehrfach vernetzter Hosts und darüber wie diese unter Windows unterstützt werden.

Joseph Davies Windows PowerShell: Sichern der Shell

Bei der Entwicklung von Windows PowerShell hat Microsoft die Sicherheit in den Vordergrund gestellt. Das ist leicht zu erkennen. Sehen Sie sich beispielsweise einige der wichtigsten Sicherheitsfeatures und -einstellungen wie die Anmeldeinformationsbehandlung und Ausführungsrichtlinien an, die sicherstellen, dass Windows PowerShell nicht Opfer derselben Probleme wie VBScript werden kann.

Don Jones Hey, Scripting Guy!: Ist diese Beziehung noch zu retten?

Relationale Datenbanken wurden entworfen, um 1:n-Beziehungen zu verarbeiten. Dies kann das Schreiben von Skripts, die diese Datenbanken abfragen, ein bisschen knifflig machen. Aber machen Sie sich keine Sorgen. Die Scripting Guys sind zur Stelle, um Ihnen alles zu zeigen, was Sie wissen müssen.

The Microsoft Scripting Guys Exchange Fragen und Antworten: Setup, Nachrichtenjournale, Speicheroptionen und mehr

Erfahren Sie, wie Sie Nachrichtenjournale zur Überwachung von E-Mails in Ihrem Unternehmen verwenden können, finden Sie heraus, ob Benutzer von Office 2003 Unified Messaging verwenden können, befassen Sie sich mit Speicheroptionen für Ihre Exchange 2007-Implementierung, erhalten Sie Antworten zur Herstellung einer Verbindung zu Exchange 2007 mit älteren Versionen von Outlook und mehr.

KC Lemson and Nino Billic Sicherheit auf dem Prüfstand: Langfristige Auswirkungen der Benutzerkontensteuerung

Obwohl schon viel über die Benutzerkontensteuerung (User Account Control, UAC) geschrieben wurden, gibt es immer noch viele Fragen und Missverständnisse. Im Folgenden wird offen darüber diskutiert, was UAC ist und was nicht und wie UAC sich auf die Art und Weise Ihrer Systemverwaltung auswirkt.

Jesper M. Johansson Die Desktopdateien: PC-Wiederherstellung mit Windows PE

Windows Vista besitzt einige nützliche Tools, die die Systemwiederherstellung erheblich erleichtern. In großen, breit gefächerten Organisationen funktionieren Lösungen von der Stange normalerweise jedoch nicht. Wenn Sie in einem großen Unternehmen arbeiten und individuelle, vollautomatische Wiederherstellungslösungen erstellen müssen, dann verpassen Sie nicht diese Abhandlung über das Erstellen eigener Wiederherstellungslösungen mit Windows PE.

Wes Miller Berichte aus der Praxis: Kostenlose Verpflegung und Schulungstipps

Nur über eine gute Benutzerausbildung lassen sich IT-Probleme in Grenzen halten. Unterschätzen Sie also nicht die Bedeutung gelegentlicher Schulungen. Schauen Sie auch immer mal wieder in den Abteilungen vorbei, so dass Mitarbeiter Fragen stellen können, die sonst vielleicht ungefragt blieben.

Michael Dragone Windows Confidential: Der Balanceakt der bekannten DLLs

Das Feature der „Known DLLs“ (bekannte DLLs) wurde zur Verbesserung der Leistung in Windows aufgenommen. Hier erfahren Sie, wie es funktioniert, und Sie erhalten einen Einblick, wie sich dieses Feature im Lauf der Zeit verändert hat.

Raymond Chen


 Windows Vista: Bereitstellen von Windows Vista mit BDD&#160;2007
Windows Vista Michael Niehaus

Bereitstellen von Windows Vista mit BDD 2007
Kurz zusammengefasst:
  • BDD 2007 Solution Accelerator
  • Vorbereiten des Abbilds
  • Treiber und Anwendungspakete

Sie haben diese Aufgabe aufgeschoben, aber letztendlich muss sie durchgeführt werden. In Ihrem Unternehmen gibt es Hunderte, vielleicht sogar Tausende von Computern, die von Windows 2000 oder Windows XP zu Windows Vista migriert werden müssen. Es ist Aufgabe Ihres Teams, dies zu ermöglichen.
Wo fangen Sie an?
Wenn Sie schon jahrelang Windows®-Betriebssysteme installieren, werden Sie wahrscheinlich bemerkt haben, dass sich hierbei von Windows NT® 3.5 bis Windows XP verhältnismäßig wenig geändert hat. Der Installations- und Konfigurationsprozess war ziemlich konsistent, es wurden dieselben Tools verwendet, und der Prozess insgesamt wurde nicht verändert. Für Windows Vista® wurde der ganze Prozess jedoch neu entwickelt, es gibt viele neue Tools. Einen guten Überblick über diese Änderungen und deren Auswirkungen, finden Sie in dem Artikel „Zehn Dinge, die Sie zur Bereitstellung von Windows Vista wissen müssen“, der im November 2006 im TechNet Magazin erschienen ist. Er ist auch online unter technetmagazine.com/issues/2006/11/Deployment verfügbar.

Wie können Sie den neuen Prozess und die Verwendung der Tools erlernen?
Es gibt zwei Möglichkeiten:
  1. Erlernen Sie die Verwendung jedes neuen Tools. Lesen Sie die gesamte verfügbare Dokumentation. Finden Sie heraus, wie die einzelnen Tools in vorhandene Prozesse eingefügt werden. Nehmen Sie die notwendigen Anpassungen vor, bevor Sie schließlich die Ergebnisse überprüfen.
  2. Oder nutzen Sie ein Instrument, das all dies bereits für Sie erledigt hat.
Natürlich könnten Sie sich für die erste Option entscheiden, doch dann müssten Sie anstelle dieses Artikels ein ganzes Buch lesen. Mit der zweiten Option lässt sich Ihre Aufgabe leichter bewältigen: Dabei verwenden Sie Business Desktop Deployment (BDD) 2007 Solution Accelerator. Dieses Paket kann im Microsoft® Desktopbereitstellungs-Center unter microsoft.com/desktopdeployment heruntergeladen werden.
Bei BDD 2007 Solution Accelerator handelt es sich um eine Reihe von Tools, Anleitungen und schrittweisen Verfahren zum Vereinfachen der Windows-Bereitstellung, wobei alle neuen, mit Windows Vista eingeführten Bereitstellungsprozesse und Tools kombiniert sind.
Zur Arbeit mit BDD 2007 wählen Sie zunächst einen Windows XP- oder Windows Server® 2003-Computer, auf dem Sie BDD 2007 installieren möchten. Vor der Installation müssen Microsoft .NET Framework 2.0 und Microsoft Management Console (MMC) 3.0 installiert werden. Anschließend können Sie BDD 2007 installieren. Nach der Installation lesen Sie die Anmerkungen zur Version, die Sie im BDD 2007-Ordner im Startmenü finden. Dann starten Sie das MMC-Snap-In mithilfe der Deployment Workbench-Verknüpfung (siehe Abbildung 1).
Abbildung 1 Starten von BDD 2007 Deployment Workbench
Abbildung 1 Starten von BDD 2007 Deployment Workbench
An dieser Stelle ist es angebracht, die im Information Center verfügbaren Informationen zu lesen, speziell die Prüfliste „Erste Schritte“ und die Dokumentation. Laden Sie aktuelle Nachrichten und die Komponentenliste durch Klicken mit der rechten Maustaste auf den Komponentenknoten und Auswahl von „Auf Aktualisierungen überprüfen“ herunter.
Nun benötigen Sie noch ein weiteres Element: Windows Automated Installation Kit (AIK) BDD 2007 benötigt die in Windows AIK enthaltenen Tools für viele Funktionen. Sie erhalten Windows AIK auf zwei Arten: Laden Sie es im Microsoft Download Center (go.microsoft.com/fwlink/?LinkId=85377) herunter, oder verwenden Sie dazu den Komponentenknoten in Deployment Workbench. Unabhängig von der Bezugsmethode handelt es sich um einen umfangreichen Download, für den einige Zeit erforderlich ist.
Nach der Installation von Windows AIK können Sie zum nächsten Schritt übergehen: Sammeln aller Dateien, die zur Durchführung der Windows Vista-Bereitstellung erforderlich sind.

Welche Dateien brauchen Sie?
Zu diesem Zeitpunkt müssen Sie die Windows Vista-Installationsdateien, die zu installierenden Anwendungen, alle für Ihre Hardware benötigten Treiber und alle Windows Vista-Updates oder -Sprachpakete zusammenstellen, die Sie möglicherweise brauchen. Diese werden alle in die bei der Installation von BDD 2007 erstellte Verzeichnisstruktur zur Distributionsfreigabe kopiert.
Erstellen eines benutzerdefinierten Abbilds
In diesem Artikel wird die Bereitstellung des standardmäßigen Windows Vista-Abbilds von der Microsoft-DVD erläutert. Doch möglicherweise möchten Sie ein benutzerdefiniertes Abbild bereitstellen, das zusätzliche Anwendungen (beispielsweise 2007 Microsoft Office System) enthält, die auf allen Ihren Computern benötigt werden. Es stellt sich die übliche Frage: Erstellen Sie ein „dünnes“ Abbild und installieren alles andere bei der Bereitstellung, oder ein „dickes“ Abbild, bei dem alles vorinstalliert ist? Oft hängt die Antwort von der für die Bereitstellung verfügbaren Zeit, dem Verwaltungsaufwand beim Erstellen und Verwalten des Abbilds, der Netzwerkkapazität und so weiter ab. In den meisten Fällen ist ein schlankes Abbild besser, aber letztendlich liegt die Entscheidung bei Ihnen.
Unabhängig davon, was Sie in Ihr Abbild aufnehmen, sollten Sie sicherstellen, dass der Prozess beim Erstellen des benutzerdefinierten Abbilds vollständig automatisch abläuft. Durch die Automatisierung wird das Aktualisieren des Abbilds stark vereinfacht: Es wird ein weiterer Schritt zum Prozess hinzugefügt und dann der ganze Prozess erneut ausgeführt, wobei am Ende ein neues Abbild entsteht.
Wie geschieht dies nun mit BDD 2007? Es ist eigentlich recht einfach:
  1. Erstellen Sie einen Build zum Erstellen Ihres benutzerdefinierten Abbilds.
  2. Ändern Sie die Aufgabenfolge für diesen Build, sodass alle Ihre benutzerdefinierten Schritte enthalten sind.
  3. Führen Sie eine Bare-Metal-Bereitstellung vom Bereitstellungspunkt der Testumgebung durch (Starten vom Windows PE ISO aus), und wählen Sie diesen Build aus.
  4. Geben Sie an, dass Sie einer Arbeitsgruppe beitreten möchten.
Beim Durchführen dieser Schritte zeigt der Bereitstellungsassistent ein neues Fenster an.
Wird angegeben, dass ein Abbild des Referenzcomputers aufgezeichnet werden soll, führt BDD 2007 automatisch Sysprep aus, um das Betriebssystem für die Aufzeichnung vorzubereiten, startet dann Windows PE neu und führt ImageX.exe aus, um ein neues WIM-Abbild aufzuzeichnen. Dann können Sie dieses Abbild in Deployment Workbench importieren und für Ihre nächste Bereitstellung verwenden.
Aufzeichnen eines Referenzabbilds mit BDD 2007
Aufzeichnen eines Referenzabbilds mit BDD 2007

Zuerst werden die Installationsdateien des Betriebssystems kopiert. Legen Sie Ihre Windows Vista-DVD ein (vorzugsweise Volumenlizenzmedien, da dann kein separater Produktschlüssel für jede Installation erforderlich ist), starten Sie dann den Assistenten zur Erstellung eines Betriebssystems durch Klicken mit der rechten Maustaste, und wählen Sie den Befehl „New“ (Neu). Wählen Sie die Option „Full set of source files“ (Vollständiger Quelldateiensatz), und geben Sie den Pfad zu Ihrem DVD-Laufwerk an (oder einen entsprechenden anderen Pfad, falls Sie diese Dateien bereits an einen anderen Ort kopiert haben). Führen Sie die Schritte des Assistenten durch, und akzeptieren Sie dabei die Standardvorgaben. Danach müssten Sie ein oder mehrere Betriebssystemabbilder (abhängig von den verwendeten Medien) in der Liste sehen, die durch Klicken auf den Betriebssystemknoten angezeigt wird.
Nun sind die Anwendungen dran. Sie müssen zu diesem Zeitpunkt keine Anwendungen hinzufügen, doch wenn Sie es tun, können Sie sie bei der Bereitstellung von Windows Vista aus einer Liste auswählen. Im Idealfall geben Sie einen Befehl zum Installieren der Anwendung ohne Benutzereingabe an, damit niemand auf den Start der Anwendungsinstallation warten muss. Versuchen Sie nun zum Beispiel, eine einzelne Anwendung hinzuzufügen, indem Sie den Befehl „New“ (Neu) im Anwendungsknoten in Deployment Workbench auswählen und dann die Schritte im Assistenten für die Anwendungserstellung durchführen (siehe Abbildung 2).
Abbildung 2 Hinzufügen einer Anwendung in Workbench
Abbildung 2 Hinzufügen einer Anwendung in Workbench
Nun kommen die Betriebssystempakete an die Reihe. Es gibt drei Arten von Paketen, die für Sie interessant sein dürften: Sprachpakete, Sicherheitsupdates und Windows Vista-Komponenten.
Sprachpakete ermöglichen den Betrieb von Windows Vista in vielen verschiedenen Sprachen. Einzelheiten zu den unterstützten Sprachen finden Sie unter microsoft.com/globaldev/vista/Vista_Language_Support.mspx. Die Sprachpakete, die als CAB-Dateien verpackt sind, können von licensing.microsoft.com von allen Software Assurance-Kunden heruntergeladen werden und sind über Windows Update verfügbar, wenn Sie Windows Vista Ultimate ausführen. (Beachten Sie, dass nur Windows Vista Enterprise und Windows Vista Ultimate mehrere auf einem Computer installierte Sprachpakete unterstützen.)
Windows Vista-Sicherheitsupdates werden in der Regel monatlich veröffentlicht und stehen unter microsoft.com/technet/security/bulletinsandadvisories als einzelne MSU-Dateien zum Herunterladen zur Verfügung.
Sie können auch neue Windows Vista-Komponenten wie beispielsweise Windows PowerShell™ einfügen. Diese Komponenten können im Microsoft Download Center (microsoft.com/downloads) heruntergeladen werden und sind ebenfalls als MSU-Dateien verpackt.
Im Grunde handelt es sich bei all diesen Elementen um Komponenten (bzw. „Pakete“). Sie sind daher über den Paketknoten verfügbar. Diese Komponenten können in Windows Vista entweder online (während der Ausführung des Betriebssystems) eingefügt werden oder offline (wenn es nicht ausgeführt wird). Im Fall von BDD 2007 werden sie immer offline eingefügt, nachdem das Windows Vista-Abbild erweitert und auf den Datenträger platziert wurde, jedoch vor dem ersten Start.
Es stellt sich nun eine weitere Herausforderung: Die MSU-Dateien müssen online mithilfe des WUSA.EXE-Updateinstallationsprogramms installiert werden, während Windows Vista ausgeführt wird. In unserem Beispiel sollen diese Updates jedoch offline installiert werden. Dazu benötigen Sie die CAB-Dateien, die die eigentlichen Komponenten enthalten. Diese MSU-Dateien sind selbst CAB-Dateien, die wiederum die eigentliche Komponenten-CAB-Datei enthalten. Sie können diese CAB-Dateien selbst aus den MSU-Dateien mithilfe eines Befehls wie diesem extrahieren:
EXTRACT.EXE file.msu -F:*.CAB C:\
Dadurch erhalten Sie die CAB-Datei, die Sie importieren müssen. Microsoft hat einen Patch für BDD 2007 veröffentlicht, der diese Extrahierung automatisch durchführt. Nach seiner Installation ist dieser manuelle Schritt nicht mehr erforderlich. Sie können BDD 2007 auf die MSU-Dateien verweisen, und der Rest erfolgt automatisch. Weitere Einzelheiten zu diesem Patch finden Sie unter support.microsoft.com/kb/937191.
Um diese Komponenten in Deployment Workbench aufzunehmen, klicken Sie mit der rechten Maustaste auf den Betriebssystempaketknoten und wählen „New“ (Neu), um den Assistenten zur Paketerstellung zu starten. Geben Sie den Pfad zu einem Ordner an, der die einzufügenden Pakete enthält.
Schließlich benötigen Sie ggf. noch Treiber für die Computerhardware, auf der Windows Vista ausgeführt werden soll. Suchen Sie die erforderlichen Treiber auf den Websites der Anbieter oder bei Microsoft Update, laden Sie sie herunter, und extrahieren Sie dann die Pakete. Der letzte Schritt kann etwas schwierig sein, aber im Endergebnis sollten Sie die rohen Treiberdateien erhalten: .inf, .sys, .dll und die verwandten Dateien, die für den Treiber selbst benötigt werden.
Nach Extrahieren der Treiberdateien führen Sie den Assistenten zur Treibererstellung aus. Klicken Sie hierfür mit der rechten Maustaste auf den Treiberknoten, und wählen Sie „New Deployment“ (Neue Bereitstellung) aus. Workbench analysiert die Verzeichnisstruktur und sucht nach allen .inf-Dateien, sodass Sie sich nicht um das Bereinigen der extrahierten Verzeichnisstrukturen kümmern müssen.
Während des Imports der Treiber erstellt Deployment Workbench einen Katalog aller Treiberdetails einschließlich der unterstützten Plattformen, Hersteller und Version und einer Liste der vom Treiber unterstützten Plug & Play-IDs.

Was geschieht mit diesen Treibern? Müssen sie in das zuvor importierte Bedienungssystemabbild eingefügt werden?
BDD 2007 nimmt keine Änderungen an dem importierten Betriebssystemabbild vor. Stattdessen werden die Treiber während des Bereitstellungsprozesses eingefügt. Der grundlegende Prozess läuft folgendermaßen ab:
  1. Sie führen auf dem Computer, der bereitgestellt wird, ein Dienstprogramm (Microsoft.BDD.PnpEnum.exe) aus, das alle auf dem Computer vorhandenen Plug & Play-IDs identifiziert.
  2. Jede gefundene Plug & Play-ID wird im Treiberkatalog gesucht. Für jede gefundene Entsprechung werden die Treiberdateien auf den Computer kopiert.
  3. Windows Vista-Setup wird angewiesen, die Treiber in das Betriebssystem einzufügen, nachdem das Abbild auf den Datenträger angewendet wurde, doch bevor Windows Vista zum ersten Mal startet. Diese Reihenfolge ist wichtig, da einige Treiber, wie beispielsweise Massenspeichertreiber, für das Starten des Betriebssystems erforderlich sein können.

Kann die Bereitstellung jetzt erfolgen?
Es müssen nur noch ein paar Schritte durchgeführt werden. Zuerst müssen Sie einen Build definieren, der ein Betriebssystem in der Distributionsfreigabe den gewünschten Einstellungen und der Aufgabenfolge zuordnet, die zur Durchführung der Betriebssysteminstallation und Konfiguration erforderlich sind.
Zum Erstellen dieses Build klicken Sie mit der rechten Maustaste auf den Knoten „Builds“ und wählen „New“ (Neu), um den entsprechenden Assistenten zu starten. Geben Sie eine Build-ID (einen einfachen Wert Ihrer Wahl ohne Leerzeichen oder Sonderzeichen) zusammen mit einem Buildnamen und einer Beschreibung an, die beide sichtbar sind, wenn die Betriebssystembereitstellung erfolgt (siehe Abbildung 3). Dann wählen Sie das Betriebssystem, das Sie installieren möchten, und geben einige zu verwendende grundlegende Einstellungen an.
Abbildung 3 Angeben der grundlegenden Buildinformationen
Abbildung 3 Angeben der grundlegenden Buildinformationen

Kann die Bereitstellung nun erfolgen?
Eins ist noch erforderlich: ein Bereitstellungspunkt. Dabei handelt es sich um eine Netzwerkfreigabe, die alle bisher gesammelten Dateien sowie alle Builddetails und die Windows PE-Abbilder enthält, die im Bereitstellungsprozess verwendet werden sollen. Das Erstellen eines Bereitstellungspunkts erfolgt genau wie die bisher erläuterten Schritte: Klicken Sie mit der rechten Maustaste auf den Bereitstellungspunktknoten, und wählen Sie „New“ (Neu) aus. Geben Sie an, ob Sie eine Testumgebungs- oder Einzelserverbereitstellung wünschen, (siehe Abbildung 4), und akzeptieren Sie die übrigen Standardvorgaben.
Abbildung 4 Auswahl der Bereitstellungspunktart
Abbildung 4 Auswahl der Bereitstellungspunktart
Nach Beenden des Assistenten klicken Sie mit der rechten Maustaste auf den neuen Bereitstellungspunkt im Listenbereich und wählen „Update“ (Aktualisieren), um die Freigabe und Windows PE-Abbilder zu generieren.
Erinnern Sie sich an die bereits hinzugefügten Treiber? Dieselben Treiber (zumindest die Netzwerk- und Massenspeichertreiber) werden auch von Windows PE benötigt. Beim Aktualisierungsprozess werden die Treiber automatisch in das Windows PE-Abbild eingefügt.

Kann die Bereitstellung jetzt erfolgen?
Ja! Zuerst geht es nun um eine Bereitstellung auf einem neuen Computer. Brennen Sie die LiteTouchPE_x86.iso-Datei aus dem distribution\boot-Ordner mithilfe Ihrer bevorzugten CD-Schreibsoftware auf CD-R, oder verwenden Sie das cdburn.exe-Tool, das Sie von der Microsoft-Website herunterladen können (go.microsoft.com/fwlink/?LinkID=77796). Starten Sie einen Computer von der CD aus. Damit wird Windows PE gestartet und der in Abbildung 5 dargestellte Begrüßungsassistent angezeigt.
Abbildung 5 Bereit zum Start einer Bereitstellung
Abbildung 5 Bereit zum Start einer Bereitstellung
Wählen Sie „Run the Deployment Wizard“ (Bereitstellungsassistenten ausführen), und klicken Sie zum Starten auf „Next“ (Weiter). Nun können Sie den von Ihnen definierten Build, hinzugefügte Anwendungen und importierte Sprachpakete auswählen. Sie können auch einer Domäne beitreten, den Namen des Computers angeben und verschiedene andere Einstellungen konfigurieren. Sie können sogar angeben, dass Sie automatisch ein neues benutzerdefiniertes Abbild aufzeichnen möchten (dies geschieht mithilfe von Sysprep, Windows PE und ImageX zum Erstellen einer neuen Abbilddatei).
Abhängig von der Geschwindigkeit und Art Ihres Computers kann die Bereitstellung eine Weile dauern, aber es sind keine Benutzereingaben erforderlich. Nach Abschluss der Bereitstellung wird eine Zusammenfassung angezeigt, der Sie während des Prozesses protokollierte Warnungen oder Fehler entnehmen können. So können Sie schnell überprüfen, ob die Bereitstellung erfolgreich war. Eine gelbe oder rote Zusammenfassung bedeutet, dass Sie dem Prozess weitere Beachtung schenken müssen, während weiß anzeigt, dass alles in Ordnung war.
Im Folgenden wird erläutert, wie die Bereitstellung auf einem Computer erfolgt, auf dem bereits Windows XP ausgeführt wird. Von einer Eingabeaufforderung aus ordnen Sie der auf Ihrem BDD 2007-Server erstellten Distribution$-Freigabe ein Laufwerk zu und führen dann LiteTouch.vbs aus, um die Bereitstellung zu starten:
NET USE M: \\MyServer\Distribution$
cscript.exe M:\Scripts\LiteTouch.vbs
Damit wird derselbe Bereitstellungsassistent gestartet, den Sie zuvor gesehen haben, aber es gibt einige neue Auswahlmöglichkeiten (siehe Abbildung 6).
Abbildung 6 Wahlmöglichkeiten bei einem Computer, auf dem Windows XP ausgeführt wird
Abbildung 6 Wahlmöglichkeiten bei einem Computer, auf dem Windows XP ausgeführt wird
Wenn Sie sich für die Aktualisierungsoption entscheiden, wird das vorhandene Betriebssystem entfernt (nachdem Sie optional die Benutzerdaten und Einstellungen mithilfe von User State Migration Tool aufgezeichnet haben (das Tool muss mithilfe des Komponentenknotens heruntergeladen werden, wie zuvor mit Windows AIK geschehen). Anschließend wird eine neue Installation von Windows Vista durchgeführt. Alternativ können Sie eine Aktualisierung durchführen, wobei Windows Vista-Setup das vorhandene Betriebssystem aktualisiert und die vorhanden Anwendungen, Daten und Einstellungen auf dem Computer beibehält. Die von Ihnen gewählte Option hängt von verschiedenen Faktoren ab, obwohl zumeist eine Aktualisierung durchgeführt wird, um mit einem sauberen, bekannten Zustand zu beginnen.

Ist das alles, was Sie wissen müssen?
Wie sieht es mit Windows XP aus?
Was geschieht, wenn Windows XP weiterhin bereitgestellt wird? Kein Problem – Sie können BDD 2007 auch zur Unterstützung bei diesem Prozess verwenden. Es werden dieselben Schritte durchgeführt. Verwenden Sie einfach Windows XP-Installationsdateien zum Erstellen des anfänglichen Build, zeichnen Sie ein neues WIM-Abbild für Windows XP auf (das Bereitstellen eines Windows XP-Abbilds ist viel schneller als eine unbeaufsichtigte Installation), und verwenden Sie diese WIM-Datei dann für die nachfolgenden Bereitstellungen.
Im Vergleich zu Windows Vista-Bereitstellungen gibt es bei Windows XP einige Punkte zu bedenken:
Windows XP-Massenspeichertreiber wie z. B. TEXTMODE-Ordner, unattend.txt-Einstellungen, und Sysprep.inf-Einstellungen müssen zusätzlich konfiguriert werden. Da Massenspeichertreiber nicht in vorhandene Windows XP-Abbilder eingefügt werden können, müssen Sie jedes Mal, wenn ein zusätzlicher Massenspeichertreiber hinzugefügt werden muss, ein neues Abbild aufzeichnen. Zudem sind Windows XP-Abbilder nicht HAL-unabhängig, sodass zwei oder drei separate Abbilder erforderlich sein können. Schließlich können Sprachpakete und Sicherheitsupdates nicht offline in Windows XP eingefügt werden. Sie müssen also installiert werden, wenn Windows XP betriebsbereit ist.
Wenn Sie BDD 2007 für Ihre Windows XP-Bereitstellung verwenden, sind Sie bestens für eine Installation von Windows Vista vorbereitet.

In diesem Artikel konnte nur ein Überblick über den Gesamtprozess gegeben werden. Wenn Sie den gesamten Prozess jedoch von Anfang bis Ende durchführen, sehen Sie, wie die neuen Tools zusammenarbeiten, ohne dass Sie jedes einzelne erlernen müssen. Jetzt können Sie sich näher mit den BDD 2007-Skripts und -Protokollen befassen, um zu sehen, was durchgeführt wurde. Sie können benutzerdefinierte Abbilder erstellen und sie zum Bereitstellen in BDD 2007 einfügen. Sie können DVD-Medien oder USB-Flashlaufwerke erstellen und Ihr Abbild darauf laden. Sie können SMS 2003 und das zugehörige Feature Pack für die Betriebssystembereitstellung in den Prozess integrieren.

Wo gibt es mehr Informationen?
Sehen Sie sich die Dokumente an, die zuvor übersprungen wurden. Es sind gut eintausend Seiten vorhanden, die gemäß der unterschiedlichen, bei einem Bereitstellungsprojekt beteiligten Teams gegliedert sind. Weitere Informationen sind auch auf der bereits erwähnten microsoft.com/desktopdeployment-Website erhältlich. Nutzen Sie die microsoft.public.deployment.desktop-Newsgroup, wo IT-Experten alle möglichen Fragen zur Windows-Bereitstellung stellen. Sehen Sie sich Drittanbieterwebsites wie deployvista.com und myitforum.com an, auf denen Sie umfassende Informationen zu BDD 2007 und zur Windows Vista-Bereitstellung finden. Eine weitere Ressource ist das neue Windows Vista Resource Kit-Buch (microsoft.com/mspress/books/9536.aspx), das bei Microsoft Press verfügbar ist. Lesen Sie meinen Blog unter blogs.technet.com/mniehaus. Dort finden Sie Erörterungen verschiedener Elemente von BDD 2007. Sprechen Sie Ihre lokalen Microsoft-Vertreter auf Seminare zu BDD 2007 und Windows Vista in Ihrer Region an. In der Randleiste „Bereitstellungsressourcen“ finden Sie zusätzliche Informationen.
Wenn Sie über Software Assurance für Microsoft Office System verfügen, sollten Sie die Desktop Deployment Planning Services (microsoft.com/licensing/sa/benefits/deployment.mspx) nutzen, damit Microsoft oder ein Microsoft-Partner ein paar Tage zusammen mit Ihnen einen Plan erstellen oder auch an einer Testumgebung mit Machbarkeitsnachweis an Ihrem Standort arbeiten kann.
Bereitstellungsressourcen
  • Microsoft Desktopbereitstellungs-Center microsoft.com/desktopdeployment
  • 10 wissenswerte Punkte zur Bereitstellung von Windows Vista technetmagazine.com/issues/2006/11/Deployment
  • Microsoft .NET Framework 2.0 go.microsoft.com/fwlink/?LinkId=94601
  • Microsoft Management Console (MMC) 3.0 für Windows Server 2003 x86 go.microsoft.com/fwlink/?LinkId=94602
  • Sicherheitsbulletins und Empfehlungen microsoft.com/technet/security/bulletinsandadvisories

Michael Niehaus ist Systemdesignexperte im Solution Accelerators-Team bei Microsoft. Er ist zuständig für die Entwicklung von Best Practices, Tools und Skripts für Business Desktop Deployment. Sie können unter michael.niehaus@microsoft.com mit ihm Kontakt aufnehmen.
© 2007 Microsoft Corporation und CMP Media, LLC. Alle Rechte vorbehalten. Die nicht genehmigte teilweise oder vollständige Vervielfältigung ist nicht zulässig.


 Windows Vista: Windows&#160;Vista-Sicherungstechnologien
Windows Vista Christine Fok

Windows Vista-Sicherungstechnologien
Kurz zusammengefasst:
  • Dateisicherung und -wiederherstellung
  • Windows Complete PC-Sicherung und -Wiederherstellung
  • Systemwiederherstellung
  • Schattenkopie

Zu viele Menschen denken nicht an die Sicherung ihrer Daten, bis es zu spät ist und Daten bereits verloren gegangen sind. Dies müsste eigentlich nicht passieren, doch leider kommt es immer wieder vor. Windows Vista verfügt über einen vollständigen Featuresatz für umfassenden Datenschutz, durch den die Erstellung von Sicherungen einfacher wird.
Die vertraute Systemwiederherstellung wurde so überarbeitet, dass sie stabiler ist und mehr Systemreparaturszenarios unterstützt. Die Dateisicherung wurde verbessert, um Datenschutz einfacher und gründlicher zu machen, und es wurden zwei neue Features hinzugefügt: Windows® Complete PC-Sicherung und -Wiederherstellung sowie Schattenkopie.
Alle diese Features beruhen in der einen oder anderen Weise auf dem Volumeschattenkopie-Dienst (Volume Shadow Copy Service, VSS). Dies ist ein Dienst, der zeitpunktgenaue Kopien („Schattenkopien“) eines Volumes erstellt und die Änderungen aufzeichnet, die von einer Schattenkopie zur nächsten vorgenommen wurden.
Alle vier Features, die in der neuen Sicherung und Wiederherstellung verfügbar sind (siehe Abbildung 1), dienen zwar zur Sicherung und Wiederherstellung von Daten, sie unterscheiden sich jedoch erheblich voneinander. Zusammen bieten sie für die gesamte Lebensdauer Ihres Computers umfassenden Schutz vor diversen Formen von Datenverlust.
Abbildung 1 Sicherung und Wiederherstellung in Windows Vista
Abbildung 1 Sicherung und Wiederherstellung in Windows Vista

Dateisicherung
Planen einer Complete PC-Sicherung
Eine regelmäßige Complete PC-Sicherung zu planen, ist eine Möglichkeit, aktuelle Abbilder Ihres gesamten Computers zu sichern. Die Complete PC-Sicherung lässt sich nicht über die Systemsteuerung terminlich planen, aber Sie können dieses Problem umgehen, indem Sie im Taskplaner eine neue Aufgabe erstellen. Wenn Sie sich für Complete PC-Sicherungen nach Zeitplan entscheiden, ist es empfehlenswert, den Erfolg der Sicherungen regelmäßig zu überprüfen. Warum ist dies notwendig? Weil Sie bei dieser Methode keine Meldung erhalten, wenn die Sicherungen aufgrund von Speicherplatzproblemen oder anderen vorübergehenden Problemen fehlschlagen. Sie sollte nicht als Ersatz für regelmäßige Dateisicherung betrachtet werden. Im Folgenden wird erläutert, wie man eine Complete PC-Sicherung mithilfe des Taskplaners einrichtet:
  1. Gehen Sie zum Taskplaner (Ordner „Zubehör“\„Systemprogramme“ unter „Alle Programme“ im Startmenü).
  2. Klicken Sie auf „Aufgabe erstellen“.
  3. Gehen Sie zur Registerkarte „Allgemein“.
  4. Geben Sie einen Namen ein, wie z. B. „Geplante Complete PC-Sicherung“.
  5. Wenn Sie wollen, dass die Aufgabe unabhängig davon ausgeführt wird, ob Sie angemeldet sind oder nicht, klicken Sie auf „Unabhängig von der Benutzeranmeldung ausführen“.
  6. Klicken Sie auf „Mit höchsten Privilegien ausführen“.
  7. Gehen Sie zur Seite „Trigger“.
  8. Klicken Sie auf „Neu“, und geben Sie dann an, wann und wie oft die geplante Sicherung stattfinden soll.
  9. Gehen Sie zur Seite „Aktionen“.
  10. Klicken Sie auf „Neu“.
  11. Geben Sie unter „Programm“/„Skript“ „wbadmin“ ein.
  12. Geben Sie in „Argumente hinzufügen (optional)“ den folgenden Befehl ein, um den Ziellaufwerkbuchstaben nach Bedarf einzustellen:
    Start backup –allcritical –backupTarget:D: -quiet
    Wenn Sie zusätzliche Volumes einbeziehen wollen, die keine System- oder Startvolumes oder Volumes der Windows-Wiederherstellungsumgebung sind, verwenden Sie stattdessen die folgende Anweisung und ersetzen Sie dabei E und F durch die entsprechenden Laufwerkbuchstaben (durch Kommas getrennt):
    Start backup –allcritical –backupTarget:D: -include:E:,F: -quiet
    Beachten Sie, dass der Befehl immer das Kennzeichen „allCritical“ enthalten muss. Ohne dieses Kennzeichen besteht die Gefahr, dass wichtige Systemvolumes von der Sicherung ausgeschlossen bleiben, was bei der Wiederherstellung zu Fehlern führen würde.
  13. Konfigurieren Sie mögliche weitere aufgabenbezogene Einstellungen.
  14. Klicken Sie auf „OK“.

Angenommen, ich kaufe einen neuen Laptop. Nachdem ich verschiedene Dateien wie z. B. Fotos und Microsoft® Word-Dokumente in mein System kopiert, Anwendungen installiert und die neuesten Windows-Updates heruntergeladen habe, beschließe ich, eine Dateisicherung durchzuführen. Also schließe ich eine externe Festplatte an den Laptop an und öffne die Sicherung und Wiederherstellung in Windows Vista. Wenn ich auf die Schaltfläche „Dateien sichern“ klicke, wird ein Assistent angezeigt, der mich durch das Setup führt. Er fragt mich nach dem Sicherungsziel (in diesem Fall die externe Festplatte), den Kategorien der zu sichernden Dateien (z. B. Bilder) sowie dem Zeitpunkt, wann die Sicherung durchgeführt werden soll.
In der Dateisicherung werden Dateien auf der Basis von Dateikategorien zur Sicherung ausgewählt. Die Quellfestplatte muss NTFS-formatiert sein, die Zielfestplatte kann NTFS- oder FAT-formatiert sein. Die Feststellung, ob eine Datei einer bestimmten Kategorie zugeordnet ist, wird durch drei Faktoren bestimmt: MIME-Typ, Anwendungszuordnung und Dateierweiterung.
Wenn Sie Dateien sichern wollen, die in keine anderen Kategorien passen, wählen Sie die Kategorie „Zusätzliche Dateien“ aus. Diese umfasst Dateien mit Erweiterungen, die von Windows nicht erkannt werden. Allerdings unterstützt sie keine ausführbaren Dateien und Systemdateien. Solche Dateien werden durch dieses Feature nicht gesichert, da sie selten Benutzerdaten enthalten. Wenn Sie wirklich ausführbaren Dateien und Systemdateien mit diesem Mechanismus sichern wollen, können Sie sie in eine .zip-Datei stellen und im Assistenten die Kategorie „Komprimierte Dateien“ auswählen.
Da ich die Sicherungsfeatures auf meinem neuen Laptop zum ersten Mal verwende, wird direkt eine vollständige Sicherung durchgeführt, d. h. eine komplette Sicherung aller Dateien der ausgewählten Kategorien. Danach werden nur inkrementelle Sicherungen durchgeführt. Der Begriff „inkrementell“ bedeutet im Kontext der Dateisicherung, dass nur die neuen und aktualisierten Dateien gesichert werden. Wenn Sie zum Beispiel ein altes Word-Dokument haben, an dem Sie dann ein paar Änderungen vornehmen, bewahrt das Dateisicherungstool sowohl von dem alten als auch von dem aktualisierten Dokument vollständige Kopien auf. (Die aus einer einzigen vollständigen Sicherung und der Folge der später erstellten inkrementellen Sicherungen bestehende Sammlung wird als Sicherungssatz bezeichnet.)
Statt zeitlich unbegrenzt nur inkrementelle Sicherungen durchzuführen, sind gelegentlich vollständige Sicherungen zu empfehlen. Die Aufforderung dazu erfolgt aufgrund von Faktoren wie z. B. der Zeit, die seit der letzten vollständigen Sicherung verstrichenen ist, der Anzahl der Dateien, von denen Sie Sicherungskopien erstellen, der Anzahl der CDs oder DVDs, von denen Sie Sicherungskopien erstellt haben, und so weiter. So soll sichergestellt werden, dass immer eine Basissicherung verfügbar ist.
Gesicherte Daten werden als .zip-Dateien (mit einer maximalen Größe von jeweils 200 MB) gespeichert. Dies macht die Daten universell zugänglicher. So können Sie zum Beispiel die Daten auf einem Computer wiederherstellen, der nicht Windows Vista ausführt, indem Sie direkt die Sicherungsmedien durchsuchen. Die Sicherungsdaten werden in separaten Dateien gespeichert und können sich über mehrere Datenträger erstrecken. Wenn ein Datenträger ausfallen sollte, sind die Sicherungsdaten auf den anderen Medien immer noch zugänglich.
Bei der Dateisicherung wird der Volumeschattenkopie-Dienst verwendet, um konsistente Kopien von Dateien zu erstellen, die geöffnet sind oder gerade von Anwendungen verwendet werden. Während des Sicherungsprozesses liest die Sicherungsanwendung diese konsistenten Kopien. Das ist beispielsweise praktisch, wenn eine Sicherungskopie von einer .pst-Datei erstellt wird, die ständig von Microsoft Outlook® geöffnet ist. Der Volumeschattenkopie-Dienst sorgt dafür, dass die gesicherte .pst-Datei einen konsistenten Status aufweist, sodass bei der Wiederherstellung auf sie zugegriffen werden kann.
Dateisicherungen werden nicht automatisch gelöscht. Sie können Dateisicherungen jedoch bei Speicherplatzengpässen manuell löschen. Ein Ratschlag: Statt einzelner inkrementeller Sicherungen sollten Sie immer einen gesamten Sicherungssatz löschen.
Übrigens sollten Sie es vermeiden, eine Dateisicherung an einen anderen Speicherort zu kopieren. Falls Sie dazu gezwungen sein sollten, bedenken Sie, dass dies nur funktioniert, wenn Sie einzelne ursprüngliche Sicherungsmedien an einzelne Zielmedien verschieben. Sie können zum Beispiel Sicherungsdaten von einer einzigen CD auf eine einzige DVD kopieren, aber Sie können nicht Sicherungsdaten von mehreren CDs auf eine DVD kopieren. Wenn Sie eine Sicherung verschieben, müssen Sie den Sicherungsordner mit dem Namen Ihres Computers und der mediaid.bin-Datei kopieren, die sich beide im Stammverzeichnis der Sicherungsmedien befinden. Wenn Sie eine verschobene Datei wiederherstellen möchten, müssen Sie in der Sicherungssystemsteuerung „Erweiterte Wiederherstellung | Dateien von einer Sicherung auf einem anderen Computer wiederherstellen“ auswählen, um diese Dateien zu erreichen, da der Sicherungskatalog auf dem Computer von dem neuen Sicherungsspeicherort nichts weiß.

Complete PC-Sicherung
Bei meinem neuen, vollständig eingerichteten und konfigurierten Laptop möchte ich eine komplette Sicherung durchführen, die alles, einschließlich Betriebssystem, Anwendungen, Konfigurationseinstellungen und Updates, enthält. Ich verwende das Complete PC-Sicherungsfeature, das dann verwendet werden kann, um meinen Computer im Falle eines Festplattenfehlers oder eines anderen Notfalls wiederherzustellen. Ich muss dann nicht alle Anwendungen einzeln neu installieren und alle meine Konfigurationseinstellungen wiederholen. Bei der ersten Ausführung führt dieses Feature in den von mir ausgewählten Volumes eine vollständige Sicherung aller Blöcke durch, mit Ausnahme solcher Blöcke, in denen keine Informationen gespeichert sind. Nachfolgende Sicherungen erfolgen auf Blockebene differenziell (ausführliche Informationen hierzu gleich).
Nach Durchführung der Sicherungen wird die Systemsteuerung der Sicherung und Wiederherstellung aktualisiert (siehe Abbildung 2). Dort wird jetzt z. B. angezeigt, wann die Sicherung durchgeführt und wo sie gespeichert wurde.
Abbildung 2 Sicherung und Wiederherstellung mit Details zu früheren Sicherungen
Abbildung 2 Sicherung und Wiederherstellung mit Details zu früheren Sicherungen
Sowohl die Complete PC-Sicherung als auch die Dateisicherung dienen dem gleichen Zweck, sie funktionieren jedoch völlig unterschiedlich. Die Complete PC-Sicherung erstellt auf Blockebene eine Abbildsicherung des gesamten Computers in einem .vhd-Format (Virtual Hard Disk). Bei der ersten vollständigen Sicherung durchsucht das Modul den Quelldatenträger und kopiert Blöcke, die Daten enthalten, in eine .vhd-Datei, die auf dem Zieldatenträger gespeichert wird. Obwohl die gesicherten Daten nicht komprimiert werden, sind sie kompakt.
Bei der nächsten Complete PC-Sicherung werden nur neue und geänderte Daten in die .vhd-Datei geschrieben, die alten Daten desselben Blocks werden zum Speicherbereich für Schattenkopien verschoben. Der Volumeschattenkopie-Dienst verarbeitet die Unterschiede zwischen den einzelnen Snapshots und steuert die Verschiebung alter Daten aus dem Schattenkopiebereich auf dem Zieldatenträger (siehe Abbildung 3). Dadurch ist die Sicherung schnell (da nur geänderte Blöcke gesichert werden) und effizient (da Daten kompakt gespeichert werden). Die Sicherungsanwendung legt die maximale Menge an Schattenkopiespeicherplatz fest, der auf dem Zieldatenträger verfügbar ist. Ein schrittweises Verfahren zur regelmäßigen oder automatischen Verwendung des Complete PC-Sicherungssystems finden Sie in der Randleiste unter „Planen einer Complete PC-Sicherung“.
Abbildung 3 Verschiebung von Daten bei einer Complete PC-Sicherung und -Wiederherstellung
Abbildung 3 Verschiebung von Daten bei einer Complete PC-Sicherung und -Wiederherstellung
Bei der Wiederherstellung von Daten werden die Blöcke an ihrem ursprünglichen Speicherort wiederhergestellt. Wenn Sie eine ältere Sicherung wiederherstellen möchten, liest das Modul Daten aus dem Schattenkopiebereich und stellt die entsprechenden Blöcke wieder her.
Die Complete PC-Sicherung kann nur von NTFS-formatierten Datenträgern Sicherungskopien erstellen. Wenn das Sicherungsziel eine Festplatte ist, muss auch diese NTFS-formatiert sein.

Systemwiederherstellung
Die Systemwiederherstellung ist standardmäßig aktiviert. Ich greife auf den Systemwiederherstellungs-Assistenten zu, indem ich mithilfe der Systemwiederherstellung im linken oberen Teil der Sicherung und Wiederherstellung in Windows Vista „Windows reparieren“ auswähle (Alternative: Ordner „Zubehör“\„Systemprogramme“ unter „Alle Programme“ im Startmenü). Wenn ich „Anderen Wiederherstellungspunkt auswählen“ wähle und auf „Weiter“ klicke, kann ich sehen, dass an verschiedenen Punkten bereits Wiederherstellungspunkte erstellt worden sind, während ich meinen Laptop einrichtete, Anwendungen installierte und Sicherungsvorgänge durchführte.
Wiederherstellungspunkte sind standardmäßig nur auf dem Startvolume eingeschaltet, sogar bei Systemen, bei denen die Festplatte mehrere Volumes hat. Wiederherstellungspunkte werden automatisch während der Anwendungs- und Treiberinstallation und täglich in allen ausgewählten Volumes erstellt (wenn nicht an diesem Tag bereits ein Wiederherstellungspunkt übernommen wurde). Wiederherstellungspunkte können auch durch Auswählen der Systemschutzoption im Applet „System“ der Systemsteuerung manuell erstellt werden. Auch die bei der Dateisicherung und Complete PC-Sicherung erstellten Schattenkopien können als Wiederherstellungspunkte verwendet werden.
In Windows XP verwendet die Systemwiederherstellung einen Dateisystemfilter, um Änderungen an Systemdateien aufzuzeichnen. In Windows Vista verwendet die Systemwiederherstellung den Volumeschattenkopie-Dienst, um Änderungen auf Blockebene in den ausgewählten Volumes aufzuzeichnen. Dies macht die Systemwiederherstellung stabiler und befähigt sie, eine größere Anzahl Reparaturszenarios zu unterstützen.
Neu ist auch, dass die Systemwiederherstellung jetzt ausgeführt werden kann, während die reguläre Windows-Installation offline ist. Dies geschieht mithilfe der Windows-Wiederherstellungsumgebung, sodass Sie Ihr System selbst dann reparieren können, wenn Windows nicht mehr startbar ist.

Schattenkopie
Die Funktion „Schattenkopie“ ist so gut wie unsichtbar. Sie ist standardmäßig aktiviert und erfordert vom Benutzer keine Eingabe. Erst wenn ein Benutzer eine Datei wiederherstellen muss, wird er wahrscheinlich bemerken, dass es sie überhaupt gibt. Sie stellt im Wesentlichen die zeitpunktgenauen Dateikopien bereit, die vom Volumeschattenkopie-Dienst erstellt werden.

Speicherplatzverwaltung für Schattenkopien
Es gibt sowohl auf den Livevolumes als auch auf dem Sicherungsdatenträger reservierte Speicherplätze für Schattenkopien aus der Complete PC-Sicherung. Sie können prüfen, welchen Speicherplatz Schattenkopien belegen, wie viel ihnen zugeordnet ist und wie viel sie maximal belegen dürfen. Führen Sie dazu den folgenden Befehl von einer Eingabeaufforderung mit erweiterter Berechtigung aus:
VSSAdmin list ShadowStorage
„Belegt“ zeigt an, wie viel Speicherplatz derzeit von Schattenkopien eingenommen wird, „Zugewiesen“ zeigt die Größe des für Schattenkopien reservierten Speicherplatzes an (der folglich nicht für andere Zwecke verwendet werden kann), und „Maximum“ ist die maximale Speicherplatzgröße, die die Schattenkopien belegen dürfen.
Die Speicherplatzzuweisung für Schattenkopien erfolgt automatisch und kann nicht durch den Benutzer festgelegt werden. Neuer Speicherplatz wird in festgelegten Inkrementen immer dann zugewiesen, wenn der zuvor zugewiesene Speicherplatz verbraucht ist. Deshalb liegt der für belegten Speicherplatz angezeigte Wert immer unter dem Wert für zugewiesenen Speicherplatz.
Für das Livevolume wird der maximal zulässige Schattenspeicherplatz bei Erstellung der ersten Schattenkopie bestimmt. Dies geschieht in der Regel dann, wenn die Systemwiederherstellung erstmals aktiviert und während des Setups ein Wiederherstellungspunkt erstellt wird. Der Wert wird auf 30 Prozent des freien Speicherplatzes oder auf 15 Prozent der Gesamtgröße des Volumes festgelegt, je nachdem, welcher von beiden Werten der kleinere ist. Diese maximale Größe ist statisch. Sie ändert sich weder, wenn mehr oder weniger freier Speicherplatz verfügbar ist, noch, wenn die Größe des Volumes angepasst wurde.
Sie können jedoch die Größe dieses Speicherbereichs manuell mithilfe von VSSAdmin von einer Eingabeaufforderung mit erweiterter Berechtigung einstellen. Der Befehl, die maximale Speichergröße auf C:\ auf 15 GB zu vergrößern, würde beispielsweise lauten:
VSSAdmin Resize ShadowStorage /For=C: /On=C: /MaxSize=15GB
Dieses Tool stammt aus Windows Server®, wo Schattenkopien für ein bestimmtes Volume auf einem anderen Volume gespeichert werden können. In Windows Vista werden Schattenkopien eines Volumes auf demselben Volume gespeichert. Deshalb muss das Volume, dessen Schattenkopien gespeichert werden, identisch sein mit dem Volume, auf dem diese gespeichert werden.
Der Sicherungszieldatenträger für die Complete PC-Sicherung hat andererseits eine feste maximale Speichergröße für Schattenkopien von 30 Prozent des Speicherplatzes. Dieser Wert wird von der Complete PC-Sicherung gesteuert und kann nicht manuell geändert werden. Dieser Schattenkopiespeicherplatz wird für die Speicherung von Inkrementen für die Complete PC-Sicherung verwendet.
Bis zu 64 Schattenkopien können zu einem beliebigen Zeitpunkt auf einem Volume aufbewahrt werden, vorausgesetzt der Speicherbereich für Schattenkopien verfügt über genug Speicherplatz. Wenn die maximale Speicherplatzbeschränkung erreicht ist, werden ältere Schattenkopien gelöscht, um Platz für die neuen zu schaffen. Deshalb werden alte Wiederherstellungspunkte gelöscht, wenn die Speicherbeschränkung für Schattenkopien auf dem Livevolume erreicht ist, und alte Complete PC-Sicherungen werden gelöscht, wenn die Beschränkung auf dem Sicherungsdatenträger erreicht ist. Außerdem stören Speicherung und Bearbeitung anderer Daten auf dem Sicherungsdatenträger möglicherweise den normalen Alterungsprozess von Sicherungen, sodass alte Sicherungen evtl. beschleunigt gelöscht werden.

Wiederherstellen einer Datei mit der Schattenkopie
Stellen Sie sich jetzt vor, dass ich meinen Laptop schon seit einiger Zeit besitze und ihn dazu verwendet habe, einige Präsentationen zu erstellen. Ich habe die Präsentationen fertig gestellt und an meine Kunden weitergeleitet. Ein Monat ist vergangen, ich arbeite an neuen Projekten und habe daher diese Dateien gelöscht. Dann fragt mich mein Vorgesetzter nach einer Kopie der alten Präsentationen. Für diesen Fall ist die Schattenkopie wirklich praktisch.
Es gibt zwei Möglichkeiten, Kopien gelöschter Dateien zu suchen. Wenn ich weiß, wo die Datei gespeichert war, kann ich einfach mit der rechten Maustaste auf den Ordner klicken, der die gelöschte Datei enthielt, und „Vorgängerversionen wiederherstellen“ auswählen. Von dort wähle ich ein Datum aus, das die gewünschte Version der gelöschten Datei enthält (siehe Abbildung 4), klicke auf „Öffnen“ und kopiere dann die Zieldatei in einen anderen Speicherort auf dem Livevolume. Dieser Kopiervorgang erfolgt ebenso schnell wie das reguläre Kopieren einer Datei.
Abbildung 4 Wiederherstellen einer gelöschten Datei
Abbildung 4 Wiederherstellen einer gelöschten Datei
Wenn ich vergessen habe, wo die Datei gespeichert war, kann ich die vorherige Version des nächsten übergeordneten Ordners in der Dateistruktur öffnen und von dort aus eine Suche durchführen. Wenn ich zum Beispiel den bestimmten Ordner vergessen habe aber weiß, dass die Datei sich in einem Unterordner von „Dokumente“ befand, kann ich die vorherige Version von „Dokumente“ suchen, indem ich den Dateinamen (vollständig oder teilweise) in das Suchfeld in der oberen rechten Ecke des Windows Explorer-Fensters eingebe (siehe Abbildung 5). Im Stammordner funktioniert die Suche nach Schattenkopien nicht. Da Schattenkopien nicht indiziert werden, kann die Suche länger dauern als auf einem Livevolume.
Abbildung 5 Suche nach der vorherigen Version eines Dokuments durch Eingabe eines Teils des Dateinamens
Abbildung 5 Suche nach der vorherigen Version eines Dokuments durch Eingabe eines Teils des Dateinamens

Wiederherstellen einer Datei aus der Dateisicherung
Schattenkopien werden in regelmäßigen Zeitabständen zur Speicherplatzpflege gelöscht und stehen daher nicht unbeschränkt zur Verfügung. Wenn ich eine Datei benötige, die nicht mehr als Schattenkopie vorliegt, kann ich auf meine geplanten Dateisicherungen zurückgreifen. Ich wähle einfach unter „Sichern und Wiederherstellen“ die Option „Dateien wiederherstellen“ und dann ein Sicherungsdatum, das die gelöschte Präsentation enthält. Wenn ich auf die Schaltfläche „Dateien hinzufügen“ klicke, erhalte ich ein Dialogfeld „Datei öffnen“, mit dem ich durch die Sicherung navigieren kann. Nach Auswahl der gesuchten Datei habe ich die Option, die Datei entweder an demselben oder einem anderen Speicherort wiederherzustellen.
Die Wiederherstellungsoption zeigt nur solche Sicherungen an, die im aktuellen Sicherungssatz enthalten sind. Um Sicherungen aus einem älteren Sicherungssatz anzuzeigen, wählen Sie „Erweiterte Wiederherstellung“ und dann die Option „Dateien aus einer früher auf diesem Computer durchgeführten Sicherung“. In dem seltenen Fall, dass Sie mit dieser Option keinen alten Sicherungssatz finden können, wählen Sie „Erweiterte Wiederherstellung“ und dann die Option „Dateien aus einer auf einem anderen Computer durchgeführten Sicherung“. Dies kann vorkommen, weil der Katalog der Computersicherungen gekürzt wird, wenn er zu groß wird.

Wiederherstellen einer Datei aus der Complete PC-Sicherung
Ich sollte der Gründlichkeit halber erwähnen, das eine Complete PC-Sicherung verwendet werden kann, um einzelne Dateien wiederherzustellen. Die Complete PC-Sicherung ist zwar für die Wiederherstellung auf Volumeebene vorgesehen, aber sie speichert Daten in einem .vhd-Format. Dies bedeutet, dass Sie das Offline-VHD-Bereitstellungstool verwenden können, um auf einzelne Dateien zuzugreifen und sie wiederherzustellen. (Zu dem Zeitpunkt, zu dem dieser Artikel verfasst wird, ist das VHD-Bereitstellungstool nur als Teil von Microsoft Virtual Server 2005 R2 SP1 verfügbar, den Sie von microsoft.com/technet/prodtechnol/eval/virtualserver herunterladen können.) Um die Sicherung bereitzustellen, öffnen Sie eine Eingabeaufforderung mit erhöhten Berechtigungen, und navigieren Sie zu Microsoft Virtual Server\Vhdmount. Der Befehl ist:
vhdmount /m [path of the .vhd file] [drive letter to assign to the virtual hard drive]
Beim ersten Mal kann es vorkommen, dass das System den erforderlichen Treiber nicht annimmt, da er nicht signiert ist. Dies führt zu einer Fehlermeldung, die besagt, dass der Gerätetreiber nicht geladen werden konnte. Um dieses Problem zu lösen, binden Sie zunächst mithilfe des obigen Befehls die .vhd-Datei ein, gehen dann zum Gerätemanager, klicken mit der rechten Maustaste auf das erscheinende neue Gerät und wählen „Eigenschaften“ aus. Gehen Sie von dort zur Registerkarte „Treiber“, wählen Sie „Treiber aktualisieren“, klicken Sie auf „Auf dem Computer nach Treibersoftware suchen“, und wählen Sie „Aus einer Liste von Gerätetreibern auf dem Computer auswählen“. Der Pfad der richtigen Treiberdatei lautet „Microsoft Virtual Server\Vhdmount\vhdstor.inf“. Nach der Installation erscheint das neue Laufwerk, und Sie können die aktuelle Complete PC-Sicherung durchsuchen und die von Ihnen gewünschten Dateien an einen anderen Speicherort kopieren.

Complete PC-Wiederherstellung
Stellen Sie sich nun vor, dass ich mich an einem sonnigen Nachmittag dazu entschließe, meinen Laptop am Rande des Schwimmbeckens zu benutzen. Dabei rutsche ich auf nassen Fliesen aus, und mein Laptop fällt ins Wasser. Er ist nicht mehr zu reparieren, und mir bleibt nichts anderes übrig, als mir einen neuen zu kaufen. Da ich das Complete PC-Sicherungstool verwendet habe, kann ich mein System auf dem neuen Laptop wiederherstellen. Ich verliere keine Zeit mit manueller Neuinstallation jeder einzelnen Anwendung und deren Neukonfiguration mit meinen persönlichen Einstellungen. Die Durchführung einer Complete PC-Wiederherstellung ist einfach. Beim Systemstart verwende ich den Windows Vista-Installationsdatenträger, um in die Windows-Wiederherstellungsumgebung zu starten. Hier werde ich zum Anschließen des Geräts aufgefordert, das das Systemabbild enthält. Ich wähle das entsprechende Abbild aus, und der Wiederherstellungsprozess beginnt.
Nach Abschluss der Wiederherstellung führe ich eine Dateiwiederherstellung aus meiner neuesten Dateisicherung durch. Dies tue ich deshalb, weil ich Dateisicherungen öfter durchführe, sodass die in meiner Dateisicherung enthaltenen Daten aktueller sind. Da der Computer in einen Zustand vor der ausgewählten Dateisicherung zurückversetzt wird, besitzt er im Katalog keinen Datensatz von dieser Sicherung. Ich wähle daher „Erweiterte Wiederherstellung“ | „Dateien von einer Sicherung auf einem anderen Computer wiederherstellen“ | „Alles aus dieser Sicherung wiederherstellen“. Ich starte auch eine neue vollständige Sicherung, um meine neu wiederhergestellten Daten zu schützen.
Die Windows-Wiederherstellungsumgebung wird oft vom OEM als ausgeblendete Partition auf der Festplatte installiert. Diese kann zur Wiederherstellung eines Complete PC-Sicherungsabbilds auf derselben Hardware verwendet werden. Wenn Sie jedoch ein Abbild wiederherstellen müssen, das auf einem anderem Computer erstellt wurde, müssen Sie die Windows-Wiederherstellungsumgebung von externen Medien wie z. B. Ihrem Windows-Installationsdatenträger aus ausführen.
Dabei sollten einige Vorsichtsmaßnahmen berücksichtigt werden. Die Complete PC-Wiederherstellung funktioniert dann einfach, wenn die Wiederherstellung auf derselben Hardware erfolgt, von der die Sicherungskopie erstellt wurde. (Vorausgesetzt natürlich, dass zu Ihrem Problem nicht auch ein Hardwarefehler gehörte).
Da die Complete PC-Sicherung ein Abbild des ganzen Computers enthält, gelten bei Wiederherstellung auf einer anderen Hardware einige Einschränkungen. Als Erstes enthält das Sicherungsabbild Treiber, die nach Abschluss der Wiederherstellung verwendet werden, um den Computer zu starten. In seltenen Fällen kann es vorkommen, dass Treiber, die zum Starten auf dem neuen Computer benötigt werden, nicht vorhanden sind. Dies könnte dann der Fall sein, wenn eine Abbildsicherung unter Einsatz eines bestimmten Festplattencontrollers (IDE, SATA oder SCSI) erfolgte und auf einem anderen Controllertyp wiederhergestellt wird. Selbst in diesem Fall besteht noch eine hohe Wahrscheinlichkeit, die Wiederherstellung erfolgreich abschließen zu können, da die in der Abbildsicherung enthaltenen üblichen Windows-Treiber wahrscheinlich kompatibel wären.
Zweitens kann die Wiederherstellung nur dann durchgeführt werden, wenn der neue Computer mindestens die gleiche Anzahl von Festplatten aufweist und jede Festplatte mindestens ebenso groß ist wie die ursprüngliche. Berücksichtigen Sie diese Einschränkungen, wenn Sie vorhaben, die Complete PC-Sicherung für die Migration zu neuer Hardware zu verwenden.
Da Sicherung und Wiederherstellung auf Blockebene für ganze Volumes erfolgen, erfordert die Complete PC-Wiederherstellung, dass ein Volume entweder vollständig wiederhergestellt oder übersprungen wird. Deshalb empfiehlt es sich ggf., für die Sicherung mehrere Volumes zu erstellen (zum Beispiel zur Trennung der Systemdateien von den Datendateien). Dann können Sie bei Wiederherstellung auswählen, ob Sie nur das Systemvolume (Bewertung „Kritisch“) oder alle Volumes wiederherstellen wollen.

Verwendung der Features in der Praxis
Windows Vista weist gegenüber Windows XP beim Schutz Ihrer Daten und Ihres Systems bedeutende Fortschritte auf, da es neue Sicherungstechnologien besitzt und vorhandene verbessert wurden. Die vier hauptsächlichen Sicherungsfeatures, Dateisicherung und -wiederherstellung, Windows Complete PC-Sicherung und -Wiederherstellung, Systemwiederherstellung sowie Schattenkopie, bieten verschiedene, einander ergänzende Funktionen, die einen umfangreichen Datenschutz ermöglichen. Es ist wichtig zu verstehen, wie diese Features zusammenwirken. Dann lässt sich sicherstellen, dass ein System so konfiguriert wird, dass alle vier Methoden genutzt werden können und dass je nach Situation der geeignete Schutz und die geeignete Problemlösung zur Anwendung kommen.
Als Faustregel gilt: Versuchen Sie im Falle des Datenverlusts immer zuerst die Wiederherstellung von der Schattenkopie, da diese Methode wahrscheinlich die aktuellste Kopie Ihrer Daten liefert. Verwenden Sie bei Systeminstabilität und zur Systemreparatur die Systemwiederherstellung. Die Complete PC-Wiederherstellung sollte gewöhnlich als letztes Mittel bei einer vollständigen Systemreparatur zum Einsatz kommen, und sie sollte mit Vorsicht verwendet werden. Nichtsdestoweniger kann sie ein echter Rettungsanker sein. Das Wichtigste aber ist: Handeln Sie, bevor es zu spät ist – sichern Sie Ihre Daten jetzt!
Zum Abschluss möchte ich mich bei Eduardo Laureano, Ivan Pashov, Jill Zoeller und allen Mitgliedern des Sicherungs- und Wiederherstellungsproduktteams für die Unterstützung bei diesem Artikel bedanken.

Christine Fok ist Programmmanagerin in der Abteilung für Speicherlösungen bei Microsoft. Sie befasst sich mit der Benutzererfahrung im Bereich Sicherung und Wiederherstellung auf der Windows-Clientplattform.


 Windows Server: 11 wichtige Tools zur Verwaltung von Active Directory
Windows Server Laura E. Hunter

11 wichtige Tools zur Verwaltung von Active Directory
Kurz zusammengefasst:
  • Erstellen von Objekten in der Befehlszeile
  • Durchführen von Massenoperationen in Active Directory
  • Aktualisierung und Wartung von Active Directory

Wenn Ihnen jemand eine Excel-Tabelle mit den 200 neuen Mitarbeitern der nächsten Woche übergeben hat, wenn Ihre Benutzerkonten falsch konfiguriert sind, weil Helpdeskmitarbeiter auf einen Eintrag geklickt haben,
auf den sie nicht hätten klicken sollen, oder wenn Sie, die Verwaltung von Active Directory® vereinfachen wollen, ohne „Benutzer und Computer“ ständig öffnen zu müssen, können Sie mehrere kostenlose Verwaltungstools nutzen. Einige sind in das Windows®-Betriebssystem integriert, manche sind Teil eines Resource Kit oder der Windows Support Tools, und andere wiederum sind frei erhältliche Tools von Drittanbietern. Was genau machen diese praktischen Tools, und wo kann man sie bekommen? Das möchte ich Ihnen hier verraten.
Da wären einmal die integrierten Befehlszeilentools in Windows Server® 2003, mit denen Sie Objekte in Active Directory erstellen, löschen, bearbeiten und suchen können.

CSVDE
Mit dem CSV-Tool, genannt CSVDE (Comma-Separated Values Data Exchange), können Sie über eine CSV-Quelldatei neue Objekte in Active Directory importieren. Sie können außerdem bestehende Objekte in eine CSV-Datei exportieren. CSVDE kann nicht verwendet werden, um bestehende Objekte zu bearbeiten. Wenn Sie das Tool im Importmodus verwenden, können Sie damit nur ganz neue Objekte erstellen.
Bestehende Objekte mit CSVDE zu exportieren ist kinderleicht. Active Directory-Objekte in die Datei ad.csv exportieren:
csvde –f ad.csv
Der Schalter –f zeigt an, dass der Name der Ausgabedatei folgt. Sie müssen jedoch in Betracht ziehen, dass diese einfache Syntax, In Abhängigkeit von Ihrer Umgebung, zu einer enorm großen Ausgabedatei führen könnte. Um mit dem Tool nur Objekte innerhalb einer bestimmten Organisationseinheit (OU) zu exportieren, könnten Sie den Befehl wie folgt abändern:
csvde –f UsersOU.csv –d ou=Users,dc=contoso,dc=com
Nehmen wir darüber hinaus an, dass Sie nur Benutzerobjekte in Ihre CSV-Datei exportieren möchten. In diesem Fall könnten Sie den Schalter -r hinzufügen, mit dem Sie für die Suche einen LDAP-Filter (Lightweight Directory Access-Protokoll) festlegen. Mit dem Schalter –l können Sie die Anzahl der exportierten Attribute einschränken (der Befehl muss auf einer Zeile stehen):
csvde –f UsersOnly.csv –d ou=Users,dc=contoso,dc=com –r
    "(&(objectcategory=person)(objectclass=user))" –l
    DN,objectClass,description
Der Schalter –l ermöglicht Ihnen, Objekte aus einer Quell-CSV-Datei in Active Directory zu importieren. Beim Erstellen von Benutzerobjekten mit CSVDE gilt jedoch eine wichtige Regel: Sie können damit keine Benutzerkennwörter festlegen. Aus diesem Grund empfiehlt sich CSVDE nicht zum Erstellen von Benutzerobjekten.

LDIFDE
Mit LDIFDE enthält Active Directory ein zweites Tool für Massenbenutzerkontomodifikationen. Es ist leistungsfähiger und flexibler als CSVDE. Neben dem Erstellen von neuen Objekten können Sie mit LDIFDE bestehende Objekte bearbeiten und löschen und auch das Active Directory-Schema erweitern. Die Flexibilität von LDIFDE bringt aber auch einen Nachteil mit sich: Für die Eingabe ist eine Datei mit der Erweiterung „ldf“ erforderlich, die ein komplexeres Format aufweist, als eine einfache CSV-Datei. (Mit ein wenig Aufwand können Sie auch Benutzerkennwörter konfigurieren, aber darauf werde ich später eingehen.)
Beginnen wir mit einem einfachen Beispiel, dem Exportieren von Benutzerkonten in einer Organisationseinheit in eine LDF-Datei (nachfolgender Befehl muss auf einer Zeile stehen):
ldifde -f users.ldf -s DC1.contoso.com -d "ou=UsersOU,dc=contoso,dc=com"
       –r "(&(objectcategory=person)(objectclass=user))"
Analog zu den meisten anderen Befehlszeilentools können Sie über den Befehl „LDIFDE /?“ eine vollständige Erklärung der LDIFDE-Schalter anzeigen. Abbildung 1 enthält die hier von mir verwendeten Schalter. (Beachten Sie, dass die Schalter für die CSVDE- und für die LDIFDE-Befehle gleich sind.)
Figure 1 LDIFDE-Schalter (Close Figure 1)

Schalter | Beschreibung
-d | Gibt den LDAP-Pfad an, mit dem LDIFDE eine Verbindung für den Vorgang herstellen soll.
-f | Zeigt den Namen der zu verwendenden Datei an. In unserem Beispiel ist dies die Datei, in die das Exportergebnis geschrieben werden soll.
-r | Gibt den LDAP-Filter an, der für einen Export verwendet werden soll.
-s | Gibt den Domänencontroller (DC) an, mit dem eine Verbindung hergestellt werden soll und der den Vorgang durchführen wird. Wird hier nichts angegeben, stellt LDIFDE eine Verbindung zum lokalen DC her, oder dem DC, der Sie authentifiziert hat, wenn Sie das Tool von einer Arbeitsstation aus ausführen.
Die wirkliche Stärke von LDIFDE aber liegt im Erstellen und Bearbeiten von Objekten. Zuvor müssen Sie jedoch eine Eingabedatei erstellen. Mit dem folgende Befehl werden zwei neue Benutzerkonten, „afuller“ und „rking“, erstellt. Um die Eingabedatei zu erstellen, geben Sie den Text in Notepad (oder Ihrem bevorzugten Texteditor) ein und speichern ihn unter dem Namen „NewUsers.ldf“:
dn: CN=afuller, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: afuller
objectClass: user
samAccountName: afuller

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: add
cn: rking
objectClass: user
samAccountName: rking
Nachdem Sie die Datei erstellt haben, führen Sie folgenden Befehl aus:
ldifde –i –f NewUsers.ldf –s DC1.contoso.com
Als einziger neuer Schalter kommt dabei -i ins Spiel, der, wie Sie vermutlich schon erraten haben, nicht mehr auf einen Export-, sondern auf einen Importschritt hinweist.
Beim Ändern oder Löschen bestehender Objekte ändert sich die Syntax des LDIFDE-Befehls nicht. Sie bearbeiten statt dessen den Inhalt der LDF-Datei. Um das Beschreibungsfeld der Benutzerkonten zu ändern, erstellen Sie die Textdatei „ModifyUsers.ldf“, (siehe Abbildung 2).
Abbildung 2 ModifyUsers-LDF-Datei
Abbildung 2 ModifyUsers-LDF-Datei
Sie importieren die Änderungen durch Ausführen der gleichen LDIFDE-Befehlssyntax wie vorher und geben dabei nach dem Schalter -f den Namen der neuen LDF-Datei an. Das LDF-Format zum Löschen von Objekten ist noch einfacher. Um die Benutzerkonten zu löschen, mit denen Sie gearbeitet haben, erstellen Sie die Datei „DeleteUsers.ldf“ und geben Folgendes ein:
dn: CN=afuller OU=UsersOU, DC=contoso, DC=com
changetype: delete

dn: CN=rking, OU=UsersOU, DC=contoso, DC=com
changetype: delete
Anders als bei CSVDE, kann man mit LDIFDE Benutzerkennwörter konfigurieren. Bevor Sie aber das Attribut „unicodePWD“ für ein Benutzerkonto konfigurieren können, müssen Sie die Secure Sockets Layer/Transport Layer Security-Verschlüsselung (SSL/TLS) auf Ihren Domänencontrollern konfigurieren.
Außerdem können Sie in LDIFDE neben Benutzerkonten alle Arten von Active Directory-Objekten erstellen und bearbeiten. Die folgende LDF-Datei erstellt z. B. die benutzerdefinierte Schemaerweiterung „EmployeeID-example“ nach dem Strukturvorbild von contoso.com:
dn: cn=EmployeeID-example,cn=Schema,
cn=Configuration,dc=contoso,dc=com
changetype: add
adminDisplayName: EmployeeID-Example
attributeID: 1.2.3.4.5.6.6.6.7
attributeSyntax: 2.5.5.6
cn: Employee-ID
instanceType: 4
isSingleValued: True
lDAPDisplayName: employeeID-example
Weil LDIFDE-Dateien das branchenübliche Standarddateiformat LDAP verwenden, geben Anwendungen von Drittanbietern, die das Active Directory- Schema ändern müssen, oft LDF-Dateien zurück, mit denen Sie die Änderungen prüfen und genehmigen können, bevor Sie sie in Ihre Produktionsumgebung einführen.
Neben den Tools für Massenimport- und -exportvorgänge umfasst Windows Server 2003 auch ein integriertes Toolset, mit dem Sie verschiedene Active Directory-Objekte erstellen, löschen und bearbeiten können. Es ermöglicht auch das Ausführen von Objektabfragen nach bestimmten Kriterien. (Diese Tools, dsadd, dsrm, dsget und dsquery, werden in Windows 2000 Active Directory nicht unterstützt.)

Dsadd
Mit dsadd können Sie eine Instanz einer Active Directory-Objektklasse in einer bestimmten Verzeichnispartition erstellen. Dies gilt für die Klassen Benutzer, Computer, Kontakte, Gruppen, Organisationseinheiten und Kontingente. Dsadd hat eine generische Syntax, die folgendermaßen aufgebaut ist:
dsadd <ObjectType> <ObjectDistinguishedName> attributes
Beachten Sie, dass, abhängig von den dafür verfügbaren Attributen, für jeden von Ihnen erstellten Objekttyp eine bestimmte Gruppe von Schaltern erforderlich ist. Dieser Befehl erstellt ein Benutzerobjekt mit verschiedenen Attributen (nachfolgender Befehl muss auf einer Zeile stehen).
dsadd user cn=afuller,ou=IT,dc=contoso,dc=com
–samID afuller –fn Andrew –ln Fuller –pwd *
-memberOf cn=IT,ou=Groups,dc=contoso,dc=com "cn=Help Desk,ou=Groups,
dc=contoso,dc=com"
–desc "Marketing Director"
Der Schalter –memberOf benötigt den Distinguished Name (DN) jeder Gruppe, in die der Benutzer aufgenommen werden soll. Nehmen Sie den Benutzer in mehrere Gruppen auf, können Sie mehrere DNs, durch Leerzeichen getrennt, einfügen.
Enthält ein Element ein Leerzeichen, z. B. der DN der Gruppe „Forschung und Entwicklung“, muss dieses mit Anführungszeichen umgeben werden. Enthält ein Element einen umgekehrten Schrägstrich, wie z. B. die Organisationseinheit IT\EMEA, muss dieser zweimal eingegeben werden: IT\\EMEA. (Diese Regeln gelten für alle ds*-Tools.)
Wenn Sie den Schalter -pwd * verwenden, werden Sie aufgefordert, ein Kennwort für den Benutzer an der Befehlszeile einzugeben. Sie können das Kennwort innerhalb des Befehls selbst angeben (-pwd P@ssword1), das Kennwort wird aber dann als Klartext auf dem Bildschirm oder in einer Text- oder Skriptdatei angezeigt, in die Sie den Befehl eingebettet haben.
Sie können mit den folgenden beiden Befehlen auch ein Gruppenobjekt und eine Organisationseinheit erstellen:
dsadd computer cn=WKS1,ou=Workstations,dc=contoso,dc=com
dsadd ou "ou=Training OU,dc=contoso,dc=com"

Dsmod
Mit dsmod wird ein bestehendes Objekt geändert. Sie verwenden diesen Befehl wie den Befehl „dsadd“. In Abhängigkeit vom bearbeiteten Objekttyp kommen dabei verschiedene Untermenüs und Syntaxen zum Einsatz. Über folgenden dsmod-Befehl werden Kennwort und Konto eines Benutzers geändert, sodass er bei der nächsten Anmeldung aufgefordert wird, sein Kennwort zu ändern:
dsmod user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Die Ähnlichkeit dieser beiden Schalter wird Ihnen bewusst, wenn Sie sich die dsadd-Syntax ansehen, mit der Sie diesen Benutzer mit den gleichen Attributen erstellen können:
dsadd user "cn=afuller,ou=IT,dc=contoso,dc=com" –pwd P@ssw0rd1
    –mustchpwd yes
Genau die Schalter, mit denen Sie Objekte per dsadd erstellen, können Sie zum Bearbeiten von Benutzerdaten mit dsmod verwenden.

dsrm
Die Umkehrung von dsadd ist der Befehl „dsrm“. Man kann damit ein Objekt über die Befehlszeile löschen. Die grundlegende Syntax von dsrm ist ziemlich einfach: Geben Sie einfach „dsrm“ gefolgt vom Distinguished Name des Objekts, das Sie löschen möchten:
dsrm cn=WKS1,ou=Workstations,dc=contoso,dc=com
Standardmäßig werden Sie bei dsrm in einer Meldung gefragt, ob Sie das Objekt wirklich löschen möchten. Geben Sie „Y“ ein, und drücken Sie die Eingabetaste. Mit dem Schalter –noprompt können Sie diese Meldung unterdrücken, Sie haben dann aber keine Gelegenheit, zu prüfen, ob Sie das richtige Objekt zum Löschen ausgewählt haben. Zwei zusätzliche Schalter können hilfreich sein, wenn Sie ein Containerobjekt, d.h. eine Organisationseinheit löschen, die andere Objekte enthalten könnte. Der folgende Befehl löscht die Organisationseinheit „TrainingOU“ und alle darin enthaltenen Objekte:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
Der folgende Befehl löscht alle untergeordneten Objekte der Organisationseinheit, jedoch nicht diese selbst:
dsrm ou=TrainingOU,dc=contoso,dc=com –subtree
    –exclude

Dsmove
Um ein Objekt in Active Directory zu verschieben oder umzubenennen, verwenden Sie das Tool „dsmove“. Beachten Sie aber, dass Sie damit nur Objekte innerhalb einer Domäne verschieben können. Verwenden Sie das Active Directory-Migrationsprogramm (Active Directory Migration Tool, ADMT), um Objekte zwischen Domänen oder Gesamtstrukturen zu verschieben. Sie können es kostenlos von der Microsoft-Website herunterladen. Dsmove baut auf zwei Schaltern auf, die separat oder in Kombination verwendet werden können. Mit dem folgenden Befehl erhält das Konto von Steve Conn einen neuen Nachnamen:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com"
    –newname "Steve Conn"
Der folgende Befehl verschiebt das Benutzerkonto von der IT-Organisationseinheit zur Schulungsorganisationseinheit:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newparent
    ou=Training,dc=contoso,dc=com
Durch gleichzeitiges Angeben beider Schalter können Sie Umbenennen und Verschieben in einem Vorgang ausführen:
dsmove "cn=Conn, Steve,ou=IT,dc=contoso,dc=com" –newname
    "Steve Conn" –newparent ou=Training,dc=contoso,dc=com

Dsget und dsquery
Das ds*-Befehlszeilentoolset umfasst auch zwei Tools, mit denen in Active Directory Informationen abgefragt werden können.
Dsget nimmt den DN eines Objekts als Eingabe und gibt den Wert eines oder mehrerer, von Ihnen angegebener Attribute zurück. Dsget verwendet die gleichen Untermenüs wie dsadd und dsmod: User, Computer, Contact, Group, OU und Quota.
Um das SAM-Konto und die Sicherheits-ID (SID) eines Benutzerkontos abzurufen, geben Sie den folgenden Befehl (auf einer Zeile) ein:
dsget user cn=afuller,ou=IT,dc=contoso,dc=com
    –samAccountName –sid
Sie erhalten die in Abbildung 3 angezeigte Ausgabe.
Abbildung 3 Ausführen von dsget
Abbildung 3 Ausführen von dsget
Dsquery gibt eine Liste von Active Directory-Objekten zurück, die die von Ihnen festgelegten Kriterien erfüllen. Unabhängig vom verwendeten Untermenü können Sie die folgenden Parameter angeben:
dsquery <ObjectType> <StartNode> -s <Search Scope> -o <OutputFormat>
Für ObjectType kann dsquery die folgenden Untermenüs verwenden, von denen jedes seine eigene Syntax hat: Computer, Contact, Subnet, Group, OU, Site, Server, User, Quota und Partition. Das Untermenü „Server“ ruft Informationen über Domänencontroller, nicht aber über Mitgliedsserver in Ihrer Umgebung ab. Wenn einer dieser Abfragetypen nicht geeignet sein sollte, können Sie das *-Untermenü verwenden, mit dem Sie eine formfreie LDAP-Abfrage eingeben können.
StartNode bezeichnet den Ort in der Active Directory-Struktur, an dem die Suche beginnen soll. Sie können einen bestimmten DN, wie z. B. ou=IT,dc=contoso,dc=com, oder eine der folgenden Verknüpfungen verwenden: Die Verknüpfung „domainroot“ beginnt im Stammverzeichnis einer Domäne. Die Verknüpfung „forestroot“ beginnt im Stammverzeichnis der Gesamtstruktur-Stammdomäne und nutzt bei der Suche einen globalen Katalogserver.
Die Option „search scope“ legt fest, wie mit dsquery die Active Directory-Struktur durchsucht wird. Bei „subtree“ (Standardeinstellung) wird der angegebene StartNode sowie sämtliche diesem untergeordneten Objekte abgefragt, bei „onelevel“ nur die direkt untergeordneten Objekte des StartNode und bei „base“ nur das StartNode-Objekt selbst.
Um sich diese Suchbereiche besser vorstellen zu können, erwägen Sie eine Organisationseinheit, die sowohl Benutzerobjekte als auch eine untergeordnete Organisationseinheit mit weiteren Unterobjekten enthält. Der Suchbereich „subtree“ fragt die Organisationseinheit, deren Benutzerobjekte sowie die untergeordnete Organisationseinheit mit ihren Inhalten ab. Der Suchbereich „onelevel“ fragt nur die Benutzer der Organisationseinheit, nicht aber die untergeordnete Organisationseinheit und deren Objekte ab. Der Suchbereich „base“ durchsucht nur die Organisationseinheit selbst, ohne die darin enthaltenen Objekte.
Mit „output format“ können Sie steuern, wie die von dsquery ausgegebenen Ergebnisse formatiert werden. Standardmäßig gibt dsquery die Distinguished Names aller Objekte zurück, die die Abfragekriterien erfüllen:
"cn=afuller,ou=Training,dc=contoso,dc=com"
"cn=rking,ou=ITTraining,ou=Training,dc=contoso,dc=com"
Um alle Benutzerobjekte innerhalb der IT-Organisationseinheit und aller untergeordneten Organisationseinheiten abzufragen, gehen Sie folgendermaßen vor:
dsquery user ou=IT,dc=contoso,dc=com
Mit zusätzlichen Schaltern können Sie diese Abfrage genauer festlegen: Mit -disabled werden nur deaktivierte Benutzerkonten, mit -inactive x nur Benutzer, die sich in den letzten Wochen nicht angemeldet haben, und mit -stalepwd x Benutzer, die ihr Kennwort in einer festgelegten Anzahl von Tagen nicht geändert haben, abgefragt.
In Abhängigkeit von der Anzahl der Objekte in Ihrem Verzeichnis müssen Sie möglicherweise für Ihre Abfrage noch den Schalter -limit x angeben. Standardmäßig gibt dsquery bis zu 100 Objekte zurück, die den Kriterien entsprechen. Sie können diese Zahl z. B. auf 500 erhöhen, oder mit dem Schalter -limit 0 alle gefundenen Objekte anzeigen lassen.
Sie können mit den anderen Untermenüs auch Abfragen für andere Objekttypen ausführen. Folgende Abfrage gibt z. B. jedes in Active Directory-Standorten und Active Directory-Diensten definierte Subnetz im Adressenbereich 10.1.x.x zurück:
dsquery subnet –name 10.1.*
Sie können aber auch jedes Subnetz am Unternehmensstandort suchen lassen:
dsquery subnet –site Corp
Und mit einem anderen Untermenü können Sie schnell bestimmen, wie viele Domänencontroller in Ihrer Gesamtstruktur als globale Katalogserver konfiguriert sind:
dsquery server –forest –isgc
Mit nachfolgender Syntax können Sie ermitteln, welche Domänencontroller in Ihrer Domäne die PDC-Emulator-FSMO-Rolle (primärer Domänencontroller, Flexible Single Master Operations) hostet:
dsquery server –hasfsmo pdc
Analog zu den anderen ds*-Befehlen mit Untermenüs können Sie alle innerhalb eines dsquery-Untermenüs verfügbaren Schalter anzeigen lassen. Geben Sie dazu an der Befehlszeile „dsquery user /?“, „dsquery computer /?“, „dsquery subnet /?“, und so weiter ein.
Ein guter Trick ist auch, die Ausgabe von dsquery mit dem Zeichen | in ein anderes Tool, wie dsmod, umzuleiten. Nehmen wir einmal an, dass eine Abteilung in Ihrem Unternehmen nicht mehr „Training“, sondern „Internal Development“ heißt. Sie müssen jetzt das Beschreibungsfeld aller davon betroffenen Benutzer auf den neuen Abteilungsnamen umstellen. In einer Befehlszeile können Sie die Abfrage nach allen Benutzern durchführen, deren Beschreibungsfeld den Begriff „Training“ enthält. Anschließend bearbeiten Sie dieses Feld mit einem Massenverfahren:
dsquery user –description "Training" | dsmod
    -description "Internal Development"

Empfehlenswerte Tools von Drittanbietern
Da Active Directory auf LDAP-Standards basiert, können Sie hier mit jedem LDAP-kompatiblen Tool Abfragen und Bearbeitungen durchführen. Viele Drittanbieter haben gebührenpflichtige Tools zur Verwaltung von Active Directory veröffentlicht. Manchmal stößt man aber auch auf sehr gute Tools, die kostenlos erhältlich sind. Ein Beispiel dafür ist eine Toolsammlung von Joe Richards, Directory Services-MVP, die über folgende Adresse heruntergeladen werden kann: joeware.net/freetools. Sie finden dort verschiedene Tools für viele Einsatzmöglichkeiten. Drei Tools, die ich immer wieder benutze, sind adfind, admod und oldcmp.

Adfind und admod
Adfind und admod ähneln dsquery und dsmod. adfind ist ein Befehlszeilenabfragetool für Active Directory. Mit admod kann man ein oder mehrere Active Directory-Objekte erstellen, löschen und bearbeiten.
Im Vergleich zu den ds*-Tools mit ihren vom Objekttyp abhängigen Untermenüs und Schaltern, haben adfind und admod eine konsistente Syntax. Der Abfragetyp oder die Art der Bearbeitung spielen dabei keine Rolle. Die Basissyntax für adfind ist:
adfind –b <Search Base> -s <Search Scope> -f <Search Filter>
    attributesDesired
Eine Abfrage nach dem DN und einer Beschreibung aller Computerobjekte in Ihrer Domäne würde also folgendermaßen lauten:
adfind –b dc=contoso,dc=com –s subtree –f (objectclass=computer) dn
    description
Eine Abfrage aller Benutzerobjekte würde so aussehen:
adfind –b dc=contoso,dc=com –s subtree –f "(&(objectcategory=person)
    (objectclass=user))" dn description
Beachten Sie, dass sich nur der Inhalt der LDAP-Abfrage, nicht aber die Syntax geändert hat.
Wenn Sie sich einmal mit adfind vertraut gemacht haben, werden Sie die vielen Kurzoperatoren zu schätzen wissen, die Ihnen eine Menge Tipparbeit ersparen. Der Schalter -default z. B. kann -b dc=contoso,dc=com im vorherigen Beispiel ersetzen und Ihre gesamte Domäne durchsuchen. Mit -gc werden eine GC-Abfrage (Garbage Collection) nach veralteten Objekten ausgeführt und alle Benutzer in Ihrer Active Directory-Gesamtstruktur zurückgegeben. Mit dem Schalter -rb legen Sie eine relative Basis für Ihre Suche fest. Wenn Sie die Organisationseinheit „Training“ in der Domäne „phl.east.us.contoso.com“ durchsuchen möchten, reicht die Eingabe von –default –rb ou=Training, anstelle von –b ou=Training, dc=phl,dc=east,dc=us,dc=contoso,dc=com.
Adfind kann auch mehrere erweiterte Suchfunktionen ausführen, die über die Befehlszeile schwierig zu verwalten wären. Dazu gehören auch die in Abbildung 4 aufgeführten Funktionen.
Figure 4 Adfind-Schalter (Close Figure 4)

Schalter | Beschreibung
-showdel | Fragt den Container der gelöschten Objekte nach Tombstones ab.
-bit | Fragt bitweise Operatoren, wie das userAccountControl-Attribut ab.
-asq | Führt eine Abfrage auf Attributebene durch. Diese Funktion (die nicht in dsquery repliziert werden kann) kann ein Attribut eines bestimmten Objekts abrufen und daran eine Abfrage durchführen.
-dsq | Leitet die Ausgabe einer adfind-Abfrage nach dsmod oder eines der anderen ds*-Tools weiter.
Ein Beispiel für den Einsatz des Schalters -asq wäre die Auflistung der Gruppenmitgliedschaften der Helpdesk-Mitglieder:
adfind –default –rb cn=HelpDesk,ou=IT –asq member memberOf
Admod wird zur Bearbeitung von Objekten in Active Directory verwendet. Wie bei adfind gibt es keine speziellen Untermenüs mit eigener Syntax, die man kennen muss. Admod verwendet, unabhängig vom Objekttyp, immer die gleiche Syntax. Durch Hinzufügen des jeweiligen Schalters, wie -add, -rm, -move, -undel, können Sie mit admod Objekte hinzufügen, verschieben, umbenennen, löschen und sogar deren Löschung rückgängig machen. Und wie mit dsquery und dsmod können Sie auch das Zeichen | verwenden, um die Ergebnisse einer adfind-Abfrage nach admod umzuleiten.
Beim Rückgängigmachen einer Löschung mit admod wird lediglich ein Tombstone wiederbelebt, bei dem die meisten Objektattribute entfernt wurden. Um ein Objekt vollständig und mit all seinen Attributen wiederherzustellen, müssen Sie immer noch eine autorisierende Wiederherstellung durchführen.

Oldcmp
Ein weiteres joeware-Tool darf in meinem Automatisierungstoolkit nicht fehlen: Oldcmp durchsucht die Active Directory-Datenbank nach Computerkonten, auf die innerhalb einer festgelegten Anzahl von Wochen nicht zugegriffen wurde. Das Tool kann für folgende Aufgaben eingesetzt werden:
  • Erstellen eines Berichts von Konten, ohne Ergreifung von Maßnahmen
  • Deaktivieren unbenutzter Computerkonten
  • Verschieben der Computerkonten in eine festgelegte Organisationseinheit
  • Sofortiges Löschen der Computerkonten
Da oldcmp in Ihrem Verzeichnis ernsthaften Schaden anrichten kann, wurden etliche Sicherheitsfunktionen darin integriert. Es werden keine Konten gelöscht, die nicht bereits deaktiviert wurden (zudem muss der Löschvorgang manuell in der Befehlszeile bestätigt werden). Es werden ohne Bestätigungsschalter maximal 10 Objekte gleichzeitig verändert. Computerkonten für Domänencontroller bleiben grundsätzlich von Veränderungen unberührt.
Dieses Tool wurde mittlerweile aktualisiert, sodass es jetzt ähnliche Funktionen an Benutzerkonten ausführen kann, die in einem festgelegten Zeitraum nicht benutzt wurden.
In einer überschaubaren Active Directory-Umgebung oder einer Umgebung, in der Sie immer nur ein oder zwei Neuaufnahmen oder Änderungen gleichzeitig durchführen, reichen möglicherweise GUI-Tools, wie Active Directory-Benutzer und -Computer für die täglichen Arbeiten aus. Wenn Sie aber jeden Tag eine große Anzahl von Objekten aufnehmen und bearbeiten oder aber eine optimierte Lösung für Ihre administrativen Aufgaben benötigen, kann das Arbeiten in der Befehlszeile das Erstellen, Bearbeiten und Löschen von Active Directory-Objekten erheblich beschleunigen. Wie Sie sehen, gib es eine Reihe flexibler und leistungsstarker, kostenloser Tools, die in Windows integriert sind und von Mitgliedern der Active Directory-Community heruntergeladen werden können. Ein jedes dieser Tools kann Ihre Produktivität als Administrator enorm steigern, und alle zusammen werden sie noch unverzichtbarer für Ihren Arbeitsalltag sein.

Laura E. Hunter wurde vier Mal mit dem Microsoft MVP Award im Bereich von Windows Server Networking ausgezeichnet. Sie ist Autorin von „Active Directory Cookbook“ (Second Edition, O'Reilly, 2006). Laura, die über 10 Jahre IT-Erfahrung vorweisen kann, arbeitet derzeit als Active Directory-Architektin für ein global tätiges Ingenieurbüro. Sie ist Inhaberin mehrerer Branchenzertifizierungen und hält häufig bei Benutzerversammlungen und Branchenkonferenzen Vorträge.


 Windows Server: Tombstone-Wiederbelebung in Active&#160;Directory
Windows Server Gil Kirkpatrick

Tombstone-Wiederbelebung in Active Directory
Kurz zusammengefasst:
  • Speicherung gelöschter Objekte in Active Directory
  • Suchen und Wiederherstellen von Tombstones mittels LDP und ADRESTORE
  • Objektattribute und „systemFlags“

Auch wenn es nicht zu Ihren Lieblingsthemen gehören mag: Zufällige Datenverluste passieren immer wieder, und als IT-Mitarbeiter müssen Sie auf alle möglichen Wiederherstellungsszenarios vorbereitet sein. In der Ausgabe des TechNet Magazins vom April 2007 habe ich darüber geschrieben, wie wichtig es ist, einen Plan
zum Wiederherstellen von Active Directory®-Benutzern und -Gruppen zu haben. In dem Artikel, der unter technetmagazine.com/issues/2007/04/ADRecovery verfügbar ist, habe ich die Funktionsweise von Objektverknüpfungen, Replikation, Löschen und autorisierender Wiederherstellung behandelt. Leider setzt die Funktion zur autorisierenden Wiederherstellung voraus, dass ein Domänencontroller (DC) im Verzeichnisdienst-Wiederherstellungsmodus (Directory Service Restore Mode, DSRM) gestartet wird. Dabei ist der DC für die Dauer des Wiederherstellungsvorgangs nicht verfügbar.
Es gibt aber noch einen weiteren Ansatz, den Sie kennen sollten. Das Wiederbeleben von Tombstones ist die einzige Möglichkeit zum Wiederherstellen gelöschter Objekte, bei der kein DC offline geschaltet werden muss. Und es ist die einzige Möglichkeit, die Identitätsinformationen eines gelöschten Objekts wiederherzustellen, wie z. B. seine objectGUID- und objectSid-Attribute. Damit bietet es auch eine saubere Lösung für das Neuerstellen eines gelöschten Benutzers oder einer Gruppe und das Korrigieren alter Verweise auf die Zugriffssteuerungsliste (access control list, ACL), die das objectSid-Attribut des gelöschten Objekts enthalten. Sie sollten jedoch nicht vergessen, dass die Wiederbelebung von Tombstones mit einigen Einschränkungen verbunden ist, auf die ich später näher eingehen werde. Deshalb sollten Sie die autorisierende Wiederherstellung nicht ganz aus Ihrer Trickkiste verbannen.
Die Wiederbelebung von Tombstones wurde in Windows Server® 2003 Active Directory eingeführt, um bestimmte Datenwiederherstellungsszenarios zu vereinfachen. Dieses Feature nutzt die Tatsache, dass Active Directory gelöschte Objekte für eine bestimmte Zeit in der Datenbank behält, bevor sie physisch entfernt werden. In diesem Artikel werde ich ausführlich darauf eingehen, wie mit Active Directory Objekte gelöscht und wiederbelebt werden können, und ich werde zeigen, wie Sie gelöschte Objekte mit Microsoft-Standardtools wiederherstellen können.

Was ist ein Tombstone?
Wenn Active Directory ein Objekt aus dem Verzeichnis löscht, wird es nicht sofort gänzlich aus der Datenbank entfernt. Vielmehr kennzeichnet Active Directory das Objekt als gelöscht, indem das isDeleted-Attribut des Objekts auf TRUE gesetzt und die meisten Attribute des Objekts entfernt werden. Anschließend wird das Objekt umbenannt und in einen speziellen Container im Namenskontext (naming context, NC) des Objekts mit dem Namen „CN=Deleted Objects“ verschoben. Das Objekt, das ab jetzt als Tombstone bezeichnet wird, ist nun für normale Verzeichnisvorgänge nicht mehr sichtbar. Es wird nicht in Snap-Ins der Microsoft® Management Console (MMC) angezeigt, und die meisten LDAP-Dienstprogramme (Lightweight Directory Access-Protokoll) wissen überhaupt nicht um die Existenz des Tombstones. Der Tombstone scheint nicht zu existieren. Trotzdem sind die Daten noch da – nur eben nicht sichtbar. Aber warum behält Active Directory Tombstones, also eigentlich gelöschte Objekte, in der Datenbank?
Ein Tombstone mag zwar für andere Prozesse unsichtbar sein, ist jedoch für den Replikationsvorgang in Active Directory sichtbar. Damit die Löschung auch wirklich auf allen DC durchgeführt wird, die das zu löschende Objekt hosten, repliziert Active Directory den Tombstone auf die anderen DC. Der Tombstone dient also dazu, den Löschvorgang in der Active Directory-Umgebung zu replizieren.

Gültigkeitsdauer von Tombstones
Active Directory löscht ein Objekt typischerweise als Reaktion auf einen LDAP-Protolllöschvorgang oder einen SAM-Löschvorgang (Security Account Manager) aus dem Verzeichnis. Dieser Vorgang, der auch als ursprünglicher Löschvorgang bezeichnet werden kann, ist nicht identisch mit den Löschvorgängen, die durch den Replikationsprozess von Active Directory durchgeführt werden. Dies gilt übrigens nicht für dynamische Objekte, die eine andere Löschmethode besitzen und die direkt von Active Directory gelöscht werden, wenn ihre Gültigkeitsdauer (Time to Live, TTL) abgelaufen ist.
Wenn Active Directory den Löschvorgang erhält, wird zuerst eine Prüfliste durchlaufen, um sicherzustellen, dass das Objekt gelöscht werden darf. Dieser Prozess ist vergleichsweise aufwendig, da auf diese Weise überprüft wird, dass alle folgenden Kriterien erfüllt sind:
  • Das isDeleted-Attribut des Objekts ist nicht bereits auf TRUE gesetzt. (Ein bereits gelöschtes Objekt kann nicht gelöscht werden.)
  • In der Sicherheitsbeschreibung des Objekts ist das ressourcenspezifische Steuerungskennzeichen „private object“, mit der das Objekt als privat gekennzeichnet wird, nicht gesetzt. (Dies scheint ein nicht dokumentiertes „Feature“ zu sein. Bei dem „private object“-Kennzeichen handelt es sich um Bit 1 des Bytes „Sbz1“ in der Struktur der Sicherheitsbeschreibung.)
  • Im systemFlags-Attribut des Objekts ist das „disallow delete“-Bit (0x80000000), mit dem ein Löschen verhindert wird, nicht gesetzt.
  • Das isCriticalSystemObject-Attribut des Objekts ist nicht auf TRUE gesetzt.
  • In der Sicherheitsbeschreibung des Objekts werden dem Benutzer die erforderlichen Rechte zum Löschen des Objekts gewährt. (Genauer ausgedrückt: Der Benutzer ist zum Löschen des Objekts sowie zum Löschen untergeordneter Objekte berechtigt.)
  • Bei dem Objekt handelt es sich nicht um ein Querverweisobjekt (objectClass = crossRef) für einen bestehenden Namenskontext.
  • Das Objekt besitzt keine untergeordneten Objekte. (Wenn der LDAP-Löschvorgang die LDAP-Steuerobjekt-ID „tree delete“ zum Löschen der Struktur enthält, löscht Active Directory automatisch auch untergeordnete Objekte, sofern ihr isCriticalSystemObject-Attribut nicht auf TRUE gesetzt ist. Auf diese Weise wird verhindert, dass bei einem Strukturlöschvorgang versehentlich wichtige Systemobjekte gelöscht werden. Selbstverständlich können Sie diese Objekte jedoch einzeln löschen.)
  • Das Objekt ist kein wichtiges internes Objekt (zum Beispiel nicht das nTDSDSA-Objekt für den DC oder ein Platzhalterobjekt für Vorgänger von NC-Köpfen).
Abgesehen davon, dass diese Kriterien erfüllt sein müssen, muss Active Directory auch in einem geeigneten Zustand sein, um den Löschvorgang verarbeiten zu können. Während Active Directory beispielsweise eine Domäne umbenennt, kann ein Domänenvertrauenskonto oder ein crossRef-Objekt nicht gelöscht werden.
Wenn festgestellt wird, dass das Objekt gelöscht werden kann, wandelt Active Directory das Objekt in einen Tombstone um. Active Directory entfernt zuerst unnötige Attribute des Objekts und belässt nur die in Abbildung 1 aufgeführten sowie diejenigen, die laut Schema im Tombstone verbleiben sollen. (Für weitere Informationen dazu siehe den Abschnitt „Wiederherstellen von Objektattributen“.) Anschließend wird der RDN (Relative Distinguished Name) des Objekts in CN=<old RDN>\0ADEL:<objectGUID> geändert, wobei \0A für das ASCII-Zeilenvorschubzeichen steht und <objectGUID> für das objectGUIDAttribut als Zeichenfolge. Das lastKnownParent-Attribut wird dann auf den DN (Distinguished Name) des übergeordneten Containers des Objekts gesetzt, und das isDeleted-Attribut wird auf TRUE gesetzt. Active Directory entfernt dann alle Forwardlink- und Backwardlinkattribute des Objekts. Sofern das „disallow move on delete“-Bit des systemFlag-Attributs des Objekts, das ein Verschieben beim Löschen verhindert, nicht gesetzt ist, verschiebt Active Directory das Objekt schließlich in den Container „CN=Deleted Objects“ für den NC. (Zu weiteren Informationen zu diesem Thema siehe die Randleiste „systemFlags-Attribut und Objektverhalten“.)
Figure 1 In einem Tombstone gespeicherte Attribute (Close Figure 1)

Hartcodiert zur Speicherung
attributeID
attributeSyntax
dnReferenceUpdate
dNSHostName
flatName
governsID
groupType
instanceType
lDAPDisplayName
legacyExchangeDN
mS-DS-CreatorSID
mSMQOwnerID
nCName
objectClass
objectGUID
objectSid
oMSyntax
proxiedObejctName
replPropertyMetaData
sAMAccountName
securityIdentifier
sIDHistory
subClassOf
systemFlags
trustPartner
trustDirection
trustType
trustAttributes
userAccountControl
uSNChanged
uSNCreated
whenCreated
Speicherung aufgrund searchFlags-Einstellung
msDS-AdditionalSamAccountName
msDS-Auxiliary-Classes
msDS-Entry-Time-To-Die
msDS-IntId
msSFU30NisDomain
nTSecurityDescriptor
uid
Beachten Sie, dass der Ordner „CN=Deleted Objects“ flach ist und keine Objekthierarchie besitzt. Das lässt zunächst vermuten, dass es beim Löschen von zwei verschiedenen Objekten mit demselben CN zu Namenskonflikten kommen wird. Dies ist jedoch nicht der Fall. Da der RDN eines Tombstones das objectGUID-Attribut enthält, ist der RDN jedes Tombstones innerhalb des Containers „CN=Deleted Objects“ einmalig.
Natürlich verbleiben die Objekte nicht für immer im Container „CN=Deleted Objects“. Die Standardgültigkeitsdauer eines Tombstones beträgt für ursprünglich mit Windows® 2000 und Windows Server 2003 erstellte Gesamtstrukturen 60 Tage und für ursprünglich mit Windows Server 2003 SP1 erstellte Gesamtstrukturen 180 Tage. Sie können die Gültigkeitsdauer eines Tombstones mithilfe des tombstoneLifetime-Attributs des Objekts „CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<Stammdomäne>“ verändern.
Jeder Domänencontroller startet alle 12 Stunden eine Garbage Collection. (Um diesen Zeitraum zu ändern, kann das garbageCollPeriod-Attribut des Objekts „CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<Stammdomäne>“ auf einen neuen Wert gesetzt werden.) Bei der Garbage Collection werden alle Tombstones des DC gescannt und alle diejenigen physisch gelöscht, bei denen die Tombstonegültigkeitsdauer überschritten ist.

Einsatz von LDP zum Suchen von Tombstones
LDP ist ein Dienstprogramm für die Arbeit mit Active Directory, das Windows Explorer ähnelt. LDP wurde ursprünglich vom Active Directory-Entwicklungsteam entworfen, um während der Entwicklung von Active Directory den LDAP-Code testen zu können. Inzwischen gehört LDP zu den Supporttools für Windows Server 2003 und hat sich zu einem robusten Werkzeug für die Arbeit mit Active Directory entwickelt.
Obwohl Tombstones für normale Verzeichnisvorgänge nicht sichtbar sind, können Sie Tombstoneobjekte in Active Directory mit LDAP-Suchvorgängen und besonderen LDAP-Erweiterungen, so genannten Steuerelemente, suchen. Bei den Steuerelementen handelt es sich um eine im LDAP-Standard definierte Methode zum Erweitern des LDAP-Protokolls, um zusätzliche Funktionalität über den LDAP-Standard hinaus bereitzustellen, ohne dass die Kompatibilität mit sonstiger LDAP-konformer Software beeinträchtigt wird. Active Directory unterstützt 22 Steuerelemente, darunter auch das Return Deleted Objects-Steuerelement zum Zurückgeben gelöschter Objekte. Wenn dieses Steuerelement zum Erweitern eines LDAP-Suchvorgangs verwendet wird, ruft es gelöschte Objekte ab, die andernfalls nicht sichtbar wären.
Um dieses Prinzip zu demonstrieren, melde ich mich in der Domäne „foo.local“ als Organisationsadministrator an und verwende dann das MMC-Snap-In „Active Directory-Benutzer und -Computer“ (Active Directory Users and Computers, ADUC), um wie in Abbildung 2 gezeigt ein Benutzerobjekt zu erstellen (CN=John Smith,CN=Users,DC=foo, DC=local). Dann lösche ich das Benutzerobjekt wieder, ebenfalls mit ADUC.
Abbildung 2 Benutzerkontoerstellung mit ADUC
Abbildung 2 Benutzerkontoerstellung mit ADUC
Jetzt kann ich das LDP-Programm ausführen und damit den Tombstone des gelöschten Benutzerkontos anzeigen. Der erste Schritt besteht darin, LDP mit einem bestimmten DC zu verbinden und mit den entsprechenden Anmeldeinformationen eine Authentifizierung durchzuführen. Um die Verbindung zum DC herzustellen, wähle ich einfach im Menü „Connection“ (Verbindung) die Option „Connect“ (Verbindung herstellen). Da ich LDP auf dem DC ausführe, wähle ich nun einfach „OK“, um die Verbindung zum lokalen DC herzustellen. Wenn Sie LDP von einem Remotestandort aus ausführen, müssen Sie den Namen des DC angeben, mit dem die Verbindung hergestellt werden soll. Nachdem die Verbindung auf diese Weise hergestellt wurde, zeigt LDP die Attribute von „rootDSE“ an. Dies sind Attribute, die den Zustand und die Konfiguration des DCs selbst beschrieben (siehe Abbildung 3).
Abbildung 3 LDP mit DC verbunden
Abbildung 3 LDP mit DC verbunden
Um nun die Authentifizierung gegenüber dem DC als Domänen- oder Organisationsadministrator durchzuführen, wähle ich im Menü „Connection“ die Option „Bind“ (Binden). Da ich bereits als Organisationsadministrator für die Gesamtstruktur angemeldet bin (Domänen- und Organisationsadministratoren sind standardmäßig zum Auflisten und Wiederbeleben von Objekten im Container „CN=Deleted Objects“ berechtigt), lasse ich einfach die Felder zur Eingabe von Benutzernamen und Kennwort im Dialogfeld „Bind“ leer und klicke auf „OK“. Andernfalls könnte ich die entsprechenden Anmeldeinformationen hier eingeben.
Nun möchte ich den Inhalt des Containers „CN=Deleted Objects,DC=foo,DC=local“ auflisten. Normalerweise ist der Container „CN=Deleted Objects“ nicht sichtbar, weil er selbst als gelöscht gekennzeichnet ist. Die einzige Möglichkeit, den Container „CN=Deleted Objects“ zu suchen, bietet das LDAP-Steuerelement„Return Deleted Objects“ zum Zurückgeben gelöschter Objekte.
Um LDP mit diesem Steuerelement zu verwenden, wählen Sie im Menü „Browse“ (Durchsuchen) die Option „Search“ (Suchen). Das Suchdialogfeld (siehe Abbildung 4) wird angezeigt. Im Feld „Base Dn“ (Basis-DN) können Sie angeben, wo in der Verzeichnisstruktur die Suche beginnen soll. Ich gebe daher die DN des Containers „Deleted Objects“ für die Domäne ein, in diesem Beispiel also „CN=Deleted Objects,DC=foo,DC=local“.
Abbildung 4 LDP-Suchdialogfeld
Abbildung 4 LDP-Suchdialogfeld
Im Feld „Filter“ gebe ich die gewünschten Suchkriterien ein. Der Standardwert ist (objectClass=*), wodurch die Suche angewiesen wird, alle Objekte zurückzugeben, deren objectClass-Attribut einen Wert hat. Weil in Active Directory sogar gelöschte Objekte einen Wert für „objectClass“ besitzen, findet der Standardfilter alle Objekte innerhalb des Suchbereichs. In diesem Beispiel ändere ich den Filter in (objectClass=user), um die Suche auf Benutzerobjekte einzuschränken. Dies erleichtert die Suche nach dem gelöschten Benutzer John Smith unter den vielleicht Tausenden von Tombstones im Container „CN=Deleted Objects“.
Möglicherweise enthält der Container „CN=Deleted Objects“ mehr Objekte, als Active Directory in einem einzigen Suchvorgang zurückgeben kann. Um dieses Problem zu umgehen, könnten Sie die LDAP-Suche beispielsweise seitenweise durchführen, sodass die Ergebnisse in Gruppen aufgeführt werden. In LDP ist es jedoch nicht möglich, eine Seitensuche mit einer erweiterten Suche zu kombinieren. Daher müssen Sie Ihren LDAP-Filter verfeinern, um das gewünschte Objekt zu finden.
Mit den Optionsfeldern unter „Scope“ (Bereich) können Sie angeben, welcher Teil der Verzeichnisstruktur durchsucht werden soll. Bei einer Basissuche wird nur das Objekt zurückgegeben, das im Feld „Base Dn“ angegeben ist. Bei einer Suche in einer einzigen Ebene werden die Objekte zurückgegeben, die dem „Base dn“-Objekt direkt untergeordnet sind. Beim Durchsuchen einer Unterstruktur werden alle Objekte zurückgegeben, die dem „Base Dn“-Objekt untergeordnet sind. Weil der Ordner „CN=Deleted Objects“ flach ist, verwende ich zum Abrufen aller Tombstones eine Suche über eine Ebene.
Bis jetzt habe ich im Wesentlichen eine konventionelle LDAP-Suche skizziert. Wenn ich diese jetzt ausführen würde, würde LDP einen Fehler anzeigen mit dem Hinweis, dass „CN=Deleted Objects,DC=foo,DC=com“ nicht existiert, weil es als gelöscht gekennzeichnet ist. Ich muss nämlich noch das LDAP-Steuerelement „Return Deleted Objects“ zum Zurückgeben gelöschter Objekte in den Suchvorgang einbinden. Dazu klicke ich im Dialogfeld „Search“ auf die Schaltfläche „Options“ (Optionen) und wähle als „Call Type“ (Aufruftyp) für die Suche die Option „Extended“ (Erweitert) (siehe Abbildung 5). Diese Option ermöglicht es mir, für den Suchvorgang Steuerelemente anzugeben. Hier ändere ich auch die Liste „Attribute“ in *. Dadurch zeigt LDP anstelle des LDP-Standardattributsatzes für jedes abgerufene Objekt alle normalen Attribute an.
Abbildung 5 LDP-Dialogfeld „Search Options“ (Suchoptionen)
Abbildung 5 LDP-Dialogfeld „Search Options“ (Suchoptionen)
Nun öffne ich über die Schaltfläche „Controls“ (Steuerelemente) das gleichnamige Dialogfeld. Das Dialogfeld ist nicht ganz einfach. Befolgen Sie daher unbedingt genau die nachfolgend aufgeführten Schritte, um das Steuerelement „Return Deleted Objects“ zum Zurückgeben gelöschter Objekte hinzuzufügen.
Öffnen Sie die Dropdownliste „Load Predefined“ (Vordefinierte laden), wählen Sie „Return Deleted Objects“ (Gelöschte Objekte zurückgeben), und klicken Sie auf die Schaltfläche „Check in“ (Einchecken). Dadurch wird die Objektkennung (object identifier, OID) für das Steuerelement „Return Deleted Objects“ zum Zurückgeben gelöschter Objekte (1.2.840.113556.1.4.417) in die Liste „Active Controls“ (Aktive Steuerelemente) eingefügt (siehe Abbildung 6). LDP fügt dieses Steuerelement dann in alle folgenden erweiterten Suchvorgänge ein. Klicken Sie auf „OK“, um die Einstellungen zu speichern, und dann erneut auf „OK“, um das Dialogfeld „Search Options“ zu schließen.
Abbildung 6 Hinzufügen des Steuerelements „Return Deleted Objects“
Abbildung 6 Hinzufügen des Steuerelements „Return Deleted Objects“
Das Dialogfeld „Controls“ weist in bestimmten Fällen ein eigentümliches Verhalten auf. Besonders ist hier die Tatsache zu nennen, dass, auch wenn ein OID in der Liste „Active Controls“ angezeigt wird, dieses Steuerelement nicht zwangsläufig auch angewendet wird. Manchmal müssen Sie ein Steuerelement aus- und dann wieder einchecken, um sicherzustellen, dass es beim nächsten LDAP-Vorgang verwendet wird.
Meine Suche ist nun also zum Ausführen bereit. Daher klicke ich im LDP-Suchdialogfeld auf die Schaltfläche „OK“. LDP ruft dann für die Domäne sämtliche Benutzerobjekte aus dem Container „CN=Deleted Objects“ ab. Das Ergebnis meiner Suche sehen Sie in Abbildung 7.
Abbildung 7 Suchergebnis aus dem Container „CN=Deleted Objects“
Abbildung 7 Suchergebnis aus dem Container „CN=Deleted Objects“

Prüfung des LDP-Ergebnisses
Meine Suche hat zwei Tombstoneobjekte zurückgegeben. Zunächst sehen Sie hier den DN des ersten Tombstones: CN=John Smith\0ADEL:41800281-6bc4-42c3-a99b-b283022b3af8,CN=Deleted Objects,DC=foo,DC=local. Die objectGUID des gelöschten Objekts wird als Zeichenfolge dargestellt (41800281-6bc4-42c3-a99b-b283022b3af8). Unter dem DN befindet sich eine Attributliste mit Werten für „objectClass“, „cn“, „distinguishedName“ usw. Wie Sie sehen, hat das isDeleted-Attribut den Wert TRUE. Das Objekt wurde also tatsächlich gelöscht. Außerdem sehen Sie, dass die „objectSid“ im Tombstone erhalten geblieben ist. Dies wird beim Wiederherstellen von Benutzer- und Gruppentombstones wichtig, wie ich später zeigen werde. Das lastKnownParent-Attribut, das den DN des Objekts angibt, in dem das gelöschte Objekt enthalten war, bevor es zu einem Tombstone wurde, spielt beim Wiederherstellen von Tombstones ebenfalls eine wichtige Rolle.
In meinem Beispiel zeigt LDP zwei Tombstoneobjekte an, beides Benutzerobjekte mit dem Namen „CN=John Smith“, die ursprünglich aus dem Container „CN=Users,dc=foo,dc=local“ stammen. Wie kann es zwei verschiedene Objekte mit dem gleichen RDN aus demselben Container geben? Die Erklärung ist ziemlich einfach. Bevor ich LDP zum Suchen von Tombstones ausgeführt habe, habe ich das Benutzerobjekt „CN=John Smith“ im Container „CN=Users,DC=foo,DC=local“ erstellt und dann gelöscht. Dann habe ich ein zweites Benutzerobjekt mit den gleichen Attributen erstellt und ebenfalls gelöscht. Weil ich das erste Benutzerobjekt „CN=John Smith“ bereits gelöscht hatte, war es durchaus sinnvoll, das zweite zu erstellen, auch wenn es den gleichen Namen hatte. Dennoch sind dies unabhängige, einmalige Objekte, die sich anhand ihrer jeweiligen „objectGUID“ unterscheiden lassen. Weil Active Directory die „objectGUID“ in den DN des Tombstones integriert, werden sie im Container „CN=Deleted Objects“ als separate Objekte angezeigt.

Wiederbeleben von Tombstones
Active Directory verfügt über eine Methode, mit der sich Tombstones wieder in normale Objekte verwandeln lassen. Im Prinzip wird damit das Löschen eines Objekts wieder aufgehoben. Bei dieser Funktion handelt es sich um eine speziell gebildete LDAP-Operation, die zwei ganz bestimmte Attributänderungen umfassen muss: Einerseits muss das isDeleted-Attribut entfernt (und nicht nur auf FALSE gesetzt) werden, und andererseits muss das Objekt durch Ändern seines distinguishedName-Attributs in einen anderen Container verschoben werden. Der neue DN verwendet typischerweise (aber nicht zwangsläufig) das lastKnownParent-Attribut als Container und behält den bisherigen RDN ohne die Komponente „\0ADEL:<: objectGUID>“, die Active Directory beim Erstellen des Tombstones hinzugefügt hat.
Vor dem Wiederbeleben des Tombstones überprüft Active Directory, dass bestimmte notwendige Bedingungen erfüllt sind. Der Benutzer muss über das erweiterte Zugriffsrecht zum Wiederbeleben von Tombstones verfügen, das im NC-Kopf des NC definiert ist, das den Tombstone enthält. Der Benutzer kann nicht sein eigenes Objekt wiederbeleben. Das isDeleted-Attribut des Tombstones muss auf TRUE gesetzt sein. Die Besitzer-Sicherheits-ID (SID) des Objekts, wie in der Sicherheitsbeschreibung definiert, muss eine SID aus einer der Domänen in der Gesamtstruktur oder einer vertrauenswürdigen Domäne haben.
Wenn sich das betreffende Objekt in den Konfigurations- oder Schema-NCs befindet, müssen die Bits FLAG_CONFIG_ALLOW_RENAME und FLAG_ CONFIG_ALLOW_MOVE im systemFlags-Attribut des Tombstones gesetzt sein. Wenn sich das Objekt in den Konfigurations- oder Schema-NCs befindet und das Kennzeichen FLAG_CONFIG_ALLOW_LIMITED_MOVE gesetzt ist, kann das Objekt nur in einen Container verschoben werden, der dasselbe übergeordnete Objekt zweiter Ebene besitzt. Anders ausgedrückt: Das Objekt muss nach dem Verschieben dasselbe übergeordnete Objekt dritter Ebene haben wie zuvor. Wenn sich das Objekt in einem Domänen-NC oder einer Anwendungspartition befindet, dürfen außerdem die Bits FLAG_DOMAIN_DISALLOW_RENAME und FLAG_DOMAIN_DISALLOW_MOVE im systemFlags-Attribut des Tombstones nicht gesetzt sein.
Der Benutzer muss wie in der Sicherheitsbeschreibung definiert berechtigt sein, den RDN (meist, aber nicht immer = CN) zu ändern und das Objekt dem neuen übergeordneten Container hinzuzufügen. Außerdem muss der neue übergeordnete Container ein mögliches übergeordnetes Element für die „objectClass“ des Tombstones sein, wie im Schema definiert. Obwohl ein Verschieben in oder aus dem Systemcontainer normalerweise nicht zulässig ist (außer wenn der Registrierungswert „Unlock“ der Systemunterstruktur ungleich null ist), ist das Wiederbeleben eines Tombstones in den Systemcontainer möglich.
Das Wiederbeleben eines Schemaobjekts ist niemals zulässig. Dies ist jedoch normalerweise kein Problem, da ein Objekt ohnehin nicht aus dem Schema-NC gelöscht werden darf.
Wenn alle Überprüfungen erfolgreich durchgeführt wurden und die notwendigen Voraussetzungen erfüllt sind, führt Active Directory mit dem Tombstone folgende Schritte durch, um das Objekt wiederzubeleben:
  • Das isDeleted-Attribut wird entfernt.
  • Sofern im Änderungsvorgang nicht anders angegeben, wird „objectCategory“ auf die spezifischste „objectClass“ gesetzt, die im Tombstone angegeben ist.
  • Der RDN wird geändert, und das Objekt wird in den neuen übergeordneten Container geschrieben.
Nach dem Wiederbeleben hat das Objekt die gleichen objectGUID- und objectSid-Attribute wie vor dem Löschen. Das bedeutet, dass externe Verweise auf das Objekt, beispielsweise in Zugriffssteuerungslisten, nicht zurückgesetzt werden müssen, wie es beim Wiederherstellen eines gelöschten Objekts der Fall ist. Aussehen und Verhalten des wiederbelebten Objekts sind ebenso wie vor dem Löschen. Es besteht jedoch ein wichtiger Unterschied: Dem wiederhergestellten Objekt fehlen sämtliche Attribute, die nicht im Tombstone gespeichert wurden.

Verwenden von LDP zum Wiederbeleben von Tombstones
systemFlags-Attribut und Objektverhalten
Das systemFlags-Attribut ist ein optionales Attribut, das für die Klasse „Top“ definiert wurde und das „systemFlags“ zu einem optionalen Attribut für jede Active Directory-Klasse macht. Es handelt sich dabei um eine 32-Bit-Ganzzahlmaske, die das Verhalten beim Verschieben und Löschen von Objekten steuert. Wichtige Kennzeichen:

FLAG_DISALLOW_DELETE (0x80000000)

Wenn dieses Kennzeichen gesetzt ist, lässt das System das Löschen oder Verschieben des Objekts in eine andere Domäne nicht zu.

FLAG_CONFIG_ALLOW_RENAME (0x40000000)

Objekte in den Konfigurations- und Schema-NCs können nicht umbenannt werden, wenn dieses Kennzeichen im systemFlags-Attribut nicht gesetzt ist.

FLAG_CONFIG_ALLOW_MOVE (0x20000000)

Objekte in den Konfigurations- und Schema-NCs können nicht verschoben werden, wenn dieses Kennzeichen im systemFlags-Attribut nicht gesetzt ist.

FLAG_CONFIG_ALLOW_LIMITED_MOVE (0x10000000)

Objekte in den Konfigurations- und Schema-NCs können nicht verschoben werden, wenn dieses Kennzeichen im systemFlags-Attribut nicht gesetzt ist. Dieses Kennzeichen legt eine weitere Beschränkung für den Zielcontainer des Verschiebevorgangs fest: Der Zielcontainer muss dasselbe übergeordnete Element zweiter Ebene haben wie der aktuelle Container.

FLAG_DOMAIN_DISALLOW_RENAME (0x08000000)

Standardmäßig können Objekte in einem Domänen-NC oder Anwendungs-NC umbenannt werden. Wenn dieses Kennzeichen jedoch im systemFlags-Attribut des Objekts gesetzt ist, lässt das System ein Umbenennen des Objekts nicht zu.

FLAG_DOMAIN_DISALLOW_MOVE (0x04000000)

Standardmäßig können Objekte in einem Domänen-NC oder Anwendungs-NC in einen anderen Container verschoben werden. Wenn dieses Kennzeichen jedoch im systemFlags-Attribut des Objekts gesetzt ist, lässt das System ein Verschieben des Objekts nicht zu.

FLAG_DISALLOW_MOVE_ON_DELETE (0x02000000)

Wenn dieses Kennzeichen gesetzt ist, verschiebt das System das Objekt nicht in den Container „CN=Deleted Objects“ seines Namenskontexts. Stattdessen werden das isDeleted-Attribut gesetzt, das Objekt umbenannt und die Attribute entfernt, die nicht im Schema als zu speichernde Attribute festgelegt sind. Das bedeutet, dass nicht alle gelöschten Objekte im Container „CN=Deleted Objects“ für den Namenskontext angezeigt werden; einige verbleiben im ursprünglichen übergeordneten Container.

Nachdem Sie jetzt das Prinzip der Wiederbelebung von Tombstones kennen, möchte ich Ihnen zeigen, wie ich mit LDP den gelöschten Benutzer „CN=John Smith“ wiederherstellen kann. Zunächst stelle ich eine Verbindung zu einem DC her und führe die Authentifizierung durch. Jetzt kann ich mit LDP einen Änderungsvorgang durchführen. In den Parametern des Änderungsvorgangs kann ich das isDeleted-Attribut entfernen und gleichzeitig einen neuen DN angeben.
Weil ich diese Vorgänge an einem Tombstone durchführe, muss ich das LDAP-Steuerelement„Return Deleted Objects“ zum Zurückgeben gelöschter Objekte verwenden. Um dieses Steuerelement für den Änderungsvorgang in LDP festzulegen, wähle ich zunächst im Optionsmenü „Controls“ (Steuerelemente). Dann wähle ich in der Dropdownliste „Load Predefined“ (Vordefinierte laden) die Option „Return Deleted Objects“ (Gelöschte Objekte zurückgeben) und klicke auf die Schaltfläche „Check in“ (Einchecken). Anschließend wähle ich „OK“, um die Einstellungen zu speichern.
Dann wähle ich im Menü „Browse“ (Durchsuchen) die Option „Modify“ (Ändern), um das gleichnamige Dialogfeld zu öffnen und den DN des Tombstoneobjekts einzugeben, das ich wiederherstellen will. Am einfachsten geht das durch Kopieren und Einfügen des DNs aus den Ergebnissen des zuvor durchgeführten Suchvorgangs.
Nun muss ich noch eine Liste von Attributvorgängen eingeben, die durchgeführt werden sollen. Zum Wiederbeleben eines Tombstones sind zwei Attributvorgänge erforderlich: das isDeleted-Attribut muss gelöscht werden, und das distinguishedName-Attribut muss durch den DN des wiederbelebten Tombstones ersetzt werden. Also gebe ich „isDeleted“ in das Feld „Attribute“ (Attribut) ein und aktiviere das Optionsfeld „Delete“ (Löschen). Wenn ich nun die Eingabetaste drücke, wird der Attributvorgang in die Eintragsliste eingefügt (siehe Abbildung 8).
Abbildung 8 Angabe von Attributvorgängen
Abbildung 8 Angabe von Attributvorgängen
Anschließend gebe ich in das Feld „Attribute“ den Wert „distinguishedName“ ein, aktiviere das Optionsfeld „Replace“ (Ersetzen) und gebe den neuen DN des Objekts in das Feld „Values“ (Werte) ein. In diesem Fall verwende ich den ursprünglichen „distuiguishedName“ des Benutzers: „CN=John Smith,CN=Users,DC=foo,DC=local“. Wenn ich nun die Eingabetaste drücke, wird der Attributvorgang in die Eintragsliste eingefügt.
Weil ich das LDAP-Steuerelement „Return Deleted Objects“ zum Zurückgeben gelöschter Objekte in den Änderungsvorgang einbeziehen muss, muss ich eine erweiterte LDAP-Änderung verwenden. Dazu aktiviere ich das Kontrollkästchen „Extended“ (Erweitert). Wenn alles wie in Abbildung 9 gezeigt eingegeben ist, klicke ich zum Übernehmen der Änderungen auf die Schaltfläche „Run“ (Ausführen). LDP zeigt die Ergebnisse in einem großen Textfenster an.
Abbildung 9 Ändern des distinguishedName-Attributs
Abbildung 9 Ändern des distinguishedName-Attributs
Wenn ich nun wieder zum MMC-Snap-In „Active Directory-Benutzer und -Computer“ wechsele und den Container „CN=Users“ betrachte, ist das vormals gelöschte Benutzerobjekt wieder an seinem ursprünglichen Platz. Jedoch unterscheidet sich das Objekt in einigen wesentlichen Punkten von seinem ursprünglichen Zustand. Mehr dazu gleich.

Wiederbeleben von Tombstones mittels ADRESTORE
Wenn Sie einmal die Verwendung von LDP verstanden haben, ist das Wiederbeleben eines Tombstones eigentlich nicht weiter schwierig. Besonders einfach ist es andererseits auch wieder nicht. Glücklicherweise hat das Team von Sysinternals (einem Unternehmen, das inzwischen zu Microsoft gehört), ein Befehlszeilenprogramm entwickelt, um diesen Wiederbelebungsprozess zu vereinfachen. Dieses Tool mit dem Namen ADRESTORE ist auf der Microsoft-Website unter microsoft.com/technet/sysinternals/utilities/AdRestore.mspx verfügbar. Die Installation ist ganz einfach. Kopieren Sie einfach die EXE-Datei in ein geeignetes Verzeichnis auf Ihrem Computer, zum Beispiel das Verzeichnis C:\WINDOWS\SYSTEM32.
ADRESTORE kann in zwei Modi ausgeführt werden. Wenn Sie es ohne Parameter ausführen, listet es sämtliche Tombstones im Container „CN=Deleted Objects“ der Standarddomäne auf. Sie können eine Suchzeichenfolge in die Befehlszeile einfügen, um die anzuzeigenden Objekte auszuwählen. Beispiel:
C:\> adrestore John
Auf diese Weise werden alle Tombstoneobjekte im Container „CN=Deleted Objects“ angezeigt, die in ihrem CN- oder OU-Attribut die Zeichenfolge „John“ enthalten. Verwendet werden die LDAP-Suchfilter „cn=*John*“ und „ou=*John*“. Dies mag zwar nicht die flexibelste Vorgehensweise zum Suchen von Tombstoneobjekten sein, aber sie funktioniert in den meisten Fällen. Abbildung 10 zeigt das Ergebnis meiner Suche in ADRESTORE.
Abbildung 10 In einem Tombstone gespeicherte Attribute
Abbildung 10 In einem Tombstone gespeicherte Attribute
Wenn Sie einen Tombstone nicht nur suchen sondern auch wiederbeleben wollen, müssen Sie den Schalter –r zusammen mit einer optionalen Zeichenfolge verwenden, wie z. B. im folgenden Beispiel:
C:\> adrestore –r John
Mit diesem Befehl werden Sie zum Wiederbeleben jedes passenden Tombstoneobjekts aufgefordert. ADRESTORE platziert das wiederbelebte Objekt immer in dem Container, der mit dem lastKnownParent-Attribut des Tombstones angegeben ist. Es gibt keine Möglichkeit, einen anderen Container anzugeben.
ADRESTORE ist eine praktische Befehlszeilenschnittstelle zum Verwenden der Wiederbelebungsfunktionen in Active Directory. Auch wenn sie nicht übermäßig flexibel ist, so ist sie doch einfacher zu verwenden als LDP. Dennoch lassen sich auch mit ADRESTORE zwei zentrale Probleme beim Wiederbeleben von Tombstones nicht umgehen: Die Wiederherstellung der Attribute, die beim Löschen des Objekts entfernt wurden, und die Wiederherstellung von Objekten, die aus dem Konfigurations-NC gelöscht wurden.

Wiederherstellen von Objektattributen
In Sachen Datenwiederherstellung hat die Wiederbelebung von Tombstones gegenüber einer autorisierenden Wiederherstellung einen großen Vorteil: Bei der Wiederbelebung von Tombstones muss der DC nicht offline geschaltet werden. Außerdem hat die Wiederbelebung von Tombstones gegenüber dem Erstellen einer neuen Version eines gelöschten Objekts einige Vorteile. Wenn Sie ein Objekt neu erstellen, erhält es immer neue objectGUID- und objectSid-Attribute (wenn es sich um einen Sicherheitsprinzipal wie z. B. einen Benutzer handelt). Folglich müssen sämtliche externen Verweise auf das Objekt, wie z. B. ACLs, mit der Identität des neuen Objekts aktualisiert werden. Das kann ein echtes Problem sein.
Einige Attribute werden beim Löschen eines Objekts entfernt, und diese Attribute können bei der Wiederbelebung eines Tombstones nicht wiederhergestellt werden. Active Directory speichert allerdings einige Hauptattribute im Tombstone. Zu den Wichtigsten zählen hier identitätsbezogene Attribute wie z. B. „objectGUID“ und „objectSid“. Auch viele andere Attribute werden standardmäßig gespeichert (siehe Abbildung 1). Die meisten Attribute, die hartcodiert gespeichert werden, sind nur mäßig interessant, insbesondere wenn es um das Wiederherstellen von gelöschten Benutzerobjekten geht. Sie können jedoch über Bit 3 (0x00000008) des searchFlags-Attributs des entsprechenden attributeSchema-Objekts im Active Directory-Schema festlegen, welche zusätzlichen Attribute im Tombstone gespeichert werden sollen. Für einige Attribute ist dieses Bit in Windows Server 2003 R2 bereits im Schema gesetzt (siehe Abbildung 1).
Bei der Installation bestimmter Anwendungen kann es vorkommen, dass Bit 3 der „searchFlags“ vorhandener Attribute geändert wird oder dass sogar neue Attribute hinzugefügt werden, bei denen Bit 3 gesetzt ist. Exchange Server konfiguriert beispielsweise mehrere zusätzliche Attribute so, dass diese im Tombstone gespeichert werden.
Active Directory speichert keine Forwardlink- oder Backwardlinkattribute im Tombstone, selbst wenn Sie dies im searchFlags-Attribut des Schemaobjekts angegeben haben. Insbesondere speichert Active Directory beispielsweise nicht die Mitgliedsattribute einer Gruppe oder das memberOf-Attribut eines Benutzers. Daher ist die Wiederbelebung von Tombstones keine Lösung für das Wiederherstellen von Gruppenmitgliedschaften in Active Directory. Siehe dazu auch meinen Artikel „Notfallwiederherstellung: Active Directory-Benutzer und -Gruppen“ unter technetmagazine.com/issues/2007/04/ADRecovery. Sie benötigen also auch weiterhin eine alternative Methode zum Wiederherstellen dieser Informationen beim Wiederbeleben von Tombstones.
Wenn Sie die Wiederbelebung von Tombstones im Rahmen Ihrer Strategie zur Datenwiederherstellung einsetzen möchten, müssen Sie entweder sicherstellen, dass die wichtigen Attribute im Tombstone gespeichert werden, oder Sie benötigen eine andere Möglichkeit zum Speichern und Wiederherstellen wichtiger Attribute, etwa durch die Verwendung von LDIFDE oder eines anderen Sicherungs- und Wiederherstellungsschemas. Weitere Optionen sind Active Directory-Datenwiederherstellungsprogramme von Drittanbietern, die eine automatisierte Methode zum Sichern und Wiederherstellen von Attributen bieten, die nicht im Tombstone gespeichert werden und anders wiederhergestellt werden müssen.

Wiederbeleben von Objekten aus dem Konfigurationsnamenskontext
Eine weitere wesentliche Beschränkung der Tombstonewiederbelebung besteht darin, dass im Allgemeinen keine Objekte wiederbelebt werden können, die aus dem Konfigurations-NC gelöscht wurden. Die Objekte unterliegen in Bezug auf Verschieben und Umbenennen besonderen, über das systemFlags-Attribut des Objekts definierten Regeln. Sofern dieses keine anders lautende Vorgabe enthält, können Objekte im Konfigurations-NC nicht verschoben oder umbenannt werden. Das bedeutet, dass ihre Tombstones nicht wiederbelebt werden können. Active Directory erzwingt beim Erstellen von Objekten bestimmter Klassen bestimmte Werte für das systemFlags-Attribut (siehe Abbildung 11). Beachten Sie, dass Active Directory die bitweise logische OR-Operation auf diese Werte in Verbindung mit allen systemFlags-Werten anwendet, die beim Hinzufügen angegeben wurden. Das bedeutet, dass die entsprechenden Bits richtig gesetzt werden, auch wenn die Anwendung einen anderen Wert für das systemFlags-Attribut angibt.
Figure 11 systemFlags-Standardeinstellungen (Close Figure 11)

Klasse | Standardeinstellung
server | FLAG_DISALLOW_MOVE_ON_DELETE FLAG_CONFIG_ALLOW_RENAME FLAG_CONFIG_ALLOW_LIMITED_MOVE
site | FLAG_DISALLOW_MOVE_ON_DELETE
serversContainer | FLAG_DISALLOW_MOVE_ON_DELETE
nTDSDSA | FLAG_DISALLOW_MOVE_ON_DELETE
siteLink | FLAG_CONFIG_ALLOW_RENAME
siteLinkBridge | FLAG_CONFIG_ALLOW_RENAME
nTDSConnection | FLAG_CONFIG_ALLOW_RENAME
Die einzigen Objekte aus dem Konfigurations-NC, die Sie im Normalfall wiederbeleben können, sind Serverobjekte. Wenn Active Directory ein Serverobjekt löscht, wird der Tombstone interessanterweise nicht in den Container „CN=Deleted Objects“ für den Konfigurations-NC verschoben, sondern verbleibt an derselben Stelle wie das Objekt. Dies ermöglicht dem für das Berechnen der Active Directory-Replikationstopologie verantwortlichen Prozess, Knowledge Consistency Checker (KCC), die automatische Wiederherstellung bei bestimmten Szenarios, in denen gelöschte Serverobjekte eine fehlerfreie Replikation verhindern könnten. Wenn Sie also versuchen ein Serverobjekt wiederzubeleben, denken Sie daran, dass es sich nicht im Container „CN=Deleted Objects“ befindet.

Wiederbeleben im Rahmen eines Wiederherstellungsplans
Das Wiederbeleben von Tombstones sollte zentraler Bestandteil Ihres Toolkits zur Datenwiederherstellung sein. Diese Methode ist die einzige Möglichkeit zum Wiederherstellen gelöschter Objekte ohne einen DC offline zu schalten. Es ist, was ebenso wichtig ist, die einzige Möglichkeit, die Identitätsinformationen eines gelöschten Objekts wiederherzustellen. Damit bietet es zugleich eine saubere Lösung für das Neuerstellen eines gelöschten Benutzers oder einer Gruppe und das Korrigieren sämtlicher alter Verweise auf die Zugriffssteuerungsliste.
Doch das Wiederbeleben von Tombstones ist eine unvollständige Lösung. Sie benötigen zusätzlich eine eigene Methode zum Wiederherstellen der Attribute, die Active Directory nicht in Tombstoneobjekten behält. Zudem sind die Möglichkeiten zum Wiederherstellen gelöschter Objekte aus dem Konfigurations-NC begrenzt. Wenn Sie einen gelöschten Benutzer oder eine Gruppe wiederbeleben, müssen Sie Gruppenmitgliedschaften und sämtliche anderen, ggf. benötigten verknüpften Attribute auf andere Weise wiederherstellen.

Gil Kirkpatrick ist CTO von NetPro und entwickelt seit 1996 Software für Active Directory. Zusammen mit Guido Grillenmeier von HP bietet er die beliebten Workshops zur Active Directory-Notfallwiederherstellung an. Gil ist darüber hinaus Gründer der Directory Experts Conference (www.dec2007.com).


 Kommunikation: Verbinden von Benutzern mit Office Communications Server&#160;2007
Kommunikation Alan Maddison

Verbinden von Benutzern mit Office Communications Server 2007
Kurz zusammengefasst:
  • Office Communications Server-Architektur
  • Konferenzfeatures
  • Enterprise Voice
  • Bessere Informationen zum Anwesenheitsstatus

Endlich gibt es eine einheitliche Kommunikation. Die bevorstehende Einführung von Office Communications Server 2007 bedeutet eine vollständige Überholung der mit Live Communications Server 2005 gebotenen Erfahrung. Neben den architektonischen und Verwaltungsverbesserungen umfasst Office
Communications Server 2007 einen neuen Client: Office Communicator. Weitere Vorteile sind neue und bessere Features wie Enterprise Voice, Webkonferenzen vor Ort, verbesserte Anwesenheitsstatusinfos und Instant Messaging sowie Verbund. Zusammen bilden diese Features die Plattform der Microsoft®-Strategie für einheitliche Kommunikation zur Verbesserung der Produktivität und Zusammenarbeit über weite Entfernungen hinweg.
Dieses Update umfasst auch eine rationalisierte Microsoft Management Console (MMC)-Snap-In-Schnittstelle. Abbildung 1 zeigt eine der neuen administrativen Verbesserungen für Leistungsindikatoren.
Abbildung 1 Das neue MMC-Snap-In umfasst Leistungsindikatoren.
Abbildung 1 Das neue MMC-Snap-In umfasst Leistungsindikatoren.
Office Communications Server 2007 gibt es in zwei Editionen: Standard und Enterprise. Office Communications Server 2007 Standard ist ideal für weniger als 10.000 Benutzer. Hier hostet ein einzelner Front-End-Server alle Dienste.
Für größere Bereitstellungen kann die Enterprise Edition in einer konsolidierten oder erweiterten Konfiguration bereitgestellt werden. In einer konsolidierten Topologie wird die gesamte Hardware in einem einzelnen Front-End-Serverpool eingerichtet. Für maximale Skalierbarkeit gibt es die erweiterte Konfiguration, bei der Sie dedizierte Webserver, auf denen Internetinformationsdienste (IIS) und webbasierte Konferenzanwendungen ausgeführt werden, und audiovisuelle Konferenzserver (A/V) außerhalb des Front-End-Serverpools verwenden können. Abbildung 2 zeigt eine erweiterte Konfigurationstopologie.
Abbildung 2 Erweiterte Konfigurationstopologie
Abbildung 2 Erweiterte Konfigurationstopologie

Architektur
Die Architektur von Office Communications Server 2007 baut auf folgenden Kernservern auf: Front-End-Server, Edgeserver und Anwendungsserver. Front-End-Server besorgen Benutzerauthentifizierung, Adressbuchverwaltung, Anwesenheitsverwaltung, Konferenzverwaltung, Anwendungshosting, die Signalverarbeitung zwischen Servern und Clients, Medienverwaltung (einschließlich Dateifreigabe) und Weiterleitung von Instant Messaging- (IM) und Konferenzdatenverkehr.
Die Hauptkonferenzfunktionalität von Office Communications Server 2007 wird von einer Reihe integrierter Server bereitgestellt, die auch als MCUs (Multipoint Control Units) bezeichnet werden. Abbildung 3 enthält eine Zusammenfassung dieser Server und ihrer Funktionen.
Figure 3 Konferenzserver und ihre Funktionen (Close Figure 3)

Konferenzserver (MCU) | Unterstützte Funktionalität
Instant Messaging | Ermöglicht IM für Gruppen durch Weiterleiten des IM-Datenverkehrs zwischen den Teilnehmern. In den Front-End-Server integriert, kann nicht auf einem separaten Server installiert werden.
Telefonie | Unterstützt ein- und ausgehenden Wählton. In den Front-End-Server integriert, kann nicht auf einem separaten Server installiert werden.
Web | Verantwortlich für Zusammenarbeitsfunktionen wie Whiteboards, Anwendungsfreigabe sowie Fragen und Antworten. Dieser Server stellt auch Support für die Office-Dokumentfreigabe und PowerPoint-Präsentationen bereit. Kann auf dem Front-End-Server oder in der erweiterten Poolkonfiguration auf einem separaten Server installiert werden.
A/V | Wird für IP-Audio-/Videomischungen und -Übertragungen mit mehreren Beteiligten verwendet. Kann auf dem Front-End-Server oder in der erweiterten Poolkonfiguration auf einem separaten Server installiert werden.
Eine weitere wichtige Funktion des Front-End-Servers ist das Hosten des Adressbuchservers. Wenn Sie mit Live Communications Server 2005 SP1 vertraut sind, werden Sie diesen Dienst kennen. Bei Office Communications Server 2007 spielt er eine zentrale Rolle und ist nicht optional. Der Adressbuchserver besteht aus zwei Komponenten: dem Adressbuchdienst und dem Adressbuchdateispeicher. Dieser Server ist verantwortlich für das Bereitstellen von Kontaktinformationen aus internen und externen Quellen. Die globale Adressliste und die Verteilerlisten von Active Directory® und Exchange Server sind typische Beispiele interner Quellen. Externe Quellen umfassen Benutzer von Partnern im Verbund oder öffentliche IM-Kontakte.
Office Communications Server 2007 verbessert die in Live Communications Server 2005 eingeführte Konnektivität mit externen Benutzern und ermöglicht deren Teilnahme an Konferenzen vor Ort. Für diese zusätzliche Funktionalität sind zwei neue Edgeserver erforderlich: ein Edgeserver für webbasierte Konferenzen und ein A/V-Edgeserver. Der Zugriffsproxyserver wird jetzt als Zugriffs-Edgeserver bezeichnet. Die Edgeserver befinden sich im Umkreisnetzwerk (einem überwachten Subnetz) und bieten wichtige Konnektivität für externe Benutzer. Abbildung 4 enthält eine Übersicht über die Funktionen der Edgeserver und deren Verwendung.
Figure 4 Edgeserverrollen (Close Figure 4)

Server | Unterstützte Funktionalität
Zugriffs-Edgeserver | Verbund; Remotebenutzerkonnektivität; öffentliche IM-Konnektivität (PIC).
Webkonferenzen-Edgeserver | Externe Webkonferenzen
A/V-Edgeserver | A/V-Konferenzen und Point-to-Point-A/V-Anrufe mit externen Benutzern
Reverseproxyserver | Gruppenerweiterung, Adressbuchdateidownload, Webkonferenzzugriff auf Besprechungsinhalt Streng genommen keine Office Communications Server-Funktion, stellt jedoch wichtige Funktionalität bereit. ISA Server 2006 kann ebenfalls Reverseproxyfunktionen bieten.
Neben den bereits beschriebenen integrierten Servern nutzt Office Communications Server verschiedene Anwendungsserver für wichtige Funktionen wie Authentifizierung, Speichern von Konferenzmetadaten und Bereitstellen der Verteilerlistenfunktionen. Die häufig mit Office Communications Server verwendeten Anwendungsserver umfassen IIS, Zertifikatserver, globale Katalogserver aus der Active Directory-Umgebung, SQL Server® 2005, Exchange Server 2007 und Dateiserver.
IIS dient zum Zugriff auf Besprechungsinhalt, Adressbuchupdates, Erweiterung von Active Directory-Verteilergruppen für IM, Erweiterung von Outlook®-Verteilerlisten für externe Benutzer und die Erleichterung der grundlegenden Kommunikation zwischen Office Communications Server-Komponenten.
Zertifikatserver spielen eine entscheidende Rolle in Office Communications Server beim Schutz der Kommunikation zwischen Clients und Servern sowie beim Schutz der Kommunikation zwischen Servern. Wenn Sie einen internen Unternehmenszertifikatserver verwenden, müssen alle internen Clients und Server der ausstellenden Zertifizierungsstelle (certificate authority, CA) vertrauen. Daher muss jede CA-Zertifikatkette im vertrauenswürdigen Stammspeicher auf allen Computern installiert werden. Wenn Sie Office Communications Server-Verbunddienste verwenden, muss Ihre Partnerorganisation dies ebenfalls tun.
Die Authentifizierung von Konferenzteilnehmern wird von den globalen Katalogservern in der Active Directory-Umgebung unterstützt. Zur Authentifizierung interner Benutzer und solcher im Verbund verwenden die globalen Katalogserver Kerberos. Im Unternehmen beschäftigte Remotebenutzer verwenden ihre Active Directory-Anmeldeinformationen über NTLM, und anonyme Benutzer werden mithilfe von Digestauthentifizierung authentifiziert.
SQL Server 2005 dient zum Verwalten von Statusdaten über Konferenzen, Benutzerregistrierung und Anwesenheitsinformationen. Bei einem Fehler können Sie eine Besprechung mithilfe der in SQL Server gespeicherten Daten schnell wiederherstellen, sodass eine schnelle und zuverlässige Wiederherstellungsmethode ohne Inhaltsverlust bereitgestellt wird.
Exchange Server 2007 und seine Unified Messaging-Features stellen mit Voicemessaging und der automatischen Telefonzentrale einen wichtigen Zusatz zu Office Communications Server 2007 bereit.
Dateiserver dienen zum Speichern von Daten, auf die von Clients aus zugegriffen wird. Beispielsweise werden die Dateien, die für Clients beim Herunterladen des Adressbuchs erforderlich sind, werden auf einem Dateiserver gespeichert. Ebenso wird zusätzlicher Besprechungsinhalt ebenfalls auf einem Dateiserver gespeichert.
Die zugrunde liegende Protokollarchitektur von Office Communications Server 2007 basiert auf einer Mischung aus Standardinternetprotokollen und Microsoft-Protokollen. SIP (Session Initiation-Protokoll) wird beispielsweise sehr häufig für Funktionen wie IM, Konferenzen und Anwesenheitsabonnements verwendet. Die von den verschiedenen Komponenten von Office Communications Server verwendeten Protokolle bieten ein Höchstmaß an Leistungsstärke und Flexibilität. Abbildung 5 enthält einen Überblick über die Hauptprotokolle und deren Verwendung.
Figure 5 Protokolle und ihre Verwendung (Close Figure 5)

Protokoll | Unterstützte Funktionalität
Hypertext Transfer Protocol (HTTP) | Clientzugriff, Herunterladen von Besprechungsinhalt und Adressbuchdaten. Dient auch zur Kommunikation zwischen den Konferenzservern und Focus, einer Komponente von Office Communications Server.
Session Initiation-Protokoll (SIP) | Sitzungserstellung und -verwaltung durch die verschiedenen Komponenten von Office Communications Server einschließlich Enterprise Voice, IM, Konferenzserver und verbesserte Anwesenheitsstatusinfo.
Centralize Conference Control Protocol (CCCP) | Spezialprotokoll für das Einrichten und Steuern von Konferenzen und Konferenzclients.
Persistent Shared Object Model (PSOM) | Spezialprotokoll für die Übertragung von webbasiertem Konferenzinhalt einschließlich Sicherheitsschlüsseln sowie Benutzerrollen und -rechten.
Real-Time Transport-Protokoll (RTP) | Lieferung von Echtzeitdaten. In Office Communications Server 2007 bildet es den Transportmechanismus für Enterprise Voice und A/V-Konferenzen.
Secure Real-Time Transport Protocol (SRTP) | Sicherheitsdienste wie Verschlüsselung, Nachrichtenauthentifizierung und Integrität für RTP-Daten. In Office Communications Server 2007 dient es für die sichere Übertragung von Audio- und Videoinhalt an Mediengeräte wie Mikrofone und Lautsprecher.
Real-Time Transport Control Protocol (RTCP) | Dient zusammen mit SRTP für die Vermittlung von Informationen zur Signalqualität von A/V-Konferenzsitzungen an Mediengeräte.

Enterprise Voice
Enterprise Voice ist die Microsoft-Implementierung von VoIP-Telefonie und stellt die wichtigste neue Einzelkomponente des Produkts dar. Auf der Grundlage einer Implementierung, die SIP zum Signalisieren und das RTP (Real-Time-Protokoll) für den Sprachverkehr verwendet, ermöglicht Enterprise Voice das Durchführen und Empfangen von Anrufen von PC zu PC sowie zwischen PC und Telefon. Außerdem stellt Enterprise Voice Funktionen wie Anrufsteuerung und Weiterleitung sowie Nummernormalisierung bereit. Es gibt Unterstützung für das Telefonfestnetz (Public Switched Telephone Network, PSTN) und Interoperabilität mit privaten Nebenstellenanlagen (Private Branch Exchange, PBX), die entweder SIP und CSTA (Computer-Supported Telecommunications Applications) unterstützen oder eine direkte Schnittstelle zur Office Communications Server 2007-API besitzen.
Office Communications Server 2007 kann ohne größere Veränderungen an der vorhandenen Sprachinfrastruktur bereitgestellt werden, wobei gleichzeitig signifikante Vorzüge genutzt werden können. Enterprise Voice unterstützt drei Bereitstellungskonfigurationen: SIP–PBX, SIP–IP–PBX und IP-PSTN.
Beim SIP-PBX-Setup werden alle Remoteaufrufe von der Nebenstellenanlage gesteuert, und Sie behalten Ihre vorhandenen Telefone. Diese Integration wird durch das RCC-Gateway (Remote Call Control) und CSTA ermöglicht.
Die SIP–IP–PBX-Konfiguration nutzt das IP-PSTN-Gateway, sodass CSTA nicht erforderlich ist und der Office Communicator-Client Nummern wählen und das IP-PBX-Telefon steuern kann. Wenn Sie nicht über Handapparate verfügen, können Sie Office Communicator als „Softphone“ konfigurieren.
Die Bereitstellung von Office Communications Server 2007 mit der IP-PSTN-Komponente ermöglicht Ihnen die Weiterleitung von Anrufsteuerungen an die Front-End-Server. Office Communicator kann eine Schnittstelle zu VoIP oder SIP-Endpunkten von Microsoft-zertifizierten Drittanbietern bilden (in vielen Unternehmen ist dieser Endpunkt in der Regel ein Handapparat), um Anrufe über das Internet zu tätigen oder zu empfangen.
Mediengateways sind Drittanbietergateways, die Signalisierung und Medienkonvertierung zwischen VoIP und dem Fernsprechnetz bereitstellen. Office Communications Server 2007 unterstützt drei Arten von Gateways, die als grundlegend, erweitert und als Mischform von grundlegenden Gateways kategorisiert werden können. Zur Unterstützung anderer Gateways als den erweiterten bietet Office Communications Server 2007 die Mediation Server-Rolle an, die wichtige Protokoll- und Medienübersetzungsfunktionen bereitstellt. Die Integration entfernter Büros ist mithilfe der in Office Communications Server verfügbaren Komponenten ebenfalls möglich.
Wie andere Office Communications Server 2007-Komponenten nutzt auch Enterprise Voice Edgeserver zum Bereitstellen von Konnektivität für externe Benutzer. Insbesondere ist der Zugriffs-Edgeserver (für seine Rolle beim SIP-Signalisieren) für Benutzer außerhalb des Unternehmensumkreises erforderlich, während der A/V-Edgeserver externen Benutzern, die auf Sprach- oder Videodienste zugreifen, die Verbindung durch Umkreisnetzdienste wie Firewall und NAT-Implementierung (Network Address Translation, Netzwerkadressübersetzung) ermöglicht.
Obwohl Enterprise Voice einmal eine große Anzahl Clients unterstützen soll, wird derzeit als Client für Enterprise Voice die aktuelle Version von Office Communicator empfohlen. Außerdem haben Microsoft und Microsoft-Partner Pläne für neue VoIP-Telefonhardware bekannt gegeben, die mit Office Communications Server kombiniert werden kann.
Enterprise Voice kann auch mit der Unified Messaging-Rolle von Exchange Server 2007 kombiniert werden und bietet eine einzelne Schnittstelle für Voicemail, E-Mail, Kalender, Kontakte und Faxempfang, auf die mithilfe von Outlook Voice Access von einem Telefon oder einem Computer aus zugegriffen werden kann. Außerdem stellt Unified Messaging eine automatischen Telefonzentrale bereit, mit deren Hilfe Sie ein automatisiertes Telefonmenü implementieren können.

Bessere Informationen zum Anwesenheitsstatus
Das Konzept der Anwesenheit, mit dem Sie vielleicht durch Live Communications Server 2005 vertraut sind, wurde in Office Communications Server 2007 erweitert und verbessert. Im Allgemeinen geht es hierbei um den Status und die Verfügbarkeit der Benutzer. In Office Communications Server hat die unterstützende Infrastruktur eine umfassendere Erfahrung mit verbesserter Genauigkeit zum Konfigurieren anwesensbezogener Informationen geschaffen.
Benutzer können jetzt unter sechs verschiedenen Statusmodi auswählen: der Status kann auf „Online“, „Beschäftigt“, „Nicht stören“, „Bin gleich zurück“, „Abwesend“ oder „Als offline anzeigen“ eingestellt werden. Zudem können die Benutzer diesen Status durch zusätzliche Informationen ergänzen. Wenn der Status eines Benutzers beispielsweise auf „Nicht stören“ eingestellt ist, kann der Betreffende zusätzliche Informationen bereitstellen, warum er nicht gestört werden möchte.
Diese Verbesserung ermöglicht Benutzern auch das Filtern von Informationen, die anderen Benutzern durch die Verwendung von fünf optionalen Anwesenheitsebenen angezeigt wird: Privat, Team, Arbeitsbereich, Öffentlich und Block. Diese Ebenen bieten eine Hierarchie für die Anwesenheitsverwaltung. Die Anwesenheitsebene „Privat“ ermöglicht beispielsweise Kontakten größtmögliche Flexibilität, da Aktionen wie Kontakt über IM zulässig sind, selbst wenn der Status des Benutzers auf „Beschäftigt“ eingestellt ist. Anwesenheitsebenen steuern zudem die Informationsmenge, die Kontakten angezeigt wird.
Des Weiteren kann ein Benutzer bei Verwendung von Office Communicator seinen Ortsstatus festlegen, bei dem es sich um einen benutzerdefinierten Ort oder eine der Standardoptionen wie Heim oder Büro handeln kann. Ortsinformationen sind für Kontakte der Kategorien „Privat“ und „Team“ verfügbar.
Diese Verbesserungen sind willkommen und sorgen für eine rationelle Kommunikation, die größten Auswirkungen für Unternehmen hat jedoch die zugrunde liegende Infrastruktur von Office Communications Server und des Anwesenheitsmoduls. Office Communications Server 2007 ist beispielsweise mit dem Member-Webpart ausgestattet, einem Office SharePoint Server 2007-Webpart, der es Benutzern ermöglicht, die Anwesenheit anderer Benutzer anzuzeigen, die einer SharePoint-Website oder einem Portal zugeordnet sind. Dieser Webpart kann leicht in vorhandene SharePoint-Websites eingefügt werden, um Anwesenheitsinformationen über die Zusammenarbeitsinfrastruktur hinweg zu verteilen.
Anwesenheitsinformationen sind durch die Verwendung von Dokumentarbeitsbereichen und Smart Tag-Aktionsschaltflächen in die gesamte Microsoft® Office 2007-Anwendungssuite integriert. Smart Tag-Aktionsschaltflächen können beispielsweise Status, Kontakt- und Kalenderinformationen von Benutzern anzeigen. Benutzer können Smart Tag-Aktionen zum gemeinsamen Arbeiten, Planen von Besprechungen oder Starten einer IM-Unterhaltung verwenden.

Konferenzen vor Ort
Eine weitere bedeutsame Verbesserung in Office Communications Server 2007 ist die Funktion für Konferenzen vor Ort. Die Möglichkeit, Echtzeitkonferenzen mit internen oder externen Benutzern (anonym oder im Verbund) auszurichten, ist mit Sicherheit sehr nützlich. Diese Konferenzen können geplant werden oder sofort stattfinden. Darüber hinaus ist es möglich, IM-Konferenzen, A/V-Konferenzen und Webkonferenzen sowie andere Tools für die Zusammenarbeit einzusetzen, z. B. Dateifreigabe, Whiteboards, Folienanmerkungen, Teilnehmerumfragen und Frage- und Antwortsitzungen mit Teilnehmern. Office Communications Server unterstützt außerdem den Übergang von einer Konferenzart in eine andere. So kann beispielsweise Zusammenarbeit in eine IM-Sitzung aufgenommen und eine Ad-hoc-Konferenz begonnen werden.
Obwohl Office Communicator als Client für Konferenzen empfohlen wird, unterstützt Office Communications Server 2007 auch Office Live Meeting 2007 und Office Live Meeting Add-In für Outlook 2007. Office Communicator 2007 unterstützt IM, A/V-Sitzungsteilnahme, Anwendungsfreigabe, Whiteboards und Dateiübertragung. Office Live Meeting 2007 ermöglicht die Konferenzteilnahme sowie das Planen von Sitzungen, das Aufzeichnen von Sitzungen, Teilnehmerumfragen und Fragen und &Antworten.
Office Live Meeting 2007 Add-In für Outlook 2007 umfasst Unterstützung für Konferenzaufgaben mithilfe von Outlook 2007 sowie die Möglichkeit, Personen als Teilnehmer oder Referenten festzulegen und separate Einladungen an Benutzer mit verschiedenen Rollen zu senden. Außerdem können Benutzer nicht nur die Rolle eines Organisators, Referenten oder Teilnehmers haben, sondern auch kategorisiert werden, sodass sie auf der Grundlage ihres Standorts und ihrer Anmeldeinformationen einer internen oder externen Benutzergruppe zugeteilt werden. Interne Benutzer sind über Active Directory angemeldet und befinden sich im Unternehmens-LAN. Externe Benutzer sind in drei Kategorien unterteilt: Remotebenutzer, Verbundbenutzer und anonyme Benutzer.
Remotebenutzer sind alle Benutzer mit einem Active Directory-Konto in einem Unternehmen. Sie können Fernmitarbeiter oder externe Partner umfassen. Alle Remotebenutzer können Konferenzen ausrichten, an ihnen teilnehmen und Präsentationen durchführen.
Benutzer im Verbund besitzen ein Konto, das durch die Einrichtung eines Verbunds in Office Communications Server definiert wird. Solche Benutzer können an Besprechungen teilnehmen und Präsentationen durchführen, eine Besprechung jedoch nicht ansetzen.
Anonyme Benutzer sind die am meisten eingeschränkte Gruppe. Sie können nur an Besprechungen teilnehmen, zu denen sie eingeladen wurden.
Um eine zusätzliche Sicherheitsschicht für eine Besprechung bereitzustellen, können verschiedene Arten von Einstellungen für die Zugangssteuerung angegeben werden. Office Communications Server 2007 bietet dazu folgende Möglichkeiten: offen authentifiziert, geschlossen authentifiziert und anonym.
An einer offen authentifizierten Besprechung können alle Remote- oder internen Benutzer mit einem Active Directory-Konto teilnehmen. Das Gleiche gilt für Verbundbenutzer. An geschlossen authentifizierten Besprechungen können nur Benutzern teilnehmen, die vom Organisator eingeladen wurden. Verbundbenutzer können an solchen Besprechungen nicht teilnehmen.
Eine anonyme Besprechung steht allen offen, die eine Einladung erhalten. Um teilzunehmen, muss der Benutzer zur Überprüfung seiner Anmeldeinformationen einen Konferenzschlüssel präsentieren und eine Digestauthentifizierung durchführen. Ein anonymer Benutzer kann nur Teilnehmer sein, es sei denn, er wird zum Referenten heraufgestuft. Einige der verfügbaren Einstellungen sind in Abbildung 6 dargestellt.
Abbildung 6 Besprechungseinstellungen
Abbildung 6 Besprechungseinstellungen

Einwahl
Durch Optimierung der Kommunikation, Integration der verschiedenen Kommunikationsmedien und Übergabe der Kontrolle an den Benutzer bietet Office Communications Server 2007 die Möglichkeit, die Arbeitsweise Ihres Unternehmens zu revolutionieren. Das Konzept der kontextbezogen Kommunikation, bei der sowohl Anwesenheitsinformationen als auch ein Kommunikationsmittel in der Anwendung eingebettet sind, wird die Grundlage dieser Revolution bilden. Sie sollten Office Communications Server 2007 unbedingt testen.
Weitere Informationen zu Office Communications Server 2007 und zum Ausprobieren der Beta-Version finden Sie im TechNet Office System-TechCenter unter technet.microsoft.com/en-us/office/bb267356.aspx. Sehen Sie sich auch den Teamblog zum einheitlichen Kommunikationssystem unter blogs.technet.com/uc an.

Alan Maddison ist als Senior Consultant bei der MTI Technology Corporation tätig. Im Mittelpunkt seiner Tätigkeit stehen Active Directory, Exchange Server und Virtualisierung.


 Mitteilung der Redaktion: Wege zum Lernen
Mitteilung der Redaktion
Wege zum Lernen
Joshua Trupin

Von Anfang an stand die Septemberausgabe unseres Magazins unter dem Motto „Schulanfang“. Selbstverständlich ist uns klar, dass dieser Zeitrahmen nicht immer genau zutrifft. Die Ferien sind schließlich nicht überall zum gleichen Zeitpunkt zu Ende. Einige Menschen hören ja auch, wie es scheint, nie mit dem Lernen auf.
Für die meisten von uns aber ist September ungefähr richtig. Schließlich ist das TechNet Magazin quasi eine weiterführende Bildungseinrichtung, die den Grad eines IT-Experten verleiht. Okay, das war nur ein Witz. Kein Witz ist es aber, dass Sie mit unserem Magazin ein echtes Bildungsprogramm erhalten. Diesen Monat haben wir einen kompletten Lehrplan entwickelt.
Wie alle guten Bildungseinrichtungen bieten wir eine Vielzahl von Lernerfahrungen an, von Einführungskursen in SQL für den Skriptingfan (in „Hey, Scripting Guy!“) bis zu einem Überblick über die Verwaltungstools von Active Directory.
Zu unseren Lehrgängen für Fortgeschrittene gehört ein Graduierungskurs in Windows Vista. Zuerst lernen Sie hier, Windows mithilfe von Business Desktop Deployment (BDD 2007) bereitzustellen. Wenn sie dann Windows Vista in Ihrem Unternehmen bereitgestellt haben, erhalten Sie auch Anleitungen zur Implementierung regelmäßiger Sicherungen und können dabei einen Blick auf einige der Schlüsseltechnologien werfen, die heute zur Verfügung stehen.
Jetzt gehen Sie schon allmählich auf Ihr IT-Experten-Diplom zu und können unseren Studiengang zu Active Directory für Fortgeschrittene absolvieren. Sollten Sie sich fragen, was unter „Tombstonewiederbelebung“ zu verstehen ist, aber nicht unbedingt unsere Sonderausgabe zu Halloween abwarten wollen, können Sie sich in diesem Monat so richtig in diese Materie vertiefen.
TechNet Magazin ist selbstverständlich nur eines von vielen Lernmitteln. Die Microsoft TechNet-Website bietet noch mehr Fernkurse für Sie an. TechNet enthält Hunderte von Webcasts zu wichtigen Technologien für IT-Experten, darunter auch Demonstrationen der Microsoft-internen Verwendung solcher Technologien. Das Webcastangebot ist nach Zielgruppen (IT-Experten, Führungskräfte usw.) und Technologien unterteilt und nach Schwierigkeitsgrad eingestuft, genau wie in einem Hochschul-Vorlesungsverzeichnis.
So enthält das TechNet Magazin, um nur ein Beispiel zu geben, in diesem Monat mehrere detaillierte Artikel über Active Directory. Aber vielleicht sind Sie ja noch nicht ganz so weit, dass Sie diese wirklich für sich nutzen können. In diesem Fall können Sie in den TechNet-Webcasts die Stufe 200-Präsentation zu Active Directory-Grundlagen ansehen (msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032295120).
Bildungsmöglichkeiten gibt es heutzutage in vielerlei Gestalt. Vom Magazin bis zum Internet ist es unsere Aufgabe, Ihnen die Informationen zur Verfügung zu stellen, die Sie benötigen. Wie wäre es, nachdem Sie einige unserer Artikel gelesen haben, mit einem Besuch des TechNet Magazin-Blogs (blogs.technet.com/tnmag) für einen kleinen Chat bei einer Tasse Kaffee?
Joshua Trupin

Unser Dank gilt folgenden technischen Experten von Microsoft: Paul Bowden, Justin Halle, Anand Lakshminarayanan, Eduardo Laureano, Mike Lewis, Tim Mintner, Michael Murgolo, Mark Russinovich und Jim Truher.


 Briefe: Antworten auf Ihre Fragen
Briefe
Antworten auf Ihre Fragen

PsTools
Wes Miller behandelte im März 2007 in der Rubrik „Die Desktopdateien“ die PsTools-Dienstprogramme (siehe „Einstieg in PsTools“ unter technetmagazine.com/issues/2007/03/DesktopFiles). Ich habe Probleme, diese tollen Dienstprogramme zum Laufen zu bringen. Ich interessiere mich besonders für PsLoggedOn. Könnten Sie bitte genau erklären, wie ich diese großartigen Dienstprogramme in einem Ordner auf meinem Pfad ablegen kann? Ein Beispiel würde wirklich helfen.
—Tim

Am besten laden Sie das vollständige PsTools-Paket (download.sysinternals.com/Files/PsTools.zip) in ein Arbeitsverzeichnis (zum Beispiel nach c:\toolbox) herunter. Nachdem Sie die ZIP-Datei in dieses Verzeichnis extrahiert haben, können die Tools verwendet werden. Wenn Sie dieses Verzeichnis Ihrer PATH-Variablen hinzufügen möchten, damit Sie die Tools überall ausführen können, führen Sie einfach den folgenden Befehl an einer Eingabeaufforderung aus, wobei Sie Ihr Arbeitsverzeichnis anstelle von „c:\toolbox“ einsetzen:
SET PATH=%PATH%;c:\toolbox

Ein Loblied auf Robocopy
Unser Helpdeskpersonal war bis zum Erscheinen Ihres Artikels vom November 2006 über die Robocopy-GUI (technetmagazine.com/issues/2006/11/UtilitySpotlight) nicht in der Lage, die Zeitstempel von Dateien, die von Netzwerkordnern zu SharePoint®-Speichern verschoben wurden, beizubehalten. Robocopy ist ein hervorragendes Tool!
—Cristino

Prüfen der Registrierungsunterschlüssel
Seit einiger Zeit versuche ich herauszufinden, wie ich testen kann, ob der Wert des Registrierungsunterschlüssels „EnableLUA“ aktiviert oder deaktiviert ist. Ist der deaktiviert, ist die Benutzerkontensteuerung deaktiviert. Das ist genau, was wir wollen, damit wir in unserer Testumgebung Programme automatisch installieren können, ohne uns zur Bestätigung mit einem Administratorkonto anmelden zu müssen. Wir möchten diesen Test an den Anfang aller Installationsskripts setzen und ein Skript ausführen, das den Wert von EnableLUA von 1 (Ein) zu 0 (Aus) ändert, bevor das Installationsskript ausgeführt wird. Ich habe jedoch keine Ahnung, wie ich diesen Test zum Laufen bekomme. Ich würde mich wirklich über jede Hilfe freuen, die Sie mir anbieten können.
—Derek

Hier ist ein einfaches Skript, das einen Registrierungsschlüssel liest, den Wert prüft und, falls notwendig, ändert. Dieses Beispielskript liest den Schlüssel HKLM\Software\Microsoft\Test\TestKey und prüft, ob der Wert 1 lautet. Ist dies der Fall, ändert es den Wert in 0, andernfalls wird das Skript beendet:
On Error Resume Next
Set WSHShell =  Wscript.CreateObject _
    ("Wscript.Shell")
RegLoc = _
    "HKLM\Software\Microsoft\Test\TestKey"
KeyValue = WSHShell.RegRead(RegLoc)
If (KeyValue = "1") then
  WSHShell.RegWrite RegLoc,"0"
end If
Wscript.Quit
Seien Sie wie immer vorsichtig bei der Verwendung von Skripts, die die Registrierung ändern, besonders in einem Fall wie diesem.

ReadyBoost
Können Sie mir ReadyBoost etwas besser erklären? So wie ich es verstehe, arbeitet ReadyBoost wie ein Puffer zwischen dem RAM eines Computers und der Festplatte, aber die Daten werden parallel geschrieben. Nimmt dadurch nicht die Leistung ab, da das System Daten doppelt schreibt? Wie teste ich die Leistung des Systems mit und wie ohne ReadyBoost?
—Alex

ReadyBoost soll die Verwendung eines Flashspeichers (USB-Stick o. Ä.) als temporären Cache ermöglichen. Damit wird die Kapazität des (oft teureren) traditionellen RAM erhöht. ReadyBoost schreibt nicht unbedingt die gleichen Daten parallel in den Flashspeicher und auf die Festplatte. Vielmehr arbeitet es wie eine Zwischenspeicherschicht, die zwischen RAM und Datenträger liegt. Mark Russinovich erklärt dies etwas ausführlicher in seinem Artikel „Einblick in den Windows Vista-Kernel Teil 2“ vom März 2007, in dem er sagt:
Nachdem der ReadyBoost-Dienst das Zwischenspeichern initialisiert, fängt der Ecache.sys-Gerätetreiber alle Lese- und Schreibvorgänge ab, speichert sie auf lokalen Festplattenvolumes (beispielsweise C:\) und kopiert alle Daten, die geschrieben werden, in die Cachedatei, die der Dienst erstellt hat...
...Wenn ReadyBoost zufällige Lesevorgänge erkennt, die aus dem Cache bedient werden können, werden sie aus dem Cache verarbeitet. Da Festplatten jedoch einen besseren sequenziellen Lesezugriff haben als Flashspeicher, ermöglicht es den Lesevorgängen, die Teil eines sequenziellen Zugriffsmusters sind, den direkten Zugriff auf den Datenträger, auch wenn sich die Daten im Cache befinden.
Sie können den Rest des Artikels online unter technetmagazine.com/issues/2007/03/VistaKernel lesen.

Windows PE-Download
Die Rubrik „Briefe“ der Ausgabe von Mai 2007 enthält einen Widerspruch. Unter „Erstellen von Abbildern“ wird gesagt, „Sie können Abbilder von Windows® PE 2.0 mit den WAIK-Tools erstellen und anpassen...“. Dies impliziert, dass Windows PE in den Tools enthalten ist und sich herunterladen lässt.
Aber in der letzten Frage „Wie komme ich an Windows PE?“ haben Sie geantwortet, „Windows PE ist (nur) als Software Assurance verfügbar...“. Ich glaube, dass Ihre erste Antwort richtig und die zweite Antwort veraltet ist.
—Xihui

Windows PE 2.0 ist im WAIK (Windows Automated Installation Kit) als Download verfügbar. Es unterliegt anderen Lizenzierungsregeln als Windows PE 1.6 (die vorhergehende Version, die letztes Jahr in „Erste Schritte mit Windows PE“ besprochen wurde. Sie können diesen Artikel unter technetmagazine.com/issues/2006/09/WindowsPE lesen). Windows PE 1.6 war nur als Teil der Software Assurance verfügbar.

Die Sicherheit von Windows PowerShell
Es wird viel über Windows PowerShell™ geredet. Ich habe viele Artikel gesehen, in denen die UNIX-ähnliche Syntax, das einfache Formatieren der Befehlsausgabe und mehr gelobt werden, zu Sicherheitsaspekten bei der Bereitstellung von Windows PowerShell im Datencenter habe ich jedoch nichts gefunden.
Welche Sicherheitsfragen spielen eine Rolle, wenn eine so leistungsfähige Shell auf Produktionsservern bereitgestellt und ausgeführt wird?
—Carlos

Sie haben völlig recht, die Sicherheit von Windows PowerShell ist ein wichtiges Thema. Don Jones, unser Windows PowerShell-Kolumnist, behandelt dieses Thema ausführlich in dieser Ausgabe von TechNet Magazin. Zusätzlich zu dieser Abhandlung gibt es zwei Bücher, die kürzlich veröffentlicht wurden: Windows PowerShell in Action von Bruce Payette (Manning Publications 2007) und Windows PowerShell: TFM von Don Jones und Jeffrey Hicks (SAPIEN Press 2007). Darin wird Windows PowerShell sehr ausführlich behandelt, der Sicherheit ist jeweils ein eigenes Kapitel gewidmet.

SQL-Best Practices
Ich kann mich den Empfehlungen in Ihrer Antwort, die den BPA (Best Practices Analyzer) und die schemaqualifizierenden Objekte betreffen (siehe technetmagazine.com/issues/2007/05/SQLQA), in keiner Weise anschließen. SQL Server™ 2005 muss immer noch Schemas auflösen (im Gegensatz zu reinen Besitzern in SQL Server 2000, die der Autor fälschlicherweise „Schemas“ nennt). Die Reihenfolge der Auflösung in SQL Server 2005 wird sehr gut in der Onlinedokumentation beschrieben.
Deshalb sind qualifizierende Objekte immer noch eine Best Practice zur Erkennung von Doppeldeutigkeiten und damit der Optimierer bei der Auflösung von Objektnamen CPU-Zyklen spart. Die Empfehlung in der Kolumne scheint im Widerspruch zum Microsoft-Whitepaper „Probleme mit der Batchkompilierung, Neukompilierung und Planzwischenspeicherung in SQL Server 2005“ zu stehen.
—Mike

Wir wenden uns für eine Antwort direkt an die Quelle: David Browne, ein Mitarbeiter unserer Rubrik „SQL – Fragen und Antworten“ und Technologiearchitekt im Microsoft Technology Center in Dallas, Texas. Er hat Folgendes gesagt:
Über Best Practices lässt sich immer streiten. Besonders in Bezug auf die Leistung gibt es abweichende Auffassungen darüber, was ein bedeutender Leistungsunterschied ist und was eine lohnende Optimierung sein könnte.
Bis jetzt ist es mir beispielsweise noch nie in den Sinn gekommen, Abfragen so zu schreiben, dass der Optimierer CPU-Zyklen in der Kompilation spart, und ich bezweifle, dass es einen messbaren Unterschied bei einer realistischen Arbeitsauslastung geben würde.
Andererseits ist die Verringerung der Kompilierungshäufigkeit durch die Förderung eines wiederverwendbaren Abfrageplans normalerweise eine anerkannte Leistungsoptimierung.

WinPE
Wir verwenden zur Betriebssystembereitstellung Systems Management Server (SMS)-Feature Pack für die Betriebssystembereitstellung (Operating System Deployment Feature Pack, OSDFP). Wir möchten nun Windows Vista® über OSDFP installieren, das wir auf die aktuelle Version aktualisiert haben. Welche Version von Windows PE wird mit dem neuesten OSDFP bereitgestellt?
Bisher haben wir immer eine iso-Abbildinstallationsdatei erstellt und in die Remoteinstallationsdienste (Remote Installation Services, RIS) kopiert. Dann wurde ein neuer Rechner über die Netzwerkstartoption gestartet. Jetzt haben wir jedoch RIS auf WDS aktualisiert, wo nur eine WIM-Datei (Windows Imaging) als Startabbild unterstützt wird. Wie können wir ein WIM-Abbild über eine Installationsoption von OSD erstellen?
—Vasishta

Die Version von Windows PE wurde nicht mit der aktuellen Version von OSDFP aktualisiert, sie umfasst immer noch Version 1.5 (auch bekannt als Windows PE 2004). Obwohl Windows PE nicht aktualisiert wurde, unterstützt die aktuelle OSDFP-Version die Bereitstellung von Windows Vista vollständig.
Die optimale Methode zur Erstellung eines verteilbaren Desktopabbilds ist in BDD (Business Desktop Deployment) Solution Accelerator aufgeführt. Alle notwendigen Komponenten und die zugehörige Dokumentation finden Sie online unter microsoft.com/technet/desktopdeployment/bdd/2007. Lesen Sie außerdem den Artikel von Michael Niehaus „Bereitstellen von Windows Vista mit BDD 2007“ in dieser Ausgabe des TechNet Magazins.

Windows 2003 Server-Poster
Ich habe gerade mein TechNet Magazin vom Juli 2007 erhalten und mich gefreut, zwei Poster zu Windows Server® 2008 vorzufinden! Einer meiner Kollegen hat ein Windows 2003 Server-Poster zusammen mit einer früheren Ausgabe erhalten. Können Sie mir sagen, wie ich an die Windows 2003 Server-Ausgaben dieser Poster, entweder auf Papier oder als PDF, kommen kann?
—Jason

Es freut uns zu hören, dass Ihnen die Windows Server 2008-Poster gefallen! Eine PDF-Version des Windows Server 2003-Posters gibt es online unter go.microsoft.com/fwlink/?LinkID=80428. Zu Windows Server 2003 gibt es nur ein Poster.


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

Verschieben von SQL Server-Datenbanken
xSQL Bundle Professional Edition
www.xsqlsoftware.com
Egal, ob Sie beim Betriebssupport, in der Anwendungsentwicklung, der Qualitätssicherung oder der Konfigurationsverwaltung tätig sind – für Sie als IT-Experte (der Sie als Leser des TechNet Magazins wahrscheinlich sind) dürfte das Verschieben von SQL Server™-Datenbanken zu Ihrem Aufgabenbereich gehören. Beim Verschieben von Daten und Datenschemas müssen Sie immer auf Inkonsistenzen achten. Um solche Inkonsistenzen zu vermeiden, brauchen Sie ein gutes Toolset zum Durchführen von Schema- und Datenvergleichen und für die Synchronisierung.
Ein kürzlich von mir verwendetes Tool ist xSQL Bundle von xSQL Software. Das Paket besteht aus vier verschiedenen Anwendungen: xSQL Object, xSQL Data Compare und den zugehörigen Befehlszeilenprogrammen.
Mithilfe von xSQL Object können Sie Datenbankschemas vergleichen und synchronisieren. Die Anwendung bietet eine Reihe von Vergleichsoptionen für die Objekttypen und -instanzen, die von Datenbank zu Datenbank verglichen werden müssen. Zudem können Sie Schemasnapshots erstellen, was für die Pflege des Versionsverlaufs praktisch ist. Mithilfe dieses Features lässt sich auch ein Rollback zu einem vorherigen Schemazustand leicht durchführen. Mit xSQL Object können Sie sogar Schemaskripts generieren, sodass
Sie Ihr Datenbankschema transportieren oder verpacken können.
xSQL Data Compare kann die in zwei SQL Server-Datenbanken enthaltenen Daten gleichsetzen und synchronisieren. Sie können entscheiden, ob Sie den gesamten Inhalt zweier Datenbanken vergleichen wollen, oder Tabellen zum Vergleichen auswählen. Falls Ihre Tabellen einander nicht genau entsprechen, können Sie eine eigene Tabellenzuordnung definieren, um sicherzustellen, dass die Daten innerhalb dieser Tabellen dieselben sind. Beim Synchronisieren großer Datenmengen wechselt die Anwendung in den zeitsparenden Masseneinfügemodus.
Sowohl mit xSQL Data Compare als auch mit xSQL Object können Sie Ihren Arbeitsbereich speichern, sodass Sie Ihre Vergleichsumgebung nicht ständig neu erstellen müssen. Die Synchronisierung ist bei beiden Anwendungen transaktional, sodass alle Vorgänge entweder erfolgreich durchgeführt oder als Ganzes rückgängig gemacht werden. Alle Anwendungen im Paket unterstützen sowohl SQL Server 2000- als auch SQL Server 2005-Datenbankinstanzen. Sie können relevante Daten und Objekte versionsunabhängig vergleichen und synchronisieren.
Ein besonders leistungsfähiges Feature von xSQL Bundle dürften die beiden Befehlszeilenprogramme sein, mit denen Sie Ihre Vergleichs- und Synchronisierungsaufgaben über jeden beliebigen Build, Prozess, Überwachungsvorgang oder automatisierten Taskplaner durchführen können. (Meiner Meinung nach erleichtert die Automatisierung überflüssiger Aufgaben das Arbeitsleben und sorgt für mehr Produktivität.) Die Befehlszeilenprogramme nehmen eine XML-Konfigurationsdatei auf, die Sie über einen Konfigurationsassistenten von der Hauptanwendungsoberfläche aus erstellen können. Jedes Dienstprogramm verfügt über eine Reihe von Textdateiprotokollierungsoptionen, damit Sie nachverfolgen können, was während der automatisierten Ausführung geschieht.

Preis: xSQL Bundle Professional Edition ist ab 499 $ für eine einzelne Benutzerlizenz erhältlich.
xSQL Data Compare kann die in zwei SQL Server-Datenbanken enthaltenen Daten synchronisieren.
xSQL Data Compare kann die in zwei SQL Server-Datenbanken enthaltenen Daten synchronisieren.

Enable More Secure Communication
WinSSHD
www.bitvise.com
Wenn Sie die Sicherheit in Ihrem Unternehmen verbessern möchten, könnten Sie Secure Shell Handling 2 (SSH2) und Secure FTP (SFTP) in Betracht ziehen. Das heißt, Sie können mithilfe von SSH2-Tunneling eine sichere Verbindung zu Diensten auf Remotecomputern herstellen. Dieses Protokoll kann auch das Gefahrenpotenzial durch Hacker einschränken, indem die Anzahl verfügbarer offener Abhörports in Ihrer Firewall, die direkt zu Anwendungen führen, reduziert wird. SFTP ist eine Alternative zu Ihrem standardmäßigen FTP-Server und verwendet SSH2, um Ihre Daten und Befehle zu schützen.
Wenn Sie an diesen Protokollen interessiert sind, sollten Sie sich WinSSHD von Bitvise auf jeden Fall ansehen. WinSSHD ist ein speziell für Windows entwickelter SSH2-Server.
Die Installation ist einfach. Die Anwendung stellt eine intuitive Systemsteuerung zum Verwalten des WinSSHD-Diensts bereit. In der Systemsteuerung finden Sie alles, angefangen bei grundlegenden Start-/Stoppfunktionen bis hin zu einer benutzerdefinierten Ansicht des Windows®-Ereignisprotokolls (in dem Sie eine Filterung auf WinSSHD-Ereignisse durchführen können). Hier können Sie auch den Einstellungsbereich starten, in dem Sie die wesentlichen Details Ihres Setup konfigurieren können. Sie können Schnittstellen- und Portbindungen festlegen, die Protokollierungskonfiguration optimieren, Verschlüsselungsmethoden für die SSH-Sitzung angeben, die Sie aktivieren möchten, Sitzungstimeouts konfigurieren, Authentifizierungsmethoden auswählen, Proxykonfigurationen angeben und den Zugriff auf die Instanz steuern. Konfigurationen können auch importiert und exportiert werden.
Mit der Zugriffssteuerung können Sie den Zugriff über IP-Regeln (mit Maskierungsunterstützung für die Subnetzsteuerung) und durch DNS-Namensregeln (die nach Ihren IP-Regeln verarbeitet werden) einschränken.
WinSSHD unterstützt die Virtualisierung, was für SFTP-Implementierungen hervorragend ist. Das bedeutet, dass Sie einem Windows-Konto Tausende virtuelle Benutzer zuweisen können, was die Konto- und Sicherheitsdetails vereinfacht. Die Anwendung unterstützt auch Windows-Gruppen für die Authentifizierungs- und Zugriffssteuerung, sodass nicht für jeden Einzelbenutzer eine Richtlinie definiert werden muss.
Mit Unterstützung für Kerberos 5 und NTLM-Authentifizierung kann WinSSHD in eine Umgebung mit einmaligem Anmelden integriert werden. Zur Durchführung dieser Aufgabe ist ein GSSAPI-aktivierter SSH-Client, beispielsweise Tunnelier, erforderlich, wobei es sich um ein gutes, ebenfalls bei Bitvise erhältliches Ergänzungsprodukt handelt. Wie zu erwarten, ist Tunnelier mit dem WinSSHD-Server völlig kompatibel. Die Anwendung kann auch zum Konfigurieren Ihres WinSSHD-Servers von einem Remotestandort aus verwendet werden.
Wenn die SFTP- oder SSH2-Serverumgebung für Ihr Unternehmen wesentlich ist, können Sie WinSSHD für hohe Verfügbarkeit clustern. Dies ist eine ziemlich einfache Aufgabe, aber wenn Sie Hilfe brauchen, bietet die Website des Unternehmens Informationen und Konfigurationsanleitungen zur Einrichtung des Clustering, Anschlussweiterleitung, zu Remotedesktoptunneling und so weiter.

Preis: $99.95.
Mithilfe von WinSSHD können Sie Verschlüsselungsmethoden für SSH-Sitzungen angeben.
Mithilfe von WinSSHD können Sie Verschlüsselungsmethoden für SSH-Sitzungen angeben.

Monitor USB Activity
USB Monitor Professional
www.hhdsoftware.com
Dies ist ein Produkt für ganz verschieden Zielgruppen. Vielleicht sind Sie ein Softwarehobbyist, der gerne Treiber für seine USB-Geräte erstellt und ändert. Oder ein Hardwareingenieur, der USB-Geräte entwickelt. Oder vielleicht fragen Sie sich bei Betrachten der Aktivitätsanzeige von einem USB-Gerät einfach, wodurch so viel Aktivität verursacht wird. Wenn Ihnen eins dieser Szenarios bekannt vorkommt, kann Ihnen USB Monitor Professional von HHD Software helfen. Mithilfe dieses Dienstprogramms können Sie die Daten, die zwischen einem USB-Gerät und einem Windows-System über den USB-Hostcontroller übertragen werden, aufzeichnen, anzeigen und analysieren.
Die Benutzeroberfläche ist etwas kompliziert, aber wenn Sie sich daran gewöhnt haben, können Sie eine Unmenge an Informationen über die Daten sammeln, die zwischen dem überwachten USB-Gerät und Ihrem System hin- und hergeleitet werden. Standardmäßig zeichnet die Anwendung die meisten Befehle und Befehlssätze auf, die an ein USB-Gerät übergeben werden. Bei einigen Geräten, speziell Massenspeichern, kann diese Aufzeichnung recht umfangreich sein. Glücklicherweise kann vorgegeben werden, welche Daten die Anwendung für Massenspeichergeräte aufzeichnen soll.
Nach Aufzeichnen einer Sitzung können Sie die Daten auf vielfache Weise analysieren. Für Massenspeichergeräte rufen Sie die Massenspeicheransicht auf. Es gibt auch Optionen für eine lineare Statistik- und Gerätedurchsatzkurve, eine Ansicht für Rohpakete und die Steuerungsanforderung, eine Datenpaketdecoderansicht, eine HID-spezifische Ansicht sowie eine Festbildansicht (die das USB-Festbildprotokoll für die entsprechenden Geräte decodiert).
Aufgrund der von der Anwendung aufgezeichneten Datenmenge sollte eine USB-Aufzeichnungssitzung nicht zu lange ausgeführt werden. Sie können auch den maximal für aktive Aufzeichnungssitzungen verfügbaren Speicherplatz einschränken und die aufgezeichneten Daten komprimieren, um den erforderlichen Speicherplatz zu reduzieren.

Preis: Ab 175,99 $ für eine normale Lizenz.
USB Monitor Professional zeichnet die Befehle auf, die an ein USB Gerät übergeben werden.
USB Monitor Professional zeichnet die Befehle auf, die an ein USB Gerät übergeben werden.

Manage Virtual Media
Virtual CloneDrive
www.elby.ch/fun/software
Der Umgang mit physischen Medien kann ziemlich lästig sein. Seit dem Wechsel zu Windows Vista und dem Verlust der direkten Kompatibilität mit Microsoft Virtual CD-ROM Control Panel bin ich auf der Suche nach einem Ersatz für das Bereitstellen von CD- und DVD-Abbildern. (Sie finden Microsoft® Virtual CD-ROM Control Panel für Windows XP übrigens unter go.microsoft.com/fwlink/?LinkId=94801.)
Natürlich ist es möglich, Virtual CD-ROM Control Panel in Windows Vista auszuführen. Das Problem besteht darin, dass Sie es immer als Administrator ausführen müssen und das bereitgestellte Laufwerk nur im Administratorkontext sehen können, d. h. über die Eingabeaufforderung „Als Administrator ausführen“, aber nicht im Windows Explorer-Kontext Ihres Benutzerkontos. Daher funktioniert das Tool nicht wie gewünscht und muss zudem in einer weniger sicheren Umgebung ausgeführt werden.
Ein Tool, das im Benutzerkontext von Windows Vista funktioniert
ist Virtual CloneDrive von Elaborate
Bytes. Die Anwendung wird als GUI-Verwaltungstool und Speichercontroller, der im
Geräte-Manager angezeigt wird, installiert. Nach der Installation hat die Anwendung drei grundlegende Einstellungen. Erstens
können Sie die Anzahl virtueller Laufwerke angeben, die Sie verwenden möchten, wobei höchstens 8 Laufwerke parallel vorhanden sein können. Zweitens (und das ist meine Lieblingsoption) können Sie die Virtual Sheep-Einstellung auswählen, die das standardmäßige CD-/DVD-Laufwerksymbol durch ein wütendes Schaf ersetzt, sodass Sie wissen, welche Laufwerke auf Ihrem System ISO-Laufwerke und keine echten physischen Laufwerke sind. Schließlich können Sie das letzte Abbild, das Sie diesem virtuellen Laufwerk beim Start zugeordnet hatten, automatisch bereitstellen lassen.
Neben ISO-Dateien kann Virtual CloneDrive auch .ccd-, .dvd-, .img-, .udf- und .bin-Dateien bereitstellen und lesen. Die Anwendung lässt sich auch in Windows Explorer integrieren, sodass Sie Abbilder schnell bereitstellen und deaktivieren können. Eins der besten Dinge bei Virtual CloneDrive ist, dass die Anwendung kostenlos erhältlich ist. Wenn Sie zu Windows Vista® migriert sind und eine neue Lösung zum Verwalten von ISO-Dateien suchen, sollten Sie sich dieses Tool einmal näher ansehen.

Preis: Kostenlos.
Das wütende Schaf von Virtual CloneDrive
Das wütende Schaf von Virtual CloneDrive

Book Review
SharePoint Products and Technologies Administrator's Pocket Consultant
microsoft.com/MSPress/books/10623.aspx
Das Büro von heute ist nicht papierlos, aber es gibt immer mehr elektronische Dokumente, die gepflegt werden müssen. Die Verwaltung dieser Dokumente und die Art und Weise, wie sie freigegeben werden, ist ein immer größeres Problem, und viele Unternehmen ziehen Microsoft SharePoint® Services und SharePoint-Server als Lösungen in Betracht. Das Buch „Microsoft SharePoint Products and Technologies Administrator's Pocket Consultant“ von Ben Curry kann hier helfen. Unabhängig davon, ob Sie SharePoint nur in Betracht ziehen, bereits in der Planungsphase sind oder schon über eine SharePoint-Infrastruktur verfügen, ist dieses Nachschlagewerk für Verwaltungsfunktionen und tägliche Aufgaben ein hervorragendes Handbuch.
Diejenigen unter Ihnen, die die „Administrator's Pocket Consultant“-Reihe kennen, werden mit seinem Aufbau vertraut sein. Es ähnelt den anderen hinsichtlich Inhalt und Struktur. In dem hier vorgestellten Buch werden Windows SharePoint Services 3.0, SharePoint Server 2007 Standard und SharePoint Server 2007 Enterprise Edition behandelt. Es ist in vier Abschnitte unterteilt.
Der erste Abschnitt beschäftigt sich mit den SharePoint-Produkten und technischen Grundlagen und bietet einen Überblick über die Komponenten, Versionen, Anforderungen und Installation der SharePoint Server-Produkte. Es wird erklärt, wodurch sich Windows SharePoint Services 3.0 und die Standard- und Enterprise-Versionen von SharePoint Server unterscheiden. Anschließend wird die Installation der drei Produkte erläutert. Es wird auch im Detail beschrieben, welche SQL Server-Datenbanken und IIS-Websites während des Installationsvorgangs erstellt werden.
Im nächsten Abschnitt über die SharePoint-Hauptverwaltung wird die Oberfläche der Zentraladministration behandelt und erläutert, wie neue Websitesammlungen und Websites erstellt, wie Webparts importiert, verwendet und bearbeitet und wie Gruppen- und E-Mail-Einstellungen für die Installation konfiguriert werden. Hier erfahren Sie auch, wie die verschiedenen Workflowfeatures verwaltet und diese Workflows überwacht werden.
Im dritten Teil des Buchs geht es um die Arbeit mit SharePoint Server 2007 und insbesondere um die Features und Funktionalität der SharePoint Server Standard- und Enterprise-Versionen. Es werden Themen wie die Konfiguration von Enterprise Content Management, das Erstellen und Konfigurieren von SharePoint Portals, das Einrichten von Suche und Indizierung und die Konfiguration der Dienste für Excel®-Berechnungen behandelt. Der Abschnitt über die Dienste für Excel-Berechnungen enthält auch eine Anleitung zum Konfigurieren von Diensten in einer Multiserverumgebung zur Steigerung von Leistung und Verfügbarkeit.
Der vierte Abschnitt befasst sich mit den betrieblichen Aspekten einer SharePoint Server-Implementierung. Hier erfahren Sie, wie SharePoint Server 2007 zu einer Serverfarm ausgebaut werden kann und welche verschiedenen Konfigurationen bei dieser Implementierung möglich sind. Schließlich enthält das Buch Erläuterungen zu den Grundlagen der Sicherungs- und Wiederherstellungsvorgänge, zur Leistungsanalyse und zur Verwendung der Protokollierungsfeatures für die Verwaltung und Verbesserung der Website.
Obwohl das Buch ein Nachschlagewerk für die tägliche Verwendung sein soll, dürfte es besonders in der Planungsphase und für diejenigen unter Ihnen interessant sein, die mehr über SharePoint erfahren möchten. Dank seiner guten Struktur – angefangen bei einer grundlegenden Erörterung der verschiedenen SharePoint-Technologien und ihrer Verwendung, über zunehmend komplexe Themen wie das Konfigurieren der Dienste für Excel-Berechnungen und den Ausbau in eine Serverfarm – stellt das Buch sowohl für Neulinge als auch für Experten in diesem Bereich ein nützliches Nachschlagewerk dar.

Preis: $29.99.

Greg Steen ist Technologieexperte, Unternehmer und Enthusiast. Er ist immer auf der Suche nach neuen Hilfsmitteln und Methoden, um Arbeits- und Entwicklungsprozesse für IT-Experten zu erleichtern.


 SQL&#160;– Fragen und Antworten: CPU-Engp&#228;sse, Wiederherstellen und Verschieben von Datenbanken und mehr
SQL – Fragen und Antworten
CPU-Engpässe, Wiederherstellen und Verschieben von Datenbanken und mehr
Herausgegeben von Nancy Michell

F: Unter SQL Server™ ist die CPU-Auslastung plötzlich extrem angestiegen, obwohl ich nichts geändert habe. Es wurden keine neuen Benutzer hinzugefügt, es wurde keine Hardware entfernt, und es wurden keine neuen Tabellen erstellt. Wodurch wird dieses Problem verursacht?

Tipp: Zugriff während der Indexerstellung
Manchmal müssen für große Tabellen Indexe erstellt werden, was unter Umständen sehr lange dauern kann. Gleichzeitig sollen die Daten jedoch während dieses Vorgangs verfügbar sein. Wie lassen sich beide Ziele erreichen?
Beim Erstellen, Löschen oder Neuerstellen eines gruppierten Index versieht SQL Server die Tabelle mit einer Schemaänderungssperre (Schema modification, SCH-M). Diese verhindert für die Dauer des Vorgangs sämtliche Benutzerzugriffe auf die zugrunde liegenden Daten. Das ist auch der Fall, wenn Sie einen gruppierten Index für eine Tabelle erstellen. Wenn Sie hingegen einen nicht gruppierten Index für eine Spalte erstellen, versieht SQL Server die Tabelle mit einer gemeinsamen Sperre (Shared, S). Datenaktualisierungen der zugrunde liegenden Tabelle werden dadurch zwar ebenfalls verhindert, aber SELECT-Anweisungen zum Lesen der Daten können ausgeführt werden.
Wenn während der Erstellung eines gruppierten Index Lesezugriff auf die Tabelle benötigt wird, können Sie einen Index für eine Tabelle erstellen und dies als Onlinevorgang durchführen. Hier ist der Befehl dazu:
CREATE UNIQUE CLUSTERED INDEX CLUST_IDX_SQLTIPS
ON SQLTips (tip) with (ONLINE=ON) Go;
Auch beim Verwenden von Onlineindexvorgängen für Tabellen versieht SQL Server die zugrunde liegende Tabelle bei einem gruppierten Index mit einer SCH-M-Sperre und bei einem nicht gruppierten Index mit einer S-Sperre. Jedoch nur für sehr kurze Zeit: während der Start- und Endphase des Indexvorgangs. Dadurch ermöglicht diese Option besseren Zugriff zum Abfragen und Aktualisieren der zugrunde liegenden Tabelle während der Indexerstellung. Zu beachten ist lediglich, dass diese Vorgängen zur Onlineindexerstellung nur in SQL Server 2005 Enterprise Edition verfügbar sind.

A: Ein plötzlich und unerwartet auftretender CPU-Engpass, der nicht durch Änderungen oder zusätzliche Serverlast verursacht wird, kann mehrere Gründe haben. Zu den häufigen Ursachen zählen ein schlechter Abfrageplan, eine ungünstige SQL Server-Konfiguration, ein fehlerhaftes Anwendungs- oder Datenbankdesign oder unzureichende Hardwareressourcen.
In einem solchen Fall muss zuerst festgestellt werden, ob Ihr Server CPU-gebunden ist. Wenn das der Fall ist, ermitteln Sie die Anweisungen, die in Ihrem lokalen SQL Server-System die CPU am stärksten beanspruchen. Ob der Server CPU-gebunden ist, können Sie im Systemmonitor über den Zähler PROZESSOR: PROZESSORZEIT (%) bestimmen. Wenn der Wert für die verwendete Zeit pro CPU größer oder gleich 75 Prozent ist, liegt ein CPU-Engpass vor.
Überprüfen Sie auch die Planer von SQL Server, indem Sie die dynamische Verwaltungsansicht (Dynamic Management View, DMV) SYS.DM_OS_SCHEDULERS des Systems abfragen und den Wert der ausführbaren Aufgaben überprüfen. Ein Wert ungleich null zeigt an, dass Aufgaben zur Ausführung auf ihre Zeitscheibe warten müssen. Hohe Werte bei diesem Zähler deuten ebenfalls auf einen CPU-Engpass hin.
Mithilfe der folgenden Abfrage können Sie alle Planer auflisten und die Anzahl ausführbarer Aufgaben bestimmen:
SELECT
 Scheduler_ID,
 Current_Tasks_Count,
 Runnable_Tasks_Count
FROM
 SYS.DM_OS_SCHEDULERS
WHERE
 Scheduler_ID < 255
Verwenden Sie zum Abfragen der 50 CPU-intensivsten SQL-Anweisungen die Abfrage in Abbildung 1.
Figure 1 Die 50 größten CPU-Verbraucher (Close Figure 1)
SELECT TOP 50 (a.total_worker_time/a.execution_count) AS [Avg_CPU_Time],
 Convert(Varchar,Last_Execution_Time) AS 'Last_execution_Time',
 Total_Physical_Reads,
 SUBSTRING(b.text,a.statement_start_offset/2,
 (case when a.statement_end_offset = -1 then len(convert(nvarchar(max), b.text)) * 2
 else
 a.statement_end_offset end - a.statement_start_offset)/2) AS Query_Text,
 dbname=Upper(db_name(b.dbid)),
 b.objectid AS 'Object_ID'
 FROM sys.dm_exec_query_stats a
 CROSS APPLY
 sys.dm_exec_sql_text(a.sql_handle) AS b
 ORDER BY
 [Avg_CPU_Time] DESC

F: Ich musste eine SQL Server 2005-Datenbank von Band wiederherstellen. Nach der Wiederherstellung waren jedoch die meisten Zugriffsberechtigungen von Benutzern auf die Datenbank verloren. Können Sie mir erklären, was ich bei der Wiederherstellung falsch gemacht habe? Die Daten waren in Ordnung, aber die Berechtigungen waren ein einziges Durcheinander.

A: Höchstwahrscheinlich wurde die wiederhergestellte Masterdatenbank zu einem anderen Zeitpunkt gesichert, so dass die Anmeldedaten in der Benutzerdatenbank nicht mit der aktuellen Masterdatenbank übereinstimmen. Sie müssen daher eine Synchronisierung durchführen. In der Randleiste sind unter „Hilfe beim Verschieben einer Datenbank“ die hilfreichsten Ressourcen zum Lösen möglicher Probleme beim Wiederherstellen oder Verschieben einer Datenbank aufgeführt.

F: Ich habe eine Anwendung entwickelt, in der mithilfe von OpenXML von SQL Server 2005 SP1 XML-Daten durch eine gespeicherte Prozedur in relationale Tabellen verteilt werden. Solche XML-Dokumente sind höchstens 5 KB groß, durchschnittlich etwa 2,5 KB. Die gespeicherte Prozedur wird vielfach parallel aufgerufen (bis zu 50 Mal).
Nun treten ernsthafte Sperrkonflikte auf, und ich fürchte, sie könnten durch OpenXML verursacht werden. Was denken Sie?

A: Zwar lassen sich mit OpenXML Daten aus nur einem Thread schneller verteilen oder konvertieren als mit der nodes()-Methode, bei letzterer ist die Skalierung aber normalerweise besser, insbesondere bei Parallelausführung. Wenn Sie jedoch OpenXML verwenden, beachten Sie die folgenden Richtlinien, um die Gesamtleistung von OpenXML zu optimieren:
Statt OpenXML fünfmal für dasselbe Zeilenmuster aufzurufen (wie Sie es ja beschreiben), sollten Sie alle Daten mit demselben Zeilenmuster in eine temporäre Tabelle extrahieren. Diese temporäre Tabelle können Sie anschließend zum Auswählen verwenden. Versuchen Sie auch, den Speicher mit sp_xml_removedocument so früh wie möglich freizugeben. Außerdem sollten Sie die Verwendung von Platzhaltern wie z. B. * und //, soweit möglich, vermeiden. Eine explizite Pfadangabe verbessert die Abfrageleistung.

F: Die Ausführung von DBCC SHRINKFILE auf meinem Server ist wirklich langsam. Könnte ich die Leistung durch einen Multiprozessorcomputer steigern? Oder wie kann ich die Situation verbessern?

A: DBCC SHRINKFILE ist ein Singlethreadvorgang, d. h. mehrere CPUs bringen hier keinen Vorteil. Bei diesem Vorgang werden Seiten einzeln nacheinander vom Ende der Datei an den Dateianfang verschoben. Bei diesem Verkleinern, wie es auch oft genannt wird, wird keine Defragmentierung durchgeführt; in vielen Fällen wird hierdurch die logische Fragmentierung sogar verstärkt.
Eine Möglichkeit, die Leistung dieses Vorgangs zu verbessern, besteht im Verschieben von Seiten in gruppierten Indexen. Wenn Sie mit Heaps arbeiten und diese viele nicht gruppierte Indexe enthalten, ist die Geschwindigkeit im Vergleich zu gruppierten Indexen merklich langsamer.
Zu beachten ist auch, dass das Verschieben von Seiten für LOB-Daten (Large Object) langsam ist, weil Zeilendaten gelesen werden müssen, um den Stamm dieser Daten zu finden.
Wenn sich der Inhalt eines Index oder einer Tabelle größtenteils am Ende der Datei befindet, können Sie die Indexe neu erstellen, sodass sie an den Anfang der Datei verschoben werden. Für das Neuerstellen der Indexe können mehrere CPUs genutzt werden. Im bulk_logged-Modus kann zudem der Speicherplatzbedarf der Protokollierung verringert werden. Eine Verkleinerung läuft dann schneller ab.
Weitere grundlegende Informationen zu Verkleinerungsvorgängen finden Sie in den Einträgen unter blogs.msdn.com/sqlserverstorageengine/archive/2007/03/29/how-does-your-schema-affect-your-shrink-run-time.aspx und blogs.msdn.com/sql-serverstorageengine/archive/2007/04/15/how-to-avoid-using-shrink-in-sql-server-2005.aspx.
Hilfe beim Verschieben einer Datenbank
  • Verschieben von Datenbanken zwischen Computern mit SQL Server
  • SQL Server-Datenbanken mithilfe von Detach/Attach an einen neuen Speicherort verschieben
  • INF: Verwenden der WITH MOVE-Option mit der RESTORE-Anweisung
  • Lösen von Zugriffsproblemen, wenn eine Datenbank auf einen anderen SQL-Server verschoben wird
  • Übertragen von Benutzernamen und Kennwörtern zwischen Instanzen von SQL-Server
  • Beschreibung des Assistenten zum Kopieren von Datenbanken in SQL Server 2000 und Problembehandlung
  • Benutzeranmeldungen und Berechtigungen für eine Datenbank können nach Wiederherstellung der Datenbank falsch sein
  • Systemdatenbanksicherungen können nicht in einem anderen Build von SQL Server wiederhergestellt werden
  • Abrufen einer bestimmten Tabelle oder von Zeilen aus Datenbanksicherungen oder Transaktionsprotokollsicherungen in SQL Server

Tipp: Ändern von Ports
Wie Sie wissen, hört SQL Server standardmäßig Port 1433 ab. Während benannte Instanzen von SQL Server so konfiguriert sind, dass sie dynamische Ports verwenden (d. h. beim Start einer SQL Server-Instanz kann jeder verfügbare Port ausgewählt werden), hört die SQL Server-Standardinstanz immer Port 1433 ab. Das bedeutet, wenn Ihr Server den Standardport verwendet und dieser nicht gut gesichert ist, besteht ein Sicherheitsrisiko. Um Angriffe zu erschweren, können Sie daher den Standardport ändern. So geht es.
Öffnen Sie SQL Server-Konfigurations-Manager, erweitern Sie „SQL Server 2005-Netzwerkkonfiguration“ und anschließend „Protokolle“. Doppelklicken Sie dann auf „TCP/IP“. Die Liste der TCP/IP-Eigenschaften und der zugehörigen Funktionen wird unten angezeigt. Nehmen Sie die entsprechenden Einstellungen vor.
Beachten Sie, dass das SQL Server-Datenbankmodul mehrere Ports an der gleichen IP-Adresse abhören kann. Geben Sie daher alle gewünschten Ports getrennt durch Kommata (z. B. 1433,1500,1501) an. Wenn Sie eine IP-Adresse so konfigurieren wollen, dass mehrere Ports abgehört werden, müssen Sie auf der Registerkarte „Protokolle“ auch den Parameter „Alle überwachen“ mit „Nein“ belegen.
Klicken Sie jetzt mit der rechten Maustaste auf die Adressen und dann auf „Eigenschaften“, um die zu konfigurierende IP-Adresse anzugeben. Wenn das Dialogfeld „Dynamische TCP-Ports“ die Ziffer „0“ enthält, das Datenbankmodul also dynamische Ports abhört, löschen Sie diesen Wert. Geben Sie im Bereich „IP-Eigenschaften“ im Feld „TCP-Port“ die Portnummer ein, welche diese IP-Adresse abhören soll, und klicken Sie dann auf „OK“. Klicken Sie im Konsolenfenster auf „SQL Server 2005-Dienste“, dann im Detailbereich mit der rechten Maustaste auf „SQL Server (<Instanzname>)“ und dann auf „Neu starten“, um SQL Server zu beenden und neu zu starten.
Nachdem Sie SQL Server so konfiguriert haben, dass nur bestimmte Ports abgehört werden, gibt es für Clients drei Möglichkeiten, eine Verbindung zum Port herzustellen. Erstens können Sie den SQL Server-Browserdienst auf dem Server ausführen, um eine Verbindung zur Datenbankmodulinstanz nach Namen herzustellen. Zweitens können Sie ein Alias auf dem Client erstellen und die Portnummer angeben, und drittens können Sie den Client so programmieren, dass zum Herstellen der Verbindung eine benutzerdefinierte Verbindungszeichenfolge verwendet wird.

Eigenschaft | Beschreibung
Aktiv | Zeigt an, dass SQL Server den angegebenen Port abhört. Nicht für IPAll verfügbar.
Aktiviert | Aktivieren und Deaktivieren dieser Verbindung. Nicht für IPAll verfügbar.
IP-Adresse | Anzeigen und Ändern der von dieser Verbindung verwendeten IP-Adresse. Listet die vom Computer verwendeten IP-Adressen sowie die IP-Loopbackadresse 127.0.0.1 auf. Nicht für IPAll verfügbar.
Dynamische TCP-Ports | Leer, wenn dynamische Ports nicht aktiviert sind. Geben Sie zur Verwendung dynamischer Ports die Ziffer „0“ ein.
TCP-Port | Anzeigen und Ändern des Ports, den SQL Server abhört. Standardmäßig hört die Standardinstanz Port 1433 ab. Dieses Feld ist auf 2047 Zeichen begrenzt.

Unser Dank für das Beantworten der Fragen in diesem Monat gilt folgenden Microsoft IT-Experten: Chad Boyd, Cindy Gross, John Hadden, Saleem Hakani, Stephen Jiang, Mahesh Nayak, Paul Randal und Wayne Yu.


 Schwerpunkt Dienstprogramme: PageDefrag
Schwerpunkt Dienstprogramme
PageDefrag
Lance Whitney
Laden Sie den Code für diesen Artikel herunter: PageDefrag (70KB)

Das durchschnittliche Windows®-Defragmentierungsprogramm kann die meisten Dateien auf Ihrer Festplatte optimieren, aber einige Elemente übersteigen die Möglichkeiten der meisten Defragmentierungstools. Geöffnete Dateien, die für exklusive Verwendung gesperrt sind, wie z. B. die Windows-Auslagerungsdatei und die Registrierungsstrukturen, werden normalerweise nicht vom integrierten Windows-Defragmentierungsprogramm oder von Drittanbieterdienstprogrammen verarbeitet. Die Standard-Windows-APIs unterstützen die Defragmentierung dieser Dateien, während sie in Verwendung sind, nicht. Glücklicherweise sorgt hier das von Mark Russinovich für Sysinternals erstellte PageDefrag-Dienstprogramm für Abhilfe, indem es die Dateien defragmentiert, die von anderen Tools unangetastet bleiben.
PageDefrag kann die Windows-Auslagerungsdatei, Registrierungsstrukturen, Ereignisprotokolle und die Ruhezustandsdatei (der Bereich auf dem Datenträger, wo der Speicher gespeichert wird, wenn ein Notebook in den Ruhezustandsmodus schaltet) defragmentieren. Das Programm optimiert diese Dateien während des PC-Bootvorgangs, bevor sie in Verwendung kommen.
Um PageDefrag auszuführen, doppelklicken Sie einfach auf die Datei „pagedfrg.exe“. Das Programm zeigt den Namen jeder Datei an, die es zur Defragmentierung verarbeiten kann (siehe Abbildung 1). Die Auslagerungsdatei ist „pagefile.sys“. Die Registrierungsstrukturen erscheinen für jede Struktur als Einzeldateien: DEFAULT, SAM, SECURITY, SOFTWARE und SYSTEM. Die Ereignisprotokolle werden auch in Form von Einzeldateien angezeigt; zum Beispiel AppEvent.evt ist das Anwendungsprotokoll, SecEvent.evt ist das Sicherheitsprotokoll und SysEvent.evt ist das Systemprotokoll. Die Ruhezustandsdatei schließlich ist Hiberfil.sys.
Abbildung 1 Anzeige der verarbeitbaren Dateien durch PageDefrag
Abbildung 1 Anzeige der verarbeitbaren Dateien durch PageDefrag
Neben jedem Dateinamen befindet sich eine Clusterspalte, die anzeigt, wie viele Cluster auf dem Datenträger der Datei zugeordnet sind, und sowie Fragmentspalte, die anzeigt, wie viele Dateifragmente auf dem Datenträger vorliegen. Aufgrund dieser Daten können Sie entscheiden, ob die Dateien eine Defragmentierung benötigen.
Sie haben zwei Möglichkeiten: Sie können die Dateien beim nächsten Hochfahren oder bei jedem Hochfahren defragmentieren. Es dürfte ausreichen, sie einfach beim nächsten Hochfahren zu defragmentieren, es sei denn, die Dateien werden sehr häufig verwendet oder der PC fungiert als Server oder anderes Gerät, das nur selten neu gestartet wird. Sie können auch einen Countdown aktivieren, damit Sie Zeit haben, die Defragmentierung beim PC-Start abzubrechen.
Beim nächsten Neustart des Computers wird dann der normale chkdsk-Befehl ausgeführt, und danach tritt PageDefrag in Aktion. Dateien, die bereits in zusammenhängenden Clustern organisiert sind, werden übersprungen. Die fragmentierten Dateien werden nacheinander optimiert. Das Programm zeigt den Namen jedes Elements, das defragmentiert werden soll, an, meldet, ob die Defragmentierung erfolgreich war, und listet die Anzahl der Cluster auf, die der Datei vor und nach der Defragmentierung zugeordnet sind.
Es kann vorkommen, dass PageDefrag eine Datei nicht optimieren kann, wenn der PC zu wenig Speicherplatz besitzt oder der freie Speicherplatz selbst zu stark fragmentiert ist. In diesen Fällen müssen Sie zunächst mehr Speicherplatz freigeben und ein in Windows integriertes Defragmentierungsprogramm ausführen, um den freien Speicherplatz zu optimieren. Versuchen Sie es dann erneut mit PageDefrag.
PageDefrag läuft gewöhnlich schnell, da es nur eine kleine Anzahl Dateien bearbeitet. Wenn die Dateien jedoch stark fragmentiert sind, kann der vollständige Durchlauf eine Weile dauern, zumindest beim ersten Mal. Nachdem PageDefrag seine Arbeit beendet hat, wird Windows normal geladen. Sie können dann das Programm wieder öffnen, um die Bestätigung zu erhalten, dass keine Dateien mehr fragmentiert sind.
Sie können PageDefrag nichtinteraktiv über die Befehlszeile ausführen oder durch ein Skript mithilfe der Optionen -e (beim Starten defragmentieren), -o (einmal defragmentieren), -n (nie defragmentieren) und -t (Countdown in Sekunden für pagedfrg.exe).
Wenn Sie mehr erfahren und das Programm herunterladen möchten, dann besuchen Sie microsoft.com/technet/sysinternals/FileAndDisk/PageDefrag.mspx.

Lance Whitney ist IT-Berater, Schulungsleiter und Autor technischer Artikel. Whitney hat sich intensiv mit dem Optimieren von Windows-Arbeitsstationen und -Servern beschäftigt. Er ist von Haus aus Journalist und hat vor etwa 15 Jahren den Sprung in das kalte Wasser der IT-Welt getan.


 The Cable Guy: Starke und schwache Hosts
The Cable Guy
Starke und schwache Hosts
Joseph Davies

Eine immer gebräuchlichere Konfiguration für Netzwerkhosts ist die Vernetzung mit mehreren Netzwerkschnittstellen. Ein mehrfach vernetzter Host bietet verbesserte Konnektivität, weil eine Verbindung zu mehreren Netzwerken gleichzeitig hergestellt werden kann, wie z. B. zu einem Intranet oder dem Internet. Weil sie aber sowohl mit einem Intranet als auch mit dem
Internet verbunden sein können, können Dienste, die auf mehrfach vernetzten Hosts ausgeführt werden, für Angriffe anfällig sein. Als Beitrag zur Verhinderung von Angriffen, und um eine Vorstellung davon zu vermitteln, wie IP-Datenverkehr für einen mehrfach vernetzten Host verarbeitet wird, werde ich im Folgenden die Modelle des schwachen und starken Hosts bei mehrfach vernetzten Hosts untersuchen und beschreiben, wie diese Modelle unter Windows® unterstützt werden.
RFC 1122 ist die Spezifikation, welche die zwei Modelle für einen mehrfach vernetzten Host beschreibt, der sich nicht als Router verhält, und nur Unicast-IP-Datenverkehr sendet und erhält. Die entsprechenden Modelle werden als starker Host bzw. schwacher Host bezeichnet und geben an, ob gesendeter oder empfangener Unicastdatenverkehr der Netzwerkschnittstelle, auf der sich der Datenverkehr bewegt, zugeordnet werden muss. Anhand dieser Modelle wird bestimmt, wie ein Host Pakete sendet und empfängt. Sie haben zudem Auswirkungen auf die Sicherheitsrisiken für Dienste, die auf dem Host ausgeführt werden.
Diese Modelle wurden für IPv4 definiert, gelten aber auch für IPv6. Ein Beispiel für einen mehrfach vernetzten Host unter IPv6 ist ein Computer, der sowohl IPv4 als auch IPv6 verwendet und über einen Netzwerkadapter mit einem Intranet und einer IPv6-Tunnelschnittstelle verbunden ist.

Schwache Hosts
Ein schwacher Host kann IP-Pakete (IPv4 oder IPv6) über eine Schnittstelle senden, der die Quell-IP-Adresse des gesendeten Pakets nicht zugewiesen ist. Das ist das Sendeverhalten eines schwachen Hosts. Ein solcher Host kann zudem Pakete an einer Schnittstelle empfangen, der die Ziel-IP-Adresse des empfangenen Pakets nicht zugewiesen ist. Das ist das Empfangsverhalten eines schwachen Hosts.
Wenn Sie einen mehrfach vernetzten IP-Host mit mehreren Schnittstellen haben und das Empfangsverhalten eines schwachen Hosts an Schnittstellen aktivieren, kann dies den Host für Multihome-Angriffe anfällig machen. Abbildung 1 zeigt beispielsweise Host A, der sowohl mit dem Internet als auch einem Intranet eine Verbindung hergestellt hat. Der Internetschnittstelle von Host A ist die öffentliche IPv4-Adresse 131.107.89.211 zugewiesen, der Intranetschnittstelle die private IPv4-Adresse 192.168.17.48.
Abbildung 1 Beispiel eines mehrfach vernetzten Computers
Abbildung 1 Beispiel eines mehrfach vernetzten Computers
Ist das Sendeverhalten eines schwachen Hosts sowohl an der Internet- als auch der Intranetschnittstelle aktiviert, kann Host A Pakete von 131.107.89.211 und von 192.168.17.48 an seine Internetschnittstelle und an seine Intranetschnittstelle senden.
Ist das Empfangsverhalten eines schwachen Hosts aktiviert, kann Host A die folgenden Arten Pakete empfangen (vorausgesetzt, dass die Firewallregeln des Hosts den eingehenden Datenverkehr zulassen): Pakete an 131.107.89.211 an seiner Internetschnittstelle, Pakete an 192.168.17.48 an seiner Internetschnittstelle, Pakete an 131.107.89.211 an seiner Intranetschnittstelle, Pakete an 192.168.17.48 an seiner Intranetschnittstelle.
Wenn Sie das Empfangsverhalten eines schwachen Hosts aktiviert haben, kann ein Unbefugter im Internet Pakete an die Internetschnittstelle von Host A senden, um Dienste anzugreifen, die auf Host A ausgeführt werden und nur den Hosts im Intranet zur Verfügung stehen. Diese Art Angriff ist möglich, wenn die Internet-Infrastruktur das Weiterleiten von Paketen unterstützt, die für 192.168.17.48 an die Internetschnittstelle von Host A bestimmt sind. Sie können diese Art Angriff durch Festlegen der passenden Firewallregeln an der Internetschnittstelle von Host A verhindern. Trotzdem können aber die Dienste, die auf Host A ausgeführt werden und den Intranetclients zur Verfügung stehen, gefährdet sein.

Starke Hosts
Beim Modell des starken Hosts sind Sende- und Empfangsverhalten anders. Ein starker Host kann nur dann Pakete an eine Schnittstelle senden, wenn der Schnittstelle die Quell-IP-Adresse des Pakets, das gesendet werden soll, zugewiesen ist. Zudem kann er nur dann Pakete an einer Schnittstelle empfangen, wenn der Schnittstelle die Ziel-IP-Adresse des Pakets, das empfangen werden soll, zugewiesen ist.
Ist das Empfangsverhalten eines starken Hosts an der Internet- und Intranetschnittstelle aktiviert, kann Host A in Abbildung 1 nur Pakete von 131.107.89.211 an seine Internetschnittstelle senden, und Pakete von 192.168.17.48 an seine Intranetschnittstelle.
Ist das Empfangsverhalten eines starken Hosts aktiviert, kann Host A nur Pakete an 131.107.89.211 an seiner Internetschnittstelle und Pakete an 192.168.17.48 an seiner Intranetschnittstelle empfangen.
In Abbildung 1 weist das starke Hostmodell für Host A alle an der Internetschnittstelle eingehenden Pakete ab, die an 192.168.17.48 adressiert sind, ohne dass Sie Firewallregeln konfigurieren müssen, die wirksam die Intranetschnittstelle von Host A vom Internet isolieren.
Wenn Sie das starke Hostmodell auswählen, denken Sie daran, dass es sich auf einige Konnektivitätsarten auswirken könnte, die auf ein schwaches Hostverhalten ausgelegt sind. Ein Beispiel hierfür wäre ein Lastenausgleichssystem, bei dem das Empfangsverhalten eines schwachen Hosts aktiviert ist, sodass Pakete an allen Schnittstellen empfangen und intern an die passende Schnittstelle weitergeleitet werden können. Ein weiteres Beispiel wäre ein Host mit dem Sendeverhalten eines schwachen Hosts, der Datenverkehr von jeder Quelladresse an eine Schnittstelle senden soll, die eine schnelle Verbindung darstellt.

Senden und Empfangen beim starkem Host
Im Folgenden wird erläutert, wie der Sende- und Empfangsprozess auf einem generischen IPv4- oder IPv6-Host abläuft, wenn Sie ermöglichen, dass das Sende- und Empfangsverhalten eines starken Hosts auf Schnittstellenbasis aktiviert und deaktiviert wird.
Bei Paketen, die gesendet werden sollen, prüft IP zuerst, ob eine Quelladresse bereits angegeben worden ist. Wenn nicht, führt IP eine unbegrenzte Suche der Zieladresse des Pakets in der Routingtabelle durch. In einer unbegrenzten Suche werden alle Routen in der Routingtabelle berücksichtigt. Basierend auf der ausgewählten Zielroute bestimmt IP die Schnittstelle des nächsten Abschnitts (die Schnittstelle, die verwendet wird, um das Paket auf der Linkschicht abzulegen) und die Adresse des nächsten Abschnitts. Basierend auf der Schnittstelle des nächsten Abschnitts verwendet IP den in RFC 3484 definierten Adressauswahlprozess so, dass beste Quelladresse bestimmt werden kann. Jetzt hat IP alles, was es braucht, um das Paket zu senden: Quell- und Zieladresse, Schnittstelle des nächsten Abschnitts und Adresse des nächsten Abschnitts.
Wenn die Quelladresse angegeben wurde, ist die Quellschnittstelle bekannt. Der Quellschnittstelle wird die Quelladresse zugewiesen. IP prüft dann, ob das Sendeverhalten eines starken Hosts auf der Quellschnittstelle aktiviert ist.
Wenn es deaktiviert ist, führt IP eine unbegrenzte Suche der Zieladresse des Pakets in der Routingtabelle durch. Basierend auf der am besten passenden Zielroute bestimmt IP die Schnittstelle des nächsten Abschnitts und die Adresse des nächsten Abschnitts. IP hat die Quell- und Zieladresse, die Schnittstelle des nächsten Abschnitts und die Adresse des nächsten Abschnitts. Ist das Sendeverhalten eines starken Hosts an der Quellschnittstelle deaktiviert, ist die Schnittstelle des nächsten Abschnitts mit der Quellschnittstelle eventuell nicht identisch.
Wenn Sendeverhalten eines starken Hosts an der Quellschnittstelle aktiviert ist, führt IP eine eingeschränkte Suche der Zieladresse des Pakets in der Routingtabelle durch. Bei einer eingeschränkten Suche werden nur die Routen der Quellschnittstelle mit einer Schnittstelle des nächsten Abschnitts berücksichtigt. Basierend auf der ausgewählten Zielroute bestimmt IP die Adresse des nächsten Abschnitts. IP hat die Quell- und Zieladresse, die Schnittstelle des nächsten Abschnitts und die Adresse des nächsten Abschnitts. Bei aktiviertem Sendeverhalten eines starken Hosts an der Quellschnittstelle ist die Schnittstelle des nächsten Abschnitts immer mit der Quellschnittstelle identisch. Abbildung 2 zeigt den generischen IP-Sendeprozess.
Abbildung 2 Generischer IP-Sendeprozess
Abbildung 2 Generischer IP-Sendeprozess
Wurde die Quelladresse angegeben, kann die eingeschränkte Routensuche unter mehreren Routen in der Routingtabelle eine Route mit einer höheren Metrik auswählen, die dem Ziel am besten entspricht. Host A hat zum Beispiel in Abbildung 1 zwei Standardrouten. Eine verweist auf das Internet mit einer Metrik von 10, die zweite verweist auf das Intranet mit einer Metrik von 20. Starkes Hostverhalten ist an beiden LAN-Schnittstellen aktiviert.
Wenn die sendende Anwendung auf Host A keine Quelladresse angibt, ist das Ergebnis der Routensuche die Standardroute mit der niedrigsten Metrik. Host A sendet den Datenverkehr aus der Internetschnittstelle immer mit einer Quelladresse von 131.107.89.211. Wenn aber die sendende Anwendung auf Host A eine Quelladresse von 131.107.89.211 angibt, ist das Ergebnis der Suche die Standardroute für die Internetschnittstelle. Host A sendet den Datenverkehr aus der Internetschnittstelle. Wenn die sendende Anwendung auf Host A eine Quelladresse von 192.168.17.48 angibt, wählt die Suche die Standardroute für die Intranetschnittstelle aus. Host A sendet den Datenverkehr aus der Intranetschnittstelle. Mit der eingeschränkten Routensuche sendet IP Datenverkehr mit einer Quelladresse von 192.168.17.48 und verwendet die Standardroute mit der höheren Metrik.
Bei Datenempfang bestimmt IP zuerst, ob die Daten für den Host bestimmt sind. Wenn nicht, verwirft IP das Paket still, weil sich der Host nicht wie ein Router verhält. IP bestimmt dann, ob Empfangsverhalten eines starken Hosts an der Eingangsschnittstelle (an der das Paket empfangen wurde) aktiviert ist. Falls nein, verarbeitet IP das Paket. Falls ja, bestimmt IP, ob die Zieladresse im Paket der Eingangsschnittstelle zugewiesen ist. Falls ja, verarbeitet IP das Paket. Falls nicht, verwirft IP still das Paket. Abbildung 3 zeigt den generischen Empfangshostprozess.
Abbildung 3 Empfangshostprozess
Abbildung 3 Empfangshostprozess

Schwaches und starkes Hostverhalten in Windows
In Windows XP und Windows Server® 2003 gilt für alle IPv4-Schnittstellen das schwache Hostmodell zum Senden und Empfangen und für alle IPv6-Schnittstellen das starke Hostmodell zum Senden und Empfangen. Sie können dieses Verhalten nicht konfigurieren. Die nächste Generation des TCP/IP-Stacks in Windows Vista und Windows Server 2008 unterstützt an allen IPv4- und IPv6-Schnittstellen (außer der Teredo-Tunnelschnittstelle für ein hostspezifisches Teredo-Relay) standardmäßig Sende- und Empfangsverhalten eines starken Hosts. Abbildung 4 enthält die Befehle, die Sie verwenden können, um das Sende- und Empfangsverhalten für IPv4 und IPv6 auf Schnittstellenbasis zu konfigurieren. InterfaceNameOrIndex ist entweder der Name der Schnittstelle aus dem Netzwerkverbindungsordner oder dessen Schnittstellenindex. Sie können den Schnittstellenindex einer Schnittstelle über folgenden Befehl erhalten:
Figure 4 Befehle zum Konfigurieren von starkem und schwachem Sende- und Empfangsverhalten (Close Figure 4)

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
netsh interface ipv6 show interface
Schwaches und starkes Hostverhalten und RFC 3484
Für eine normierte Methode zur Auswahl von IPv6- und IPv4-Quell- und Zieladressen, mit denen der Verbindungsaufbau versucht wird, enthält RFC 3484 zwei Algorithmen. Der erste ist ein Algorithmus zur Quelladressauswahl, um die beste Quelladresse zur Verwendung mit einer Zieladresse auszuwählen. Der andere ist ein Algorithmus zur Zieladressauswahl, um die Liste möglicher Zieladressen nach Präferenz zu sortieren.
Starkes und schwaches Hostverhalten gilt bei der Bestimmung der Liste von Quelladresskandidaten für eine gegebene Zieladresse, was sich auch auf die sortierte Liste der Zieladressen auswirkt. Beim Sendeverhalten eines starken Hosts besteht die Liste von Quelladresskandidaten aus den Unicastadressen, die der sendenden Schnittstelle für das Ziel zugewiesen sind. Beim schwachen Host kann die Liste Adressen umfassen, die einer Schnittstelle zugewiesen sind, auf welcher das Sendeverhalten eines schwachen Host aktiviert ist. Weitere Informationen zur Quell- und Zieladressauswahl finden Sie unter microsoft.com/technet/community/columns/cableguy/cg0206.mspx.

Standardmäßig sind sowohl Sende- als auch Empfangsverhalten eines schwachen Hosts für alle IPv4- und IPv6-Schnittstellen deaktiviert (außer Teredo Tunnelschnittstelle für ein hostspezifisches Teredo-Relay).
Weitere Informationen zu RFC 3484 finden Sie in der Randleiste „Schwaches und starkes Hostverhalten und RFC 3484“.

Deaktivieren von Standardrouten für Remote Access VPN-Verbindungen
Ein Remote-Access-Client eines virtuellen privaten Netzwerks (VPN) ist ein weiteres Beispiel für einen mehrfach vernetzten Host. Obwohl er vielleicht nur eine einzige LAN-Schnittstelle mit Verbindung zum Internet hat, ist er bei Aufbau einer VPN-Verbindung mehrfach vernetzt. Er hat zwei Schnittstellen: Seine LAN-Schnittstelle und eine Schnittstelle für die VPN-Verbindung, die auf dem Point-to-Point-Protokoll (PPP) basiert. Er besitzt zudem zwei IPv4-Adressen: Eine vom Internetdienstanbieter zugewiesene IPv4-Adresse für die LAN-Schnittstelle und eine vom VPN-Server zugewiesene IPv4-Adresse für die PPP-Schnittstelle.
Um sicherzustellen, dass der VPN-Client Standardrouten-Datenverkehr über die VPN-Verbindung zum Intranet sendet, ändern Windows XP und Windows Server 2003 die IPv4-Routingtabelle durch Anheben der Metrik der vorhandenen Standardroute und durch Hinzufügen einer neuen Standardroute mit einer niedrigeren Metrik, welche die PPP-Schnittstelle verwendet. Dieses Standardverhalten macht für die Dauer der VPN-Verbindung die Orte im Intranet erreichbar und fast alle Orte im Internet unerreichbar. Es ist möglich, einen VPN-Client für geteiltes Tunneln zu konfigurieren, um gleichzeitigen Zugriff auf das Internet und Intranetspeicherorte zu erhalten. Hierfür wird die Standardroute für die VPN-Verbindung nicht hinzugefügt, während bestimmte Routen für Intranetziele hinzugefügt werden. Es besteht jedoch das Risiko, dass geteiltes Tunneln von VPN-Clients Pakete zwischen dem Internet und dem Intranet weiterleiten kann. Weitere Informationen finden Sie unter microsoft.com/technet/community/columns/cableguy/cg1003.mspx.
Das Standardverhalten von VPN-Clients in Windows XP und Windows Server 2003 war auf das Sendeverhalten eines schwachen Hosts ausgelegt. Die Routensuche verwendet immer die Standardroute für die VPN-Verbindung, weil sie die niedrigste Metrik hat. Wenn Sie jedoch das Sendeverhalten eines starken Hosts verwenden, hängt die Standardroute, die für gesendeten Datenverkehr verwendet wird, von der Quell-IP-Adresse im Paket ab. Die Routensuche für Datenverkehr von der vom ISP zugewiesenen IPv4-Adresse verwendet die Standardroute der LAN-Schnittstelle und macht alle Internet-Orte erreichbar. Die Routensuche für Datenverkehr von der vom VPN-Server zugewiesenen IPv4-Adresse verwendet die Standardroute der PPP-Schnittstelle und macht alle Intranet-Orte erreichbar. Wenn Sie das Sendeverhalten eines starken Hosts verwenden, besitzt der VPN-Client daher eine Konfiguration mit geteiltem Tunneln und gleichzeitig Zugriff auf das Internet und das Intranet. Das gilt sogar für Anwendungen, die keine Administratorberechtigung zur direkten Änderung der IPv4-Routingtabelle besitzen.
Damit beim starken Hostsenden verhindert wird, dass geteiltes Tunneln als Standardkonfiguration entsteht, deaktiviert der VPN-Client in Windows Vista® und Windows Server 2008 automatisch die Standardrouten von LAN-Schnittstellen, wenn die VPN-Verbindung hergestellt wird. Somit gibt es für die PPP-Schnittstelle nur eine einzige aktive Standardroute in der Routingtabelle. Damit wird auch gewährleistet, dass Anwendungen ohne Berechtigungen auf Administratorenebene kein geteiltes Tunneln durchführen können.
Da Daten vom VPN-Clientcomputer von der IPv4-Adresse stammen müssen, die vom VPN-Server zugewiesen wurde, ist eine bessere Isolierung des Intranet vom Internet möglich. Bei Trennung der VPN-Verbindung werden die deaktivierten Standardrouten aktiviert.
Sie können dies mit folgendem Befehl steuern:
netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled

Joseph Davies ist technischer Redakteur bei Microsoft und lehrt und schreibt seit 1992 über Themen im Bereich der Windows-Netzwerke. Er hat fünf Bücher für Microsoft Press verfasst und ist Autor des monatlich erscheinenden TechNet-Artikels „The Cable Guy“.


 Windows PowerShell: Sichern der Shell
Windows PowerShell
Sichern der Shell
Don Jones

Als sich das Windows PowerShell-Team zusammensetzte, um eine neue Shell zu erstellen und das Wort „Skripterstellung“ erwähnt wurde, war die Betroffenheit groß. Schließlich waren die vorherigen Microsoft-Bemühungen bei administrativen Skripts (ich meine damit VBScript) nicht gerade problemfrei. Ein
übermäßig freizügiges Ausführungsmodell in Verbindung mit der Neigung der meisten Benutzer, sich als Administratoren anzumelden, war ein Rezept für Katastrophen.
Die Teilnehmer bei dieser ersten Windows PowerShell™-Besprechung haben mit Sicherheit innerlich gefleht, nicht noch einmal hier durchzumüssen. Und sie wurden erhört. Microsoft hat seinen Ruf in Bezug auf die Sicherheit stark verbessert, was zum größten Teil darauf zurückzuführen ist, dass die Sicherheit zuerst und nicht erst später im Entwicklungszyklus des Produkts bedacht wurde. Diese Philosophie ist bei Windows PowerShell sehr offensichtlich.

Warum laufen Skripts nicht einfach?
Installieren Sie Windows PowerShell auf einem neuen Computer, und doppelklicken Sie auf eine .ps1-Datei: anstelle von Windows PowerShell öffnet sich der Editor. Das ist darauf zurückzuführen, dass die .ps1-Dateinamenerweiterung, also die für Windows PowerShell-Skripts verwendete Erweiterung, der Shell selbst nicht zugeordnet ist. Das heißt, Sie können ein Skript nicht einfach durch Doppelklicken ausführen. Die einzige Möglichkeit zum Ausführen eines Skripts besteht darin, Windows PowerShell zu öffnen, den Skriptnamen einzugeben und dann die Eingabetaste zu drücken.
Tatsächlich reicht auch das Eingeben des Skriptnamens nicht aus. Sie sehen in Abbildung 1, dass die Datei „Demo1.ps1“ im aktuellen Ordner vorhanden ist, doch das Eingeben von „demo1“ und das Drücken der Eingabetaste führt zu einem Fehler: „The term 'demo1' is not recognized as a cmdlet, function, operable program, or script file.“ (Der Begriff „demo1“ wird nicht als Cmdlet, Funktion, betriebsfähiges Programm oder Skriptdatei erkannt.) Woran liegt das? Schließlich ist die Datei doch vorhanden.
Abbildung 1 Um Befehlsaneignungen zu vermeiden, ist für Windows PowerShell ein Pfad zu Ihrem Skript erforderlich.
Abbildung 1 Um Befehlsaneignungen zu vermeiden, ist für Windows PowerShell ein Pfad zu Ihrem Skript erforderlich.
Dies ist ein weiterer Aspekt des Windows PowerShell-Sicherheitsmodells. Ein gebräuchlicher Trick böswilliger Benutzer bei anderen Shells ist die Erstellung eines Skripts mit dem gleichen Dateinamen wie ein integrierter Befehl. Wenn ein Benutzer beispielsweise Ihr Skript ausführen soll, könnten Sie es „Dir.ps1“ nennen und in einen Ordner stellen. Wenn Sie den Benutzer davon überzeugt haben, „Dir“ einzugeben und die Eingabetaste zu drücken, könnte Ihr Skript und nicht der vom Benutzer erwartete Dir-Befehl ausgeführt werden. Dieses Verfahren wird als Befehlsaneignung bezeichnet. In Windows PowerShell muss immer ein Pfad zu einem solchen Skript angegeben werden, sodass Windows PowerShell vor Befehlsaneignungen recht gut geschützt ist.
Das Ausführen von „demo1“ funktioniert nicht, da kein Pfad angegeben wurde. Im Gegensatz dazu wird „./demo1“ ausgeführt. Dies liegt daran, dass ein Pfad – der aktuelle Ordner – angegeben wurde. Es ist weniger wahrscheinlich, dass diese Befehlszeile mit einem integrierten Befehl verwechselt wird, da Sie nie einen Pfad eingeben würden, wenn Sie auf einen integrierten Befehl verweisen. Durch die Anforderung, einen Pfad anzugeben, vermeidet Windows PowerShell Befehlsaneignungen und Verwirrung darüber, was bei Drücken der Eingabetaste geschehen könnte.

Richtlinie für die Skriptausführung
Sie haben eine neu installierte Kopie von Windows PowerShell, Sie verwenden die richtige Syntax, und Sie versuchen, ein Skript auszuführen. Zu Ihrer Überraschung wird eine weitere Fehlermeldung angezeigt, in der Sie informiert werden, dass Windows PowerShell keine Skripts ausführen darf. Warum das? Willkommen bei der Ausführungsrichtlinie der Shell.
Sie können sich die aktuelle Ausführungsrichtlinie anzeigen lassen, indem Sie „Get-ExecutionPolicy“ in der Shell ausführen. Standardmäßig ist sie auf „Restricted“ (Eingeschränkt) eingestellt, sodass Skripts für niemanden und nie ausgeführt werden. Standardmäßig kann Windows PowerShell nur interaktiv statt zum Ausführen von Skripts verwendet werden. Sie können das Set-ExecutionPolicy-Cmdlet verwenden, um eine von vier möglichen Einstellungen der Ausführungsrichtlinie auszuwählen:
  • Bei „Restricted“ als Standardeinstellung werden keinerlei Skripts ausgeführt.
  • „AllSigned“ führt nur vertrauenswürdige Skripts aus (mehr dazu gleich).
  • „RemoteSigned“ führt lokale Skripts aus, ohne dass diese vertrauenswürdig sein müssen. Aus dem Internet heruntergeladene Skripts müssen jedoch vertrauenswürdig sein, bevor sie ausgeführt werden können.
  • „Unrestricted“ ermöglicht das Ausführen aller Skripts, selbst wenn diese nicht vertrauenswürdig sind.
Es empfiehlt sich als Mindesteinstellung auf einem Produktionscomputer „AllSigned“ zu wählen. „RemoteSigned“ ist nützlich in Entwicklungs- und Testumgebungen, aber nicht notwendig für den typischen Benutzer. Für „Unrestricted“ besteht eigentlich keinerlei Bedarf, und es wäre nicht schade, wenn diese übermäßig freizügige Einstellung in einer zukünftigen Version von Windows PowerShell ausgelassen würde.

Eine Frage des Vertrauens
Ihr Computer ist vorkonfiguriert, bestimmten Stamm-Zertifizierungsstellen (Certification Authorities, CAs), also Servern, die digitale Zertifikate ausstellen, zu vertrauen. Abbildung 2 zeigt die Systemsteuerungsanwendung „Internetoptionen“, in der als vertrauenswürdig eingestufte Stammzertifizierungsstellen aufgeführt sind. In Windows Vista® ist diese Liste ziemlich kurz und umfasst nur ein paar größere, gewerbliche Stammzertifizierungsstellen. Im Gegensatz dazu ist die Standardliste in Windows® XP groß und umfasst viele Stammzertifizierungsstellen, die relativ unbekannt sind. Wenn eine Stammzertifizierungsstelle in dieser Liste enthalten ist, wird damit im Grunde Folgendes ausgedrückt: Sie vertrauen dem Unternehmen, das die Stammzertifizierungsstelle betreibt, dass es beim Überprüfen der Identität einer Person gute Arbeit leistet, bevor dem Betreffenden ein digitales Zertifikat ausgestellt wird.
Wenn Sie ein digitales Zertifikat der Klasse III erhalten (allgemein als codesigniertes Zertifikat bezeichnet), muss die CA, bei der es sich um eine gewerbliche CA oder eine private CA in Ihrer Organisation handeln kann, Ihre Identität überprüfen. Dieses digitale Zertifikat entspricht praktisch einem elektronischen Ausweis. Bevor ich einen Ausweis erhalte, der angibt, dass ich Don Jones bin, muss die CA einige Schritte unternehmen, um sicherzustellen, dass das wirklich stimmt. Wenn Sie Ihr Zertifikat zum digitalen Signieren eines Windows PowerShell-Skripts verwenden, was mithilfe des Set-AuthenticodeSignature-Cmdlet geschehen kann, signieren Sie das Skript mit Ihrem Namen. Doch wenn Sie ein falsches Zertifikat mit dem Namen einer anderen Person erhalten können, können Sie ihr Skript mit deren Namen signieren. Aus diesem Grund ist es so wichtig, dass nur vertrauenswürdige CAs auf der Liste in Abbildung 2 enthalten sind.
Abbildung 2 In Windows Vista standardmäßig als vertrauenswürdig eingestufte Stammzertifizierungsstellen
Abbildung 2 In Windows Vista standardmäßig als vertrauenswürdig eingestufte Stammzertifizierungsstellen
Wenn Windows PowerShell prüft, ob ein Skript vertrauenswürdig ist, was bei der Einstellung „AllSigned“ und „RemoteSigned“ geschieht, werden drei Fragen gestellt:
  • Ist dieses Skript signiert? Wenn nicht, ist das Skript nicht vertrauenswürdig.
  • Ist die Signatur unversehrt? Das heißt, wurde das Skript geändert, seit es signiert wurde? Bei nicht unversehrter Signatur ist das Skript nicht vertrauenswürdig.
  • Wurde die Signatur mithilfe eines digitalen Zertifikats erstellt, das von einer vertrauenswürdigen Stammzertifizierungsstelle ausgestellt wurde? Wenn nicht, ist das Skript nicht vertrauenswürdig.
CMDLET des Monats: Set-AuthenticodeSignature
Set-AuthenticodeSignature ist der Schlüssel zum digitalen Signieren Ihrer Windows PowerShell-Skripts, sodass Sie die sicherste Ausführungsrichtlinie der Shell (AllSigned) verwenden können. Um dieses Cmdlet zu verwenden, beginnen Sie mit einem anderen (Get-ChildItem), das ein installiertes codesigniertes Zertifikat abruft:
$cert = Get-ChildItem –Path cert:\CurrentUser\my –codeSigningCert
Der Dateipfad muss durch einen Pfad ersetzt werden, der auf ein installiertes Zertifikat verweist. Alle installierten Zertifikate sind über das Laufwerk „cert:“ zugänglich. Nach Laden des Zertifikats wird es zum Signieren eines Skripts ausgeführt:
Set-AuthenticodeSignature MyScript.ps1
–cert $cert
Natürlich geben Sie den vollständigen Pfad zu Ihrer .ps1-Skriptdatei an. Die Shell fügt der Datei eine Signatursperre hinzu.

Wie verbessert Vertrauen die Sicherheit? Natürlich könnte ein Hacker ein potenziell schädliches Skript schreiben, es signieren und jemanden in Ihrer Umgebung überzeugen, es auszuführen. Da das Skript signiert wurde, wird es ausgeführt. Doch da es signiert wurde, können Sie mithilfe der Signatur die Identität des Autors feststellen und entsprechende Maßnahmen ergreifen (indem Sie beispielsweise die Strafverfolgungsbehörden einschalten). Der Betreffende müsste jedoch sehr dumm sein, ein schädliches Skript zu erstellen und es mit seinem Namen zu signieren!
Doch wenn ein böswilliger Benutzer in der Lage wäre, ein Zertifikat mit der Identität einer anderen Person zu erlangen (beispielsweise von einer CA, die nicht über einen guten Prozess zur Identitätsprüfung verfügt), könnte der eigentliche Schuldige nicht anhand der Signatur ermittelt werden. Daher sollten die Stammzertifizierungsstellen, denen Sie vertrauen, einen Identitätsprüfungsprozess einsetzen, den Sie als befriedigend empfinden.
Wenn Sie die Einstellung „AllSigned“ der Ausführungsrichtlinie verwenden, müssen Sie sogar selbst jedes von Ihnen produzierte Skript digital signieren, bevor es ausgeführt werden kann. Die Verwendung des Set-AuthenticodeSignature-Cmdlet ist recht einfach, kann sich jedoch dennoch recht mühsam gestalten. Dabei könnte Drittanbietersoftware hilfreich sein. Es ist empfehlenswert, einen Skripteditor oder eine visuelle Entwicklungsumgebung auszuwählen, die Ihre Skripts automatisch mit dem von Ihnen angegebenen Zertifikat signiert. Auf diese Weise ist die Verwendung von Signaturen transparent und erfordert keinen zusätzlichen Aufwand. Wenn Sie Vorschläge für Editoren und Entwicklungsumgebungen wünschen, die dies unterstützen, besuchen Sie einige Onlineforen für die Skripterstellung (beispielsweise ScriptingAnswers.com) und fragen nach, was andere Anhänger von Windows PowerShell verwenden.
Wenn Sie ein Zertifikat haben, können Sie auch folgenden Einzeiler zum Signieren aller Skripts an einem bestimmten Speicherort verwenden:
Get-Childitem *.ps1 | %{Set-AuthenticodeSignature $_.fullname $cert}

Zentral gesichert
Die Windows PowerShell-Ausführungsrichtlinie kann selbstverständlich auf jedem Computer für sich konfiguriert werden. Doch das ist keine gute Lösung für Unternehmensumgebungen. Stattdessen können Sie die Gruppenrichtlinie verwenden. (Die administrativen Vorlagen für Windows PowerShell stehen unter go.microsoft.com/fwlink/?LinkId=93675 als Download zur Verfügung.) Sichern Sie die Datei einfach in einem Gruppenrichtlinienobjekt (Group Policy Object, GPO), das sich auf Ihre ganze Domäne auswirkt, und verwenden Sie die Einstellung „Restricted“. So können Sie sichergehen, dass unabhängig davon, wo Windows PowerShell installiert ist, keine Skripts ausgeführt werden. Dann können Sie eine freizügigere Einstellung (etwa „AllSigned“) nur für die Computer verwenden, auf denen Skripts ausgeführt werden sollen (beispielsweise Ihre eigene Arbeitsstation).

Alternative Anmeldeinformationen
Im Gegensatz zu vorherigen administrativen Skriptsprachen für Windows kann Windows PowerShell sogar alternative Anmeldeinformationen auf sichere Weise behandeln. Das Get-WMIObject-Cmdlet hat beispielsweise einen -credential-Parameter, der es Ihnen ermöglicht, alternative Anmeldeinformationen für WMI-Remoteverbindungen anzugeben. Der Parameter akzeptiert einen Benutzernamen, aber kein Kennwort, wodurch verhindert wird, dass vertrauliche Kennwörter in einem klaren Textskript hart codiert werden. Wenn Sie den Benutzernamen angeben, werden Sie von Windows PowerShell stattdessen über ein Dialogfeld zur Kennworteingabe aufgefordert. Wenn Sie planen, ein solches Alternativkonto erneut zu verwenden, können Sie die Anmeldeinformationen mithilfe des Get-Credential-Cmdlet speichern:
$cred = Get-Credential DOMAIN\USER
Sie werden sofort zur Eingabe des Kennworts aufgefordert, und die endgültigen Anmeldeinformationen werden in der Variablen „$cred“ gespeichert. Die $cred-Variable kann dann beliebig oft an den -credential-Parameter übergeben werden. Sie können sogar das ConvertTo-SecureString- und das ConvertFrom-SecureString-Cmdlet verwenden, um die Anmeldeinformationen in eine verschlüsselte Zeichenfolge zu konvertieren oder eine zuvor verschlüsselte Zeichenfolge wieder in die Anmeldeinformationen zu konvertieren.
Das Problem dabei besteht darin, dass Ihr Verschlüsselungsschlüssel in einem Klartextskript gespeichert wird, was die Sicherheit völlig untergräbt. Stattdessen können Sie Ihrem Windows PowerShell-Profil den Aufruf „Get-Credential“ hinzufügen. Dann werden Sie beim Ausführen von Windows PowerShell sofort zur Eingabe eines Benutzernamens und Kennworts aufgefordert, die dann in einer $cred-Variablen gespeichert werden. Damit steht Ihnen immer eine $cred-Variable in der Shell zur Verfügung, die ein Domänenadministratorkonto repräsentiert. Diese Anmeldeinformationen müssen Sie überdies nirgendwo speichern, da sie jedes Mal beim Öffnen der Shell neu erstellt werden.

Sicherheit als Standard
Standardmäßig wird Windows PowerShell mit den sichersten Einstellungen installiert und konfiguriert, die man sich für eine administrative Shell, die die Skripterstellung unterstützt, vorstellen kann. Wenn Sie diese Einstellungen nicht ändern, bietet Windows PowerShell höchstmögliche Sicherheit. Das heißt, alles, was die Sicherheit in Windows PowerShell verringert, ist das Ergebnis Ihrer Entscheidungen und Aktionen. Bevor Sie also Standardeinstellungen ändern (und beispielsweise die Zuordnungen von Dateierweiterungen neu konfigurieren, die Ausführungsrichtlinie ändern und so weiter), sollten Sie die Auswirkungen Ihrer Änderungen genauestens prüfen.

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!: Ist diese Beziehung noch zu retten?
Hey, Scripting Guy!
Ist diese Beziehung noch zu retten?
The Microsoft Scripting Guys
Laden Sie den Code für diesen Artikel herunter: HeyScriptingGuy2007_09.exe (150KB)

Beziehungen sind wichtig. Aber wieso sollten sich ausgerechnet die Scripting Guys mit der Bedeutung von Beziehungen auskennen? Nun ja, zum einen sehen wir viel fern, und im Fernsehen erzählen sie immer, dass Beziehungen wichtig sind.
Und das nicht nur in Seifenopern oder den Fernsehfilmen während der Woche. So gibt es zum Beispiel eine Werbung eines Kreditbüros für Barkredite, die Menschen ermuntert, ihr Geschäft zu beehren. Machen die das etwa, weil sie bereit sind, an Menschen Geld zu verleihen, die sonst wahrscheinlich kein Darlehen bekämen? Nein. Oder weil sie Ihnen für dieses Darlehen so gut wie 900 % Zinsen jährlich berechnen? Selbstverständlich nicht. Sie machen es, weil dieses Kreditunternehmen eine persönliche Beziehung mit Ihnen aufbaut. Wie es in ihrer Werbung so schön heißt: „Beziehungen sind wichtig“.
Hinweis: Ja, uns kommen die Tränen, und wir schämen uns nicht dafür. Schließlich müsste man recht kalt und abgebrüht sein, um nicht schon beim Gedanken an die tiefen, dauerhaften Bande, die einen Menschen mit seinem Kreditunternehmen verbinden, ein wenig aufgewühlt zu werden.
Selbstverständlich wissen wir, was Sie jetzt denken: „Mensch, wenn schon Beziehungen zu Kreditunternehmen so wichtig sind, dann müssen sie ja Leuten, die Datenbankskripts schreiben, wirklich viel bedeuten.“ So ist es tatsächlich: Wenn Sie Datenbankskripts schreiben, sollten Ihnen Beziehungen wichtig sein. Aber leider ist das nicht jedem Skriptersteller bewusst. Kein Problem, denn im Artikel dieses Monats werden wir das jedem klarmachen.
Wir wissen, dass viele Systemadministratoren Datenbanken verwenden, oft als Möglichkeit, ihren Hardwarebestand zu überwachen. Das Problem ist, dass viele dieser Datenbanken nicht gerade ideal eingerichtet wurden. Nehmen Sie zum Beispiel einmal an, dass Sie eine Datenbank benötigen, die alle in Ihrem Netzwerk vorhandenen Laufwerke überwacht. Wenn Sie kein Hintergrundwissen im Entwerfen von Datenbanken haben, ist es sehr wahrscheinlich, dass Sie eine Eintabellendatenbank erstellen werden (siehe Abbildung 1).
Abbildung 1 Eintabellendatenbank
Abbildung 1 Eintabellendatenbank
Wie Sie sehen, ist das ein sehr einfacher Entwurf: Es gibt ein Feld für den Computernamen und einige Ja/Nein-Felder, die verwendet werden, um anzuzeigen, ob ein Computer ein Laufwerk C: und ein Laufwerk D: hat. Das ist schon alles. Knapp, klar und auf den Punkt.
Was ist also falsch an dieser Datenbank? Um aufrichtig zu sein: so ziemlich alles. Wenn Sie sicher sein können, dass keiner Ihrer Computer mehr als zwei Laufwerke hat, wird dieser Entwurf einigermaßen funktionieren. Was geschieht jedoch, wenn Sie einen Computer haben, der drei Laufwerke hat? In diesem Fall müssen Sie ein weiteres Feld für Laufwerk E hinzufügen. Was machen Sie aber bei einem Computer mit elf Laufwerken? Was ist, wenn Sie die Eigenschaften jedes Laufwerks aufzeichnen wollen? Nehmen Sie zum Beispiel einmal an, dass Sie die Gesamtkapazität eines jeden Laufwerks aufzeichnen möchten. In diesem Fall benötigen Sie das Feld „Laufwerk_C_Größe“. Und das Feld „Laufwerk_D_Größe“. Und ein Feld „Laufwerk_E_Größe“ und so weiter und so fort. (Womöglich möchten Sie auch den verfügbaren Speicherplatz überwachen, die Art der Datenträgerverbindung, ob Datenträgerkontingente auf dem Laufwerk aktiviert worden sind und so weiter).
Hier ist eine Faustregel zu bedenken: Wenn eine Entität von einer Elementart mehr als eines besitzen kann (zum Beispiel kann ein Computer mehr als ein Laufwerk haben), sind Flatfiletabellen nicht sehr gut geeignet. Im Fall von Laufwerken könnten Sie denken, dass Sie damit durchkommen. Schließlich werden Sie nur eine begrenzte Anzahl von Laufwerken an einem Computer angeschlossen haben. Aber nehmen Sie einmal an, dass Sie Ihre Datenbank abfragen und eine Liste aller Laufwerke erhalten wollen, die 100 GB oder größer sind. Wie würden Sie vorgehen, um so etwas zu machen? Nun, Sie müssten zuerst nach 100-GB-Laufwerken im Feld „Laufwerk_C_Größe“ suchen, dann das gleiche im Feld „Laufwerk_D_Größe“, dann das Feld „Laufwerk_E_Größe“... Alles in allem kein sehr effizienter oder wirksamer Ansatz. Aber was ist die Alternative? Wenn Sie keine Flatfiledatenbank verwenden können, was dann?
Die Antwort ist ganz einfach: eine relationale Datenbank. Relationale Datenbanken sind unter anderem auf die Verarbeitung von 1:n-Beziehungen ausgelegt (z. B. Computer mit vielen Laufwerken). Zur Verwendung einer relationalen Datenbank müssen Sie keine neuen Technologien kaufen. Wenn Sie eine beliebige Datenbank haben (Microsoft® Access™, SQL-Server™, Oracle usw.), stehen die Chancen gut, dass Sie bereits eine relationale Datenbank haben. Sie müssen nur zwei Dinge wissen: 1) Wie in dieser Datenbank eine Beziehung zwischen zwei Tabellen aufgestellt wird. 2) Wie ein Skript geschrieben wird, das diese Beziehung nutzen kann.
Hinweis: Den Fernsehsendungen nach sollte man nie versuchen, eine Beziehung auszunutzen. Aber hier ist es anders.
Diese Rubrik heißt nicht „Hey, Datenbankdesign-Guy!“. Deshalb werden wir nicht viel Zeit mit Diskussionen über den Datenbankentwurf verbringen. Stattdessen werden wir Ihnen nur einen sehr einfachen relationalen Datenbankentwurf zeigen, der uns ermöglicht, das Schreiben relationaler Abfragen zu besprechen. In dieser Datenbank haben wir zwei Tabellen. Die erste heißt „Computer“, und besteht aus zwei Feldern: ComputerName und SerialNumber. Im Feld „ComputerName“ werden wir den Computernamen speichern, und im Feld „SerialNumber“ speichern wir die Seriennummer.
Wo geben wir dann unsere Laufwerkinformationen ein? Diese kommen in unsere zweite Tabelle, die „DiskDrives“ heißt. Sie enthält drei einfache Felder: SerialNumber, DriveLetter und DriveSize.
Das Hauptfeld hier ist „SerialNumber“. Wenn dieser Feldname vertraut klingt, dann ist das auch so gewollt: Wir haben genau das gleiche Feld in der Tabelle „Computer“. Das ist kein Zufall. Um eine Beziehung zwischen diesen zwei Tabellen einzurichten, müssen wir ein Feld haben, das in beiden erscheint. So können wir feststellen, welche Laufwerke zu welchen Computern gehören.
Weshalb haben wir die zwei Tabellen über die Seriennummer und nicht den Computernamen verknüpft? Dafür gibt es einen guten Grund: Computernamen können sich ändern (und das geschieht oft). Seriennummern normalerweise nicht.
Aber genug geredet. Sehen wir uns Abbildung 2 an, ein Skript, das diese zwei Tabellen durchsuchen, und eine Liste der Laufwerke abrufen kann, die zu jedem Computer gehören. Abbildung 3 zeigt die Arten von Daten, welche dieses Skript ausgibt.
Figure 3 Suchergebnisse (Close Figure 3)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-01
E:

atl-ws-02
C:

atl-ws-02
D:
Figure 2 Durchsuchen der Tabellen (Close Figure 2)
Const adOpenStatic = 3
Const adLockOptimistic = 3

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open _
 "Provider = Microsoft.Jet.OLEDB.4.0; " & _
 "Data Source = c:\scripts\test.mdb"

objRecordSet.Open "SELECT Computers.*, DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber " & _
 "ORDER BY Computers.ComputerName, DiskDrives.Drive", objConnection, adOpenStatic, _
  adLockOptimistic

objRecordSet.MoveFirst

Do Until objRecordset.EOF
 Wscript.Echo objRecordset.Fields.Item("ComputerName")
 Wscript.Echo objRecordset.Fields.Item("Drive")
 Wscript.Echo
 objRecordset.MoveNext
Loop

objRecordSet.Close
objConnection.Close
Grundlegendes zur Herstellung einer Verbindung und Arbeit mit Datenbanken werden in dieser Ausgabe nicht behandelt. Wenn Sie beim Datenbankskripting neu sind, sehen Sie sich am besten den Scripting Guys-Webcast „Datenbankskripting für Systemadministratoren“ an (go.microsoft.com/fwlink/?LinkId=22089). In diesem Beispiel wird lediglich eine Verbindung zu einer Access-Datenbank (C:\Scripts\Test.mdb) hergestellt und mit relationalen Tabellen namens „Computer“ und „DiskDrives“ gearbeitet. So viel sollte eigentlich aus dem Skript klar sein.
Es ist noch zu erwähnen, dass Sie eine kleine Änderung vornehmen müssen, damit es mit Access 2007 funktioniert: Es ist wichtig, den Anbieter von Microsoft.Jet.OLEDB.4.0 in Microsoft.ACE.OLEDB.12.0 zu ändern, und zwar folgendermaßen:
objConnection.Open _
 "Provider = Microsoft.ACE.OLEDB.12.0; " & _
 "Data Source = c:\scripts\test.accdb"
Das ist alles. Stattdessen werden wir uns auf die SQL-Abfrage konzentrieren, die Daten von unseren zwei Tabellen abruft:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Kompliziert? Vielleicht ein wenig. Sehen wir also zu, ob wir dies nicht ein wenig unterteilen können, um es leichter verdaulich zu machen.
Der erste Teil unserer Abfrage ist tatsächlich ziemlich leicht. Wir wollen alle Felder in beiden Tabellen auswählen: Computer und DiskDrives. Deshalb nur so viel von SQL:
SELECT Computers.*, DiskDrives.*
Das Sternchen, versteht sich, ist einfach ein Platzhalterzeichen, das „alles“ bedeutet.
Wenn Sie schon einmal SQL-Abfragen geschrieben haben (oder wenn Sie Windows® Management Instrumentation oder WMI-Abfragen geschrieben haben, die eine Teilmenge der SQL-Abfragesprache verwenden), kennen Sie die Routine: Nach dem Angeben der Elemente, die Sie auswählen wollen, geben Sie an, von wo aus Sie diese Elemente auswählen wollen. Daher der nächste Teil der Abfrage:
FROM Computers INNER JOIN DiskDrives ON Computers.SerialNumber = DiskDrives.SerialNumber
Lassen Sie sich dadurch nicht aus dem Konzept bringen. Ja, es ist komplizierter als eine typische FROM-Anweisung, aber aus gutem Grund. In einer typischen SQL-Abfrage werden nur Daten aus einer Tabelle ausgewählt; diesmal wählen wir Daten aus zwei Tabellen gleichzeitig aus.
Sehen wir uns die Syntax näher an und schauen, wie es funktioniert. Wie Sie sehen, soll das Skript Daten aus den Tabellen „Computer“ und „DiskDrives“ auswählen. Beachten Sie aber, dass nicht das Wort „and“ sondern „INNER JOIN“ verwendet wird. Dieser Begriff definiert die Art der Beziehung und beschreibt seinerseits, wie Informationen von zwei separaten Tabellen in einem einzigen Datensatz verknüpft werden. (Es gibt weitere Verknüpfungstypen; diese werden gleich erörtert.)
Wie bereits angedeutet, liegt es an uns, die Art der Beziehung anzugeben, die zwischen den Tabellen existiert. Das wird durch folgendes Codeelement erreicht:
ON Computers.SerialNumber = DiskDrives.SerialNumber
Hier wird definiert, wie die Tabellen verknüpft sind. Jedes Mal, wenn das Feld „SerialNumber“ in der Tabelle „Computer“ dem Feld „SerialNumber“ in der Tabelle „DiskDrives“ entspricht, werden Datensätze zusammen gruppiert. Was wäre, wenn wir ein anderes Feld (etwa „ComputerName“) als Verknüpfungsfeld verwendet hätten? Der Code würde dann so aussehen:
ON Computers.ComputerName = DiskDrives.ComputerName
Die beiden Felder müssen nicht den gleichen Namen haben, sie müssen nur die gleichen Daten enthalten. Die Verwendung desselben Namens erleichtert die Identifizierung des relationalen Felds. Dabei gibt es einen kleinen Haken: Weil wir zwei Felder mit dem gleichen Namen haben, muss immer die Syntax „TabellenName.FeldName“ verwendet werden, wenn wir uns auf eines dieser Felder beziehen. Der Code muss daher folgendermaßen aussehen: Wscript.Echo obj- Recordset.Fields.Item("Computers.SerialNumber").
Das ist wirklich alles, was wir benötigen. Die restliche Abfrage sortiert lediglich die Daten, zuerst nach Computernamen und dann nach Laufwerk:
ORDER BY ComputerName, Drive
Das ist doch ganz einfach oder nicht? Hier müssen wir kurz innehalten und über Verknüpfungen sprechen. Warum haben wir in unserer Abfrage eine innere Verknüpfung verwendet? Die Antwort ist ganz einfach: Eine innere Verknüpfung gibt nur Datensätze an, die passende Werte in jeder Tabelle haben. Anders gesagt: Wenn beispielsweise die Seriennummer 121989 sowohl in der Tabelle „Computer“ als auch in der Tabelle „DiskDrives“ erscheint, werden die entsprechenden Datensätze angegeben. (Selbstverständlich kann die Seriennummer nicht irgendwo erscheinen. Sie muss im Feld „SerialNumber“ enthalten sein). Ist dies verständlich? Gut.
Nehmen Sie jetzt an, dass wir einen Computer haben, der die Seriennummer 121989 hat, aber es gibt keine Laufwerke mit dieser Seriennummer. In diesem Fall werden keine Daten für den Computer mit Seriennummer 121989 angegeben. Das kommt daher, dass eine innere Verknüpfung nur dann Informationen ausgibt, wenn ein Datensatz passende Werte in jeder der verknüpften Tabellen hat.
Anders gesagt gibt eine Abfrage mit innerer Verknüpfung alle Computer aus, die Festplatten haben, jedoch keine Computer ohne Festplatte und keine Festplatten, die nicht in einem Computer installiert sind. In den meisten Fällen ist diese Abfrage geeignet. Aber was ist, wenn Sie eine Liste der Computer wollen, die keine Festplatten haben, oder der Festplatten, die nicht in Computern installiert sind? Was dann?
Dafür ist die äußere Verknüpfung da. (Ach so, dafür ist also die äußere Verknüpfung da!) Vorerst ist dazu nur zu sagen, dass es nur zwei verschiedene Typen äußerer Verknüpfung gibt: linke und rechte. In dieser Datenbank gibt es zwei Tabellen: Computer (als linke Tabelle angesehen, weil sie die Haupttabelle ist) und DiskDrives (als rechte Tabelle angesehen, weil sie nicht die Haupttabelle ist). Angenommen, die Abfrage soll alle Computer umfassen, auch die, in denen keine Laufwerke installiert sind. In diesem Fall wird die Syntax „LEFT OUTER JOIN“ verwendet und eine Abfrage, die folgendermaßen aussieht:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "LEFT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Wie Sie wahrscheinlich schon herausgefunden haben, ruft eine linke äußere Verknüpfung alle Datensätze in der linken Tabelle ab, selbst wenn es keine zugehörigen Datensätze in der rechten Tabelle gibt. Deshalb erhalten wir zwar alle Computer, aber von der rechten Tabelle (DiskDrives) nur Datensätze, die einem Computer zugeordnet sind.
Alternativ kann beispielsweise eine Liste aller Laufwerke abgerufen werden, einschließlich derer, die nicht in einem Computer installiert sind. Weil die Tabelle „DiskDrives“ die rechte Tabelle in der Beziehung ist, wird die Syntax „RIGHT OUTER JOIN“ verwendet:
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "RIGHT OUTER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "ORDER BY ComputerName, Drive", _
 objConnection, adOpenStatic, adLockOptimistic
Von Rechts wegen sollte die Tabelle „Computer“ statt als linke Tabelle als „Ehemanntabelle“ in der Beziehung bezeichnet werden. Wie einige Scripting Guys aus schmerzhafter Erfahrung wissen, ist der Ehemann nie die rechte Entität in einer Beziehung.
Mit der rechten äußeren Verknüpfung erhalten wir alle Datensätze in der rechten Tabelle (alle Laufwerke), aber nur Computer (Datensätze in der linken Tabelle), die einem Laufwerk zugeordnet sind.
Dies dürfte vielen im Augenblick nicht logisch erscheinen, aber wenn Sie damit ein wenig herumexperimentieren, werden Sie sehen, wie es funktioniert. Wir stellen hier eine Beispieldatenbank zum Ausprobieren bereit: microsoft.com/technet/scriptcenter/resources/tnmag/archive.mspx.
Es ist wichtig zu erwähnen, dass Sie bei jeder Verwendung einer äußeren Verknüpfung mindestens auch die Zeile „On Error Resume Next“ als erste Zeile in Ihr Skript aufnehmen sollten. Warum? Nun, angenommen, es wird eine linke äußere Verknüpfung verwendet. In diesem Fall ist es möglich, einige Computer zu erhalten, die keine Festplatten installiert haben. Das ist schön (schließlich wollen wir genau das erhalten), jedenfalls bis diese Codezeile erscheint, die den Laufwerkbuchstaben angibt:
Wscript.Echo objRecordset.Fields.Item("Drive")
Weil für diesen bestimmten Computer kein Laufwerkfeld existiert, wird das Skript jäh zum Stillstand kommen:
C:\Scripts\database.vbs(22, 9) Microsoft VBScript runtime error: Type mismatch
Implementieren wir dagegen „On Error Resume Next“, kann das Skript die Tatsache ignorieren, dass ein Computer keine Laufwerke hat, und fortfahren. Alternativ könnten Sie Code dieser Art einsetzen, um den Wert des Laufwerkfelds zu prüfen und die passende Aktion vorzunehmen:
If IsNull(objRecordset.Fields.Item("Drive")) _Then
    Wscript.Echo "No disk drives installed."
Else
    Wscript.Echo _
      objRecordset.Fields.Item("Drive")
End If
Mit diesem Code wird geprüft, ob wir einen Null-Wert im Gegensatz zu einem eigentlichen Laufwerkbuchstaben erhalten. Wenn ja, bedeutet dies „Keine Laufwerke installiert“. Wird kein Null-Wert angezeigt wird, wird der Wert im Laufwerkfeld angegeben. Das Ergebnis wird, wie in Abbildung 4 gezeigt, ausgegeben.
Figure 4 Anzeigen geeigneter Ergebnisse (Close Figure 4)
atl-ws-01
C:

atl-ws-01
D:

atl-ws-02
C:

atl-ws-02
D:

alt-ws-03
No disk drives installed.
Sehen wir uns, ohne zu viele Erklärungen, ein paar weitere Abfragen an. Hier zum Beispiel eine Abfrage mit innerer Verknüpfung, die eine Liste von Computern und deren Laufwerken ausgibt, sofern diese größer als 50 GB sind (es wird hier vorausgesetzt, dass Laufwerkgrößen in Gigabyte gespeichert sind):
objRecordSet.Open "SELECT Computers.*, " & _
 "DiskDrives.* FROM Computers " & _
 "INNER JOIN DiskDrives ON " & _
 "Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "WHERE DriveSize > 50 " & _
 "ORDER BY Computers.ComputerName, " & _
 "DiskDrives.Drive", objConnection, _
 adOpenStatic, adLockOptimistic
Wie Sie sehen, haben wir nichts weiter gemacht, als eine Standard-WHERE-Klausel zur ursprünglichen Abfrage hinzuzufügen:
WHERE DriveSize > 50
Was ist, wenn wir nur Informationen zu Laufwerk E auf Computern haben möchten? Kein Problem, man muss einfach die passende WHERE-Klausel hinzufügen:
WHERE Drive = 'E:'
Und hier ist eine etwas kompliziertere Abfrage, die eine Zusammenstellung der Computer ausgibt, auf denen keine Laufwerke installiert sind:
objRecordSet.Open _
 "SELECT Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "FROM Computers LEFT JOIN DiskDrives " & _
 "ON Computers.SerialNumber = " & _
 "DiskDrives.SerialNumber " & _
 "GROUP BY Computers.ComputerName, " & _
 "DiskDrives.Drive " & _
 "HAVING (DiskDrives.Drive) Is Null " & _
 "ORDER BY Computers.ComputerName", _
 objConnection, adOpenStatic, adLockOptimistic
Wie gesagt, dies ist ein wenig komplizierter, und da wir nicht mehr viel Platz haben, erklären wir jetzt nicht, wie es funktioniert. Aber es funktioniert, das ist am wichtigsten.
Nun, vielleicht am zweitwichtigsten. Wie wir schon mehrmals gezeigt haben, sind Beziehungen das, was wirklich wichtig ist. Was nicht bedeutet, dass Beziehungen nicht schief gehen können. Wie heißt es doch am Ende von Woody Allens „Annie Hall“: „Eine Beziehung ist wie ein Hai; sie muss sich ständig weiter bewegen, sonst stirbt sie. Was wir hier vor uns haben ist ein toter Hai“. Ach, wenn Woody doch etwas von inneren und äußeren Verknüpfungen gewusst hätte! Mit diesen Abfrageverfahren werden Beziehungen immer erfolgreich!

The Microsoft Scripting Guys arbeiten für (und sind Angestellte von) Microsoft. 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.


 Exchange Fragen und Antworten: Setup, Nachrichtenjournale, Speicheroptionen und mehr
Exchange Fragen und Antworten
Setup, Nachrichtenjournale, Speicheroptionen und mehr
KC Lemson and Nino Bilic

F: Ich möchte wissen, ob ich beim Ausführen des Setups für Exchange Server 2007 die Voraussetzungsprüfung umgehen kann. Ich will nicht alle Probleme beheben, die mir in der Voraussetzungsprüfung angezeigt werden, ich will einfach nur das Setup ausführen!

A: Die kurze Antwort lautet: Nein. Probleme, die in der Voraussetzungsprüfung angezeigt werden und verhindern, dass das Setup fortgesetzt werden kann, müssen behoben werden, da ansonsten Ihr Exchange-Dienst über kurz oder lang nicht erwartungsgemäß funktioniert.
Einige Administratoren haben versucht, die Datei „ExBPA.PreReqs.xml“ (die Datei, die die Liste der Setupvoraussetzungen für Exchange 2007 enthält) zu bearbeiten und die Prüfungen zu entfernen, die die Blockierung des Setups verursachen. Das funktioniert aber nicht, weil die XML-Datei digital signiert ist und jede Änderung an ihrem Inhalt die Signatur ungültig macht.
Hierdurch soll verhindert werden, dass Sie ein Programm installieren, das anschließend nicht richtig funktioniert. Wir haben Exchange 2007 in verschiedenen Umgebungen getestet und dabei herausgefunden, dass einige Konfigurationen und Einstellungen besser als andere funktionieren, während andere echte Probleme darstellen können. Voraussetzungen sind dazu da, sicherzustellen, dass Ihr Setup basierend auf unseren Erfahrungen und Tests die bestmögliche Chance hat, zu gelingen.
Wenn Sie in Verbindung mit der Voraussetzungsprüfung auf ein echtes Problem stoßen und hierdurch das Setup in Ihrer Umgebung nicht ausgeführt werden kann, sollten Sie sich an den Exchange-Support wenden.

F: Wo finde ich das Setupprotokoll? Es ist nicht im Stammverzeichnis von Laufwerk C.

A: Alle Setupprotokolle werden jetzt im Verzeichnis „%SYSTEMDRIVE%\ExchangeSetupLogs“ gespeichert, also bei den meisten Installation in c:\ExchangeSetupLogs. Das Verzeichnis enthält mehrere Dateien, von denen zwei von primärem Interesse sind:
ExchangeSetup.log Dies ist das Protokoll, das Informationen zu Aufgaben und Parametern enthält, die beim Ausführen des Setups verwendet wurden. Wenn Serverrollen konfiguriert werden, werden die Informationen zu Aufgaben, die zur Konfiguration des Servers ausgeführt wurden, ebenfalls in diesem Protokoll hinterlegt. Diese Datei enthält außerdem die Mehrzahl der Informationen bezüglich Ihres Serversetups. Details zum Service Pack-Setup werden auch an diese Datei angehängt.
ExchangeSetup.msilog Diese Datei enthält Informationen zur Entpackungsphase des Setups. Wenn das Microsoft®-Installationsprogramm Dateien von einem temporären Verzeichnis an ihre Ziele kopiert, wird dies in dieser Datei protokolliert. Sollte also ein Problem auftreten, das möglicherweise dafür verantwortlich ist, dass Dateien während des Setups nicht kopiert werden, bzw. nicht auf Dateien zugegriffen werden kann, könnte dieses Protokoll hilfreich sein.

F: Ich weiß, dass die Voraussetzungsprüfung auf Exchange Server Best Practices Analyzer (BPA) basiert. Wo finde ich den Bericht zu den Voraussetzungen?
A: Der Bericht, den BPA während der Voraussetzungsprüfung erstellt, befindet sich im folgenden Ordner:
%SYSTEMDRIVE%\Exchangesetuplogs\PreReqs
Die Dateinamen haben ein Standardformat:
ExBPA.<dateandtime>.data.xml
Wenn Sie herausfinden möchten, wonach eine bestimmte Voraussetzungsprüfung gesucht hat, suchen Sie die XML-Datei, in der sich die betreffende Fehlermeldung befindet. Direkt oberhalb der Meldung sehen Sie dann die getestete Regeldefinition.
F: Wie lese ich Setupprotokolle? Welche Optionen habe ich?
A: Setupprotokolle können generell auf zweierlei Weise gelesen werden. Führen Sie entweder von der Exchange-Verwaltungsshell aus Get-SetupLog aus oder öffnen Sie die Setupprotokolldatei im Editor oder in einem anderen Textbearbeitungsprogramm.
Hier ein Beispiel, wie Sie Warnungen oder Fehler mit Get-SetupLog aufrufen würden:
Get-SetupLog c:\exchangesetuplogs\exchangesetup.log –error
Wenn Sie die Informationen in ansprechender Form ansehen möchten, sollten Sie sich die Skripts „Out-HTML.ps1“ und „Out-IE.ps1“ besorgen, die im Exchange 2007 PowerShell Scriptacular-Demopack erhältlich sind. (Mehr dazu in unserem Blog unter msexchangeteam.com/archive/2006/12/27/431998.aspx.)
Kopieren Sie die Skripts in den Exchange-Skriptordner (standardmäßig unter c:\Programme\microsoft\exchange server\scripts), und führen Sie dann Folgendes aus:
Get-SetupLog –tree:$false –error:$false | Where { $_.status –eq "Error" } | select datetime, depth, description, status | Out-HTML | Out-IE
Hierdurch wird ein übersichtliches Browserfenster geöffnet, in dem die Fehler, die eventuell während des Setups aufgetreten sind, in HTML-Form zu sehen sind (siehe Abbildung 1).
Abbildung 1 Mit Out-HTML und Out-IE lassen sich Setupprotokolle leichter lesen
Abbildung 1 Mit Out-HTML und Out-IE lassen sich Setupprotokolle leichter lesen
Falls Sie die Datei „exchangesetup.log“ lieber im Editor aufrufen wollen, finden Sie hier ein paar Tipps:
  • Suchen Sie, um den Beginn des Setups zu finden, nach folgendem Eintrag: [0] Microsoft Exchange 2007 Setup wird gestartet.
  • Suchen Sie, um das Ende eines Setups zu finden, nach folgendem Eintrag: [0] Ende der Installation.
  • Größere Setupaufgaben sind getrennt durch: [0] **************.
  • Zur Suche nach dem Konto, unter dem Setup ausgeführt wurde, suchen Sie folgenden Eintrag: [0] Angemeldeter Benutzer.
  • Wenn Sie sehen wollen, welcher Domänencontroller während des Setups verwendet wurde, suchen Sie nach folgendem Eintrag: [0] Der Domänencontroller '[Name des Controllers]' wird für die Installation verwendet.
Generell sollten Sie beim Lesen von Setupprotokollen im Editor am Ende der Datei beginnen und dann zeitlich zurückgehen, um ein Problem zu finden. Fehler sind in der Regel die letzten Informationen, die im Setupprotokoll protokolliert werden.

F: Kann ich Exchange 2007 Unified Messaging mit meiner Nebenstellenanlage verwenden?

A: Wahrscheinlich ja. Sehen Sie unter microsoft.com/technet/prodtechnol/exchange/telephony-advisor.mspx in der Liste der unterstützten VoIP-Gateways und Nebenstellenanlagen nach. Wenn sich die Liste der unterstützten Produkte ändert, wird diese Seite entsprechend aktualisiert.
F: Ich habe einen Client, auf dem Small Business Server 2003 mit Exchange läuft. Die Unternehmensrichtlinie besagt, dass alle E-Mails überwacht werden müssen. Dazu möchte ich eine Kopie aller ein- und ausgehenden E-Mail an das Administratorkonto senden. Wie muss ich hierzu vorgehen?
A: Sie brauchen ein Nachrichtenjournal, das es Ihnen ermöglicht, eine Kopie sämtlicher E-Mails, die an oder von einer bestimmten Postfachdatenbank gesendet wurden, in einem separaten Journalpostfach aufzubewahren. Es gibt eine Vielzahl von Optionen, über die Sie vorgeben können, wie detailliert die Journalkopien sein sollen (sollen z. B. Bcc-Empfänger erfasst werden?) sowie ein zusätzliches Tool mit einigen erweiterten Features, das Sie von go.microsoft.com/fwlink/?LinkId=93725 herunterladen können. Die Journalfunktion in Exchange 2003 wird auf Datenbankebene aktiviert, womit jeder Benutzer in der jeweiligen Datenbank im Journal erfasst wird. Nachdem Sie das Journalpostfach für E-Mails angelegt haben, rufen Sie die Eigenschaften des Postfachspeichers in Exchange-System-Manager auf, und aktivieren Sie das Feld zur Archivierung von E-Mails, die von Postfächern gesendet oder empfangen wurden, in diesem Speicher. Je nach Ihren Geschäftsrichtlinien empfiehlt es sich u. U., auch den Postfach-Manager zu aktivieren, um automatisch alte Journalkopien aus dem Journalpostfach zu entfernen.
Ein weiteres Feature von Exchange 2003, das der Journalfunktion ähnelt, ist Archive Sink. Im Gegensatz zur Journalfunktion, die Kopien der E-Mails in einem anderen Postfach in Exchange speichert, speichert das Archiv E-Mail in einem angegebenen Ordner auf der Festplatte des Servers. Wann empfiehlt sich das Journal und wann Archive Sink? Die Journalfunktion ist generell für Szenarios gedacht, in denen gesetzliche Bestimmungen eingehalten werden müssen. Die Archive Sink-Funktion kann dagegen nützlich sein, wenn Sie z. B. alle E-Mails erfassen wollen, die vom Internet eingehen oder an das Internet gesendet werden.
Exchange 2007 vereinfacht diese Szenarios in erheblichem Umfang, und Sie können E-Mails leicht in einem Journal pro Benutzer oder pro Verteilerliste erfassen. Wenn Benutzer nicht wissen sollen, dass ihre E-Mail in einem Journal erfasst wird, können Sie die jeweilige Verteilerliste aus der globalen Adressliste ausblenden (das ist nicht das Gleiche wie eine versteckte Mitgliedschaft einer Verteilerliste) oder ein benutzerdefiniertes Attribut für die Benutzer einrichten und dann eine abfragebasierte Verteilergruppe (die auch als dynamische Verteilerliste bezeichnet wird) einrichten, um alle Benutzer mit diesem benutzerdefinierten Attribut im Journal zu erfassen. Sollen sämtliche E-Mails in der ganzen Organisation in einem Journal erfasst werden, lassen Sie beim Erstellen der Journalregel das Empfängerfeld leer. Wenn Sie in Exchange 2007 eine andere Journalfunktion als die Journalfunktion pro Datenbank verwenden wollen, beachten Sie auch, dass Sie für diese Benutzer dann die Exchange Enterprise-Clientzugriffslizenz (Client Access License, CAL) benötigen. Weitere Informationen finden Sie unter microsoft.com/exchange/howtobuy/licensingFAQ.mspx. Wenn Sie weder CAL noch die anderen Features verwenden wollen, können Sie weiterhin die datenbankbasierte Journalfunktion von Exchange 2003 verwenden. Lesen Sie auch den Artikel von David Strome in der TechNet Magazin-Ausgabe vom Dezember 2006 mit dem Titel „Leistungsstarkes Journaling in Exchange 2007“ (technetmagazine.com/issues/2006/12/journaling).

F: Alle meine Benutzer arbeiten mit Microsoft Office 2003, und wir planen, frühestens 2008 nach einer Aufrüstung der Hardware auf Office 2007 umzusteigen. Ich habe bereits einiges zu diesem Thema gelesen und mache mir nun Sorgen, dass meine Benutzer hierdurch auf einige Features verzichten müssen. Werden sie Unified Messaging verwenden können?

A: Selbstverständlich. In Office 2003 können Benutzer, für die Unified Messaging aktiviert ist, Voicemailnachrichten und Faxe in ihren Postfächern empfangen und sich von jedem Telefonapparat aus in ihr Postfach einwählen. Was Ihnen ohne Outlook 2007 fehlt, ist die Möglichkeit, Voicemaileinstellungen über die Registerkarte „Optionen“ zu konfigurieren, sowie das spezielle benutzerdefinierte Formular, das bei einer Voicemailnachricht in Outlook erscheint und die Wiedergabe der Nachricht im Programm ermöglicht, ohne dass ein separater Media Player gestartet werden muss. Auch das Feature zum Schreiben von Audionotizen und Speichern solcher Notizen mit der Voicemailnachricht steht nicht zur Verfügung. Aber auch ohne Outlook 2007 können Benutzer, für die Unified Messaging aktiviert ist, mit OWA 2007 auf die Unified Messaging-Einstellungen zugreifen (auf der OWA-Optionsseite) und das benutzerdefinierte Formular für Voicemail in OWA verwenden.

F: Mein Unternehmen hat bereits ein Storage Area Network (SAN), und ich will Exchange 2007 darin einbinden. Ich habe aber viel über Direct Attached Storage (DAS) gehört und frage mich, ob ich mich dafür entscheiden sollte. Was meinen Sie?

A: Auf diese Frage gibt es keine richtige oder falsche Antwort. Es hängt wirklich von den Richtlinien und Szenarios Ihres Unternehmens ab (besonders dann, wenn Sie bereits ein SAN haben). Wenn Sie erwägen, ein neues SAN zu kaufen oder ein weiteres hinzuzufügen oder eine sonstige Aufrüstung in Betracht ziehen, empfehlen wir sehr, DAS in Erwägung zu ziehen. Im Folgenden finden Sie einige Informationen, die Sie bei Ihrer Entscheidung berücksichtigen sollten: Stand Juni 2007: Microsoft IT hat 17 Exchange 2007-Postfachserver für 40.000 Postfächer bereitgestellt (mit Kontingenten von 500 MB bis 10 GB), die alle fortlaufende Clusterreplikation mit DAS verwenden. Bis September planen wir, 35 Exchange 2007-Postfachserver mit 152.500 Postfächern (alle auf DAS) einzurichten. Wenn Sie sich fragen, ob DAS für Unternehmen geeignet und realisierbar ist, dann lautet die Antwort ganz klar JA. DAS ist für Microsoft IT eine Schlüsselkomponente gewesen, um Benutzerkontingente zu erhöhen und gleichzeitig Gesamtspeicherkosten zu verringern. Weitere Informationen zu dieser Topologie und Bereitstellung und den hiermit verbundenen Einsparungen finden Sie unter microsoft.com/technet/itshowcase/content/64bitexchange2007.mspx.
Es mag zunächst vielleicht so aussehen, als würden sich Kosten für Speicher drastisch reduzieren lassen, wenn Sie alle Ihre Server in ein SAN einbinden. Dieser Schritt jedoch nicht völlig risikofrei. Ein Problem, das beispielsweise häufig auftritt, ist mit den verschiedenen Nutzungsszenarios für die Software verbunden, die im SAN eingebunden ist. Wenn Sie z. B. eine Personalsoftware auf dem SAN haben, die jeden Nachmittag um 17 Uhr einen Batchprozess ausführt, könnte sich diese E/A-Spitze sehr negativ auf Ihre Exchange-Benutzer auswirken. Das Fehlen einer deterministischen E/A ist ein häufig auftretendes Problem bei gemeinsam genutzten SAN-Bereitstellungen.
DAS bietet den Vorteil einer einfacheren Verwaltung, weil es keine spezifischen Speicheradministratoren oder Spezialgeräte erfordert. Es ist inkrementell und kann daher nach dem Erwerb problemlos erweitert werden. Und es ist in der Regel so preisgünstig, dass Sie es als Zweitlösung auf Lager halten können, ohne hiermit Ihr Budget zu sprengen.

F: Ich habe meinen ersten Exchange 2007-Server installiert. Wenn ich jetzt versuche, über Outlook 2003 eine Verbindung zum Server herzustellen, bekomme ich die Fehlermeldung, dass der Administrator meine Outlook-Version blockiert hat. („Ihr Microsoft Exchange-Administrator hat die Outlook-Version, die Sie verwenden, blockiert. Wenden Sie sich an den Administrator, um weitere Informationen zu erhalten.“) Ich bin aber der Administrator und habe das Programm nie blockiert. Was ist los?

A: Dieses Verhalten ist nicht unerwartet. Wenn Exchange 2007 installiert wird, fragt der Setup-Assistent, ob Sie in Ihrer Organisation Outlook 2003-Clients (oder frühere Versionen von Outlook-Clients) oder Entourage-Clients ausführen (siehe Abbildung 2). Falls Sie diese Frage verneint haben, tritt dieses Problem u. U. bei Ihnen auf.
Abbildung 2 Frage im Setup-Assistenten für Exchange 2007 zu Legacyclients
Abbildung 2 Frage im Setup-Assistenten für Exchange 2007 zu Legacyclients
Um dieses Problem nachträglich zu beheben (nachdem das Setup abgeschlossen wurde), können Sie einfach über die Exchange-Verwaltungskonsole oder die Exchange-Verwaltungsshell einen öffentlichen Ordnerspeicher erstellen und den Informationsspeicherdienst neu starten. Der Informationsspeicherdienst muss in diesem Fall neu gestartet werden. Legacyclients (Outlook 2003 und frühere Versionen) können erst eine Verbindung zum Server herstellen, nachdem der Dienst neu gestartet wurde.
Wenn Sie die unbeaufsichtigte Installation von Exchange 2007 ausführen, können Sie außerdem über den Schalter /EnableLegacyOutlook angeben, wie Sie die Frage zu Legacyclients beantworten wollen.

F: Wieso ist es für Exchange 2007 interessant, wenn ich mit älteren Versionen von Outlook eine Verbindung zum Server herstelle? Wieso lässt sich dieses Problem durch das Erstellen des öffentlichen Ordnerspeichers und den Neustart des Informationsspeicherdiensts beheben?

A: Die Antworten zu diesen Fragen sind im Vorhandensein des öffentlichen Ordnerspeichers begründet. Vielleicht erinnern Sie sich daran, dass der öffentliche Ordnerspeicher in früheren Versionen von Exchange verwendet wird, um z. B. die Frei-/Gebucht-Daten der Benutzer zu speichern. Wenn ein Benutzer mit einer älteren Version von Outlook über MAPI oder RPC über HTTP mit seinem Exchange-Server verbunden ist und etwas in seinem Kalender veröffentlicht, werden die Informationen zu seinem Frei-/Gebucht-Status ebenfalls in einem speziellen öffentlichen Ordner „Schedule+“ veröffentlicht. Wenn Benutzer Frei-/Gebucht-Daten auf dem Server veröffentlicht haben, kann dies in älteren Outlook-Clients nur anhand des Frei-/Gebucht-Status im speziellen öffentlichen Ordner erkannt werden.
In Exchange 2007 ist das bekannt. Wenn es also keinen öffentlichen Ordnerspeicher gibt, blockiert Exchange 2007 frühere Clientversionen. Würde Exchange 2007 die Verbindung von Legacyclients zulassen, würden am Client häufig Fehler auftreten, da Outlook keine Verbindung zum öffentlichen Ordnerspeicher herstellen kann, um Frei-/Gebucht-Daten zu veröffentlichen. Zudem wäre die Clientfunktionalität eingeschränkt, da Frei-/Gebucht-Anfragen eines Benutzers (z. B. beim Versuch, eine Besprechung mit einer anderen Person zu planen) einfach nicht funktionieren würden. Das Problem wird durch das Erstellen des öffentlichen Ordnerspeichers gelöst, weil der Exchange 2007-Server dann weiß, dass Legacyclients die Frei-/Gebucht-Veröffentlichungsfunktion nutzen können, und die Postfachanmeldung wird zugelassen.
Aus diesen Ausführungen könnten Sie den folgenden Schluss ziehen: Outlook 2007-Clients benötigen für die Veröffentlichung ihrer Frei-/Gebucht-Informationen keinen öffentlichen Ordnerspeicher. Das stimmt zwar, hat aber einen kleinen Haken.
Ohne zu sehr ins Detail zu gehen, sei hier nur gesagt, dass bei Vorhandensein eines öffentlichen Ordnerspeichers auf einem Exchange 2007-Speicher auch ein Outlook 2007-Client Frei-/Gebucht-Daten von Benutzern in diesem Speicher veröffentlichen wird. Der Grund hierfür: Andere Clients, von denen einige wahrscheinlich Outlook-Legacyclients sind, können damit die Frei-/Gebucht-Informationen von Outlook 2007-Benutzern abfragen. Wären diese Informationen nicht im öffentlichen Ordnerspeicher, könnten Legacyclients sie nicht abrufen. Gibt es keinen öffentlichen Ordnerspeicher, dann versuchen Outlook 2007-Clients auch nicht, Frei-/Gebucht-Daten zu veröffentlichen. Gibt es keine öffentlichen Speicher, und läuft auf allen Clients Outlook 2007, wird ein anderer Mechanismus zum Abfragen von Frei-/Gebucht-Informationen verwendet. Dieser besteht darin, die Kalenderdaten direkt aus den Postfächern der Benutzer herauszulesen, ohne diese Informationen an eine andere Stelle zu kopieren. Mehr zu diesem Thema können Sie den Informationen zum Verfügbarkeitsdienst in der Hilfedatei Ihres Servers und in der Onlinedokumentation zu Exchange unter go.microsoft.com/fwlink/?LinkId=69434 erfahren.

F: Ich habe gerade den Knowledge Base-Artikel 288894 über das Blockieren von MAPI-Clients über einen Registrierungsschlüssel gelesen (siehe support.microsoft.com/kb/288894). Ich habe die Registrierung meines Servers überprüft, aber dieser Schlüssel war nicht gesetzt. Wie blockiert der Speicher diese Legacyclientversion?

A: Eine sehr gute Frage! Der Informationsspeicher von Exchange 2007 verwendet nicht den in diesem Knowledge Base-Artikel erwähnten Registrierungswert „Disable MAPI Clients“, der Legacyclients blockiert. Der Grund hierfür ist, dass möglicherweise kein öffentlicher Ordnerspeicher existiert und deshalb diese Clients auch nicht durch eine Änderung des Registrierungsschlüssels zugelassen werden können.
Die Blockierung von Clients, die älter als Outlook 2007 sind, ist einfach im Informationsspeicher von Exchange 2007 hartcodiert. Beim Starten des Dienstes prüft der Speicher, ob es einen öffentlichen Ordnerspeicher gibt, und entscheidet dann, ob nur Outlook 2007-Clients oder auch ältere Clients eine Verbindung zu ihren Postfächern herstellen dürfen. Diese Überprüfung erfolgt nur beim Starten des Diensts. Aus diesem Grund müssen Sie, nachdem Sie den öffentlichen Ordnerspeicher erstellt haben, den Informationsspeicherdienst neu starten, da die Änderung nur so wirksam wird.

KC Lemson ist User Experience Manager für Exchange Server. Sie schreibt momentan an einer renommierten amerikanischen Privatuniversität an ihrer Doktorarbeit.
Nino Bilic ist Supportability Program Manager für Exchange Server. Er zieht derzeit in Erwägung, professioneller Rennfahrer bei Forza Motorsport 2 zu werden.


 Sicherheit auf dem Pr&#252;fstand: Langfristige Auswirkungen der Benutzerkontensteuerung
Sicherheit auf dem Prüfstand
Langfristige Auswirkungen der Benutzerkontensteuerung
Dr. Jesper M. Johansson

Das Problem der Arbeit als Administrator ist offensichtlich: Jede Malware, die Benutzer oder die Anwendungen, die sie ausführen, angreift, erhält vollständige Kontrolle von über 90 Prozent des Computers, den sie infiziert hat. Das UAC-Feature in Windows Vista ist die Lösung von Microsoft für ein weit verbreitetes Sicherheitsproblem, der Tatsache, dass über
90 Prozent der Benutzer auf der Windows-Plattform momentan mit Administratorrechten arbeiten. Obwohl es möglich ist, unter Windows® XP als Standardbenutzer zu arbeiten – ich habe es schon getan – kann das äußerst ärgerlich sein. Wenn Sie zum Beispiel häufig unterwegs sind und dabei Windows XP verwenden, werden Sie feststellen, dass Sie die Zeitzone Ihres Systems als Standardbenutzer nicht ändern können.
UAC ist das Feature, das all dies ändern soll. Dabei handelt es sich bereits um das erste Missverständnis. UAC ist nicht nur ein Feature, es ist eine Sammlung von Features, von denen die meisten nicht besonders leicht erkennbar sind. Ich werde Ihnen keine detaillierte Analyse aller Implementierungsdetails von UAC geben. Dazu empfehle ich Ihnen besonders den Artikel von Mark Russinovich in der Ausgabe vom TechNet Magazin von Juni 2007, den Sie online unter technetmagazine.com/issues/2007/06/UAC finden.
Vielmehr hoffe ich, dass ich Ihnen in diesem Beitrag eine objektive Darstellung davon geben kann, was UAC ist und was nicht und wie es sich auf die Verwaltung von Windows Vista®-Systemen auswirkt.

Was UAC zu sein scheint
Das sichtbarste Feature von UAC ist die Eingabeaufforderung für erhöhte Rechte, die in Abbildung 1 gezeigt wird. Wenn Sie einen repräsentativen Querschnitt von Windows Vista-Benutzern danach fragen, was UAC ist, würde die Mehrheit wahrscheinlich etwas über die lästige Eingabeaufforderung für erhöhte Rechte sagen.
Abbildung 1 UAC-Eingabeaufforderung für erhöhte Rechte im Administratorgenehmigungsmodus
Abbildung 1 UAC-Eingabeaufforderung für erhöhte Rechte im Administratorgenehmigungsmodus
Trotz der Sichtbarkeit und den verschiedenen Meinungen zu UAC glaube ich nicht, dass die meisten Diskussionen über UAC sehr viel mit dem zu tun haben, was UAC wirklich ist. Tatsächlich scheint es einige echte Verwirrung zu geben. Experten schreiben Blogbeiträge, Newsgroupeinträge und Artikel mit Titeln wie „Das ärgerlichste Feature von Vista“ und lassen sich darüber aus, wie viele Personen es ausschalten und warum es so lästig ist.
Wenn so wenige sich darum bemühen, das Grundprinzip hinter UAC zu verstehen, weshalb beginne ich diesen Artikel nicht mit einem Blick darauf, was UAC ist?

Was UAC ist
UAC ist ein Versuch, mehr Anwender in die Lage zu versetzen, als Standardbenutzer zu arbeiten. In gewisser Weise ist es Version 2.0 dieser Bemühungen. Version 1.0 wurde zuerst mit Windows NT® 3.1 ausgeliefert und ermöglichte es einem Benutzer, als Nichtadministrator zu arbeiten. Dies war eine radikale Abkehr vom 16-Bit Windows 3.1 und seinen Nachfolgern, Windows 3.11, Windows 95, Windows 98 und Windows Me. Keines dieser Betriebssysteme besaß ein Konzept von Benutzern mit geringer Berechtigung. Ob ein Benutzer ohne Administratorberechtigungen sinnvolle Arbeiten erledigen konnte, hing von vielen Faktoren ab, aber bis zu Windows XP und Windows Server® 2003 reichte die kleinste Benutzerberechtigung häufig von ärgerlich bis zu nutzlos. Windows Vista enthält erstmals Technologien, die darauf abzielen, leichter das Richtige zu machen, wenn es um interaktive Benutzerberechtigungen geht.
Auch wenn zu Recht behauptet werden kann, dass es ein Ziel von UAC war, den Anwendungen, die als Administrator ausgeführt werden, in gewissem Grad Schutz vor den Anwendungen zu geben, die nicht als Administrator ausgeführt werden, war dies nicht der primäre Zweck von UAC. Der primäre Zweck war, uns eine Richtung einschlagen zu lassen, bei der mehr Benutzer als Standardbenutzer arbeiten können, was wiederum Entwickler dazu zwingen würde, mehr Programme zu schreiben, die mit Standardbenutzerberechtigungen funktionieren, wodurch Benutzer weniger häufig ihre Berechtigungen erhöhen müssen. Wenn Entwickler mehr UAC-kompatible Anwendungen schreiben, verringert sich die Anzahl der angezeigten Eingabeaufforderungen, und die Benutzerfreundlichkeit verbessert sich. Im Idealfall arbeiten schließlich die meisten Benutzer nicht als Administratoren und hinterfragen einige der Eingabeaufforderungen für erhöhte Rechte. Je weniger Eingabeaufforderungen vorkommen, desto wahrscheinlicher werden die Benutzer sorgfältig nachdenken, bevor sie eine Rechteerhöhung zulassen.
Ungefähr so sieht die Theorie aus. Es kann im weitesten Sinne weniger Malware geben, aber das hängt davon ab, ob Benutzer UAC aktiviert lassen. Dies tun sie nur, wenn mehr Software mit UAC funktioniert und sie somit aufhören, die Eingabeaufforderungen als Übung im Schnellklicken zu betrachten und stattdessen darüber nachdenken, ob eine Aufforderung zur Rechteerhöhung legitim ist.
Damit mehr Benutzer die meiste Zeit ohne Administratorberechtigung arbeiten können, wurde UAC auf mehrere Ziele ausgelegt:
  1. Die Verringerung der Szenarios, die eine Erweiterung auf ein Administratorkonto benötigen.
  2. Einfachere Gestaltung der Rechteerhöhung – möglichst Automatisierung – im Gegensatz zu den zuvor verwendeten umständlichen Methoden wie runas.exe oder die Abmeldung von einem Konto und die Anmeldung bei einem anderen. Mit anderen Worten, die Lücke überbrücken, bis die ISV ihre Anwendungen repariert haben.
  3. Bereitstellen einer gewissen Art von Isolierung für die Anwendungen, die mit Administratorberechtigungen ausgeführt werden, um sie vor denen zu schützen, die ohne Administratorberechtigungen ausgeführt werden.
  4. Bestimmten gefährdeten Anwendungen wann immer möglich erlauben, mit niedrigeren Berechtigungen ausgeführt zu werden.
Zwei dieser Zielen sollen die Benutzerfreundlichkeit beim Arbeiten ohne Administratorberechtigungen so angenehm wie möglich machen. Zwei beschäftigen sich mit dem Schutz von Anwendungen, die besonders gefährdet sind.
Das Interessante dabei ist, dass sich nur zwei von ihnen auf das Feature beziehen, das allgemein als UAC betrachtet wird, und nur eine beschäftigt sich mit dem eigentlichen Erhöhungsprozess. Doch die Rechteerhöhung, wenn eine Anwendung zusätzliche Berechtigungen anfordert, ist es, worüber man sich beschwert, weil sie das einzig wirklich Sichtbare in der Gruppe der Technologien ist, aus denen UAC besteht. Das erste allumfassende Ziel hat überhaupt nichts mit der Rechteerhöhung zu tun. Die Idee war einfach: Es sollten häufiger mehr Benutzer in der Lage sein, ohne Administratorberechtigungen zu arbeiten. Man könnte sagen, dass beabsichtigt wurde, die Anzahl der Rechteerhöhungsereignisse zu verringern.
Die Ziele, die sich direkt auf den Erhöhungsprozess beziehen, sind die Ziele 2 und 3. Bei Ziel Nummer 2 geht es darum, die Erweiterung einfacher als unter Windows XP zu gestalten. Bei Ziel Nummer 3 geht es darum, ein gewisses Maß an Schutz für die Anwendungen bereitzustellen, die mit erweiterten Rechten ausgeführt werden. Die übrigen Ziele betreffen völlig andere Probleme. Jedes dieser Ziele erforderte jedoch Änderungen am Betriebssystem. In dem oben genannten Artikel von Mark Russinovich werden diese Änderungen genau beschrieben.
Wie ich bereits erwähnt habe, gibt es viele, viele Empfehlungen, UAC zu deaktivieren. Das werden wahrscheinlich viele tun, ohne UAC überhaupt ausprobiert zu haben, und noch mehr werden sich ihre Computer in großen Kaufhäusern inklusive einer Windows Vista-Version, bei der UAC bereits deaktiviert wurde, kaufen. Es ist eine Schande, dass Einzelhändler wichtige Sicherheitsfeatures im Betriebssystem als Teil ihres standardmäßigen Bereitstellungsabbilds deaktivieren.
Leider basieren die meisten der Ratschläge, UAC auszuschalten, auf einem allerersten Eindruck. Während Sie Ihren Computer installieren und einrichten, erhalten Sie während der Softwareinstallation einige Eingabeaufforderungen. Sie können davon ausgehen, dass die Verwaltung bei der Einrichtung eines Computers sich völlig anders gestaltet, als wenn der Computer bereits in einem stabilen Zustand ist. Die ersten Wochen werden sich ziemlich von den darauf folgenden Wochen unterscheiden. Wenn Sie UAC auf einem relativ stabilen Computer testen, werden Sie es sicherlich nicht als besonders lästig empfinden.

Was UAC nicht ist
UAC wurde nicht mit der Absicht entworfen, das ärgerlichste Feature in der Geschichte von Windows zu werden. Mit seiner Hilfe soll vielmehr ein Weg einschlagen werden, bei dem Systeme nicht so häufig wie bisher schädlichem Code ausgesetzt werden.
In seiner aktuellen Form wird UAC weder die wirklich guten Angreifer aufhalten können, noch diejenigen, denen wirklich gute Angreifer helfen. Wenn Angreifern nichts Besseres einfällt, wie sie UAC überwinden können, werden sie mit an Sicherheit grenzender Wahrscheinlichkeit die Benutzer bitten, das für sie zu erledigen. Wir wissen aus Erfahrung, dass der Benutzer bei der Wahl zwischen Spaß und Sicherheit sich immer für den Spaß entscheiden wird. Benutzer haben gelernt, Dialogfelder zu schließen, und sie werden das so lange tun, bis es gelingt, sie entsprechend umzuerziehen. Daran sind viele Faktoren schuld, einschließlich der Tatsache, dass es zu viele Warndialoge gibt, dass die enthaltenen Nachrichten nutzlos sind und dass viele Gerätehandbücher den Hinweis enthalten, Sicherheitsdialogfelder mit „Ja“ zu schließen.
UAC bietet keine absolut sichere Sicherheit. In der Tat macht es den altbekannten Angriff über die lokale Rechteerhöhung wieder interessant. Dies ist eine Art des Angriffs, die zum größten Teil nicht berücksichtigt wurde, weil unter Windows nahezu jeder Administrator war. Daher war eine Erhöhung auf Administratorrechte ziemlich sinnlos. Andererseits ändert UAC mit Sicherheit die Art und Weise solcher Angriffe und forciert die Regeln des Spiels so, wie sie bei UNIX seit über 20 Jahre gelten.
UAC kann Bösewichte nicht davon abhalten, Ihre persönlichen Daten zu stehlen. Ein Benutzer kann auf seine persönlichen Daten zugreifen, egal welche Berechtigungen er hat. Anwendungen, inklusive Malwareanwendungen, können auf die Daten zugreifen. UAC kann und wird dies nicht ändern. Es beseitigt nicht die Notwendigkeit, wachsam, misstrauisch und paranoid zu sein. Diese Eigenschaften sollten wir unseren Endbenutzern bei jeder Gelegenheit ans Herz legen.
UAC wurde nicht entworfen, um eine Anwendung, die mit erweiterten Berechtigungen ausgeführt wird, vor allen Angriffen durch eine Anwendung, die mit normalen Berechtigungen in der gleichen Anmeldesitzung ausgeführt wird, zu schützen. Obwohl UAC eine schwache Prozessisolierung bereitstellt, war es kein Entwurfsziel, Anwendungen voneinander abzuschirmen.

Das Gerücht
Microsoft selbst trug zu den Missverständnissen in puncto UAC bei. Im Sicherheitshandbuch zu Windows Vista wird UAC zum Beispiel im Kapitel zur Verteidigung gegen Malware als hierzu primär eingesetzte Technologie präsentiert (microsoft.com/technet/windowsvista/security/guide.mspx). Es wird empfohlen, die meiste Zeit mit aktiviertem UAC zu arbeiten. Zudem werden einige Punkte aufgeführt, die berücksichtigt werden müssen, wenn UAC zur Bekämpfung von Malware verwendet wird. Ein besonders wichtiger Punkt fehlt aber: UAC kann weder Malware stoppen, noch ist es dafür vorgesehen.
Einige der hellsten Köpfe der Welt in puncto Windows-Sicherheit, wie z. B. Joanna Rutkowska, haben den Zweck von UAC verstanden. Sie sagte in einem Blogbeitrag vom 4. Februar 2007, dass UAC „eine neue Sicherheitsmethode ist, die in Vista eingeführt wurde und dessen Hauptziel ist, Benutzer zu zwingen, mithilfe eingeschränkter Konten statt als Administratoren zu arbeiten“ (theinvisiblethings.blogspot.com/2007/02/running-vista-every-day.html). Sie hat größtenteils Recht, aber ich würde den Ausdruck „ermöglichen“ anstatt „zwingen“ verwenden.
Dies bedeutet aber eine signifikante Änderung bei der Art gängiger Angriffe gegen Windows. Ich habe bereits erwähnt, dass die Anfälligkeit der lokalen Rechteerhöhung, bei denen ein Benutzer mit den Rechten eines lokalen Standardbenutzers die Rechte eines lokalen Administrators erlangen kann, auf der Windows-Plattform nie besonders interessant gewesen ist.
Bei Windows Vista sollen Benutzer stattdessen als Standardbenutzer arbeiten, sodass die Probleme bei der lokalen Rechteerhöhung plötzlich sehr wichtig werden. Leider begegnen wir auch hier einigen der Einschränkungen von UAC. Denken Sie daran, es gibt keine wirksame Isolierung; es gibt keine Sicherheitsgrenze, die Prozesse auf dem gleichen Desktop isoliert. Das Betriebssystem enthält einige Schutzmaßnahmen, damit die offensichtlichen und unnötigen Kommunikationswege blockiert werden, aber es wäre unmöglich und unerwünscht, sie alle zu blockieren. Deshalb behandelt Microsoft die Brüche dieser nicht existierenden Sicherheitsgrenze nicht als Sicherheitsverletzungen. Mark Russinovich hat darauf in einem Blogbeitrag unter blogs.technet.com/markrussinovich/archive/2007/02/12/638372.aspx hingewiesen.
Er hat völlig Recht. Microsoft ist sich der Tatsache sehr wohl bewusst, dass es auf dem gleichen Desktop keine Sicherheitsgrenze zwischen einem Prozess mit geringen und einem mit erhöhten Berechtigungen gibt. Da eine Isolierung zwischen Prozessen auf dem gleichen Desktop nie geplant war, kann dies auch nicht als Sicherheitsrisiko bezeichnet werden. Natürlich mindert dies den Wert von UAC als primären Mechanismus zur Malwarebekämpfung. UAC wurde jedoch auch gar nicht dafür entwickelt, egal was Sie an verschiedenen Stellen, einschließlich bei Microsoft selbst, lesen können.
Verringert diese Tatsache den Wert von UAC bezüglich seines Hauptziels, mehr Benutzer in die Lage zu versetzen, häufiger als Standardbenutzer zu arbeiten? Nein. Die Existenz oder das Fehlen einer undurchlässigen Sicherheitsschranke zwischen einer böswilligen Anwendung mit niedriger Berechtigung und einer Anwendung mit erhöhten Berechtigungen ändert nichts daran, dass mehr Benutzer UAC effektiv verwenden und auf ihren Windows Vista-Computern als Standardbenutzer arbeiten können. Ich habe diesen Artikel (und mein gesamtes Buch über Windows Vista-Sicherheit) als Standardbenutzer unter Windows Vista geschrieben. Kein einziges Mal habe ich eine UAC-Eingabeaufforderung erhalten, bei der ich etwas, das ich geschrieben hatte, akzeptieren musste!
Die Tatsache, dass UAC nicht sämtliche Sicherheitsprobleme mindert und dass es keinen primären Schutz gegen Malware bietet, was viele (ich eingeschlossen) am liebsten hätten, bedeutet nicht, dass UAC keine Sicherheitstechnologie ist. Die Möglichkeit, Benutzer durch getrennte Benutzerkonten zu identifizieren, allein hält Malware nicht davon ab, ein System zu infizieren, aber niemand würde aus dieser Tatsache folgern, dass Benutzerkonten deshalb keine Sicherheitstechnologie sind. Nur weil UAC nicht all die Probleme löst, die wir gerne gelöst hätten, heißt das noch lange nicht, dass die Problemlösungen, die es enthält, nicht wertvoll sind.
UAC überlässt es Technologien, wie z. B. der erheblich verbesserten Windows-Firewall, Windows Defender, und anderen Antimalwareprogrammen, schädlichen Code vom Computer fern zu halten und, sollte er aufgrund listiger Programmierung doch dort ankommen, ihn nicht ausführen zu lassen. Keine dieser Sicherheitstechnologien wird wahrscheinlich hundertprozentig erfolgreich sein, und doch sind sie alle wertvolle Sicherheitstechnologien und alle haben ihren festen Platz. Aber wie bereits mehrfach erwähnt, selbst wenn alle Angriffswege geschlossen sind, kommt es letztendlich auf den Benutzer an. Wenn dieser sich dafür entscheidet, dass schädlicher Code ausgeführt werden soll, wird keine technische Maßnahme in der Welt dabei helfen, den Schaden zu begrenzen.

Best Practices
Verwendung von UAC Ist UAC als Administrator im Administratorgenehmigungsmodus auszuführen? Wie bereits mehrfach angemerkt, verhindert UAC nicht das Eindringen von Code von einer Anwendung mit niedriger Berechtigung in eine Anwendung mit höherer Berechtigung auf dem gleichen Desktop. Das bedeutet, dass weder das Arbeiten im Administratorgenehmigungsmodus noch als Standardbenutzer, der innerhalb der Sitzung seine Rechte erhöht, eine wirksame Isolierung liefert. Beide Lösungen sind jedoch erheblich besser als das Arbeiten als Administrator unter Windows XP oder in Windows Vista bei deaktiviertem UAC. Irgendwann einmal wird jedoch wahrscheinlich Malware geschrieben, die Anwendungen mit erhöhten Rechten auf dem interaktiven Desktop ausnutzt.
Mit welcher Berechtigung Sie dann arbeiten, hängt von Ihrer Philosophie des Risikomanagements ab. Wenn Sie als Standardbenutzer arbeiten und eine Rechteerhöhung vornehmen, hat die betroffene Anwendung eine andere Benutzerumgebung, als reguläre Anwendungen. Dies verringert das Risiko eines Vergiftungsangriffs, bei dem eine schädliche Anwendung ohne erhöhte Berechtigungen die Benutzerumgebung mit erhöhter Berechtigung angreifen kann. Allerdings kann die schädliche Anwendung möglicherweise weiterhin die Anwendung mit erhöhter Berechtigung steuern. Obwohl eine Wochen zuvor ausgeführte schädliche Anwendung nicht einfach eine Anwendung mit erhöhter Berechtigung vergiften kann, kann eine gerade ausgeführte schädliche Anwendung diese evtl. steuern. Sie müssen die Vor- und Nachteile des Administratorgenehmigungsmodus und des Standardbenutzermodus mit bedarfsgemäßer Rechteerhöhung bedenken.
Dafür gibt es Best Practices für UAC, die in Abbildung 2 zusammengefasst sind. Die beste Option ist meiner Meinung nach auch die bei Weitem komplizierteste. Der paranoide oder stark gefährdete Benutzer sollte immer als Standardbenutzer arbeiten und niemals eine Rechteerhöhung vornehmen. Wenn Sie als Administrator unter Windows XP arbeiten und einmal schädlichen Code ausgeführt haben, dann ist das Spiel gewissermaßen aus. Das gleiche gilt sehr wahrscheinlich, wenn Sie unter Windows Vista schädlichen Code ausführen und innerhalb dieser Sitzung eine Rechteerhöhung vornehmen. Sie können sich frei für den Ansatz entscheiden, der am besten zu Ihnen passt und der das Maß an Schutz liefert, mit dem Sie zufrieden sind.
Figure 2 Best Practices bei der Rechteerhöhung (Close Figure 2)

Schutzstufe | Erhöhungsmethode
Schlechter | Ausschalten von UAC.
Schlecht | Automatische Rechteerhöhung für Administratoren.
Gut | Arbeiten im Administratorgenehmigungsmodus.
Besser | Arbeiten als Standardbenutzer und Rechteerhöhung auf ein separates Administratorkonto.
Am besten | Arbeiten als Standardbenutzer und Wechsel in ein separates Administratorkonto anstelle der Verwendung von UAC zur Rechteerhöhung.
Außerdem traut ein wirklich paranoide Benutzer dem Softwarehersteller nicht, wenn dieser sagt, dass seine Anwendung von einem Administrator ausgeführt werden muss! Ein bekanntes Beispiel, wo dies behauptet wird aber nicht stimmt, ist Visual Studio® 2005 Service Pack 1. Wenn Sie Visual Studio starten, wird Ihnen gesagt, Sie müssen es als Administrator ausführen. Dies gilt jedoch nur für Entwickler, die bestimmte Aufgaben durchführen müssen. Weitere Informationen finden Sie unter msdn2.microsoft.com/en-us/vstudio/aa972193.aspx.

Entscheidungsgewalt für den Benutzer
Benutzer sollten darin gestärkt werden, mehr und bessere Entscheidungen zu treffen. Es gibt ein Gruppe von Sicherheitsexperten, die glauben, dass Entscheidungen zum Thema Sicherheit vor dem Benutzer verborgen werden sollten. Ihr unausgesprochener Grund dafür ist, dass sich Benutzer nicht nur nicht für Sicherheit interessieren, sondern dass sie nicht intelligent genug sind, um zu lernen, wie es richtig gemacht wird. Sie können nur durch die – jeweils vom Autor bevorzugte – Schutztechnologie vernünftig geschützt werden.
Ich sehe nicht, wie letzten Endes eine Technologie Benutzer vor Angriffen schützen kann, die auf Benutzer abzielen. Die Mehrheit der heutigen Angriffe, einschließlich praktisch aller Phishingangriffe, zielen hauptsächlich auf Benutzer ab und wie sie ihre Computer verwenden, und nicht auf die Technologie innerhalb ihrer Computer. Bei besonders wirksamen Angriffen sind Angriffe auf Benutzer und auf Technologie evtl. kombiniert, es ist häufig jedoch immer noch der Eingriff des Benutzers erforderlich, damit solcher Code ausgeführt werden kann. Technologie kann einfach nicht vor Angriffen schützen, die sich nicht auf die Technologie richten. Vor einer Weile habe ich hierzu viel geschrieben: technetmagazine.com/issues/2006/07/SecurityWatch.
UAC zwingt bereits Benutzer dazu, Sicherheitsentscheidungen zu treffen, und es gibt bereits Versprechen von Technologielieferanten für Lösungen, die Benutzer davon abhalten, diese Entscheidungen zu treffen. Es ist wahr, dass Benutzer bevorzugen, durch Sicherheit nicht gestört zu werden. Es stimmt jedoch auch, dass Software nicht die Absichten anderer Software erkennen kann. Kein System zur Verhinderung von Einbruchsversuchen kann feststellen, ob eine Website um die Nummer Ihrer Kreditkarte bittet, damit sie Ihnen ein Exemplar des Buchs zu Windows Vista-Sicherheit liefern kann, oder damit sie sie zu einer kriminellen Organisation senden kann. Nur der Endbenutzer kann dies feststellen und auch nur, wenn die richtigen Informationen angezeigt werden. Als Softwareentwickler müssen wir Benutzer an die Tatsache gewöhnen, dass sie intelligente Entscheidungen zur Sicherheit treffen sollen, sie entsprechend schulen und ihnen die erforderlichen Informationen liefern.
Wenn wir unsere derzeitige Philosophie, Entscheidungen nicht vom Benutzer treffen zu lassen, beibehalten, werden wir irgendwann feststellen, dass wir sie nicht schützen können. Benutzer werden irgendwann genug von Hackern haben und davon, dass Privatsphäre, Bankkonto, Identität, Würde und Selbstachtung missachtet werden. Wenn das geschieht, werden sie aufhören, unsere Produkte zu kaufen. Es gibt jene in der Hightechbranche, die glauben, wenn wir die Tatsache, dass es Sicherheitsprobleme mit Computern und allem, was dazu gehört, gibt, verschweigen, werden Benutzer blind all das verwenden, was wir ihnen anbieten. Nichts könnte weiter von der Wahrheit entfernt sein. Wenn Benutzer erkennen, dass wir nicht offen und ehrlich mit ihnen gewesen sind, werden sie das Vertrauen in uns vollständig verlieren und sich von unseren Produkten abwenden. Das würde den Zusammenbruch der Branche bedeuten, die wir durch das Verschweigen der Tatsachen zu schützen versuchen.
UAC ist ein hochinteressanter Schritt in die Richtung, die Benutzer darin zu ermutigen, die Verantwortung für die Sicherheit ihrer Systeme zu übernehmen. Es ist keine vollständige Sicherheitslösung, aber als ein erster Versuch, Benutzer dabei zu unterstützen, auf niedrigster Berechtigungsebene zu arbeiten, ist es bestimmt ein bedeutender Schritt in die richtige Richtung.

Dr. Jesper M. Johansson ist Principal Security Engineer, der an Problemen der Softwaresicherheit arbeitet und redaktionelle Beiträge für das TechNet Magazin schreibt. Johansson verfügt über einen Ph.D. in MIS und besitzt über zwanzig Jahre Erfahrung in puncto Computersicherheit.


 Die Desktopdateien: PC-Wiederherstellung mit Windows&#160;PE
Die Desktopdateien
PC-Wiederherstellung mit Windows PE
Wes Miller

In früheren Artikeln habe ich erwähnt, dass Windows PE in unserer anfänglichen Vision eine Bereitstellungsumgebung sein sollte. Wie bei allen guten Produkten hat sich Windows PE zu mehr entwickelt, als anfänglich geplant. Kunden (anfänglich OEMs) wollten unbedingt eine Lösung für die vollautomatische Produktions- und Benutzerkontenwiederherstellung entwickeln, und mehrere Unternehmen haben
Windows® PE-Lösungen produziert, die beides können.
Die meisten Wiederherstellungstools, die heute existieren, basieren auf der Voraussetzung, dass ein System in einen bekannten, funktionierenden Zustand zurückgesetzt wird, indem der Bereitstellungsprozess gespiegelt wird. Die Wiederherstellung unter Windows Vista® ist erheblich leichter als unter Windows XP und stellt eine integrierte Abbildunterstützung bereit (siehe dazu den Artikel über die Windows Vista-Sicherungstechnologien von Christine Fok in dieser Ausgabe des TechNet Magazins).
In diesem Artikel wird erörtert, wie Sie Ihre eigene Wiederherstellungslösung auf der Basis von Windows PE erstellen können. Windows PE 2.0 ist als Komponente des Windows-AIK (Automated Installation Kit) für alle Windows-Lizenznehmer frei verfügbar. Diese Lizenz gilt nicht nur für die Bereitstellung, sondern auch, um Windows PE für Wiederherstellungs- und Problembehandlungszwecke einzusetzen.
Wahrscheinlich müssen Sie Ihre eigenen Konfigurationen und Optimierungen in Betracht ziehen, hier jedoch werde ich die allgemeinen Punkte behandeln, an die Sie denken sollten, egal ob Sie Windows XP oder Windows Vista bereitstellen. Wenn Sie mit der Abbilderstellung vertraut sind, ist Ihnen vieles bereits bekannt.
Die Hauptkomponenten jeder Windows PE-Wiederherstellungslösung sind:
  • Windows PE
  • Dienstprogramm zum Erstellen von Abbildern
  • Skriptingverbindung (oder eine spezifische Anwendung), um sie zu verbinden
Optional können Sie SQL-Unterstützung und ADSI-Unterstützung (Active Directory® Service Interfaces) integrieren Mit SQL-Konnektivität können Sie indirekt eine Lösung erstellen, die es Ihren Systemen ermöglicht, eine „Stückliste“ der für eine Installation benötigten Elemente zu führen. Analog ist eine Verbindung zu Active Directory günstig für den Umgang mit MAO-Eigenschaften (Machine Account Object) auf Einzelrechnerbasis.
Das Einbeziehen von ADSI in Windows PE wird von Microsoft nicht unterstützt, aber es gibt ein paar Artikel online, in denen erklärt wird, wie es gemacht wird. Wird es richtig gemacht, funktioniert es sehr gut. Sie können alternativ SQL-Unterstützung einfügen und den Workflow für Ihr Windows PE-Wiederherstellungstool dort einbauen. Wenn Sie ADSI-Eigenschaften benötigen, kann ein Serversystem mit einer geplanten Aufgabe den gleichen SQL Server™ und dann Active Directory über ADSI abfragen. Im Wesentlichen funktioniert dies als Weiterleitung.
Es ist keine perfekte Lösung, und es wird etwas Skripting oder eine andere Automatisierung nötig sein, aber dieser Entwurf erlaubt es Ihnen, von Windows PE aus mit Active Directory zu interagieren.
Sie können auch das LDIFDE-Dienstprogramm verwenden, um Active Directory-Informationen innerhalb von Windows PE auszulesen. (Weitere Informationen finden Sie im Knowledge Base-Artikel unter support.microsoft.com/kb/237677.) Sie können zum Beispiel den folgenden Befehl verwenden:
ldifde -m -f x:\output.ldf -b <username> <domain netbiosname> <accountPassword> -s
<DC or domain name> -d "DC=contoso,DC=com" -r "(&(objectclass=<computerclassname>)
(netbuisname=<mycomputername>))" - l "<attributename>"
Die Eingabe dieses Befehls ruft ein Attribut vom angegebenen Computerobjekt nach x:\output.ldf ab, wo die Ausgabe dann geparst werden kann.

SKUs, Bits und Sprachen
Sie müssen die Versionen, Architekturen und Sprachen der Windows-Plattform berücksichtigen, das Sie bereitstellen. In einer kleinen Organisation mit einem Gebietsschema werden Sie wahrscheinlich nur ein Betriebssystem, Windows XP oder Windows Vista, bereitstellen oder das auf neuen PCs installierte Betriebssystem verwenden. Sie werden wahrscheinlich in diesem Moment nicht viele x64-Windows-Systeme bereitstellen, wenn überhaupt. Sehr wahrscheinlich müssen Sie auch nur eine Sprache unterstützen. Je größer und globaler Ihre Organisation jedoch ist, mit desto mehr Architekturen, Versionen und Konfigurationen werden Sie vermutlich umgehen müssen.
Ich habe in einem früheren Artikel erwähnt, dass Sie x64- und x86-Volumeabbilder in der gleichen WIM-Datei (Windows Imaging Format) speichern können. Dabei sparen Sie jedoch keinen Platz. Wenn Sie eine Wiederherstellungslösung erstellen und beide Architekturen miteinbeziehen müssen, sollten Sie jede in einer separaten WIM-Datei speichern. Wenn Sie sowohl Windows XP als auch Windows Vista bereitstellen und unterstützen, werden Sie keine Einsparungen beim Speichern beider Betriebssysteme im gleichen Abbild erreichen. Die einzigen Einsparungen erhalten Sie, wenn Sie viele Instanzen der gleichen Anwendungen (zum Beispiel 2007 Microsoft® Office System) in beiden Bereitstellungen integrieren. Dann müssen die Anwendungsdateien nicht mehrfach gespeichert werden, aber dies führt sehr wahrscheinlich immer noch nicht zu bedeutenden Einsparungen beim Speicherplatz.
Windows PE-Startmethoden
Windows PE 1.6
PXE-Start von einer Remoteinstallation
Dienst (RIS) (ohne RAMDisk)
Festplattenlaufwerk
USB-Flashlaufwerk
RAMDisk, PXE
RAMDisk, CD/DVD
RAMDisk, USB-Flashlaufwerk
RAMDisk, Festplattenlaufwerk

Windows, PE 2.0
RAMDisk, PXE
RAMDisk, CD/DVD
RAMDisk, USB-Flashlaufwerk
RAMDisk, Festplattenlaufwerk

PXE-Start über RIS Ist ideal, wenn Sie PXE benötigen, aber diese Methode braucht länger für den Start und belegt mehr Netzwerkressourcen, als eine PXE-RAMDisk.
Festplattenlaufwerk Verwendet minimal Speicherplatz, sperrt aber das Laufwerk. Diese Methode ist ideal, wenn Sie ein Flip-Flop-Wiederherstellungsszenario mit zwei Partitionen verwenden.
USB-Flashlaufwerk Vereinfacht den Start, ist jedoch unzuverlässig (sowohl mit und ohne RAMDisk), wenn die zu startenden Systeme nicht vom OEM als über USB-Flashlaufwerk startbar verifiziert worden sind und kein Windows Vista Capable-Logo tragen (letzteres darf nur vergeben werden, wenn ein USB-Flashlaufwerkstart möglich ist). Starten über USB-Flashlaufwerk erfordert ein Hochleistungsflashlaufwerk (für Lese- und Schreibzugriffe) sowie vom USB-Controller und vom BIOS eine Unterstützung von Hochgeschwindigkeits-USB.
RAMDisk-Start (in allen Varianten) erfordert mehr Speicher, liefert aber eine ideale Leistung und schafft Windows PE aus dem Weg, indem es in einer RAMDisk im Speicher abgelegt wird. RAMDisk-Start von Windows PE 1.6 sollte im Allgemeinen nur auf Systemen mit mindestens 256 MB RAM verwendet werden. Windows PE 2.0 (immer ein RAMDisk-WIM-Start) sollte im Allgemeinen nur für Systeme mit mindestens 384 MB RAM durchgeführt werden.

Sie erzielen jedoch beträchtliche Platzeinsparungen, wenn Sie mehrere SKUs einer bestimmten Windows-Version in der gleichen WIM-Datei speichern. Angenommen, Sie kombinieren Windows XP Professional mit Windows XP Tablet PC Edition oder Windows Vista Business Edition mit Windows Vista Ultimate Edition. Diese Kombinationen machen effizienten Gebrauch vom Platz, da sich zwei SKUs mit der gleichen Version und demselben Service Pack viele identische Programme und Dateien teilen.
Schließlich kommt die Sprache ins Spiel. Je größer eine Organisation, desto mehr Sprachen gibt es, die berücksichtigt werden müssen. Bei Windows XP können Sie auswählen, ob lokalisierte Builds oder mehrsprachige Benutzeroberflächen (MUI, Multilingual User Interface) verwendet werden sollen. Bei vollständig lokalisierten Builds von Windows XP wurde nahezu jede kleinste Zeichenfolge in die Zielsprache lokalisiert. Bei MUIs ist die Basissprache Englisch, während MUI-Sprachpakete (und später die Sprachschnittstellenpakete) so viele Sprachzeichenfolgen wie möglich enthalten. (Unter Windows 2000 wurden mit MUIs ordentliche Ergebnisse, erheblich bessere unter Windows XP und Windows Server 2003 erzielt.)
Wenn Ihre Organisation MUIs verwendet, erhalten Sie ein relativ gutes Ergebnis, wenn Sie verschiedene Sprachversionen in der gleichen WIM-Datei kombinieren. Das liegt daran, dass alle im Kern englische Binärdateien verwenden. Dies gilt jedoch nicht für lokalisierte Versionen, die vor Windows Vista veröffentlicht wurden. Da die Binärdateien selbst lokalisiert wurden, wird die gleiche Binärdatei nicht für mehrere Sprachen passen. Das bedeutet, dass Sie fast das ganze Betriebssystem (und alle lokalisierten Anwendungen) für jede Sprache speichern müssen.
Bei Windows Vista können Sie lokalisierte Versionen (lokalisiert als Teil einer einzelnen Binärdatei mit den darin enthaltenen Ressourcen) als veraltet ansehen. Windows Vista verwendet .mui-Ressourcendateien für jede Sprache, einschließlich Englisch. Im Wesentlichen ist Windows Vista sprachenfrei, da sich fast alle Sprachinformationen in MUI-Dateien befinden. Deshalb führt die Speicherung von mehr als einer Sprachversion für Windows Vista in der gleichen WIM-Datei zu erheblichen Platzeinsparungen. Das Speichern von zwei, vier oder mehr Sprachen in einer WIM-Datei bedeutet, dass Sie das Abbild nicht dramatisch vergrößern müssen. Zudem können Sie nach Bedarf Sprachen wechseln oder später hinzufügen.
Im Großen und Ganzen müssen Sie bei der Lösungserstellung prüfen, welche Windows-Versionen bzw. Versionen anderer Anwendungen gemeinsame Binärdateien aufweisen, die in einem einzelnen Speicher abgelegt werden können. Dies wird Ihnen dabei helfen, die Anzahl der benötigten WIM-Dateien zu ermitteln, die Sie innerhalb Ihrer gesamten Organisation benötigen.

Benutzerszenarios
Je größer eine Organisation, desto komplizierter wird im Allgemeinen die Bereitstellung. Dies gilt nicht nur aufgrund der reinen Größe sondern vor allem wegen der vielen Variablen, die eingeführt werden. Sie haben mehr Benutzer und mehr Unternehmenseinheiten mit spezifischeren Anforderungen.
Ich erinnere mich an eine bestimmte multinationale Organisation, sie hatte zehntausende Benutzer und einen Bereitstellungsprozess, der geografisch und organisatorisch vollständig von einem Ort aus verwaltet wurde. Der Leiter dieser Organisation war stets mit einigen sehr komplexen Fragen konfrontiert. Da war zum Beispiel das Problem der Benutzer in bestimmten Teilen Afrikas, die häufig eine schlechte Netzwerkverbindung hatten. Viele von ihnen waren sogar Hunderte von Kilometern von einer Telefonleitung entfernt. Er musste herausfinden, wie diese Benutzer ihre eigenen Systeme wiederherstellen konnten, ohne die Arbeit tagelang zu unterbrechen und große Entfernungen zurücklegen zu müssen.
Wenn Sie ein Produkt entwickeln - Sie sollten Ihre Wiederherstellungslösung in diesem Zusammenhang als Produkt betrachten - müssen Sie an Ihre Benutzer denken. Denken Sie nicht nur an bestimmte Geschäftsanforderungen, sondern auch an die verschiedenen Komplikationen, die mit den verschiedenen Benutzerkategorien verbunden sind. Sie sollten Anwendungsfälle zusammenfassen, indem Sie kurze Beschreibungen verwenden, um jeden Endbenutzertyp zu beschreiben, den Sie unterstützen müssen. Dies kann Ihnen dabei helfen, alle Benutzer zu erkennen, die Sie bei Ihrer Wiederherstellungslösung unbeabsichtigt ausgelassen haben, und sicherstellen, dass Sie die Anforderungen jedes Benutzertyps in Betracht ziehen.

Die richtige Windows PE-Version
Eine andere wichtige Entscheidung ist die Auswahl der passenden Version von Windows PE. Frühere Ausgaben dieser Rubrik können hilfreich sein, aber ich werde hier versuchen, die Entscheidung etwas einfacher zu machen. Wenn einer der folgenden Punkte zutrifft, verwenden Sie Windows PE 1.6:
  • Sie stellen nur Windows XP (oder Windows Server 2003) wieder her.
  • Sie stellen Systeme wieder her, die nicht mit ACPI (Advanced Configuration and Power Interface) kompatibel sind.
  • Sie stellen Systeme wieder her, die nicht mindestens 512 MB RAM besitzen.
  • Sie stellen Systeme wieder her, die über PXE (Pre-Boot eXecution) und mit weniger als 256 MB RAM gestartet werden sollen.
Wenn einer der folgenden Punkte zutrifft, verwenden Sie Windows PE 2.0:
  • Sie stellen nur Windows Vista (oder Windows Server 2008) wieder her.
  • Sie stellen Windows Vista sowie Windows XP wieder her.
  • Sie verwenden BitLocker™.
Denken Sie daran, dass ImageX (vergleiche dazu den Abschnitt „Erstellen, Aktualisieren und Speichern“) und die meisten Lösungen von Drittherstellern zum Erstellen von Abbildern nur mit einer der beiden Versionen von Windows PE gut funktionieren werden.

Starten von Windows PE
Sie sollten als Nächstes berücksichtigen, wie Windows PE startet. Benutzerszenarios spielen hier eine zentrale Rolle. Ist es für Ihre Benutzer realistisch, CDs oder DVDs für eine Wiederherstellung mit sich herumzutragen? Werden sie unterwegs in der Lage sein, das Abbild auf einen Laptop zu überspielen? Und wie halten Sie diese Wiederherstellungsmedien auf dem neuesten Stand? Wiederherstellungsabbilder auf Wechselmedien können sehr schnell veralten.
Das bei weitem gebräuchlichste Szenario, das ich gesehen habe, ist die sekundäre Festplattenpartition. Eine andere Möglichkeit ist das Starten über PXE. Sie können sich auch überlegen, ob Sie externe USB-Laufwerke oder sogar USB-Flashlaufwerke verwenden möchten. Hier ist jedoch Vorsicht geboten, denn die in Frage kommende Hardware muss explizit den Start über ein solches Laufwerk unterstützen.
Unter „Startmethoden bei Windows PE“ (s. Rand) gibt es einen Überblick über die unterstützten Methoden zum Starten jeder Windows PE-Version sowie wichtige Überlegungen zu jeder Methode.
Ihr Ziel beim Starten von Windows PE sollte sein, den Wiederherstellungsprozess unter Erfüllung bestimmter Kriterien einzuleiten:
  • Minimaler Benutzereingriff
  • Minimaler Einsatz von Wechselmedien oder -geräten
  • Wenn der PC ggf. nicht mehr mit dem Netzwerk verbunden ist
  • Wenn der PC ggf. nicht mehr in der Lage ist, lokal zu starten (Windows startet nicht mehr)
Administratoren sind häufig der Meinung, die Speicherung von Windows PE auf der Festplatte (flach oder in einer RAMDisk) sei aufgrund des Risikos eines Laufwerksfehlers nicht praktikabel. Festplatten sind heutzutage jedoch sehr zuverlässig, außerdem kann der Benutzer, wenn das physische Laufwerk tatsächlich versagt, sein System sowieso nicht selbst wiederherstellen. Daher ist die Ablage von Windows PE auf der Festplatte durchaus machbar.
Ich bevorzuge die Erstellung einer sekundären Partition, in der das Wiederherstellungsabbild gespeichert wird. Ich halte nicht viel davon, die Partition zu verstecken. Das verwirrt die Benutzer nur. Die Anwendung einer Zugriffssteuerungsliste (Access Control List, ACL) ist nicht sinnvoll, es sei denn, Ihre Benutzer sind keine lokalen Administratoren.
Durch Verkleinern der Partition, die für Windows verwendet wird (siehe dazu die Randleiste „Erstellen einer Wiederherstellungspartition“), könnte es möglich sein, genügend Platz für Windows PE und das Wiederherstellungsabbild zu erzeugen. Zur Speicherung von Windows PE in der sekundären Partition erstellen Sie einfach den passenden Startsektor auf der Wiederherstellungspartition und speichern Windows PE auf dieser Partition (die Dokumente, die im Windows-AIK und früheren Versionen von Windows PE enthalten sind, enthalten Erläuterungen hierzu). Der zentrale Punkt, den Sie beachten müssen, ist, dass die Startpartition dadurch festgelegt wird, welche Partition als aktiv markiert wurde. Diskpart unterstützt ein „Aktiv“-Kennzeichen und ein gleichermaßen wichtiges „Inaktiv“-Kennzeichen. Wenn Sie die Wiederherstellungspartition innerhalb von Windows oder von Windows PE aus starten möchten, verwenden Sie Diskpart, um zwischen den aktiven Partitionen umzuschalten (siehe Abbildung 1). Es folgt ein Beispiel für ein Diskpart-Skript (verwenden Sie diskpart /s skriptname.txt), das bei einem System mit einer Festplatte und zwei Partitionen zum Wechseln verwendet wird:
SEL DIS 0
SEL PAR 1
INACTIVE
SEL PAR 2
ACTIVE
EXIT
Abbildung 1 Diskpart wechselt aktive Partition
Abbildung 1 Diskpart wechselt aktive Partition
Dies ist der Prozess, den viele Wiederherstellungstools für den Heimanwender verwenden, um Partitionen zu wechseln. Innerhalb von Windows PE ist das nur bei bestimmten Partitionstypen möglich, wie z. B. ausgeblendete OEM-Partitionen. Manchmal machen diese Tools auch eine ausgeblendete OEM-Partition wieder sichtbar.

Erstellen, Aktualisieren und Speichern
Erstellen einer Wiederherstellungspartition
Die Erstellung einer Wiederherstellungspartition, bei der Windows unversehrt bleibt, ist, wenn Sie erst einmal die erforderlichen Schritte kennen, nicht schwierig. Es folgt ein Überblick über die notwendigen Schritte. Denken Sie daran, dieser Prozess erfordert Windows PE 2.0. Auch wenn Sie Windows PE 2.0 vielleicht nicht für die Bereitstellung oder Wiederherstellung verwenden, müssen Sie für diese Aufgabe Version 2.0 verwenden. Dieser Prozess kann auch eingesetzt werden, um Windows Vista bereitzustellen und eine Startpartition zu erstellen, die für die Startdateien von BitLocker verwendet werden kann, da BitLocker mindestens zwei Partitionen erfordert (eine für die Startdateien und eine für den Rest des Windows-Systems).
  1. Defragmentierung des Datenträgers (dies kann den zeitaufwendigen Verkleinerungsprozess beschleunigen)
  2. Start von Windows PE 2.0
  3. Führen Sie Diskpart aus (wenn Sie wollen, können Sie ein Skript für die Schritte 4 bis 9 erstellen und Diskpart das folgende Argument übergeben: /s name_des_skripts
  4. SEL VOL 1 (oder das Volume, das Sie verkleinern wollen)
  5. SHRINK DESIRED=N MIN=N (wird in Megabyte angegeben, DESIRED ist das Ziel und MIN ist das absolute Minimum, das Sie benötigen)
  6. Nach Abschließen der Verkleinerung Ausführen von SEL DIS 0
  7. CRE PAR PRI (Sie können SIZE=N festlegen, wenn Sie eine andere Größe als den auf dem Datenträger verbleibenden Platz angeben wollen)
  8. ASSIGN LETTER=N: (Buchstabe gilt nur für die Verwendung unter Windows PE)
  9. Beenden von Diskpart
  10. FORMAT N: /Q /Y /FS:NTFS (NTFS formatiert die neue Partition)
  11. Ausführung von bootsect N: /nt60 für 2.0, /nt52 für 1.x)
  12. Kopieren der gewünschten Windows PE-Dateien in die Wiederherstellungspartition
  13. Herunterfahren des Systems

Auch wenn ImageX eine frei verfügbare Lösung ist, haben Sie vielleicht bereits ein Abbilderstellungstool, das Sie schon länger verwenden. Sie können das Tool verwenden, mit dem Sie sich am besten auskennen. Bei ImageX gefallen mir einige nennenswerte Dinge (abgesehen vom günstigen Preis). Vor allem ist ImageX bei der Komprimierung dynamisch. Zudem lässt sich ein Abbild relativ leicht anhängen und bearbeiten.
Ein weiterer Vorteil ist, dass mit ImageX zerstörungsfrei ein Abbild von einem oder mehreren Volumes erstellt werden kann, bei dem Benutzerdaten einfach weggepackt werden und dadurch erhalten bleiben. Mit anderen Worten, Sie müssen bei der Wiederherstellung von Windows nicht das ganze Volume löschen.
Dann müssen Sie selbstverständlich entscheiden, wo das Abbild gespeichert werden soll. Angenommen, Ihre Lösung nutzt eine Wiederherstellungspartition, dann können Sie dort eine WIM- oder eine andere Abbilddatei speichern. Sie können sogar überlegen, ob Sie Windows-Bereitstellungsdienste (Windows Deployment Services, WDS) verwenden wollen, um ein standardisiertes Abbild zu erstellen und es auf dem Netzwerk zu speichern. Dies ermöglicht eine gemeinsame Wiederherstellungslösung, die in Ihrer gesamten Infrastruktur verfügbar ist. Wenn Sie Remotebenutzer haben (wie z. B. die früher erwähnten Anwender in entlegenen Gegenden), sollten Sie sicherstellen, dass diese über eine eigene Lösung verfügen, wenn eine Netzwerkverbindung nicht möglich ist.
Ich habe zuvor erwähnt, dass Sie Medien wie z. B. DVDs verwenden können. Allerdings rate ich von einer allgemeinen Nutzung dieser Option aus vielerlei Gründen ab. Zum Beispiel kann die Größe eines Abbilds schnell die Kapazität einer DVD übersteigen. Zudem lassen sich solche Datenträger nicht leicht aktualisieren. Das heißt nicht, dass optische Medien nicht ihren Stellenwert haben. Sie müssen nur überlegen, welches Szenario am besten für welche Benutzertypen geeignet ist. Wie aus dem zuvor Gesagten hervorgeht bevorzuge ich die Speicherung des Abbilds auf einer Wiederherstellungspartition, auf einer USB-Festplatte, auf einem USB-Flashlaufwerk oder, sofern sinnvoll, im Netzwerk mithilfe von WDS.
Ein Aspekt, der WDS zu einer attraktiven Option macht, ist die einfache Aktualisierung eines zentralisierten Abbilds. Windows-Updates werden jeden Monat veröffentlicht, sie sind normalerweise in die Kategorie „kritisch“ einzuordnen. Gestalten Sie Ihre Lösung so, dass das Wiederherstellungsabbild immer so aktuell wie möglich ist. Mit WDS können Sie das Abbild auf jedem Server aktualisieren, und es ist vollständig.

Erwägungen zu Benutzerdaten und Einstellungen
Es gibt ein paar Punkte, die Sie berücksichtigen sollten, wenn Sie eine Wiederherstellungslösung entwickeln. Ein zentraler Aspekt bei der Planung jeder Wiederherstellungslösung ist, dass Ihre Benutzerdaten auch sicher sind. Sie wollen sicher nicht, dass ein Benutzer im Außendienst eine Wiederherstellung durchführt und anschließend entdeckt, dass er alle wichtigen Daten während des Prozesses verloren hat. Im Idealfall sollten Sie die Benutzerdaten irgendwo anders als auf der C:-Partition speichern, es sei denn, Sie achten darauf, wie die Systemwiederherstellung gehandhabt wird.
Ich habe bereits erwähnt, dass Sie mit ImageX einen Datenträger zerstörungsfrei wiederherstellen können. Es wird zum Beispiel die vorhandene Verzeichnisstruktur unter „Dokumente und Einstellungen“ (oder „Benutzer“) in ein anderes Verzeichnis verschoben, damit ein Benutzer oder ein Skript manuell Dateien wiederherstellen kann, nachdem die Wiederherstellung vollständig ist. Benutzer, die all ihre Dateien unterhalb ihres Profils speichern oder servergespeicherte Profile verwenden, sind in den meisten Fällen in der Lage, ein System wiederherzustellen, ohne Benutzerdaten zu verlieren. Allerdings kann dennoch ein Teil der Benutzerdaten verloren gehen, wenn Sie Ihre Wiederherstellungslösung nicht sorgfältig gestalten oder eine perfekte Sicherungslösung haben.
Trotz aller Planung werden einige Benutzer Informationen an anderen Orten als in ihrem Profil speichern. Sie sollten sicherstellen, dass Ihre Lösung vor der Durchführung eine Warnung ausgibt, die den Benutzer darauf hinweist, dass solche Daten verloren gehen können.
Wenn Sie ein verschlüsselndes Dateisystem (EFS, Encrypting File System) verwenden, stellen Sie sicher, dass es Teil Ihres zentralen Wiederherstellungsplans ist, damit Sie keine Daten aufgrund einer nicht wiederherstellbaren Verschlüsselung verlieren. Ähnlich ist es bei BitLocker: Stellen Sie sicher, dass Sie darauf vorbereitet sind, Volumes wiederherzustellen, die damit verschlüsselt wurden. Dazu muss Windows PE 2.0 verwendet werden (1.x kann nicht mit BitLocker interagieren). Weitere Informationen über die Wiederherstellung mit BitLocker finden sie unter blogs.msdn.com/si_team.
Sie müssen damit rechnen, dass einige Benutzer verärgert sind, wenn benutzerdefinierte Einstellungen oder Anwendungen verschwunden sind. Benutzerdefinierte Einstellungen (für Anwendungen und Windows) werden an diversen Orten, nicht nur im Benutzerprofil, gespeichert. Beim Wiederherstellen der gesamten Betriebssystempartition werden einige Benutzer anrufen und fragen „Wo ist X geblieben?“ oder „Warum macht Word nicht mehr Y?“ Stellen Sie sicher, dass Benutzer realistische Erwartungen haben und wissen, dass eine Umgebung nach einer Wiederherstellung nicht mehr genau die gleiche sein kann wie zuvor.
Das Erstellen einer individuellen Wiederherstellungslösung mit Windows PE braucht Zeit. Zudem müssen die Benutzer in Betracht gezogen werden. Eine Wiederherstellungslösung muss nicht übermäßig kompliziert sein. Es genügt, dass Benutzer unter möglichst selbständig und bei minimalem Zeitaufwand ein System wiederherstellen können.

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: Kostenlose Verpflegung und Schulungstipps
Berichte aus der Praxis
Kostenlose Verpflegung und Schulungstipps
Michael Dragone

Ich bin Systemingenieur bei einer Rechtstitelversicherung mit ungefähr 150 Mitarbeitern. Unsere IT-Anforderungen sind eigentlich sehr einfach, da unsere primäre Branchenanwendung webbasiert ist. Deshalb arbeiten wir hauptsächlich mit Internet Explorer® und natürlich Microsoft® Office.
Mit einer so überschaubaren Anwendungspalette wie dieser sollten erwartungsgemäß nur wenige Benutzer, wenn überhaupt, Anwendungsprobleme haben. Zum großen Teil stimmt das auch. Es handelt sich überwiegend um Probleme, die ein durchschnittlicher Leser des TechNet Magazins innerhalb weniger Sekunden lösen könnte.
Mit der Zeit habe ich gelernt, dass sich solche Probleme mit einer guten Benutzerausbildung auf ein Minimum beschränken lassen. Zwei Punkte, die wir für Benutzer in unserem Unternehmen umsetzen, möchte ich an Sie weitergeben, in der Hoffnung, dass Sie sie auch bei Ihren Benutzern hilfreich finden.
Der erste Punkt sind Schulungen. Wir halten in regelmäßigen Abständen Schulungen zu neuen Systemen, zu neu einzuführenden Anwendungen und zu neuen Richtlinien ab. Auch vor wichtigen Systemänderungen führen wir eine Schulung durch und beantworten alle eventuellen Fragen. All das geschieht im Voraus, damit unsere Benutzer gut vorbereitet sind.
Wir planen beispielsweise derzeit ein wichtiges Upgrade unserer Telefonsystems. Die Benutzer können zwar auch danach noch über Outlook® auf ihre Voicemail zugreifen, es wird jedoch dafür eine andere Software verwendet. Wir planen eine Schulung, bei der der Anbieter des neuen Telefonsystems unseren Benutzern die neue Schnittstelle vorstellt und schon im Vorfeld alle Fragen beantwortet.
Wir behandeln auch Themen, die aktuell Probleme verursachen. Wenn Sie auch nur ein wenig bei der Fehlerbehebung mitgearbeitet haben, werden Sie wissen, wovon ich rede. Einer unser Benutzerinnen konnte zum Beispiel nicht verstehen, warum für zwei separate Systeme zwei Kennwörter erforderlich sind. Keine noch so ausführliche Erklärung konnte sie zufrieden stellen. Erst eine PowerPoint®-Präsentation brachte ihr schließlich das nötige Aha-Erlebnis.
Meiner Erfahrung nach tragen kostenlose Verpflegung und eine entspannte Atmosphäre erheblich zum Gelingen einer Schulung, ganz gleich zu welchem Thema, bei. Ermuntern Sie Ihre Benutzer, Fragen zu stellen, auch wenn sie diese als „dumm“ empfinden.
Mein zweiter Tipp ist es, einfach ab und zu eine Runde durch die Abteilungen zu machen. Jeden Tag nehme ich mir 10 bis 15 Minuten Zeit, um mich „unter das Volk zu mischen“. Sehe ich dabei jemanden, der auf ungewöhnliche Weise an eine Aufgabe herangeht, bespreche ich mit diesem Mitarbeiter kurz, warum er oder sie so vorgeht. Oft schon konnte ich dann den einen oder anderen hilfreichen Rat geben. Einer unserer Benutzer hat zum Beispiel immer aus Versehen die Symbolleiste in Outlook umgestellt und wusste nicht, wie er das Problem beheben sollte. Völlig unbemerkt kämpfte er damit, bis ich es endlich einmal bemerkte. Ich zeigte ihm, wie er seine Symbolleisten verändern kann, so dass er sie, wenn er sie wieder einmal versehentlich umgestellt hatte, wieder nach Bedarf einstellen kann.
Andere Benutzer haben möglicherweise Probleme, die sie beim Helpdesk aus einer Reihe von Gründen nicht vorbringen möchten. Manchen ist es vielleicht peinlich, sie denken, ihre Fragen seien dumm und nichts, womit sich ein Helpdesk normalerweise beschäftigen sollte. Andere arbeiten mit einer schlechten Tastatur oder Maus, ohne zu wissen, dass die IT-Abteilung für solche Gelegenheiten Ersatzgeräte bereit hält. Wenn Sie sich ein paar Minuten Zeit für Ihre Benutzer nehmen, können Sie viele dieser Punkte lösen und auch Ideen für die nächste Schulung sammeln. (Vergessen Sie die kostenlose Verpflegung nicht!)
Sie müssen die Benutzer bei allen Aspekten Ihrer Arbeit berücksichtigen. Die meisten, wenn nicht sogar alle Änderungen, die Sie an Ihrem System, den Richtlinien und den Verfahren vornehmen, haben eine Auswirkung auf die Benutzer. Jeder Benutzer ist einmalig und wird auf seine Art auf diese Änderungen reagieren.
Für uns, denen die Technologie in Fleisch und Blut übergegangen ist, ist es bisweilen schwierig, sich in Benutzer, die keinen technischen Hintergrund haben, hineinzuversetzen. Mit ein wenig Geduld und einigen Schulungen machen Sie Ihre Benutzer zu Computerfreunden. Aber nichts überstürzen.

Michael Dragone ist Systemingenieur bei einer Rechtstitelversicherung in New York. Er besitzt die Qualifikationen MCDST und MCSE: Messaging. Seine Hobbys sind lange Strandspaziergänge, sein Hund und vollständig gepatchte Server.


 Windows Confidential: Der Balanceakt der bekannten DLLs
Windows Confidential
Der Balanceakt der bekannten DLLs
Raymond Chen

Das inoffiziell als „Known DLLs“ bezeichnete Windows- Feature bezieht sich auf eine Liste von DLLs (Dynamic Link Libraries), die vom Modulladeprogramm des Kernels besonders behandelt werden. Wenn das Ladeprogramm ein Programm mit einem ladezeitdynamischen Link zu einer bekannten DLL entdeckt, wird sofort die bekannte Kopie verwendet, und der Suchalgorithmus, der normalerweise für die Modulladung gilt, wird ignoriert. Dies könnte als (zugegebenermaßen recht schwaches) Sicherheitsfeature betrachtet werden, doch die Sicherheit war nie Ziel dieses Features. Bei den bekannten DLLs geht es allein um die Leistung.
Die Funktionsweise dieses Features hat sich im Lauf der Zeit verändert. In einigen Windows®-Versionen verwendet der Kernel die Liste der bekannten DLLs als Ausgangspunkt, betrachtet dann alle DLLs, mit denen diese bekannten DLLs verknüpft sind, dann alle DLLs, mit denen diese DLLs verknüpft sind, und so weiter. Dieser Prozess erstellt den transitiven Abschluss aller Abhängigkeiten und behandelt alle gefundenen DLLs als bekannt. In anderen Windows-Versionen wird dieser transitive Abschluss nicht erstellt, vielmehr werden nur ausdrücklich als bekannt aufgeführt DLLs als solche behandelt. In einigen Windows-Versionen werden die bekannten DLLs vom Kernel beim Starten des Systems vorab geladen, während in anderen Versionen dieses Vorabladen nicht stattfindet und der Kernel die Liste nur verwendet, um nicht nach dem Pfad einer DLL suchen zu müssen.
Doch es ist nicht nur die Interpretation der Liste bekannter DLLs, die sich von Version zu Version ändert. Der Inhalt des KnownDLLs-Registrierungsschlüssel ist ebenfalls Gegenstand von Änderungen. Das Team, das sich mit der Leistung von Windows befasst, ändert sowohl die Liste bekannter DLLs als auch die Regeln für das Konvertieren der Liste in einen Satz DLLs auf der Grundlage der Art und Weise, wie Anwendungen Windows verwenden. Wie immer im technischen Bereich werden dabei Kompromisse eingegangen. Das Vorabladen bekannter DLLs beim Systemstart ermöglicht es den Anwendungen, die diese DLLs verwenden, schneller zu starten, aber dies hat einen Nachteil. Das System braucht länger zum Starten, und der Speicherverbrauch nimmt zu, da diese DLLs unabhängig davon, ob sie tatsächlich verwendet werden oder nicht, im Speicher verbleiben. Die Leistungsverbesserung einiger Komponenten erfolgt also auf Kosten anderer. Hier das richtige Gleichgewicht zu finden, ist schwierig, und wie Sie sehen, finden aufgrund der Entwicklung von Verwendungsmustern ständig neue Feinabstimmungen statt.
Eine nicht sofort offensichtliche Eigenschaft bekannter DLLs besteht darin, dass diese Vorrang vor lokal umgeleiteten DLLs haben. (Informationen zu lokal umgeleiteten DLLs finden Sie in dieser Rubrik in der Ausgabe vom Januar 2007.) Eigentlich ist dieses Verhalten zu erwarten und keine Laune. Schließlich besteht der Zweck der Liste bekannter DLLs darin, den Suchpfad zu umgehen und dadurch das Laden von DLLs zu beschleunigen. Wenn der Kernel nach lokal umgeleiteten DLLs suchen müsste, würde alles wieder verlangsamt werden. Vielleicht sind Sie der Meinung, dass das Hinzufügen eines einzigen Verzeichnisses zum Suchpfad nicht weiter schwierig ist, doch wenn dieses eine Verzeichnis ein Netzwerkserver auf der anderen Seite des Globus ist, nimmt selbst das Hinzufügen nur eines Verzeichnisses enorm viel Leistung in Anspruch.
Es gibt tatsächlich Programme, die sich darauf verlassen, dass bestimmte DLLs bekannt sind. Ein Programm hatte beispielsweise eine Datei namens „Version.dll“ im Anwendungsverzeichnis. Unter normalen Umständen würde diese private Kopie von Version.dll jene im Systemverzeichnis außer Kraft setzen, doch in Windows XP wird Version.dll als bekannte DLL aufgelistet. Das bedeutet, dass die Kopie im Anwendungsverzeichnis ignoriert und stattdessen die Version im Systemverzeichnis verwendet wird.
In Windows Vista® wird Version.dll nicht mehr als bekannte DLL aufgeführt, da das für Leistung zuständige Team wahrscheinlich der Meinung war, dass die Datei von Anwendungen nicht genug verwendet wurde, um die Leistungsnachteile zu rechtfertigen. Aus diesem Grund funktionierte dieses Programm unter Windows Vista nicht mehr, weil die Anwendung davon abhängig war, dass das Kernel die DLL ignorieren würde, die das Programm in seinem eigenen Anwendungsverzeichnis installiert hatte. Das Programm installierte absichtlich eine DLL im Suchpfad und verließ sich dann darauf, dass Windows sie ignorieren würde! Wenn Windows die Datei ignorieren sollte, wäre es sicherlich viel effizienter gewesen, die Datei erst gar nicht zu installieren. Der Clou ist, dass das Unternehmen, das das Programm geschrieben hatte, einen Fehler monierte und behauptete, es habe eine Sicherheitslücke entdeckt.

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. Er weiß nicht mehr, welche T-Shirt-Größe er trägt.