Windows- Administration – Die technische Referenz
Transcrição
Windows- Administration – Die technische Referenz
Dan Holme Microsoft WindowsAdministration – Die technische Referenz Dieses Buch ist die deutsche Übersetzung von: Windows Administration Resource Kit: Productivity Solutions for IT Professionals Microsoft Press, Redmond, Washington 98052-6399 Copyright 2008 Microsoft Corporation Das in diesem Buch enthaltene Programmmaterial ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor, Übersetzer und der Verlag übernehmen folglich keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programmmaterials oder Teilen davon entsteht. Das Werk einschließlich aller Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die in den Beispielen verwendeten Namen von Firmen, Organisationen, Produkten, Domänen, Personen, Orten, Ereignissen sowie E-Mail-Adressen und Logos sind frei erfunden, soweit nichts anderes angegeben ist. Jede Ähnlichkeit mit tatsächlichen Firmen, Organisationen, Produkten, Domänen, Personen, Orten, Ereignissen, E-Mail-Adressen und Logos ist rein zufällig. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 10 09 08 ISBN 978-3-86645-919-9 © Microsoft Press Deutschland (ein Unternehmensbereich der Microsoft Deutschland GmbH) Konrad-Zuse-Str. 1, D-85716 Unterschleißheim Alle Rechte vorbehalten Übertragung ins Deutsche: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com) Korrektorat: Jutta Alfes und Karin Baeyens, Siegen Satz: G&U Language & Publishing Services GmbH, Flensburg (www.GundU.com) Umschlaggestaltung: Hommer Design GmbH, Haar (www.HommerDesign.com) Herstellung, Druck und Bindung: Kösel, Krugzell (www.KoeselBuch.de) III Inhaltsverzeichnis Danksagungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXVII Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIX Schreibweisen in diesem Buch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXX Hinweiskästen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXI Auszeichnung durch Schriftschnitte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXI Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXI Zusätzliche Inhalte im Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXI Suchen nach zusätzlichen Inhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXII Begleit-CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXII Verwendung der Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXII Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXXIII Lösungsgruppe 1: Rollenbasierte Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die 80/20-Regel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skripts und Werkzeuge auf dem Begleitmedium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Werkzeuge von Microsoft und von Drittanbietern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Onlinecommunity zu dieser technischen Referenz . . . . . . . . . . . . . . . . . . . . . . . . . . . Los geht's! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Active Directory-Benutzer und -Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DS-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Batchskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auflisten der Gruppenmitgliedschaften mit VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . Warum VBScript? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die nächsten Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HTML-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer HTML-Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8 8 9 10 10 11 11 11 12 13 14 15 26 27 27 27 27 27 28 29 29 36 36 IV Inhaltsverzeichnis 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Argumente in HTML-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integrieren einer benutzerdefinierten HTML-Anwendung in eine MMC mithilfe von Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Integrieren einer benutzerdefinierten HTML-Anwendung in eine MMC mithilfe von Anzeigebezeichnern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufgaben und Anzeigebezeichner im Vergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Grundlagen der rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rollengruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verschachtelung von Rollengruppen in Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . Andere Arten der Verschachtelung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daten, Geschäftslogik und Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Werkzeuge von Drittanbietern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Einrichten einer rollenbasierten Zugriffssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rollengruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Darstellen von Geschäftsanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umsetzen von Befugnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisieren und Bereitstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . My Memberships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Access Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Überwachen der rollenbasierten Zugriffssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Einrichten der rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übersicht über die rollenbasierte Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorstellen und Verteidigen der rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . Der Weg zur rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tokengröße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 37 38 38 40 44 47 48 48 48 48 50 50 53 54 55 55 56 56 56 56 57 62 65 65 66 66 66 66 67 68 71 74 76 77 77 77 78 79 81 83 87 Inhaltsverzeichnis V Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben . . . . . . . . . . . . . . . . . . . . . 89 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Effizientes Arbeiten mit dem ACL-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der ACL-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bestimmen der effektiven Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Verwalten der Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer breiten statt einer tiefen Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . Darstellen von freigegebenen Ordnern in einer logischen Hierarchie mithilfe von DFS-Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Verwalten des Zugriffs auf Stammdatenordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von mindestens einem konsistenten Stammdatenordner auf jedem Dateiserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten und Durchsetzen von Zugriffssteuerungslisten für Stammdatenordner durch Gruppenrichtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Delegieren der Verwaltung von freigegebenen Ordnern . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dedizierte Dateiserver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Verwaltung freigegebener Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Festlegen der freizugebenden Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der freizugebenden Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Lesebefugnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Befugnis zum Wechsel zu einer Ressource . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Bearbeitungsbefugnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Beitragsbefugnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Ablagebefugnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten einer Unterstützungsbefugnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Skripts zur konsistenten Anwendung der Berechtigungen . . . . . . . . . . . . . . 90 92 92 92 92 96 99 99 99 100 100 103 103 103 103 104 104 105 107 107 107 107 107 107 109 110 110 110 111 112 112 112 112 113 114 115 117 117 118 118 VI Inhaltsverzeichnis 2.7 2.8 2.9 2.10 2.11 2.12 2.13 Verwalten der Ordnerzugriffsbefugnisse durch rollenbasierte Zugriffssteuerung . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Berechtigungen für freigegebene Ordner (SMB-Berechtigungen) . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skripterstellung für SMB-Berechtigungen auf lokalen und Remotesystemen . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Skripts zum Erstellen einer SMB-Freigabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Share_Create.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anpassen von Share_Create.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von Share_Create.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen freigegebener Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Folder_Provision.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlegende Anpassung von Folder_Provision.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Code von Folder_Provision.hta und die erweiterte Anpassung . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vermeiden der Vererbungsweiterleitung beim Verschieben von Dateien und Ordnern . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wie sich das Problem darstellt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Was geschieht hinter den Kulissen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung für das Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informieren der Benutzer und Ändern der Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Besteht die Gefahr einer Sperrung? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verbergen nicht zugänglicher Objekte vor den Benutzern . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine Sichtweise: Kümmern Sie sich nicht darum! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine zweite Sichtweise: Verwalten Sie die Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eine dritte Sichtweise und eine Lösung: Zugriffsbasierte Auflistung . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wer hat eine Datei geöffnet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 120 120 120 120 122 123 123 123 123 123 124 124 125 125 125 126 127 129 130 134 135 135 135 136 137 138 138 139 139 139 140 141 141 142 142 142 142 143 143 144 144 144 144 2.14 2.15 2.16 2.17 2.18 Inhaltsverzeichnis VII Verwenden von FileServer_OpenFile.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von FileServer_OpenFile.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Senden von Nachrichten an die Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Message_Notification.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von Message_Notification.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausführen eines Skripts auf einem Remotecomputer mit PSExec . . . . . . . . . . . . . . . . . . . Auflisten der geöffneten Sitzungen auf einem Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden und Anpassen von FileServer_NotifyConnectedUsers.vbs . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Serverübergreifendes Verteilen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verteilen von Dateien mit Robocopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verteilen von Dateien mit DFS-Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Speicherplatzverwaltung mit Kontingenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Neue Merkmale der Kontingentverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kontingentvorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwenden eines Kontingents auf einen Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktivieren von Schattenkopien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen und Konfiguration von Schattenkopien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zugriff auf vorherige Versionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines effektiven delegierten DFS-Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von DFS-Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren von DFS-Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verknüpfen von DFS-Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von DFS-Namespaces für die Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 145 145 146 146 146 146 147 147 149 149 150 150 150 150 150 151 153 153 153 153 153 154 154 156 156 156 156 157 159 160 161 162 162 162 163 163 165 166 168 VIII Inhaltsverzeichnis Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen . . . . . . . . . . . . . . . . . . . . 169 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Grund für die Definition der Geschäftsanforderungen . . . . . . . . . . . . . . . . . . . . . . . . Definieren der Geschäftsanforderungen auf hoher Ebene . . . . . . . . . . . . . . . . . . . . . . . . . Ableiten wichtiger Entwurfsentscheidungen aus Geschäftsanforderungen hoher Ebene . Ableiten von Anforderungen aus wichtigen Entwurfsentscheidungen . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von UDS-Optionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anpassen der Optionen für Benutzerdaten und -einstellungen an die Anforderungen und Szenarien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bewerten der Ergebnisse für stationäre und mobile Benutzer . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen des Stammordners für den Benutzerdatenspeicher . . . . . . . . . . . . . . . . . . . . . . . Anpassen des physischen Namespace an Verwaltungsanforderungen wie Kontingente . . Erstellen von Datenspeichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren von Dateiprüfungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen des SMB-Namespace für den Benutzerdaten- und -einstellungsspeicher . . . . . . Entwerfen der logischen Sicht des Benutzerdatenund -einstellungsspeichers mit DFS-Namenräumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines DFS-Namespace für Tausende von Benutzern . . . . . . . . . . . . . . . . . . . . . Der Einfluss von Datenverschiebungen und Namespaceänderungen . . . . . . . . . . . . . . . . Der Einfluss von %username%-Änderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines abstrakten DFS-Namespace für Benutzerdaten und -einstellungen (ohne Standort- und Personennamen) . . . . . . . . . . . . . . . . . . . . . . . . . Automatisieren der Erstellung von Benutzerdatenspeichern und DFS-Namespaces . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Entwerfen und Ausführen der Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen der Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 172 172 172 172 174 177 178 181 181 181 181 182 185 187 188 188 188 188 190 195 203 204 204 205 205 206 206 209 211 212 213 215 215 216 217 217 217 218 3.6 3.7 3.8 3.9 Inhaltsverzeichnis IX Konfigurieren von Richtlinien für die Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der Ziele für die Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einstellungen für die Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unterstützung der Umleitung für Benutzer mit sowohl Windows XP als auch Windows Vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umleitung ohne Gruppenrichtlinien: Favoriten, Musik, Bilder und Videos . . . . . . . . . . . Erzielen einer einheitlichen Umgebung für Windows XP und Windows Vista mit umgeleiteten Ordnern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren von Offlinedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen des Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen der Zwischenspeicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen der Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen des Offlinemodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nutzen von Offlinedateien für das UDS-Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Offlinedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entwerfen und Einrichten von servergespeicherten Profilen . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Struktur des Windows Vista-Benutzerprofils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Bestandteile von Benutzerprofilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren der nicht servergespeicherten Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren servergespeicherter Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erkennen der V2-Endung von servergespeicherten Windows Vista-Profilen . . . . . . . . . . Vereinheitlichen der Arbeitspraxis von Windows XP- und Windows Vista-Benutzern . . Legenden über servergespeicherte Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Vorteile servergespeicherter Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten des Ordners mit den Anwendungsdaten (AppData\Roaming) . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten lokal gespeicherter Benutzerdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Welche Daten sollen nur lokal verwaltet werden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entwerfen einer Ordnerstruktur für rein lokale Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten von Ordnern für rein lokale Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sicherstellen, dass die Anwendungen die verschobenen Medienordner finden . . . . . . . . . Umleiten von rein lokal behandelten Windows XP-Medienordnern . . . . . . . . . . . . . . . . . Vorsehen von Möglichkeiten zum Auffinden verschobener Ordner . . . . . . . . . . . . . . . . . Informieren und Schulen der Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von nur lokal zugänglichen Benutzerdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 221 225 228 230 234 236 237 237 237 238 238 239 239 239 247 248 248 248 249 249 252 253 254 255 255 256 257 257 258 259 259 260 260 262 262 263 264 265 265 265 265 266 X Inhaltsverzeichnis Festlegen des Namens für den Order mit lokalen Dateien . . . . . . . . . . . . . . . . . . . . . . . . . Option 1: Verwenden eines Ordners mit servergespeichertem Profil . . . . . . . . . . . . . . . . Option 2: Nutzen von Offlinedateien (nur Windows Vista) . . . . . . . . . . . . . . . . . . . . . . . . Option 3: Erstellen eines lokalen Ordners, der auf einem Netzwerkspeicher gesichert wird . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der Ziele einer Synchronisationslösung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Robocopy als Sicherungsmodul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Folder_Synch.vbs als Wrapper für Robocopy . . . . . . . . . . . . . . . . . . . . . Bereitstellen von Folder_Synch.vbs und Robocopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wie und wann soll Folder_Synch.vbs für die einzelnen lokalen Speicher ausgeführt werden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manuelles Starten von Folder_Synch.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rechtsklicken und Sichern eines Ordners mit einem Shellbefehl . . . . . . . . . . . . . . . . . . . Die manuellen Optionen für Folder_Synch.vbs im Vergleich . . . . . . . . . . . . . . . . . . . . . . Automatisches Ausführen von Folder_Synch.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausführen von Folder_Synch.vbs nach einem Zeitplan . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausführen von Folder_Synch.vbs als Anmelde-, Abmelde-, Startskript oder Skript zum Herunterfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Protokollieren und Überwachen der Synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Herausforderung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ermitteln der gewünschten Klassen von Datenspeichern . . . . . . . . . . . . . . . . . . . . . . . . . . Analysieren und Klassifizieren der Benutzerdatenspeicher und Daten . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 267 267 269 270 270 270 270 271 272 273 273 274 274 276 278 279 279 280 281 282 283 283 283 283 284 284 287 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint . . . . . . . . . . . 289 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Erstellen und Einrichten einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einstellungen für die Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen des Titels der Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktivieren und Deaktivieren von Ordnern innerhalb der Dokumentbibliothek . . . . . . . . . Ändern der Standardvorlage für die Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 291 291 291 292 292 294 295 296 297 4.2 4.3 4.4 4.5 Inhaltsverzeichnis XI Einrichten der Sicherheit für die Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten der Berechtigungen für Dokumentbibliotheken, Ordner und Dokumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer Spalte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arbeiten mit benutzerdefinierten Spalten aus Microsoft Office-Clients . . . . . . . . . . . . . . Arbeiten mit Dokumenteigenschaften aus der SharePoint-Webschnittstelle . . . . . . . . . . . Ändern und Löschen von Bibliotheksspalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umordnen von Spalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Websitespalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Websitespalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden einer Websitespalte in einer Liste oder Bibliothek . . . . . . . . . . . . . . . . . . . . . Ändern und Löschen von Websitespalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von verwalteten Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Inhaltstyps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen von Inhaltstypen zu einer Liste oder Bibliothek . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von untergeordneten Website- und Listeninhaltstypen . . . . . . . . . . . . . . . . . Schreibschutz für einen Inhaltstyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ändern Sie keine standardmäßigen SharePoint-Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten mehrerer Vorlagen für eine Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer zentralen Bibliothek für Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen des Inhaltstyps für eine Vorlage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren einer Bibliothek zur Unterstützung der Inhaltstypen . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen, Speichern und Hochladen von Dokumenten in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines neuen Dokuments mit der Schaltfläche Neu . . . . . . . . . . . . . . . . . . . . . . . Hochladen von Dokumenten mit den Befehlen unter Hochladen . . . . . . . . . . . . . . . . . . . Hinzufügen von Dokumenten mit Windows Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . Speichern von Inhalten einer SharePoint-kompatiblen Anwendung in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . E-Mail-Aktivierung einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 299 300 300 300 300 301 303 305 307 307 308 308 308 309 310 310 310 310 310 313 314 315 315 315 316 316 316 316 317 317 318 318 318 318 318 319 320 321 321 322 XII Inhaltsverzeichnis 4.6 Erstellen von Verknüpfungen zu Dokumentbibliotheken für Endbenutzer . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Netzwerkressourcen (Windows XP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Netzwerkressourcen (Windows Vista) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7 Isolieren und Verwalten von hochgeladenen Dokumenten in Bibliotheken mit mehreren Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8 Arbeiten mit Dokumenten in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen eines Dokuments in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . Bearbeiten eines Dokuments in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . Öffnen eines Dokuments mit Office 2007-Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Überwachen von Änderungen an Bibliotheken und Dokumenten mit Warnungen und RSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abonnieren von E-Mail-Warnungen für eine Bibliothek oder ein Dokument . . . . . . . . . . Überwachen der Bibliotheksaktivität mit RSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.10 Steuern der Dokumentbearbeitung durch Auschecken . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erzwingen des Auscheckens von Dokumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auschecken von Dokumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wie wirkt das Auschecken auf den Benutzer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten des Eincheckens von Dokumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11 Einrichten und Warten des Dokument-Versionsverlaufs . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren des Versionsverlaufs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Haupt- und Nebenversionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Dokumentversionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vergleichen von Dokumentversionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.12 Einrichten der Inhaltsgenehmigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren der Inhaltsgenehmigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 322 322 322 323 324 324 324 324 325 326 326 326 326 326 326 327 327 327 327 328 329 329 329 329 329 329 330 331 331 332 333 333 333 333 334 334 335 335 335 335 335 335 4.13 4.14 4.15 4.16 Inhaltsverzeichnis XIII Das Zusammenwirken von Inhaltsgenehmigung, Versionssteuerung und Auschecken . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten eines Drei-Status-Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten des Auswahlfelds für den Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten des Drei-Status-Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starten und Verwalten des Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gliedern und Verwalten von Dokumenten mit Ordnern und Ansichten . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufteilen des Dokumentverwaltungsbereichs mit Ordnern . . . . . . . . . . . . . . . . . . . . . . . . Aufteilen der Darstellung und Verwaltung von Dokumenten mit Ansichten . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren der WSS-Indizierung von PDF-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deaktivieren der Suche innerhalb einer Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktivieren der Indizierung von PDFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zuweisen eines Symbols zu nicht erkannten Dateitypen . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Offline arbeiten mit SharePoint-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Herunterladen einer Kopie der Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Offlinezugriff auf Dateien mithilfe des lokalen Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . Offlinestellen von Bibliotheken und Listen mit Outlook 2007 . . . . . . . . . . . . . . . . . . . . . Weitere Möglichkeiten für die Offlineverwendung von SharePointDokumentbibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 336 336 336 336 337 337 339 340 340 340 341 341 341 342 342 342 342 342 343 345 346 346 346 346 347 347 348 349 349 Lösungsgruppe 5: Active Directory-Delegierung und administrative Sperrung . . . . . . . . . . . . 351 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Bestandteile und Werkzeuge der Active Directory-Delegierung . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Active Directory-Objektzugriffssteuerungslisten und des ACL-Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Zugriffssteuerungseinträgen für Active Directory-Objekte . . . . . . . . . . . . Die goldenen Regeln der Delegierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ihr Freund zum Zuweisen von Berechtigungen: der Assistent zum Zuweisen der Objektverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten der Darstellung der Delegierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 353 353 353 353 355 357 358 360 361 XIV Inhaltsverzeichnis 5.2 Anpassen des Assistenten zum Zuweisen der Objektverwaltung . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Speicherort und Grundlagen von Delegwiz.inf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anpassen von Delegwiz.inf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden der neuen Version von Delegwiz.inf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Anpassen der Berechtigungen im ACL-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erkennen von verborgenen Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ändern von Dssec.dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sicherstellen der Sichtbarkeit aller zu delegierenden Berechtigungen . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Auswerten, Anzeigen und Widerrufen von Active Directory-Berechtigungen . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Active Directory-Berechtigungen mit Dsacls . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Active Directory-Berechtigungen mit ACLDiag . . . . . . . . . . . . . . . . . . . . Anzeigen von Active Directory-Berechtigungen mit ADFind . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Active Directory-Berechtigungen mit DSRevoke . . . . . . . . . . . . . . . . . . . . Auswerten von Active Directory-Berechtigungen für bestimmte Benutzer oder Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Widerrufen von Active Directory-Berechtigungen mit DSRevoke . . . . . . . . . . . . . . . . . . Widerrufen von Active Directory-Berechtigungen mit Dsacls . . . . . . . . . . . . . . . . . . . . . Zurücksetzen von Berechtigungen auf den Schemastandard . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Zuweisen und Widerrufen von Berechtigungen mit Dsacls . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die grundlegende Syntax von Dsacls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren von Berechtigungen zur Verwaltung von Computerobjekten . . . . . . . . . . . . . Gewähren von Berechtigungen zur Verwaltung anderer gängiger Objektklassen . . . . . . . Delegieren anderer häufiger Aufgaben mit Dsacls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Definieren des Verwaltungsmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Definieren der Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen des Gültigkeitsbereichs für jede Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bündeln von Aufgaben in einem Gültigkeitsbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der Regeln, nach denen die Aufgabenbündel durchgeführt werden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 361 361 362 365 366 367 367 367 368 368 369 371 371 371 371 372 372 372 373 375 376 377 377 377 379 379 379 379 379 380 381 382 388 388 388 388 389 389 389 390 390 Inhaltsverzeichnis XV 5.7 Rollenbasierte Verwaltung der Active Directory-Delegierung . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Probleme beim Modell der nicht verwalteten Delegierung . . . . . . . . . . . . . . . . . . . . . Erstellen von Befugnisverwaltungsgruppen zur Verwaltung der Delegierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zuweisen von Berechtigungen an Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . . . . . Delegieren der Steuerung durch Hinzufügen von Rollen zu Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von detaillierten Befugnisverwaltungsgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Berechtigungen bei der rollenbasierten Delegierung . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8 Skripterstellung für die Delegierung in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Notwendigkeit der skriptgesteuerten Delegierung . . . . . . . . . . . . . . . . . . . . . . . . . . . Skriptgesteuerte Delegierung mit Dsacls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.9 Delegieren der Verwaltung und Unterstützung von Computern . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der Gültigkeitsbereiche von Computern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Befugnisverwaltungsgruppen für die Verwaltungsbereiche . . . . . . . . . . . . Delegieren der lokalen Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten des Gültigkeitsbereichs der Delegierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Entfernen der Gruppe Domänen-Admins aus der lokalen Administratorengruppe . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10 Leeren so vieler integrierter Gruppen wie möglich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Verwaltung an benutzerdefinierte Gruppen . . . . . . . . . . . . . . . . . . . . . . . . Erkennen geschützter Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Versuchen Sie nicht, die Delegierung integrierter Gruppen aufzuheben! . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 390 390 391 392 393 393 393 394 396 396 396 396 396 397 398 398 398 399 399 399 400 402 403 404 404 404 404 404 404 405 406 Lösungsgruppe 6: Verbessern der Verwaltung von Computern . . . . . . . . . . . . . . . . . . . . . . . . 407 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Empfohlene Vorgehensweisen für die Verwaltung von Computern in Active Directory . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten von Namenskonventionen für Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen der Anforderungen für den Beitritt von Computern zu Domänen . . . . . . . . . . Einrichten von Active Directory für die Delegierung der Verwaltung von Computerobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 409 409 409 409 410 411 XVI Inhaltsverzeichnis 6.2 6.3 6.4 6.5 6.6 Delegieren von Berechtigungen zum Erstellen von Computern in der Domäne . . . . . . . . Erstellen eines Computerobjekts in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren von Berechtigungen für den Domänenbeitritt von Computern mithilfe vorhandener Computerobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen von Computern zu einer Domäne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sicherstellen der korrekten Anmeldung nach dem Beitritt zu einer Domäne . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Steuern des Beitritts nicht verwalteter Computer zur Domäne . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Konfigurieren des Standardcontainers für Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Computerobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Computer_JoinDomain.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Computerkonten mit Computer_JoinDomain.hta . . . . . . . . . . . . . . . . . . . . Erstellen eines Kontos und Beitreten zu einer Domäne mit Computer_JoinDomain.hta . Grundlagen von Computer_JoinDomain.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verteilen von Computer_JoinDomain.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Computerrollen und Befugnissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisieren der Verwaltung von Desktop- und Laptopgruppen . . . . . . . . . . . . . . . . . Anpassen und Verwenden von Computer_DesktopsLaptops.vbs . . . . . . . . . . . . . . . . . . . Bereitstellen von Software mit Computergruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bezeichnen und Verwalten anderer Computerrollen und -befugnisse . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zurücksetzen von Computern und Neuzuweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erneutes Beitreten zu einer Domäne ohne Zerstörung der Gruppenmitgliedschaften eines Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Korrektes Ersetzen eines Computers durch Zurücksetzen und Umbenennen des Computerobjekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ersetzen eines Computers durch Kopieren der Gruppenmitgliedschaften und Attribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einrichten der Beziehungen zwischen Benutzern und ihren Computern mit integrierten Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verfolgen der Zuweisung eines Computers zu einem einzelnen Benutzer oder einer Gruppe mit dem Attribut managedBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 413 414 415 417 418 418 418 419 420 422 423 423 423 424 426 427 429 429 429 429 429 430 430 431 432 433 433 434 434 434 434 435 436 437 437 437 437 438 Inhaltsverzeichnis Verfolgen der Zuweisung von Computern zu einem Benutzer mit dem Attribut manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7 Nachverfolgen der Zuweisung von Computern zu Benutzern durch Erweitern des Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Einfluss der Schemaerweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planen der Objektklassen ComputerAssignedTo und ComputerInfo . . . . . . . . . . . . . . . . . Erwerben einer Objektkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Registrieren des Snap-Ins Active Directory-Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Haben Sie die Berechtigungen für eine Schemaänderung? . . . . . . . . . . . . . . . . . . . . . . . . Verbindung mit dem Schemamaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen des Attributs ComputerAssignedTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen der Objektklasse ComputerInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verknüpfen der Objektklassen ComputerInfo und Computer . . . . . . . . . . . . . . . . . . . . . . Vergeben eines Anzeigenamens für das Attribut ComputerAssignedTo . . . . . . . . . . . . . . Replizieren der Änderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Berechtigungen zum Ändern des Attributs . . . . . . . . . . . . . . . . . . . . . . . . Integrieren von Computer_AssignTo.hta in Active Directory-Benutzer und -Computer . Hinzufügen anderer Attribute zu Computerobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.8 Einrichten von selbstständig angezeigten Computerinformationen . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bestimmen der gewünschten Informationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wo sollen die Informationen erscheinen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von Computerinformationen mit Computer_InfoToDescription.vbs . . . . . . . . . Grundlagen von Computer_InfoToDescription.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Offenlegen der Berichtsattribute in Active Directory-Benutzer und -Computer . . . . . . . . Delegieren der Berechtigungen für die Anzeige von Computerinformationen . . . . . . . . . Automatisieren der Anzeige von Computerinformationen durch Startund Anmeldeskripts und geplante Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.9 Integrieren der Werkzeuge in Active Directory-Benutzer und -Computer . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen des Befehls zur Verbindung mit dem Remotedesktop . . . . . . . . . . . . . . . . . . Hinzufügen des Befehls zum Öffnen der Befehlszeile . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ausführen eines Befehls auf einem Remotesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Befehlsaufgaben für die Remoteverwaltung mit Remote_Command.hta . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XVII 439 440 441 441 441 441 442 443 443 444 444 444 446 447 448 449 449 449 453 453 454 454 454 454 455 455 455 456 456 458 458 459 459 459 460 460 461 461 462 463 XVIII Inhaltsverzeichnis Lösungsgruppe 7: Erweitern von Benutzerattributen und Verwaltungswerkzeugen . . . . . . . . 465 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Empfohlene Vorgehensweisen für Benutzernamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufstellen eines Standards für die Namesattribute von Benutzerobjekten . . . . . . . . . . . . Verwenden verwaltbarer Benutzeranmeldenamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein zweiter »Hans Mustermann« in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Verwalten von Active Directory-Objekten mit gespeicherten Abfragen . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer benutzerdefinierten Konsole zur Anzeige aller Domänenbenutzer . . . . . . Festlegen des Gültigkeitsbereichs einer gespeicherten Abfrage . . . . . . . . . . . . . . . . . . . . Aufstellen von gespeicherten Abfragen für bestimmte Objekte . . . . . . . . . . . . . . . . . . . . Grundlagen der LDAP-Abfragesyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einige nützliche LDAP-Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Austauschen von gespeicherten Abfragen zwischen Konsolen und Administratoren . . . . Verwenden von gespeicherten Abfragen für die meisten Arten von Verwaltungsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Erstellen von MMC-Konsolen für untergeordnete Administratoren . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer Konsole mit gespeicherten Abfragen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Aufgabenblocks mit Aufgaben für jede delegierte Fähigkeit . . . . . . . . . . Hinzufügen von Werkzeugen und Skripts zum Aufgabenblock . . . . . . . . . . . . . . . . . . . . Hinzufügen von Dokumentation zur Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen einer Verwaltungs-Homepage in der Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen der Aufgabenblöcke zu den MMC-Favoriten . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Navigationsaufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Speichern der Konsole im Benutzermodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sperren der Konsolenansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verteilen der Konsole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Erweitern der Attribute von Benutzerobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nutzen von nicht verwendeten und nicht offen gelegten Attributen der Benutzerobjekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erweitern des Schemas mit benutzerdefinierten Attributen und Objektklassen . . . . . . . . Erstellen eines Attributs zur Anzeige des Computers, an dem ein Benutzer angemeldet ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines Attributs zur Unterstützung der Softwareanforderungen des Benutzers . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 467 467 467 467 473 476 476 477 477 477 478 479 480 482 483 484 485 485 485 485 486 486 487 489 489 490 490 490 491 492 492 492 493 493 493 493 495 497 498 499 Inhaltsverzeichnis 7.5 Erstellen von Werkzeugen zur Verwaltung von nicht verwendeten und benutzerdefinierten Attributen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen und Bearbeiten der Werte von nicht offen gelegten Attributen . . . . . . . . . . . . . Anzeigen und Bearbeiten von einwertigen Attributen mit Object_Attribute.vbs . . . . . . . Anzeigen und Bearbeiten von ein- oder mehrwertigen Attributen mit Object_Attribute.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6 Verschieben von Benutzern und anderen Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erforderliche Berechtigungen zum Verschieben von Objekten in Active Directory . . . . . Die DoS-Gefahr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorsichtiges Einschränken der Delegierung zum Verschieben (Löschen) von Objekten . Delegieren von sensiblen Aufgaben wie der Objektlöschung an tertiäre administrative Anmeldeinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übertragen der Aufgabe an Stellvertreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7 Erstellen von Benutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein Skript zum Erstellen von Benutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von grafischen Werkzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX 499 499 499 500 507 508 509 509 509 509 510 510 510 511 511 511 512 512 512 512 515 515 Lösungsgruppe 8: Eine neue Sichtweise der Verwaltung von Gruppen und Mitgliedschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 Empfohlene Vorgehensweisen für das Erstellen von Gruppenobjekten . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von selbst dokumentierenden Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schützen von Gruppen vor versehentlichem Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . Abwägen des Gruppentyps: Sicherheits- oder Verteilergruppe . . . . . . . . . . . . . . . . . . . . . Abwägen des Gültigkeitsbereichs: global, lokale Domäne, universell . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Delegieren der Verwaltung von Gruppenmitgliedschaften . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Attribute member und memberOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Berechtigung zum Schreiben des member-Attributs . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 519 519 519 519 521 522 524 526 526 526 526 527 528 534 XX Inhaltsverzeichnis 8.3 Erstellen von Abonnementgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wann eignen sich Abonnementgruppen? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren von »Selber als Mitglied hinzufügen/entfernen« . . . . . . . . . . . . . . . . . . . . . . . Bereitstellen von Werkzeugen zum Abonnieren oder Aufheben des Abonnements . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 Erstellen einer HTML-Anwendung für Abonnementgruppen . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Group_Subscription.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen von Group_Subscription.hta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Nutzen von Gruppenstandards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5 Erstellen von Schattengruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Schattengruppen und detaillierte Kennwort- und Kontosperrungs-Richtlinien . . . . . . . . . Die Elemente eines Schattengruppen-Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aufstellen der Gruppenmitgliedschafts-Abfrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen des grundlegenden Gültigkeitsbereichs der Abfrage . . . . . . . . . . . . . . . . . . . . . Entwickeln eines Skripts zur Verwaltung des member-Attributs mit minimalem Einfluss auf die Replikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regelmäßiges Ausführen des Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auslösen des Skripts durch Änderungen an einer Organisationseinheit . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6 Benutzerfreundliche Werkzeuge für die Gruppenverwaltung . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Auflisten von memberOf und member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anzeigen von direkten, indirekten und primären Gruppenmitgliedschaften . . . . . . . . . . . Auflisten der Mitgliedschaften eines Benutzers nach Gruppentyp . . . . . . . . . . . . . . . . . . Anzeigen aller Mitglieder einer Gruppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinzufügen und Entfernen von Gruppenmitgliedern mit Group_ChangeMember.hta . . . Steuern der Gruppen durch die zuständigen Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hinweise und weitere Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.7 Durchsetzen von Regeln und Protokollierung durch Bevollmächtigung . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen der Bevollmächtigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Komponenten des Proxy-Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Was bringt Ihnen die Bevollmächtigung? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Gruppenverwaltung an Benutzer mit erhöhter Zuverlässigkeit und Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 534 534 535 536 537 539 540 540 540 540 541 542 543 543 543 544 544 545 545 545 546 547 548 548 549 549 549 549 550 551 551 552 553 554 554 555 555 555 556 557 565 565 Inhaltsverzeichnis XXI Lösungsgruppe 9: Verbessern der Bereitstellung und Verwaltung von Anwendungen und Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Bereitstellen von Software-Verteilungspunkten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rationalisieren der Namespaces für Softwareordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten des Zugriffs auf Software-Verteilungsordner . . . . . . . . . . . . . . . . . . . . . . . . . . Freigeben des Softwareordners und Verschleiern seines Speicherorts mit einem DFS-Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Replizieren von Software-Verteilungsordnern an Remotestandorte und Filialen . . . . . . . Erstellen eines Speicherorts für eigene Werkzeuge und Skripts . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Neue Ansätze zum Packen von Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisieren der Anwendungsinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lesen der Ergebniscodes einer Anwendungsinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . Installieren mit Software_Setup.vbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trennen der Konfiguration von der Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installieren der aktuellen Version einer Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Softwareverwaltung mit Gruppenrichtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorbereiten einer Anwendung auf die Bereitstellung mit GPSI . . . . . . . . . . . . . . . . . . . . Konfigurieren eines Gruppenrichtlinienobjekts zur Bereitstellung einer Anwendung . . . Festlegen des Gültigkeitsbereichs einer Bereitstellung mit Anwendungsgruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Filtern des Gruppenrichtlinienobjekts mit der Anwendungsgruppe . . . . . . . . . . . . . . . . . . Verknüpfen des Gruppenrichtlinienobjekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wann sollten Sie GPSI verwenden? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GPSI und Microsoft Office 2007 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weitere Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4 Bereitstellen von Dateien und Konfigurationen mit Gruppenrichtlinien-Voreinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bereitstellen von Dateien mit Gruppenrichtlinien-Dateieinstellungen . . . . . . . . . . . . . . . Auslösen von Registrierungsänderungen durch Registrierungsvoreinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 569 569 569 570 572 573 575 577 577 577 577 578 579 580 581 583 584 585 586 586 586 586 586 588 589 589 591 591 592 592 592 592 592 593 595 598 XXII Inhaltsverzeichnis 9.5 Eine Softwareverwaltungs-Infrastruktur im Eigenbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Herausforderungen bei der Bereitstellung von Anwendungen wie Microsoft Office 2007 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorbereiten eines Software-Verteilungsordners für Microsoft Office 2007 . . . . . . . . . . . Erstellen einer Anpassungsdatei für die Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Starten einer unbeaufsichtigten Installation von Office 2007 . . . . . . . . . . . . . . . . . . . . . . Anforderungen an ein eigenes Softwareverwaltungsframework . . . . . . . . . . . . . . . . . . . . Anpassen von Software_Deploy.vbs für die Bereitstellung von Anwendungen . . . . . . . . Änderungsverwaltung durch Gruppenmitgliedschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . Bereitstellen einer Anwendung mit geplanten Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . Steuern des Installationszeitpunkts durch die Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6 Automatisieren von Vorgängen mit SendKeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automatisieren einer Aktionssequenz mit SendKeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen und Anpassung von Config_QuickLaunch_Toggle.vbs . . . . . . . . . . . . . . . . . Festlegen von »Details« als Standardansicht für alle Ordner . . . . . . . . . . . . . . . . . . . . . . . Automatisierung mit AutoIt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 598 598 599 599 600 601 602 602 607 609 610 611 611 611 612 612 614 615 615 615 Lösungsgruppe 10: Verwalten von Änderungen, Konfiguration und Richtlinien . . . . . . . . . . . 617 Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Erstellen eines Arbeitsflusses zur Änderungssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erkennen von notwendigen Änderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übersetzen der Änderungen in Gruppenrichtlinieneinstellungen . . . . . . . . . . . . . . . . . . . Testen der Änderungen in einer Laborumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vermitteln der Änderungen an die Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Testen der Änderungen in der Produktionsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Migrieren von Benutzern und Computern in der Produktionsumgebung . . . . . . . . . . . . . Einrichten von mehr Gruppenrichtlinienobjekten mit weniger Einstellungen . . . . . . . . . . Aufstellen einer Namenskonvention für Gruppenrichtlinienobjekte . . . . . . . . . . . . . . . . . Sicherstellen, dass Gruppenrichtlinienobjekte während ihrer Konfiguration nicht angewendet werden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sichern von Gruppenrichtlinienobjekten vor und nach Änderungen . . . . . . . . . . . . . . . . . Dokumentieren der Einstellungen und des Gruppenrichtlinienobjekts . . . . . . . . . . . . . . . Sorgfältiges Festlegen des Gültigkeitsbereichs von Gruppenrichtlinienobjekten . . . . . . . Einrichten eines Arbeitsflusses für die Änderungsverwaltung mit mehreren Dienstleistungsniveaus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grundlagen des Verhaltens clientseitiger Gruppenrichtlinien . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 619 619 619 620 620 620 621 621 621 621 622 623 623 624 624 624 624 626 Inhaltsverzeichnis 10.2 Ausweiten der rollenbasierten Verwaltung auf Änderungen und Konfigurationen . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Festlegen von Sicherheitsgruppen als Gültigkeitsbereich von Gruppenrichtlinienobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwalten von Ausnahmen von einem gesamten Gruppenrichtlinienobjekt . . . . . . . . . . . Verwalten von Ausnahmen von einigen Einstellungen eines Gruppenrichtlinienobjekts . Verknüpfen von gefilterten Gruppenrichtlinienobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . Optimieren der Gruppenverwaltungstechniken zur Steuerung des Gültigkeitsbereichs von Gruppenrichtlinienobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Kennwort- und Kontosperrungsrichtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Überprüfen der Eignung von Kennwortrichtlinien für Ihre Organisation . . . . . . . . . . . . . Anpassen der standardmäßigen Gruppenrichtlinienobjekte an die Richtlinien des Unternehmens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umsetzen der Kennwort-, Sperrungs- und Kerberos-Richtlinien . . . . . . . . . . . . . . . . . . . Umsetzen detaillierter Kennwortrichtlinien zum Schutz sensibler und privilegierter Konten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vorrang von Kennworteinstellungsobjekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Richtlinien zur Authentifizierung und Active Directory-Überwachung . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Umsetzen von Überwachungsrichtlinien durch Ändern des Gruppenrichtlinienobjekts Default Domain Controllers Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . Überwachen von Fehlerereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anpassen von Überwachungs- und Firmenrichtlinien an die Realität . . . . . . . . . . . . . . . . Überwachen von Änderungen an Active Directory-Objekten . . . . . . . . . . . . . . . . . . . . . . Einsehen von Überwachungsereignissen im Sicherheitsprotokoll . . . . . . . . . . . . . . . . . . . Überwachen von Verzeichnisdienständerungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Durchsetzen von Firmenrichtlinien mit Gruppenrichtlinien . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Übersetzen von Firmenrichtlinien in Sicherheits- und nicht sicherheitsrelevante Richtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen von Gruppenrichtlinienobjekten für Einstellungen aus Firmenrichtlinien . . . . . Festlegen der Domäne als Gültigkeitsbereich von Gruppenrichtlinien . . . . . . . . . . . . . . . Durchsetzen von Firmensicherheits- und Konfigurationsrichtlinien . . . . . . . . . . . . . . . . . Vorausschauende Verwaltung von Ausnahmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bereitstellen eines verwalteten Migrationspfades zur Umsetzung von Richtlinien . . . . . . Brauchen Sie mehr als ein Gruppenrichtlinienobjekt zur Umsetzung von Firmenrichtlinien? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII 626 626 627 627 631 631 632 632 633 634 634 634 634 637 638 639 641 643 644 644 644 644 647 647 647 649 649 651 651 651 652 652 652 653 653 654 654 655 655 XXIV Inhaltsverzeichnis 10.6 Erstellen einer Hierarchie für die delegierte Gruppenrichtlinienverwaltung . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren von Berechtigungen zur Verknüpfung bestehender Gruppenrichtlinienobjekte mit einer Organisationseinheit . . . . . . . . . . . . . . . . . . . . . . . . . Delegieren der Fähigkeit zur Verwaltung eines bestehenden Gruppenrichtlinienobjekts . Delegieren der Berechtigung zum Erstellen von Gruppenrichtlinienobjekten . . . . . . . . . . Geschäftliche und technische Bedenken zur Delegierung von Gruppenrichtlinien . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7 Testen, Validieren und Migrieren von Richtlinieneinstellungen . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Erstellen eines wirksamen Verwaltungsbereichs für einen Pilottest . . . . . . . . . . . . . . . . . Vorbereiten und Modellieren der Auswirkungen des Pilottests . . . . . . . . . . . . . . . . . . . . . Erstellen eines Rollback-Mechanismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Durchführen des Pilottests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Migrieren von Objekten in den Gültigkeitsbereich des neuen Gruppenrichtlinienobjekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8 Einfache Tipps zu Gruppenrichtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Lösung im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bereitstellen von Registrierungsänderungen mit Vorlagen oder Registrierungsvoreinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loopback-Gruppenichtlinienverarbeitung im Zusammenführungsmodus . . . . . . . . . . . . . Ausführen von GPUpdate auf einem Remotesystem zum Auslösen von Änderungen . . . Delegieren von Berechtigungen für Berichte des Gruppenrichtlinienergebnissatzes . . . . Verwenden von Standorten oder Schattengruppen als Gültigkeitsbereich von Netzwerkeinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verwenden von Schattengruppen anstelle von WMI-Filtern . . . . . . . . . . . . . . . . . . . . . . . Einfache Gruppenrichtlinieneinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 656 656 657 658 659 660 661 662 662 662 662 663 664 665 666 666 666 666 666 667 667 668 668 668 669 669 Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 Über den Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691 Dieses Buch ist meinen wunderbaren Kunden gewidmet, denen ich über zehn Jahre Lernen, ein Leben voller Erfahrungen und einen Schatz an Wissen verdanke. Dieses Buch ist für sie geschrieben, aber es stammt auch von ihnen und geht durch mich als Vermittler an Sie, die Gemeinschaft der Windows-Administratoren. XXVII Danksagungen Das Buch, das Sie in den Händen halten, blickt auf eine lange Geschichte zurück, die von vielen wunderbaren Menschen geformt wurde – Menschen, die mir geholfen haben, diesen Weg zu gehen. An erster Stelle sind meine Kunden zu nennen – diese Sklaven treibenden, wahnsinnigen, Ehrfurcht gebietenden Freunde, die mir vertrauen, dass ich sie und ihr Unternehmen in die richtige Richtung führe und die ihre Kenntnisse und ihre Erfahrungen mit mir teilen. Ohne sie gäbe es nicht diesen reichen Schatz an Wissen, Lösungen und Erfahrungen, aus dem diese technische Referenz schöpft. Vielen Dank dafür, dass ihr aus meiner Karriere eine ständige Lernerfahrung macht. Danke für euer Vertrauen in mich. Danke für die vielen einmaligen Gelegenheiten, die ihr mir geschenkt habt. Als Nächstes sind da meine Kollegen – die überverrückten Überguru-Jungs und -Mädels, die mich mit ihrer Hirnmasse und ihren Muskeln glatt überrumpeln. Jeremy, Don, Darren, Mark, Rhonda, Derek, Alan, Gil, Sean, Guido, Jim, Brian, Steve, Richard, Joel, Tom – ich wäre sehr traurig, wenn ich jemanden vergessen hätte. Vielen Dank dafür, dass ihr die Latte so hoch gelegt und mich ermutigt habt, sie zu erreichen! Dann gilt mein Dank den unglaublichen Leuten bei Microsoft Press. Beginnen wir mit Martin Del Re. Du hast mich damals Anno 2003 gesehen, wie ich Lösungen vorstellte, und gesagt: »Eines Tages müssen wir das Zeug aufschreiben.« Und bist dabei geblieben. Wir haben es geschafft! Karen Szall: Ich habe mein ganzes Können in dieses Projekt gesteckt, und ich bin Dir etwas schuldig! Melissa von Tschudi-Sutton: Du bist auf diesen Zug aufgesprungen, ohne je zuvor mit mir gearbeitet zu haben, und hast innerhalb von nicht mehr als zehn Wochen über 650 Seiten Inhalt und Dutzende von Skripts daraus fertig gestellt. Es gibt nicht genug Worte, um dir zu danken, Melissa! Und natürlich Curtis Philips, Rozanne Whalen, Roger LeBlanc und Teresa Barensfeld – ihr habt diese neue Art von technischer Referenz mit verblüffendem Können in Angriff genommen. Dieses Projekt war ein Mammutunternehmen, das ohne jeden einzelnen von euch nicht möglich gewesen wäre. Ich habe so viel Glück gehabt, dass ich mit euch zusammenarbeiten durfte! Schließlich und vor allem möchte ich meinen Freunden und meiner Familie danken: Lyman, Maddie, Mom und Dad, Bob und Joni, Stan und Marylyn, Julie, Joe und die ganze Clique in Maui und Phoenix. Eure Geduld, eure Unterstützung und eure Liebe waren das Öl in meinem Feuer. Vielen Dank dafür, dass ihr mich ermutigt und angestachelt und an der Ziellinie auf mich gewartet habt. Ich schulde euch allen viel Zeit, wenn dieses Projekt abgeschlossen ist. Ihr habt mir beigebracht, was ohano bedeutet. Mahalo! XXIX Einleitung Willkommen bei Windows-Administration – Die technische Referenz! Dieses Buch ist eine Fundgrube für Lösungen, die Ihnen helfen sollen, Microsoft Windows-Technologien einzusetzen, um Probleme zu lösen, wie sie in der Unternehmenspraxis auftreten. Die meisten technischen Referenzen haben sich auf ein einzelnes Produkt oder ein Feature konzentriert und das Innenleben dieser Technologie genau untersucht, doch in diesem Buch nehmen wir einen anderen Blickwinkel ein. Hier schauen wir uns an, wie Sie Windows-Technologien an Ihren geschäftlichen Erfordernissen ausrichten. Das klingt nach etwas, für das Sie normalerweise einen Berater anheuern müssten, und das ist auch wirklich so. Was dieses Buch möglich gemacht hat, waren die vielen Jahre, in denen ich als Berater und Unterweiser meinen Kunden geholfen habe, geschäftliche und technische Herausforderungen zu meistern. Sehr oft, wenn ich einem Kunden eine Lösung präsentiert hatte, wurde ich gefragt: »Gibt es ein Buch darüber?« Nun, hier ist es! Ich sehe es als den »Windows-Berater aus der Schachtel« an. Oder besser gesagt, im Buch. Dieses Buch geht Dutzende von Problemen an, gegen die ich große und kleine Unternehmen ankämpfen gesehen habe. Mein Ziel ist es, Ihnen dabei zu helfen, klug und geschickt zu arbeiten – also SMART. Das ist ein Akronym, das ich bei Intelliem geprägt habe. Es steht für: Secure (Sicher) Managed (Verwaltet) Agile (Flexibel) Rapid (Schnell) Trustworthy (Vertrauenswürdig ) Um dies zu erreichen und die anstehenden Probleme zu lösen, ist mehr erforderlich, als die Einzelheiten einer einzigen Technologie zu kennen. Stattdessen müssen Sie Folgendes tun: Verschiedene Technologien vereinen und die einzelnen Komponenten genau so zusammenstellen, dass das gewünschte Ergebnis dabei herauskommt Wiederholt vorkommende Schritte durch Skripts automatisieren Technologien durch Arbeitsflüsse und Vorausdenken an unseren Geschäftsprozessen ausrichten Hilfsprogramme von Drittanbietern integrieren Die Einschränkungen der im Lieferumfang enthaltenen Funktionen und Verwaltungswerkzeuge von Windows umgehen Wenn die letzten beiden Punkte Sie überraschen, dann seien Sie beruhigt – mich haben sie auch überrascht! Ich kann Ihnen jedoch schwarz auf weiß Beispiele für Situationen geben, die Sie nicht ändern können, ohne sich der Einschränkungen von Windows bewusst zu werden und sie dann zu umgehen. Wenn Sie so viel Offenheit bei Microsoft schätzen, dann lassen Sie es das die Leute bei Microsoft Press wissen! XXX Einleitung Ich denke, dass der Ansatz, den wir in dieser technischen Referenz verfolgen, eine äußerst nützliche Ergänzung zu der Dokumentation bietet, die Microsoft für verschiedene Technologien zur Verfügung stellt. Dadurch werden diese Technologien in den Kontext der Praxis gestellt. A propos Praxis, was nützten diese Lösungen, wenn sie nur für Windows Server 2008 gelten würden? Wichtig Die meisten Lösungen in dieser technischen Referenz sind für Umgebungen geeignet, wie sie in der Praxis vorkommen: mit einer Mischung aus Windows XP SP2 oder höher, Windows Vista, Windows Server 2003 SP2 oder höher und Windows Server 2008. In dieser technischen Referenz geht alles um »Lösungen«. Einige davon sind einfach, andere ziemlich kompliziert. Manche Lösungen bauen auf vorhergehenden auf, einige sind eigenständig. Viele der Lösungen bestehen aus Anleitung – der Art von Anleitung, wie Sie sie von einem Berater erhalten können. Sie weisen auf die empfehlenswerten Vorgehensweisen hin und helfen Ihnen, Technologien und geschäftliche Anforderungen miteinander zu vereinbaren. Bei anderen Lösungen handelt es sich um Skripts. Die Skripts, die ich Ihnen auf dem Begleitmedium zur Verfügung stelle, sind anders als die Werkzeuge, die es bei anderen technischen Referenzen zu Windows gab. Es handelt sich nicht um ausführbare Dienstprogramme, die eine bestimmte Aufgabe erfüllen. Die meisten sind Meta-Werkzeuge, die Vorgänge automatisieren. Sie wurden dazu entworfen, Ihnen zu zeigen, wie Sie Ihre Verwaltungsproduktivität steigern können. Um dieses Ziel zu erreichen, habe ich die große Mehrheit der Skripts in VBScript geschrieben. Sie können sie also öffnen, lesen und anpassen. Wenn Sie mit VBScript nicht vertraut sind, ist das auch nicht schlimm, denn die meisten Skripts erfordern nur wenige Konfigurationsänderungen, damit sie in Ihrer Umgebung funktionieren. Als erfahrener Skriptprogrammierer können Sie die Werkzeuge erweitern, um noch leistungsfähigere Lösungen zu gestalten, die noch stärker auf Ihre Bedürfnisse zugeschnitten sind. Mit den Skripts und Lösungen ist es jedoch auf der letzten Seite des Buchs noch nicht zu Ende. Eine weitere Abweichung von früheren technischen Referenzen zu Windows bildet die Community-Website, die ich für dieses Buch erstellt habe: www.intelliem.com/resourcekit. Dort finden Sie Korrekturen, Diskussionen, Revisionen und komplett neue Lösungen, beigesteuert von den IT-Profis, die dieses Buch gelesen haben. Mehr über all das erfahren Sie in Lösungsgruppe 1. Lassen Sie mich damit schließen, Ihnen für all die Arbeit zu danken, die Sie leisten, um Ihre Organisation mithilfe von Windows-Technologien zu unterstützen. Ich weiß, dass dies nicht immer leicht ist – ich kämpfe an derselben Front. Ich schätze die Zeit, die Sie aufwenden, um die Lösungen, die ich Ihnen vorstelle, zu lesen, zu interpretieren, anzupassen und umzusetzen. Dabei hoffe ich, dass Sie Ihr Wissen und Ihre Erfahrungen mit anderen Lesern auf der Website zu dieser technischen Referenz austauschen. Wir sitzen im selben Boot, und ich freue mich darauf, das gesammelte Wissen der Tausende von IT-Profis, mit denen ich über die Jahre gearbeitet habe, zusammenzubringen, damit wir noch geschickter – noch SMARTer – arbeiten können. Schreibweisen in diesem Buch In diesem Buch werden die folgenden Besonderheiten als Mittel zur Hervorhebung verwendet. Zusätzliche Inhalte im Web XXXI Hinweiskästen Die folgenden Hinweiskästen werden überall in diesem Buch verwendet, um auf nützliche Einzelheiten hinzuweisen: Titel Bedeutung Hinweis Unterstreicht die Wichtigkeit eines Begriffs oder hebt einen Sonderfall hervor, der nicht auf jede Situation zutreffen muss. Wichtig Lenkt die Aufmerksamkeit auf entscheidende Informationen, die Sie nicht unbeachtet lassen sollten. Vorsicht Weist auf ein Problem oder auf Sicherheitsbedenken hin. Empfohlene Vorgehensweisen Gibt Ratschlag zu Verfahren und Techniken, mit denen Sie die Effizienz oder Sicherheit einer Technologie optimieren können. Anleitung Fasst eine Abhandlung zusammen, um ein Fazit zu ziehen. Auszeichnung durch Schriftschnitte Die folgenden Formatierungskonventionen gelten in diesem Buch: Stil Bedeutung Fettschrift Wird für Benutzereingaben verwendet Kursivschrift Wird im Fließtext für Begriffe aus der Benutzeroberfläche, Datei- und Pfadnamen und die Namen von Befehlen verwendet. Variablen, für die Sie konkrete Werte eingeben müssen, stehen dabei in spitzen Klammern (anstelle von <dateiname> setzen Sie z.B. einen Dateinamen ein). In Listings bezeichnet Kursivschrift Variablen, für die Sie konkrete Werte eingeben müssen. Listingschrift Wird für Codebeispiele und Befehlszeilenausgaben verwendet. Variablen, die durch konkrete Werte ersetzt werden müssen, stehen hier in Kursivschrift. %SystemRoot% Wird für Umgebungsvariablen verwendet. Systemanforderungen Die Skripts, die auf dem Begleitmedium zur Verfügung stehen, wurden auf Windows Server 2008 getestet. Die meisten sind mit Windows Server 2003 SP2 oder höher, Windows XP SP2 oder höher und Windows Vista kompatibel. Bei bekannten Einschränkungen weise ich durch Anmerkungen im Text bzw. Kommentare im Skript darauf hin. Zusätzliche Inhalte im Web Neben dem Inhalt dieses Buchs und des Begleitmediums finden Sie zusätzliche Inhalte (in englischer Sprache) unter http://www.intelliem.com/resourcekit. XXXII Einleitung Suchen nach zusätzlichen Inhalten Wenn neues oder aktualisiertes Material (in englischer Sprache) zur Ergänzung des Buchs zur Verfügung steht, wird es online auf die Website Microsoft Press Online Developer Tools gestellt. Hier können Sie Aktualisierungen zum Buchinhalt, Artikel, Links zu verwandten Inhalten, Errata, Beispielkapitel usw. erwarten. Diese Website wird in Kürze unter www.microsoft.com/learning/books/online/developer zur Verfügung stehen und regelmäßig aktualisiert. Begleit-CD Die Begleit-CD ist vollgepackt mit nützlichen Werkzeugen und Links, die Ihnen Hilfestellung für Ihre Installation von Windows Server 2008 bieten. Die CD enthält Folgendes: Vollständiges E-Book Eine elektronische Version dieses Buchs im PDF-Format. Skripts Mehr als 75 Beispielskripts, mit denen Sie Ihre Aufgaben als Systemadministrator automatisieren können. Werkzeuge Viele Links zu Werkzeugen für IIS, PowerShell, System Center Data Operations usw., die Sie sofort einsetzen können. Produktinformationen Links zu Informationen über Funktionen und Möglichkeiten von Windows Server 2008 sowie Produktanleitungen, die Ihnen helfen, die Windows-Verwaltung in Ihrem Unternehmen zu optimieren. Quellen Links zu Whitepapers, Anleitungen, Webcasts, Newsgroups usw. (in englischer Sprache), die Ihnen helfen, die Funktionen von Windows Server 2008 einzusetzen und Fehler zu beheben. Verwendung der Skripts Die Verwendung der einzelnen Skripts ist jeweils in der Lösung dokumentiert, in der das Skript vorgestellt wird. Die meisten Skripts sind in VBScript (Visual Basic Scripting Edition) geschrieben, sodass Sie sie an der Befehlszeile ausführen können, indem Sie cscript Skriptname.vbs gefolgt von den erforderlichen Parametern eingeben. Bei einigen Skripts handelt es sich um Batchdateien, die Sie an der Befehlszeile ausführen können, indem Sie den Namen des Skripts und die erforderlichen Parameter eingeben. Schließlich gibt es auch noch eine Reihe von HTML-Anwendungen, bei denen es sich um Skripts mit einer grafischen Benutzeroberfläche handelt. Sie können eine HTML-Anwendung ausführen, indem Sie darauf doppelklicken. Außerdem lassen sich die meisten dieser HTML-Anwendungen mithilfe der Anleitung aus Lösung 1.3 in das Snap-In Active Directory-Benutzer und -Computer integrieren, um die Funktionalität Ihrer systemeigenen Verwaltungswerkzeuge zu erweitern. Wichtig Es ist äußerst wichtig, dass Sie die Skripts nur als Vorlagen behandeln. Öffnen Sie jedes Skript im Editor oder einem Skriptbearbeitungsprogramm, lesen Sie den Code und die Kommentare, nehmen Sie die erforderlichen Konfigurationsänderungen vor und testen Sie das Skript vor allem in einer Laborumgebung, bevor Sie es in einer Produktionsumgebung einsetzen. Weder Microsoft noch Intelliem übernehmen eine Garantie für die Skriptbeispiele und Werkzeuge. Support XXXIII Nachdem das gesagt ist, werden Sie feststellen, dass Sie die Skripts mit geringen Änderungen am Konfigurationsblock in Ihrem Labor erfolgreich ausführen können. Ich habe mich bemüht, die Skripts so gut lesbar und anpassungsfreundlich zu machen wie möglich. Die Skripts werden auf der Website zu dieser technischen Referenz unter www.intelliem.com/resourcekit aktualisiert. Falls Sie auf Bugs stoßen oder nützliche Änderungen an einem Skript stoßen, teilen Sie dies bitte auf der Website mit. Bevor Sie einen Bug melden, vergewissern Sie sich bitte, dass Sie Folgendes durchgeführt haben: Lesen Sie die gesamte Lösung, in der das Skript vorgestellt wird. Stellen Sie sicher, dass Sie alle dort genannten Schritte ausgeführt haben. Untersuchen Sie den Konfigurationsblock des Skripts, der gewöhnlich Configuration Block heißt. Ich habe eine Beispielkonfiguration für die fiktive Domäne contoso.com eingefügt. Manche Skripts funktionieren nicht, bevor Sie die Konfiguration so ändern, dass sie zu Ihrer Umgebung passt. Stellen Sie sicher, dass Sie das Skript mit ausreichenden Berechtigungen für die Aufgabe ausführen, die durch das Skript automatisiert wird. Es kann erforderlich sein, die HTML-Anwendung oder die Befehlszeile mit erhöhten Privilegien auszuführen, vor allem in Windows Vista und Windows Server 2008. Rechtsklicken Sie auf das Werkzeug oder das Befehlszeilensymbol im Startmenü und wählen Sie Als Administrator ausführen. Testen Sie das Skript auf Plattformen mit anderen Betriebssystemen. Die meisten Skripts und HTMLAnwendungen funktionieren auf den zuvor aufgeführten Betriebssystemen, aber bei einigen von ihnen bestehen Einschränkungen. Manche HTML-Anwendungen erfordern Internet Explorer 7 und werden auf Systemen mit Internet Explorer 6 nicht ausgeführt. Support Microsoft Press bemüht sich um die Richtigkeit der in diesem Buch sowie der auf der Begleit-CD enthaltenen Informationen. Korrekturen zu den Originalausgaben der Microsoft Press-Bücher finden Sie im Web unter der folgenden Adresse: http://www.microsoft.com/learning/support/search.asp Supportdateien zu deutschen Titeln finden Sie unter: http://www.microsoft-press.de/support.asp Korrekturen werden auch (in englischer Sprache) auf der Website zu dieser technischen Referenz unter http://www.intelliem.com/resourcekit veröffentlicht. Anmerkungen, Fragen oder Verbesserungsvorschläge bezüglich dieses Buches oder der Begleit-CD, die sich nicht über eine Abfrage der Knowledge Base klären lassen, können Sie an Microsoft Press weiterleiten: Per E-Mail: [email protected] Per Post: Microsoft Press Betr.: <<Titel>> Konrad-Zuse-Straße 1 85716 Unterschleißheim Bitte beachten Sie, dass Sie unter den angegebenen Adressen keinen Produktsupport erhalten. Weitere Informationen zu den Softwareprodukten von Microsoft erhalten Sie unter der Adresse http://support.microsoft.com/. 1 L Ö S U N G S G R U P P E 1 Rollenbasierte Verwaltung In diesem Kapitel: Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) . . . . . . . . . . . . . . . . . 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften . . . . . . . . . . . . . . . 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Grundlagen der rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Einrichten einer rollenbasierten Zugriffssteuerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung . . . . . . 1.7 Einrichten der rollenbasierten Verwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 11 27 37 48 56 66 77 Willkommen zur ersten Lösungsgruppe von Windows-Administration – Die technische Referenz. Mit dieser Gruppe wollen wir versuchen, mehrere Ziele gleichzeitig zu erreichen. Zunächst stelle ich einige der Konzepte und Taktiken vor, die ich in dieser technischen Referenz durchgängig verwende. Bis zum Ende der dritten Lösung legen Sie den Weg von dem Auftreten eines verbreiteten Verwaltungsproblems (in diesem Fall die Anzeige der vollständigen verschachtelten Gruppenmitgliedschaft eines Benutzers) über die Erstellung eines Lösungsskripts und den Aufbau eines GUIVerwaltungswerkzeugs (Graphical User Interface) bis hin zur direkten Integration dieses Werkzeugs in das Snap-In Active Directory-Benutzer und -Computer zurück. Die auf dieser Reise erworbenen Fähigkeiten ermöglichen Ihnen die Umsetzung zahlreicher weiterer Lösungen aus dieser technischen Referenz. Wenn Sie bereits Erfahrungen im Schreiben von VBScript haben, werden Sie einige wichtige Tipps und Ansätze für die Anwendung Ihres Wissens sammeln. Sind Sie kein erfahrener Skripter, werden Sie lernen, wie Sie an den fertigen Skripts und Werkzeugen auf dem Begleitmedium zu diesem Buch einfache Änderungen vornehmen, um sie in Ihrem Unternehmen nutzen zu können, und wie Sie die Lösungen einsetzen, ohne VBScript oder andere Skriptsprachen beherrschen zu müssen. Dieses Buch ist nicht als Anleitung zur Skripterstellung gedacht. Bei bestimmten Lösungen gehen wir direkt zur Anwendung von Skripts zum Lösen von Problemen über. Ich werde Sie zwar auf einige wichtige Quellen hinweisen, die Sie nutzen können, um das Erstellen von Skripts zu lernen, möchte aber nochmals darauf hinweisen, dass Sie kein Skripter sein müssen, um von den Lösungen dieser technischen Referenz zu profitieren. Vielmehr steht das Skript bei etlichen der hier beschriebenen Lösungen nicht im Mittelpunkt. Weiter hinten in dieser Gruppe finden Sie Lösungen, mit denen Sie Benutzer, Computer, Gruppen, die Sicherheit – eigentlich alles – effektiver verwalten können. Diese Lösungen, die sich auf die rollenbasierte 2 Lösungsgruppe 1: Rollenbasierte Verwaltung Verwaltung konzentrieren, umfassen die disziplinierte Verwaltung von Gruppen in Active Directory sowie viele geschäftsorientierte Analysen und Prozesse. An sich sind keine Skripts in den Entwurf und die Implementierung der rollenbasierten Verwaltung eingebunden, obwohl wir in dieser und weiteren Lösungsgruppen einige vorstellen, die Ihr rollenbasiertes Verwaltungsmodell aufwerten und Ihnen enorme Kräfte für die Verwaltung Ihres Unternehmens verleihen. Am Ende dieser Lösungsgruppe werden Sie sich auf dem besten Wege zur Einrichtung der rollenbasierten Verwaltung in Ihrem Unternehmen befinden. Dies ist das zweite Ziel dieser Gruppe. Im Abschnitt »Szenarien, Probleme und Lösungen« nenne ich Ihnen weitere Einzelheiten. An dieser Stelle sei lediglich gesagt, dass die rollenbasierte Verwaltung nach den Erfahrungen, die ich mit meinen Kunden gemacht habe, eine der wertvollsten Investitionen von Zeit und Denkarbeit darstellt, die Sie als ITSpezialist tätigen können. Szenarien, Probleme und Lösungen Wenn Sie Netzwerkadministration studieren sollten, würden Sie in den ersten Lektionen Folgendes lernen: »Verwalten Sie Ihr Unternehmen nicht benutzer-, sondern gruppenweise.« Ich hoffe, dass Sie dies auch dann bereits wissen, wenn Sie Netzwerkadministration nicht studiert, sondern in der Praxis gelernt haben! Noch vergeuden sowohl IT-Experten als auch Endbenutzer durch die Verwaltung der Benutzer, Gruppen, Computer, Sicherheit, Konfiguration, Anwendungsbereitstellung und anderer Bestandteile eines IT-Unternehmens eine Menge Produktivität. Vielleicht kommen Ihnen einige der folgenden Situationen bekannt vor: Wenn ein neuer Mitarbeiter bei Contoso Ltd. eingestellt wird, dauert es mehrere Tage, bis das Benutzerkonto freigeschaltet wird. Nachdem der Mitarbeiter die Arbeit aufgenommen hat, kann es außerdem Tage oder sogar Wochen dauern, bis er über alle erforderlichen Anwendungen verfügt und auf alle für seine Tätigkeit notwendigen Ressourcen zugreifen kann. Wenn ein Benutzer denselben Zugang zu Ressourcen benötigt wie ein anderer, gibt es keine einfache Möglichkeit, herauszufinden, worauf der zweite Benutzer zugreifen kann. Wenn ein Benutzer an einen anderen Standort wechselt, verläuft die Übertragung der Benutzerdaten und -einstellungen auf die Server des neuen Standorts nicht nahtlos. Wenn ein Mitarbeiter in ein anderes Gebäude, in eine andere Abteilung oder an einen anderen Arbeitsplatz wechselt, kann niemand sicher sein, dass er alle benötigten neuen Anwendungen und Ressourcen erhält. Oft kann er weiterhin auf Ressourcen zugreifen, die er nicht mehr benötigt. Beim Ausscheiden oder bei der Kündigung eines Benutzers ist es schwierig, sicherzustellen, dass alle mit ihm verbundenen Verwaltungsprozesse, z.B. die ihm gewährten Berechtigungen, gelöscht wurden. Es ist schwierig zu klären, wie viele Kopien einer Softwareanwendung bereitgestellt wurden, sodass die Lizenzverwaltung eine Herausforderung darstellt. Wird eine Software für einen Benutzer bereitgestellt, steht ihm diese sogar im Konferenzraum zur Verfügung. Wenn Janine etwa Visio benötigt und sich an einem anderen Computer anmeldet, z.B. im Konferenzraum, wird Visio dort installiert. Dies sollte allerdings nicht passieren, da Visio pro Computer und nicht pro Benutzer lizenziert wird. Szenarien, Probleme und Lösungen 3 Es ist schwierig, herauszufinden, wo sich ein Computer oder ein Benutzer befindet, d.h. in welchem Büro, an welchem Active Directory-Standort usw. Es gibt ständige Diskussionen über den Entwurf der Active Directory-Organisationseinheit und darüber, ob sie sich auf Bürostandorte oder Objekttypen stützen sollte. Muss ein Benutzer aus besonderen Gründen auf eine Ressource zugreifen, wird er deren Zugriffssteuerungsliste direkt hinzugefügt, was den Grundsatz der Verwaltung nach Gruppen verletzt. Wenn beispielsweise Janice aus der Marketingabteilung Expertin im Schreiben von Makros für Microsoft Office Excel ist und von der Buchhaltung (Accounting) beauftragt wird, beim Erstellen der BudgetArbeitsmappe für das nächste Jahr behilflich zu sein, braucht sie die Berechtigungen für diese Arbeitsmappe. Der Gruppe Accounting sind zwar bereits die Berechtigungen erteilt worden, aber Janice gehört nicht zu dieser Gruppe. Der Administrator möchte Janice nicht zur Gruppe Accounting hinzufügen, aber sie braucht diese Berechtigung … Was geschieht? Normalerweise werden ihr die Berechtigungen direkt in der Zugriffssteuerungsliste (Access Control List, ACL) erteilt. Diese Lösung mag für den einen Fall, die Arbeitsmappe Budget, ausreichen. Aber was geschieht mit den Arbeitsmappen Sales Forecast, Operations Planning und allen anderen Arbeitsmappen, zu denen sie »außer der Reihe« Zugang benötigt? Sie können sehen, warum die Angelegenheit außer Kontrolle gerät. Die Überprüfung der Gruppenmitgliedschaften eines Benutzers ist schwierig. Wenn ein Administrator gefragt wird, zu welchen Gruppen Janice gehört, und auch die verschachtelten Gruppen berücksichtigen soll, ist es unmöglich, dies herauszufinden, oder erfordert zumindest mehrere Schritte. Die Überprüfung des Sicherheitsmodells stellt eine Herausforderung dar. Stellt man einem Administrator die Frage: »Wer kann die Budgetpläne für nächstes Jahr lesen?« oder »Worauf kann Janice zugreifen?«, ist es für ihn schwierig oder unmöglich, eine zuverlässige Antwort zu geben. Dies verdeutlicht nur einige Problempunkte – Szenarien, in denen Produktivität vergeudet wird, Zeit oder Geld verschwendet wird, die Sicherheit unzureichend ist oder andere Schwächen deutlich werden. Diese und andere Probleme können mit der rollenbasierten Verwaltung behandelt werden. Diese Lösungsgruppe bereitet Sie auf die Beseitigung aller Arten von Problempunkten vor. Einige werden dabei vollständig gelöst, während andere zusätzliche Lösungen erfordern, die weiter hinten in dieser technischen Referenz vorgestellt werden. Hinweis Das Ziel der rollenbasierten Verwaltung besteht darin, Ihr IT-Verwaltungsmodell an Ihren Geschäftsprozess und Ihre Anforderungen anzupassen. Die rollenbasierte Verwaltung erlaubt Ihnen, einen Benutzer zu definieren (d.h. seine Rollen, wobei dieser Begriff im weiteren Verlauf noch geklärt wird) und die Verwaltung eines Benutzers automatisch zu aktivieren, wozu auch die Ermittlung der folgenden Einzelheiten gehört: Vorhandene oder nicht vorhandene Zugriffsmöglichkeiten des Benutzers (Zugriff auf Ressourcen) Vorhandene oder nicht vorhandene Berechtigungen des Benutzers für das System (Benutzerrechte) Anwendungen, die dem Benutzer zur Verfügung gestellt werden (Softwareverteilung) Die Microsoft Windows-Umgebung des Benutzers, z.B. deren Schnittstellenkonfiguration, »Sperrungsebene«, zugeordnete Laufwerke usw. (Arbeitspraxis und Konfiguration der Benutzer einschließlich der Gruppenrichtlinie) 4 Lösungsgruppe 1: Rollenbasierte Verwaltung Verwaltung der Benutzerdaten (umgeleitete Ordner und Profile) E-Mail-Verteilerlisten, zu denen der Benutzer gehört Ebenso gestattet die rollenbasierte Verwaltung Ihnen, einen Computer anhand seiner Rollen zu definieren (zum Beispiel einen Desktop- oder Laptopcomputer, einen Computer im Konferenzraum, eine gemeinsam genutzte Arbeitssstation, einen öffentlichen Kioskcomputer, einen Datenbank- oder Dateiserver) und damit automatisch die Verwaltung dieses Computers zu ermöglichen, darunter auch das Festlegen der folgenden Details: Vorhandene oder nicht vorhandene Berechtigungen an diesem Computer (Benutzerrechte) Vorhandene oder nicht vorhandene Zugriffsmöglichkeiten für diesen Computer (Zugriff auf Ressourcen) Konfiguration und Sicherheit (Gruppenrichtlinie) Spezielle Konfiguration für Benutzer dieses Computers (z.B. Loopback-Verarbeitung von Gruppenrichtlinienobjekten) Ich vermute, einige der zu Beginn dieses Abschnitts beschriebenen Szenarien kamen Ihnen bekannt vor. Sie spiegeln die Art der Probleme wider, die ich bei jedem Kunden antreffe, ob groß oder klein, der die rollenbasierte Verwaltung nicht sorgfältig umgesetzt hat. Lassen Sie mich diese Szenarien damit vergleichen, wie die Situation in einem Unternehmen aussehen könnte, in dem die rollenbasierte Verwaltung vorhanden ist. Das Bild, das ich dabei zeichne, kann Ihnen dabei helfen, sich vorzustellen, was die rollenbasierte Verwaltung wirklich bedeutet. Die Firma Contoso Ltd. hat kürzlich ein rollenbasiertes Verwaltungsmodell für ihre Windows-Organisation eingeführt. Die Firma hat einen fantastischen Berater eingestellt, Dan Holme … Entschuldigung, ich konnte mich nicht mehr bremsen … Ich schweife ab. Nun wird bei Contoso ein Werkzeug namens My Memberships verwendet, um den Status eines Benutzers oder Computers anzuzeigen. Hinweis My Memberships.hta befindet sich im Ordner Scripts auf der Begleit-CD und wird in Lösung 1.6 erörtert. Kürzlich wurde James Fine als Buchhalter im Büro in Denver eingestellt. Zum Zeitpunkt der Bereitstellung seines Benutzerkontos (wie in Lösung 7.7 auf Seite 512 beschrieben) wurde es in den folgenden Rollen definiert: Accounting und LOC_DEN. Er bekam einen Computer namens DESKTOP432, der der Rolle LOC_DEN zugewiesen wurde. Mit diesen drei Änderungen bot ihm sein Gesamtstatus (wie auf dem Screenshot von My Memberships in Abbildung 1.1 zu sehen) alle Möglichkeiten, seine Arbeit als Buchhalter zu verrichten. Beachten Sie, dass James alle anderen Befugnisse einfach dadurch erbt, dass er als Benutzer der Rolle Accounting in Denver zugewiesen wurde: Er hat Zugang zu mehreren Ressourcen (darunter Lesezugriff auf die Budget-Ressourcen), Software, Konfigurationen wie das Accounting-Anmeldeskript und zu den auf Server in Denver umgeleiteten Ordern sowie E-Mail-Listen. Keine dieser Befugnisse werden ihm direkt gewährt. Sie alle sind Teil der so genannten rollenbasierten Verwaltung, d.h. der Geschäftslogik, die festlegt und bereitstellt, was Buchhalter in Denver für die Erledigung ihrer Aufgaben benötigen. Sechs Monate später wird James zum Leiter der Abteilung Finanzwirtschaft befördert. Als solcher ändert sich seine Rolle von Accounting in Finance Manager. Die Geschäftslogik bei Contoso besagt jedoch, dass die Leiter der Abteilung Finanzwirtschaft auch Buchhalter sind, sodass James weiterhin Szenarien, Probleme und Lösungen 5 der Rolle Accounting angehört, allerdings indirekt über eine verschachtelte Gruppenmitgliedschaft. Außerdem wird er zu dem Standort versetzt, an dem er seine Aufgabe am effektivsten ausführen kann: nach Sydney. Mit diesen beiden Änderungen erhält er alle in Abbildung 1.2 aufgeführten Befugnisse. Abbildung 1.1 Die Verwaltung von James Fine, Buchhalter in Denver Abbildung 1.2 Verwaltung von James Fine, Leiter der Abteilung Finanzwirtschaft 6 Lösungsgruppe 1: Rollenbasierte Verwaltung Beachten Sie, dass James nun das Budget bearbeiten kann und über eine neue Anwendung (BudgetPro) verfügt, seine Ordner nach Sydney umgeleitet wurden und er zu einer neuen E-Mail-Verteilerliste gehört. James macht sich so gut, dass er zwei Jahre später zum Finanzvorstand befördert wird. Als solcher wird seine Rolle nun als Mitglied der Geschäftsleitung (Executive) definiert und sein Arbeitsplatz an den Hauptgeschäftssitz nach London verlagert. Er erhält alle weiteren in Abbildung 1.3 angegebenen Rollen und Befugnisse. Abbildung 1.3 Verwaltung von James Fine, Finanzvorstand/Geschäftsleitung Als Mitglied der Geschäftsleitung bekommt James eine neue Anwendung (PerksPlus), Zugriff auf zusätzliche Ressourcen (auf Ordner für Vorstandssitzungen), zusätzliche Konfigurationen und die Mitgliedschaft in einer neuen E-Mail-Verteilerliste. Das alles geschieht mit nur zwei Änderungen an der Definition seiner Rolle: Executive und London. James wird nur durch drei direkte Rollen definiert: Finance Managers, Executives und London. Die restlichen Rollen und alle Befugnisse werden von diesen drei Rollen vererbt. Nun wollen wir ein weiteres, in früheren Szenarien erwähntes Problem aufgreifen. Schauen Sie sich in Abbildung 1.4 an, wie einfach es für die IT-Abteilung ist, die Benutzer anzugeben, die auf einer bestimmten Ebene auf eine Ressource zugreifen können. Szenarien, Probleme und Lösungen 7 Abbildung 1.4 Access Report Das in Abbildung 1.4 dargestellte Werkzeug Access Report steht Ihnen auch auf dem Begleitmedium zur Verfügung. Es trägt den Namen Members_AccessReport.hta und befindet sich im Ordner Scripts. Erläutert wird es in Lösung 1.6. Das Szenario verdeutlicht, wie bei vorhandener rollenbasierter Verwaltung durch die einfache Definition eines Benutzers oder Computers die automatische Bereitstellung und Verwaltung aller für das Geschäft erforderlichen Einzelheiten für diesen Benutzer oder Computer durchgeführt werden kann. Dies ist natürlich ein einfaches Szenario, und ich hoffe, dass Sie jetzt zumindest einige Fragen oder Anmerkungen wie zum Beispiel folgende im Kopf haben: »Nun ja, das klingt großartig. Aber wie machen wir das?« Das ist der Schwerpunkt dieser Lösungsgruppe. Weiter hinten in diesem Buch finden Sie eine Reihe weiterer Lösungen, die auf der an dieser Stelle erarbeiteten Grundlage aufbauen. Ich gebe Ihnen einige kurze Ausblicke: Es hat viel mit der fortgeschrittenen Gruppenverwaltung und der gleichermaßen fortgeschrittenen Verwaltung von Ressourcen, Anwendungen, Gruppenrichtlinien, Skripts usw. zu tun. »Fortgeschritten« ist aber nicht gleichzusetzen mit »schwierig«. Lesen Sie weiter! »Mein Unternehmen ist komplizierter …« Das sagen alle. Vertrauen Sie mir. Ich habe dieses Verfahren in sehr großen Organisationen im Einsatz gesehen. Es funktioniert. Dieses Szenario ist vereinfachend dargestellt, aber die Konzepte, Fähigkeiten und Werkzeuge, die Sie beherrschen, erlauben Ihnen, diese Lösung in Ihrer Organisation anzuwenden. »Haben Sie letztendlich nicht eine Menge Gruppen, wenn sich dabei alles um Gruppen dreht?« Ja! Wenn Sie sich aber wirklich ansehen, was gerade in Ihrem Unternehmen geschieht, werden Sie feststellen, dass die Gruppenverwaltung viel einfacher ist. Außerdem stelle ich Ihnen Werkzeuge zur Verfügung, mit denen alles unkomplizierter und automatisiert abläuft. Vertrauen Sie mir: Es ist einfacher! 8 Lösungsgruppe 1: Rollenbasierte Verwaltung »Wie vielen Rollen sollte ein Benutzer angehören?« Das hängt von einer Reihe von Faktoren ab, mit denen wir uns weiter hinten in dieser Lösungsgruppe befassen. Im Endeffekt wird ein normaler Benutzer wahrscheinlich durch gerade mal eine Hand voll, vielleicht sogar bis zu einem Dutzend direkter Rollen definiert. Weitere Rollen können vererbt werden. Jetzt haben Sie vielleicht noch mehr Fragen oder Anmerkungen im Kopf. Das ist gut! Lesen Sie weiter. Ich werde versuchen, sie alle zu behandeln. Bevor wir uns mit unseren ersten Lösungen beschäftigen, sind einige weitere Hinweise angebracht Die 80/20-Regel Ein altbewährter Grundsatz besagt, dass Sie oftmals 80% der Probleme mit 20% des Aufwands lösen können und umgekehrt die verbleibenden 20% (die eine Situation »perfekt« machen) 80% des Aufwands erfordern. Ich halte sehr viel davon, die 80/20-Regel bei der Bewältigung von Problemen im Auge zu behalten. Wenn ich 80% meines Problems lösen kann, spare ich so viel Zeit, dass ich wesentlich mehr Wert bereitstelle, wenn ich mich anderen Herausforderungen zuwende, anstatt zu versuchen, alle Ausnahmen von der Regel aufzugreifen, die mich der 100%-Marke näher bringen. Ich glaube, darum geht es bei der Produktivität: diese 80% Ihres Aufwands freizusetzen, sodass Sie sich über Wasser halten, vorausschauen, Strategien bilden und umsetzen können, um zusätzlichen Wert für Ihr Unternehmen zu erzielen und ein gesünderes, erfüllteres Berufsleben zu führen. Da dieses Buch hoffentlich von Millionen Menschen (nun ja, ich übertreibe – hoffen wir auf sehr viele) in Unternehmen aller Formen, Größen, Standorte und Kulturen gelesen wird, ist das Beste, was wir tun können, der Versuch, 80% der Probleme aller zu lösen. Das wäre eine Meisterleistung und ein Grund zu feiern! Wenn Sie beim Einsatz dieser Lösungen die 80/20-Regel im Auge behalten, werden Sie überrascht sein, welchen Produktivitätsgewinn Sie erzielen. Es gibt wahrscheinlich hier und da einige Lücken. Dies ist eine Gelegenheit für Sie, eine Lösung bis zum letzten Schritt auszuarbeiten, damit Sie in Ihrer Organisation perfekt funktioniert. Machen Sie sich an die Arbeit! Skripts und Werkzeuge auf dem Begleitmedium Das Begleitmedium zu diesem Buch sind mit vielen Extras versehen. Die darin enthaltenen Ressourcen dienen nur als Referenz und Beispiel. Das bedeutet, dass diese Werkzeuge weder von Microsoft noch von mir oder Dritten unterstützt werden. Sie sollten alle von Ihnen eingesetzten Werkzeuge unbedingt analysieren, verstehen, testen (!) und einen Rollback-Plan ausarbeiten. Sie sind auf sich allein gestellt. Nachdem wir mit diesem Hinweis unsere Anwälte zufrieden gestellt haben, können wir jetzt sagen, dass wir natürlich versuchen, die Werkzeuge so nützlich wie möglich zu gestalten. Sie müssen sie öffnen (bei den meisten handelt es sich um Skripts und HTML-Anwendungen, die Sie mit dem Editor öffnen können) und nach den Angaben Änderungen an den Parametern vornehmen, z.B. Firmen- und Domänennamen. Keine große Sache. Dann untersuchen Sie jedes von ihnen eingesetzte Werkzeug, entwickeln Verständnis dafür, testen (!) es und erstellen einen Rollback-Plan. Viel Vergnügen damit! In der im Abschnitt »Die Onlinecommunity zu dieser technischen Referenz« erwähnten Onlinecommunity finden Sie Aktualisierungen von Skripts und Werkzeugen sowie Diskussionen zu den einzelnen Lösungen. Dabei handelt sich um eine Ressource von unschätzbarem Wert. Sofern (im Buch, in der README-Datei des Werkzeugs, in der dazugehörigen Lizenzvereinbarung oder in den Kommentaren Szenarien, Probleme und Lösungen 9 des Skripts oder Werkzeugs) nichts anderes angegeben ist, dürfen Sie außerdem das Werkzeug ändern und nach Ihren Anforderungen erweitern. Die Hinweise zum Urheberrecht und die Anmerkungen müssen Sie beibehalten. Wir wären Ihnen dankbar, wenn Sie Ihre Kreationen auf der Website der Community vorstellen würden, damit alle anderen Communitymitglieder ebenfalls davon profitieren können. Falls all das für Sie nach Open Source klingt, sind Sie auf der richtigen Spur. Wir vereinen all dies: Respekt, Kreativität und Nutzen. Werkzeuge von Microsoft und von Drittanbietern In dieser technischen Referenz erwähne ich auch Werkzeuge, die Ihnen bei der Lösung der von uns behandelten Probleme helfen können. Mit einigen können Sie in der Tat die letzten 20% auf dem Weg zur »Perfektion« erreichen. Zweifellos gibt es Werkzeuge, die von Microsoft und anderen Softwareherstellern entwickelt wurden und einen großen Gewinn für jeden Windows-Spezialisten darstellen. Beispielweise sind Microsoft Identity Lifecycle Manager (ILM) und System Center Configuration Manager zwei Serveranwendungen von Microsoft, die eine bedeutende Rolle auf Ihrem Weg zur rollenbasierten Verwaltung spielen können. Diese Werkzeuge bringen einen enormen Wert mit sich und führen wahrscheinlich zu einer Senkung der Gesamtbetriebskosten des Unternehmens. Allerdings ist bei der Berechnung der Gesamtbetriebskosten und des ROI (Return on Investment) der Zeitaufwand der IT-Spezialisten und Endbenutzer mit zu berücksichtigen. Wie viel Zeit wird aufgewendet, wie viel Zeit wird eingespart und wie viel ist das wert? Ich stelle fest, dass die meisten Organisationen überhaupt nicht in der Lage oder bereit sind, den Arbeitsaufwand ihrer Mitarbeiter genau zu berücksichtigen. Die meisten Organisationen beachten letztlich nur die ausgegebene Geldsumme und die mit einem Einkauf verbundenen Einsparungen. Daher kann der ROI nicht genau genug berechnet werden, um die reduzierten Gesamtbetriebskosten des Werkzeugs aufzuzeigen, sodass das Werkzeug nicht gekauft wird. Das ist schade, aber diese Haltung ist allzu häufig anzutreffen. Wenn Sie das Glück haben, für eine Organisation zu arbeiten, in der es Richtlinien für die Berücksichtigung der menschlichen Arbeitszeit gibt, stellen Sie sicher, dass Sie nicht nur berechnen, wie viel Geld durch die Bereitstellung einer bestimmten Lösung eingespart wird. Das ist der einfache Teil. Sie müssen auch den zusätzlichen Wert berechnen, der in den Endgewinn einfließt, wenn die Arbeitszeit eines Mitarbeiters von einer Aufgabe, die einen Wertverlust mit sich bringt, auf eine kreative, strategische oder taktische Aufgabe verlagert wird, die einen zusätzlichen Wert für die Organisation schafft. Daher zielt dieses Buch darauf ab, Sie mit Werkzeugen zu versorgen, die Sie ohne Geldmittel und hoffentlich mit minimiertem Aufwand an Zeit und Mühe einsetzen können. Wenn möglich, werden wir diese kostenlos anbieten. Falls es neben den in Windows Server 2008, Windows Server 2003, Windows Vista und Windows XP integrierten Werkzeugen eine gute Lösung gibt, werde ich Sie darauf aufmerksam machen – besonders wenn sie kostenlos ist. Sie sollten nur wissen, dass weder ich noch Microsoft noch dritte an dieser technischen Referenz beteiligte Parteien garantieren können, dass ein bestimmtes Werkzeug für Ihre Organisation von Wert ist oder überhaupt wie versprochen funktioniert. Ich kann Ihnen sagen, ob ich bei früheren Kundenprojekten gute Erfahrungen mit einem Werkzeug gemacht habe oder Gutes darüber gehört habe. Dies stellt jedoch keinerlei Empfehlung oder Garantie dar. Führen Sie eigene Untersuchungen und Tests durch und treffen Sie die für Ihr Unternehmen geeignete Entscheidung. 10 Lösungsgruppe 1: Rollenbasierte Verwaltung ROI und Produktivität Während meiner Laufbahn als Berater gab es mehrere Anlässe, bei denen mein Kunde mir Zahlen zur Berechnung des ROI vorgelegt hat, darunter die Zeitersparnis seitens der Mitarbeiter. Die Arbeitszeit der Mitarbeiter ist im Allgemeinen etwas mehr als doppelt so viel wert wie ihr Gehalt unter Berücksichtigung von Steuern, Zulagen und indirekten Kosten. All diese Ereignisse lehrten mich, dass Sie wahrscheinlich Ihre ROI-Berechnungen erheblich abschwächen müssen, falls Sie das Glück haben, dass Ihnen solche Zahlen zur Verfügung stehen. Bei einer dieser Gelegenheiten haben wir eine Lösung bereitgestellt, die als Orientierungshilfe für die Produktivität der Informationsmitarbeiter eines Unternehmens diente. Die Lösung bestand vorwiegend aus gezielten Schulungen und einem Onlineportal zur Selbsthilfe. Anhand einer Analyse der durch die Lösung erzielten Zeiteinsparungen, die mehrere Male gemessen wurden und sich mit meinen Erfahrungen bei anderen Kunden deckten, fanden wir heraus, dass die Endbenutzer zehn Minuten pro Tag und Benutzer sparten. Wir gingen davon aus, dass wir nur einen Bruchteil der Belegschaft erreichen, da nicht alle Mitarbeiter beteiligt sein würden. Bei einer Zeitersparnis von nur zehn Minuten pro Tag betrug der ROI mehr als 1000%. Das entspricht einem zehnfachen ROI. Die meisten Aktiengesellschaften verwenden eine interne Ertragsrate zur Bewertung ihrer Investitionen, die sich im Allgemeinen im Bereich von 10 bis 20% bewegt. Ein ROI von 1000% war absurd (wenn auch durch Daten gestützt). Wir legten die Ergebnisse dem Leiter der IT-Abteilung vor, der mit seinem Team übereinkam, dass wir den ROI in unserer Projektzusammenfassung auf unter 100% (einen doppelten ROI) senken müssten. Niemand würde einen ROI von 1000% glauben. Noch amüsanter war die Tatsache, dass dieser ROI lediglich die wiedergewonnene verschwendete Zeit (die Wiedergewinnung der durch die ineffiziente Ausführung von Aufgaben verschwendeten Zeit) der Mitarbeiter widerspiegelte. Dabei wurde der Gewinn, der der Firma dadurch entstand, dass diese Zeit für wertbildende Tätigkeiten genutzt wurde, gar nicht berücksichtigt. Wenn Sie das Glück haben, die menschliche Arbeitszeit berücksichtigen zu können, und Ihr Projekt auch nur einige Mitarbeiter Ihres Unternehmens erreicht, werden Sie feststellen, dass das Anpreisen von Produktivitätsprojekten der einfachste Verkaufsjob der Welt ist. Die Onlinecommunity zu dieser technischen Referenz Wir haben für Sie, die Leser dieses Buchs, eine hervorragende Onlineressource zusammengestellt. Melden Sie sich einfach unter http://www.intelliem.com/resourcekit an. Dort finden Sie eine Gemeinschaft von IT-Experten, die sich mit der Umsetzung dieser und anderer fantastischer Lösungen beschäftigen. Falls Änderungen an den im Buch oder auf dem Begleitmedium bereitgestellten Skripts oder Werkzeugen vorgenommen werden oder falls wir Fehler finden, werden wir diese auf der Site bekannt geben. Außerdem können Sie dort erörtern, was funktioniert, was nicht funktioniert und wie Sie die Lösungen einen Schritt weiter bringen. Los geht's! Nun habe ich Sie auf einige der Dinge vorbereitet, die Sie in dieser technischen Referenz erfahren. Ich habe Ihnen ein grundlegendes Verständnis für die Probleme der Verwaltbarkeit vermittelt, bei deren Lösung Ihnen die rollenbasierte Verwaltung helfen kann. Ich habe Sie auf die Begleitmedien und die Onlinecommunity hingewiesen und auf die rechtlichen Aspekte der von mir erwähnten, im Buch enthaltenen Skripts und Werkzeuge. Befassen wir uns nun eingehender mit den Lösungen dieser 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 11 Gruppe! Zunächst wärmen wir unsere Fähigkeiten zur Entwicklung maßgeschneiderter Werkzeuge auf und wenden sie auf die rollenbasierte Verwaltung an. 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) Die Lösung im Überblick Typ Werkzeug (Skript) Funktionen und Werkzeuge Befehlszeile, VBScript Zusammenfassung Erstellen eines Skripts zum Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) Vorteile Beantwortet die Frage: »Zu welchen Gruppen gehört X?« Macht die Gruppenmitgliedschaften einsehbarer, als es bei der Verwendung der standardmäßigen GUI-Werkzeuge möglich ist. Vorschau Abbildung 1.5 illustriert die Ausgabe eines Skripts, das die Gruppenmitgliedschaften eines Benutzers anzeigt. Abbildung 1.5 Skript zur Anzeige der Gruppenmitgliedschaften Einführung Unsere erste Lösung veranschaulicht einen allgemeinen Problemlösungsansatz dieses Buchs. Wir beginnen mit einem Problem, das den meisten Administratoren bekannt ist, und zeigen die Grenzen der Standardverwaltungswerkzeuge von Windows auf. Dann sehen wir uns erweiterte Werkzeuge an, die Funktionen zur Behebung des Problems anbieten. Abschließend erstellen wir ein Skript, mit dem sich das Problem vollständig lösen lässt. 12 Lösungsgruppe 1: Rollenbasierte Verwaltung In den darauf folgenden Lösungen verwandeln wir das Skript in ein Verwaltungswerkzeug mit einem GUI-Front-End. Dann integrieren wir das Werkzeug in das Standard-Snap-In Active Directory-Benutzer und -Computer, damit unsere neuen Funktionen zur Problembehebung innerhalb eines administrativen Standardwerkzeugs zur Verfügung stehen. Wenn Sie diese Lösungen befolgen und anwenden, erhalten Sie einen Ausblick auf einige der einzigartigen Ansätze, auf die wir in diesem Buch aufbauen. Active Directory-Benutzer und -Computer Im Leben eines jeden Administrators gibt es Momente, in denen er angeben muss, welchen Gruppen ein Benutzer angehört. Angesichts einer mehr als zehnjährigen Tätigkeit in der Erstellung GUI-basierter Verwaltungswerkzeuge für Windows-Netzwerke denken Sie vielleicht, dass der Standardwerkzeugkasten von Microsoft (einschließlich des Snap-Ins Active Directory-Benutzer und -Computer) diese Funktionen bereitstellen sollte. Das ist aber nicht der Fall. Sie können natürlich die Eigenschaften eines Benutzerobjekts öffnen und seine direkten Mitgliedschaften der in Abbildung 1.6 gezeigten Registerkarte Mitglied von entnehmen. Allerdings gehen die verschachtelten Mitgliedschaften des Benutzers nicht aus dieser Liste hervor. Wir können beispielsweise nicht sehen, dass James Mitglied von Accounts Payable ist, da die Gruppe Accounting Mitglied der Gruppe Accounts Payable ist. Abbildung 1.6 Die Registerkarte Mitglied von im Dialogfeld Eigenschaften eines Benutzerobjekts Mit einem Doppelklick auf eine beliebige Gruppe der Liste Mitglied von können Sie deren Eigenschaften öffnen und weiterforschen, bis Sie eine Gruppe finden, die nicht Mitglied einer anderen ist. 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 13 Hinweis Mit einem Doppelklick auf eine beliebige Gruppe der Liste Mitglied von können Sie deren Eigenschaften öffnen. Dies ist ein unsauberes, langsames Verfahren, um die Gruppenmitgliedschaften eines Benutzers herauszufinden. Falls Sie pro Stunde bezahlt werden, mag dies ihre Lieblingsmethode sein. Wir anderen müssen eine bessere Möglichkeit finden. DS-Befehle Geben Sie die DS-Befehle ein. Dabei handelt es sich um Befehlszeilenwerkzeuge für den Zugriff auf Active Directory und dessen Bearbeitung. Wir werden diese Befehle in mehreren Lösungen dieses Buchs wirksam einsetzen. Für diese Aufgabe nutzen wir den Befehl dsget.exe, mit dem Sie eine Eigenschaft eines Active Directory-Objekts herausfinden. Dazu ist die folgende Syntax erforderlich: dsget user Benutzer-DN -memberof –expand Der erste Parameter, user, gibt die Klasse des uns interessierenden Objekts an. Beim zweiten Parameter, Benutzer-DN, handelt es sich um den definierten Namen des Objekts, beim dritten, memberof, um die gewünschte Eigenschaft. Der vierte – für uns entscheidende – Parameter weist dsget an, die Anzeige der Mitgliedschaft um verschachtelte Gruppen zu erweitern. Um die Mitgliedschaften unseres Benutzers James herauszufinden, verwenden wir den folgenden Befehl: dsget user "cn=James Fine,ou=employee,ou=people,dc:contoso,dc=com" –memberof –expand Es macht keinen Spaß, den vollständigen definierten Namen (DN) eines Benutzers eingeben zu müssen, sodass wir einen anderen DS-Befehl einsetzen, um den Benutzer zu finden: dsquery.exe durchsucht Active Directory nach den von Ihnen angegebenen Eigenschaften und gibt den definierten Namen passender Objekte zurück. Bei der Eingabe von dsquery user -samid jfine erhalten wir den definierten Namen des Benutzerobjekts mit der Eigenschaft samid (Prä-Windows 2000-Anmeldename), der mit jfine übereinstimmt: cn=James Fine,ou=employees,ou=people,dc=contoso,dc=com Da dsquery den von dsget benötigten definierten Namen generiert, können wir die Ergebnisse von dsquery an dsget »weiterleiten«, wie der nächste Befehl zeigt: dsquery user -samid jfine | dsget user -memberof -expand Beachten Sie, dass der Befehl dsget keinen definierten Namen mehr enthält. Wenn Sie den definierten Namen des abzufragenden Objekts weglassen, erwartet dsget, dass Sie ihn eingeben. Versuchen Sie es – geben Sie den definierten Namen eines oder mehrerer Objekte in Anführungszeichen ein und drücken Sie anschließend (Strg) + (C). Zur Bereitstellung des definierten Namens verwenden Sie den Standardeingabestream StdIn. 14 Lösungsgruppe 1: Rollenbasierte Verwaltung Das Pipe-Symbol (|) leitet die vom Befehl dsquery generierte Ausgabe an die Eingabe StdIn des Befehls dsget um, sodass Sie sich die Eingabe des definierten Namens sparen können. Sie brauchen lediglich den Prä-Windows 2000-Anmeldenamen des Benutzers einzugeben. Die Ausgabe unseres Befehls dsquery | dsget bietet noch Raum für Verbesserungen: Die Gruppen werden in Form von definierten Namen aufgelistet, was nicht schön ist. Ändern wir unseren Befehl so ab, dass er nur die Namen der Gruppen zurückgibt: dsquery user -samid jfine | dsget user -memberof -expand | dsget group -samid Beachten Sie, dass wir die vom ersten dsget-Befehl bereitgestellte Liste definierter Namen an einen zweiten dsget-Befehl weiterleiten. Dieser legt fest, dass es sich bei allen definierten Namen und die Namen einer Gruppe handelt und wir die Eigenschaft samid abrufen wollen. Beachten Sie, dass der eigentliche Name der Prä-Windows 2000-Namenseigenschaft nach dem Active Directory-Schema sAMAccountName lautet. DS-Befehle folgen leider nicht den eigenen Standards von Microsoft, sodass die Option samid verwendet wird. Damit handelt es sich bei der Befehlszeilenlösung um ein Bündel aus drei Befehlen: dsquery user -samid SAM-Benutzerkontoname | dsget user -memberof -expand | dsget group -samid Wenn wir die Gruppenmitgliedschaften eines Computers herausfinden wollen, setzen wir einfach computer als Objektklasse in unsere DS-Befehle ein und fragen den Computer anhand seines allgemeinen Namens ab: dsquery computer -name Computername | dsget computer -memberof -expand | dsget group -samid Erstellen eines Batchskripts Nachdem wir nun die zum Auflisten der verschachtelten Gruppenmitgliedschaft erforderlichen DSBefehle kennen, können wir diese in ein einfaches, einzeiliges Skript verwandeln. Öffnen Sie den Editor und geben Sie die folgende Zeile ein: dsquery user -samid %1 | dsget user -memberof -expand | dsget group -samid Speichern Sie das Skript unter dem Namen "User_MemberOf_Enum.bat". Achten Sie darauf, den Dateinamen in Anführungszeichen einzuschließen, da der Editor andernfalls die Erweiterung .txt anfügt. Ich empfehle Ihnen, das Skript in einem leicht zugänglichen Ordner zu speichern, zum Beispiel in einem Ordner im Stammverzeichnis eines Festplattenlaufwerks. Begeben Sie sich dann an der Eingabeaufforderung zu dem Ordner, in dem Sie das Skript gespeichert haben, und führen Sie es wie folgt aus: User_MemberOf_Enum SAM-Benutzerkontoname Beispiel: User_MemberOf_Enum jfine Die Angabe %1 in dem Skript fügt das erste von Ihnen bereitgestellte Argument nach dem Befehl (den Prä-Windows 2000-Anmeldenamen oder »SAM-Benutzerkontoname«) an der richtigen Stelle der 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 15 Befehlsfolge ein. Wir können das Skript eleganter gestalten, indem wir das erste Argument einer Variablen zuweisen und diese dann wie folgt in der Befehlssequenz verwenden: set userdn=%1 dsquery user -samid %userdn% | dsget user -memberof -expand | dsget group –samid Die erste Zeile weist das Argument einer Variablen mit dem Namen userdn zu (bei den Namen von Variablen kann es sich um ein beliebiges nicht reserviertes Wort handeln), wobei der Verweis auf die Variable in der Befehlsfolge durch Einschließen ihres Namens in Prozentzeichen (%) erfolgt. Auflisten der Gruppenmitgliedschaften mit VBScript VBScript ist eine leistungsfähige, flexible Skriptsprache, die eine Reihe administrativer Lösungen ermöglicht. Dieses Buch ist nicht als Lehrbuch für VBScript gedacht. Zum Erlernen der Skripterstellung empfehle ich Ihnen Microsoft Windows Administrator's Automation Toolkit (Microsoft Press, 2005) oder ein anders Buch von dessen Autor, dem Skriptguru Don Jones. Bei der Vorstellung und Verwendung von Skripts in diesem Buch werden Sie meistens feststellen, dass diese mit geringfügigen Änderungen einsatzbereit sind, für deren Durchführung Sie kein Skripter sein müssen. Die Skripts werden hier oft bis zu einem gewissen Detaillierungsgrad überprüft. Wenn Sie dazu nicht bereit sind, überspringen Sie diesen Teil der Erläuterungen. Sie werden feststellen, dass Sie den Anweisungen zur Verwendung des Skripts leicht folgen können. Sind Sie kein Skripter, können Sie daher zum Beispiel die folgende Erläuterung überspringen und mit dem Abschnitt »Grundlagen von ADObject_MemberOf_Enum.vbs« auf Seite 15 fortfahren. Grundlagen von ADObject_MemberOf_Enum.vbs Der folgende Code erstellt eine besondere Art Array, das als Dictionary bezeichnet wird, und füllt es mit den Gruppenmitgliedschaften unseres Benutzers James Fine: ' Dictionary-Objekt zum Speichern von Gruppennamen erstellen Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Vergleichsmodus auf Nichtbeachtung der Groß- und Kleinschreibung setzen oMemberOfList.CompareMode = vbTextCompare Set oUser = GetObject("LDAP://cn=james fine,ou=employees,ou=people,dc=contoso,dc=com") Call ADObject_MemberOf_Enum(oUser) aMemberOfList = oMemberOfList.Keys WScript.Echo "MEMBERSHIPS" For Each sMemberOf In aMemberOfList WScript.Echo sMemberOf Next Sub ADObject_MemberOf_Enum(ByVal oObject) ' Listet die Eigenschaft MemberOf eines Objekts auf ' EINGABEN: oObject: Objekt, für das MemberOf aufgelistet werden soll ' ERFORDERT: Dictionary-Objekt oMemberOfList mit globalem Gültigkeitsbereich 16 Lösungsgruppe 1: Rollenbasierte Verwaltung On Error Resume Next aMemberOf = oObject.GetEx("memberOf") If Err.Number <> 0 Then ' Annahme, dass der Fehler auf fehlende definierte Namen von memberOf zurückzuführen ist Err.Clear On Error GoTo 0 Exit Sub Else On Error GoTo 0 For Each sMemberOf In aMemberOf Set oMemberOf = GetObject("LDAP://" & sMemberOf) sMemberOfSAM = oMemberOf.sAMAccountName If (oMemberOfList.Exists(sMemberOfSAM) = False) Then ' Wir haben diese Gruppe noch nicht gesehen ' Zum Dictionary-Objekt hinzufügen oMemberOfList.Add sMemberOfSAM, True ' Verschachtelte Mitgliedschaften dieser Gruppe auflisten Call ADObject_MemberOf_Enum(oMemberOf) End If Next End If End Sub Das »Arbeitstier« dieses Skripts ist die Subroutine mit dem Namen ADObject_MemberOf_Enum. Sie nimmt ein Active Directory-Objekt (Benutzer, Gruppe oder Computer) entgegen und überprüft dessen MemberOf-Eigenschaft. Ist diese vorhanden, wird jede Gruppe dahingehend untersucht, ob sie der Liste der Mitgliedschaften bereits hinzugefügt wurde. Falls nicht, wird sie in die Liste aufgenommen. Danach ruft die Routine sich selbst auf, um die Mitgliedschaft der Gruppe zu überprüfen. Dieser iterative, verschachtelte Prozess wird als Rekursion bezeichnet und erlaubt der Routine, alle Mitgliedschaften des ursprünglichen Objekts mit den Mitgliedschaften aus verschachtelten Gruppen aufzulisten. Die von diesem Skript erstellte Mitgliedschaftsliste ist fast, aber doch nicht ganz vollständig. Jedes Benutzer- und Computerobjekt in Active Directory weist eine primäre Gruppenmitgliedschaft auf: Benutzer gehören normalerweise zur Gruppe Domänen-Benutzer und Computer zu Domänencomputer. Diese primäre Gruppenzugehörigkeit ist nicht in der Eigenschaft MemberOf, sondern in der Eigenschaft PrimaryGroupID gespeichert. Die PrimaryGroupID muss in den tatsächlichen Gruppennamen übersetzt werden. PrimaryGroupID 514 entspricht beispielsweise der Gruppe Domänen-Benutzer. Das folgende Codesegment nimmt einen von oObject dargestellten Active Directory-Benutzer oder -Computer und fügt die primäre Gruppe des Objekts unserem Mitgliedschaftslisten-Dictionary hinzu: iPrimaryGroup = oObject.PrimaryGroupID sPrimaryGroup = "" Select Case iPrimaryGroup Case 513 sPrimaryGroup = "Domain Users" 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 17 Case 514 sPrimaryGroup = "Domain Guests" Case 515 sPrimaryGroup = "Domain Computers" Case 516 sPrimaryGroup = "Domain Controllers" End Select If sPrimaryGroup > "" Then Call ADObject_MemberOf_Enum(sPrimaryGroup) oMemberOfList.Add sPrimaryGroup, True End If Befinden sich diese beiden wichtigen Komponenten an Ort und Stelle, können wir den Rest des Skripts erstellen. Das Skript heißt ADObject_MemberOf_Enum.vbs und ist wie alle Skriptlösungen dieses Buchs im Ordner Scripts auf dem Begleitmedium zu finden. Im Buch drucke ich nicht immer das gesamte Skript ab, damit mehr Seiten für weitere Lösungen zur Verfügung stehen. In diesem Fall kann ich jedoch dieses Skript verwenden, um den Aufbau der Skripts zu diesem Buch, einige der vor mir verwendeten Konventionen sowie Anwendungsmöglichkeiten in Ihrem Unternehmen zu verdeutlichen. ADObject_MemberOf_Enum.vbs Option Explicit Dim oMemberOfList Dim aMemberOfList Dim sMemberOf Dim sDomainDN Dim sArgument Dim sObjectDN ' KONFIGURATIONSBLOCK sDomainDN = "dc=contoso,dc=com" If WScript.Arguments.Count <> 1 Then ' Falsche Anzahl von Argumenten übergeben WScript.Echo "USAGE: cscript //nologo <name of script> [DN | ADSPath | NAME]" WScript.Echo "where the object can be represented by a distinguished name," WScript.Echo "ADSPath, pre-Windows 2000 logon name (user/group) or name (computer)" WScript.Quit(501) ' 501 ist ein Beendigungscode, den ich zur Angabe eines generischen Fehlers in meinen Skripts verwende End If ' Argument abrufen sArgument = WScript.Arguments(0) ' In DN übersetzen sObjectDN = ADObject_DN_UCG(sArgument, sDomainDN) 18 Lösungsgruppe 1: Rollenbasierte Verwaltung If sObjectDN = "" Then WScript.Echo "ERROR--NOT FOUND: " & sArgument WScript.Quit (501) End If ' Dictionary-Objekt zum Speichern von Gruppennamen erstellen Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Vergleichsmodus auf Nichtbeachtung der Groß- und Kleinschreibung setzen oMemberOfList.CompareMode = vbTextCompare Call ADObject_MemberOf (sObjectDN) aMemberOfList = oMemberOfList.Keys aMemberOfList = Array_Sort(aMemberOfList) WScript.Echo "MEMBERSHIPS" For Each sMemberOf In aMemberOfList WScript.Echo sMemberOf Next ' ============================= ' FUNKTIONEN AUS DER BIBLIOTHEK ' ============================= Function ADObject_DN_UCG(ByVal sObject, sSearchDN) ' Version 070706 ' Übernimmt jede Eingabe (Name, DN oder ADsPath) eines Benutzers, eines Computers oder einer Gruppe ' und gibt den definierten Namen des Objekts zurück ' EINGABEN: sObject: Name, DN oder ADsPath zu einem Benutzer, einer Gruppe oder einem Computer ' sSearchDN: zu durchsuchender DN (oftmals der DN der Domäne, z.B. dc=contoso, dc=com) ' RÜCKGABEN: ADObject_DN_UCG: definierter Name (cn=...) des Objekts ' ERFORDERT: die Routine ADObject_Find_UCG Dim sObjectName, oObject, sObjectADsPath, sObjectDN If Len(sObject) = 0 Then sObjectDN = "" ElseIf Len(sObject) < 3 Then ' Kann kein DN oder ADsPath sein – muss ein Name sein sObjectADsPath = ADObject_Find_UCG(sObject, sSearchDN) If sObjectADsPath <> "" Then sObjectDN = mid(sObjectADsPath,8) ElseIf LCase(Left(sObject,3)) = "cn=" Then ' Ist ein DN – sicherstellen, dass er existiert On Error Resume Next Set oObject = GetObject("LDAP://" & sObject) sObjectDN = oObject.distinguishedName If Err.Number <> 0 Then 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 19 ' Fehler – Objekt konnte nicht gefunden werden sObjectDN = "" Err.Clear End If On Error GoTo 0 ElseIf Len(sObject) < 8 Then ' Kann kein ADsPath sein und ist kein DN, muss ein Name sein sObjectADsPath = ADObject_Find_UCG(sObject, sSearchDN) If sObjectADsPath <> "" Then sObjectDN = mid(sObjectADsPath, 8) ElseIf Ucase(Left(sObject, 7)) = "LDAP://" Then ' Ist ein ADsPath – sicherstellen, dass er existiert ' Zuerst sicherstellen, dass LDAP:// in Großbuchstaben geschrieben ist, um Fehler zu vermeiden sObject = "LDAP://" & Mid(sObject, 8) On Error Resume Next Set oObject = GetObject(sObject) sObjectDN = oObject.distinguishedName If Err.Number <> 0 Then ' Fehler – konnte Objekt nicht finden sObjectDN = "" Err.Clear End If On Error GoTo 0 Else ' muss ein Name sein sObjectADsPath = ADObject_Find_UCG(sObject, sSearchDN) If sObjectADsPath <> "" Then sObjectDN = mid(sObjectADsPath,8) End If ADObject_DN_UCG = sObjectDN End Function Function ADObject_Find_UCG(sObjectName, sSearchDN) ' VERSION 070706 ' Gibt den vollständigen ADsPath (LDAP://...) eines Benutzers, eines Computers oder einer Gruppe zurück ' Eingaben: ' sObjectName: der eindeutige Bezeichner für die Objektklasse. Das Skript unterstützt: ' Benutzer: sAMAccountName (Prä-Windows 2000-Anmeldename) ' Gruppe: sAMAccountName (Prä-Windows 2000-Anmeldename) ' Computer: Name (vom Skript durch Hinzufügen eines $-Zeichens in den sAMAccountName des Computers übersetzt) ' sSearchDN: zu durchsuchender DN (oftmals der DN der Domäne, z.B. dc=contoso, dc=com) 20 Lösungsgruppe 1: Rollenbasierte Verwaltung Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim oConnection oRecordset sLDAPObjectQuery sLDAPIdentifierQuery sLDAPQuery sProperties oADObject aProperties sProperty sLDAPIdentifier sSearchScope sLDAPIdentifier = "samAccountName" sProperties = "ADsPath" sSearchScope = "subtree" ' Öffnen einer ADO-Verbindung unter Verwendung von NULL-Anmeldeinformationen Set oConnection = CreateObject("ADODB.Connection") oConnection.Provider = "ADsDSOObject" 'Bei Fehler mit nächster fortfahren oConnection.Open "", vbNullString, vbNullString If oConnection.State = 0 Then ' 0 = adStateClosed ' Fehlerbehandlungscode: Kann keine Verbindung zu AD herstellen ADObject_Find_UCG = "" Exit Function End If ' Erstellen der LDAP-Abfrage sLDAPQuery = "<LDAP://" & sSearchDN & ">;" sLDAPQuery = sLDAPQuery & _ "(|(samAccountName=" & sObjectName & ")" & _ "(samAccountName=" & sObjectName & "$));" & _ sProperties & ";" & sSearchScope ' Resultset abrufen, Verbindung schließen und überprüfen, ob ' wir mindestens ein Ergebnis erhalten haben Set oRecordset = oConnection.Execute (sLDAPQuery) If oRecordset.EOF and oRecordset.BOF Then ' Fehlerbehandlugnscode: kein Objekt gefunden ADObject_Find_UCG = "" Exit Function End If 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 21 ADObject_Find_UCG = oRecordset.Fields("ADsPath") oRecordset.Close oConnection.Close End Function Sub ADObject_MemberOf(ByVal sObjectDN) ' Version 070701 ' Listet die Gruppenmitgliedschaften eines Benutzers oder Computers auf ' EINGABEN: sObjectDN: DN des Benutzers oder Computers ' RÜCKGABEN: sortierte oMemberOfList mit den einzelnen Gruppen, ' denen der Benutzer oder Computer angehört ' ERFORDERT: die Funktion ADObject_MemberOf_Enum ' die Funktion Array_Sort ' oMemberOf-Liste mit globalem Gültigkeitsbereich ' z.B. ' Set oMemberOfList = CreateObject("Scripting.Dictionary") ' oMemberOfList.CompareMode = vbTextCompare ' keine Berücksichtigung der Groß- und ’ Kleinschreibung Dim Dim Dim Dim oObject iPrimaryGroup sPrimaryGroup aMemberOf On Error Resume Next Set oObject = GetObject("LDAP://" & sObjectDN) If Err.Number<>0 Or oObject Is Nothing Then Err.Clear Exit Sub End If On Error GoTo 0 If oObject.Class = "computer" Or oObject.Class = "user" Then iPrimaryGroup = oObject.PrimaryGroupID sPrimaryGroup = "" Select Case iPrimaryGroup Case 513 sPrimaryGroup = "Domain Users" Case 514 sPrimaryGroup = "Domain Guests" Case 515 sPrimaryGroup = "Domain Computers" 22 Lösungsgruppe 1: Rollenbasierte Verwaltung Case 516 sPrimaryGroup = "Domain Controllers" End Select If sPrimaryGroup > "" Then Call ADObject_MemberOf_Enum(sPrimaryGroup) oMemberOfList.Add sPrimaryGroup, True End If End If On Error Resume Next aMemberOf = oObject.GetEx("memberOf") If Err.Number <> 0 Then ' Annahme, dass Fehler auf fehlende definierte Namen von memberOf zurückzuführen ist Err.Clear On Error GoTo 0 Exit Sub Else On Error GoTo 0 Call ADObject_MemberOf_Enum(oObject) End If End Sub Sub ADObject_MemberOf_Enum(ByVal oObject) ' Version 070701 ' Listet die Eigenschaft MemberOf eines Objekts auf ' EINGABEN: oObject: Objekt, dessen MemberOf-Eigenschaft aufgelistet werden soll ' ERFORDERT: Dictionary-Objekt oMemberOfList mit globalem Gültigkeitsbereich ' z.B. ' Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Dim Dim Dim Dim oMemberOfList.CompareMode = vbTextCompare ' keine Berücksichtigung der Groß- und ’ Kleinschreibung aMemberOf sMemberOf oMemberOf sMemberOfSAM On Error Resume Next aMemberOf = oObject.GetEx("memberOf") If Err.Number <> 0 Then ' Annahme, dass der Fehler auf fehlende definierte Namen von memberOf zurückzuführen ist Err.Clear On Error GoTo 0 Exit Sub 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 23 Else On Error GoTo 0 For Each sMemberOf In aMemberOf Set oMemberOf = GetObject("LDAP://" & sMemberOf) sMemberOfSAM = oMemberOf.sAMAccountName If (oMemberOfList.Exists(sMemberOfSAM) = False) Then ' Wir haben diese Gruppe noch nicht gesehen ' Zum Dictionary-Objekt hinzufügen oMemberOfList.Add sMemberOfSAM, True ' Auflisten der verschachtelten Mitgliedschaften dieser Gruppe Call ADObject_MemberOf_Enum(oMemberOf) End If Next End If End Sub Function Array_Sort(ByVal aArray) ' VERSION 070701 ' Sortiert ein Array sehr schnell mithilfe von .NET-Objekten ' EINGABEN: aArray: ein zu sortierendes Array (einschl. Dictionary-Objekt) ' RÜCKGABEN: Array_Sort: sortiert ' ERFORDERT: .NET Framework 2.0 Dim oNAL Dim nIdx Set oNAL = CreateObject("System.Collections.ArrayList") For nIdx = 0 To UBound(aArray) oNAL.Add aArray(nIdx) Next oNAL.Sort For nIdx = 0 To UBound(aArray) aArray(nIdx) = oNAL(nIdx) Next Array_Sort = aArray End Function 24 Lösungsgruppe 1: Rollenbasierte Verwaltung Zum Ausführen des Skripts öffnen sie die Eingabeaufforderung, begeben sich zu dem Ordner, der das Skript enthält, und geben den folgenden Befehl ein: cscript.exe ADOBJECT_MEMBEROF_ENUM.vbs "Name des Benutzers, des Computers oder der Gruppe" Um das Skript sehr flexibel zu gestalten, habe ich es so kodiert, dass Sie eine der folgenden Möglichkeiten zur Angabe des zu analysierenden Objekts verwenden können: Den definierten Namen eines Benutzers, eines Computers oder einer Gruppe Den vollständigen LDAP-Pfad zum Objekt (LDAP://CN=...), der aus dem Präfix LDAP:// gefolgt von dem definierten Namen des Objekts besteht. Dies wird als ADsPath des Objekts bezeichnet. Den Prä-Windows 2000-Anmeldenamen eines Benutzers: sein Attribut sAMAccountName Den Prä-Windows 2000-Anmeldenamen einer Gruppe: ihr Attribut sAMAccountName Den Namen eines Computers: sein Attribut Name. Beim Attribut sAMAccountName eines Computers handelt es sich um dessen Attribut Name, an das ein Dollarzeichen ($) angehängt wurde, damit das Skript sAMAccountName vom Computernamen ableiten kann. Ich habe aus folgenden Gründen die Möglichkeit bereitgestellt, einen einfachen Namen als Argument einzugeben. Erstens ist ein einfacher im Vergleich zu einem definierten Namen im wahrsten Sinne des Wortes einfach. Zweitens werden wir in der nächsten Lösung das Skript nicht an der Befehlszeile aufrufen, sondern in der MMC (Microsoft Management Console), und zwar mit einem bestimmten ausgewählten Benutzer (oder einem Computer oder einer Gruppe). Je nachdem, wie wir das Skript starten, wird ihm der Objektname in einer anderen Form als Argument übergeben, sodass das Skript in der Lage sein muss, mehrere Arten von Namen zu übernehmen. Als Beispiele für die Befehle zum Aufruf des Skripts sind unter anderem folgende zu nennen: cscript //nologo ADOBJECT_MEMBEROF_ENUM.vbs "cn=james fine,ou=employees,ou=people,dc=contoso,dc=com" oder cscript //nologo ADOBJECT_MEMBEROF_ENUM.vbs jfine Die Option //nologo unterdrückt den normalen Header aus dem Befehl cscript. Im ersten Beispiel wird der definierte Name von James Fine als Argument an das Skript übergeben, im zweiten sein Benutzername (der Prä-Windows 2000-Anmeldename). Anführungszeichen um das letzte Argument sind erforderlich, wenn es wie im ersten Beispiel Leerzeichen enthält. Das Skript beginnt mit der Anweisung Option Explicit, die es erforderlich macht, dass Sie jede Variable vor deren Verwendung durch eine Dim-Anweisung deklarieren, wie es in den folgenden Zeilen der Fall ist. Optimal ist es bei der Skripterstellung, Option Explicit zu verwenden und Variablen zu deklarieren, da dies die Wahrscheinlichkeit von Fehlern verringert, die aus Eingabefehlern in den Variablennamen resultieren. Die Skripts auf dem Begleitmedium verwenden Option Explicit und Deklarationen, obwohl ich normalerweise solche Anweisungen auslasse, wenn ich ein Skript im Buch abdrucke, damit wir uns auf die funktionalen Aspekte des Skripts konzentrieren können. Wird einer dieser Namen an das Skript übergeben, schlägt dieses das passende Objekt in der durch DomainDN angegebenen Domäne im Konfigurationsblock des Skripts nach. 1.1 Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) 25 Wichtig Viele der in dieser technischen Referenz bereitgestellten Skripts und Werkzeuge verfügen über einen Konfigurationsblock, in dem Sie die meisten oder sogar alle notwendigen unternehmensspezifischen Anpassungen vornehmen. Lesen Sie auch die Kommentare im Skript, die auf andere eventuell erforderliche Anpassungen hinweisen. In einem VBScript beginnen Kommentare mit einem Apostroph ('), in HTML sind sie in zwei Tags eingeschlossen: <!-- am Anfang und --> am Ende. Wir programmieren die Domäne fest ein, da das Attribut sAMAccountName nur innerhalb einer einzigen Domäne garantiert eindeutig ist. Eine altbewährte Alternative zur Bestimmung des definierten Namens der Domäne besteht darin, eine Verbindung zum Objekt RootDSE herzustellen und den Standardnamenskontext zu untersuchen, was jedoch in einer Gesamtstruktur mit einem leeren Gesamststrukturstamm und einer untergeordneten Domäne mit all den Benutzern und Computern nicht funktioniert. Daher ziehe ich es vor, den Domänennamen fest einzuprogrammieren. Als geschulter Skripter möchten Sie vielleicht andere Möglichkeiten nutzen, um den Wert für sDomainDN dynamisch zu ermitteln. Das Skript deklariert sDomainDN als Variable und nicht als Konstante, sodass Sie bei der Zuweisung des Werts flexibel vorgehen können. WScript.Arguments() ist eine Gruppe von Argumenten, die Sie an der Befehlszeile an das Skript übergeben haben. Ich verwende die Gruppeneigenschaft Count, um sicherzustellen, dass Sie nur ein einziges Argument an das Skript übergeben haben. Falls nicht (was bedeutet, dass Sie entweder kein Argument oder zu viele Argumente angegeben haben), wird ein Verwendungshinweis angezeigt. Wurde ein Argument an das Skript übergeben, wird es der Variablen sArgument zugewiesen. Die Gruppe Arguments beginnt bei null, sodass WScript.Arguments(0) das erste Argument darstellt. Das Skript verwendet dann zwei Routinen aus unserer Bibliothek, um das Argument in den definierten Namen des ausgewählten Objekts zu übersetzen. Bei den beiden Routinen handelt es sich um die Funktionen ADObject_DN_UCG und ADObject_Find_UCG. Diese beiden Funktionen übernehmen gemeinsam den Namen eines Benutzers, eines Computers oder einer Gruppe und geben den definierten Namen des Objekts in Active Directory zurück. Bei dem Namen, den die Funktionen übernehmen, kann es sich um einen definierten Namen (z.B. CN=...), ADsPath (z.B. LDAP://CN=...) oder sMAccountName (einen Prä-Windows 2000-Anmeldenamen) handeln. Wenn Sie einen definierten Namen oder ADsPath bereitstellen, bestätigen die Routinen das Vorhandensein des Objekts und geben dessen definierten Namen zurück. Falls Sie sAMAccountName angeben, sucht die Funktion ADObject_Find_UCG nach einem passenden Objekt innerhalb eines bestimmten Gültigkeitsbereichs – normalerweise der gesamten Domäne –, das als definierter Name (z.B. DC=contoso,DC=com) an die Funktion übergeben wird. Das Skript ruft die Funktion ADObject_DN_UCG auf, die für die Übersetzung eines der vier verwendbaren Namenstypen in einen definierten Namen verantwortlich ist. Handelt es sich bei dem übergebenen Namen nicht um einen definierten Namen oder ADsPath, ruft die Funktion ADOObject_Find_UCG auf, die den angegebenen Gültigkeitsbereich (in diesem Fall die gesamte Domäne) nach einem Benutzer, einem Computer oder einer Gruppe mit einem dem angegebenen Argument entsprechenden Namen durchsucht. Als Nächstes bereitet das Skript das Dictionary-Objekt oMemberOfList vor, das alle für den Benutzer oder den Computer ermittelten Gruppenmitgliedschaften enthält. Dann ruft der Code die Subroutine ADObject_MemberOf auf, die mit dem Auflisten der Gruppenmitgliedschaften beginnt. Der Code übergibt den zuvor ermittelten definierten Namen des Objekts an die Subroutine. Die Subroutinen füllen das Dictionary oMemberOfList mit allen Gruppen, zu denen das Objekt (Benutzer, Computer oder Gruppe) gehört, darunter auch dessen primäre Gruppe. Ich werde die Subroutinen gleich ausführlich beschreiben. Das daraus resultierende Schlüsselfeld des Dictionary-Objekts wird in 26 Lösungsgruppe 1: Rollenbasierte Verwaltung ein Array, MemberOfList, kopiert, das dann mit der Funktion Array_Sort sortiert wird. Anschließend werden die Einträge des Arrays nacheinander angezeigt. Zwei Subroutinen sind für das Füllen von oMemberOfList verantwortlich. Die erste, ADObject_MemberOf, erstellt einen Verweis auf das Objekt und interpretiert seine primäre Gruppe, falls es sich um einen Benutzer oder Computer handelt. Weist das Objekt weitere Mitgliedschaften auf, wird es an die Subroutine ADObject_MemberOf_Enum übergeben, die die Gruppenmitgliedschaften rekursiv überprüft, wie bereits in dieser Lösung beschrieben, und nacheinander dem Dictionary oMemberOfList hinzufügt. Wie andere Skripts dieses Buchs bietet auch dieses die Möglichkeit einer einfachen bis mittelmäßigen Fehlererkennung. Wenn Kunden mich fragen, worin der Unterschied zwischen Skriptund Codeerstellung besteht, hebe ich oft hervor, dass es für ein Skript lediglich notwendig ist, eine Aufgabe zu bewältigen. Punkt. Eine Anwendung dagegen muss robuster, flexibler und sicherer sein und ein größeres Eingabespektrum besser unterstützen. Bei der Skripterstellung stellen Sie stets Voraussetzungen auf und machen Zugeständnisse an die Zweckmäßigkeit und Effizienz des Codes. Sie dürfen die Fehlerbehandlung, Eingabevalidierung oder andere derartige Eigenschaften der Skripts gerne erweitern. Verwenden von ADObject_MemberOf_Enum.vbs Das Skript ADOBJECT_MMEMBEROF_ENUM.vbs finden Sie im Ordner Scripts auf dem Begleitmedium zu diesem Buch. Um es auszuführen, öffnen Sie die Eingabeaufforderung (cmd.exe) und geben den folgenden Befehl ein: cscript //nologo ADOBJECT_MEMBEROF_ENUM.vbs " Name des Benutzers, des Computers oder der Gruppe " Dieses und alle anderen von mir vorgestellten Skripts sollten Sie sorgfältig testen. Skripts stellen eine schnelle, effiziente Lösung, aber keine vollständig getestete Anwendung dar. Daher sollten Sie sicherstellen, dass Sie ein Skript und die Änderungen verstehen, die Sie daran vornehmen müssen oder können, und das vollständige Skript vor seiner Bereitstellung in der Produktion in einer Testumgebung testen. Warum VBScript? Wie Sie vielleicht wissen, unterstützt Windows Server 2008 die Windows PowerShell als Schnittstelle für die Administration und Automatisierung. Sie können Windows PowerShell auch von der MicrosoftWebsite herunterladen und unter Windows Vista, Windows XP und Windows Server 2003 installieren. Allerdings werden wir für die meisten Lösungen in diesem Buch VBScript einsetzen, weil wir möglichst flexiblen und wiederverwendbaren Code erstellen wollen. Die VBScript-Subroutinen, die wir früher geschrieben haben, konnten beispielsweise leicht in ein Anmeldeskript, eine Webseite oder eine HTML-Anwendung (.hta) integriert werden. Tatsächlich integriert die nächste Lösung den Code in eine benutzerdefinierte Verwaltungs-GUI, die als HTA-Datei gespeichert wird. In jedem dieser Szenarien kann VBScript ausgeführt werden, ohne dass Sie sich darüber Gedanken machen müssen, ob Windows PowerShell installiert ist oder nicht. Selbst unter Windows Server 2008 gibt es keine Garantie, dass PowerShell zur Verfügung steht, da das Programm als Feature installiert werden muss. Schließlich ist PowerShell ein neues Produkt und bietet keine einheitliche Gruppe von Funktionen an. Viele unserer Lösungen beziehen beispielsweise Active Directory ein, wofür PowerShell nicht so ergiebig ist wie für andere Komponenten, z.B. Windows Management Instrumentation (WMI). Um die maximale Flexibilität, Wiederverwendbarkeit und Kompatibilität zu erhalten und einen reichhaltigen Satz von Funktionen nutzen zu können, ist daher VBScript oft, aber nicht immer das Mittel 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften 27 unserer Wahl. Sie können sicher sein, dass in künftigen Ausgaben dieses Buchs zunehmend PowerShell-Skripts zum Einsatz kommen, da PowerShell und Windows-Client- und -Servertechnologien zunehmend integriert werden. Die nächsten Schritte Das Skript ADObject_MemberOf_Enum.vbs ist eine fertige Lösung zum Auflisten der Gruppenmitgliedschaften eines Benutzers, eines Computers oder einer Gruppe. Seine Funktionalität unterscheidet sich allerdings bis auf die sortierte Ausgabe nicht wesentlich von unserer Befehlsfolge dsquery | dsget | dsget. Die wahren Gründe, warum ich so viel Zeit für dieses Skript aufgewendet habe, bestehen erstens darin, dass ich Ihnen den in diesem Buch verwendeten Ansatz zur Skripterstellung vorstellen möchte. Zweitens verwenden wir diesen Code in den nächsten beiden Lösungen zum Erstellen eines wirklich nützlichen GUI-Verwaltungswerkzeugs. Hören Sie also noch nicht auf zu lesen! Weitere Informationen Um mehr über VBScript zu erfahren, beginnen Sie bei den hervorragenden Quellen im TechNet Script Center unter http://www.microsoft.com/technet/scriptcenter/default.mspx. Ich lege Ihnen das Buch Microsoft Windows Administrator's Automation Toolkit (Microsoft Press, 2005) oder einen der anderen Titel von Skriptguru Don Jones ans Herz. Im Internet gibt es unzählige Quellen zum Erlernen von VBScript und für Beispielcode. Ich schlage vor, die Suche mithilfe von Schlüsselwörtern dazu durchzuführen, was Sie mit einem Skript erreichen wollen, und das Schlüsselwort »VBScript« hinzuzufügen. Eine Suche mit dem Suchbegriff VBScript Gruppenmitgliedschaft führt beispielsweise zu einer Vielzahl weiterer Ansätze für das soeben von uns gelöste Problem. Eine der namhaftesten und aktivsten Sites ist www.ScriptingAnswers.com von Don Jones. Zusammenfassung Die standardmäßigen GUI-Verwaltungswerkzeuge von Windows zeigen nicht die vollständigen Gruppenmitgliedschaften eines Benutzers oder Computers an, da sie keine verschachtelten Gruppenmitgliedschaften offen legen. Der Befehl dsget [user | computer] -memberof -expand listet alle Gruppenmitgliedschaften so auf, wie es auch bei VBScript der Fall ist, z.B. bei dem Skript dieser Lösung, ADOObject_MemberOf_Enum.vbs. Dabei handelt es sich jedoch lediglich um eine unausgereifte Lösung. Die nächsten beiden Lösungen bauen darauf auf und erstellen eine sehr nützliche Erweiterung zum Snap-In Active Directory-Benutzer und -Computer. 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften Die Lösung im Überblick Typ HTML-Anwendung Funktionen und Werkzeuge HTA, HTML, VBScript Zusammenfassung Sie erstellen ein GUI-Werkzeug zum Auflisten der Gruppenmitgliedschaften eines Benutzers (oder Computers) und lernen, wie Sie Skripts in Verwaltungswerkzeuge verwandeln. 28 Lösungsgruppe 1: Rollenbasierte Verwaltung Vorteile Beantwortung der Frage: »Zu welchen Gruppen gehört X?« Bessere Verdeutlichung der Gruppenmitgliedschaften, als es bei der Verwendung des Standardsatzes von GUI-Werkzeugen möglich ist. Vorschau Abbildung 1.7 zeigt die HTML-Anwendung Group Membership Report in Aktion, die die Mitgliedschaften eines Benutzers mit dem Prä-Windows 2000-Ameldenamen jfine auflistet. Abbildung 1.7 Die HTML-Anwendung Group Membership Report Einführung In Lösung 1 wurde ein VBScript vorgestellt, dass die Gruppenmitgliedschaften eines Benutzers, eines Computers oder einer Gruppe mit den verschachtelten Gruppenmitgliedschaften und der primären Gruppe des Kontos auflistet. In dieser Lösung wird dieses Skript um eine Ebene weiterentwickelt, indem ein Verwaltungswerkzeug mit einer grafischen Benutzeroberfläche (Graphical User Interface, GUI) durch die Entwicklung einer einfachen Webseite und einer HTML-Anwendung (HTA) erstellt wird. Webbasierte Verwaltungswerkzeuge sind von Vorteil, weil sie über Standardwebbrowser, z.B. Internet Explorer, zugänglich sind. Sie können das Werkzeug von einer Stelle aus aktualisieren und verwalten und brauchen keine Komponenten auf Clients zu installieren. Eine Herausforderung bei webbasierten Werkzeugen besteht allerdings darin, dass Internet Explorer eine Reihe von Sicherheitsbeschränkungen im Hinblick auf die zulässige Art des auszuführenden Codes aufweist. Einige dieser Einschränkungen können Sie umgehen, indem Sie Ihre Administrationswebsite in der Sicherheitszone Lokales Intranet einordnen. Sie können Ihre Verwaltungswerkzeuge auch als ASP.NET-Seiten kodieren, die im Sicherheitskontext des Anwendungspools der Website ausgeführt werden und serverseitig eine große Bandbreite an Code ausführen können, wobei dem Client eine dargestellte Seite geliefert wird und der Client dazu nur wenig oder gar kein clientseitiges Skript benötigt. 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften 29 HTML-Anwendungen Alternativ können Sie HTML-Anwendungen effektiv als Verwaltungswerkzeuge einsetzen. Dabei handelt es sich um eigenständige Anwendungen, die in Standard-HTML-, VBScript- und/oder JavaScript-Code geschrieben werden. Mit Ausnahme eines zusätzlichen <HTA>-Tags ist der Code einer solchen Anwendung identisch mit dem einer HTML-Webseite. Allerdings werden sie nicht mit Internet Explorer (iexplore.exe), sondern mithilfe von mshta.exe ausgeführt, die wesentlich weniger Sicherheitsbeschränkungen für den innerhalb der Anwendung ausgeführten Code aufweist. Da HTML-Anwendungen eigenständig sind, können Sie auch gestartet werden, wenn kein Netzwerkzugang zur Verfügung steht. Sie können von der lokalen Festplatte eines Systems, einem USB-Stick oder einem optischen Medium aus ausgeführt werden – Sie brauchen keinen Webserver als Host. Zum Kodieren von HML-Anwendungen sollten Sie mit einer Skriptsprache wie VBScript und mit HTML vertraut sein. Sie können HTML-Editoren wie Microsoft Expression oder FrontPage 2003 als HTML-Hilfe verwenden. Skripteditoren können die Erstellung von VBScript vereinfachen. Obwohl dieses Buch nicht als Anleitung zur Skripterstellung gedacht ist, bietet diese Lösung einen Einstieg in die Fähigkeiten, die erforderlich sind, um ein Skript in eine HTML-Anwendung zu verwandeln. Wenn Sie kein erfahrender Skripter sind, können Sie dennoch die von uns entwickelten HTML-Anwendung verwenden, die sich im Ordner Scripts auf dem Begleitmedium befinden. Sie müssen jedoch Änderungen daran vornehmen. Dazu müssen Sie sie im systemeigenen Editor oder einem anderen Texteditor öffnen. Verwenden Sie nicht Microsoft Office Word oder ein anderes Textverarbeitungsprogramm, das möglicherweise Änderungen an Zeichen und Formatierungen vornimmt. Word könnte beispielsweise die neutralen Anführungszeichen (") in typographische Anführungszeichen („ und “) umwandeln. In alle HTML-Anwendungen und Skripts sind Kommentare eingebettet, die darauf hinweisen, was Sie ändern müssen, damit die Anwendung in Ihrer Umgebung funktioniert. Selbst wenn Sie sich mit HTML oder VBScript nicht besonders gut auskennen, möchte ich Sie ermutigen, diese Lösung zu lesen, um zu erfahren, wie sich ein gutes Skript recht einfach in eine HTMLAnwendung integrieren lässt. Achten Sie darauf, wie Eingabesteuerelemente, z.B. Textfelder, eingesetzt werden können, um Parameter für das GUI-Werkzeug anstelle von Befehlszeilenargumenten für das Skript bereitzustellen. Erstellen einer HTML-Anwendung Eigentlich ist es recht einfach, ein gut geschriebenes Skript in eine HTML-Anwendung zu verwandeln. Die folgenden Erläuterungen sollen Ihnen helfen, die dafür erforderlichen Schritte zu meistern. Zuerst der funktionale Code Bevor Sie sich Gedanken darüber machen, wie Ihre HTML-Anwendung – die »Schnittstelle« für Ihr Verwaltungswerkzeug – aussieht, sollten Sie dafür sorgen, dass Ihr Skript funktioniert. Der gesamte Code sollte sich in Subroutinen und Funktionen befinden, die eigenständig sind, d.h. Eingaben von Parametern übernehmen, die an die Routine übergeben oder in Eingabesteuerelementen (z.B. Textfeldern) auf der HTA-Seite gefunden wurden, und Ergebnisse an den aufrufenden Code zurückgeben oder auf der Seite anzeigen. Wenn ein Skript dafür ausgelegt ist, Argumente zu übernehmen und Ergebnisse effizient anzuzeigen, sollte diese Aufgabe leicht zu bewältigen sein. 30 Lösungsgruppe 1: Rollenbasierte Verwaltung Unser Skript ADObject_MemberOf_Enum.vbs ist modular aufgebaut, wobei Subroutinen und Funktionen die eigentliche Arbeit erledigen. Die Funktionalität des Skripts ist daher beinahe für den Einsatz in für HTML-Anwendungen geeignetem Code bereit. Lediglich der Code am Anfang der Routine ist nicht Teil einer Subroutine oder Funktion. Dieser Code, außer dem Verwendungshinweis, ist im Folgenden wiedergegeben: Option Explicit Dim oMemberOfList Dim aMemberOfList Dim sMemberOf Dim sDomainDN Dim sArgument Dim sObjectDN ' KONFIGURATIONsBLOCK sDomainDN = "dc=contoso,dc=com" ' Argument abrufen sArgument = WScript.Arguments(0) ' In DN übersetzen sObjectDN = ADObject_DN_UCG(sArgument, sDomainDN) If sObjectDN = "" Then WScript.Echo "ERROR--NOT FOUND: " & sArgument WScript.Quit (501) End If ' Erstellen eines Dictionary-Objekts zum Speichern von Gruppennamen Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Vergleichsmodus auf Nichtbeachtung der Groß- und Kleinschreibung setzen oMemberOfList.CompareMode = vbTextCompare Call ADObject_MemberOf (sObjectDN) aMemberOfList = oMemberOfList.Keys aMemberOfList = Array_Sort(aMemberOfList) WScript.Echo "MEMBERSHIPS" For Each sMemberOf In aMemberOfList WScript.Echo sMemberOf Next Dieser Code steuert den Ablauf des Skripts. Wir brauchen es lediglich in eine Subroutine zu verwandeln, indem wir es in Sub- und End Sub-Anweisungen einschließen: OOption Explicit Dim oMemberOfList Dim sDomainDN ' KONFIGURATIONsBLOCK sDomainDN = "dc=contoso,dc=com" Sub MainRoutine() Dim aMemberOfList Dim sMemberOf 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften 31 Dim sArgument Dim sObjectDN ' Argument abrufen sArgument = WScript.Arguments(0) ' In DN übersetzen sObjectDN = ADObject_DN_UCG(sArgument, sDomainDN) If sObjectDN = "" Then WScript.Echo "ERROR--NOT FOUND: " & sArgument WScript.Quit (501) End If ' Dictionary-Objekt zum Speichern von Gruppennamen erstellen Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Vergleichsmodus auf Nichtbeachtung der Groß- und Kleinschreibung setzen oMemberOfList.CompareMode = vbTextCompare aMemberOfList = oMemberOfList.Keys aMemberOfList = Array_Sort(aMemberOfList) WScript.Echo "MEMBERSHIPS" For Each sMemberOf In aMemberOfList WScript.Echo sMemberOf Next End Sub Beachten Sie, dass wir die Variablen oMemberOfList und sDomainDN außerhalb der Subroutine deklarieren, weil wir für diesen besonderen Code Variablen mit globalem Gültigkeitsbereich benötigen, die daher von Funktionen und Subroutinen gemeinsam genutzt werden können. Erstellen einer Benutzeroberfläche: der HTML-Code Hoffentlich haben Sie einen HTML-Editor, z.B. FrontPage 2003 oder Microsoft Expression Web, der Ihnen beim Erstellen des HTML-Codes für Ihre HTA behilflich ist. Falls nicht, können Sie den Editor verwenden. Nachstehend finden Sie die wichtigen Codezeilen, die Sie benötigen: <html> <head> <title>My Administrative Tool</title> <hta:application> <script language="vbscript"> HIER STEHT DER SKRIPTCODE </script> </head> <body> HIER STEHT DER HTML-CODE FÜR DIE BENUTZEROBERFLÄCHE </body> </html> Das <title>-Tag erstellt den Text in der Titelleiste des Browsers. Der HTML-Code, den Sie zwischen dem öffnenden <body>- und dem schließenden </body>-Tag platzieren, erstellt die sichtbaren Elemente der Benutzeroberfläche. Der Funktionscode wird zwischen dem öffnenden <script>- und dem schließenden </script>-Tag eingefügt. Diese Elemente sind allen webbasierten Verwaltungswerkzeugen gemeinsam. Zum Erstellen einer HTML-Anwendung müssen Sie die Seite mit der Erweiterung .hta speichern. Darüber hinaus fügen Sie das Tag <hta:application> hinzu, das die Ausführung der Anwendung unter 32 Lösungsgruppe 1: Rollenbasierte Verwaltung mshta.exe erlaubt, sodass sie von den normalerweise für webbasierten Code geltenden Sicherheitsbeschränkungen ausgenommen ist. Sie können sicherlich noch viel mehr tun und der Seite Stile, Metadaten und andere Tags hinzufügen. Hierbei handelt es sich aber um die Grundstruktur einer HTML-Anwendung. Weitere Einzelheiten über HTML-Anwendungen erfahren Sie unter http://msdn2.microsoft.com/en-us/library/ ms536471.aspx. Dort finden Sie eine Übersicht über HTML-Anwendungen und Einzelheiten über das leistungsfähige <hta:application>-Tag. Erstellen einer Benutzeroberfläche: Eingaben Nur wenige Zeilen unseres Skripts, die die Eingabe verarbeiten, sind notwendig, um zu einem für HTML-Anwendungen geeigneten Code überzugehen: sArgument = WScript.Arguments(0) sObjectDN = ADObject_DN_UCG(sArgument, sDomainDN) Dieser Code weist das erste an das Skript übergebene Argument einer Variablen mit dem Namen sArgument zu und übersetzt dann dieses Argument mithilfe der Funktion ADObject_DN_UCG in einen definierten Namen. In einer HTML-Anwendung werden solche Parameter, Argumente oder Eingaben für den Code mithilfe von Eingabesteuerelementen, z.B. Textfeldern, Dropdownlisten, Listenfeldern und Kontrollkästchen bereitgestellt. Diese Steuerelemente sind Teil des Seitenrumpfs und befinden sich innerhalb der <body>-Tags. Die folgende Codezeile nach dem öffnenden <body>-Tag erstellt beispielsweise ein Textfeld, in das wir den definierten Namen des Benutzers oder Computers eingeben können, dessen Gruppenmitgliedschaften wir auflisten wollen: <input type="text" name="txtObjectDN" id="txtObjectDN" size="20"> Die Attribute des <input>-Tags erstellen ein 20 Zeichen breites Textfeld mit dem Namen und der ID von txtObjectDN. Die Attribute des Namens und der ID sollten auf denselben Wert gesetzt werden. Der eigentliche Name spielt keine Rolle, obwohl Sie bestimmte reservierte Wörter (wie body) nicht verwenden dürfen. Außerdem sollten Sie konventionsgemäß ein Präfix verwenden, um den Typ des Steuerelements anzugeben (z.B. txt für ein Textfeld). Der Name und die ID Ihrer Eingabesteuerelemente können dann von Ihrem Funktionscode zum Abruf der Daten verwendet werden, die der Benutzer in diese Steuerelemente eingegeben hat. Wenn wir die Zeile sArgument = WScript.Arguments(0) sObjectDN = ADObject_DN_UCG(sArgument, sDomainDN) unseres Skripts in sObjectDN = ADObject_DN_UCG(txtObjectDN.value, sDomainDN) ändern, haben wir den Eingabeabschnitt des Skripts für das Web geändert. Wird der Code ausgeführt, wird der in das Textfeld eingegebene Wert an die Routine ADObject_DN_UCG übergeben und in einen definierten Namen übersetzt. Recht einfach, nicht wahr? 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften 33 Verarbeiten von Ereignissen Was genau veranlasst die Ausführung des Codes? Im Gegensatz zu einem eigenständigen Skript, das den Code ausführt, wenn es geöffnet wird, sind HTML-Anwendungen und Webseiten ereignisgesteuert. Das bedeutet, dass der Code nur ausgeführt wird, wenn ein auslösendes Ereignis stattfindet. Es gibt zwei Möglichkeiten, ein Ereignis an den auszuführenden Code zu binden. Die erste Möglichkeit besteht darin, dem HTML-Tag ein Ereignishandler-Attribut hinzuzufügen: <input type="text" name="txtObjectDN" id="txtObjectDN" size="20" onchange="MainRoutine()"/> Textfelder und viele andere Eingabesteuerelemente lösen ein Ereignis aus, wenn der Wert des Steuerelements geändert wird. Das Ereignishandler-Attribut onchange veranlasst den Client, den angegebenen Code auszuführen, wenn dies geschieht. In ähnlicher Weise können wir der Seite eine Schaltfläche hinzufügen, die auf einen Klick hin die Subroutine ausführt: <input type="button" name="btnSubmit" id="btnSubmit" value="Go" onclick="MainRoutine()"/> Die zweite Möglichkeit besteht darin, die Subroutine zu benennen, um den Ereignishandler automatisch zu verarbeiten. Anstelle von MainRoutine() können wir unsere Subroutine txtObjectDN_ onChange() nennen. Bei dem Namen wird die Groß- und Kleinschreibung nicht beachtet, er muss aber die Form steuerelementID_Ereignis aufweisen. Wenn wir unsere Schaltfläche haben, aber das Attribut onclick weglassen, können wir unsere Subroutine btnSubmit_onClick() nennen. Durch die Benennung einer Subroutine in diesem Format ruft das Ereignis den Code automatisch auf. Sie können sogar Ereignisse auf Seitenebene zum Auslösen des Codes nutzen. Im <body>-Tag vieler unserer HTML-Anwendungen sehen Sie ein Ereignishandler-Attribut, wie das folgende Beispiel zeigt: <body onload="Initialize()"> Beim Laden der Seite wird die Routine ausgeführt, um die Initialisierungsaufgaben wie das Ändern der Fenstergröße oder die Initialisierung von Variablen durchzuführen. Erstellen einer Benutzeroberfläche: Ausgabe Wenn Sie eine HTML-Anwendung erstellen, verwenden Sie keine WScript.Echo-Anweisungen, um die Ausgabe bereitzustellen. Tatsächlich steht WScript.Echo nicht zur Verfügung, allerdings kann MsgBox verwendet werden: MsgBox wird zur Anzeige einer Fehlermeldung eingesetzt, wenn der in das Textfeld eingegebene Name ungültig ist. Bei den meisten Ausgaben ändern Sie jedoch normalerweise den HTML-Code der angezeigten Seite. Das folgende Skript zeigt beispielsweise die Meldung an, dass die in einem Bereich (div) der HTMLSeite geladene Seite als Nachrichtenfeld erkannt wurde. <html> <head> <script language="vbscript"> Sub DisplayMessage(sMessageHTML) MessageBox.innerHTML = sMessageHTML End Sub </script> 34 Lösungsgruppe 1: Rollenbasierte Verwaltung </head> <body onload="DisplayMessage('<h1>The page loaded</h1>')"> Results: <div id="MessageBox" name="MessageBox"> </div> </body> </html> Bei dem Ereignis, das in dem hier gezeigten Code die Subroutine DisplayMessage auslöste, handelt es sich um das Laden der Seite – das Ereignishandler-Attribut onload des body-Tags. Um ein anderes Ereignis zu demonstrieren, fügen Sie die folgende Codezeile oberhalb des schließenden </body>-Tags ein: <input type="button" name="btnTest" id="btnTest" onclick="DisplayMessage('<i>You just clicked the button.</i>')" value="Click Me"/> Diese Zeile erstellt eine Schaltfläche, deren Attribute name und id auf btnTest gesetzt werden. Der Ereignishandler onclick ruft die Subroutine DisplayMessage auf. Das Label der Schaltfläche (value) wird so gesetzt, dass der Text »Click me« angezeigt wird. Sie verwenden diese Art von Verfahren zum Erstellen von Ausgaben, sodass Sie sicherstellen sollten, dass Ihr Skript die effektive Anzeige auf der HTML-Seite ohne WScript.Echo-Anweisungen vorbereitet. Unser Skript zum Auflisten der Gruppenmitgliedschaften enthält den folgenden Code, der die Liste der Mitgliedschaften ausgibt: WScript.Echo "MEMBERSHIPS" For Each sMemberOf In aMemberOfList WScript.Echo sMemberOf Next Wir können den Code beispielsweise so ändern, dass die Liste der Mitgliedschaften erstellt und anschließend auf einer Webseite angezeigt wird: sMessageHTML = "MEMBERSHIPS" For Each sMemberOf In aMemberOfList sMessageHTML = sMessageHTML & "<br/>" & sMemberOf Next Call DisplayMessage(sMessageHTML) Die fertige HTML-Anwendung Nach der Kapselung unseres Funktionscodes in Subroutinen und Funktionen, der Erstellung einer Benutzeroberfläche mit Eingabesteuerelementen, der Verarbeitung von Ereignissen zum Auslösen des Codes und der Bereitstellung eines Mechanismus zur Anzeige der Ausgabe sind wir einer »perfekten« HTML-Anwendung recht nahe gekommen. Sie trägt den Namen ADObject_MemberOf_Enum.hta und ist im Ordner Scripts auf dem Begleitmedium zu finden. Sie werden dort ein zusätzliches Element bemerken. Wir haben dem Seitenelement <head> ein <style>-Tag hinzugefügt: 1.2 Erstellen eines GUI-Werkzeugs zum Auflisten der Gruppenmitgliedschaften 35 <style> body, tr, td, table, p, input {font-family: arial; font-size: 9pt;} </style> Damit wird die Schriftart der HTML-Anwendung auf Arial in 9 Punkt gesetzt. Nachstehend finden Sie den endgültigen HTA-Code, wobei ich die fünf Funktionen, die Teil unserer Funktionsbibliothek sind, ausgelassen habe, sodass sich die Hauptelemente und -funktionen leichter beurteilen lassen: ADObject_MemberOf_Enum.hta <html> <head> <title>Group Membership Report</title> <hta:application> <script language="vbscript"> Option Explicit Dim oMemberOfList Dim sDomainDN ' KONFIGURATIONSBLOCK sDomainDN = "dc=contoso,dc=com" Sub MainRoutine() Dim aMemberOfList Dim sMemberOf Dim sResults Dim sObjectDN sObjectDN = ADObject_DN_UCG(txtObjectDN.value, sDomainDN) If sObjectDN = "" Then MsgBox "Could not find " & txtObjectDN.value End If ' Dictionary-Objekt zum Speichern der Gruppennamen erstellen Set oMemberOfList = CreateObject("Scripting.Dictionary") ' Vergleichsmodus auf Nichtbeachtung der Groß- und Kleinschreibung setzen oMemberOfList.CompareMode = vbTextCompare Call ADObject_MemberOf (sObjectDN) aMemberOfList = oMemberOfList.Keys aMemberOfList = Array_Sort(aMemberOfList) sResults = "MEMBERSHIPS" For Each sMemberOf In aMemberOfList sResults = sResults & "<br/>" & sMemberOf Next 36 Lösungsgruppe 1: Rollenbasierte Verwaltung divResults.innerHTML = sResults End Sub ' ============================= ' FUNKTIONEN AUS DER BIBLIOTHEK ' ============================== Sub ADObject_MemberOf(ByVal sObjectDN) Sub ADObject_MemberOf_Enum(ByVal oObject) Function Array_Sort(ByVal aArray) Function ADObject_DN_UCG(ByVal sObject, sSearchDN) Function ADObject_Find_UCG(sObjectName, sSearchDN) </script> <style> body, tr, td, table, p, input {font-family: arial; font-size: 9pt;} </style> </head> <body> <input type="text" name="txtObjectDN" id="txtObjectDN" size="20" onchange="MainRoutine()"/> <h3>Group memberships</h3> <div id="divResults" name="divResults"> </div> </body> </html> Doppelklicken Sie einfach auf die HTML-Anwendung, um sie auszuführen! Das Textfeld verwendet ein OnChange-Ereignis zum Auslösen von MainRoutine, sodass Sie den Namen eines Benutzers, eines Computers oder einer Gruppe eingeben und dann (Tab) drücken können, um die Gruppenmitgliedschaften des Objekts zu sehen. Weitere Informationen Um mehr über HTML-Anwendungen zu erfahren, beginnen Sie mit der MSDN-Übersicht unter http:// msdn2.microsoft.com/en-us/library/ms536471.aspx. Fahren Sie dann mit der HTA-Site im TechNet Scripting Center unter http://www.microsoft.com/technet/scriptcenter/hubs/htas.mspx fort. Zusammenfassung Erstellen Sie ein benutzerdefiniertes, GUI-Verwaltungswerkzeug zum Auflisten der Gruppenmitgliedschaften, indem Sie den in Lösung 1.1 entwickelten VBSchript-Funktionscode in eine HTML-Anwendung verwandeln. Zum Erstellen einer solchen Anwendung müssen Sie sicherstellen, dass der gesamte Code in Subroutinen und Funktionen gekapselt ist. Erstellen sie eine HTML-basierte Benutzeroberfläche und verarbeiten Sie Ereignisse zur Ausführung des Codes. Der Code kann die Ergebnisse durch das Einfügen von HTML in ein <div>-Tag anzeigen. 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 37 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften Die Lösung im Überblick Typ Werkzeug (HTML-Anwendung) Funktionen und Werkzeuge HTML-Anwendung, MMC-Aufgabenblöcke, Active DirectoryAnzeigebezeichner Zusammenfassung Erweitern Sie das Snap-In Active Directory-Benutzer und -Computer, sodass Sie mit der rechten Maustaste auf einen Benutzer, einen Computer oder eine Gruppe klicken und die entsprechenden Gruppenmitgliedschaften mit den verschachtelten Gruppen anzeigen lassen können. Lernen Sie, wie Sie benutzerdefinierte Werkzeuge in MMC-Snap-Ins integrieren. Vorteile Beantwortung der Frage: »Zu welchen Gruppen gehört x?« Die Gruppenmitgliedschaften sind besser einsehbar, als es bei der Verwendung der standardmäßigen GUI-Werkzeuge möglich ist. Vorschau Es gibt zwei Möglichkeiten, unsere benutzerdefinierte HTMLAnwendung in das Snap-In Active Directory-Benutzer und -Computer zu integrieren. Wenn ein Benutzer ausgewählt wird, erscheint eine Aufgabe am linken Rand des MMC-Detailfensters. Alternativ wird ein Befehl im Kontextmenü angezeigt. Normalerweise verwenden Sie nur eine dieser beiden Methoden. Abbildung 1.8 illustriert beide. Abbildung 1.8 Integrieren eines benutzerdefinierten Werkzeugs in Active Directory-Benutzer und -Computer 38 Lösungsgruppe 1: Rollenbasierte Verwaltung Einführung In Lösung 1.1 und 1.2 haben wir ein Skript zum Auflisten der Gruppenmitgliedschaften entwickelt und in eine eigenständige HTML-Anwendung verwandelt, um ein GUI-Front-End bereitzustellen. Allerdings müssen wir die HTML-Anwendung immer noch suchen, starten und den Namen des Benutzers oder Computers manuell eingeben. Wäre es nicht schön, wenn wir einen Benutzer einfach in einem Verwaltungswerkzeug wie Active Directory-Benutzer und -Computer auswählen und mit einem oder zwei Klicks seine Gruppenmitgliedschaften anzeigen lassen könnten? Das erreichen wir mit dieser Lösung. Noch wichtiger sind aber wohl die Kenntnisse, die Sie dabei erwerben und die es ermöglichen, unser maßgeschneidertes Werkzeug in ein standardmäßiges MMC-Snap-In zu integrieren. Mit diesen Fähigkeiten sind Sie in der Lage, beliebige Skripts, HTML-Anwendungen, ausführbare Dateien, Hilfsprogramme von Drittanbietern und andere Werkzeuge in Ihre MMC einzufügen und damit ein besonders leistungsfähiges Paket administrativer Werkzeuge zu entwickeln. Argumente in HTML-Anwendungen Wenn wir unsere benutzerdefinierte HTML-Anwendung starten wollen und erwarten, dass sie wie von Zauberhand eine Aufstellung der Gruppenmitgliedschaften des ausgewählten Benutzers erstellt, müssen wir im Hintergrund den Benutzernamen in Form eines Arguments an sie übergeben. Die HTMLAnwendung muss in der Lage sein, dieses Argument zu übernehmen und zu verarbeiten Leider bieten HTML-Anwendungen keinen besonders eleganten Weg dafür an. Es gibt zum Beispiel keine Arguments()-Auflistung wie in VBScript. Wir müssen eine Notlösung finden. Nehmen wir an, wir müssten versuchen, unsere HTML-Anwendung von der Befehlsshell aus zu starten. Dazu würden wir die folgende Syntax verwenden: mshta.exe "\\pfad-zur-HTA\HTA-name.hta" Wenn wir ein Argument, z.B. einen Benutzernamen, übergeben wollten, würden wir es wie folgt an den Befehl anfügen: mshta.exe "\\pfad-zur-HTA\HTA-name.hta" "jfine" Wie bereits erwähnt, kann die HTML-Anwendung das Argument "jfine" nicht gleich erkennen. Allerdings kennt sie die Befehlszeile, mit der sie gestartet wurde. Die Befehlszeile ist eine Eigenschaft der Anwendung selbst, wobei die Anwendung durch das Attribut id des Elements <hta:application> identifiziert wird. Betrachten Sie beispielsweise eine Anwendung, die das folgende <hta:application>-Element aufweist: <hta:application id="oMyHTA"> In diesem Fall wird die Anwendung durch ein Objekt, oMyHTA, repräsentiert, wobei der Zugriff auf die Befehlszeile durch das Abrufen der Eigenschaft oMyHTA.commandline erfolgen kann, wie das folgende Beispiel zeigt: sHTACommandLine = oMyHTA.commandline 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 39 Wir brauchen lediglich die Befehlszeile auszuwerten. Die HTML-Anwendung wird namentlich aufgerufen (z.B. [mshta.exe] "Pfad\MyHTA.hta"), sodass wir nach der Erweiterung .hta suchen und davon ausgehen können, dass es sich bei allen darauf folgenden Angaben um Argumente handelt. Dann analysieren wir die restliche Zeichenfolge und verwenden dabei das Leerzeichen als Trennzeichen zwischen den Argumenten und Anführungszeichen, die die Argumente einschließlich Leerzeichen umschließen – genau wie bei einer normalen Befehlszeile. Wenn Sie den Code HTA_Arguments.snippet auf dem Begleitmedium untersuchen, werden Sie zwei Funktionen bemerken. Die erste Funktion, HTA_Arguments, wird mit dem Objektverweis der HTMLAnwendung aufgerufen. Sie sucht nach der Befehlszeile und anschließend nach der Erweiterung .hta, um herauszufinden, ob Argumente vorhanden sind, und analysiert anschließend die restliche Befehlszeile mithilfe der zweiten Funktion, Text_Delimited_Parse(). Diese zweite Funktion ist sehr nützlich für die Analyse eines Textes mit Trennzeichen, z.B. von Zeilen aus einer kommagetrennten Textdatei (.csv) oder in diesem Fall von durch Leerzeichen getrennten Argumenten, wobei Argumente, die ein Leerzeichen enthalten, von Anführungszeichen eingeschlossen sind. Wenn diese beiden Funktionen ihre Aufgabe ausgeführt haben, enthält das von HTA_Arguments() zurückgegebene Array alle Argumente, die mit der Befehlszeile an die HTML-Anwendung übergeben wurden. Nun brauchen wir lediglich diese beiden Funktionen beim Starten der HTML-Anwendung aufzurufen. Der folgende Code innerhalb des <script>-Tags führt diese Aufgabe aus: Dim aArguments ' Wir deklarieren dies außerhalb unserer Subroutine, ' sodass es einen globalen Gültigkeitsbereich aufweist und dem anderem ' Code innerhalb der HTA zur Verfügung steht Sub Window_Onload ' Eine Routine mit diesem Namen wird automatisch ' beim Starten der HTA ausgeführt aArguments = HTA_Arguments(oMyHTA) ' oMyHTA in dem oben genannten Funktionsaufruf ändern, damit es mit dem Wert ' des Attributs "id" für das Element <hta:application> übereinstimmt End Sub Das Array aArguments enthält alle Argumente. Da es mit einem globalen Gültigkeitsbereich deklariert wurde, können wir von allen anderen Abschnitten des Codes darauf zugreifen. Hinweis Diese Lösung zur Übernahme von Argumenten in einer HTML-Anwendung ist kaum dokumentiert. Sie werden sie beim Schreiben von HTML-Anwendungen als sehr hilfreich empfinden. Für unsere Anwendung ADObject_MemberOf_Enum.hta müssen wir dem <hta:application>-Tag ein id-Attribut hinzufügen: <hta:application id="oMyHTA"> Wir können den folgenden Code zwischen den <script>-Tags einfügen: Dim aArguments Sub Window_Onload aArguments = HTA_Arguments(oMyHTA) If uBound(aArguments) >= 0 Then ' Ein Argument wurde an die HTA übergeben ' Textfeld vorher füllen und dann die Hauptroutine ausführen 40 Lösungsgruppe 1: Rollenbasierte Verwaltung txtObjectDN.value = aArguments(0) Call MainRoutine() End If End Sub ' HTA_Arguments.snippet einfügen, das die beiden folgenden Funktionen enthält: Function HTA_Arguments() Function Text_Delimited_Parse() Dieser Code startet beim Öffnen der HTML-Anwendung, überprüft die Befehlszeile, um herauszufinden, ob Argumente übergeben wurden, und nimmt gegebenenfalls an, dass es sich bei dem ersten Argument (Arrays beginnen beim Zählen der Elemente mit null) um den Namen des Benutzers oder Computers handelt, dessen Gruppenmitgliedschaft wir auswerten wollen. Er füllt das Textfeld auf der Seite wieder mit diesem Namen und führt den Code aus, der die Gruppenmitgliedschaften anzeigt. Als Ergebnis erhalten wir unsere endgültige HTML-Anwendung Group Membership Report mit dem Namen MemberOf_Report.hta. Ich habe eine weitere Subroutine, die das Anwendungsfenster zentriert und seine Größe festlegt, sowie ein Erläuterungslabel und eine Schaltfläche in den HTML-Abschnitt der Anwendung eingeschmuggelt. Sie sehen den zusätzlichen Code, wenn Sie die HTML-Anwendung im systemeigenen oder einem anderen HTML-Editor öffnen Verwenden von MemberOf_Report.hta Diese für die Befehlszeile bereite Version der HTML-Anwendung trägt den Namen MemberOf_Report.hta und befindet sich im Ordner Scripts auf dem Begleitmedium. Starten Sie die Anwendung mit der folgenden Befehlssyntax: Pfad\MemberOf_Report.hta "Name des Benutzers, des Computers oder der Gruppe" Bei dem Namen des Benutzers, des Computers oder der Gruppe handelt es sich um einen definierten Namen, Active Directory-Pfad (AdsPath) oder Prä-Windows 2000-Anmeldenamen (sAMAccountName) des Objekts. Integrieren einer benutzerdefinierten HTML-Anwendung in eine MMC mithilfe von Aufgaben Nun folgt der schöne Teil! Sie haben lange gewartet oder sind unzählige Skripts durchgegangen, um hierher zu gelangen. Das Warten hat sich gelohnt! Am Ende werden Sie in der Lage sein, einen Benutzer, einen Computer oder eine Gruppe auszuwählen und mit einem Klick einen Mitgliedschaftsbericht für dieses Objekt zu erstellen. Wir haben eine HTML-Anwendung, die wir mit einer Befehlszeile starten können. Das ist Schritt 1 – ein Werkzeug zu bekommen, das Argumente übernimmt. Speichern der HTML-Anwendung an einem zugänglichen Ort Die HTML-Anwendung (MemberOf_Report im Ordner Scripts auf dem Begleitmedium) muss für alle Administratoren zugänglich sein, die sie nutzen. Sie können die Anwendung in einem freigegebenen Ordner speichern oder an die lokalen Festplatten administrativer Arbeitsstationen verteilen. Wenn Sie die HTML-Anwendung (oder andere Skripts und Werkzeuge) in einem freigegebenen Ordner speichern, stoßen Sie wahrscheinlich auf Sicherheitsbeschränkungen, die entweder das Ausführen des 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 41 Codes verhindern oder Eingabeaufforderungen anzeigen. Ich empfehle Ihnen, lokale Kopien der Werkzeuge zu verteilen, wie es auch bei den standardmäßigen Verwaltungswerkzeugen von Microsoft der Fall ist. Wenn Sie die Werkzeuge allerdings an einem freigegebenen Speicherort ablegen wollen, erfahren Sie in den folgenden Absätzen, wie Sie dabei vorgehen müssen. Erstens müssen Sie sicher sein, dass sich der Server, auf dem Sie die HTML-Anwendung gespeichert haben, in der Sicherheitsozone Lokales Intranet Ihres Computers befindet. Klicken Sie in Internet Explorer auf Extras und anschließend auf Internetoptionen, wechseln Sie zur Registerkarte Sicherheit, wählen Sie Lokales Intranet und klicken Sie dann auf Sites. Wählen Sie Erweitert (sofern die Schaltfläche sichtbar ist, was von Ihrem Betriebssystem abhängt) und geben Sie dann die Adresse <Servername>.<Firma>.com ein. (Stellen sie sicher, dass Sie den vollständig qualifizierten Domänennamen des Servers verwenden.) Klicken Sie auf Hinzufügen, sodass die eingegebene Adresse in das Format file://<servername>.<firmenname>.com konvertiert wird. Klicken Sie auf Schließen und OK. Wenn Sie nun die HTML-Anwendung ausführen, erscheint eine ADO-Sicherheitswarnung. Um dies zu vermeiden, sollten Sie die Einstellungen der Sicherheitszone Lokales Intranet anpassen und die Einstellung Auf Datenquellen über Domänengrenzen hinweg zugreifen aktivieren. Alles, was Sie zur Lockerung der Sicherheit unternehmen, zeigt Auswirkungen, sodass Sie sich etwas Zeit nehmen und sich die Internetressourcen ansehen sollten, um herauszufinden, ob dies die von Ihnen beabsichtigte Vorgehensweise ist. Andernfalls müssen Sie damit leben, sich durch die ADO-Sicherheitswarnung zu klicken. Eine von mir empfohlene Alternative besteht darin, sicherzustellen, dass sich die HTML-Anwendung in einem lokalen Pfad auf den Systemen aller Administratoren befindet (z.B. C:\Programme\<Firma>Tools\MemberOf_Report.hta). Erstellen Sie einen Ordner, z.B. <Firma>Tools, im Ordner Programme und kopieren Sie Skripts, HTAs und andere Werkzeuge an diesen Speicherort. Dies ist die beste Möglichkeit, die größten Sicherheitseinschränkungen für HTML-Anwendungen und Skripts zu vermeiden. Empfohlene Vorgehensweisen Empfohlene Vorgehensweisen Verteilen Sie benutzerdefinierte Skripts und Verwaltungswerkzeuge an die Arbeitsstationen der Administratoren, wie Sie es bei anderen lokalen Anwendungen auch tun. Erstellen eines Aufgabenblocks und einer Shell-Aufgabe zum Starten der HTML-Anwendung Nun wollen wir unser Werkzeug in die Standardverwaltungswerkzeuge von Windows integrieren. Da sich dieses Werkzeug auf Benutzer, Computer und Gruppen bezieht, ist es sinnvoll, es in das Snap-In Active Directory-Benutzer und -Computer einzufügen. Diese Schritte funktionieren aber auch bei nahezu allen anderen Snap-Ins. Sie müssen das Snap-In allerdings in einer benutzerdefinierten Konsole verwenden – bei der MMC-Standardkonsole von Active Directory-Benutzer und -Computer funktioniert es nicht. Die zum Erstellen eines Aufgabenblocks und einer Aufgabe erforderlichen Schritte sind in den folgenden Absätzen zusammengefasst. Wenn Sie eine ausführlichere Beschreibung benötigen, nutzen Sie die HilfeFunktion von mmc.exe. Zunächst müssen Sie mit dem Snap-In Active Directory-Benutzer und Computer eine benutzerdefinierte Konsole erstellen: 1. Klicken Sie auf Start und wählen Sie den Befehl Ausführen (Windows XP) oder klicken Sie in das Suchfeld (Windows Vista/Windows Server 2008). Geben Sie mmc.exe ein und drücken Sie die Eingabetaste. 2. Eine leere MMC-Konsole erscheint. Wählen Sie Datei und anschließend Snap-In hinzufügen/entfernen und fügen Sie das Snap-In Active Directory-Benutzer und -Computer hinzu. 42 Lösungsgruppe 1: Rollenbasierte Verwaltung 3. Speichern Sie die Konsole, indem Sie Datei und anschließend Speichern auswählen. Sie sollten die Konsole auf der Netzwerkfreigabe, auf der sich die HTML-Anwendung befindet, oder in einem anderen freigegebenen Ordner ablegen, der für Administratoren leicht zugänglich ist. Nun müssen Sie einen so genannten Aufgabenblock (früher Taskpad genannt) erstellen: 1. Erweitern Sie das Detailfenster der Konsole bis zu einer Organisationseinheit, die Benutzer enthält. 2. Markieren Sie die Organisationseinheit, klicken Sie im Feld Aktionen auf Weitere Aktionen und wählen Sie Neue Aufgabenblockansicht. Bei älteren Versionen der MMC klicken Sie mit der rechten Maustaste auf die Organisationseinheit und wählen Neue Taskpadansicht. 3. Der Assistent für neue Aufgabenblockansicht (bzw. Assistent für neue Taskpadansicht) erscheint. Klicken Sie auf Weiter. 4. Übernehmen Sie auf der Seite Aufgabenblockstil (Taskpadanzeige) alle Standardwerte und klicken Sie auf Weiter. 5. Wählen Sie auf der Seite Taskpadziel den Eintrag Ausgewähltes Strukturelement aus und klicken Sie anschließend auf Weiter. 6. Übernehmen oder ändern Sie auf der Seite Name und Beschreibung den Standardnamen und die Beschreibung und klicken Sie auf Weiter. 7. Vergewissern Sie sich auf der Seite Fertigstellen des Assistenten, dass das Kontrollkästchen aktiviert ist, und klicken Sie auf Fertig stellen. Nun haben Sie die Erstellung des Aufgabenblocks abgeschlossen, woraufhin ein zweiter Assistent startet, der Ihnen dabei hilft, eine Aufgabe dafür zu erstellen: 1. Der Assistent für neue Aufgabe (bzw. für neuen Task) erscheint. Klicken Sie auf Weiter. 2. Wählen Sie auf der Seite Befehlstyp die Option Shellbefehl aus und klicken Sie auf Weiter. 3. Geben Sie mshta.exe in das Befehlsfeld ein. 4. Geben Sie in das Feld Parameter "Pfad zur HTML-Anwendung\MemberOf_Report.hta" gefolgt von einem Leerzeichen ein. Wenn Sie das Werkzeug in einem freigegebenen Ordner speichern, verwenden Sie den vollständig qualifizierten Domänennamen des Servers, z.B. \\server01. contoso.com\admintools\memberof_report.hta. 5. Positionieren Sie den Cursor hinter dem Leerzeichen und klicken Sie auf den Pfeil, bei dem es sich um eine Schaltfläche zum Durchsuchen handelt. 6. Wählen Sie Prä-Windows 2000-Anmeldename. Wählen Sie Name, um diese Aufgabe für Computer auszuführen, und Prä-Windows 2000-Anmeldename für Benutzer und Gruppen. 7. Das Parameterfeld sollte wie folgt aussehen: "Pfad zur HTML-Anwendung\MemberOf_Report.hta" $COL<9> Bei einem Computer erscheint es wie folgt: "Pfad zur HTML-Anwendung\MemberOf_Report.hta" $COL<0> 8. Geben Sie "\\Pfad zur HTML-Anwendung" in das Feld Ausführen in ein. Wenn Sie das Werkzeug in einem freigegebenen Ordner speichern, verwenden Sie den vollständig qualifizierten Domänennamen des Servers, z.B. "\\server01.contoso.com/adminstools". 9. Klicken Sie auf Weiter. 10. Geben Sie Group Membership Report in das Feld Aufgabenname (Taskname) auf der Seite Name und Beschreibung ein. Optional können Sie eine Beschreibung wie »Anzeige einer sortierten Liste 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 43 aller Gruppenmitgliedschaften einschließlich der verschachtelten sowie der primären Gruppen« eingeben. 11. Klicken Sie auf Weiter. 12. Wählen Sie auf der Seite Aufgabensymbol (Tasksymbol) ein Symbol aus. Es sind mehrere Symbole vorhanden, die auf Gruppen hindeuten. Wenn Sie auf Benutzerdefiniertes Symbol klicken, können Sie nach einem Symbol suchen, das zu einer ausführbaren Datei gehört, oder ein Symbol aus den Symbolbibliotheken auswählen, z.B. C:\Windows\System32\Shell32.dll oder in Windows Vista und Windows Server 2003 C:\Windows\System32\Imageres.dll. 13. Klicken Sie auf Weiter. 14. Klicken Sie auf Fertig stellen. Nun folgt noch ein sehr wichtiger Schritt. Dieser wird leicht vergessen, was sich später nur sehr sehr schwer beheben lässt, sodass ich Ihnen rate, stets an diesen Schritt zu denken! Alle als Parameter für die Aufgabe referenzierten Spalten müssen sichtbar sein. Andernfalls erscheint die Aufgabe nicht bei der Objektauswahl. 1. Klicken Sie auf Ansicht und dann auf Spalten hinzufügen/entfernen. 2. Wählen Sie Prä-Windows 2000-Anmeldename und klicken Sie auf Hinzufügen. 3. Klicken Sie auf OK, um das Dialogfeld Spalten hinzufügen/entfernen zu schließen. 4. Speichern Sie die Konsole. Verwenden der HTML-Anwendung Sie haben es geschafft! Wählen Sie nun einen Benutzer aus der Organisationseinheit aus und klicken Sie auf den Link Group Membership Report in der Aufgabenliste am linken Rand des Detailfensters. Voilà! Falls Sie das großartig finden, sollten Sie erst einmal den nächsten Abschnitt abwarten, in dem wir den Befehl in das Kontextmenü einfügen, das erscheint, wenn Sie mit der rechten Maustaste auf einen Benutzer klicken. War das nicht toll? Das bringt Sie zum Nachdenken, nicht wahr? Wir werden in diesem Buch noch viele weitere nützliche Lösungen in Ihre Windows-Standardwerkzeuge integrieren. Da Sie sowohl die Konsole als auch die HTML-Anwendung in einem freigegebenen Ordner gespeichert haben und die Aufgabe unter Verwendung von Befehlen mit Parametern, einschließlich eines Netzwerkpfads zur HTML-Anwendung, erstellt haben, kann nun jeder Administrator die benutzerdefinierte MMC starten und die maßgeschneiderte HTML-Anwendung verwenden. Wiederholen Sie die für die Organisationseinheit gezeigten Schritte mit Gruppen und dann noch einmal für eine Organisationseinheit mit Computern, aber verwenden Sie diesmal als Parameter die Spalte Name anstelle von Prä-Windows 2000-Anmeldename. Die Spalte Name ist in der Konsole bereits sichtbar, sodass Sie sie nicht hinzuzufügen brauchen. Unglaublich, nicht wahr? Zusammenfassend sei gesagt, dass wir einen so genannten Aufgabenblock in unserer benutzerdefinierten MMC-Konsole mit dem Snap-In Active Directory-Benutzer und -Computer erstellt haben. Dabei handelt es sich um eine Shellaufgabe, die einen Befehl ausführt, indem sie ihm einen Parameter übergibt, der eine Spalte des ausgewählten Objekts enthält. Unsere HTML-Anwendung interpretiert ihre Befehlszeile und identifiziert die Argumente. 44 Lösungsgruppe 1: Rollenbasierte Verwaltung Entfernen einer Aufgabe oder eines Aufgabenblocks Zum Entfernen einer Aufgabe markieren Sie die Organisationseinheit mit der Aufgabenblockansicht und wählen im Feld Aktionen unter Weitere Aktionen den Befehl Aufgabenblockansicht bearbeiten. (Alternativ rechtsklicken Sie auf die Organisationseinheit und wählen Taskpadansicht bearbeiten.) Klicken Sie dann auf die Registerkarte Aufgaben (Tasks), wählen Sie die Aufgabe aus und klicken Sie auf Entfernen. Um die gesamte Aufgabenblockansicht zu entfernen und die Organisationseinheit mit der Standardansicht wiederherzustellen, wählen Sie im Feld Aktionen bzw. im Kontextmenü Aufgabenblockansicht löschen bzw. Taskpadansicht löschen. Weitere Informationen Wenn Sie Fragen oder Schwierigkeiten bei der Erstellung von Aufgabenblöcken und Aufgaben haben, schauen Sie im Hilfe-Menü der MMC nach. In weiteren Lösungen werden wir Aufgabenblöcke und Aufgaben ausführlicher behandeln und uns viele weitere Beispiele für maßgeschneiderte Lösungen ansehen, die sich in unsere Standardverwaltungswerkzeuge integrieren lassen. Wir werden auch ein Problem lösen, die Sie möglicherweise als lästig empfinden, wenn Sie dieser Lösung folgen: Die Spalte Prä-Windows 2000-Anmeldename, die Sie der Benutzer-Organisationseinheit hinzugefügt haben, ist in allen Organisationseinheiten sichtbar, auch in denen für Computer und sogar für Domänencontroller. Diese und viele weitere Punkte werden wir behandeln. Integrieren einer benutzerdefinierten HTML-Anwendung in eine MMC mithilfe von Anzeigebezeichnern Dieser Ansatz bringt uns eine Stufe nach oben und bietet uns die Möglichkeit, einen Benutzer, einen Computer oder eine Gruppe mit der rechten Maustaste anzuklicken und die Anzeige der Mitgliedschaften zu generieren. Die Anwendung MemberOf_Report.hta muss weiterhin über einen freigegebenen oder lokalen Ordner zugänglich sein, Sie brauchen aber keine benutzerdefinierte MMC. Sie erreichen den Kontextmenübefehl über alle Konsolen (auch die integrierten Konsolen), die das Snap-In Active Directory-Benutzer und -Computer enthalten. Wichtig Bevor Sie diesen Ansatz ausprobieren, müssen Sie wissen, dass sich Anzeigebezeichner auf die vollständige Gesamtstruktur auswirken. Möglicherweise verfügen Sie nicht über die richtigen Delegierungen dafür und sollten in diesem Fall dafür sorgen, dass Sie die Änderungen in einer Testumgebung testen, bevor Sie die Anzeigebezeichner in Ihrer Produktionsumgebung ändern. Die hier vorgenommenen Änderungen sind nicht weltbewegend, Sie sollten Sie aber wie alle Änderungen testen und verstehen, bevor Sie sie in der Produktion bereitstellen. Der Konfigurationsbereich von Active Directory enthält einen Container mit dem Namen DisplaySpecifiers (z.B. CN=DisplaySpecifiers,CN=Configuration,DC=contoso,DC=com), den Sie mithilfe des ADSI-Editors betrachten können. Der ADSI-Editor steht standardmäßig unter Windows Server 2008 zur Verfügung. Unter Windows Server 2003 installieren Sie die Supporttools mit einem Doppelklick auf die Datei Suptools.msi im Ordner Support\Tools auf der Windows Server 2003-CD. Dann können Sie den ADSI-Editor ausführen, indem Sie auf Start und anschließend auf Ausführen klicken und ADSIEdit.msc eingeben. Mit dem ADSI-Editor können Sie den Konfigurationscontainer öffnen und sich dessen Inhalt ansehen, wie Sie Abbildung 1.9 entnehmen können. Möglicherweise müssen Sie mit der rechten Maustaste auf den Stammknoten des Snap-Ins ADSI-Editor klicken, Verbinden mit auswählen und anschließend Konfiguration im Feld Bekannten Namenskontext auswählen einstellen. 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 45 Bei den Containern, die sich direkt unter DisplaySpecifiers befinden, handelt es sich um Sprachcontainer. 407 entspricht Deutsch. Welchen Container Sie für eine besetimmte Sprache brauchen, können Sie unter http://msdn2.microsoft.com/en-us/library/ms776294.aspx nachschlagen. Im Sprachcontainer befinden sich Objekte, die für die einzelnen Objektklassen stehen, z.B. user-Display. Wenn Sie die Eigenschaften des Objekts user-Display öffnen, sehen Sie das Attribut mit dem Namen AdminContextMenu, das für die Anzeige benutzerdefinierter Befehle sorgt, wenn Sie in einem Verwaltungswerkzeug (z.B. einem Snap-In) mit der rechten Maustaste auf einen Benutzer klicken. Andere Befehle in dem Kontextmenü (z.B. Kennwort zurücksetzen) sind im Snap-In selbst fest einprogrammiert. Dieses Attribut ist mehrwertig. Jeder von Ihnen hinzugefügte Wert übernimmt drei durch Komma getrennte Elemente: die Indexnummer (die Reihenfolge, in der der Befehl erscheint), den Namen des Menübefehls, der im Kontextmenü angezeigt wird, und den Befehl, der bei der Auswahl des Menübefehls ausgeführt werden soll. Wenn wir beispielsweise Folgendes hinzufügen, haben wir das Kontextmenü für Benutzer angepasst: 2,Group Membership Report,"Pfad zur HTA\MemberOf_Report.hta" Hinweis Wenn Sie den Ausführungen gefolgt sind, haben Sie möglicherweise beim Hinzufügen des Befehls die Fehlermeldung erhalten, dass der Zugriff verweigert wird. Ist dies der Fall, lesen Sie weiter. Wir werden dieses Problem gleich aufgreifen. Abbildung 1.9 Der ADSI-Editor und die Anzeigebezeichner für Benutzerobjekte 46 Lösungsgruppe 1: Rollenbasierte Verwaltung Falls Active Directory-Benutzer und -Computer geöffnet ist, müssen Sie es schließen. Wenn Sie das Snap-In das nächste Mal öffnen, steht der neue Kontextmenübefehl zur Verfügung. Haben Sie eine Sicherheitswarnung erhalten, sollten Sie sich den vorigen Abschnitt mit den Erläuterungen über das Hinzufügen des Servers zur Ihrer Sicherheitszone Lokales Intranet oder das Speichern des Werkzeugs auf ihrem lokalen Datenträger noch einmal ansehen. Wichtig Bei dem Argument, das mithilfe eines benutzerdefinierten Kontextmenüeintrags an den Befehl übergeben wird, handelt es sich um den definierten Namen des ausgewählten Objekts. Es darf nur ein Objekt ausgewählt werden – wenn Sie mehrere Objekte auswählen, wird nur eines übergeben. Falls Sie mehr als ein Objekt benötigen, müssen Sie Visual Studio öffnen und Ihr eigenes MMC-Snap-In erstellen, was natürlich den Rahmen dieses Buchs übersteigt. Verwenden von AdminContextMenu.hta Um all diese Schritte zu vereinfachen, sodass Sie sich nicht näher mit dem ADSI-Editor befassen und dabei Fehler riskieren müssen, habe ich eine HTML-Anwendung beigefügt (Überraschung!), die diese schwierige Aufgabe für Sie übernimmt. Auf dem Begleitmedium finden Sie die Anwendung AdminContextMenu.hta im Ordner Scripts. Öffnen Sie die HTML-Anwendung und tragen Sie Folgendes ein: Language Wählen Sie die gewünschte Sprache aus der Dropdownliste aus. Die HTML-Anwendung ist so kodiert, dass sie eine begrenzte Anzahl von Sprachen unterstützt. Sie können sie erweitern, um mehr Sprachen hinzuzufügen. Object Class Wählen Sie eine Objektklasse aus der Dropdownliste aus. Die HTML-Anwendung ist so kodiert, dass sie eine begrenzte Anzahl von Objektklassen unterstützt. Sie können sie erweitern, um mehr Klassen hinzuzufügen. Menu Command Der Text, der im Kontextmenü erscheint, wenn Sie in einem Verwaltungswerkzeug mit der rechten Maustaste auf ein Objekt der ausgewählten Objektklasse klicken. Command Line Der Befehl, der bei der Auswahl des Menübefehls aufgerufen werden muss. Klicken Sie dann auf Add To Administrator Context Menu. Die Änderung wird vorgenommen. Den Fall, dass Ihnen der Zugriff verweigert wird, behandle ich in den nächsten Absätzen. Wiederum müssen Sie alle Instanzen eines Verwaltungswerkzeugs schließen und erneut öffnen, bevor Ihre Änderung sichtbar wird. Entfernen eines benutzerdefinierten Befehls Zum Entfernen eines Befehls müssen Sie den ADSI-Editor verwenden. Öffnen Sie den Konfigurationscontainer und begeben Sie sich zu DisplaySpecifiers und dem Container für die von Ihnen geänderte Sprache (407 entspricht Deutsch). Öffnen Sie die geänderte Objektklasse und wählen Sie AdminContextMenu. Klicken Sie auf Bearbeiten und entfernen Sie den Befehl. Anzeigebezeichner, Delegierung und die Gesamtstruktur Wenn Sie bei der Anpassung des Kontextmenüs die Fehlermeldung erhalten, dass der Zugriff verweigert wird, oder wenn Sie jemals auf eine derartige Fehlermeldung treffen sollten, ist dies darauf zurückzuführen, dass sich der Container DisplaySpecifiers im Konfigurationscontainer befindet, der standardmäßig an Unternehmensadministratoren delegiert wird. Einige meiner Kunden flippen aus, wenn ich Ihnen vorschlage, einen Teil von Active Directory außerhalb der Domänenpartition zu delegieren. Aber es handelt sich nur um eine Datenbank. Wenn Administratoren der unteren Ebene aus stichhaltigen geschäftlichen Gründen in der Lage sein müssen, einen 1.3 Erweitern von Active Directory-Benutzer und -Computer zum Auflisten von Gruppenmitgliedschaften 47 anderen Teil der Datenbank, z.B. DisplaySpecifiers, zu ändern, sollten Sie diese Befugnis an sie delegieren! Dies ist eine Ausnahme von der Delegierungsregel. Diese sieht vor, dass die Delegierung auf Containerebene erfolgt. Bei Anzeigebezeichnern schlage ich jedoch vor, alle Anzeigebezeichner zu delegieren, für die eine Gruppe Änderungsmöglichkeiten haben soll. Soll beispielsweise eine Gruppe in der Lage sein, die Anzeigebezeichner aller Objekte zu ändern, sollten Sie den Sprachcontainer oder sogar den Container DisplaySpecifiers delegieren. Ich gehe jedoch davon aus, dass Sie nur die Anzeigebezeichner für Benutzer, Computer, Gruppen und Organisationseinheiten für eine oder zwei Sprachen zu delegieren brauchen. Handeln Sie gezielt und gehen Sie dann bei der Delegierung wie folgt vor: 1. Öffnen Sie den Anzeigebezeichner (z.B. user-Display) in der entsprechenden Sprache (z.B. CN=407) im ADSI-Editor. 2. Klicken Sie auf die Registerkarte Sicherheit. 3. Klicken Sie auf Hinzufügen und wählen Sie die Gruppe aus, an die Sie die Möglichkeit zum Ändern von Anzeigebezeichnern delegieren wollen. Ich schlage Ihnen vor, eine Gruppe für die Verwaltung der Berechtigungen unter einem Namen wie AD_DisplaySpecifiers_Modify anzulegen. 4. Aktiveren Sie das Kontrollkästchen Zulassen unter Schreiben und klicken Sie dann auf OK, um Ihre Änderungen zu speichern. Verwalten von Änderungen am Kontextmenü Da sich Anzeigebezeichner im Konfigurationscontainer befinden, wirken sie sich auf die Gesamtstruktur aus. Alle Befehle, die Sie dem Attribut AdminContextMenu hinzufügen, sind beispielsweise für alle Administratoren in der Gesamtstruktur sichtbar, die Active Directory-Benutzer und -Computer nutzen. Daher sollten Änderungen an Anzeigebezeichnen bedacht, geplant und getestet werden, damit Sie am Ende nicht mit einem langen, ungeordneten Kontextmenü dastehen. In großen, dezentralisierten IT-Organisationen kann dies eine Herausforderung darstellen. Was geschieht, wenn jede IT-Abteilung unterschiedliche Anpassungen am Kontextmenü vornehmen möchte? In solchen Situationen empfehle ich den folgenden Ansatz. Erstellen Sie eine »Master«-HTMLAnwendung, die das Argument (den definierten Namen des ausgewählten Objekts) von Active Directory-Benutzer und -Computer erhält und dann eine Art Menü oder Navigation zur Auswahl des entsprechenden Befehls bereitstellt. Dieser Befehl wird dann ausgeführt und der definierte Name als Argument übergeben. Weitere Informationen Weitere Informationen über Anzeigebezeichner finden Sie unter http://msdn2.microsoft.com/en-us/ library/ms675904.aspx. Aufgaben und Anzeigebezeichner im Vergleich Sie haben zwei Möglichkeiten kennen gelernt, Ihr benutzerdefiniertes Werkzeug in das Snap-In Active Directory-Benutzer und -Computer zu integrieren: eine benutzerdefinierte Aufgabe und einen maßgeschneiderten Kontextmenübefehl. Benutzerdefinierte Aufgaben kann jeder erstellen, der über die Möglichkeit zur Anpassung einer MMC-Konsole verfügt. Sie bieten Ihnen auch die Möglichkeit, die als Argument an den Befehl übergebene Eigenschaft des ausgewählten Objekts festzulegen. Um diese Aufgabe ausführen zu können, müssen Administratoren allerdings über eine benutzerdefinierte Konsole verfügen. 48 Lösungsgruppe 1: Rollenbasierte Verwaltung Sie können Änderungen an den Anzeigebezeichnern einmal vornehmen und sofort auf alle Instanzen der systemeigenen Verwaltungswerkzeuge, z.B. des Snap-Ins Active Directory-Benutzer und -Computer, anwenden. Allerdings erfordern sie die entsprechende Delegierung von Berechtigungen. Außerdem sollten Sie die Länge des Kontextmenüs unter Kontrolle behalten. Zusammenfassung Wir haben unser Beispiel für eine administrative Lösung bis zur endgültigen Implementierung ausgearbeitet. Das Skript zum Auflisten der Gruppenmitgliedschaft wurde in eine benutzerdefinierte HTML-Anwendung integriert. Diese Anwendung wurde so erweitert, dass sie Argumente von einer Befehlszeile übernimmt. Außerdem wurde die HTML-Anwendung dann mithilfe einer Aufgabe in einem Aufgabenblock oder eines benutzerdefinierten Kontextmenüs, das durch eine Änderung der Anzeigebezeichner in Active Directory erstellt wurde, in unser Standardverwaltungswerkzeug, das Snap-In Active Directory-Benutzer und -Computer integriert. Sowohl der Ansatz mit einer Aufgabe als auch der mit einem Anzeigebezeichner bietet Vorteile, sodass Sie letztlich möglicherweise eine Mischung aus beiden Lösungen verwenden. 1.4 Grundlagen der rollenbasierten Verwaltung Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Active Directory-Gruppen Zusammenfassung Verstehen der Grundlagen der rollenbasierten Verwaltung mithilfe von Active Directory Vorteile Effektive Kommunikation über die rollenbasierte Verwaltung Einführung Im Abschnitt »Szenarien, Probleme und Lösungen« auf Seite 2 habe ich die Herausforderungen einer nicht verwalteten Umgebung dargelegt und die Vision einer gut verwalteten Umgebung präsentiert. Ich empfehle Ihnen, diesen Abschnitt noch einmal zu lesen. In dieser Lösung stelle ich die Grundlagen der rollenbasierten Verwaltung vor. Wie ich im Abschnitt »Szenarien, Probleme und Lösungen« erwähnt habe, besteht das Ziel der rollenbasierten Verwaltung darin, einem Unternehmen zu ermöglichen, seine Benutzer und Computer anhand ihrer Rollen zu definieren und durch diese rollenbasierte Definition die erforderliche Verwaltung automatisch zu ermöglichen. Dazu gehören die Bereitstellung des Ressourcenzugriffs, der Systemprivilegien, der Softwareanwendungen, der Konfiguration der Benutzeroptionen, z.B. zugeordnete Laufwerke, die Verwaltung von Benutzerdaten und -einstellungen, E-Mail-Verteilerlisten, die Konfiguration der Sicherheit und Aktualisierung u.a. – und zwar alles auf der Grundlage von Rollen. Wir setzen voraus, dass das Unternehmen in einer Organisation größere Bedeutung hat als der Einzelne: dass also die Rolle, die der Einzelne spielt, bestimmt, was er (Benutzer oder Computer) benötigt, um die Ziele der Organisation zu erreichen. Selbst in einer kleinen Organisation erlaubt daher die Definition 1.4 Grundlagen der rollenbasierten Verwaltung 49 von geschäftsorientierten Rollen, dass der Einzelne, der eine bestimmte Rolle innehat, heute durch eine andere Person oder einen anderen Computer ersetzt werden kann, der dieselben Rollen ausübt und damit in identischer Weise verwaltet wird. Ein weiteres Ziel der rollenbasierten Verwaltung besteht darin, das Berichtswesen, die Überprüfung und die Einhaltung von Vorschriften zu vereinfachen. Fragen wie »Worauf kann Janice zugreifen?« und »Wer kann die Budgetressourcen bearbeiten?« müssen schnell, einfach und verbindlich beantwortet werden. Von der höchsten Warte aus gesehen handelt es sich bei der rollenbasierten Verwaltung um die Art und Weise, in der Sie Ihre Informationstechnologie abstimmen, um die folgenden grundlegenden Fragen beantworten zu können: »Wer kann was und wo tun?« Sich diese drei Fragewörter – wer, was und wo – zu merken, hilft Ihnen dabei, die Teile der rollenbasierten Verwaltung zusammenzufügen. Wir können die Aufgabe eines IT-Spezialisten bis zu diesem Punkt vereinfachen: Wir verbinden Benutzer mit dem Material, das sie brauchen. Dabei kann es sich um E-Mails, Dateien, Drucker, Softwareanwendungen usw. handeln. Umgekehrt müssen wir auch sicherstellen, dass Benutzer keine Verbindung zu Ressourcen haben, zu denen sie keinen Zugang haben sollten. Wenn wir jedoch die erste Aufgabe effektiv ausführen, erreichen wir auch das zweite Ziel. Da wir annehmen, dass die Organisation größer ist als der Einzelne, und wir alle die goldene Regel der Administration gelernt haben, wissen wir, dass die Verwaltung anhand von Gruppen anstelle von einzelnen Benutzern (oder Computern) erfolgen muss. Wenn Sie drei Benutzer haben, die eine Leseberechtigung für einen freigegebenen Ordner mit dem Budget benötigen, sollten Sie nicht jeden Benutzer einzeln in die Zugriffssteuerungsliste des Ordners aufnehmen. Zumindest hoffe ich, dass Sie das nicht tun! Stattdessen sollten Sie eine Gruppe erstellen und dieser die Leseberechtigung für den Ordner erteilen. Dieser Ansatz ist in Abbildung 1.10 dargestellt. Benutzer Gruppe Department Managers ACL: Lesen zulassen Server Zugriffssteuerungsliste (Access Control List, ACL) Freigegebener Ordner Abbildung 1.10 Zuweisen der Zugangsberechtigung für eine Ressource an eine Benutzergruppe 50 Lösungsgruppe 1: Rollenbasierte Verwaltung Rollengruppen Nehmen wir an, dass die Benutzer in unserem Szenario eine gemeinsame Eigenschaft aufweisen: Sie alle sind Abteilungsleiter. Die Wer-Komponente unseres Wer/was/wo-Ansatzes bilden größtenteils unsere Rollen. Wir können eine Rollengruppe mit dem Namen Department Managers erstellen und ihr die drei Benutzer hinzufügen. Rollengruppen definieren eine Gruppe von Benutzern oder Computern anhand von Ähnlichkeiten, zu denen Geschäftseinheiten, die geographische Lage, Abteilungen, die Funktion, das Dienstalter oder der Status, Teams, Projekte oder andere geschäftsbezogene Eigenschaften gehören können. Wichtig Eine Rollengruppe definiert eine Gruppe von Benutzern oder Computern anhand von geschäftsbezogenen Gemeinsamkeiten. Sie hilft dabei, zu definieren, wer ein Benutzer oder Computer ist. Probleme bei der ausschließlichen Verwendung von Rollengruppen Organisationen setzen Rollengruppen in unterschiedlichem Grade um. Recht häufig sieht man Gruppen wie Sales, Marketing, Finances oder auch Consultants im Active Directory einer Organisation. Leider ist damit oft schon das Ende erreicht. Was geschieht, wenn Sie ausschließlich über Rollengruppen verfügen und Ihren Abteilungsleitern die Leseberechtigung für das Budget erteilt haben, dann aber einen Berater einstellen, der das Budget ebenfalls lesen muss, um seine Arbeit verrichten zu können? Wenn Sie den Berater zu der Zugriffssteuerungsliste des Ordners Budget hinzufügen, haben Sie das akute Problem gelöst. Was geschieht aber bei der nächsten Ausnahme von der Regel, dem nächsten Benutzer oder der nächsten Gruppe, die ebenfalls Lesezugriff benötigen? Wie beantworten Sie jetzt die Frage: »Wer kann das Budget lesen?« Sie müssen die Zugriffssteuerungsliste des Ordners Budget nach einem Sicherheitsprinzipal mit gültiger Leseberechtigung durchsuchen. Das ist nicht einfach. Und was geschieht, wenn es sich bei Budget nicht nur um einen, sondern um mehrere Ordner auf vier verschiedenen Servern handelt? Sie sehen hoffentlich, dass das alleinige Vorhandensein von Rollengruppen nicht ausreicht, da Rollen nicht eins zu eins dem entsprechen, was Sie verwalten wollen: in diesem Fall den Lesezugriff für die Budgetressourcen. Befugnisverwaltungsgruppen Beschäftigen wir uns weiter mit diesem Szenario. Was tun Sie, wenn Sie freigegebene Ordner auf vier verschiedenen Servern haben, die sich alle mit dem Budget des nächsten Jahres beschäftigen? Wir bezeichnen diese vier freigegebenen Ordner als Budgetressourcen oder Budget. Der beste Ansatz zur Verwaltung des Ressourcenzugriffs in diesem Szenario ist die Erstellung einer einzigen Gruppe für den Lesezugriff auf die Budgetressourcen. Nennen wir die Gruppe (aus Gründen, die ich im weiteren Verlauf dieser Lösungsgruppe noch erläutern werde) ACL_Budget_Read. Erteilen Sie dieser Gruppe die Leseberechtigung für die einzelnen Ordner auf den vier Servern. Fügen Sie die Gruppe Department Managers in diese Gruppe ein. Wenn die Berater einen Zugang benötigen, fügen Sie sie ebenfalls der Gruppe ACL_Budget_Read hinzu. Falls eine weitere Ausnahme von der Regel es erforderlich macht, dass ein einzelner Benutzer (bei dem es sich weder um einen Abteilungsleiter noch einen Berater handelt) die Leseberechtigung für die Ordner benötigt, fügen sie diesen einen Benutzer in die Gruppe ACL_Budget_Read ein. Voilà. Sie verwalten den Lesezugriff auf diese Sammlung von Budgetressourcen. Abbildung 1.11 zeigt dieses Modell. 1.4 Grundlagen der rollenbasierten Verwaltung 51 Halten Sie nun inne und überlegen Sie sich, was das in diesem einfachen Szenario für das Berichtswesen und die Überprüfung bedeutet. Wenn Sie gefragt werden, wer das Budget lesen kann, können Sie darauf antworten. Schauen Sie sich einfach die Mitgliedschaften der Gruppe ACL_Budget_Read an. Was hätten Sie andernfalls getan? Sie hätten sich die Zugriffssteuerungslisten der freigegebenen Ordner ansehen und Ordner für Ordner bestimmen müssen, wer über Leseberechtigungen verfügt. Dies ist ein sehr einfaches Szenario. Die Bedeutung der Zugriffsverwaltung bei mehreren Ressourcen wächst logarithmisch mit steigender Ressourcen- und Benutzerzahl – und damit zunehmender Komplexität – in der Umgebung. Was wir gerade erläutert haben, war die Erstellung einer Befugnisverwaltungsgruppe. Eine solche repräsentiert eine einzelne, detaillierte Verwaltungsaufgabe. In diesem Fall verwalten wir die Befugnis zum Lesen einer bestimmten Sammlung von Ressourcen (des Budgets). Dabei handelt es sich um die Was-Komponente unseres Wer/was/wo-Ansatzes. Was kann James tun, wenn wir ihn der Gruppe ACL_Budget_Read hinzufügen? Das Budget lesen. Gruppe Department Managers Gruppe Consultants Gruppe ACL_Budget_Read ACL ACL ACL ACL Lesen zulassen Lesen zulassen Lesen zulassen Lesen zulassen Server1 Ordner Budget Server2 Ordner Budget Server3 Ordner Budget Server4 Ordner Budget Abbildung 1.11 Darstellung der Befugnis zum Lesen einer Ressourcengruppe 52 Lösungsgruppe 1: Rollenbasierte Verwaltung Einige meiner Kunden bezeichnen diese Art von Gruppen gerne als Aufgabengruppen. Das ist ein sehr guter Name in diesem Szenario – wir legen fest, wer eine Aufgabe ausführen kann: das Lesen des Budgets. Ich bevorzuge jedoch den Begriff »Befugnisverwaltungsgruppe«, da sich die rollenbasierte Verwaltung über Dateien und Ordner hinaus auf Vorgänge wie das Drucken auf bestimmten Druckern, die Aufnahme in eine Verteilerliste oder sogar die Bereitstellung von Anwendungen wie zum Beispiel Visio auf einem Desktopprompter erstreckt. Somit verwalten wir die Befugnis eines Benutzers, Visio zu verwenden, auf dem bestimmten Drucker zu drucken oder die E-Mail-Nachrichten für eine bestimmte Verteilerliste zu empfangen. Die Wo-Komponente unseres Wer/was/wo-Ansatzes wird als Verwaltungsbereich bezeichnet. Wo können unsere Benutzer Dateien lesen? In den Budgetordnern. Wichtig Befugnisverwaltungsgruppen stellen eine einzelne, detaillierte Verwaltungsaufgabe dar. Sie repräsentieren, was ein Benutzer wo tun kann. Eine Gruppe mit dem Namen ACL_Budget_Read tut nichts, bevor Sie ihre Befugnisse eingerichtet haben. Bei der Befugnis zum Lesen einer Reihe von Ordnern bedeutet dies, dass Sie die Gruppe ACL_Budget_Read mit Leseberechtigungen in die Zugriffssteuerungslisten der vier freigegebenen Ordner einfügen. Diese vier Ordner bilden den »Verwaltungsbereich« für diese Gruppe, wobei Sie diesen mithilfe der Ordner-Zugriffssteuerungslisten einrichten. Ich betone dies noch einmal, da Sie bei anderen Verwaltungsaufgaben den Verwaltungsbereich unterschiedlich einrichten. Probleme bei der ausschließlichen Verwendung von Befugnisverwaltungsgruppen Einigen Organisationen verfügen, wenn nicht dem Namen nach, so doch in der Praxis hauptsächlich oder ausschließlich über Befugnisverwaltungsgruppen. Einer meiner Kunden (der übrigens einen externen Supportdienstleister beauftragt) verfügt über Gruppen, die unterschiedliche Arten des Zugriffs auf verschiedene Ordner repräsentieren. Diese würde ich als »Befugnisverwaltungsgruppen« bezeichnen, obwohl dieser Kunde sie so bezeichnet, als handele es sich um Rollengruppen: Ein Benutzer wird der Gruppe Project Surfboard zugewiesen, sodass er Zugang zu den Project Surfboard-Ordnern hat. Die Benutzer werden allerdings direkt in diese Gruppen eingeordnet. Es gibt keine »Rollen«-Schicht. Jedes Mal, wenn sich die Rolle eines Benutzers ändert, muss dessen neuer Vorgesetzter eigentlich alle einzelnen Befugnisse anfordern, die der Benutzer benötigt. Es ist nicht so, dass sich der Benutzer von allen anderen Mitgliedern dieser Rolle unterscheidet – es gibt einfach keinen Weg, die Rolle darzustellen. Raten Sie mal, was passiert. Dieser Vorgang dauert Tage oder Wochen und bringt normalerweise mehrere Anrufe bei der Supporthotline mit sich, z.B.: »Ich habe vergessen, dass mein neues Teammitglied auch Zugang zu XYZ benötigt.« Da der externe Supportdienstleister pro Anfrage bezahlt wird, ist so etwas ein Glücksfall für ihn – und völlige Geldverschwendung für meinen Kunden. Befugnisverwaltungsgruppen allein reichen nicht aus. Betrachten Sie Ihre Organisation sorgfältig. Die Wahrscheinlichkeit ist groß, dass Sie über einige Rollen- und einige Befugnisverwaltungsgruppen verfügen, es aber keine einfache Möglichkeit gibt, sie zu unterscheiden. Sie werden vermischt und falsch verwendet. Daher bekommen Sie es wahrscheinlich mit einigen der Probleme zu tun, die ich zu Beginn dieser Lösungsgruppe erwähnt habe. 1.4 Grundlagen der rollenbasierten Verwaltung 53 Verschachtelung von Rollengruppen in Befugnisverwaltungsgruppen Da Sie nun über eine Rollengruppe wie Department Managers oder Consultants und eine Befugnisverwaltungsgruppe wie ACL_Budget_Read verfügen, können wir die Rollengruppe in der Befugnisverwaltungsgruppe verschachteln. Wenn wir eine neue Benutzerin zur Leiterin ihrer Abteilung befördern, können wir ihr auf diese Weise einfach diese Rolle hinzufügen, indem wir sie in die Gruppe Department Managers einfügen – und schon kann die Benutzerin das Budget lesen. Es ist wahrscheinlich, dass die Abteilungsleiter weitere gemeinsame Anforderungen an den Ressourcenzugriff haben. Sie nutzen z.B. gemeinsam eine E-Mail-Verteilerliste: Die Gruppe Department Managers gehört zur Verteilergruppe LST_Department Managers. Alle können darüber hinaus den Firmennewsletter bearbeiten, sodass sie darin den Abschnitt ändern können, der ihre Abteilung betrifft. Daher gehört die Gruppe Department Managers zur Gruppe ACL_Newsletter_Edit. Eine andere Rolle, Communications, gehört ebenfalls der Gruppe ACL_Newsletter_Edit an. Gruppe Department Managers Gruppe Consultants Gruppe Communications Gruppe Finance Managers Gruppe Auditors Benutzer CEO Gruppe LST_Department_ Managers Gruppe ACL_Budget_ Read Gruppe ACL_Newsletter_ Edit Gruppe ACL_Finance_ Audit E-MailVerteilerliste Ordner Budget Ordner Newsletter Ordner Finance Abbildung 1.12 Rollenbasierte Verwaltung 54 Lösungsgruppe 1: Rollenbasierte Verwaltung Die Rollen Auditors und Finance Managers gehören zur Gruppe ACL_Finance_Audit, die Lesezugriff für alle Finanzdateien des Unternehmens erlaubt. Der leitende Geschäftsführer (CEO) gehört ebenfalls zur Gruppe ACL_Finance_Audit, um die Geschäftsdaten transparent zu machen, sodass er die Finanzaufstellungen vertrauensvoll absegnen kann. Wichtig Rollengruppen lassen sich in Befugnisverwaltungsgruppen verschachteln. Andere Arten der Verschachtelung Wie wir im vorigen Absatz und weiter vorn in dieser Erörterung gesehen haben, ist es für einen einzelnen Benutzer von Vorteil, zu einer Befugnisverwaltungsgruppe zu gehören. Auf diese Weise verwalten wir die Ausnahmen von der Regel. Sie sollten sich davor hüten, dass zu viele Benutzer einer einzigen Befugnisverwaltungsgruppe angehören. Nehmen Sie dies zum Anlass, um zu überprüfen, warum sich so viele einzelne Benutzer darin befinden. Nach meinen Erfahrungen bedeutet dies, dass sie eine gemeinsame Eigenschaft aufweisen, die es Ihnen ermöglicht, sie als Rolle zu definieren. Dann verschachteln sie anstelle der einzelnen Benutzer die Rollengruppe in der Befugnisverwaltungsgruppe. Sehr oft werden die Rollengruppen auch in anderen Rollengruppen verschachtelt. Nehmen wir die ITOrganisation als Beispiel. Gehen wir davon aus, dass zwei Rollen vorhanden sind: Windows Engineers und Help Desk. Es besteht die Möglichkeit, dass Sie den Supportmitarbeitern Rechte und Zugang zu Ressourcen gewährt haben, damit sie ihre Arbeit erledigen können. Die erfahreneren Windows-Techniker werden ebenfalls oftmals gebeten, das Kennwort eines Benutzers zurückzusetzen und einfache Supportaufgaben zu übernehmen. Mit anderen Worten, Windows Engineers sollte so viel können wie Help Desk und noch ein wenig mehr. Daher wird die Rolle Windows Engineers nicht in allen einzelnen Befugnisverwaltungsgruppen verschachtelt, sondern in der Rolle Help Desk, und erbt damit alle dem Support zugewiesenen Befugnisse. Darüber hinaus verschachteln Sie die Rolle Windows Engineers direkt in für diese Rolle eindeutigen Befugnissen. Wir werden die rollenbasierte Verwaltung von Active Directory, Administratoren und Supportpersonal in Lösungsgruppe 5, »Active Directory-Delegierung und administrative Sperrung«, untersuchen. Es sollte weniger häufig vorkommen, dass Befugnisverwaltungsgruppen in anderen Befugnisverwaltungsgruppen verschachtelt sind. Obwohl es zulässige Szenarien für einen solchen Entwurf geben mag, ist es wahrscheinlicher, dass sie damit beginnen, die Bedeutung von Rollen- und Befugnisverwaltungsgruppen zu verwischen. Möglicherweise müssen die Rollen, die sich in einer Befugnisverwaltungsgruppe befinden, auch über eine andere Befugnis verfügen. Verschachteln Sie die Rollen in der Befugnisverwaltungsgruppe und stellen Sie sicher, dass die Befugnisverwaltungsgruppen im Verhältnis von 1:1 für das stehen, was Sie verwalten wollen und wo Sie dies tun wollen. Abschließend sei gesagt, dass ich mich zwar auf Benutzer und Gruppen konzentriert habe, Computer aber ebenfalls Sicherheitsprinzipale sind. Stellen Sie sich vor, dass die Rollen von Computern beispielsweise ganz einfach als »Denver-Computer«, »Konferenzraum«, »Desktop«, »Laptop«, »Mobile Vertriebslaptops«, »Administrator-Arbeitsstationen« usw. definiert werden. Die Rolle der DenverComputer erlaubt vielleicht dem Supportteam am Standort Denver die Mitgliedschaft in der lokalen Gruppe der Administratoren, während ein anderer Standort ein anderes Supportteam umfasst. Die mobilen Vertriebslaptops können von bestimmten Konfigurationen ausgeschlossen werden, die nicht leicht aufrechtzuerhalten sind, wenn die Benutzer selten eine Verbindung zum Netzwerk herstellen. Kritische Unternehmensdokumente stehen möglicherweise den Computern im Konferenzraum nicht zur Verfügung. Dies sind nur einige Beispiele. 1.4 Grundlagen der rollenbasierten Verwaltung 55 Daten, Geschäftslogik und Darstellung Ein rollenbasiertes Verwaltungsmodell erfordert drei Hauptkomponenten: die Daten, die Geschäftslogik und die Darstellung. Bei den Daten handelt es sich um die Datenbank oder den Informationsspeicher für das Modell. Die Geschäftslogik ist die Umsetzung von Geschäftsanforderungen, Eigenschaften der Organisation, Arbeitsabläufen, Prozessen und Richtlinien. Die Darstellung ist die Art und Weise, in der das Modell in Werkzeugen, Berichten und anderen Benutzeroberflächen erscheint. Das Ziel dieses Buchs besteht darin, Ihnen den Einsatz von Active Directory als Datenbank zu ermöglichen. Im Grunde handelt es sich dabei um eine solche, und sie ist in Ihrem Unternehmen hochgradig verfügbar. Sie wird (sehr effizient) repliziert, gesichert und geschützt. Außerdem gibt es eine Reihe von Werkzeugen für den Zugriff und die Verwaltung. Es tut mir weh, wenn ich Organisationen sehe, die umfangreiche Active Directory-Implementierungen auch noch nach vielen Jahren nur zur Authentifizierung verwenden, also um den Benutzern die Anmeldung zu ermöglichen. Holen Sie das Beste aus Active Directory heraus! Die Geschäftslogik wird vorwiegend durch die Verschachtelung von Benutzern und Computern in Rollengruppen, die rekursive Verschachtelung von Rollengruppen und die Verschachtelung von Rollengruppen und Gelegenheitsbenutzern oder -computern in Befugnisverwaltungsgruppen implementiert. Dabei handelt es sich um Ihre logische Schicht. Das Sammeln und Analysieren der Daten Ihres Geschäfts, um dessen Geschäftslogik zu verstehen und zu modellieren, ist zweifellos der schwierigste Teil bei der Einrichtung der rollenbasierten Verwaltung. Die Technologie ist einfach, das Geschäft dagegen nicht. Die Darstellung – der sichtbare Aspekt des rollenbasierten Verwaltungsmodells – ist ein Schwachpunkt der systemeigenen Werkzeuge von Microsoft wie das Snap-In Active Directory-Benutzer und -Computer. Wie wir in den Lösungen 1.1 bis 1.3 gesehen haben, erfordert es tatsächlich ziemlich viel Kreativität, die vollständigen Gruppenmitgliedschaften eines Benutzers offen zu legen. Darüber hinaus gibt es nur ein Werkzeug zur Verwaltung der Gruppenmitgliedschaft – das Snap-In Active Directory-Benutzer und -Computer, bei dem es sich nicht um ein Hilfsmittel handelt, das Sie technisch nicht versierten Benutzern, die möglicherweise aus geschäftlichen Gründen Gruppenmitgliedschaften verwalten wollen, überlassen sollten. In dieser technischen Referenz stelle ich daher Lösungen vor, die Ihnen dabei helfen, eine anspruchsvolle und effektive rollenbasierte Verwaltung aufzubauen, indem Sie Active Directory als Datenspeicher, die Gruppenverwaltung für die Geschäftslogik und benutzerdefinierte Werkzeuge für die Darstellung wirksam einsetzen. Werkzeuge von Drittanbietern Microsoft und andere Hersteller bieten Werkzeuge an, die die Verwaltung Ihres Unternehmens in einem rollenbasierten Modell ergänzen oder vollständig übernehmen können. Serverprodukte wie Microsoft Identity Lifecycle Manager (ILM) und System Center Configuration Manager 2007 sind phänomenale Werkzeuge. Firmen wie Sun Microsystems, Oracle, Quest und andere bieten Lösungen für die Identitäts- und Rollenverwaltung an. All diese Werkzeuge bieten Komponenten zur Verwaltung der Daten, der Geschäftslogik und zur Darstellung der rollenbasierten Verwaltung. Schließlich enden die meisten aber wieder bei der Umsetzung der Geschäftslogik in Active Directory und bei Verwaltungsebenen wie Ordner-Zugriffssteuerungslisten. Wenn Sie Neuling auf dem Gebiet der rollenbasierten Verwaltung sind, möchte ich Sie daher ermutigen, mit Active Directory und den in dieser technischen Referenz angebotenen Werkzeugen zu 56 Lösungsgruppe 1: Rollenbasierte Verwaltung beginnen. Die Definition Ihrer Geschäftslogik und Ihrer Anforderungen ist eine aufwändige und wachsende Aufgabe. Wenn für Ihre Anforderungen eine Modellierung der Infrastruktur in Active Directory nicht mehr sinnvoll ist, können Sie bewusst ein neues Produkt auswählen, das die von Ihnen erkannten Lücken füllt, und verfügen bereits über eine definierte und migrationsbereite Geschäftslogik. Zusammenfassung Die rollenbasierte Verwaltung stellt eine Struktur bereit, mit der die Informationstechnologie des Unternehmens mit der Geschäftslogik und den Anforderungen abgestimmt werden kann. Durch die Repräsentation von Benutzern und Computern als Rollengruppen und die Darstellung von Befugnissen und Verwaltungsebenen als Befugnisgruppen können Sie Ihre Geschäftslogik widerspiegeln, indem Sie Rollengruppen in Befugnisgruppen verschachteln. Danach werden durch das einfache Hinzufügen, Entfernen oder Neudefinieren der Rolle eines Benutzers oder Computers automatisch die Ressourcen, die Anwendungen, die Konfiguration und andere IT-Komponenten konfiguriert, die für diesen Benutzer oder Computer zur Ausführung der mit seinen Rollen verbundenen Aufgaben erforderlich sind. 1.5 Einrichten einer rollenbasierten Zugriffssteuerung Die Lösung im Überblick Typ Anleitung und empfohlene Vorgehensweisen Funktionen und Werkzeuge Active Directory-Gruppenverwaltung Zusammenfassung Umsetzung der rollenbasierten Zugriffssteuerung durch disziplinierte und ausgefeilte Gruppenverwaltung Vorteile Automatisierte Verwaltung des Ressourcenzugriffs nach Benutzer- und Computerrollen und Geschäftsanforderungen Einführung Bei der rollenbasierten Zugriffssteuerung handelt es sich um die rollenbasierte Verwaltung, die auf die Sicherheit von Ressourcen wie Dateien, Ordner, Drucker, SharePoint-Listen, Bibliotheken usw. angewendet wird. In dieser Lösung richten wir die rollenbasierte Zugriffssteuerung für eine Ressourcengruppe ein und erwerben dabei Fähigkeiten, die sich auch für andere Anwendungen der rollenbasierten Verwaltung eignen. In dieser Lösung arbeiten wir das in der vorigen Lösung vorgestellte Szenario aus, indem wir den Zugang zu den Budgetressourcen einrichten. Bei Contoso Ltd. befinden sich die Dateien für das Budget des nächsten Jahres in freigegebenen Ordnern auf Servern am Hauptstandort der Abteilung. Die Marketing-, Verkaufs-, Fertigungs- und Entwicklungsabteilung verfügen jeweils über Server mit einer Freigabe namens Budget. Zusammen bilden sie eine so genannte Ressourcengruppe: eine Reihe verteilter Dateien, die dennoch als eine einzige Ressource verwaltet werden. Wir setzen die Wer-, Was- und Wo-Komponente der rollenbasierten Zugriffssteuerung um. Dabei planen wir die optimalen Vorgehensweisen für die rollenbasierte Verwaltung. Warnung: Was wir in dieser Lösung tun, sieht recht arbeitsintensiv aus. Dafür gibt es zwei Gründe. Erstens nehmen wir als IT-Spezialisten die Kosten für die Verwaltung von Ressourcen ohne rollenbasierte Verwaltung nicht mehr wahr. Die alten und neuen Verwaltungsmöglichkeiten werden wir in einer Lösung 1.5 Einrichten einer rollenbasierten Zugriffssteuerung 57 weiter hinten in diesem Kapitel behandeln. Zweitens haben wir noch keine Werkzeuge erstellt, die es uns eine Automatisierung und Bereitstellung innerhalb unseres rollenbasierten Verwaltungsmodells gestatten. Solche Werkzeuge werden in dieser und späteren Lösungsgruppen entwickelt. Rollengruppen Wie in der vorangegangenen Lösung erklärt, definieren Rollengruppen Benutzer und Computer, indem sie geschäftliche Kriterien wie den Geschäftsbereich, die Funktion, die Abteilung, die Team- oder Projektmitgliedschaft, den Standort oder die Betriebszugehörigkeit verwenden. Normalerweise sind Rollen sehr deutlich und leicht zu verstehen: James ist Buchhalter in Sydney; Janice ist Leiterin der Abteilung Finanzwirtschaft in London und Mitglied des Sonderprojekts. Wichtig Rollen und ihre Mitglieder sollten sehr vertrauenswürdig sein. Die Besitzer von Ressourcen verwalten diese, indem sie den von Ihnen definierten Rollen entsprechende Befugnisse erteilen. Daher sollten die Rollen und ihre Mitglieder sehr vertrauenswürdig sein. William ist beispielsweise der Leiter des Sonderprojekts und fungiert daher als Besitzer eines freigegebenen Ordners und einer SharePoint-Teamsite für das Team. Er gewährt der Gruppe Special Project Zugriff und möchte wissen, ob die Mitgliedschaft dieser Gruppe korrekt und vertrauenswürdig ist. Andernfalls wäre er gezwungen, den Zugriff auf seine Ressourcen für einzelne Benutzer zu gewähren. Indem wir ihm eine vertrauenswürdige Rollendefinition bereitstellen, nehmen wir ihm eine Last bei der Verwaltung ab. Wichtig Rollen sollten möglichst von zuverlässigen Datenquellen gesteuert werden. Wenn die Mitgliedschaft in einer Rolle nicht von einem Menschen, sondern von einer verlässlichen Datenquelle gesteuert wird, ist diese Rolle wesentlich vertrauenswürdiger. Contoso Ltd. hat eine Verknüpfung zwischen der Personalverwaltungssoftware und den entsprechenden Rollen in Active Directory hergestellt. Die Beförderung von Janice zur Leiterin der Finanzwirtschaft wurde zuerst in der Personalverwaltungsanwendung umgesetzt. Anschließend wurde sie anhand der Attribute ihres Personaldatensatzes automatisch in die Rolle Finance Manager in Active Directory verschoben. Derartige datenbankgesteuerte Rollendefinitionen erhöhen die Vertrauenswürdigkeit der Rollengruppen. Solche Verknüpfungen können mithilfe von ausgefeilten und nicht ganz preiswerten Anwendungen zur Identitätsverwaltung hergestellt werden. Diese Anwendungen verfügen normalerweise über Schnittstellen für viele verschiedene Datenbankanwendungen und -formate. In dieser Anwendung überwachen Agenten Änderungen an der Quelldatenbank. Wenn ein Auslöser auftritt, nimmt die Anwendung Änderungen an anderen Datenbanken, z.B. Active Directory, anhand der Logik vor, die in die Anwendung eingegeben wurde. Daher kann eine Anwendung zur Identitätsverwaltung das Feld Job Title in einer Personaldatenbank überwachen und anhand dieses Titels die Mitgliedschaft eines Benutzers in einer bestimmten Gruppe in Active Directory aktualisieren. Anstatt sie zu kaufen, können Sie eine ähnliche Funktionalität selbst erstellen. Ich habe mehrere Kunden mit umfangreichen und komplizierten selbst entwickelten Anwendungen, die eine Schnittstelle zwischen der Finanz-, der Personal- und der Betriebsdatenbank bilden und anhand dieser Datenquellen Änderungen in Active Directory vornehmen. 58 Lösungsgruppe 1: Rollenbasierte Verwaltung Ein weiteres einfaches Beispiel sind Computerrollen. Die meisten Organisationen unterhalten eine Art Computerinventarverzeichnis, das beim Kauf eines neuen Systems aktualisiert wird. Ein solches Inventarverzeichnis sollte zumindest in der Lage sein, einfache Rollen wie »Desktop« im Vergleich zu »Laptop« zu steuern, wobei diese Informationen die standortbasierte Rolle des Computers festlegen können, wenn dieser einem Benutzer zur Verfügung gestellt wird. Hinweis Rollengruppen sind normalerweise globale Sicherheitsgruppen. Bei Rollengruppen handelt es sich normalerweise um globale Sicherheitsgruppen, die nur Benutzer und Computer sowie andere globale Gruppen aus derselben Domäne enthalten können. Sie können Gruppen in derselben Domäne als Mitglieder zu globalen Sicherheitsgruppen hinzufügen, wenn sich Ihre Domäne auf der Domänenfunktionsebene Windows 2000 oder einer höheren befindet. Globale Gruppen dürfen keine Objekte aus einer anderen Domäne enthalten. In Gesamtstrukturen aus mehreren Domänen können Rollengruppen als universelle Gruppen eingerichtet werden, wenn sie Mitglieder aus mehreren Domänen enthalten müssen. In dem seltenen Fall, dass eine Rolle Konten von einer vertrauenswürdigen Domäne außerhalb der Gesamtstruktur enthalten soll, muss es sich bei der Rolle um eine lokale Domänengruppe handeln. Eine solche Rollengruppe kann nicht in einer globalen Gruppe verschachtelt werden, sodass sie zum Filtern von Gruppenrichtlinienobjekten nicht von Nutzen ist. Allerdings gelten Gruppenrichtlinienobjekte sowieso nicht für die Benutzer oder Computer in der vertrauenswürdigen externen Domäne. Verwenden Sie lokale Domänengruppen nur in seltenen Ausnahmefällen für Rollengruppen. Hinweis Rollengruppen enthalten Benutzer, Computer und andere Rollen. Rollengruppen enthalten vorwiegend Benutzer und Computer. Normalerweise weist eine Rollengruppe Benutzer oder Computer auf. Einige Arten von Rollengruppen, z.B. Standortrollengruppen, enthalten jedoch beides. Die Gruppe LOC_SYD bei Contoso repräsentiert beispielsweise Benutzer und Computer am Standort Sydney. Sie wird zur Verwaltung mehrerer Befugnisse verwendet, darunter die Nutzung der Homepage des Büros in Sydney als Startseite für Internet Explorer (was durch ein Gruppenrichtlinienobjekt erreicht wird, das nur für LOC_SYD gilt), eine Reihe von Netzwerkdruckern (die in demselben Gruppenrichtlinienobjekt eingerichtet sind) und die Unterstützung durch das lokale Supportteam in Sydney. (Die Rolle Sydney Support gehört durch die Richtlinie Restricted Groups MemberOf zur lokalen Gruppe der Administratoren.) Die Besonderheiten dieser mit Gruppenrichtlinienobjekten verbundenen Befugnisse werden in der Lösungsgruppe mit Gruppenrichtlinien erörtert. Rollengruppen enthalten gelegentlich auch andere Rollen. Die Rollengruppen Finance Managers und Marketing Managers können beispielsweise in der Rollengruppe Departmental Managers verschachtelt werden. Die Verschachtelung von Rollengruppen schafft eine Geschäftslogik, die die Beziehungen – die Hierarchie und die Verbindungen – einer Organisation angibt. In der Verschachtelung von Rollengruppen in Active Directory spiegelt sich wahrscheinlich Ihr Organigramm wider. Wichtig Rollengruppen sollten in einer oder mehreren dedizierten Organisationseinheiten enthalten sein. 1.5 Einrichten einer rollenbasierten Zugriffssteuerung 59 Da Rollengruppen die Grundlage der rollenbasierten Verwaltung bilden, müssen Sie sehr vertrauenswürdig sein und möglichst von zuverlässigen Datenquellen gesteuert werden. Dies können Sie fördern, indem Sie die Rollengruppen in Active Directory von Gruppen trennen, die einem anderen Zweck dienen. Contoso Ltd. verfügt innerhalb der Organisationseinheit Groups über eine Organisationseinheit mit dem Namen Role Groups, die jedoch getrennt von anderen Organisationseinheiten für Ressourcenzugriffs-, Anwendungs- und andere Gruppen zur Befugnisverwaltung ist. Das Einfügen von Rollengruppen in eine oder mehrere dedizierte Organisationseinheiten erlaubt Ihnen, die Verwaltung von Rollengruppenmitgliedschaften (sicher) zu delegieren. In den meisten mittelgroßen bis großen Organisationen und in vielen kleineren Unternehmen ist es für einen Supportmitarbeiter nicht angebracht, die Rollendefinition eines Benutzers zu ändern (zum Beispiel um James in die Gruppe Finance Managers einzufügen). Diese Aufgabe sollte an ein geschultes, vertrauenswürdiges und hoffentlich zuverlässiges Team oder Werkzeug delegiert werden. Contoso verfügt tatsächlich über mehrere Organisationseinheiten für Rollengruppen. Neben Role Groups gibt es die Organisationseinheit Location Groups mit Rollengruppen, die sich auf den Standort eines Benutzers oder Computers beziehen (z.B. die Gruppe LOC_SYD). Diese besondere Organisationseinheit wird tatsächlich an den Support delegiert, der bei einem Standortwechsel den betreffenden Benutzer und seinen Computer von einer in eine andere Standortrollengruppe verschieben kann. Die Organisationseinheit Role Groups, die alle anderen Rollendefinitionen enthält, wird streng kontrolliert. Wenn Sie in der glücklichen Lage sind, Rollengruppenmitgliedschaften mit zuverlässigen Datenquellen verknüpfen zu können, sollten Sie die Möglichkeit weiter einschränken, dass die Synchronisierung zwischen dieser Datenquelle und den Active Directory-Gruppen durch menschliches Eingreifen beeinträchtigt wird. Erstellen sie in dieser Situation eine eigene Organisationseinheit – zum Beispiel Role Groups Authoritative – und delegieren Sie die Verwaltung der Gruppenmitgliedschaft nur an die Anwendung zur Identitätsverwaltung oder das von Ihnen erstellte Werkzeug. Für den Fall, dass die Verknüpfung zur Identitätsverwaltung ausfällt und eine manuelle Wartung erfolgen muss, können Sie die Mitgliedschaftsverwaltung natürlich auch an eine sehr begrenzte Anzahl vertrauenswürdiger Einzelpersonen delegieren. Wichtig Rollengruppen sollten sich streng an Ihre Namenskonventionen halten. Namenskonventionen für Gruppen Namenskonventionen sind von entscheidender Bedeutung. Erwähnte ich schon, dass sie von entscheidender Bedeutung sind? Sie sind entscheidend für die effektive rollenbasierte Verwaltung. Lassen Sie mich einige der Benennungsstandards vorwegnehmen, die ich weiter hinten in dieser technischen Referenz ausführlich beschreibe: Ressourcenzugriffsgruppen: ACL_Ressource_Zugriffsebene Softwarebereitstellung: APP_Anwendung Administratorgruppen (z.B. Support): ADM_Beschreibung Gruppenrichtlinienfilter-Gruppen: GPO_Gruppenrichtlinienobjekt-Name Patchverwaltungsgruppen (z.B. die Gruppe zur »Aktualisierungssteuerung«): UPD_Beschreibung Sie erkennen das Prinzip: Gruppen weisen ein Präfix auf, das ihren Zweck bezeichnet. 60 Lösungsgruppe 1: Rollenbasierte Verwaltung Wichtig Gruppenpräfixe sollten den Zweck der Gruppe bezeichnen. Warum Präfixe? Weil damit mehrere Ziele erreicht werden. Erstens vereinfachen sie das Auffinden der richtigen Gruppe erheblich. Stellen Sie sich vor, dass alle Gruppen, die Sie zur Verwaltung der Ressourcensicherheit verwenden, mit ACL_ beginnen. Jedes Mal, wenn Sie eine Gruppe in eine Zugriffssteuerungsliste einfügen, klicken Sie auf der Registerkarte Sicherheit des Eigenschaftendialogfelds und im Dialogfeld Erweiterte Sicherheitseinstellungen auf Hinzufügen und rufen damit ein Dialogfeld auf, in dem Sie einen Teil des Gruppennamens eingeben und dann eine Auswahl aus einer Liste passender Gruppen treffen können, wie Abbildung 1.13 zeigt. Abbildung 1.13 Auswählen einer Gruppe mit dem Präfix ACL_ Dieses Präfix bietet die Möglichkeit, die Auswahl aus Ihren zahlreichen Gruppen auf den Gruppentyp einzugrenzen, den Sie für eine bestimmte Aufgabe wirklich benötigen. Die Verwendung eines Präfixes hilft Ihnen außerdem dabei, Ihre Gruppen bei der Auflistung zu gliedern. Mit anderen Worten, alle Ressourcensicherheitsgruppen erscheinen zusammen in einer Gruppenliste, da sie alle mit ACL_ beginnen. Wichtig Verwenden Sie ein einheitliches Zeichen, z.B. einen Unterstrich (_), um Teile eines Gruppennamens abzutrennen oder zu begrenzen. Es ist wichtig, eine Möglichkeit zur Kennzeichnung des Bestandteils eines Gruppennamens zu finden, der ihren Zweck angibt – die Beschreibung, das Suffix oder andere Bestandteile des Namens. Ich empfehle die Verwendung eines Unterstrichs (_) als Trennzeichen. Das bedeutet, dass Sie diesen nicht als Teil des Namens selbst benutzen, sondern als Trennzeichen reservieren. 1.5 Einrichten einer rollenbasierten Zugriffssteuerung 61 In den folgenden Absätzen beschreibe ich zum Beispiel ausführlich die Empfehlung zur Verwendung von ACL_Ressourcensammlung_Zugriffsebene als Namenskonvention für Befugnisgruppen zum Verwalten des Ressourcenzugriffs. Beachten Sie, dass der Unterstrich das Präfix (ACL) von dem Namen der Ressourcensammlung von der Zugriffsebene abgrenzt. Eine derartige Namenskonvention vereinfacht die Automatisierung, die Bereitstellung und die Darstellung Ihres rollenbasierten Verwaltungsmodells. Erinnern Sie sich an die Abbildungen 1.1 bis 1.3, in denen wir die Laufbahn von James Fine bei Contoso untersucht haben? Können Sie erraten, wie seine Gruppenmitgliedschaften von dieser HTML-Anwendung kategorisiert wurden? Anhand des Präfixes! Alle mit ACL_ beginnenden Gruppen wurden im Abschnitt der Ressourcenzugriffsgruppen aufgelistet. Auf den Screenshots können Sie erkennen, dass die Zugriffsebene in Klammern angegeben ist. Raten Sie, warum wir das getan haben. Wir haben den zweiten Unterstrich als Trennzeichen eingesetzt und alles Folgende in Klammern gesetzt. Durch das Trennzeichen waren die Gruppennamen leicht zu erkennen und aufzuteilen oder zu analysieren. Es bestehen noch zahlreiche weitere Gründe für den Einsatz von Namenskonventionen. Ich könnte nur über dieses Thema ein Buch schreiben. Ob es jemand kaufen würde, weiß ich nicht. Aber ich schweife ab. Wie sollte nun die Namenskonvention für Rollengruppen aussehen? Wichtig Den Rollen normaler menschlicher Benutzer sollte kein Präfix vorangestellt werden. Halt! Habe ich nicht gerade über die Bedeutung von Präfixen gesprochen? Ja, das habe ich. Aber eine Ausnahme von der Regel ist selbst eine Regel, nicht wahr? Hier folgt nun die »Ausnahmeregel«. Eine Rollengruppe, die normale menschliche Benutzer repräsentiert, sollte kein Präfix enthalten, sondern lediglich aus einem Namen bestehen: Finance Managers, Sales Team, Executives, Special Project. Dies liegt darin begründet, dass diese Rollengruppen in Ihrem Unternehmen am deutlichsten sichtbar sind. Wenn sich ein nicht technisch versierter Ressourcenbesitzer wie William, der das Sonderprojekt leitet, eine Gruppe »ansehen« will, um ihr einen bestimmten Zugriff zu ermöglich, sieht er die Rollengruppen der menschlichen Benutzer, z.B. Special Project. Daher sollten Sie diese Gruppen für Ihre Benutzer so bequem, einleuchtend und einfach wie möglich gestalten. Andere Arten von Rollengruppen sollten dagegen Präfixe aufweisen. Ich empfehle beispielsweise die Verwendung von ADM_ als Präfix für die Rollen von Administratoren, z.B. ADM_Help Desk oder ADM_Desktop Support. Hinweis Versehen Sie administrative Rollen mit einem Präfix, z.B. ADM_. Administratoren sind anders. Sie sind (in vielerlei Hinsicht) etwas Besonderes. Normalerweise melden sie sich mit wechselnden Anmeldeinformationen an. Das hoffe ich zumindest. Fügen Sie jene sekundären Anmeldeinformationen der Administratoren in eine ADM_-Gruppe ein und weisen Sie der Rolle ADM_ Befugnisse zu (z.B. die Möglichkeit, Verwaltungswerkzeuge zu installieren oder das Kennwort eines Benutzers zurückzusetzen). Computer sind ebenfalls anders. Ich empfehle Ihnen, die Rollen, die nur Computer enthalten, mit einem Präfix wie COMP_ zu versehen. 62 Lösungsgruppe 1: Rollenbasierte Verwaltung Hinweis Kennzeichnen Sie Rollen, die nur Computer enthalten, mit einem Präfix wie COMP_. Damit wären Ihre Objekte für die Computer im Konferenz- und Schulungsraum Mitglieder von COMP_Conference Room Systems beziehungsweise COMP_Training Lab Systems. Zusammenfassung: Rollengruppen Wir haben ein großes Gebiet abgehandelt. Rollengruppen bilden die Grundlage Ihres rollenbasierten Verwaltungsmodells. Sie sollten vertrauenswürdig sein und daher in Active Directory sorgfältig abgesondert und delegiert werden. Ihre Mitgliedschaft sollte möglichst von zuverlässigen Datenquellen gesteuert werden, sei es durch eine kommerzielle Anwendung zur Identitätsverwaltung oder durch selbst erstellte Skripts und Werkzeuge, mit denen die Eigenschaften zuverlässiger Datenbanken, z.B. der Personaldatenbank und des Inventarverzeichnisses, mit Active Directory-Gruppen synchronisiert werden. Bei Rollengruppen handelt es sich meistens um globale Sicherheitsgruppen, die Benutzer, Computer und andere Rollengruppen enthalten. Ihre Namenskonventionen sollten dabei strikt eingehalten werden und durch Trennzeichen separierte Bestandteile vorsehen. Namen von Rollengruppen für normale menschliche Benutzer sollten so einfach, unkompliziert und erkennbar sein wie möglich. Rollengruppen in unserem Szenario zur rollenbasierten Zugriffssteuerung Für unser Szenario zur rollenbasierten Zugriffssteuerung brauchen wir mehrere Rollengruppen: Marketing, Marketing Managers, Sales, Sales Managers, Manufacturing, Manufacturing Managers, Research and Development, Research and Development Managers, Finance, Consultants und Auditors. Wenn Sie diese Lösung in einer Testumgebung einsetzen, sollten Sie eine Organisationseinheit mit dem Namen Role Groups in einer Organisationseinheit namens Groups erstellen und eine globale Sicherheitsgruppe für die einzelnen zuvor erwähnten Rollen anlegen. Die Geschäftslogik wird durch eine Verschachtelung von Rollengruppen erzielt. Verschachteln Sie die einzelnen Manager-Gruppen in der Gruppe der jeweiligen Abteilung. Ernennen Sie zum Beispiel Marketing Managers zum Mitglied von Marketing. Befugnisverwaltungsgruppen Befugnisverwaltungsgruppen stehen für eine bestimmte Verwaltungsaufgabe. Bei der rollenbasierten Zugriffssteuerung stellen sie den Zugriff auf einer bestimmten Ebene (z.B. Lesen, Bearbeiten, Vollzugriff) für eine Sammlung von Ressourcen (eine oder mehrere Dateien in einer oder mehreren Freigaben auf einem oder mehreren Servern) dar. Namenskonventionen für Gruppen Hinweis Fügen Sie Ressourcenzugriffsgruppen einen Indikator als Präfix hinzu, z.B. ACL_ (für »Access Control List«, also Zugriffssteuerungsliste). Namenskonventionen sind von entscheidender Bedeutung (kommt Ihnen das bekannt vor?) für Befugnisverwaltungsgruppen. Ich empfehle die Verwendung des Präfixes ACL_ für die Befugnisverwaltungsgruppen zur rollenbasierten Zugriffssteuerung, obwohl Sie auch ein anderes Präfix wie RES_ (für »Ressource«) oder PERM_ (für »Permission« verwenden können. Einer meiner Gründe für die Bevorzugung 1.5 Einrichten einer rollenbasierten Zugriffssteuerung 63 von ACL_ besteht darin, dass die Verwaltung von Zugriffssteuerungslisten zu den häufigsten täglichen Aufgaben von IT-Spezialisten gehört, sodass es hilfreich ist, wenn in einer von A bis Z sortierten Liste alle entsprechenden Gruppen oben stehen. Wichtig Der Gruppenname sollte einen eindeutigen Bezeichner für die Ressourcensammlung enthalten. Der mittlere Teil des Gruppennamens sollte ein eindeutiger Bezeichner für die Ressourcensammlung sein. In unserem Szenario ist das einfach: Budget. Aber die Vielschichtigkeit Ihrer Geschäftsanforderungen macht möglicherweise eine differenziertere Konvention für diesen Teil des Gruppennamens erforderlich. Wichtig Fügen Sie Ressourcenzugriffsgruppen ein Suffix hinzu, das die Zugriffsebene angibt. In unserem Szenario haben wir Gruppen wie ACL_Budget_Read und ACL_Budget_Edit. Das Trennzeichen, gefolgt von der Zugriffsebene, hilft dabei, die Darstellung unseres rollenbasierten Verwaltungsmodells zu verbessern. In den Abbildungen 1.1 bis 1.3 wird ein Gruppenname unter Verwendung eines Trennzeichens aufgeteilt. Das Präfix ACL_ wird zur Kategorisierung der Gruppe verwendet. Das Suffix für die Zugriffsebene wird in Klammern dem Namen der Ressourcensammlung nachgestellt. Wichtig Fügen Sie beim Erstellen einer Befugnisverwaltungsgruppe nähere Angaben darüber hinzu, was die Gruppe verwaltet. Sie sollten unbedingt die Attribute Description, Notes und Manager mit Daten füllen. Ein Gruppenname sollte möglichst langfristig dazu beitragen, die Funktion der Gruppe verständlich zu machen. ACL_Budget_Read ist relativ verständlich. Aber das ist noch nicht genug. Verwenden Sie weitere Eigenschaften des Gruppenobjekts, z.B. das Attribut Description. Bei einer meiner bevorzugten Umsetzungen der rollenbasierten Zugriffssteuerung wurde das Attribut Description verwendet, um den tatsächlichen Pfad zu einem oder mehreren von der Gruppe verwalteten freigegebenen Ordnern anzugeben. Da die Beschreibung im Snap-In Active Directory-Benutzer und -Computer als Spalte dargestellt ist, ist sie gut sichtbar und hilfreich. Das Feld Notes ist ebenfalls sehr hilfreich. Zwar ist es nicht als Spalte im Snap-In Active DirectoryBenutzer und -Computer zu sehen, doch wird es im Dialogfeld Eigenschaften der Gruppe angezeigt und kann mithilfe eines Skripts oder benutzerdefinierten Werkzeugs betrachtet werden. (Tipp: Es handelt sich um das Attribut info.) Das Attribut ManagedBy ist ebenfalls hilfreich. Verknüpfen Sie es mit dem für Fragen zur Gruppe und Gruppenmitgliedschaft zuständigen Benutzer oder der entsprechenden Gruppe. Wenn Sie das Attribut ManagedBy einer Gruppe auf eine andere Gruppe setzen wollen, müssen Sie die Eigenschaften der ersten Gruppe öffnen, zur Registerkarte Verwaltet von wechseln und anschließend auf Ändern und dann (jetzt kommt der Trick) auf Objekttypen klicken, das Kontrollkästchen Gruppen aktivieren und dann auf OK klicken. Andernfalls erscheint bei der Eingabe eines Gruppennamens eine Fehlermeldung, da in diesem Dialogfeld standardmäßig keine Gruppen in die Suche einbezogen werden. Das Attribut ManagedBy kann außerdem zum Delegieren der eigentlichen Berechtigungen für die Verwaltung von Gruppenmitgliedschaften verwendet werden. Aktivieren Sie in den Eigenschaften der Gruppe auf der Registerkarte Verwaltet von das Kontrollkästchen mit der Bezeichnung Vorgesetzter kann Mitgliedsliste ändern. Da sich der Name von Verwaltet von ändert, wird auch die Zugriffssteuerungsliste geändert. 64 Lösungsgruppe 1: Rollenbasierte Verwaltung Wichtig Bei Ressourcenzugriffsgruppen sollte es sich um lokale Domänensicherheitsgruppen handeln. Ressourcenzugriffsgruppen sollten als lokale Domänensicherheitsgruppen erstellt werden. Mit der lokalen Domäne als Gültigkeitsbereich können diese Gruppen langfristig Flexibilität bieten. Vielleicht befinden sich die einzigen Benutzer, die heute Zugang zu den Budgetressourcen benötigen, in unserer Domäne. Vielleicht findet aber im nächsten Jahr eine größere Buchprüfung statt, sodass wir eine Vertrauensstellung zur Domäne des Prüfers herstellen müssen. Dessen Rollen werden in unsere Befugnisverwaltungsgruppen eingefügt. Außerdem können lokale Domänengruppen Objekte anderer Domänen enthalten. Lokale Domänensicherheitsgruppen weisen zwei Nachteile auf. Der erste besteht darin, dass sich die Verwaltung nur auf eine einzige Domäne erstrecken kann. Unsere Gruppe ACL_Budget_Read kann als lokale Domänensicherheitsgruppe nicht die Berechtigungen für die Budgetressourcen in einer vertrauenden Domäne erhalten, auch nicht innerhalb derselben Gesamtstruktur. In solchen Situationen verwenden Sie eine universelle Sicherheitsgruppe, die die Verwaltung über mehrere Domänen einer Gesamtstruktur hinweg durchführen kann, oder eine globale Gruppe in dem sehr seltenen Fall, dass Sie die Verwaltung (z.B. das direkte Einfügen der Gruppe in eine Zugriffssteuerungsliste) auf eine vertrauende Domäne ausdehnen müssen. Verwenden Sie lokale Domänengruppen für die Befugnisgruppen zum Ressourcenzugriff, sofern Sie nicht gezwungen sind, anders vorzugehen. Der zweite Nachteil von lokalen Domänengruppen liegt in ihren Auswirkungen auf die Tokengröße des Benutzers. Dieses Problem wird in Lösung 1.7 ausführlich behandelt. Falls Sie Probleme mit der Tokengröße feststellen, sollten Sie die Befugnisverwaltungsgruppen für den Ressourcenzugriff als globale Sicherheitsgruppen einrichten. Sie sind dann zwar nicht in der Lage, Rollen oder Benutzer aus anderen Domänen einzufügen, aber aller Wahrscheinlichkeit nach befinden Sie sich sowieso in einer Umgebung mit einer einzigen Domäne. Falls Ihr Unternehmen sehr groß ist, wechseln Sie eventuell zu anderen Lösungen zur Identitätsverwaltung für die rollenbasierte Zugriffssteuerung. Wichtig Befugnisverwaltungsgruppen sollten Benutzer- oder Computerrollen und als Ausnahmen einzelne Benutzer oder Computer enthalten. Die Befugnisverwaltungsgruppen sollten hauptsächlich Rollen enthalten. Das ist rollenbasierte Verwaltung, nicht wahr? Aber es gibt immer Ausnahmen. In der letzten Lösung haben wir vorgeschlagen, dem leitenden Geschäftsführer Zugang zu allen Unterlagen des Finanzwesens zu gewähren, um seiner Aufgabe gerecht zu werden, die Finanzen zu überwachen und zur Einwilligung und Überprüfung abzuzeichnen. Obwohl er möglicherweise nicht zu einer Rolle gehört, der die Befugnis zum Lesen einer bestimmten Ressourcensammlung erteilt wurde, fügen wir sein Benutzerkonto direkt in die Befugnisverwaltungsgruppe ein. Einzelne Benutzer oder Computer aufgrund der Geschäftsanforderungen zu Befugnisverwaltungsgruppen hinzuzufügen, ist völlig akzeptabel. Wenn Sie eine Befugnisverwaltungsgruppe mit sehr vielen einzelnen Benutzern oder Computern finden, so deutet dies, wie in den letzten Lösungen erwähnt, wahrscheinlich darauf hin, dass diese Benutzer oder Computer eine geschäftliche Eigenschaft teilen, die als Rolle definiert werden sollte. Wichtig Sammeln Sie Befugnisverwaltungsgruppen für den Ressourcenzugriff in einer oder mehreren dedizierten Organisationseinheiten. 1.5 Einrichten einer rollenbasierten Zugriffssteuerung 65 Trennen Sie die Befugnisverwaltungsgruppen für den Ressourcenzugriff von anderen Gruppenarten. Für den Ressourcenzugriff gibt es wahrscheinlich viele Verwaltungsgruppen, wobei Sie die Verwaltung der Gruppenmitgliedschaften vermutlich anderen in Ihrer Organisation überlassen, entweder dem Support oder den tatsächlichen Besitzern der Ressourcen. Das Vorhandensein einer einzigen Organisationseinheit oder eines Zweiges einer Organisationseinheit mit Ressourcenzugriffsgruppen vereinfacht das effektive Delegieren. Zusammenfassung: Befugnisverwaltungsgruppen Bei den Befugnisverwaltungsgruppen für den Ressourcenzugriff sollte es sich um lokale Domänensicherheitsgruppen in einer oder mehreren dedizierten Organisationseinheiten handeln, um das Delegieren von Gruppenmitgliedschaften an Supportteams oder die Besitzer der Ressourcen zu vereinfachen. Sie sollten vorwiegend Rollengruppen (Benutzer- und Computerrollen) enthalten, umfassen aber als Ausnahme von der Regel auch oft einzelne Benutzer- oder Computerkonten, die den Zugang benötigen, obwohl sie nicht richtig in eine der Rollen passen, die diesen Zugang bereits besitzen. Namen sollten ein Präfix wie ACL_ enthalten, das den Zweck der Gruppe für die rollenbasierte Zugriffssteuerung angibt. Ferner sollten sie einen eindeutigen Bezeichner für die Ressourcensammlung enthalten und mit einem Suffix enden, das die Zugriffsebene angibt. Befugnisverwaltungsgruppen in unserem Szenario zur rollenbasierten Zugriffssteuerung Für unser Szenario brauchen wir lediglich zwei Befugnisverwaltungsgruppen: ACL_Budget_Read und ACL_Budget_Edit. Wenn Sie diese Lösung in einer Testumgebung einsetzen, sollten Sie eine Organisationseinheit mit dem Namen Resource Access in der Organisationseinheit Groups erstellen. Legen Sie für jede dieser Befugnisse eine lokale Domänensicherheitsgruppe an. Darstellen von Geschäftsanforderungen Geschäftsanforderungen werden durch die Verschachtelung von Rollengruppen und gelegentlich einzelnen Benutzern und Computern in Befugnisverwaltungsgruppen dargestellt. Ganz einfach! Fügen Sie in unserem Szenario jede der vier Abteilungsrollengruppen (Marketing, Sales usw.) in die Gruppe ACL_Budget_Read ein. Fügen Sie außerdem Auditors sowie ein Benutzerkonto für den leitenden Geschäftsführer hinzu. Nehmen Sie die vier Managergruppen in die Gruppe ACL_Budget_Edit auf. Fügen Sie Consultants ebenfalls hinzu. Der Schlüssel zur rollenbasierten Zugriffssteuerung liegt darin, diese Verfahrensschicht hundertprozentig mit den Geschäftsanforderungen abzustimmen. Dabei sollten eine oder mehrere Rollen vorhanden sein, die eine Geschäftsanforderung gemeinsam haben, wobei sich diese Anforderung auf eine gemeinsame Befugnis für diese Rollen bezieht. Nachdem Sie die Rollen in den Befugnisverwaltungsgruppen verschachtelt haben, haben Sie es geschafft! Umsetzen von Befugnissen Die Art und Weise, in der Sie eine Befugnis für einen Verwaltungsbereich einrichten, unterscheidet sich je nachdem, welche Befugnis Sie genau verwalten. Wenn Sie den Lesezugriff auf das Budget gewähren, gehen Sie anders vor als bei der Bereitstellung der Budgetanwendung für die Benutzer. Bei der rollenbasierten Zugriffssteuerung ist es sehr einfach. Fügen Sie die Befugnisverwaltungsgruppen in die Zugriffssteuerungslisten der Ordner in der Ressourcensammlung ein. In den Lösungen der Lösungsgruppe 2, »Verwalten von Dateien, Ordnern und Freigaben«, ist detailliert beschrieben, wie Sie 66 Lösungsgruppe 1: Rollenbasierte Verwaltung Befugnisse wie Lesen und Bearbeiten einrichten. Insbesondere bei Bearbeiten ist das nirgends auch nur annähernd so einfach, wie die meisten Organisationen annehmen. Wenn Sie daran denken, einfach die Berechtigung zu ändern, setzen Sie sich selbst der Gefahr einer Dienstverweigerung aus. Legen Sie daher dieses Buch nicht eher beiseite, bis Sie diese Lösungsgruppe durchgelesen haben. Automatisieren und Bereitstellen Wenn ich mit Kunden über die rollenbasierte Zugriffssteuerung spreche, kommen wir normalerweise an einen Punkt, an dem sie sich nicht länger zurückhalten können und jemand fragt: »Ist das nicht eine Menge Arbeit?« Die Antwort lautet: »Ja, aber nicht dort, wo Sie denken.« Die Erstellung von Gruppen, das Füllen aller Eigenschaften mit Daten, die Durchsetzung von Namenskonventionen und das Festlegen von Zugriffssteuerungslisten sind Aufgaben, die leicht bereitgestellt und automatisiert werden können, nachdem Sie die rollenbasierte Zugriffssteuerung eingeführt haben. Der schwierige Teil besteht darin, Ihr Geschäft zu analysieren, um die Rollen festzulegen, Ihr Unternehmen zu analysieren, um herauszufinden, welche Befugnisse Sie verwalten müssen, und zu verstehen, was Sie zum Aufbau brauchen. Aber der Erfolg ist wirklich ganz enorm, wie Sie beim Erstellen unserer Lösungen auf dieser Grundlage der rollenbasierten Zugriffssteuerung und Verwaltung sehen werden. Stellen Sie sich vor, dass die rollenbasierte Zugriffssteuerung verfügbar ist und Sie Ordner für das Budget des nächsten Jahres auf vier Servern anlegen müssen. Dazu rufen Sie ein Werkzeug auf, geben einen Namen für den Ordner ein, wählen die vier Server aus, auf denen Sie die Ordner bereitstellen wollen, und geben an, dass Sie die Befugnisse Bearbeiten und Lesen einrichten müssen. Das Werkzeug legt dann den Ordner und die Freigabe auf den einzelnen Servern an, erstellt die beiden Befugnisverwaltungsgruppen (in Übereinstimmung mit Ihrer Namenskonvention) und weist die acht (2 × 4) zur Umsetzung der Befugnisse erforderlichen Berechtigungsgruppen zu. Dann brauchen Sie nur noch eine Hand voll Rollen, die die einzelnen Befugnisse benötigen, in der entsprechenden Gruppe zu verschachteln. Voilà! Ein solches Werkzeug wird am Ende der Lösungsgruppe 2 Ihnen gehören. Zusammenfassung Diese Lösung stellt die Anforderungen für die Einrichtung von Rollengruppen, Befugnisverwaltungsgruppen und Geschäftsanforderungen anhand eines Beispielszenarios mit rollenbasierter Zugriffssteuerung vor. Die in dieser Lösung beschriebenen Konzepte, Anleitungen und Aufgaben sind auch in anderen Szenarien mit rollenbasierter Verwaltung nützlich. Diese Lösung dient als Grundlage für viele leistungsfähige Lösungen in dieser und anderen Lösungsgruppen. 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung Die Lösung im Überblick Typ Anleitung und Werkzeuge Funktionen und Werkzeuge Active Directory-Gruppenverwaltung, HTML-Anwendungen, VBScript Zusammenfassung Einsatz Ihres rollenbasierten Verwaltungsmodells zur Erstellung von Berichten und zur Überprüfung der Integrität des Modells 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung 67 Vorteile Einfache Beantwortung der Fragen: »Worauf darf James zugreifen?« und: »Wer kann das Budget bearbeiten?« Bietet die Möglichkeit zu überwachen, ob Ihre Organisation tatsächlich den Richtlinien Ihrer rollenbasierten Verwaltung folgt. Vorschau Abbildung 1.14 zeigt zwei Werkzeuge, My Memberships und Resource Access Report, die die oben genannten Fragen beantworten. Abbildung 1.14 Die Werkzeuge My Memberships und Resource Access Report Einführung Diese Lösung stellt mehrere wichtige Befugnisse der rollenbasierten Verwaltung für das Berichtswesen, die Überwachung und die Einhaltung der Regeln bereit. In Abbildung 1.14 erkennen Sie wahrscheinlich, dass die Art der Informationen, die Sie ganz einfach durch die Verwendung der rollenbasierten Verwaltung sammeln können, genau der Art von Informationen entspricht, die wir IT-Spezialisten tagtäglich bereitstellen müssen: Die Analyse eines bestimmten Benutzers: Welche Rollen hat er, welche Anwendungen sollte er haben, auf welche Ressourcen darf er zugreifen, welche Anmeldeskripts werden ausgeführt (und damit auch: welche Laufwerke sind zugeordnet?), welche Gruppenrichtlinien gelten und zu welchen E-Mail-Verteilerlisten gehört er? Die Analyse einer bestimmten Ressource: Wer kann in welchem Maße darauf zugreifen? Wenn Sie diese Lösungsgruppe der Reihe nach durchgelesen haben, was ich Ihnen empfehle, sind Sie bereits vorbereitet und können wahrscheinlich vorhersagen, wie diese Berichte erstellt und direkt in Active Directory-Benutzer und -Computer oder andere administrative Snap-Ins integriert werden. Sie führen einfach die Auflistung der Gruppenmitgliedschaften aus. Außerdem können sie als Aufgaben oder benutzerdefinierte Kontextmenübefehle in Ihre Verwaltungswerkzeuge eingefügt werden. 68 Lösungsgruppe 1: Rollenbasierte Verwaltung Achten Sie beim Lesen dieser Lösung darauf, auf welche Weise die in der vorigen Lösung erörterten Regeln und die Disziplin uns ermöglichen, mit den in den Lösungen 1.1 bis 1.3 erworbenen Kenntnissen Werkzeuge zu erstellen, um viele der in Lösung 1.4 erläuterten Vorteile der rollenbasierten Verwaltung zu nutzen. My Memberships Das in den Abbildungen 1.3 und 1.4 gezeigte Werkzeug My Memberships analysiert einen Benutzer und zeigt an, wie er verwaltet wird. Wenn ich dieses Werkzeug Firmenkunden zeige, sind sie hellauf begeistert. Was verleiht uns die Fähigkeit, diese Informationen zu generieren? Disziplinierte Gruppenbenennungsstandards. Um es kurz zu machen: Wie in Lösung 1.2 listet das Werkzeug einfach die Gruppenmitgliedschaften eines Benutzers auf und wendet dann eine umgekehrte Logik auf die Gruppennamen an. Beginnt ein Gruppenname beispielsweise mit ACL_, weiß der Code, dass es sich um eine Ressourcenzugriffsgruppe handelt, sodass sie unter dieser Kategorie angezeigt wird. Damit der Bericht noch besser zu lesen ist, zeigt das Werkzeug anstelle des Gruppennamens das Description-Attribut der Gruppe an. Dies geschieht natürlich, weil wir dazu angehalten wurden, für jede von uns erstellte Gruppe eine Beschreibung einzugeben, oder über ein Bereitstellungswerkzeug wie das in Lösungsgruppe 2 vorgestellte verfügen. Verwenden von My Memberships My Memberships befindet sich im Ordner Scripts auf dem Begleitmedium und trägt den Namen My Memberships.hta. Es sind mehrere Möglichkeiten vorgesehen, die Anwendung zu starten. Erstens kann Sie durch einen Doppelklick geöffnet werden, wobei sie die Mitgliedschaften des gerade angemeldeten Benutzers auswertet. Zweitens kann sie über eine Befehlszeile, einer Aufgabe des MMC-Aufgabenblocks oder einen benutzerdefinierten Kontextmenübefehl gestartet werden, wobei sie Argumente mit der Angabe des auszuwertenden Benutzers, Computers oder der Gruppe erhält. Nachdem My Memberships geöffnet wurde, zeigt die Anwendung Informationen über den ausgewählten Benutzer, den Computer oder die Gruppe an. Sie können dann die Zusatzfelder (User, Computer oder Group) ändern, wobei My Memberships dann eine kumulative Analyse der Mitgliedschaften durchführt. Wenn James Fine beispielsweise an Desktop 432 angemeldet ist, wie in Abbildung 1.3 und 1.14 dargestellt, zeigt My Memberships die gemeinsamen Mitgliedschaften des Benutzer- und Computerobjekts an, sodass Sie einen Einblick erhalten, was für diesen Benutzer auf diesem Computer gilt. Sie können auch einen anderen Computernamen eingeben, z.B. den Namen eines Rechners in einem Konferenzraum, wobei das Werkzeug anzeigt, was James zu sehen bekäme, wenn er sich an jenem Computer anmelden würde. Sie können auch die Mitgliedschaften einer Gruppe auswerten, um herauszufinden, in welchen Gruppen die ausgewählte Gruppe direkt oder indirekt verschachtelt ist. Wenn Sie einen Benutzer oder Computer auswerten und den Namen einer Gruppe eingeben, in der er bereits vorhanden ist, erhalten Sie keine neuen Informationen, da diese Gruppe schon im Bericht enthalten ist. Sie können jedoch »Waswäre-wenn«-Analysen durchführen, indem Sie den Namen einer Gruppe hinzufügen, zu der der Benutzer oder Computer noch nicht gehört, und sich anschließend die Auswirkungen ansehen. Da es so viele verschiedene Möglichkeiten zum Aufrufen des Werkzeugs gibt, können Sie es leicht in das Snap-In Active Directory-Benutzer und -Computer integrieren, was in Lösung 1.3 ausführlich beschrieben wird. Wenn Sie zum Starten von My Memberships für einen Benutzer eine Aufgabe verwenden, 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung 69 sollten Sie sicherstellen, dass Sie den Prä-Windows 2000-Anmeldenamen als Parameter verwenden, der $COL<9> lautet. Benutzen Sie diesen Namen auch für eine Gruppe. Für Computer verwenden Sie den Namen $COL<0>. Denken Sie daran, die Spalte auch in die Ansicht des Detailfensters einzufügen, indem Sie den Befehl Spalten hinzufügen/entfernen aus dem Menü Ansicht wählen. Mithilfe der ebenfalls in Lösung 1.3 beschriebenen Schritte können Sie My Memberships auch als benutzerdefinierten Kontextmenübefehl aufrufen. Wie bei anderen Werkzeugen in diesem Abschnitt werden wir im nächsten Abschnitt einen kurzen Blick auf den Code werfen. Wenn Sie kein erfahrener Skriptprogrammierer sind, sollten Sie den Abschnitt überfliegen, um zu lernen, wie Sie My Memberships an Ihre Namenskonventionen anpassen können. Grundlagen und Anpassung von My Memberships My Memberships ist das komplexeste Werkzeug, das wir in dieser Lösungsgruppe vorgestellt haben, was aber nicht bedeutet, dass Sie es nicht verstehen und anpassen können. Besonders wenn Sie unsere Empfehlungen befolgt haben und detaillierte, durchsetzbare Standards für Gruppennamen eingeführt haben, werden Sie die Anpassung von My Memberships als recht einfach empfinden. Wie bereits erwähnt, gibt es mehrere Möglichkeiten, um My Memberships mit mehreren verschiedenen Arten von Argumenten zu starten. Wird diese HTML-Anwendung erstmals geöffnet, führt sie automatisch Window_Onload aus, wobei sie sich (mithilfe der Subroutine CenterMe) selbst auf dem Bildschirm zentriert, und erkennt (mithilfe der Subroutine Initialize) den Namen des lokalen Computers und des derzeit angemeldeten Benutzers. Der definierte Name der Domäne wird von dem des gerade angemeldeten Benutzers abgeleitet. Der HTML-Abschnitt der Anwendung weist Textfelder als Steuerelemente für den Benutzer-, den Computer- und den Gruppennamen auf. Window_Onload ruft die Subroutine Prepopulate auf, die die Befehlszeile überprüft, mit der die HTML-Anwendung gestartet wurde, um (mithilfe unserer Funktion HTA_Arguments) das Argument zu ermitteln. Wurde kein Argument übergeben, werden die Namen des gerade angemeldeten Benutzers und Computers in die Textfelder eingetragen. Wenn ein Argument übergeben wurde, wird es dazu verwendet, das ausgewählte Objekt in Active Directory zu suchen. Die Klasse des Objekts bestimmt, welche Textfelder (Benutzer, Computer oder Gruppe) des Formulars für die Anzeige des Objektnamens verwendet werden. My Memberships führt dann die Subroutine MainRoutine aus, die die Auflistung der Gruppenmitgliedschaften des im Formular eingetragenen Benutzers, des Computers oder der Gruppe vornimmt. MainRoutine wird ebenfalls aufgerufen, wenn Sie im Formular auf die Schaltfläche Show klicken oder wenn Sie eines der Textfelder aktualisieren, indem sie neue Informationen eingeben und (Tab) drücken, um ins nächste Feld zu springen. Bei dem zum Auflisten der Gruppenmitgliedschaften verwendeten Code handelt es sich um die in Lösung 1.2 erstellte Routine ADObject_MemberOf. Bei der Auswertung des Benutzers, des Computers oder der Gruppe wird die kumulative Mitgliedschaft in dem Dictionary-Objekt oMemberOfList aufgezeichnet. Nachdem alle Mitgliedschaften aufgelistet wurden, wird die Liste an das Array aMemberOf übertragen und an eine andere Subroutine, ReportGroups, weitergeleitet. Die Subroutine ReportGroups ist das »Arbeitstier« dieses Werkzeugs und der Teil, den Sie an Ihr Unternehmen anpassen müssen. Sie erstellt Stringvariablen für jeden Gruppentyp (z.B. Resource Access, 70 Lösungsgruppe 1: Rollenbasierte Verwaltung Applications, Distribution Lists), analysiert die einzelnen Gruppen im Mitgliedschaftsarray (aMemberOf), ermittelt den Gruppentyp und fügt sie in den String für den entsprechenden Gruppentyp ein. Dies wird anhand eines Beispiels leichter verständlich. Nehmen wir an, dass ACL_Budget_Read unser Benutzer ist. Diese Mitgliedschaft wird durch den Aufruf von ADObject_MemberOf durch MainRoutine aufgelistet und stellt ein Element des Arrays aMemberOf dar, das an die Subroutine ReportGroups übergeben wird. ReportGroups deklariert eine Stringvariable, sACL, zum Speichern aller Gruppenmitgliedschaften für den Ressourcenzugriff. Die For Each-Anweisung führt eine Schleife durch die einzelnen Gruppen in aMemberOf durch und speichert die aktuelle Gruppe in sMemberOf: For Each sMemberOf In aMemberOf Der Code sucht diese Gruppe in Active Directory und ruft ihr Description-Attribut ab. sGroupADsPath = ADObject_Find_UCG(sMemberOf, sDomainDN) Set oGroup = GetObject(sGroupADsPath) sDescription = oGroup.Get("Description") Dann untersucht der Code das Vorhandensein eines Präfixes, indem er ermittelt, ob der Gruppenname ein Trennzeichen (Unterstrich) enthält, durch das ein Gruppentyp angegeben wird, wie in Lösung 1.5 beschrieben wurde. An dieser Stelle zahlen sich Ihre Benennungsstandards und die Disziplin aus. Falls wir einen Unterstrich finden, wissen wir, dass es sich um einen bestimmten Gruppentyp handelt. aGroupName = Split(sMemberOf,"_") If UBound(aGroupName) > 0 Then Die Funktion Split erstellt ein Array (aGroupName) von Elementen, indem sie an jedem Unterstrich den Gruppennamen (sMemberOf) unterteilt. Sind keine Unterstriche vorhanden, gibt die Funktion UBound den Wert -1 zurück. Die Else-Anweisung weiter unten im Code geht davon aus, dass es sich bei der Gruppe um eine Rollengruppe handelt. Ist ein Präfix vorhanden, haben wir die Bestandteile des Gruppennamens im Array aGroupName. Das erste Element, aGroupName(0), ist das Präfix. Wir sehen es uns an, um den Gruppentyp zu bestimmen. In unserem Beispiel ACL_Budget_Read wird der folgende Code ausgeführt: sMemberOfPrefix = aGroupName(0) Select Case UCASE(sMemberOfPrefix) Case "ACL" ' ACL-Gruppen (Ressourcenzugriff) ' ACL_RESSOURCENSAMMLUNG_ZUGRIFFSEBENE ' sACL = sACL & aGroupName(1) & " (" & aGroupName(2) & ")" & sDelimiter sACL = sACL & sDescription & sDelimiter Wir nehmen nun die Aufteilung anhand unseres Gruppenbenennungsstandards vor. Im Falle einer Ressourcenzugriffsgruppe wissen wir, dass die zweite Komponente des Gruppennamens, aGroupName(1) oder in unserem Beispiel Budget, der Name der Ressource ist. Außerdem wissen wir, dass es sich bei der dritten Komponente, aGroupName(2) oder in unserem Beispiel Read, um die Zugriffsebene handelt. Daher fügen wir diese Informationen in sACL ein, wobei es sich, wie Sie sich vielleicht erinnern, um den dedizierten String zum Sammeln unserer Ressourcenzugriffsgruppen handelt. Noch besser sieht 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung 71 es aus, wenn wir die Ressource, aGroupName(1), anhängen und die Zugriffsebene, aGroupName(2), in Klammern einschließen. Außerdem fügen wir ein Trennzeichen hinzu, standardmäßig das Pipe-Symbol (|), der vorher im Code definiert wird. Das wird in Kürze von Bedeutung sein. Beim Durchlaufen der For Each-Schleife werden alle Gruppen im Mitgliedschaftsarray aMemberOf in derselben Weise verarbeitet. Bei mehreren Gruppentypen wird das Beschreibungsfeld der Gruppe anstelle ihres Namens angezeigt, da es ausführlicher und benutzerfreundlich ist. Unser Benennungsstandard für Gruppen, die für einen Benutzer- oder Computerstandort stehen, verlangt das Präfix LOC_, gefolgt von dem aus drei Buchstaben bestehenden Flughafencode für den jeweiligen Standort, z.B. DEN für Denver. Anstelle von DEN oder LOC_DEN wird im Bericht von My Memberships das Beschreibungsfeld der Gruppe, »Denver, Colorado«, angezeigt. Um My Memberships an Ihre Organisation anzupassen, brauchen Sie lediglich einen Abschnitt in der Select Case-Struktur, der den Gruppentyp anhand seines Präfixes (oder eines anderen Elements in Ihrem Benennungsstandard) kennzeichnet und diesen Gruppentyp in beliebiger Formatierung in den String einfügt, der diesen Typ aufzeichnet. Nach beendetem Durchlauf der For Each-Schleife ist die aufgelistete Gruppenmitgliedschaft (aMemberOf) in die Strings für die einzelnen Gruppentypen unterteilt. Denken Sie daran, dass jeder String durch das Hinzufügen von Daten, z.B. des Gruppennamens, gefolgt von einem Trennzeichen (dem Pipe-Symbol) gebildet wurde. Die nächsten Codezeilen entfernen das Pipe-Symbol hinter dem letzten Eintrag der einzelnen Strings und verwenden dann dieses Trennzeichen, um den String in ein Array zu unterteilen, das dann sortiert werden kann. Das sortierte Array wird anschließend wieder zu dem String zusammengebaut, und zwar ebenfalls mithilfe des Trennzeichens. Daraus ergibt sich ein String mit sortierten Gruppen. Zum Schluss werden die einzelnen Strings in einen bestimmten Bereich (<div>) des HTML-Codes der Seite eingefügt. Das Trennzeichen wird durch Zeilenumbrüche (<br/>) ersetzt. Bei der Anpassung des Werkzeugs müssen Sie sicherstellen, dass die einzelnen angezeigten Gruppentypen im HTML-Code durch ein <div>-Tag gekennzeichnet und am Ende der Subroutine ReportGroups eingefügt werden. Voilà! Da dieses Werkzeug Ihre Benennungsstandards widerspiegeln muss, müssen Sie es wahrscheinlich ein wenig anpassen. Ihre Änderungen dürften sich auf die Subroutine ReportGroups und die <div>-Tags im HTML-Code beschränken. Access Report Das Werkzeug Access Report beantwortet die wichtige Frage: »Wer hat Zugang zu diesem Ordner?« Leider sind in Windows keine Werkzeuge integriert, die einen so entscheidenden Bericht erstellen, aber mit der rollenbasierten Verwaltung sind wir glücklicherweise dazu in der Lage. Die HTML-Anwendung Access Report ist eigentlich im Kern recht einfach. Sie listet eine Gruppenmitgliedschaft, z.B. ACL_Budget_Read, auf und zeigt alle direkten und indirekten Mitglieder an. In den Lösungen 1.1 und 1.2 wurden Skripts zur Auflistung des MemberOf-Attributs eines Benutzers oder Computers bereitgestellt. Dieses Werkzeug verwendet eine Subroutine, Group_Members_Enum, die beinahe identisch mit unserer Subroutine ADObject_MemberOf ist, aber die Eigenschaft Member anstelle von MemberOf überprüft. 72 Lösungsgruppe 1: Rollenbasierte Verwaltung Komplexer ist der HTML-Abschnitt von Access Report. Es gibt das Textfeld Group Name, in das Sie ACL_Budget_Read eingeben können. Um das Ganze überschaubarer zu gestalten, füllen wir zwei Dropdownlisten dynamisch mit Daten, indem wir uns die Gruppennamen mit unserem Präfix für den Ressourcenzugriff (ACL_) ansehen und die Ressource (Budget) und die Zugriffsebene (Read) unterteilen. Anhand Ihrer Auswahl aus diesen beiden Dropdownlisten erstellen wir das Feld Group Name neu. Meistens müssen Sie an diesem Werkzeug geringfügige Anpassungen vornehmen, damit es in Ihrem Modell der rollenbasierten Verwaltung funktioniert. Verwenden von Access Report Members_AccessReport.hta befindet sich im Ordner Scripts auf dem Begleitmedium. Die HTMLAnwendung kann mit einem Doppelklick geöffnet werden, wobei Sie die Ressource und die Zugriffsebene auswählen (oder den Gruppennamen direkt eingeben) und anschließend auf Show klicken müssen. Darüber hinaus können Sie das Werkzeug über eine Befehlszeile, eine Aufgabe eines MMC-Aufgabenblocks oder einen benutzerdefinierten Kontextmenübefehl starten. Folgen Sie bei der Verwendung eines Aufgabenblock-Aufgabe den Anweisungen in Lösung 1.3. Erstellen Sie eine Shellaufgabe für Gruppenobjekte und verwenden Sie den Prä-Windows 2000-Anmeldenamen als Parameter, der $COL<9> lautet. Die zum Erstellen eines benutzerdefinierten Kontextmenübefehls erforderlichen Schritte sind in Lösung 1.3 ausführlich beschrieben. Grundlagen und Anpassung von Access Report Beim Öffnen führt das Werkzeug Windows_Onload aus, zentriert das Fenster (mithilfe der Subroutine CenterMe) und erkennt den gerade angemeldeten Benutzer und Computer (mithilfe der Subroutine Initialize). Dann wird die Subroutine Sub Prepopulate aufgerufen, die erkennt, ob ein Argument übergeben wurde, und dieses gegebenenfalls in das Feld Group Name einfügt. Um die Dropdownlisten mit Daten zu füllen, sucht die HTML-Anwendung in Active Directory nach allen Gruppenobjekten mit einem Präfix, das auf die Verwendung der Gruppe zur Verwaltung des Ressourcenzugriffs hinweist. Das Werkzeug geht davon aus, dass Sie einen Benennungsstandard wie ACL_Budget_Read verwenden, bei dem ein konfigurierbares Präfix, z.B. ACL_, gefolgt von dem Namen der Ressource, einem zweiten Unterstrich und der Zugriffsebene verwendet wird. Wenn Sie einen anderen Benennungsstandard nutzen, müssen Sie mit dem Werkzeug so arbeiten, dass es die Dropdownlisten in einer für Ihr Unternehmen geeigneten Weise mit Daten füllt. In dem Konfigurationsblock im oberen Bereich des Skripts wird die Variable sGroupsOUDN für die Suche auf den definierten Namen gesetzt. Sie müssen sGroupsOUDN in Übereinstimmung mit Ihrer Active Directory-Struktur festlegen. Wenn Sie über ein Präfix verfügen, das die Gruppen für den Ressourcenzugriff kennzeichnet, z.B. ACL_, haben Sie Glück. Sie brauchen nur noch die Variable sPrefix_ACL im Konfigurationsblock der HTML-Anwendung zu konfigurieren, um Sie an Ihr Präfix anzupassen. Falls Ihr Benennungsstandard kein Präfix vorsieht, müssen Sie umfangreichere Änderungen an dem Werkzeug vornehmen. Die Routine FillResources verwendet die Subroutine All_Objects, um die Struktur von sGroupsOUDN nach Gruppen zu durchsuchen, deren Präfix mit sPrefix_ACL übereinstimmt. Sie sortiert die Ergebnisse und erstellt Dropdownlisteneinträge (die in HTML mit <options> gekennzeichnet werden) für die einzelnen Ressourcen. Anpassungen sind nicht erforderlich. Die Suche umfasst dieses Objekt sowie alle untergeordneten Container. Hoffentlich haben Sie all Ihre Ressourcenzugriffsgruppen in einer einzigen Organisationseinheit oder einem Zweig davon unterge- 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung 73 bracht. Sind die Gruppen jedoch über Ihre Domäne verteilt, können Sie den definierten Namen Ihrer Domäne als sGroupsOUDN eingeben und damit das Durchsuchen der gesamten Domäne veranlassen. Dies ist übrigens eine Schwachstelle in diesem Werkzeug. Wenn Sie eine sehr ausgedehnte Suche durchführen oder über viele Objekte verfügen, kann es eine Weile dauern, bis das Werkzeug die Dropdownlisten gefüllt hat. Sollte dies passieren, besteht die einfachste Lösung darin, das Werkzeug nicht direkt, sondern über die Befehlszeile, eine Aufgabe in einem Aufgabenblock oder einen Kontextmenübefehl mit einem Argument aufzurufen, das die zu analysierende Gruppe angibt. Wird die HTML-Anwendung mit einem Argument aufgerufen, führt sie zunächst ihren Bericht aus und füllt dann die Dropdownliste mit Daten, was zu einer höheren Leistung führt. Die andere Lösung besteht darin, effizienteren Code zum Füllen der Dropdowlisten zu schreiben, indem Sie eine ADO-Suche nach den mit Ihrem Präfix übereinstimmenden Gruppenobjekten durchführen. Der aktuelle Code durchsucht die Active Directory-Hierarchie ab dem von sGroupsOUDN angegebenen Basiscontainer. Schauen Sie auf der Communitysite zu diesem Buch, http://www.intelliem.com/resourcekit, nach. Dort werden wahrscheinlich von der Community Erweiterungen zu diesem Werkzeug angeboten. Wenn die Dropdownliste Resources gefüllt ist, kann ein Benutzer eine Ressource auswählen. Bei einer Änderung dieser Liste wird das Ereignis choResource_OnChange ausgelöst, das dann die vom Werkzeug zuvor erstellte Gruppenliste nach allen Gruppen mit demselben Ressourcennamen durchsucht. Anschließend sucht es nach dem zweiten Unterstrich und generiert die Dropdownliste Access Level. Bei der Auswahl einer Zugriffsebene aus der Dropdownliste wird das Ereignis choAccess_OnChange ausgelöst und füllt das Gruppenfeld, indem es das Präfix (sPrefix_ACL) mit der ausgewählten Ressource, einen Unterstrich und die ausgewählte Zugriffsebene hinzufügt. Mit anderen Worten, der Gruppenname wird von der in der Dropdownliste vorgenommenen Auswahl abgeleitet. Dann listet das Werkzeug alle Gruppenmitglieder auf. Dabei trennt es die Mitglieder nach dem Objekttyp: Benutzer, Computer und andere Gruppen. Handelt es sich bei dem Mitglied um einen Benutzer, wertet das Werkzeug aus, ob dieser Benutzer ein direktes Mitglied der ausgewählten Gruppe ist oder ein indirektes (verschachteltes). Dieser Entwurf sollte dabei helfen, die Ausnahmen von der Regel zu erkennen, die wir in Lösung 1.4 erörtert haben: Benutzer, denen der Zugriff auf eine Ressource direkt und nicht über Rollen gewährt wird. Der für die Kategorisierung von Mitgliedern verwendete Code weist große Ähnlichkeiten mit dem Code auf, den My Memberships zur Klassifizierung von Gruppen anhand des Typs einsetzt. Diesmal ist jedoch keine Anpassung erforderlich: Die Objektklassen des Benutzers, der Gruppe und des Computers sind alles, was Sie brauchen. Nach der Kategorisierung werden die Mitglieder in den entsprechenden <div>-Abschnitten des HTML-Codes angezeigt. Was haben wir hier eigentlich vor uns? Wir sehen zwei Werkzeuge, die wertvolle Berichte erstellen, indem sie eine disziplinierte Namenskonvention nutzen. Da wir über eine strukturierte, wohldurchdachte Namenskonvention verfügen, sind wir in der Lage, uns einen beliebigen Gruppennamen anzusehen und dabei genau zu erkennen, welchem Zweck die Gruppe dient (My Memberships). Außerdem können wir eine Mitgliedschaftsanalyse für eine einzelne Gruppe durchführen (Access Report). Access Report setzt unsere Namenskonvention ein, um die Datenbank (Active Directory) nach allen Gruppen zu durchsuchen, die eine bestimmten Funktion aufweisen (Verwaltung des Ressourcenzugriffs). 74 Lösungsgruppe 1: Rollenbasierte Verwaltung Überwachen der rollenbasierten Zugriffssteuerung Diese Lösung weist noch eine weitere wichtige Komponente auf. Wenn Sie Auflistungen der Gruppenmitgliedschaft, z.B. My Memberships und Access Report, als Grundlage für die Berichte Ihrer rollenbasierten Zugriffssteuerung verwenden, müssen Sie darauf vertrauen, dass niemand Ihre Richtlinien missachtet hat. Wenn Sie beispielsweise Access Report zur Beantwortung der Frage »Wer kann das Budget lesen?« verwenden, gehen Sie davon aus, dass die Gruppe ACL_Budget_Read die einzige Gruppe mit der Zulassungsberechtigung Lesen ist. In Lösung 1.5 habe ich Ihnen vorgeschlagen, der Gruppe ACL_Budget_Read diese Berechtigung zuzuweisen. Einen Benutzer, der die Leseberechtigung benötigt, fügen Sie dieser Gruppe hinzu, und zwar entweder über eine seiner Rollen oder direkt als Ausnahme von der Regel. Sie müssen sicherstellen, dass keinem anderen Sicherheitsprinzipal (Benutzer, Gruppe oder Computer) die Zulassungsberechtigung Lesen in der Zugriffssteuerungsliste erteilt wurde; andernfalls wäre Ihr auf der Mitgliedschaft in ACL_Budget_Read beruhender Bericht ungenau. Glücklicherweise rettet uns auch hier unser Benennungsstandard. Um uns selbst die Zuversicht zu geben, dass unser Modell ordnungsgemäß funktioniert – dass unsere Daten-, unsere Geschäftslogikund die Darstellungsschichten, die in Lösung 1.4 erörtert wurden, wirksam sind –, überwachen oder durchsuchen wir einfach die Zugriffssteuerungslisten unserer Ordner und achten auf das Vorkommen eines Sicherheitsprinzipals, der nicht mit unserem ausgewählten Präfix ACL_ beginnt! Natürlich ignorieren wir auch bekannte Sicherheitsprinzipale wie System, Administratoren, Benutzer und Jeder. Wie geben Sie die Zugriffssteuerungslisten eines Ordners oder einer Datei aus, um diese Art der Überwachung zu erzielen? Dafür gibt es Werkzeuge wie subinacl.exe (das Sie von der Microsoft-Downloadwebsite unter http://www.microsoft.com/downloads herunterladen können), icacls.exe (Bestandteil von Windows Server 2008 und Windows Vista), cacls.exe (Bestandteil von Windows XP) und xcacls.vbs (das Sie ebenfalls von der Microsoft-Downloadwebsite herunterladen können). Jedes dieser Werkzeuge bietet die Möglichkeit, Zugriffssteuerungslisten anzuzeigen. Allerdings erstellen sie sehr ausführliche Berichte. Für unsere Zwecke müssen wir lediglich sicherstellen, dass es keine Ausnahmen von den Regeln unserer rollenbasierten Zugriffssteuerung gibt – dass also nur solche Sicherheitsprinzipale in Zugriffssteuerungslisten vorkommen, die unseren Richtlinien entsprechen. Verwenden von Folder ACL Report.vbs Daher habe ich auf dem Begleitmedium ein Skript mit dem Namen Folder ACL Report.vbs bereitgestellt, das sich im Ordner Scripts befindet. Dabei handelt es sich um einen Wrapper für icacls.exe. Er führt icacls aus, zeichnet die Ausgabe auf und filtert dann die einzelnen Zeilen, sodass nur Ausnahmen, d.h. unerwartete Berechtigungen, angezeigt werden. Um Folder ACL Report auszuführen, öffnen Sie die Eingabeaufforderung, greifen auf den Ordner zu, in dem das Skript gespeichert ist, und verwenden dann die folgende Syntax: cscript //nologo "Folder ACL Report.vbs" "Pfad zum Ordner" E|I Dabei geben Sie entweder E (für explicit) oder I (für inherited) als letztes Argument an, um darauf hinzuweisen, ob Sie nur explizite Zugriffssteuerungseinträge anzeigen oder vererbte Einträge einbeziehen wollen. Wenn ausschließlich explizite Einträge angezeigt werden, ist der Bericht erheblich kürzer, sodass Sie sich auf Unterschiede und Änderungen unterhalb des angegebenen Ordners konzentrieren können. Das Skript zeigt standardmäßig alle Berechtigungen (einschließlich der vererbten) für den festgelegen Ordner an, da diese Information wichtig ist, um verstehen zu können, was unterhalb dieses Ordners geschieht. Der Filter für explizite oder vererbte Einträge wird auf die Dateien und Ordner angewendet, die sich unterhalb des angegebenen Ordners befinden. 1.6 Berichtswesen und Überwachung bei rollenbasierter Zugriffssteuerung und Verwaltung 75 Sie müssen die Filterung festlegen, die das Skript durchführt, indem Sie den folgenden Codeblock im Skript ändern: aTranslatePerms = Array(_ "NT AUTHORITY\System", "" , _ "BUILTIN\Administrators","", _ "CREATOR OWNER:(OI)(CI)(IO)(F)","", _ "CONTOSO\ACL_", "" ) Das Array aTranslatePerms enthält Elementepaare. Es wird dazu verwendet, die von icacls generierten Berechtigungen für das Berichtswesen in eine andere Form zu verwandeln. Das erste Element eines jeden Paares ist das Element, das icacls erstellt. Bei dem zweiten handelt es sich um das Element, das Sie anzeigen wollen. Wenn sie einen leeren String (zwei doppelte Anführungszeichen "") angeben, zeigt das Skript nur die Berechtigung für den an der Befehlszeile angegebenen Ordner und nicht für untergeordnete Dateien oder Ordner an. Die vierte Zeile dieses Codeblocks weist beispielsweise das Skript an, alle Vorkommen der Berechtigung zu ignorieren, die dem Ersteller-Besitzer die vollständige Kontrolle gewährt. Diese Berechtigung wird nur für den angegebenen Ordner, nicht jedoch für untergeordnete Dateien oder Ordner angezeigt. Sie können im Array Teilstrings verwenden. Die zweite und die dritte Zeile weisen das Skript an, alle Berechtigungen zu überspringen, die den Identitäten System und Administratoren zugewiesen wurden. Die letzte Zeile ist ein wichtiges Element, das Sie anpassen müssen: Sie weist das Skript an, Berechtigungen für diese Gruppen innerhalb unserer Domäne zu ignorieren, deren Namen mit ACL_ beginnen, da diese mit den Vorschriften unserer rollenbasierten Zugriffssteuerung übereinstimmen. Im Folgenden sehen Sie ein Beispiel für das Skript in Aktion: c:\DEMOS>cscript //nologo "Folder ACL Report.vbs" "C:\data" e FOLDER TREE FILTERED ACL REPORT C:\data NT SERVICE\TrustedInstaller:(I)(F) C:\data NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F) C:\data NT AUTHORITY\SYSTEM:(I)(F) C:\data NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F) C:\data BUILTIN\Administrators:(I)(F) C:\data BUILTIN\Administrators:(I)(OI)(CI)(IO)(F) C:\data BUILTIN\Users:(I)(OI)(CI)(RX) C:\data BUILTIN\Users:(I)(CI)(AD) C:\data BUILTIN\Users:(I)(CI)(WD) C:\data CREATOR OWNER:(I)(OI)(CI)(IO)(F) C:\data\Budget ACCOUNT UNKNOWN:(OI)(M) C:\data\Budget ACCOUNT UNKNOWN:(CI)(R) C:\data\Budget ACCOUNT UNKNOWN:(OI)(CI)(RX) C:\data\Accounting\2007 CONTOSO\jfine:(OI)(CI)(M) Successfully processed 9 files; Failed processing 0 files Das Skript wurde für den Ordner C:\Data ausgeführt. Alle Berechtigungen für diesen Ordner wurden angezeigt. Wieder können Sie icacls.exe /? verwenden, um herauszufinden, was die Anzeige der Berechtigungen bedeutet, allerdings handelt es sich hier um Standardberechtigungen für einen Windows Server 2003- oder Windows Server 2008-Ordner im Stammverzeichnis des Festplattenlaufwerks. Unter dem Stammdatenordner befinden sich zwar noch mehrere andere Ordner, das Skript hat jedoch nur vier unerwartete Berechtigungen angezeigt. Der Ordner Budget verfügt über drei Instanzen, wobei 76 Lösungsgruppe 1: Rollenbasierte Verwaltung einer Gruppe Berechtigungen erteilt wurden und die Gruppe anschließend gelöscht wurde. Dabei blieb ein Zugriffssteuerungseintrag mit einer Sicherheitskennung (Security Identifier, SID) übrig, die in Active Directory nicht aufgelöst werden kann. Darüber hinaus hat der Benutzer mit dem Namen jfine die explizite Berechtigung erhalten, den Ordner C:\Data\Accounting\2007 zu ändern. Dies entspricht nicht unserem Modell der rollenbasierten Zugriffssteuerung. Sein Benutzerkonto sollte einer entsprechenden Befugnisverwaltungsgruppe für den Ressourcenzugriff hinzugefügt werden, z.B. ACL_Accounting 2007_Edit. Wir wollen untersuchen, wie, wann, von wem und warum diese Berechtigung erteilt wurde. Die nächsten Schritte mit Folder ACL Report.vbs Folder ACL Report.vbs ist nützlich, um Zugriffssteuerungseinträge ausfindig zu machen, die keiner begrenzten Anzahl erwarteter Identitäten, z.B. System und Administratoren, oder einer Gruppe mit unserem Präfix ACL_ für die rollenbasierte Zugriffssteuerung zugewiesen wurden. Das Skript sollte eine Anregung sein, über Änderungen nachzudenken, die Sie anbringen können, um seine Leistungsfähigkeit zu erhöhen. In seiner derzeitigen Form bestätigt das Skript zum Beispiel nicht, dass die einer Gruppe zugewiesenen Berechtigungen erwartet werden. Weder überprüft es zum Beispiel, ob einer Gruppe mit dem Namen ACL_Budget_Read tatsächlich die Leseberechtigung erteilt wurde, noch markiert es einen problematischen Ordner, für den dieser Gruppe zusammen mit der Leseberechtigung auch die Berechtigung Ändern erteilt wurde. Für diese offensichtliche Lücke gibt es Gründe. In einer gut verwalteten Umgebung werden Ordner automatisch bereitgestellt, wie Sie in Lösungsgruppe 2 sehen können. Daher sind wir bei Contoso Ltd. zuversichtlich, dass der _Read-Gruppe tatsächlich eine Leseberechtigung erteilt wurde, da dieser Vorgang automatisiert und protokolliert wird. Darüber hinaus wurde die NTFS-Überwachung eingerichtet, um erfolgreiche Änderungen an NTFS-Berechtigungen zu beobachten. Nach der Bereitstellung des Ordners werden daher alle Änderungen an der Zugriffssteuerungsliste im Sicherheitsprotokoll vermerkt. Allerdings können wir dieses Skript auch so erweitern, dass es den Gruppennamen anhand unserer Namenskonvention überprüft und erkennt, ob die Zugriffsebene der Gruppe auf Lesen gesetzt ist. Das Skript kann ermitteln, ob der Gruppe tatsächlich die Berechtigungen Lesen und Ausführen (RX), und zwar nur diese Berechtigungen zugewiesen wurden. Wenn Sie unserer Onlinecommunity unter http:// www.intelliem.com/resourcekit beitreten, werden Sie wahrscheinlich feststellen, dass bereits jemand eine solche Lösung angeboten hat. Zusammenfassung In dieser Lösung wurden drei Arten von Werkzeugen vorgestellt, die ein rollenbasiertes Verwaltungsmodell für die Bereitstellung entscheidender Berichte einsetzen. Jedes Werkzeug stützt sich auf die strikte Einhaltung eines logischen, strukturierten Benennungsstandards für unsere Gruppen. My Memberships zeigt die Verwaltung eines Benutzers an, indem es dessen Gruppenmitgliedschaften auflistet und anhand des Benennungsstandards die Gruppen für die Anzeige sinnvoll kategorisiert und sortiert. Es verwendet sogar stellenweise die Attribute zur Beschreibung von Gruppen, um den Bericht leicht verständlich zu gestalten. Access Report (Members_AccessReport.hta) beginnt mit einer einzigen Gruppe, die zur Verwaltung des Zugriffs auf einer bestimmten Ebene und auf eine bestimmte Ressource verwendet wird, und listet alle 1.7 Einrichten der rollenbasierten Verwaltung 77 Benutzer, Computer und weitere Gruppen auf, die zu dieser Gruppe gehören. Die Mitglieder werden anhand der Objektklasse und der Tatsache, ob es sich um ein direktes oder indirektes (verschachteltes) Mitglied handelt, in Kategorien eingeteilt. Dieses Werkzeug setzt beim Durchsuchen von Active Directory unseren Benennungsstandard ein, der das Präfix ACL_, gefolgt vom Namen der Resource, einem weiteren Unterstrich und der Zugriffsebene vorgibt, und erstellt dynamisch eine Reihe benutzerfreundlicher Dropdownlisten, die uns dabei helfen, genau die richtige Gruppe zu finden. Die Berichte beruhen lediglich auf den Informationen, die uns unsere Datenbank, Active Directory, liefert. Um die Genauigkeit der Berichte zu gewährleisten, müssen wir die Umsetzung unserer rollenbasierten Verwaltung durchsuchen und sicherstellen, dass die Regeln befolgt wurden. Das Skript Folder ACL Report ist ein Beispiel. Es durchsucht die Zugriffssteuerungslisten einer Ordnerstruktur, um Zugriffssteuerungseinträge zu finden, die nicht zu Sicherheitsprinzipalen zugewiesen wurden, die mit dem Gruppenbenennungsstandard unserer rollenbasierten Zugriffssteuerung übereinstimmen. Dieses letzte Werkzeug demonstriert hauptsächlich die Art der einfachen Überwachung, die Sie vornehmen können, um die Einhaltung der Regeln sicherzustellen. Wenn Sie gewährleisten können, dass die Regeln befolgt werden, können die Berichte von der Datenschicht – Active Directory – getrost als genau angesehen werden. 1.7 Einrichten der rollenbasierten Verwaltung Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Registrierung, Kommunikation, Prozess, Leitung Zusammenfassung Beantwortung von Fragen und Bereitstellung einer Anleitung zu den geschäftlichen und technischen Herausforderungen beim Wechsel zur rollenbasierten Verwaltung Vorteile Verteidigen Sie die rollenbasierte Verwaltung gegenüber Gleichgestellten und Vorgesetzten. Nehmen Sie allgemeine Herausforderungen im Hinblick auf die Gültigkeit und Realisierbarkeit der rollenbasierten Verwaltung an. Vermeiden Sie Fallstricke und nutzen Sie Anleitungen auf Ihrem Weg zur rollenbasierten Verwaltung. Einführung Die rollenbasierte Verwaltung, die wir in den Lösungen 1.4 bis 1.6 vorgestellt haben, ist ein leistungsfähiger Ansatz zur Anpassung der Informationstechnik an die Geschäftsstrategie, die Anforderungen der Organisation und die Arbeitsaufgaben. Wie ich in der Einleitung zu diesem Kapitel vorgeschlagen habe, ist es fast so einfach, wie ich es mir im IT-Bereich nur vorstellen kann. Der ROI ist sehr groß, und sofern Sie nicht nach Stunden bezahlt werden oder ein sehr kleines, statisches Unternehmen haben, brauchen Sie ein Mindestmaß an rollenbasierter Zugriffssteuerung und eine rollenbasierte Verwaltung auf breiter Ebene. 78 Lösungsgruppe 1: Rollenbasierte Verwaltung Übersicht über die rollenbasierte Verwaltung In Lösung 1.4 wurden die Konzepte für die Daten, die Geschäftslogik und die Darstellung der rollenbasierten Verwaltung vorgestellt. Sie brauchen eine Datenbank zur Pflege der Daten Ihres Modells, eine Geschäftslogik, um die Anpassung der IT-Administration an die Geschäftsanforderungen und Arbeitsabläufe zu steuern, und eine Reihe von Werkzeugen zur Darstellung des Modells in einer für Administratoren und sogar nicht technisch versierte Ressourcenbesitzer angenehmen Weise. Darüber hinaus müssen Sie alle Befugnisse einrichten, die Sie verwalten wollen. Um die rollenbasierte Zugriffssteuerung zur Verwaltung des Ressourcenzugriffs zu verwenden, müssen Sie beispielsweise Berechtigungen zu Dateien, Ordnern, Druckern und anderen Ressourcen zuweisen, die mit Zugriffssteuerungslisten gesichert werden können. Die Berechtigungen müssen auf Gruppen in der von Ihnen eingerichteten rollenbasierten Zugriffssteuerung verweisen. In dieser technischen Referenz werde ich Ihre Kenntnisse dieser Komponente erweitern, da sie sich auf verschiedene Aspekte der IT-Administration bezieht, darunter auch die Verwaltung von Dateien und Ordnern, Gruppenrichtlinien, Druckern, die Bereitstellung von Anwendungen usw. Außerdem werden wir weiterhin Werkzeuge entwickeln, um die Darstellungsschicht zu vereinfachen: die Administration, die Verwaltung und die Berichterstellung in der rollenbasierten Verwaltung. Die ersten Werkzeuge dieser Art wurden in Lösung 1.6 vorgestellt. Lösung 1.5 befasste sich schwerpunktmäßig mit der Daten- und Geschäftslogikschicht. Obwohl Werkzeuge wie Microsoft Identity Lifecycle Manager (ILM), System Center Configuration Manager und Hilfsprogramme anderer Anbieter Alternativen bieten, haben wir uns auf eine Datenbank konzentriert, die Sie bereits in Ihrem Unternehmen haben: Active Directory. Diese Datenbank wird über mehrere Server (Domänencontroller) verteilt, ist äußerst effizient in der Replikation, bildet sicherlich einen Schwerpunkt in Ihrer Sicherungs-, Wiederherstellungs- und Notfallplanung, ist eine bekannte Technologie und relativ leicht einzusetzen. Die Geschäftslogik kann mithilfe von Gruppen und deren Verschachtelung in Active Directory aufgebaut werden. All das kann mit geringen oder sogar ganz ohne Kosten erfolgen. Gruppen und Gruppenverwaltung als Grundlage Letztendlich stützt sich unser Ansatz zur rollenbasierten Verwaltung weit gehend auf die Gruppenverwaltung – die anspruchsvolle, nuancierte, detaillierte und disziplinierte Gruppenverwaltung. Ein Vorteil, den ich bis jetzt noch nicht erwähnt habe, besteht darin, dass Sie sich selbst auf einen einfachen Wechsel zu fortgeschritteneren Verwaltungswerkzeugen vorbereiten, wenn Sie Gruppen als Grundlage verwenden. Viele Systemverwaltungswerkzeuge, darunter Microsoft System Center Configuration Manager 2007 und andere, nicht von Microsoft stammende Programme, können Gruppen verwenden, um festzulegen, welche Benutzer oder Computer bestimmte Anwendungen oder Konfigurationen erhalten. Wenn Sie Ihre Datenbank und Ihre Geschäftslogik in Active Directory aufbauen, können Sie daher leicht anspruchsvollere Werkzeuge einsetzen. Das Arbeiten mit Gruppen ist einfach. Systemeigene Werkzeuge wie das Snap-In Active DirectoryBenutzer und -Computer ermöglichen die Verwaltung der Gruppenmitgliedschaften, wobei es nicht allzu schwierig ist, benutzerdefinierte Werkzeuge zu erstellen, die auch mit Gruppen arbeiten, wie wir in dieser Lösung gesehen haben. Die Lösungen der Lösungsgruppe 8, »Eine neue Sichtweise der Verwaltung von Gruppen und Mitgliedschaften«, ermöglichen eine noch effizientere Vorgehensweise. Wenn Gruppen als Datencontainer verwendet werden, um zu verfolgen, wer welchen Rollen angehört oder welche Befugnisse verwaltet werden, bieten sie eine gute Sichtbarkeit für diese Informationen, da Sie die Mitglieder und MemberOf-Attribute von Active Directory in Form einer Abfrage Ihrer Datenschicht ganz einfach auflisten können. 1.7 Einrichten der rollenbasierten Verwaltung 79 Schlechte Erfahrungen mit der Gruppenverwaltung in der Vergangenheit Leider haben Gruppen eine dunkle Vergangenheit, die bei vielen IT-Experten durch deren Erfahrungen bei der Windows-Administration Narben hinterlassen hat. Zu Zeiten von Windows NT 4.0 und älteren Versionen boten Gruppen sehr begrenzte Verschachtelungsmöglichkeiten: Globale Gruppen konnten in lokalen Gruppen verschachtelt werden. Das war alles. Die optimale Vorgehensweise bestand darin, Benutzer in globalen Gruppen und globale in lokalen Gruppen zu verschachteln und dann einer lokalen Gruppe Berechtigungen zuzuweisen. Das Problem bestand darin, dass lokale Gruppen nur in der SAM-Datenbank (Security Accounts Management) des Servers oder der Arbeitsstation, nicht aber in der Domäne existierten. War Ihr Budget auf vier Server verteilt, benötigten Sie daher vier getrennte Sätze lokaler Gruppen, d.h. einen pro Server, wenn Sie die optimale Vorgehensweise wählten. Diese Vorgehensweise war in größeren, komplexen Organisationen recht mühsam, sodass viele darauf zurückgegriffen haben, alle Gruppen als globale Gruppen anzulegen. Da diese Gruppen nicht ineinander verschachtelt werden konnten, stellte dieser Ansatz keine Hierarchie bereit, sodass es keine Möglichkeit gab, die Geschäftslogik in einem Gruppenmodell darzustellen. Darüber hinaus war die Anzahl der Konten, die in einer einzelnen Domäne unterstützt werden konnten, erheblich begrenzt. Dadurch scheiterte alles schnell. All das hat sich mit der Einführung von Active Directory geändert. Sobald sich eine Domäne auf der Domänenfunktionsebene von Windows 2000 oder höher befand, stand ein neuer Gültigkeitsbereich für Gruppen (lokale Domäne) in der gesamten Domäne zur Verfügung, wobei das Verschachteln globaler Gruppen in globalen Gruppen oder lokaler Domänengruppen in lokalen Domänengruppen möglich wurde. Universelle Gruppen stehen ebenfalls zur Verschachtelung zur Verfügung. Computer lassen sich jetzt leicht zu Gruppen hinzufügen, und die Gültigkeitsbereiche und Typen der Gruppen sind leicht umzuwandeln. Letztendlich gibt es praktisch keine Begrenzung in der Anzahl der Objekte, die in einer Active Directory-Domäne unterstützt werden können. Daher ist das Leben jetzt viel einfacher. Allerdings haben viele IT-Experten schlechte Erfahrungen gemacht, was deutlich spürbar wird, wenn Sie das Thema Gruppenverwaltung anschneiden. Entweder glauben sie, bereits alles zu wissen, was es über Gruppen zu wissen gibt, oder sie schrecken zurück und denken fälschlicherweise, dass die Gruppenverwaltung immer noch schwierig ist. Es kann viel Arbeit bedeuten, diese schlechten Erfahrungen hinter sich zu lassen. Falls dies für Sie komisch klingt, dürfen Sie sich glücklich schätzen! Ich habe bei vielen Kunden gearbeitet, wo wir bei der Planung einer rollenbasierten Verwaltungsstrategie tatsächlich die Wörter »globale Gruppe« und »lokale Domänengruppe« aus der Diskussion ausklammern mussten! Oft wollen sich Administratoren gleich auf die Technik, das Wie, stürzen und übergehen dabei die wichtigeren Fragen nach dem Warum, Was, Wann, Wo und Wer. Ausnahmslos führen sie letztlich das ein, was ihrer Meinung nach von vorrangiger technischer Bedeutung ist, ohne zunächst in die Zukunft zu blicken, die wunden Punkt, die sich klären ließen, zu erkennen und zu verstehen, dass es keinen Spickzettel gibt, von dem sie die Lösung ablesen können. Die rollenbasierte Verwaltung – die Analyse, der Entwurf, die Einrichtung, die Unterstützung und die Fehlersuche – bringt Arbeit mit sich. Aber sie zahlt sich aus! Vorstellen und Verteidigen der rollenbasierten Verwaltung Wenn Sie die Vorteile der rollenbasierten Verwaltung erklären müssen, schlage ich Ihnen vor, mit den wunden Punkten zu beginnen. Bitten Sie die wichtigsten Beteiligten um die Beantwortung der folgenden Fragen: Was kann <Name eines Benutzers> tun und wozu hat er Zugang? 80 Lösungsgruppe 1: Rollenbasierte Verwaltung Welche Anwendungen sollten auf einem neuen Computer installiert werden, wenn <Name eines Benutzers> seinen Computer verliert? Wer kann Änderungen an <Name einer heiklen Ressource> vornehmen? Ein neuer Benutzer wird eingestellt und braucht denselben Zugang wie <Name eines Benutzers>. Was ist das? Wenn Ihnen die Beteiligten all diese Fragen beantworten können, wird Ihre Umgebung bereits recht gut verwaltet. Aller Wahrscheinlichkeit nach können sie es aber nicht, denn sonst würden Sie diese Lösungsgruppe nicht lesen. Nachdem die wunden Punkte geklärt sind, sollten Sie einige der Werkzeuge aus dieser Lösungsgruppe in der Praxis vorführen. Halten Sie einige Beispiele bereit, die bereits in Ihrer Umgebung erstellt wurden und die Leistungsfähigkeit der rollenbasierten Verwaltung verdeutlichen. Fangen Sie dann an zu erläutern, wie dies erreicht werden kann. Verwenden Sie dabei nicht die Begriffe »globale Gruppen« und »lokale Domänengruppen«. Sprechen Sie stattdessen von »Rollengruppen« und »Befugnisverwaltungsgruppen«. Konzentrieren Sie sich auf die Funktion der Gruppen und nicht auf deren Umsetzung. Erst wenn alles andere geklärt wurde, müssen Sie sich auch Gedanken darüber machen, welche Arten von Gruppen global sind (Rollengruppen) und bei welchen Gruppen es sich um lokale Domänengruppen handelt (die meisten Befugnisverwaltungsgruppen). »Werden das nicht zu viele Gruppen?« Ich habe in dieser Lösungsgruppe mehrere Male auf die Tatsache hingewiesen, dass die rollenbasierte Verwaltung eine beträchtliche Anzahl von Gruppen in Active Directory nach sich ziehen kann. Das ist wahrscheinlich die Hauptsorge, die in Diskussionen über diesen Ansatz zur rollenbasierten Verwaltung zum Ausdruck gebracht wird. Befassen wir uns nun mit diesen Bedenken. Ja, der Ansatz bringt mehr Gruppen mit sich. Bei der vollständigen Umsetzung haben Sie mehrere Gruppen für jede Ressource und eine für jede Zugriffsebene. Das allein erhöht die Anzahl der Gruppen im Verzeichnisdienst. Der Schlüssel zur Behandlung dieses Problems liegt darin, sich selbst und Ihr Team darin zu erinnern, welche Alternativen bestehen: mehrere Zugriffssteuerungseinträge in Zugriffssteuerungslisten für mehrere Ordner in mehreren Freigaben auf mehreren Servern oder aber mehrere Gruppen in einer einzigen, zentralen, replizierten, gut zu verwaltenden Datenbank (Active Directory). Denken Sie an das Szenario aus Lösung 1.4 mit Budgetressourcen, die über vier verschiedene Server verteilt sind. Wie schwierig ist es, jene Zugriffssteuerungslisten zu verwalten und anzuzeigen, wer Zugang zu diesem Budget hat? Sehr schwierig! Wenn wir die Befugnisse Lesen, Bearbeiten und Vollzugriff auf das Budget anwenden, haben wir mindestens zwölf Zugriffssteuerungseinträge (je drei Befugnisse für vier Server). Eigentlich sind es sogar mehr, weil Bearbeiten bei einer guten Umsetzung mehrere Zugriffssteuerungseinträge erfordert, wie Sie in der nächsten Lösungsgruppe erfahren werden. Bei der Verwaltung dieser Ressource müssen wir mit all diesen Zugriffssteuerungseinträgen arbeiten: Gruppen mit diesen Zugriffssteuerungseinträgen hinzufügen oder entfernen und, was am mühsamsten ist, die Zugriffssteuerungseinträge durchsuchen und analysieren, um eine Überwachung vorzunehmen und Berichte zu erstellen. Bei vorhandener rollenbasierter Verwaltung haben wir noch genauso viele Zugriffssteuerungseinträge, aber wir brauchen Sie nicht mehr zu verwalten. Wir müssen lediglich drei Gruppen verwalten: ACL_Budget_Read, ACL_Budget_Edit und ACL_Budget_Full Control. Wir haben die Anzahl der Verwaltungspunkte tatsächlich um 75 Prozent reduziert (zwölf zu verwaltende Zugriffssteuerungseinträge im Vergleich zu drei zu verwaltenden Gruppen)! 1.7 Einrichten der rollenbasierten Verwaltung 81 Nach meinen Erfahrungen sind es IT-Experten gewohnt, mit Zugriffssteuerungslisten und Berechtigungen zu arbeiten, sodass sie einfach ignorieren, wie viel Zeit dafür aufgewendet (verschwendet) wird. Wenn Sie beim Aufzeigen der wunden Punkte in Ihrem Unternehmen gute Arbeit geleistet haben, werden Ihre Teammitglieder den Handel erkennen, den Sie eingehen: Sie tauschen die Verwaltung unzähliger Zugriffssteuerungseinträge gegen die Verwaltung einiger zusätzlicher Gruppen. Es lohnt sich wirklich! Nun ergeben sich zwei weitere Auswirkungen durch die Pflege mehrerer Gruppen in Active Directory. Die erste ist der Bedarf an Werkzeugen, mit denen diese Gruppen verwaltet werden können. Glücklicherweise ist selbst das Snap-In Active Directory-Benutzer und -Computer leichter zur Verwaltung der Gruppenmitgliedschaft einzusetzen als der ACL-Editor zur Verwaltung von Berechtigungen. Aber wir brauchen noch bessere Werkzeuge. Wir haben in dieser Lösungsgruppe mehrere entwickelt und stellen in Lösungsgruppe 8 weitere vor. Die zweite Auswirkung betrifft die Größe des Sicherheitstokens eines Benutzers. Dieses Thema behandeln wir in einem Abschnitt weiter hinten in dieser Lösung. Wenn wir aber davon ausgehen, dass Sie Ihr rollenbasiertes Verwaltungsmodell gut entwerfen, zentralisiert und verringert es durchaus die Verwaltungslast und reduziert damit Ihre Gesamtbetriebskosten. Der Weg zur rollenbasierten Verwaltung Der Weg zur rollenbasierten Verwaltung ist komplex – nicht vom technischen Standpunkt aus, da es sich lediglich um Gruppenverwaltung handelt, aber vom geschäftlichen. Analysieren der Umgebung Nachdem Sie für Ihre Bemühungen die Unterstützung der Geschäftsleitung erhalten haben, ist der erste Schritt die Analyse Ihrer Umgebung: Bestimmen Sie die Befugnisse, die Sie verwalten wollen. Ressourcengruppen erfordern eine Zugriffssteuerung? Welche Anwendungen wollen Sie bereitstellen und verwalten? Welche Konfiguration, z.B. zugeordnete Laufwerke, Drucker und Gruppenrichtlinien, wird bereitgestellt? Denken Sie daran, dass im Kontext der rollenbasierten Verwaltung der Begriff »Befugnis« immer etwas Positives oder das Ermöglichen einer Tätigkeit bedeutet. Nehmen Sie beispielsweise an, Sie versuchen, die Benutzer davon abzuhalten, persönliche Desktophintergründe auf den Computern im Konferenzraum und in anderen öffentlichen Bereichen einzusetzen. Sie verwalten die Befugnis, auf einem mit Einschränkungen versehenen Computer zu arbeiten. Obwohl »Einschränkungen« und »Befugnis« in anderen Zusammenhängen widersprüchlich klingen, bilden sie die zwei Seiten einer Medaille in der rollenbasierten Verwaltung. Sie geben sich selbst die Möglichkeit, sich keine Sorgen mehr über diese Computer machen zu müssen, nicht wahr? Bei diesem Vorgang werden Ihre Befugnisverwaltungsgruppen angelegt. Bestimmen Sie die Ausnahmen, die Sie verwalten müssen. Schritt wird oft übersehen, ist aber sehr wichtig. Manche Befugnisse erfordern Ausnahmen. Vielleicht wollen Sie beispielsweise die automatische Bereitstellung von Sicherheitsaktualisierungen an alle Clientcomputer in Ihrer Domäne verwalten, sodass alle Computer innerhalb von 24 Stunden Aktualisierungen erhalten und automatisch neu gestartet werden, um sicherzustellen, dass die Aktualisierungen wirksam werden. Sobald Sie eine Regel festlegen, finden Sie wahrscheinlich eine Ausnahme von der Regel. Vielleicht gibt es zum Beispiel einen Computer, auf dem ein langwieriger Algorithmus zur Datenanalyse ausgeführt wird, dessen Fertigstellung 48 Stunden in Anspruch nimmt. Wenn eine Aktualisierung einen Neustart verursacht, schlägt die Analyse fehl. Sie sollten eine Befugnis erteilen, die von der Regel für die Aktualisierung und den Neustart ausgeschlossen ist. Diese Befugnis wird dann durch eine Gruppe repräsentiert, die möglicherweise den Namen UPD_Update Reboot Exceptions 82 Lösungsgruppe 1: Rollenbasierte Verwaltung trägt und zum Filtern eines Gruppenrichtlinienobjekts mit den für diese Ausnahmen geeigneten Einstellungen verwendet werden kann. Aufgrund der Festlegung von Ausnahmen werden daher bei dieser Analyse auch Befugnisverwaltungsgruppen zur Verwaltung von Ausnahmen angelegt. Bestimmen Sie die mit diesen Befugnissen verknüpften Rollen. Schauen Sie sich an, welche Benutzer und Computer derzeit die von Ihnen festgelegten Befugnisse haben. Sie finden wahrscheinlich einige Gruppen, einige einzelne Benutzer und vielleicht einige Computer. Arbeiten Sie die Beziehungen heraus, auf die Rollendefinitionen nahe legen. Durch diese Vorgehensweise erhalten Sie Ihre Rollengruppen. Bestimmen Sie die Datenquellen. Welche Datenquellen sind vorhanden, um die Definition von Rollen zu vereinfachen? Ihre Personaldatenbank ist gewiss ein wertvoller Informationsspeicher, der Benutzerrollen definieren kann. Ihr Computerinventarverzeichnis kann bei der Festlegung von Computerrollen helfen, z.B. Rollen für Desktopcomputer im Gegensatz zu Laptops. Definieren der Namenskonvention und der Verfahren Nutzen Sie die Anleitungen aus dieser technischen Referenz beim Entwurf Ihres rollenbasierten Verwaltungsmodells. Stellen Sie Namenskonventionen auf und legen Sie konsistente Verfahren zur Verwaltung von Rollen und Befugnissen fest. Zusammenzufassend möchte ich noch einmal wiederholen, was wir zum Thema Namenskonventionen erörtert haben: Ich empfehle eine Namenskonvention, die Präfixe nutzt, um den Gruppentyp anzugeben, z.B. ACL für Ressourcenzugriffsgruppen und APP für Gruppen zur Bereitstellung von Anwendungen. Verwenden Sie ein Trennzeichen, z.B. einen Unterstrich, um die Schlüsselkomponenten des Gruppennamens voneinander zu trennen, z.B. ACL_2008 Budget_Read oder APP_Visio. Die Schlüsselkomponenten, die Sie im Gruppennamen trennen müssen, sind das Präfix (ACL oder APP) und die Art der Berechtigungen, die Sie der Gruppe zuweisen (in unserem Budget-Beispiel Read). Verwenden Sie dasselbe Trennzeichen nicht an anderen Stellen des Namens. (Beachten Sie das Leerzeichen im Gruppennamen 2008 Budget.) Diese Vorgehensweise erlaubt Ihnen, Trennzeichen einzusetzen, um einen Gruppennamen in benutzerdefinierten Skripts und Werkzeuge zu zerlegen. Das Ziel unserer Namenskonvention sollte darin bestehen, einen logischen Standard aufzustellen, für dessen Verwendung es drei Möglichkeiten gibt. Erstens sollte die Konvention das schnelle Auffinden von Gruppen ermöglichen. Wir haben gesehen, dass es einfacher ist, die richtige Ressourcenzugriffsgruppe zu finden, wenn wir einem Ordner eine Berechtigung zuweisen, ACL_ eingeben und dann aus einer Liste von Gruppen mit diesem Präfix eine Auswahl treffen können. Dabei verringert sich die Gefahr, dass wir irrtümlich eine Gruppe eines anderen Typs verwenden. Zweitens sollte die Konvention die Überwachung vereinfachen. Lösung 1.6 hat gezeigt, wie einfach es ist, eine Ordnerstruktur nach einer Berechtigung für ein Objekt zu durchsuchen, dessen Name nicht mit ACL_ anfängt, um sicherzustellen, dass andere Gruppentypen nicht falsch verwendet werden. Drittens sollten die Gruppennamen das Erstellen von Skripts ermöglichen, die den Standard verwenden, um den Gruppennahmen zu unterteilen, wieder zusammenzusetzen und den Zweck der Gruppe zu verstehen. Legen Sie fest, wie Gruppen erstellt werden. Welche Felder müssen ausgefüllt werden – z.B. Beschreibung und Anmerkung – und was sollten diese Felder enthalten? Welcher Gültigkeitsbereich ist der richtige (an dieser Stelle können Sie über globale und lokale Domänengruppen diskutieren) für die einzelnen Gruppentypen? Wie müssen Gruppen verschachtelt werden? Welche Werkzeuge und Skripts sollten verwendet werden? Wer sollte befugt sein, die Mitgliedschaft verschiedener Gruppen zu erstellen, zu ändern und zu verwalten? Welche Vorgehensweise ist zur Deaktivierung und eventuellen Löschung einer Gruppe erforderlich? 1.7 Einrichten der rollenbasierten Verwaltung 83 Auffordern zur Disziplin Im nächsten Schritt sollten Sie festlegen, wie Sie eine disziplinierte Einhaltung des Entwurfs und des Verfahrens unterstützen und fordern können. Die Führungsqualitäten sowie eine ausführliche Dokumentation können die Disziplin stärken, aber ich möchte Ihnen etwas Zeit sparen: Sie werden wahrscheinlich feststellen, dass Ihre rollenbasierte Verwaltung nicht strikt eingehalten wird. Die systemeigenen Werkzeuge von Microsoft erfordern zu viele Klicks und nehmen keine Validierung der Eingaben anhand Ihrer Geschäftsanforderungen vor. Daher ist Ihnen gut damit gedient, Werkzeuge zu erstellen, die Gruppen bereitstellen und deren Erstellung und Verwaltung automatisieren. Wenn Ihre Werkzeuge Ihren Entwurf durchsetzen und anwenden und wenn Ihre Administratoren Ihre Werkzeuge verwenden, weil Sie sie effizient gestaltet und gut zugänglich gemacht haben, ist die Wahrscheinlichkeit größer, dass Sie Ihr Ziel erreichen. Wenn Sie die Möglichkeit haben, die Disziplin bei der rollenbasierten Verwaltung zu verstärken, sollten Sie es tun! Dies kann geschehen, indem Sie Werkzeuge erstellen und dann dafür sorgen, dass deren Verwendung die einzige Möglichkeit ist, die die Administratoren zur Verwaltung von Gruppen haben. Dazu sind einige Tricks erforderlich, die in Lösungsgruppe 8 ausführlich beschrieben werden. Kurz gesagt, Sie müssen die Delegierung aufheben, die den Administratoren die Verwaltung von Gruppen erlaubt. Ja – Sie hindern sie daran, Gruppen in Active Directory zu erstellen oder zu ändern. Sie kodieren Ihre Werkzeuge so, dass die Gruppenverwaltung mithilfe alternativer Anmeldeinformationen erfolgt. Damit ist ein Mitarbeiter des Supports nicht in der Lage, die Gruppenmitgliedschaft direkt im Snap-In Active Directory-Benutzer und -Computer zu ändern, kann aber Ihr Werkzeug verwenden, das unter einem besonderen Konto läuft (das dem Supportmitarbeiter nicht bekannt ist), um Änderungen in Active Directory für ihn vorzunehmen. Ihr Werkzeug übernimmt die Aufgabe in Vollmacht für den Administrator. Möglichkeiten der Bevollmächtigung – das Ausführen von Aufgaben mit versteckten alternativen Anmeldeinformationen – werden in Lösungsgruppe 8 vorgestellt. Aufstellen eines Übergangsplans Sie werden die rollenbasierte Verwaltung nicht an einem Wochenende bereitstellen. Es ist ein langwieriger, sich entwickelnder Prozess. Sie können jedoch einige Maßnahmen ergreifen, um den Wechsel erheblich einfacher zu gestalten. Zuerst können Sie Ihre neuen Gruppen erstellen und die vorhandenen Gruppen darin verschachteln. Nehmen wir zum Beispiel an, dass Ihre Analyse Ihnen dabei geholfen hat, vier Ordner mit Ressourcen für das Budget und drei Gruppen ausfindig zu machen, denen die Leseberechtigung für diese einzelnen Ordner erteilt wurde. Die rollenbasierte Verwaltung legt nahe, dass Sie eine Gruppe mit dem Namen ACL_Budget_Read anlegen, um die Befugnis zum Lesen des Budgets zu verwalten. Erstellen Sie die Gruppe und weisen Sie ihr die Leseberechtigung für die Ordner zu. Verschachteln Sie die drei Gruppen in der ACL-Gruppe. Nun gehen wir einen Schritt weiter: Wenn ein weiterer Budgetordner erstellt wird, erteilen Sie die Leseberechtigung nur der ACL-Gruppe. Falls Sie Zeit haben, können Sie die drei alten Gruppen aus den Budget-Zugriffssteuerungslisten entfernen. Mit anderen Worten, beginnen Sie mit der Umsetzung der optimalen Vorgehensweise und bereinigen Sie nach und nach die Überreste veralteter Verwaltungsmethoden. Tokengröße Ich hoffe, Sie von den Vorteilen der rollenbasierten Verwaltung überzeugt zu haben. Es ist ein einfaches Konzept mit einem relativ einfachen Plan zur Umsetzung. Es sind eine Menge Geschäftsanalysen, Leitungs- und Projektverwaltungsaufgaben damit verbunden, aber das Verfahren ist recht unkompliziert. 84 Lösungsgruppe 1: Rollenbasierte Verwaltung Hoffentlich stimmen Sie mir zu, dass der ROI die rollenbasierte Verwaltung zu einem Kinderspiel macht. Ich sage »hoffentlich«, weil ich diese Lösungsgruppe mit dem einzigen Nachteil unseres Ansatzes zur rollenbasierten Verwaltung abschließe – einem Nachteil, der sich aus einer Einschränkung unter Windows ergibt. Dabei handelt es sich um eine Einschränkung, die sich zwar in fast allen Situationen umgehen lässt, die aber, wie ich festgestellt habe, das ansonsten strahlende Bild einer verwaltbaren Zukunft durch dunkle Wolken überschattet. Daher möchte ich, dass Sie genug Begeisterung für die rollenbasierte Verwaltung aufbringen, um dieses Problem durchzuarbeiten. Bei dem Problem handelt es sich um die Tokengröße. Wenn ein Benutzer mit einem System »in Berührung kommt« – indem er sich lokal oder über Remotedesktop anmeldet oder eine Verbindung zu einer Ressource, z.B. einem freigegebenen Ordner, herstellt –, generiert das System bekanntlich ein so genanntes Token, das die Sicherheitskennungen (SIDs) des Benutzers und aller Gruppen enthält, denen er angehört. Es ist möglich, dass Sie Ihre rollenbasierte Verwaltung erweitern und ein Benutzer so vielen Gruppen angehört, dass das Token »überfüllt« wird und allerlei merkwürdige Dinge geschehen. Um dieses Problem zu lösen, können Sie eine Änderung an der Registrierung vornehmen, mit der die Größe des Sicherheitstokens erweitert wird. Diese Änderung muss jedoch für alle praktischen Zwecke auf allen Systemen Ihres Unternehmens durchgeführt werden – vorzugsweise durch ein Werkzeug zur Verwaltung von Änderungen, z.B. die Gruppenrichtlinie. Ähnliche Probleme können auftreten, wenn die Gruppenmitgliedschaft den Rahmen überschreitet, der vom Kerberos Privilege Attribute Certificate (PAC) oder bei einer Anforderung unterstützt wird, die zur Authentifizierung an der IIS-Anwendung über HTTP verwendet wird. Ein Token oder PAC enthält SIDs für den Benutzer und die Gruppen, denen er angehört. Diese SIDs erforderten vor Windows Server 2000 Service Pack 4 (SP4) 40 Byte Speicherplatz. Die maximale Tokengröße unter Windows 2000 bis Service Pack 1 betrug 8.000 Byte. Unter Berücksichtigung des zusätzlichen Aufwands und der Benutzerrechte bedeutete dies, dass ein Benutzer 100 bis 2000 Gruppen angehören konnte, bevor das Token versagte. Mit Service Pack 2 von Windows 2000 wurde die Standardtokengröße auf 12.000 Byte erweitert. Darüber hinaus änderte sich mit Service Pack 4 von Windows 2000 die Art und Weise, in der SIDs in einem Token gespeichert wurden, sodass lokale Domänengruppen zwar immer noch 40, globale und universelle Gruppen aber nur 8 Byte benötigten. Durch diese Änderungen konnte ein Benutzer bis Windows Server 2003 zu 200 bis 300 Gruppen gehören, bevor das Token versagte. Wichtig Wenn ein Benutzer oder Computer mehr als 200 bis 300 Gruppen angehört, versagen das Sicherheitstoken und andere Authentifizierungsmechanismen. Was bedeutet es genau, wenn ich von »versagen« spreche? Wie der Berater so gerne sagt: »Das kommt darauf an.« Die Symptome bei diesem Problems sind zahlreich. Windows-Anwendungen, Webanwendungen, das Betriebssystem Windows – was auch immer – fängt an, Probleme zu bereiten. Diese manifestieren sich ebenfalls auf unterschiedliche Weise: Meldungen, dass der Zugriff verweigert wird, Probleme bei der Anmeldung, sogar bizarre Fehlermeldungen wie »Nicht genügend Arbeitsspeicher«. Sie werden abenteuerliche Dinge feststellen, die Sie nie zuvor gesehen haben. Leider ist es dadurch nahezu unmöglich, die Hauptursache zu erkennen. Daher ist es wichtig, dieses Problem jetzt bei der Planung der Zukunft Ihrer Windows-Administration zu berücksichtigen. Wenn Sie dieses Buch lesen und dabei das Problem der Tokengröße vergessen, wird es Sie auf schreckliche Weise verfolgen. Glauben Sie mir. Ich habe es erlebt. 1.7 Einrichten der rollenbasierten Verwaltung 85 Lassen Sie mich das erste Gerücht richtig stellen. Viele »Experten« behaupten, dass Sie einfach nicht in der Lage sein werden, auf irgendetwas zuzugreifen, wenn Sie zu so vielen Gruppen gehören, dass eine Authentifizierungskomponente wie ein Token versagt. Das ist nicht wahr. Ich habe es in der Praxis erlebt. Wir hatten einen Benutzer (an der Spitze der Nahrungskette), der knapp über 400 Gruppen angehörte. Dieser Benutzer konnte hervorragend arbeiten. Er konnte lediglich einige wenige Aufgaben nicht ausführen, die den Gruppen zwar gestattet waren, die aber, wie sich herausstellte, gerade aus seinem Token »herausgefallen« waren. Denken Sie an die sich daraus ergebenden Auswirkungen auf die Sicherheit: Das Token hat einfach einige seiner Mitgliedschaften verloren. Glücklicherweise erhielten wir nur Meldungen vom Typ »Zugriff verweigert«, wenn der Benutzer versuchte, etwas auszuführen. Was würde geschehen, wenn solchen fehlenden Mitgliedschaften die Berechtigung Verweigern erteilt worden wäre? Ein wenig furchterregend, nicht wahr? Und dies passierte auf Windows Server 2003Domänencontrollern. Sehr furchterregend. Lassen Sie mich nun das zweite Gerücht richtig stellen – das Gerücht, das Problem mit der Tokengröße sei gelöst. Das ist nicht der Fall. Änderungen an der Tokengröße und die Verringerung der Anzahl von Bytes, die von den globalen Gruppen-SIDs verwendetet werden, waren sehr hilfreich. Die Benutzer können nun etwa 300 Gruppen angehören, bevor Probleme auftreten. Das sind viele Gruppen. Somit ist es weniger wahrscheinlich, dass Sie auf Grenzen stoßen. Aber eines Tages, in irgendeiner Situation, in irgendeinem Unternehmen mit einer rollenbasierten Verwaltung mittlerer Komplexität werden sie auftreten. Vergrößern von MaxTokenSize Die Lösung dieses Problems beginnt mit einer Änderung des Werts MaxTokenSize in der Registrierung, den Sie unter HKEY_LOCAL_MACHINE\System\CurrentControlSet\Lsa\Kerberos\Parameters finden. Der Parameter weist den Typ REG_DWORD auf und kann auf einen Dezimalwert von bis zu 65536 oder einen Hexadezimalwert von bis zu 0xFFFF gesetzt werden. Diese Größe unterstützt theoretisch die Mitgliedschaft in etwa 1600 lokalen Domänengruppen oder 8000 globalen/universellen Gruppen. Bei einer Umsetzung mit gemischten Gruppen stoßen Sie damit bei 3000 bis 5000 Gruppenmitgliedschaften an eine Grenze. Das ist eine riesige Anzahl für einen einzelnen Benutzer oder Computer. Da Tokens lokal generiert werden, müssen Sie diese Änderung auf allen Rechnern vornehmen, mit denen ein Benutzer »in Berührung kommt«, der mehr als 200 bis 300 Gruppen angehört. Das betrifft jeden Domänencontroller, jeden Server und – wer weiß, wo sich diese Benutzer überall anmelden – jeden Client. Mit anderen Worten, in der Praxis müssen Sie die Änderung an jedem System Ihres Unternehmens gesamtstrukturweit vornehmen. Ich empfehle Ihnen dringend, eine benutzerdefinierte administrative Gruppenrichtlinienvorlage (ADM oder ADMX) zu erstellen, um diese Änderung über ein Gruppenrichtlinienobjekt durchzuführen. Eine so signifikante und weit reichende Änderung sollte gründlich getestet werden. Außerdem rate ich Ihnen, den Wert nicht sofort auf 0xFFFF zu setzen. Erhöhen sie ihn langsam und bedacht in Übereinstimmung mit dem geschätzten tatsächlichen Bedarf. Ich habe diese Änderung in der Praxis erprobt und noch kein Versagen festgestellt. Allerdings bleibe ich beim Testen sehr vorsichtig und zurückhaltend. Ich mache Sie auf Lektüre aufmerksam, die notwendig ist, wenn ihr rollenbasiertes Verwaltungsmodell darauf zusteuert, einen Benutzers mit mehr als 200 Gruppenmitgliedschaften zu verwalten. Wichtig Die Knowledge Base-Artikel 263693 und 327825 sind notwendige Lektüre. 86 Lösungsgruppe 1: Rollenbasierte Verwaltung Die Knowledge Base-Artikel 263693 und 327825 enthalten auch Links zu verwandten Artikeln. Wenn Sie im Internet nach diesen beiden Artikelnummern suchen, werden Sie auch alle Arten von weiteren Informationen zu diesem Problem finden. Abschließend schlage ich vor, sich tokensz.exe von der Microsoft-Downloadwebsite unter http://www.microsoft.com/downloads herunterzuladen. Tokensz führt mehrere Aufgaben aus, die Ihnen dabei helfen, die Bedenken wegen der Token- und PAC-Größe zu verstehen und die Größe zu berechnen. Unabhängig davon, was im Internet angegeben oder angedeutet wird, auch auf der Website von Microsoft, denken Sie bitte daran, dass das Problem der Tokengröße tatsächlich existiert. Heutzutage ist die Wahrscheinlichkeit, dass diese Probleme auftreten, geringer als bei älteren Versionen von Windows, aber das gilt für Unternehmen ohne rollenbasierte Verwaltung. Wenn Sie beginnen, Gruppen aufgrund ihrer Leistungsfähigkeit einzusetzen, werden Sie auf dieses Problem stoßen. Ändern Sie MaxTokenSize gesamtstrukturweit in angemessenen, getesteten Schritten. Obwohl MaxTokenSize Probleme mit den von Gruppenmitgliedschaften überfluteten Sicherheitstokens löst, sollten Sie auch daran denken, dass es weitere Einschränkungen gibt, auf die Sie stoßen könnten, darunter die Größe von Authentifizierungsheadern, die über HTTP gesendet werden und Webanwendungen authentifizieren. Benutzerdefinierte Anwendungen, die die Gruppenmitgliedschaft auswerten, können auch unter der Voraussetzung einer begrenzten Anzahl von Gruppenmitgliedschaften für einen einzelnen Benutzer erstellt worden sein. Seien Sie wachsam im Hinblick auf Probleme. Ich möchte Ihnen noch einige weitere Gedanken zu dieser Problematik auf den Weg geben. Einrichten von globalen (oder universellen) Gruppen anstelle von lokalen Domänengruppen Sie können die Begrenzung der Tokengröße umgehen, indem Sie mehr globale oder universelle Gruppen und weniger lokale Domänengruppen verwenden. Gegenüber den für lokale Domänengruppen erforderlichen 40 Byte beanspruchen globale und universelle Gruppen in einem Sicherheitstoken nur 8 Byte. Daher können Sie in einem Standardtoken mit 12 KB viel mehr globale Gruppen unterbringen. Eine lokale Domänengruppe in eine globale Gruppe umzuwandeln und umgekehrt, ist einfach. Konvertieren Sie sie einfach zunächst in eine universelle Gruppe. Der Hauptvorteil lokaler Domänengruppen liegt darin, dass sie Benutzer und globale Gruppen anderer Domänen enthalten können. In einer einzigen, aus mehreren Domänen bestehenden Gesamtstruktur weisen universelle Gruppen denselben Vorteil auf. Bei Domänen in verschiedenen Gesamtstrukturen müssen Sie an lokalen Domänengruppen festhalten, allerdings nur in Situationen, in denen sich die Befugnisverwaltung auf Benutzer oder Rollen in der externen Domäne erstreckt. In Zeiten einer zunehmenden Bedeutung der Gesamtstrukturisolation und Active Directory Federated Services (ADFS) wird es außerdem weniger Vertrauensstellungen zwischen den Domänen in verschiedenen Gesamtstrukturen geben. Besteht keine Vertrauensstellung, sind lokale Domänengruppen wirklich nicht erforderlich. Falls sich das für Sie so anhört, als würde ich darauf anspielen, die rollenbasierte Verwaltung vollständig mit globalen Gruppen umzusetzen, haben Sie Recht. In einer Einzeldomäne ohne Vertrauensstellungen ist dieses Ziel gut erreichbar. Globale Gruppen können in globalen Gruppen verschachtelt werden. Mit jeder Gruppen-SID, die nur 8 Byte beansprucht, können Sie daher die Geschäftslogik der rollenbasierten Verwaltung unterstützen. Wir sind in die Zeit von Windows NT 4.0 zurückgelehrt, als alle Gruppen global waren. Diesmal ist es jedoch nicht mühsam, sondern effektiv. Aufräumen der sIDHistory-Attribute Als zweiten Tipp möchte ich Ihnen mit auf den Weg geben, sicherzustellen, dass Ihr SID-Verlauf aufgeräumt ist. Das sIDHistory-Attribut eines Benutzers, einer Gruppe oder eines Computers verfolgt 1.7 Einrichten der rollenbasierten Verwaltung 87 frühere SIDs des Objekts, wenn es von einer anderen Domäne mithilfe von Werkzeugen wie Active Directory Migration Tool (ADMT) migriert wurde. Einige Unternehmen, die von Windows NT 4.0 zu Active Directory gewechselt haben oder aus dem einen oder anderen Grund über konsolidierte Domänen verfügen, waren bei der Bereinigung alter SIDs nachlässig, sodass sie die sIDHistory-Attribute von Objekten löschen können. SIDs in sIDHistory beanspruchen ebenfalls Platz im Token. Falls Sie eine Migration durchgeführt haben, sollten Sie sie jetzt fertig stellen. Nachdem Sie Ihre sIDHistory-Attribute aufgeräumt, einen Wechsel zu einem vollständig globalen Gruppenmodell in Betracht gezogen und vielleicht den Wert von MaxTokenSize etwas erhöht haben, sollten Sie nun genug Platz für die effektive Unterstützung Ihrer Geschäftslogikschicht durch den Verzeichnisdienst Active Directory haben. Zusammenfassung Die rollenbasierte Verwaltung ist eine Kunst und eine Wissenschaft. Ihre Leitung, die effektive Projektverwaltung, ein sorgfältiger Entwurf und die Kommunikation ermöglichen es Ihnen, die rollenbasierte Verwaltung in Ihrem Unternehmen voranzubringen. Legen Sie einen Kurs fest, der die Analyse, den Entwurf und die Implementierung von Werkzeugen und Verfahren umfasst, um die Einhaltung der rollenbasierten Verwaltung zu unterstützen und durchzusetzen. Seien Sie darauf vorbereitet, die rollenbasierte Verwaltung zu verteidigen, betonen Sie Schwachpunkte der bisherigen Vorgehensweise, die so alltäglich geworden sind, dass sie von Administratoren leicht übersehen werden, und stellen Sie die Leistungspotenziale heraus, die durch die rollenbasierte Verwaltung erzielt werden können. Sie sollten wissen, wie Sie mit der Frage »Werden das nicht zu viele Gruppen?« umgehen, indem Sie auf die Tatsache hinweisen, dass die erhöhte Anzahl von Gruppen zu einer verringerten Anzahl von Verwaltungspunkten führt. Planen Sie den Übergang, indem Sie die optimale Vorgehensweise wählen, aber die früheren Verfahren so lange unterstützen, bis Sie Zeit haben, mit den Altlasten aufzuräumen. Bedenken Sie, dass bei einem Benutzer (oder Computer) mit mehr als 200 bis 300 Gruppenmitgliedschaften die Authentifizierungskomponenten, z.B. das Sicherheitstoken, auszufallen beginnen. Die Symptome für das Versagen sind bizarr, können (vom Standpunkt der Sicherheit) beängstigende Auswirkungen haben und praktisch unmöglich zu erkennen sein. Bevor Tokens auszufallen beginnen, sollten Sie Maßnahmen ergreifen, indem Sie in der Gesamtstruktur den Registrierungswert MaxTokenSize ändern. Bei extrem großen oder komplexen Anwendungen der rollenbasierten Verwaltung können Sie zur Stützung des Modells die ausschließliche Verwendung von globalen (und universellen) Gruppen in Betracht ziehen. Außerdem können Sie diese Problematik als Anstoß nutzen, um die sIDHistory-Attribute von Benutzern, Computern und Gruppen zu bereinigen, die Sie von anderen Domänen migriert haben. Ich beende diese Lösungsgruppe nur ungern mit einer solch ausdrücklichen Warnung hinsichtlich einer so wichtigen Überlegung, aber es handelt sich dabei um etwas, das Sie sehr genau wissen müssen, wenn die rollenbasierte Verwaltung erfolgreich eingesetzt werden soll. Dieses Problem wird Sie nicht gleich treffen. Seien Sie einfach gewarnt. Damit sind Sie dafür gerüstet, den Kurs zu einer Umgebung abzustecken, in der Ihre Verwaltung von IT-Ressourcen – Benutzer, Gruppen, Computer, Ressourcen, Anwendungen, Konfigurationen usw. – mit Ihrer Geschäftsstrategie, den Arbeitsabläufen, Prozessen und Anforderungen im Einklang steht, diese unterstützt und mit ihnen wachsen kann. Die rollenbasierte Verwaltung ist die Mühe auf alle Fälle wert! 89 L Ö S U N G S G R U P P E 2 Verwalten von Dateien, Ordnern und Freigaben In diesem Kapitel: Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Verwalten der Ordnerstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Verwalten des Zugriffs auf Stammdatenordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Delegieren der Verwaltung von freigegebenen Ordnern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Festlegen der freizugebenden Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse . . . . . . . . . . . . 2.7 Berechtigungen für freigegebene Ordner (SMB-Berechtigungen) . . . . . . . . . . . . . . . . . . . . . . . 2.8 Skripts zum Erstellen einer SMB-Freigabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9 Erstellen freigegebener Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 Vermeiden der Vererbungsweiterleitung beim Verschieben von Dateien und Ordnern . . . . . . . 2.11 Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei . . . . . . . . . . . . . . . . 2.12 Verbergen nicht zugänglicher Objekte vor den Benutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.13 Wer hat eine Datei geöffnet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.14 Senden von Nachrichten an die Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.15 Serverübergreifendes Verteilen von Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.16 Speicherplatzverwaltung mit Kontingenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.17 Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien . . . 2.18 Erstellen eines effektiven delegierten DFS-Namespace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 99 103 107 110 112 120 123 125 135 139 142 144 146 150 153 156 162 Seit Beginn der Microsoft Windows-Netzwerkära besteht eine der Hauptaufgaben von Windows Server-Computern darin, den Benutzern einen zentralen Speicherort für die gemeinsame Nutzung von Dateien bereitzustellen. Wahrscheinlich denken Sie, dass wir, die Gemeinde der IT-Spezialisten, nach mittlerweile 15 Jahren die Dateiserver ergründet haben – und dass Microsoft all unsere Anforderungen daran erfüllt hat. Leider weisen die Werkzeuge, mit denen wir Dateiserver verwalten, jedoch grundlegende Lücken auf, wobei einige davon zu einer Umgebung führen können, in der die Daten bestenfalls nicht gut genug verwaltet werden und schlimmstenfalls Sicherheitsverletzungen und Dienstverweigerungen oder Datenverlust ausgesetzt sind. 90 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Mit den Lösungen in diesem Kapitel sind Sie dafür gerüstet, die Daten auf Dateiservern mit weniger Aufwand konsistenter und sicherer zu verwalten. Dabei gehe ich auf allgemeine Fragen zu WindowsDateiservern, freigegebenen Ordnern, Zugriffssteuerungslisten, zugriffsbasierten Auflistungen, Schattenkopien usw. ein. Außerdem sehen wir uns hochinteressante Funktionen von Windows Server 2008 an, darunter Änderungen an den Befugnissen der Dateibesitzer. Szenarien, Probleme und Lösungen Aller Wahrscheinlichkeit nach verfügen Sie über Erfahrungen mit der Verwaltung von Dateien und Ordnern in freigegebenen Ordnern auf Windows Server-Comuptern. Außerdem nehme ich an, dass Sie die Grundlagen von Sicherheitskomponenten wie NTFS-Berechtigungen, Vererbung und Freigabeberechtigungen kennen. Sie mögen sich fragen, was es noch über Windows-Dateiserver zu lernen gibt. Betrachten Sie die folgenden Szenarien und die häufigen Lücken bei der Einrichtung der Dateiserverrolle: Die Abteilung Finanzwesen von Blue Yonder Airlines unterhält eine Freigabe, die von den Mitarbeitern dieser Abteilung zur gemeinsamen Arbeit an Dateien, vor allem Microsoft Office ExcelArbeitsblättern, genutzt wird. Der Netzwerkadministrator hat die Freigabe mit einer Berechtigung geschützt, die den Benutzern die Berechtigung Ändern für den Stammordner erteilt, die natürlich an alle Unterordner vererbt wird. Am frühen Montagmorgen, noch bevor der Kaffee seine Wirkung gezeigt hat, öffnet Mark Bebbington, Leiter des Finanzwesens bei Blue Yonder Airlines, in diesem Ordner eine Excel-Budgetkalkulation, die er für eine Präsentation beim leitenden Geschäftsführer vorbereiten will. Dann klickt er auf den übergeordneten Ordner, um sich dessen Inhalt anzusehen und zu entscheiden, ob er noch ein weiteres Arbeitsblatt ändern muss. Er richtet sein Augenmerk auf Excel und die Tabelle, in der er eine Zahl findet, die nicht dort hingehört. Er drückt die Taste (Entf). Da er nicht merkt, dass der Fokus noch auf dem Windows Explorer-Ordner liegt, und nicht auf die vor seinen immer noch verschlafenen Augen auftauchende Meldung achtet, klickt er auf eine Schaltfläche und erkennt dann – zu spät –, dass er soeben den Inhalt der gesamten Freigabe Finance gelöscht hat. Wichtig Wenn Sie jemals einer Gruppe die NTFS-Zulassungsberechtigung Ändern erteilt haben, haben Sie sich selbst genau dieser Art von Situation ausgesetzt: einer unabsichtlichen oder beabsichtigten Dienstverweigerung. Jeder Benutzer der Gruppe kann alle Elemente aus dem freigegebenen Ordner löschen. Ingenieure bei Trey Research benötigen Zugang zu Konstruktionsunterlagen. Die Netzwerkarchitektur und die Art der Konstruktionsanwendungen haben dazu geführt, dass der IT-Abteilung ein Nabe-und-Speiche-Modell am besten geeignet erschien. Bei diesem Modell werden Änderungen nur im Rechenzentrum an den Masterdokumenten des freigegebenen Ordners vorgenommen und dann auf schreibgeschützte Kopien auf Servern an verschiedenen geographischen Standorten verteilt. Da mit der Replikationstechnologie auch NTFS-Zugriffssteuerungslisten repliziert werden, muss die IT-Abteilung herausfinden, wie sie eine Änderung an den Dokumenten der Nabenfreigabe ermöglichen und dabei Änderungen an denen der Speichenfreigaben verhindern kann. Im Rahmen ihrer Bemühungen, die Kosten zu senken, die Reaktionsgeschwindigkeit gegenüber den Kunden zu erhöhen und die Produktivität der Benutzer zu verbessern, möchte die IT-Abteilung von Proseware Inc. den Benutzern ermöglichen, versehentlich gelöschte, geänderte oder überschriebene Szenarien, Probleme und Lösungen 91 Dokumente wiederherzustellen, ohne den Support um eine Wiederherstellung der Dokumente von der Bandsicherung bitten zu müssen. Die Administratoren bei Litware Inc. wollen verhindern, dass technisch nicht versierte und nicht autorisierte Benutzer Datei- oder Ordnerberechtigungen ändern, selbst wenn sie die betreffenden Dateien oder Ordner selbst erstellt haben. Die IT-Spezialisten von Contoso Ltd. wollen das Auffinden der Daten durch einen logischen Namespace vereinfachen, in dem die Ordner in einer für die Benutzer nachvollziehbaren Weise angeordnet sind, anstatt ihnen eine nach den Servern gegliederte Ansicht der gespeicherten Ordner vorzugeben. Bei der Untersuchung von Lösungen für diese und andere Szenarien werden wir uns mit den folgenden Fragen und Anforderungen befassen: Was hat sich bei den Dateidiensten in Windows Server 2008 geändert? Wie können Sie das Verschieben von Ordnern auf einen neuen Server vereinfachen, ohne alle Verknüpfungen, zugeordneten Laufwerke und Verweise »anfassen« zu müssen, die auf den ursprünglichen Speicherort verweisen? Inwiefern unterscheidet sich die Kontingentverwaltung in Windows Server 2008 von der in Windows 2000 und Windows Server 2003? Wie können Sie nach dem Wegfall des Befehls NET SEND die mit einem Server verbundenen Benutzer benachrichtigen, bevor Sie den Server vom Netz trennen? Welche Gefahr besteht darin, Dateien zwischen zwei Ordnern mit unterschiedlichen Berechtigungen zu verschieben? Wie kann ein Benutzer daran gehindert werden, die Berechtigungen für eine von ihm erstellte Datei zu ändern? Die Lösungen in diesem Kapitel umfassen folgende Komponenten: NTFS-Dateien und -Ordner mit ihren Berechtigungen: Zugriffssteuerungseinträge, die als Teil der Zugriffssteuerungsliste im Sicherheitsdeskriptor der Datei oder des Ordners gespeichert sind Freigegebene Ordner mit ihren Berechtigungen und Einstellungen: Name der Freigabe (einschließlich versteckter Freigaben), SMB-Zugriffssteuerungslisten (Server Message Block) für die Freigabe, Beschreibung der Freigabe und Cacheeinstellungen Zugriffsbasierte Auflistung Ersteller-Besitzer-Eintrag im Sicherheitsdeskriptor Die neue Identität Eigentümerrechte Gruppenrichtlinien Kontingentverwaltung DFS-Namespaces (Distributed File System) Symbolische Verknüpfungen und Netzwerkumgebungen Schattenkopien von freigegebenen Ordnern Robocopy 92 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2.1 Effizientes Arbeiten mit dem ACL-Editor Die Lösung im Überblick Typ Anleitung und Tipps Funktionen und Werkzeuge Die Benutzeroberflächen des ACL-Editors: das Dialogfeld Eigenschaften auf der Registerkarte Sicherheit, das Dialogfeld Erweiterte Sicherheitseinstellungen und das Dialogfeld Berechtigungseintrag Zusammenfassung Halten Sie sich im Hinblick auf die Feinheiten des ACL-Editors auf dem neusten Stand sind. Vorteile Effektivere Verwendung des ACL-Editors Einführung Sicherheitsberechtigungen werden in Form von Zugriffssteuerungseinträgen in der diskreten Zugriffssteuerungsliste innerhalb des Sicherheitsdeskriptors (SD) einer sicherungsfähigen Ressource eingerichtet. Der Sicherheitsdeskriptor enthält auch die Systemzugriffssteuerungsliste, in der Überwachungseinträge gespeichert werden. Eine wichtige Funktion des NTFS-Dateisystems ist die Unterstützung von Sicherheitsdeskriptoren für Dateien und Ordner. Dabei handelt es sich eigentlich nur um ein Attribut einer Datei oder eines Ordners zusammen mit Datenattributen, die die eigentlichen Daten einer Datei enthalten. All diese Attribute bilden das, was wir uns unter einer Datei oder einem Ordner auf einem NTFS-Volume vorstellen. Die Zugriffssteuerungsliste bildet die Grundlage, um festzulegen, welche Benutzer in welchem Maße auf Ressourcen zugreifen können. Das Sicherheitstoken, das vom lokalen Sicherheitsteilsystem des Servers generiert wird und den Benutzer bei seiner Authentifizierung repräsentiert, enthält nicht nur die Sicherheitskennungen (Security Identifiers, SIDs) des Benutzerkontos, sondern der gesamten Gruppe, in der dieser Benutzer Mitglied ist. Versucht ein Benutzer, auf eine Ressource zuzugreifen, werden die SIDs in dem Token mit denen der Zugriffssteuerungsliste verglichen, wobei die Zugriffsmöglichkeit anhand der zugelassenen oder verweigerten Einzelberechtigungen ermittelt wird. In Windows 2000 bestimmen Zugriffssteuerungslisten den Zugriff unabhängig davon, ob der Zugang zur Ressource lokal oder über das Netzwerk erfolgt. Mit Windows Server 2003 kam die Möglichkeit hinzu, verschiedene Berechtigungen danach festzulegen, ob der Zugriff lokal oder über das Netzwerk erfolgt. Der ACL-Editor Die Zugriffssteuerungsliste einer Ressource wird auf der grafischen Benutzeroberfläche im ACL-Editor offen gelegt. Nachstehend finden Sie eine Liste der Schnittstellen dieses Werkzeugs: Die Registerkarte Sicherheit im Eigenschaftendialogfeld der Ressource Das Dialogfeld Erweiterte Sicherheitseinstellungen Das Dialogfeld Berechtigungseintrag Die einzelnen Oberflächen werden in den folgenden Abschnitten ausführlicher beschrieben. 2.1 Effizientes Arbeiten mit dem ACL-Editor 93 Die Registerkarte »Sicherheit« des Eigenschaftendialogfelds Klicken Sie mit der rechten Maustaste auf eine beliebige Ressource, wählen Sie Eigenschaften und anschließend die Registerkarte Sicherheit. Auf dieser Registerkarte, die auch als Dialogfeld Sicherheitseinstellungen bezeichnet wird und in Abbildung 2.1 dargestellt ist, sehen Sie eine allgemeine Übersicht über den Sicherheitsdeskriptor. Abbildung 2.1 Das Dialogfeld Sicherheitseinstellungen In der unteren Hälfte der Registerkarte Sicherheit im Eigenschaftendialogfeld des sicherungsfähigen Objekts erscheinen Berechtigungsvorlagen für typische Zugriffsmöglichkeiten wie Lesen, Schreiben, Ändern und Vollzugriff. Sie stellen eine Gruppe detaillierterer Berechtigungen dar, die Sie auf der Registerkarte Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen und im Dialogfeld Berechtigungseintrag finden. Der Typ der Berechtigungsvorlage wird durch die Kontrollkästchen neben der Berechtigung angezeigt. Ein Häkchen in dem Feld neben einer Berechtigungsvorlage gibt an, dass sie aktiv ist. Zulassungs- und Verweigerungsvorlagen erscheinen in der Spalte Zulassen bzw. Verweigern. Vorlagen, die mit einem inaktiven (grauen) Kontrollkästchen versehen sind, wurden von einem übergeordneten Ordner oder Volume geerbt, während aktive Kontrollkästchen (mit weißem Hintergrund) der ausgewählten Datei oder dem Ordner explizit zugewiesen wurden. Im Allgemeinen erzählen diese Berechtigungsvorlagen nicht die ganze Geschichte. Sind für einen Sicherheitsprinzipal Zugriffssteuerungseinträge vorhanden, die sich nicht gut in die im Dialogfeld Sicherheitseinstellungen genannten Vorlagen einfügen, wird die Vorlage mit der Bezeichnung Speziell am Ende der Berechtigungsliste aktiviert. In diesem Fall müssen Sie auf Erweitert klicken, um weitere Einzelheiten über die Berechtigungen in der Zugriffssteuerungsliste einzusehen. Es ist jedoch ratsam, immer auf Erweitert zu klicken und sich die Details des auf der Registerkarte Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen angezeigten Sicherheitsdeskriptors anzusehen. 94 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Empfohlene Vorgehensweisen Klicken Sie auf der Registerkarte Sicherheit im Eigenschaftendialogfeld stets auf die Schaltfläche Erweitert, um sich Einzelheiten über den im Dialogfeld Erweiterte Sicherheitseinstellung angezeigten Sicherheitsdeskriptor anzusehen. Hinweis Bei einem Volume, auf das der Zugriff über das Snap-In Freigabe- und Speicherverwaltung erfolgt, erscheint die Schaltfläche Erweitert nicht auf der Registerkarte Sicherheit des Eigenschaftendialogfelds. Sie müssen die Eigenschaften des Volumes von Windows Explorer aus aufrufen, um auf das Dialogfeld Erweiterte Sicherheitseinstellungen zugreifen zu können. Die Registerkarte »Berechtigungen« des Dialogfelds »Erweiterte Sicherheitseinstellungen« Klicken Sie auf der Registerkarte Sicherheit des Eigenschaftendialogfelds auf die Schaltfläche Erweitert, um weitere Detailinformationen über den Sicherheitsdeskriptor einzusehen. Diese Oberfläche, die als Dialogfeld Erweiterte Sicherheitseinstellungen bezeichnet wird und in Abbildung 2.2 dargestellt ist, enthält die Registerkarten Berechtigungen, Überwachung, Besitzer und Effektive Berechtigungen. Abbildung 2.2 Das Dialogfeld Erweiterte Sicherheitseinstellungen Die Registerkarte Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen weist die folgenden wichtigen Funktionen auf, von denen Ihnen einige eventuell nicht bekannt sind: In Windows Server 2008 und Windows Vista befinden sich die einzelnen Registerkarten des Dialogfelds im Ansichtsmodus. Sie müssen auf die Schaltfläche Bearbeiten einer Registerkarte klicken (die nur aktiviert ist, wenn Ihre Anmeldeinformationen es Ihnen ermöglichen, Änderungen vorzunehmen), um die Einstellungen auf dieser Registerkarte zu ändern. Im Gegensatz zur Registerkarte Sicherheit im Dialogfeld Eigenschaften können Sie die Quelle der geerbten Berechtigungen erkennen: Die Spalte Geerbt von gibt den übergeordneten Ordner oder das 2.1 Effizientes Arbeiten mit dem ACL-Editor 95 Volume an, wo die Berechtigungen explizit festgelegt sind. Bei dem ausgewählten Objekt explizit zugewiesenen Berechtigungen enthält die Spalte Geerbt von den Eintrag <nicht geerbt>. Anfangs werden die Einträge der Berechtigungen in kanonischer Reihenfolge angezeigt. Das bedeutet, dass die Zugriffssteuerungseinträge in der Reihenfolge aufgeführt sind, in der sie vom lokalen Sicherheitssubsystem anhand der SIDs im Sicherheitstoken analysiert werden. Die für einen bestimmten angeforderten Zugriffstyp zuerst gefundene Übereinstimmung – Zulassung oder Verweigerung – wird verwendet, um herauszufinden, ob dieser Zugriff zulässig ist. Daher befinden sich die »wichtigeren« oder »Gewinner«-Berechtigungen am Anfang der Liste. Indem Sie auf den Kopf einer beliebigen Spalte klicken, können Sie die Liste sortieren und damit von der kanonischen Reihenfolge abgehen. Wenn Sie das Dialogfeld Erweiterte Sicherheitseinstellungen schließen und erneut öffnen, erscheinen die Zugriffssteuerungslisten allerdings wieder in kanonischer Reihenfolge. Empfohlene Vorgehensweisen Nutzen Sie die kanonische Berechtigungsliste in der Standardansicht des Dialogfelds Erweiterte Sicherheitseinstellungen. Durch die Interpretation der kanonischen Reihenfolge ist es leichter zu verstehen, wie Berechtigungen auf einen Benutzer angewendet werden, der versucht, auf eine Ressource zuzugreifen. Berechtigungssätze (Zugriffssteuerungseinträge), die in der Spalte Berechtigung nicht korrekt zusammengefasst werden können, werden dort mit dem Vermerk Speziell angezeigt. Windows Server 2008 zeigt den Hinweis Speziell auch dann an, wenn es sich bei dem ausgewählten Objekt um einen Ordner handelt und die Vererbungseinstellung der Berechtigung nicht Diesen Ordner, Unterordner und Dateien lautet. Zusätzliche Funktionen und Einsatzmöglichkeiten des Dialogfelds Erweiterte Sicherheitseinstellungen werden wir weiter hinten in diesem Kapitel untersuchen. Das Dialogfeld »Berechtigungseintrag« Die auf der Registerkarte Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen aufgeführten Berechtigungen sind sicherlich informativer als die Registerkarte Sicherheit des Eigenschaftendialogfelds, dennoch sind sie immer noch nicht vollständig aufgeführt. Um alle detaillierten Zugriffssteuerungseinträge, aus denen sich eine Berechtigung zusammensetzt, zu bestimmen, müssen Sie sich das Dialogfeld Berechtigungseintrag ansehen. Empfohlene Vorgehensweisen Wenn eine Berechtigung auf der Registerkarte Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen den Vermerk Speziell in der Spalte Berechtigung aufweist oder wenn Sie sich einen vollständigen Überblick über eine bestimmte Berechtigung verschaffen wollen, sollten Sie sich diese im Dialogfeld Berechtigungseintrag ansehen. Auf das Dialogfeld Berechtigungseintrag greifen Sie wie folgt zu: 1. Befindet sich die Registerkarte Berechtigungen des Dialogfelds Erweiterte Sicherheitseinstellungen im Ansichtsmodus (was am Vorhandensein der Schaltfläche Bearbeiten und dem Nichtvorhandensein der Schaltflächen Hinzufügen und Entfernen erkennbar ist), klicken Sie auf Bearbeiten. 2. Wählen Sie einen Berechtigungseintrag aus der entsprechenden Liste aus. 3. Klicken Sie auf Bearbeiten. Das in Abbildung 2.3 dargestellte Dialogfeld Berechtigungseintrag erscheint. 96 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Abbildung 2.3 Das Dialogfeld Berechtigungseintrag Die im Dialogfeld Berechtigungseintrag angezeigte Berechtigung wird in die einzelnen darin enthaltenen Berechtigungen (Zugriffssteuerungseinträge) unterteilt. Darüber hinaus wird der Status der einzelnen Berechtigungen in Zulassungs- und Verweigerungseinträge aufgelöst. Bei einem geerbten Zugriffssteuerungseintrag ist das Kontrollkästchen inaktiv (grau). Handelt es sich um einen expliziten Eintrag, ist es aktiv (weiß). Schließlich werden die Vererbungsbereiche in der Dropdownliste Übernehmen für angezeigt. Die Vererbung wird in anderen Lösungen dieser Lösungsgruppe noch erörtert. Bestimmen der effektiven Berechtigungen Ob eine Anforderung für den Zugriff auf eine Datei oder einen Ordner zugelassen oder verweigert wird, hängt vom lokalen Sicherheitsteilsystem ab, das die Zugriffssteuerungseinträge in der Zugriffssteuerungsliste in kanonischer Reihenfolge anhand der SIDs im Sicherheitstoken des Benutzers auswertet. Der erste Zugriffssteuerungseintrag für einen bestimmten Zugriffstyp (z.B. Lesen, Schreiben, Löschen), der auf eine im Token vorhandene SID angewendet wird, entscheidet, ob der Zugriff zugelassen oder verweigert wird. Die effektiven Berechtigungen eines Benutzers werden anhand der kumulierten Wirkung der auf das Benutzerkonto angewendeten zugelassenen, verweigerten, expliziten und geerbten Berechtigungen und der Gruppen beurteilt, in denen diese Konten Mitglied sind. Um zu verstehen, wie die effektiven Berechtigungen abgeleitet werden, müssen wir uns die Hierarchie der Berechtigungseinstellungen und ihre Priorität innerhalb einer Zugriffssteuerungsliste ansehen. Für Zugriffssteuerungseinträge gelten die folgenden goldenen Regeln: Dateiberechtigungen heben Ordnerberechtigungen auf. Von Bedeutung ist allein die Zugriffssteuerungsliste für das Objekt, auf das der Zugriff erfolgt. Wenn ein Benutzer nur über die Leseberechtigung für einen Ordner verfügt, ihm für ein untergeordnetes Objekt (z.B. eine Datei) aber Vollzugriff zugewiesen wurde, hat der Benutzer vollen Zugriff auf dieses Objekt. Dasselbe gilt auch umgekehrt. Wenn dem Benutzer zwar Vollzugriff auf einen Ordner, aber für die Datei nur eine Leseberechtigung gewährt wurde, kann er die Datei lesen, aber nicht ändern. 2.1 Effizientes Arbeiten mit dem ACL-Editor 97 Zugriffssteuerungseinträge weisen einen von fünf möglichen Status auf. Nicht angegeben: Weder das Kontrollkästchen Zulassen noch Verweigern ist aktiviert. Explizit zugelassen: Das Kontrollkästchen Zulassen ist aktiviert. Durch Vererbung zugelassen: Das Kontrollkästchen Zulassen ist grau und aktiviert – das bedeutet, dass die Berechtigung vom übergeordneten Ordner oder Volume geerbt wird. Explizit verweigert: Das Kontrollkästchen Verweigern ist aktiviert. Durch Vererbung verweigert: Das Kontrollkästchen Verweigern ist grau und aktiviert – das bedeutet, dass die Berechtigung vom übergeordneten Ordner oder Volume geerbt wird. Zulassungsberechtigungen sind kumulativ. Unabhängig davon, ob Sie Berechtigungen einem Benutzer oder einer oder mehreren Gruppen zuweisen, denen der Benutzer angehört, gelten alle Berechtigungen für den Benutzer. Wenn beispielsweise einem einzelnen Benutzer Leseberechtigungen für eine Datei erteilt werden und er Mitglied einer Gruppe ist, die über Schreibberechtigungen verfügt, hat der Benutzer sowohl Lese- als auch Schreibberechtigungen. Wenn dieser Benutzer außerdem Mitglied einer anderen Gruppe ist, die über Vollzugriff auf den übergeordneten Ordner verfügt, und die Vererbung verwendet wird, hat der Benutzer vollen Zugriff auf die Ressource. Verweigern hebt Zulassen auf. Die Berechtigung Verweigern hat Vorrang vor Zulassen. Wenn ein Benutzer Mitglied von sieben Gruppen ist, von denen sechs über die Zulassungsberechtigung für eine angegebene Ressource verfügen, wird dem Benutzer somit der Zugriff verweigert, wenn einer Gruppe die Berechtigung Verweigern zugewiesen wurde. Denken Sie jedoch daran, dass der Zugriff pro Zugriffssteuerungseintrag bestimmt wird. Wenn ein Benutzer über Zulassungsberechtigungen, die ihm Lese- und Schreibzugriff gewähren, und eine Verweigerungsberechtigung für den Schreibzugriff verfügt, kann er die Datei nicht ändern, aber weiterhin lesen. Explizite Berechtigungen heben geerbte Berechtigungen auf. Ein aktiviertes graues Kontrollkästchen im ACL-Editor weist darauf hin, dass Berechtigungen von einem oder mehreren übergeordneten Ordnern geerbt werden. Obwohl die Berechtigungen unter Standardbedingungen zwischen geerbten und expliziten Berechtigungen kumulativ sind (was durch ein weißes Kontrollkästchen mit einem Häkchen angezeigt wird), hebt im Falle zweier widersprüchlicher Einstellungen die explizite Berechtigung die geerbte auf. Nehmen Sie zum Beispiel an, dass ein Benutzer eine Verweigerungsberechtigung für den Lesezugriff geerbt hat, aber eine Gruppe, zu der dieser Benutzer gehört, über eine explizite Zulassungsberechtigung für den Lesezugriff verfügt. Letztere hat Vorrang, sodass der Benutzer die Datei lesen kann. Der Zugriff wird oft nicht nur von NTFS-Zugriffssteuerungseinträgen bestimmt. Zugriffsteuerungseinträge für NTFS-Dateien und -Ordner bestimmen den höchstmöglichen Zugriff auf die Ressource. Allerdings kann der Ressourcenzugriff durch Berechtigungen weiter verändert werden, die von dem Dienst angewendet werden, durch den der Zugriff erfolgt. Berechtigungen für freigegebene Ordner (SMB-Berechtigungen) schränken beispielsweise den Zugriff weiter ein, wenn sie restriktiver sind als die effektiven NTFS-Berechtigungen. Bei Ressourcen, die durch eine IIS-Anwendung bereitgestellt werden, kann der Zugriff durch restriktivere Sicherheitseinstellungen für die Website oder das virtuelle Verzeichnis begrenzt werden. Die Auswertung effektiver Berechtigungen kann kompliziert sein. Die in Abbildung 2.4 gezeigte Registerkarte Effektive Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen kann hilfreich sein. Um sie verwenden zu können, markieren Sie die Benutzer oder Gruppen, für die Sie die effektiven Berechtigungen auswerten wollen. Eine grobe Schätzung der effektiven Berechtigungen des Sicherheitsprinzipals wird angezeigt. 98 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Abbildung 2.4 Die Registerkarte Effektive Berechtigungen Allerdings hat dieses Werkzeug seine Schwächen. Folgendes wird von ihm nicht berücksichtigt: Ob der Benutzer lokal, über Remotedesktop oder von einem entfernten Standort aus über einen freigegebenen Ordner auf die Datei zugreift. Diese Zugriffsmodalitäten werden durch StandardSIDs wie Interaktiv, Netzwerk oder Interaktive Remoteanmeldung dargestellt. Andere Standard-SIDs, darunter Eingeschränkter Zugriff, Anonymous-Anmeldung und Standardbenutzer. Mehr über die Registerkarte Effektive Berechtigungen, ihre Funktionsweise und ihre Schwächen erfahren Sie durch einen Klick auf den Link Wie werden die effektiven Berechtigungen bestimmt. Damit gelangen Sie zur Hilfedatei für die Benutzeroberfläche der Zugriffssteuerung mit dem Thema Bestimmen effektiver Berechtigungen. Empfohlene Vorgehensweisen Entwickeln Sie ein Verständnis für die Einschränkungen der Registerkarte Effektive Berechtigungen. Letztendlich ist es schwierig und zeitraubend, den Ressourcenzugriff auf der Ebene einzelner Zugriffssteuerungslisten auszuwerten. In Lösungsgruppe 1, »Rollenbasierte Verwaltung«, habe ich einen datenbankgesteuerten Ansatz zur Verwaltung einer Unternehmensumgebung vorgestellt, bei dem Active Directory-Gruppen sowohl zur Einrichtung der Datenbankkomponente als auch der Geschäftslogik der rollenbasierten Verwaltung eingesetzt wurden. Ich habe empfohlen, Gruppen mit Namen wie ACL_Budget_Read und ACL_Budget_Edit zu erstellen, um ein Verhältnis von 1:1 zwischen einem Datenbankobjekt (der Gruppe) und einem Verwaltungspunkt (die Zugriffssteuerungslisten für eine Ressourcensammlung, z.B. das Budget) herzustellen. Diese Vorgehensweise bietet einen sichtbaren, leicht zu verwaltenden Ansatz für die Sicherheit verteilter Ressourcen. 2.2 Verwalten der Ordnerstruktur 99 Empfohlene Vorgehensweisen Sofern die Geschäftsanforderungen nicht anderes erforderlich machen, sollten Sie keine Standard-SIDs – z.B. Interaktiv, Netzwerk, Remote, Terminalserverbenutzer, Eingeschränkter Zugriff, Anonymous-Anmeldung oder Standardbenutzer – zur Konfiguration von Zugriffssteuerungseinträgen für eine sicherungsfähige Ressource verwenden. Dadurch wird die Auswertung effektiver Berechtigungen wesentlich schwieriger. Stattdessen sollten Sie die Verwaltung von Zugriffssteuerungslisten steuerbar machen, indem Sie die in Lösungsgruppe 1 vorgestellten Konzepte und Werkzeuge für die rollenbasierte Zugriffssteuerung verwenden. Zusammenfassung Die Benutzeroberflächen des ACL-Editors können zur Anzeige und zur Bearbeitung von Berechtigungen für eine sicherungsfähige Ressource verwendet werden, z.B. eine Datei oder einen Ordner. Auch wenn Sie mit der Registerkarte Sicherheit des Eigenschaftendialogfelds sowie den Dialogfeldern Erweiterte Sicherheitseinstellungen und Berechtigungseintrag vertraut sind, sollten Sie sicherstellen, dass Sie die empfohlenen Vorgehensweisen kennen und befolgen: Klicken Sie beim Betrachten von Berechtigungen auf der Registerkarte Sicherheit stets auf die Schaltfläche Erweitert und werten Sie die Berechtigungen mithilfe des Dialogfelds Erweiterte Sicherheitseinstellungen aus. In den meisten Situationen bieten die Berechtigungsvorlagen auf der Registerkarte Sicherheit kein vollständiges Bild der Zugriffssteuerungsliste einer Ressource. Entwickeln Sie ein Verständnis für die Bedeutung der kanonischen Auflistung von Berechtigungen im Dialogfeld Erweiterte Sicherheitseinstellungen. Die oben in der Liste stehenden Berechtigungen heben die darunter angegebenen auf. Sich dieser Tatsache bewusst zu sein, kann die Auswertung effektiver Berechtigungen vereinfachen. Wenn eine Berechtigung in der Spalte Berechtigung auf der Registerkarte Berechtigungen des Dialogfelds Erweiterte Sicherheitseinstellungen mit dem Vermerk Speziell versehen ist, sollten Sie sie sich im Dialogfeld Berechtigungseintrag ansehen, um ihre Zugriffssteuerungseinträge und ihren Vererbungsbereich vollständig zu verstehen. Beachten Sie, dass es sich bei den Ergebnissen auf der Registerkarte Effektive Berechtigungen um eine Schätzung der effektiven Berechtigungen handelt und dass sie eine Reihe besonderer Identitäten ignorieren. Um die Last der Sicherheitsverwaltung zu verringern, sollten Sie die in Lösungsgruppe 1 vorgestellten Konzepte und Werkzeuge für die rollenbasierte Zugriffssteuerung umsetzen. 2.2 Verwalten der Ordnerstruktur Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge NTFS-Volumes Zusammenfassung Unterhalten Sie eine breite und flache Ordnerstruktur, die die Verwaltung der Ordnersicherheit mithilfe der Vererbung ermöglicht und die Anzahl der Ebenen mit expliziten Zugriffssteuerungslisten so gering wie möglich hält. Vorteile Erhöhte Verwaltbarkeit und Sicherheit 100 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Einführung »Die Schönheit geht nur so tief wie die Haut«, lautet ein englisches Sprichwort. Auch das Leben ist schön, wenn der Umfang der Sicherheitsverwaltung nur so tief geht wie die Oberfläche. Mit anderen Worten: »Gehen Sie in die Breite, nicht in die Tiefe.« Ordner dienen zwei Zwecken. Ein Ordner strukturiert Inhalte – Dateien und Unterordner – in einem einzigen Container. Durch die Pflege einer Zugriffssteuerungsliste mit vererbbaren Zugriffssteuerungseinträgen stellt ein Ordner den Gültigkeitsbereich für die Sicherheit seiner Inhalte her. Normalerweise zeichnen sich Dateiserver durch Ordnerhierarchien aus mehreren Ebenen aus. Ein Ordner der höchsten Ebene namens Data kann beispielsweise über Unterordner für die einzelnen Abteilungen verfügen. Ein Abteilungsunterordner gliedert sich wiederum in Projekt- und Teamordner. Diese Ordner enthalten viele Ebenen mit Unterordnern. Erstellen einer breiten statt einer tiefen Ordnerstruktur Solche tiefen Ordnerstrukturen sind relativ unbedenklich, was die Rolle dieser Ordner bei der Strukturierung von Inhalten anbelangt. Wenn Sie jedoch die Sicherheit genauer festlegen müssen, indem Sie Zugriffssteuerungslisten für Ordner über mehr als ein paar Ebenen verwalten, wird es wahrscheinlich mühsam für Sie. Je tiefer Sie gehen, um den Zugriff für einen bestimmten Benutzer oder eine Gruppe festzulegen, desto schwieriger wird die Sicherheitsverwaltung. Sie fangen an, sich mit einer wachsenden Anzahl von Ausnahmen von der Regel zu beschäftigen, wobei es sich bei der »Regel« um das Maß des von den Zugriffssteuerungslisten für einen übergeordneten Ordner festgelegten Zugriffs handelt und Sie diesen Zugriff auf einen Unterordner öffnen oder sperren müssen. Möglicherweise stoßen Sie auch auf sich gegenseitig ausschließende Zugriffsanforderungen. Ein Benutzer namens Joe benötigt beispielsweise Zugang zu einem Ordner, der sich in der vierten Ebenen befindet, sollte aber nicht auf Dateien in dem darüber, d.h. auf der dritten Ebene liegenden Ordner zugreifen. Dass eine solche Anforderung mithilfe der Berechtigungen und Rechte von Ordner durchsehen erfüllt werden kann, bedeutet nicht, dass dies auf diese Weise geschehen sollte. Stattdessen ist es empfehlenswert, die Berechtigungen für einen Ordner auf höherer Ebene festzulegen, damit sie ausreichen, um die Sicherheit für alle Unterordner und Dateien zu beschreiben, und um zu gestatten, dass sie durch die Vererbung der Zugriffssteuerungslisten in der Hierarchie an die darunter liegenden Ebenen übertragen werden. Empfohlene Vorgehensweisen Die Sicherheit sollte möglichst durch Vererbung verwaltet werden, damit Berechtigungen von einer einzigen, höheren Stelle innerhalb der Ordnerhierarchie aus verwaltet werden können. Die Grundlagen der Vererbung Wie mehrere andere Windows-Komponenten zeichnen sich Zugriffssteuerungslisten durch das Konzept der Vererbung aus. Mit der Vererbung von Zugriffssteuerungslisten können Sie Berechtigungen für einen Container, z.B. ein Volume oder einen Ordner, festlegen und automatisch an den Inhalt dieses Containers weiterleiten. Wenn Sie die Berechtigungen für einen Ordner zuweisen, sind diese standardmäßig vererbbar und werden an alle Objekte in diesem Ordner weitergeleitet. Dies geschieht, weil untergeordnete Objekte so konfiguriert sind, dass sie die standardmäßige Weiterleitung vererbbarer Berechtigungen von der übergeordneten an die untergeordneten Zugriffssteuerungslisten erlauben. Daher muss ein Administrator die 2.2 Verwalten der Ordnerstruktur 101 Berechtigungen nur einmal für den übergeordneten Ordner festlegen, wobei diese dann automatisch an die untergeordneten Dateien und Ordner weitergeleitet werden. Verwalten der Vererbung Bei der Vererbung handelt es sich um die Auswirkungen der kombinierten Vererbungsflags für die Zugriffssteuerungseinträge eines übergeordneten Volumes oder Ordners und einer untergeordneten Datei oder eines Unterordners mit zugelassener Vererbung. Daher wird die Vererbung an zwei Verwaltungspunkten eingerichtet: in einem übergeordneten Ordner oder Volume und in einer untergeordneten Datei oder einem Unterordner. An übergeordneter Stelle werden die Vererbungsflags von Zugriffssteuerungseinträgen mithilfe des weiter vorn in Abbildung 2.3 dargestellten Dialogfelds Berechtigungseintrag konfiguriert. Insbesondere die Dropdownliste Übernehmen für erlaubt Ihnen festzulegen, für welchen der folgenden Bereiche ein Berechtigungseintrag gilt: Diesen Ordner, Unterordner und Dateien (Standard) Nur diesen Ordner Diesen Ordner und Unterordner (keine Dateien) Diesen Ordner und Dateien (aber keine Unterordner) Nur Unterordner und Dateien (aber nicht diesen Ordner oder dessen Dateien) Nur Unterordner (aber nicht diesen Ordner oder dessen Dateien) Nur Dateien (nur in diesem Ordner, nicht in Unterordnern) Darüber hinaus wird die Vererbung vom Kontrollkästchen Berechtigungen nur für Objekte und/oder Container in diesem Container übernehmen beeinflusst. Diese Option ändert die Vererbung des Gültigkeitsbereichs so, dass sie nur auf die darunter liegende Ebene und nicht auf einen vollständigen Zweig innerhalb einer Ordnerstruktur angewendet wird. Ob eine untergeordnete Datei oder ein Unterordner die Vererbung zulässt, wird im Dialogfeld Erweiterte Sicherheitseinstellungen auf der Registerkarte Berechtigungen des Objekts festgelegt. Auf Systemen mit Windows XP und Windows Server 2003, die Sie in Abbildung 2.5 sehen, ist die Vererbungsoption mit Berechtigungen übergeordneter Objekte auf untergeordnete Objekte, sofern anwendbar, vererben. Diese mit den hier definierten Einträgen mit einbeziehen. bezeichnet, auf Systemen mit Windows Vista und Windows Server 2008, wie weiter vorn in Abbildung 2.2 gezeigt, lautet sie Vererbbare Berechtigungen des übergeordneten Objektes einschließen. Die Vererbung von Zugriffssteuerungseinträgen erfolgt detailliert und dynamisch. Wenn ein untergeordnetes Objekt so konfiguriert wird, dass es die Vererbung zulässt, werden alle Änderungen an den vererbbaren Berechtigungen des übergeordneten Ordners oder Volumes ohne Eingreifen des Benutzers an das untergeordnete Objekt weitergeleitet. Durch geerbte Berechtigungen werden keine Berechtigungen entfernt, die dem untergeordneten Objekt explizit zugewiesen wurden. Bei der Weiterleitung von Zugriffssteuerungseinträgen handelt es sich um ein bedeutendes Konzept: Das Hinzufügen, Entfernen oder Ändern eines vererbbaren Zugriffssteuerungseintrags veranlasst das NTFS-Dateisystem, die Zugriffssteuerungslisten für die untergeordneten Objekte, die die Vererbung zulassen, neu zu konfigurieren. Dieses Verhalten zieht Probleme nach sich, denen wir uns an anderer Stelle in dieser Lösungsgruppe widmen. In einem Container mit einer Vielzahl von Objekten kann diese Weiterleitung einige Zeit in Anspruch nehmen. 102 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Wichtig Wenn ein Notfall eintritt, bei dem Sie den Zugriff auf Ressourcen schnell einschränken müssen, sollten Sie anstelle der NTFS-Berechtigungen die Berechtigungen für SMB-Freigabe ändern. Änderungen an letzteren Berechtigungen treten sofort für die gesamte Freigabe in Kraft, während Änderungen an NTFS-Berechtigungen an jedes einzelne Objekt weitergeleitet werden müssen, was viel Zeit in Anspruch nehmen kann. Abbildung 2.5 Das Dialogfeld Erweiterte Sicherheitseinstellungen unter Windows XP und Windows Server 2003 Der Einfluss der Vererbung auf die Ordnerhierarchie Da es empfehlenswert ist, die Sicherheit möglichst mit Vererbung zu verwalten, ist es ebenfalls ratsam, die Konfiguration expliziter Berechtigungen für Ordner über eine größere Anzahl von Ebenen innerhalb der Ordnerhierarchie möglichst zu vermeiden. Ideal wäre es, wenn nur für Ordner der ersten Ebene (die Abteilungsordner) und vielleicht die der zweiten Ebene (die Team- oder Projektordner) explizite Zugriffssteuerungseinträge festgelegt werden müssten. Es ist unwahrscheinlich, dass dieser Idealzustand bei allen freigegebenen Ordnern hergestellt werden kann, aber es lohnt sich, dieses Ziel zu verfolgen. Im Allgemeinen sollten Sie sich für die Verwaltung der Zugriffssteuerung an die folgende empfohlene Vorgehensweise halten. Empfohlene Vorgehensweisen Am besten sind Sie mit einer breiten anstelle einer tiefen Ordnerstruktur bedient. Wenn Sie eine größere Anzahl von Ordnern auf höherer Ebene haben, können Sie die Zugriffssteuerungslisten für diese Ordner effektiver verwalten. 2.3 Verwalten des Zugriffs auf Stammdatenordner 103 Darstellen von freigegebenen Ordnern in einer logischen Hierarchie mithilfe von DFS-Namespaces Möglicherweise haben Sie Bedenken, dass Ihre Benutzer bei einer flacheren und breiteren Strukturierung Ihrer Ordner Schwierigkeiten mit der Navigation haben, um die von ihnen benötigten Ressourcen zu finden. In Lösung 2.15, »Serverübergreifendes Verteilen von Dateien« auf Seite 150 untersuchen wir die folgenden empfohlenen Vorgehensweisen im Einzelnen. Empfohlene Vorgehensweisen Verwenden Sie die Funktion DFS-Namespaces, um den Benutzern Ihre freigegebenen Ordner in einer Hierarchie zu präsentieren, die die logische Anordnung der Informationen in Ihrem Unternehmen widerspiegelt, anstatt die Benutzer zu zwingen, die physische Speicherstruktur von Servern und Ordnern zu durchsuchen. Die Funktion DFS-Namespaces gestattet Ihnen, die physische Struktur freigegebener Ordner – die Server, auf denen sich die freigegebenen Ordner befinden, und die Pfade zu diesen Ordnern – zu abstrahieren und freigegebene Ordner in einem virtuellen Namespace darzustellen. Das bedeutet, dass Sie über eine physische Struktur der Ordner auf Ihren Servern verfügen können, die effektive Verwaltungsbereiche für den Zugriff auf Ressourcen bilden (d.h. eine breite anstelle einer tiefen Ordnerstruktur) und diese Ordner für die Benutzer weiterhin als eine scheinbar tiefe, strukturierte Hierarchie darstellen. Wenn Sie mit Datenverwaltungskonzepten vertraut sind, wissen Sie, dass die Verwaltung von Dateien und Ordnern (die physische Speicherung Ihrer Dateien und Ordner) von der Darstellung der Ordner für die Benutzer (der logischen Anordnung der Ordner in einem DFS-Namespace) getrennt ist. Als angenehmer Nebeneffekt weisen NTFS-Volumes eine höhere Leistung auf, wenn die Verzeichnisstruktur breit und nicht tief ist. Daher sind Sie nicht nur in der Lage, den Zugriff effektiver zu verwalten, sondern erhalten auch eine wenn auch nur geringe Leistungssteigerung. Zusammenfassung Erstellen Sie eine Ordnerstruktur, die nicht tief, sondern breit ist. Verwenden Sie Ordner auf höherer Ebene, vorzugsweise auf der ersten oder zweiten Ebene, um die Zugriffsverwaltung festzulegen, indem Sie eine Zugriffssteuerungsliste mit Zugriffssteuerungseinträgen anwenden, die in den unteren Hierarchieebenen nicht aufgehoben, geöffnet oder gesperrt werden müssen. Präsentieren Sie den Benutzern die freigegebenen Ordner in einem DFS-Namespace, der die logische Anordnung der Inhalte Ihres Unternehmens widerspiegelt. 2.3 Verwalten des Zugriffs auf Stammdatenordner Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge NFTS-Volumes, Gruppenrichtlinieneinstellungen für das Dateisystem Zusammenfassung Erstellen Sie konsistente Stammdatenordner auf allen Dateiservern und verwalten Sie den Zugriff auf diese Ordner durch die Supportteams mithilfe von Gruppenrichtlinien, um Zugriffssteuerungslisten anzuwenden und zu pflegen. Vorteile Erhöhte Verwaltbarkeit und Sicherheit 104 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Einführung In dieser technischen Referenz betone ich stets, dass es sich bei der Konsistenz und der Verwaltbarkeit um grundlegende Bausteine der Sicherheit handelt. Außerdem erinnere ich Sie daran, die Sicherheit auf der Basis der geringsten Privilegien zu verwalten, wobei den Benutzern nur die Rechte und Berechtigungen erteilt werden, die sie zur Ausführung Ihrer Arbeit brauchen. Diese Lösung bietet eine verwaltbare Möglichkeit, die Konsistenz sowie die geringsten Privilegien für Stammdatenordner oder Datenordner der höchsten Ebene auf Dateiservern zu erzielen. Erstellen von mindestens einem konsistenten Stammdatenordner auf jedem Dateiserver Der Zugriff auf Dateiserver erfolgt von einem entfernten Standort aus, und zwar nicht nur wenn Benutzer eine Verbindung mit freigegebenen Ordnern herstellen, sondern auch wenn Supportmitarbeiter Aufgaben wie das Erstellen, Entfernen und Sichern von Ordnern ausführen müssen. Allzu oft sehe ich Datenvolumes auf einem Dateiserver mit Ordnern der höchsten Ebene, die den Benutzern als Freigaben dienen. Was geschieht aber, wenn Supportmitarbeiter Berechtigungen für einen dieser freigegebenen Ordner der höchsten Ebene ändern müssen? Sie können es nicht. Wenn sie eine Remoteverbindung zu einem freigegebenen Ordner herstellen, können sie dessen NTFS-Berechtigungen nicht ändern. Sie können lediglich die Berechtigungen von Ordnern innerhalb des freigegebenen Ordners ändern. Um die NTFS-Berechtigungen des freigegebenen Ordners zu ändern, müssen sie entweder MMC-Snap-Ins verwenden oder in Windows Explorer das Eigenschaftendialogfeld des Ordners öffnen. Normalerweise ist der letzte Ansatz erstrebenswert. Das bedeutet aber, dass die Supportmitarbeiter die Verbindung mit dem Server entweder über Remotedesktop herstellen müssen (was aufgrund der Begrenzung des für die Remoteverwaltung verwendeten Remote Desktop Protocols [RDP] auf zwei Verbindungen möglicherweise nicht wünschenswert ist) oder über eine versteckte Administrationsfreigabe des Servers (was bedeutet, dass sie der Gruppe Administratoren auf dem Server angehören müssen und dadurch wahrscheinlich mehr Rechte haben, als sie wirklich brauchen). Mitarbeiter, die freigegebene Ordner pflegen, sind nicht notwendigerweise auch Administratoren für den Server (oder sollten es nicht unbedingt sein), sodass sie nicht immer in der Lage sind, mithilfe der versteckten Laufwerksfreigabe eine Verbindung zum Server herzustellen. Daher sollten Sie einen Ordner auf dem Datenvolume des Servers erstellen, auf dem sich freigegebene Ordner befinden, und diesen Ordner so schützen, dass Benutzer und Supportmitarbeiter die für die Ordner der ersten Ebene dieses Stamms erforderlichen Aufgaben ausführen kann. Wir bezeichnen solche Ordner als Stammdatenordner. Wenn sich beispielsweise jeweils auf dem Laufwerk E:\ zweier Server freigegebene Ordner für Projekte und Teams befinden, erstellen Sie auf jedem Server einen Ordner mit dem Namen E:\Data. Supportmitarbeiter müssen die Möglichkeit haben, einen Ordner der höchsten Ebene für ein neues Projekt oder Team zu erstellen. Weisen Sie einer geeigneten Gruppe den Zugriffssteuerungseintrag Ordner erstellen zu. Abbildung 2.6 zeigt diese Berechtigung. Erstellen Sie zusätzlich Stammdatenordner, wenn einer der in den freigegebenen Ordnern gespeicherten Datentypen die Delegierung an besondere Supportteams erfordert. Sind drei verschiedene IT-Supportteams für die Verwaltung von Unterordnern zuständig, sollten Sie drei verschiedene Stammdatenordner mit Zugriffssteuerungslisten erstellen, die die von den einzelnen Teams benötigte Funktionalität bereitstellen. 2.3 Verwalten des Zugriffs auf Stammdatenordner 105 Abbildung 2.6 Der Zugriffssteuerungseintrag Ordner erstellen Sie sollten möglichst dafür sorgen, dass die Datenvolumes und Stammdatenordner auf Dateiservern konsistent sind. Dieser Ansatz erlaubt Ihnen eine effektivere Sicherheitsverwaltung für diese Ordner. Verwalten und Durchsetzen von Zugriffssteuerungslisten für Stammdatenordner durch Gruppenrichtlinien Wenn Stammdatenordner konsistent bereitgestellt werden, können Gruppenrichtlinien wirksam zur Verwaltung und Durchsetzung der Zugriffssteuerungslisten für diese Ordner eingesetzt werden. Die folgenden Schritte zeigen, auf welche Weise das geschieht: 1. Erstellen Sie ein für auf Ihre Dateiserver zugeschnittenes Gruppenrichtlinienobjekt. Geben Sie ihm einen mit Ihren Namenskonventionen übereinstimmenden Namen, z.B. GPO_File Server Configuration. Weitere Informationen über Gültigkeitsbereiche und Namen von Gruppenrichtlinienobjekten finden Sie in Lösungsgruppe 10, »Verwalten von Änderungen, Konfiguration und Richtlinien«. 2. Öffnen Sie das Gruppenrichtlinienobjekt im Gruppenrichtlinienverwaltungs-Editor (der in Windows Server 2003 Gruppenrichtlinienobjekt-Editor heißt). 3. Begeben Sie sich zu Computerkonfiguration\Richtlinien\Windows-Einstellungen\Sicherheitseinstellungen\Dateisystem. 4. Klicken Sie mit der rechten Maustaste auf Dateisystem und wählen Sie Datei hinzufügen. Beachten Sie, dass Ihnen der Befehl Datei hinzufügen die Verwaltung von Dateien und Ordnern erlaubt. 5. Geben Sie in das Feld Ordner den Pfad zu dem Stammdatenordner auf den lokalen Volumes der Dateiserver ein, die von dem Gruppenrichtlinienobjekt verwaltet werden, z.B. E:\Data. 106 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Beachten Sie, dass Sie den Pfad einfach eingeben können – der Ordner muss nicht auf dem System vorhanden sein, von dem aus Sie das Gruppenrichtlinienobjekt bearbeiten. 6. Klicken Sie auf OK. 7. Das in Abbildung 2.7 gezeigte Dialogfeld Datenbanksicherheit wird geöffnet. Es entspricht der Registerkarte Sicherheit im Eigenschaftendialogfeld eines Ordners. Verwenden Sie es zur Konfiguration der entsprechenden Zugriffssteuerungsliste für den angegebenen Stammdatenordner. Seien Sie besonders sorgfältig bei der Verwaltung des Vererbungsbereichs für die Einträge dieser Zugriffssteuerungsliste. Eine ausführliche Anleitung und Beispiele für Zugriffssteuerungslisten erhalten Sie weiter hinten in diesem Kapitel. Abbildung 2.7 Die Konfiguration von Gruppenrichtlinien für die Ordnersicherheit 8. Klicken Sie auf OK, um das Dialogfeld Datenbanksicherheit zu schließen. 9. Aktivieren Sie Datei oder Ordner konfigurieren sowie Vererbbare Berechtigungen an alle Unterordner und Dateien übermitteln. Wenn alle Unterordner und Dateien eine Zugriffssteuerungsliste enthalten sollen, die mit der des Stammdatenordners identisch ist, wählen Sie Vorhandene Berechtigungen für alle Unterordner und Dateien mit vererbbaren Berechtigungen ersetzen. 10. Klicken Sie auf OK. Das Gruppenrichtlinienobjekt setzt nun die angegebene Zugriffssteuerungsliste für alle Systeme durch, die sich in deren Gültigkeitsbereich befinden und einen Ordner enthalten, der mit dem angegebenen Pfad übereinstimmt. Da die Richtlinieneinstellungen für das Dateisystem von der Erweiterung des Sicherheitskonfigurationsmoduls angewendet werden, erfolgt dies standardmäßig alle 16 Stunden, selbst wenn das Gruppenrichtlinienobjekt nicht geändert wurde. Ändert ein Administrator die Zugriffssteuerungsliste für den Ordner direkt auf dem Server, wird die Liste daher im Durchschnitt binnen acht Stunden auf die angegebene Konfiguration zurückgesetzt. 2.4 Delegieren der Verwaltung von freigegebenen Ordnern 107 Zusammenfassung Erstellen Sie einen Stammdatenordner, d.h. einen Ordner der höchsten Ebene auf dem Datenvolume eines Dateiservers, um jede eindeutige Zugriffsanforderung auf höchster Ebene (z.B. für verschiedene Supportteams, die für Unterordner zuständig sind) zu unterstützen. Verwenden Sie die Gruppenrichtlinieneinstellungen für das Dateisystem, um die Zugriffssteuerungslisten von Stammdatenordnern einzurichten und zu erzwingen. 2.4 Delegieren der Verwaltung von freigegebenen Ordnern Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Gruppenrichtlinieneinstellungen für eingeschränkte Gruppen Zusammenfassung Verwenden Sie nach Möglichkeit dedizierte Dateiserver und verwalten Sie die Mitgliedschaft der Administratorengruppe mit der Richtlinieneinstellung für eingeschränkte Gruppen. Vorteile Verwaltete Delegierung der Befugnis zum Erstellen, Löschen und Ändern von freigegebenen Ordnern Einführung Freigegebene Ordner können standardmäßig nur von Mitgliedern der Administratorengruppe auf dem Server verwaltet werden. Es ist nicht möglich, dafür zu sorgen, dass bestimmte Benutzer an bestimmten Speicherorten auf dem Server Ordnerfreigaben anlegen können. Hierbei handelt es sich um ein Systemprivileg. Dedizierte Dateiserver Jeder, der freigegebene Ordner erstellt, muss ein Administrator sein. Wenn ein Server verschiedene Rollen ausfüllt, hat diese Person daher auch Zugriff auf die anderen Dienste auf dem Server. Aus diesem Grunde ist es häufig notwendig, Server einzig auf die Dateiserverrolle einzuschränken. Empfohlene Vorgehensweisen Verwenden Sie dedizierte Dateiserver, die keine weiteren Rollen ausführen. Delegieren der Verwaltung freigegebener Ordner Um die Verwaltung freigegebener Ordner zu delegieren, müssen Sie den Benutzer zur Administratorengruppe hinzufügen. Am einfachsten lässt sich diese Delegierung mit der Gruppenrichtlinieneinstellung für eingeschränkte Gruppen bewerkstelligen, wobei Sie eine Befugnisverwaltungsgruppe in die lokale Administratorengruppe einfügen: 1. Erstellen Sie eine Gruppe für die Befugnis, freigegebene Ordner zu verwalten, und benennen Sie sie nach Ihrer Konvention, z.B. SYS_Shared Folder_Admins. Weitere Informationen über Befugnisverwaltungsgruppen und Namenskonventionen finden Sie in Lösungsgruppe 1. 108 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2. Erstellen Sie ein Gruppenrichtlinienobjekt mit den Dateiservern als Gültigkeitsbereich und benennen Sie es nach Ihrer Konvention, z.B. File Server Configuration. Weitere Informationen über Gültigkeitsbereiche und Namen von Gruppenrichtlinienobjekten finden Sie in Lösungsgruppe 10. 3. Öffnen Sie das Gruppenrichtlinienobjekt im Gruppenrichtlinienverwaltung-Editor (der in Windows Server 2003 Gruppenrichtlinienobjekt-Editor heißt). 4. Wechseln Sie zu Computerkonfiguration\Richtlinien\Windows-Einstellungen\Sicherheitseinstellungen\Eingeschränkte Gruppen. 5. Rechtsklicken Sie auf Eingeschränkte Gruppen und wählen Sie Gruppe hinzufügen. 6. Klicken Sie auf Durchsuchen und suchen Sie die Gruppe, die Sie erstellt haben. Sie können den Gruppennamen auch eingeben (im Format <domäne>\<gruppenname>), doch wenn Sie dabei einen Tippfehler machen, wird die Einstellung nicht korrekt angewendet. Sie sollten daher lieber nach der Gruppe suchen und sie dann auswählen. Klicken Sie auf OK, wenn Sie damit fertig sind. 7. Klicken Sie auf OK, um das Dialogfeld Gruppe hinzufügen zu schließen. 8. Klicken Sie im Eigenschaftendialogfeld für die Gruppe auf die Schaltfläche Hinzufügen neben dem Abschnitt Diese Gruppe ist Mitglied von. 9. Geben Sie im Dialogfeld Gruppenmitgliedschaft den Namen Administratoren ein und klicken Sie auf OK. Das Ergebnis sollte aussehen wie in Abb. 2.8. Abbildung 2.8 Mit der Gruppenrichtlinieneinstellung für eingeschränkte Gruppen wird eine Gruppe in der lokalen Administratorengruppe platziert 2.4 Delegieren der Verwaltung von freigegebenen Ordnern 109 10. Klicken Sie auf OK, um das Eigenschaftendialogfeld zu schließen. Das Gruppenrichtlinienobjekt sorgt jetzt dafür, dass die ausgewählte Gruppe auf allen Servern in ihrem Gültigkeitsbereich Mitglied der lokalen Administratorengruppe ist. Es werden keine Mitglieder aus der Administratorengruppe entfernt, noch wird diese Gruppe auf irgendeine andere Weise verwaltet. Hinweis Wenn die lokale Administratorengruppe ausschließlich die Befugnisverwaltungsgruppe (SYS_Shared Folders_Administer) enthalten soll, geben Sie bei dem zuvor beschriebenen Vorgang in Schritt 6 Administratoren ein und klicken Sie in Schritt 8 auf die Schaltfläche Hinzufügen neben dem Abschnitt Mitglieder dieser Gruppe. Wählen Sie dann die Befugnisverwaltungsgruppe aus, z.B. SYS_Shared Folders_Administer. Dadurch wird die Liste der Mitglieder zur vollständigen und autorisierenden Mitgliedschaftsliste der Gruppe Administratoren. Der Server entfernt alle Mitglieder aus der Administratorengruppe, die in der Gruppenrichtlinie nicht aufgeführt sind. Der kniffligste Aspekt bei diesem Ansatz besteht darin, dass bei mehreren Gruppenrichtlinienobjekten, die Mitgliedschaft in einer Gruppe über die Liste Mitglieder dieser Gruppe festlegen wollen, sich diejenige mit der höchsten Autorität durchsetzt. Leider ermöglicht Windows es einem Unternehmen nicht, die Verwaltung von freigegebenen Ordnern mit einem Benutzerrecht oder einer Zugriffssteuerungsliste zu delegieren. Die einzige Möglichkeit, um einem Benutzer zu erlauben, Freigaben zu erstellen oder zu verwalten, besteht darin, das Token dieses Benutzers in die Sicherheitskennung von Administratoren aufzunehmen. Daher müssen Sie einer der beiden folgenden Möglichkeiten folgen: Freunden Sie sich mit dem Gedanken an, dass die Mitglieder des Supportteams, die freigegebene Ordner verwalten müssen, Administratoren auf dem Dateiserver sind. Das bedeutet, dass sie eine breite Palette von Möglichkeiten haben, um auf den Dateiserver und seine Daten zuzugreifen, sie zu ändern, zu löschen oder die Datenintegrität auf andere Weise zu gefährden. Stellen Sie ein Werkzeug bereit, das Freigaben mit alternativen Anmeldeinformationen anlegt. Solche Hilfsprogramme werden in Lösungsgruppe 8, »Eine neue Sichtweise der Verwaltung von Gruppen und Mitgliedschaften«, beschrieben. Angesichts der sicherheitsrelevanten Natur der Daten auf Dateiservern wird dieser Ansatz dringend empfohlen. Zusammenfassung Erstellen Sie in Active Directory eine Gruppe für die Befugnis zur Verwaltung von freigegebenen Ordnern (z.B. SYS_Shared Folders_Administer). Die Befugnis richten Sie dann dadurch ein, dass Sie diese Gruppe in der lokalen Administratorengruppe auf dem Server verschachteln. Verwenden Sie dafür die Einstellungen für eingeschränkte Gruppen in einem Gruppenrichtlinienobjekt, dessen Gültigkeitsbereich die Dateiserver umfasst. 110 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2.5 Festlegen der freizugebenden Ordner Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Freigegebene Ordner Zusammenfassung Sie lernen die Designkriterien kennen, die entscheiden, ob ein Ordner freigegeben werden sollte und wie viele Freigaben erforderlich sind. Vorteile Die Anzahl der freigegebenen Ordner in Ihrer Umgebung wird optimiert. Einführung Es gibt empfohlene Vorgehensweisen dafür, ob und wie ein Ordner freigegeben werden sollte. Bei diesen Vorgehensweisen, die wir weiter hinten in dieser Lösung kennen lernen werden, müssen Sie sich über die folgenden Einstellungen Gedanken machen: NTFS-Berechtigungen. Ein Ordner muss mit den korrekten Berechtigungen in den NTFS-Zugriffssteuerungslisten konfiguriert sein, bevor er freigegeben wird. Freigabeprotokolle. In Windows Server 2008 können Sie Ordner mit SMB, dem standardmäßigen Protokoll für Windows-Clients, und mit NFS (Network File System) freigeben, das für die Kompatibilität mit Unix- und Linux-Clients eingesetzt wird. In dieser Lösungsgruppe sehen wir uns nur SMB-Freigaben an. Der Name für die SMB-Ordnerfreigabe. Eine optionale Beschreibung für den freigegebenen Ordner. Die Grenze für die Anzahl der erlaubten gleichzeitigen Benutzer. SMB-Berechtigungen, auch Freigabeberechtigungen genannt. Cacheeinstellungen, die festlegen, ob Dateien und Ordner innerhalb der Freigabe offline geschaltet werden können. Zugriffsbasierte Auflistung (Access-Based Enumeration, ABE), die beim Remotezugriff diejenigen Inhalte eines freigegebenen Ordners vor einem Benutzer verbirgt, für die er keine Leseberechtigung hat. Die zugriffsbasierte Auflistung steht für Windows Server 2003 SP1 (oder höher) zum Download und zur Installation zur Verfügung und ist in Windows Server 2008 standardmäßig installiert. Sie wird ausführlicher in Lösung 2.12, »Verbergen nicht zugänglicher Objekte vor den Benutzern«, besprochen. Darstellung des freigegebenen Ordners in einem DFS-Namespace. Der Rollendienst DFS-Namespaces wird in Lösung 2.18, »Erstellen eines effektiven delegierten DFS-Namespace«, erläutert. 2.5 Festlegen der freizugebenden Ordner 111 Festlegen der freizugebenden Ordner Bei der Entscheidung, was freigegeben werden soll, geht es vor allem um die beiden Schlüsselfaktoren, die in den nächsten beiden Abschnitten besprochen werden. Darstellung der Informationen für die Benutzer Freigegebene Ordner bieten eine eindeutige Verbindung zu einer Sammlung von Dateien und Ordnern. Der UNC-Pfad (Universal Naming Convention) zu der Freigabe lautet, wie sollte es auch anders sein, \\<servername>\<freigabename>. Wenn Sie für eine Sammlung von Finanz- und eine von Marketingdokumenten zwei unterschiedliche Einstiegspunkte haben möchten, können Sie für jede dieser Sammlungen einen eigenen freigegebenen Ordner anlegen, z.B. \\<servername>\finance und \\<servername>\marketing. Wenn Sie die Informationen in Ihrem Unternehmen aber so gliedern, haben Sie nachher eine große Anzahl von Freigaben. Leider ist dies genau das, was die meisten Unternehmen getan haben. Dabei handelt es sich aber nicht um eine empfohlene Vorgehensweise. Seit der Veröffentlichung von Windows 2000 können Windows-Clients Verbindungen zu Zielen unterhalb einer Freigabe aufnehmen. Sie müssen also nur einen einzigen Stammdatenordner wie Department$ freigeben, in dem es dann die Ordner Finance und Marketing gibt. Die UNC-Pfade lauten dann \\<servername>\department$\finance und \\<servername>\department$\marketing. Wenn Sie diese UNC-Pfade verwenden, um ein Netzlaufwerk zu den Ordnern Finance und Marketing zuzuweisen oder wenn Sie sie als Ziele für Ordner in einem DFS-Namespace einsetzen (siehe Lösung 2.18 auf Seite 162), können die Benutzer von ihren eigenen Abteilungsordnern aus nicht mehr in die höhere Ebene von Departments wechseln. Das Dollarzeichen am Ende des Freigabenamens verhindert, dass die Freigabe in Auflistungen auftaucht. Versteckte Freigaben sind eine Möglichkeit, um Benutzer daran zu hindern, im Netzwerk herumzuschnüffeln. Wichtiger sind jedoch natürlich die NTFS-Berechtigungen, die Sie für den Ordner Departments einrichten. Durch die Kombination von Clientverbindungen zu Unterordnern einer Freigabe und die Einrichtung von DFS-Namespaces erlaubt einem Unternehmen, nur Ordner oberster Ebene statt einzelne Unterordner freizugeben. Verwaltung von SMB-Einstellungen Freigegebene Ordner bilden auch einen Verwaltungsbereich für die zuvor aufgeführten Einstellungen: Benutzeranzahl, SMB-Berechtigungen, zugriffsbasierte Auflistung und Cacheeinstellungen. Aus diesem Grund kann es nötig sein, zusätzliche freigegebene Ordner zu erstellen. Wenn zwei Abteilungen z.B. unterschiedliche Cacheeinstellungen benötigen, müssen sie sich in zwei getrennten freigegebenen Ordnern befinden, um zwei verschiedene Verwaltungsbereiche zu bilden. Das bedeutet jedoch nicht, dass sie sich in zwei getrennten Ordnern des Dateisystems befinden müssen. In einer Situation, in der die Benutzer von Marketing in der Lage sein müssen, Dateien offline zu nehmen, während dies den Benutzern von Sales nicht erlaubt ist, können Sie eine Dateisystemhierarchie mit den beiden Ordnern E:\Data\Sales und E:\Data\Marketing erstellen. Anschließend können Sie jeden Ordner für sich mit den passenden Cacheeinstellungen freigeben. Alternativ können Sie aber auch den Ordner E:\Sales and Marketing einmal als Sales$ mit deaktiviertem Caching und SMB-Berechtigungen freigeben, nach denen nur Benutzer aus der Abteilung Sales auf die Freigabe zugreifen können. Denselben Ordner geben Sie dann ein zweites Mal unter dem Namen Marketing$ mit aktiviertem Caching und SMB-Berechtigungen frei, die nur Marketing-Benutzern den Zugriff erlauben. Die Cacheeinstellungen werden durch die Eigenschaften der SMB-Ordnerfreigabe durchgesetzt, nicht durch die Eigenschaften des NTFS-Ordners. 112 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Zusammenfassung Erstellen Sie für einen Datenordner der obersten Ebene eine Ordnerfreigabe. Zusätzliche Freigaben legen Sie immer dann an, wenn für SMB-Berechtigungen, Caching, die Anzahl gleichzeitiger Verbindungen oder die zugriffsbasierte Auflistung ein eigener Verwaltungsbereich benötigt wird. 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse Die Lösung im Überblick Typ Anleitung und Skripts Funktionen und Werkzeuge NTFS-Ordner, Zugriffssteuerungslisten, icacls Zusammenfassung Sie ermöglichen den Zugriff auf Ordner, indem Sie mit Bedacht sorgfältig abgewogene NTFS-Berechtigungen anwenden. Vorteile Eine verwaltbare, automatisierte und konsistente Gestaltung des Ordnerzugriffs mit den geringstmöglichen Privilegien Einführung Bevor Sie einen Ordner freigeben, müssen Sie dafür sorgen, dass seine NTFS-Berechtigungen korrekt eingerichtet sind. Der Zugriff sollte hauptsächlich, wenn nicht ausschließlich mit NTFS-Zugriffssteuerungslisten eingerichtet werden. In manchen Organisationen wird die Formulierung gebraucht, ein Benutzer habe die »Rolle«, in einem bestimmten Maße auf einen Ordner zuzugreifen. Ich ziehe es jedoch vor, das Wort Rolle dafür zu reservieren, dass ein Benutzer oder Computer ein durch seine Tätigkeit im Geschäft festgelegtes Merkmal aufweist, z.B. Standort, Abteilung, Team oder Funktion. Verschiedene Benutzerrollen (z.B. Abteilungen) können aber die Befugnis erfordern, Dateien in einem Ordner zu lesen. Nach der in Lösungsgruppe 1 vorgestellten Terminologie bezeichnen wir den Grad des Zugriffs als Befugnis – in diesem Fall die Befugnis, in einem bestimmten Maße auf eine Datei oder einen Ordner zuzugreifen. In dieser Lösung geht es um einzelne Zugriffsbefugnisse, die wünschenswert sind, und um die Zugriffssteuerungslisten, die eingerichtet werden müssen, um diese Befugnisse zu gewähren. Ich beschreibe zunächst, wie diese Befugnisse über die Benutzeroberfläche eingerichtet werden, und verwende dann icacls.exe, um die Berechtigungen anzuwenden. Icacls.exe steht nur auf Windows Server 2003 SP2, Windows Vista und Windows Server 2008 zur Verfügung. Es ersetzt und erweitert die früheren Versionen cacls.exe, xcacls.exe und xcacls.vbs. Empfohlene Vorgehensweisen Es ist immer empfehlenswert, Berechtigungen Gruppen zuzuweisen, nicht zu einzelnen Benutzern. 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse 113 Einrichten einer Lesebefugnis Der Lesezugriff lässt sich am einfachsten einrichten. Die Berechtigungsvorlage Lesen können Sie auf der Registerkarte Sicherheit im Eigenschaftendialogfeld einer Datei oder eines Ordners wie folgt zuweisen: 1. Öffnen Sie die Registerkarte Sicherheit im Eigenschaftendialogfeld einer Datei oder eines Ordners. 2. Klicken Sie auf Hinzufügen. Wenn diese Schaltfläche auf einem Windows Vista- oder Windows Server 2008-System nicht sichtbar ist, klicken Sie zunächst auf Bearbeiten und dann auf Hinzufügen. 3. Wählen Sie einen Sicherheitsprinzipal aus, vorzugsweise eine Gruppe. Die Standardberechtigungen sind Lesen und Ausführen, Lesen und bei einem Ordner Ordnerinhalt anzeigen. Diese drei Berechtigungsvorlagen, die standardmäßig zugewiesen werden, wenn Sie einen Sicherheitsprinzipal zu der Zugriffssteuerungsliste hinzufügen, werden im Dialogfeld Erweiterte Sicherheitseinstellungen auf der Registerkarte Berechtigungen in der Spalte Berechtigung einfach als Lesen, Ausführen angezeigt. Im Dialogfeld Berechtigungseintrag können Sie ablesen, dass sich diese Berechtigung aus folgenden Zugriffssteuerungseinträgen zusammensetzt: Ordner durchsuchen/Datei ausführen Ordner auflisten/Datei lesen Attribute lesen Erweiterte Attribute lesen Berechtigungen lesen Hinweis Sie können über mehr darüber erfahren, was die einzelnen Berechtigungen bedeuten, indem Sie am unteren Rand des Dialogfelds Berechtigungseintrag auf Berechtigungen verwalten klicken. Diese Berechtigungen ergeben eine effektive und sichere Lesebefugnis. Um die Lesebefugnis mithilfe von icacls.exe einzurichten, verwenden Sie den folgenden Befehl: icacls.exe Pfad zum Ordner /grant Sicherheitsprinzipal:(CI)(OI)RX Um die Lesebefugnis für eine einzelne Datei zuzuweisen, gehen Sie wie folgt vor: icacls.exe Pfad zur Datei /grant Sicherheitsprinzipal:RX Um z.B. die Befugnis zu gewähren, den Ordner von Team A lesen zu können, verwenden Sie den folgenden Befehl: icacls.exe "e:\data\team a" /grant "ACL_Team A_Read":(CI)(OI)RX Hinweis Die Parameter (CI) und (OI) legen den Vererbungsbereich einer Berechtigung fest. Mit (CI) wird die Berechtigung auf den betreffenden Ordner und seine Unterordner angewandt, mit (OI) auf die Dateien in dem Ordner und seinen Unterordnern. Um eine Berechtigung nur eine Ebene tief anzuwenden, verwenden Sie den Parameter (NP), was für »no propagation« (»keine Übertragung«) steht. Wollen Sie eine Berechtigung für alle Objekte in einem Ordner festlegen, die aber für den Ordner selbst nicht gelten soll, nehmen Sie den Parameter (IO) (»inherit only«, also »nur vererben«). Wir setzen hier voraus, dass Sie Zugriffssteuerungslisten für einen Ordner hoher Ebene und all seine Dateien und Unterordner verwalten, und verwenden daher die Optionen (CI) und (OI). 114 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Die standardmäßige Berechtigungsvorlage Lesen, Ausführen – die die Vorlage Lesen und bei einem Ordner auch Ordnerinhalt auflisten umfasst – ermöglicht den Benutzern, alle Dateitypen zu öffnen. Sie können Benutzer jedoch daran hindern, ausführbare Dateien zu öffnen und auszuführen, indem Sie den Berechtigungseintrag Datei ausführen entfernen. Am einfachsten geht das, wenn Sie das Kontrollkästchen Zulassen für Lesen, Ausführen deaktivieren, sodass Zulassen nur für Lesen und bei einem Ordner auch Ordnerinhalt auflisten aktiviert bleibt. Testen Sie die resultierende Zugriffssteuerungsliste, um sicherzustellen, dass die Benutzer nicht zu stark eingeschränkt sind und daran gehindert werden, die Dateitypen zu öffnen, auf die sie für ihre Tätigkeit zugreifen müssen. Im Ressourcen-Manager für Dateiserver haben Sie die wirkungsvollere Möglichkeit, Dateiprüfungen einzurichten, um bereits das Speichern von ausführbaren Dateien zu verhindern. Um eine Lesebefugnis einzurichten und dabei das Öffnen ausführbarer Dateien zu verhindern, verwenden Sie folgenden Befehl: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)RX Sicherheitsprinzipal:(CI)(OI)R Einrichten einer Befugnis zum Wechsel zu einer Ressource Es kann Situationen geben, in denen ein Benutzer auf eine Ressource zugreifen muss, die sich auf einer Ebene tief innerhalb einer Ordnerhierarchie befindet, für die der Benutzer gar keine Berechtigung zum Durchsuchen hat. Stellen Sie sich z.B. eine Ordnerstruktur wie E:\Data\Finance\Team A\Communications vor. Ein Benutzer in der Kommunikationsabteilung muss auf die Dateien im Ordner Communications zugreifen. Wir müssen ihm also erlauben, zu diesem Ordner zu wechseln, wobei er aber die übergeordneten Ordner nicht durchsuchen können soll. Um zu verstehen, was diese Lösung mit sich bringt, müssen Sie wissen, dass ein Benutzer zwei Befugnisse braucht, wenn er einen Pfad zu einem Ordner wie \\<servername>\department$\finance\team a\communications eingibt. Als Erstes muss er die Fähigkeit haben, den Inhalt des Ordnes Communications zu sehen. Dies kann wie zuvor beschrieben über eine Lesebefähigung eingerichtet werden. Für die geringstmöglich privilegierte Befugnis, zu einem Ordner zu wechseln, sind zwei Berechtigungseinträge erforderlich: Ordner auflisten und Attribute lesen. Sie können im Dialogfeld Berechtigungseintrag oder wie folgt mithilfe von icacls zugelassen werden: icacls Ordnerpfad /grant Sicherheitsprinzipal:(CI)(RD,RA) Diese Berechtigung reicht jedoch nicht aus, um einem Benutzer zu erlauben, Unterordner oder Dateien zu öffnen – er kann nur den Inhalt des Ordners sehen. Damit er auch die Dateien öffnen kann, muss für den Zielordner Communications eine Lesebefugnis eingerichtet werden. Die zweite Befähigung, die der Benutzer benötigt, besteht darin, die übergeordneten Ordner im Pfad zu dem gewünschten Ordner zu durchlaufen. In unserem Beispiel bedeutet dass, das der Benutzer den als Department$ freigegebenen Ordner sowie die Ordner Finance und Team A durchlaufen können muss. Diese Befugnis kann auf zwei Weisen eingerichtet werden: als Systemprivileg und als NTFSBerechtigung. Es gibt ein Systemprivileg oder Benutzerrecht, das Auslassen der durchsuchenden Überprüfung genannt wird und standardmäßig zu Jeder zugewiesen ist. Wenn dieses standardmäßige Benutzerrecht in Kraft ist, braucht ein Benutzer nur die zuvor erwähnten Berechtigungen für den Zielordner Communications. Die Fähigkeit, übergeordnete Ordner zu durchlaufen, hat er standardmäßig über dieses Recht. 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse 115 Die zweite Möglichkeit, die Befugnis zum Durchlaufen von Ordnern einzurichten, besteht darin, den Zulassungseintrag für Ordner durchsehen für jeden einzelnen übergeordneten Ordner zu gewähren. Dies geschieht wiederum im Dialogfeld Berechtigungseintrag oder mithilfe von icacls: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(X) Wenn Sie die Standardkonfiguration des Systemprivilegs Auslassen der durchsuchenden Überprüfung ändern, sodass die Benutzer nicht mehr das Recht haben, Ordner zu durchlaufen, müssen Sie für alle übergeordneten Ordner den NFTS-Zugriffssteuerungseintrag Ordner durchsehen zulassen, und zwar beginnend beim freigegebenen Ordner. Für die Unterordner, die die Benutzer erreichen und öffnen sollen, wenden Sie die Berechtigungen Ordner auflisten und Attribute lesen oder den kompletten Berechtigungssatz Lesen oder Lesen, Ausführen an. Damit die Benutzer zu diesen Ordnern gelangen können, sind die Zugriffssteuerungseinträge Ordner durchsehen, Ordner auflisten und Attribute lesen Teil der Berechtigungsvorlage Lesen, Ausführen. Wenn Sie einen Benutzer jedoch daran hindern möchten, einen übergeordneten Ordner zu öffnen – z.B. \<servername>\department$\finance oder den Unterordner Team A –, dürfen Sie dem Benutzer nur den Zugriffssteuerungseintrag Ordner durchsehen für diese übergeordneten Ordner gewähren. Mit icacls wird die Befugnis für das Wechseln zu einem Ordner wie folgt eingerichtet: icacls.exe Pfad zum freigegebenen Ordner /grant Sicherheitsprinzipal:(CI)(X) icacls.exe Pfad zum Zielordner /grant Sicherheitsprinzipal:(CI)(RD,RA) Auch dadurch wird den Benutzern erlaubt, den Zielordner zu öffnen, wenn er ein Unterordner in einer Hierarchie ist. Damit die Benutzer Dateien innerhalb des Ziels öffnen können, müssen Sie für eine Lesebefugnis sorgen: icacls.exe Pfad zum Zielordner /grant Sicherheitsprinzipal:(OI)[R or RX] Einrichten einer Bearbeitungsbefugnis Eine Bearbeitungsbefugnis wird gewöhnlich in Situationen gebraucht, in denen ein Team von Benutzern in der Lage sein muss, gegenseitig Dokumente zu öffnen und Änderungen daran vorzunehmen. Das Problem ist, dass diese Befugnis in den meisten Unternehmen mithilfe der Berechtigungsvorlage Ändern eingerichtet ist. In dieser Vorlage ist aber auch der Berechtigungseintrag Löschen enthalten. Wenn eine Gruppe die Berechtigung Ändern für einen Ordner hat, kann jeder Benutzer dieser Gruppe versehentlich oder absichtlich den Ordner und seinen gesamten Inhalt oder eine Teilmenge des Inhalts löschen. Dies kann bestenfalls zu einer Dienstverweigerung führen, also dazu, dass die Benutzer für eine gewisse Zeit, in der die Daten wiederhergestellt werden, nicht auf die erforderlichen Dateien zugreifen können. Schlimmstenfalls sind die Daten verloren – vor allem Daten, die noch nicht gesichert oder durch Schattenkopien erfasst worden sind. Noch gefährlicher ist die Berechtigungsvorlage Vollzugriff, die außerdem noch Einträge für Unterordner und Dateien löschen, Berechtigungen ändern und Besitz übernehmen enthält. Jeder dieser Einträge eröffnet für jedes Mitglied der Gruppe neue Möglichkeiten, um Daten in der gesamten Ordnerstruktur zu beschädigen oder zu löschen. Der Eintrag Unterordner und Dateien löschen ist eine besondere Containerberechtigung, die es einem Benutzer ermöglicht, einen Benutzer und seinen ganzen Inhalt zu löschen, selbst wenn er eine ausdrückliche Verweigerungsberechtigung Löschen für diese Inhalte hat. Dies ist für eine Gruppe eine besonders gefährliche Berechtigung. 116 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Empfohlene Vorgehensweisen Sofern es mit den Geschäftsanforderungen vereinbar ist, sollten Sie einer Gruppe nicht die Berechtigungsvorlagen Ändern oder Vollzugriff für einen Ordner zuweisen, da es beide ermöglichen, dass jeder beliebige Benutzer in der Gruppe eine Dienstverweigerung oder einen Datenverlust innerhalb des Ordners verursachen kann. In vielen Geschäftssituationen ist es für die Benutzer nicht angebracht, die Dokumente anderer zu löschen, sondern nur, sie zu ändern. Die Bearbeitungsbefugnis sollte daher mit einer der folgenden Techniken eingerichtet werden: Berechtigungsvorlage Schreiben für die Gruppe Wenn die Berechtigungsvorlage Schreiben auf einen Ordner angewendet und einer Gruppe zugewiesen wird, haben die Mitglieder der Gruppe die Möglichkeit, Änderungen an den Dokumenten der anderen vorzunehmen, können diese aber nicht löschen. Die Benutzer in der Gruppe können auch neue Dateien und Ordner erstellen. Berechtigungsvorlage Löschen für eine kleinere Gruppe Sie können die Zulassungsberechtigung Löschen zu einer Teilmenge der Benutzer des Teams zuweisen. Richten Sie eine Befugnis zum Aufräumen oder Verwalten der Ordner ein, die den Zulassungseintrag Löschen oder die Berechtigungsvorlage Ändern umfasst. Berechtigungsvorlage Ändern nur für Dateien, nicht für Ordner Alternativ können Sie einer Gruppe die Zulassungsberechtigung Ändern für einen Ordner gewähren, die Vererbung aber so ändern, dass sie nur für Dateien und nicht für Ordner gilt. Die Benutzer können dann immer noch die Dokumente anderer Gruppenmitglieder löschen, aber die Ordner sind geschützt. Geeignete Berechtigungen für Ersteller-Besitzer Wenn ein Benutzer mit dem Zugriffssteuerungseintrag Datei erstellen oder Ordner erstellen eine Datei oder einen Ordner anlegt (die beide in der Berechtigungsvorlage Schreiben enthalten sind), wird er zum Besitzer des neuen Objekts. Sein Benutzerkonto erhält dann ausdrückliche Zugriffssteuerungseinträge, die den vererbbaren Einträgen für die besondere Identität Ersteller-Besitzer für den übergeordneten Ordner entsprechen. Wenn Sie der Identität Ersteller-Besitzer also die Berechtigungsvorlage Ändern gewähren (die den Zulassungseintrag Löschen für den übergeordneten Ordner umfasst) und diese Vorlage auf Dateien als Gültigkeitsbereich anwenden, erhält jeder, der in diesem Ordner eine neue Datei anlegt, die Berechtigung Ändern und damit auch Löschen für die neue Datei. Das ist in der Tat für die meisten Geschäftssituationen empfehlenswert. Die Person, die eine Datei erstellt hat, kann sie daher auch wieder löschen, während die Benutzer in der Gruppe nicht die Dateien der anderen entfernen können. Wenn Sie der Identität Ersteller-Besitzer Vollzugriff gewähren (was übliche Praxis und auch die Windows-Voreinstellung ist), gehen Sie zwei Risiken ein. Erstens können die Benutzer die Berechtigungen für die selbst von ihnen erstellen Objekte ändern, ohne dass dies eine Fehlerüberwachung auslöst. Dieses Problem schauen wir uns in Lösung 2.11, »Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei«, auf Seite 139 genauer an. Zweitens: Wenn ein Benutzer einen Ordner erstellt und damit den Vollzugriff dafür erbt, kann er den Besitz übernehmen, die Berechtigungen ändern und jegliche Dateien und Ordner löschen, die später zu dem von ihm angelegten Ordner hinzugefügt wurden. Wenn Sie eine Bearbeitungsbefugnis einrichten, ist es am besten, der Identität Ersteller-Besitzer die Berechtigungsvorlage Ändern zu gewähren und diese nur auf Dateien vererben zu lassen. Diese Empfehlung ist jedoch mit Vorsicht zu genießen, da sie sich hauptsächlich für freigegebene Teamordner eignet. Selbst dann sollte sie genau bedacht werden, um beurteilen zu können, ob sie ihren Geschäftsanforderungen entspricht. Das Fazit lautet, dass Sie Berechtigungen für Ersteller-Besitzer sorgfältig überprüfen müssen. Richten Sie sich dabei nach den Ausführungen in Lösung 2.11 auf Seite 139. 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse 117 Welche Methode Sie anwenden, um eine Bearbeitungsbefugnis einzurichten, hängt von den Geschäftsanforderungen für die Daten im jeweiligen Ordner ab. Eine angemessen sichere Bearbeitungsbefugnis – bei der Benutzer die Dokumente anderer ändern, aber nicht löschen dürfen und ein Dokument nur von seinem Ersteller entfernt werden kann – lässt sich mit icacls.exe wie folgt einrichten: icacls.exe icacls.exe icacls.exe icacls.exe Ordnerpfad Ordnerpfad Ordnerpfad Ordnerpfad /grant /grant /grant /grant Sicherheitsprinzipal:(CI)(OI)(RX) Sicherheitsprinzipal:(CI)(WD,AD) Sicherheitsprinzipal:(OI)(IO)W "CREATOR OWNER":(CI)(OI)M Einrichten einer Beitragsbefugnis Mit der Bearbeitungsbefugnis können Benutzer die Dokumente von anderen ändern. Die Beitragsbefugnis dient dazu, Dokumente in dem freigegebenen Ordner erstellen und speichern und die Dokumente der anderen zwar lesen, aber nicht ändern zu können. Diese Befugnis richten Sie ein, indem Sie einer Gruppe die Fähigkeit gewähren, Dateien und Ordner innerhalb eines Ordners zu erstellen und die Inhalte des Ordners zu lesen. Mit icacls.exe gehen Sie dazu folgendermaßen vor: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(WD,AD) Sicherheitsprinzipal:(CI)(OI)[R | RX] Außerdem müssen Sie festlegen, welche Befugnisse die Benutzer erhalten sollen, wenn sie eine neue Datei oder einen Ordner erstellen. Schlagen Sie dazu in der Abhandlung über Ersteller-Besitzer im vorherigen Abschnitt nach. Sie können z.B. folgenden Befehl verwenden: icacls.exe Ordnerpfad /grant "Creator Owner":(CI)(OI)(IO)M Einrichten einer Ablagebefugnis In einem Ablageordner können Benutzer Dateien hinzufügen, anschließend aber nicht mehr darauf zugreifen. Dies wird dadurch erreicht, dass die Benutzer für einen Ornder die Berechtigung Dateien erstellen bekommen, aber nicht Ordnerinhalt auflisten: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(WD) Da die Benutzer keine Leseberechtigung für den Ablageordner haben, wird dieser auch nicht angezeigt, wenn Sie die zugriffsbasierte Auflistung für die Freigabe eingerichtet haben. Für Freigaben, die einen Ablageordner enthalten, muss diese Funktion ausgeschaltet werden. Bei einer Variante dieser Befugnis können die Benutzer Dateien im Ablageordner hinzufügen und auf ihre eigenen Dateien zugreifen, aber keine Dateien anderer Benutzer sehen: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(WD) Sicherheitsprinzipal:(NP)[R | RX] icacls.exe Ordnerpfad /grant "Creator Owner":(OI)(IO)[R | RX | W | M] Dieser Satz von Berechtigungen gibt einer Gruppe die Möglichkeit, Dateien zu dem Ordner hinzuzufügen und den Inhalt des Ordners zu sehen. Der Trick besteht darin, dass Sie nun die zugriffsbasierte Auflistung aktivieren, sodass die Benutzer nur die Dateien sehen können, die sie selbst hinzugefügt haben. Je nach den Berechtigungsoptionen, die Sie im zweiten Befehl angeben, hat ein Benutzer die Lese- Schreib- oder Änderungsberechtigung für die von ihm hinzugefügten Dateien. 118 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Einrichten einer Unterstützungsbefugnis Die Unterstützungsbefugnis ermöglicht einem Benutzer, administrative Aufgaben an Dateien und Ordnern durchzuführen, sie also umzubenennen, zu verschieben und zu löschen. Diese Befugnis wird häufig mit der Berechtigungsvorlage Vollzugriff eingerichtet. Wie bereits gesagt, enthält diese Vorlage aber diverse gefährliche Einträge, weshalb sie nur mit äußerster Vorsicht angewendet werden sollte. Wenn Sie die Berechtigungsvorlage Vollzugriff verwenden möchten, können Sie das mit dem folgenden icacls.exeBefehl tun: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(OI)F Das Supportpersonal muss normalerweise nicht in der Lage sein, den Besitz über eine Datei oder einen Ordner zu übernehmen oder die Berechtigungen dafür zu ändern, und nur sehr selten braucht es die Berechtigungen zum Löschen von Unterordnern und Dateien. Sie sollten die Unterstützungsbefugnis also besser mit der Berechtigungsvorlage Ändern einrichten: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(OI)M Wenn Sie eine der restlichen drei detaillierten Berechtigungen hinzufügen wollen, die den Unterschied zwischen Ändern und Vollzugriff ausmachen, verwenden Sie die Optionen WO (»Write Owner« für Besitz übernehmen), WDAC (»Write Discretionary Access Control« für Berechtiungen ändern) und DC (»Delete Child« für Unterordner und Dateien löschen). Damit die Supportabteilung das Objekt ändern und den Besitz übernehmen kann, verwenden Sie also folgenden Befehl: icacls.exe Ordnerpfad /grant Sicherheitsprinzipal:(CI)(OI)M(WO) Die Unterstützungsbefugnis kann als »Support«, »Verwaltung« oder sogar »Besitz« bezeichnet werden. Alle drei Beschreibungen bezeichnen die Fähigkeit, Aktionen an den Ressourcen in einem freigegebenen Ordner vorzunehmen. Erstellen von Skripts zur konsistenten Anwendung der Berechtigungen Um die konsistente Anwendung von Zugriffssteuerungslisten für die in Ihrer Organisation eingerichteten Befugnisse zu erleichtern, sollten Sie Skripts erstellen, die dafür sorgen, dass die korrekten Berechtigungen zugewiesen werden. Das folgende Skript legt z.B. eine Beitragsbefugnis für einen Ordner an, indem es der betreffenden Gruppe die richtigen Berechtigungen gewährt: Folder_Capability_Contribute.bat @echo off Set GROUP=%1 Set FOLDER=%2 icacls.exe %FOLDER% /grant %GROUP%:(CI)(WD,AD) %GROUP%:(CI)(OI)R icacls.exe %FOLDER% /grant "Creator Owner":(CI)(OI)(IO)M @echo on 2.6 Ordnerzugriffsberechtigungen auf der Grundlage der erforderlichen Befugnisse 119 Das Skript wird mit zwei Parametern aufgerufen, von denen der erste die Gruppe angibt, die die Beitragsbefugnis erhalten soll, und die zwei den Ordner, z.B. wie folgt: Folder_Capability_Contribute.bat ACL_MyFolder_Contribute "\\server01.contoso.com\departments$\finance\team a" Sie können ähnliche Skripts vorbereiten, die die in dieser Lösung beschriebenen icacls.exe-Befehle verwenden, um die gewünschten Befugnisse einzurichten. Verwalten der Ordnerzugriffsbefugnisse durch rollenbasierte Zugriffssteuerung Die rollenbasierte Zugriffssteuerung ist eine übliche Methode der rollenbasierten Verwaltung für den Ressourcenzugriff. Nirgendwo sonst zahlt sich die rollenbasierte Verwaltung in Form von IT-Produktivität so sehr aus als bei der rollenbasierten Zugriffssteuerung. Viele Organisationen ziehen ihre Vorteile aus der rollenbasierten Verwaltung: Wenn ein Benutzer angestellt wird, führt die Definition seiner Rolle durch die Personalabteilung und seinen Vorgesetzten dazu, dass er an seinem ersten Arbeitstag sofort Zugriff auf seine Ressourcen hat. Wird er befördert oder innerhalb der Organisation versetzt, führt die Neudefinition seiner Rollen (die Verschiebung von einer zur anderen Gruppe) zu einem nahtlosen Übergang von dem zuvor benötigten Ressourcenzugriff zu dem für die neuen Rollen. Außerdem ermöglicht die rollenbasierte Zugriffssteuerung der IT-Abteilung, zwei entscheidende Fragen zu beantworten: »Auf was kann der Benutzer zugreifen?« und »Wer kann auf diese Ressource zugreifen?« Wenn die erste Frage gestellt wird, müsste ein Administrator sonst viele Zugriffssteuerungslisten durchsuchen, um die Einträge zu finden, die dem Benutzerkonto direkt oder den Gruppen zugewiesen sind, denen der Benutzer angehört. Bei der zweiten Frage müsste der Administrator Zugriffssteuerungseinträge wie Ordner durchsehen, Daten anhängen und Unterordner und Dateien löschen interpretieren. Die rollenbasierte Zugriffssteuerung revolutioniert die Analyse und Überwachung der Ressourcensicherheit. In Lösung 1.5, »Einrichten einer rollenbasierten Zugriffssteuerung«, wird dieses Thema ausführlicher im Zusammenhang der rollenbasierten Verwaltung als Ganzes erläutert. Die folgende Liste fasst die empfohlenen Vorgehensweisen für die rollenbasierte Zugriffssteuerung zusammen: Rollengruppen werden als globale Sicherheitsgruppen eingerichtet. Sie definieren Sammlungen von Benutzern und Computern aufgrund von geschäftlichen Merkmalen. Die Befugnisse für den Ressourcenzugriff werden durch Hinzufügen von Berechtigungen zu Zugriffssteuerungslisten eingerichtet. Die Verwaltung dieser Befugnisse erfolgt über lokale Domänensicherheitsgruppen, die für eine bestimmte Befugnis für eine bestimmte Sammlung von Ressourcen stehen, z.B. ACL_Budget_Read und ACL_Budget_Contribute. Rollengruppen und gelegentlich einzelne Benutzer oder Computern erhalten ihre Befugnisse nicht dadurch, dass sie direkt zu der Zugriffssteuerungsliste hinzugefügt werden, sondern durch Verschachtelung in der entsprechenden Befugnisverwaltungsgruppe. 120 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Zusammenfassung Gewähren Sie Berechtigungen für einen Ordner aufgrund der Befugnisse, die die Benutzer für den betreffenden Ordner brauchen. Leider können die Befugnisse, die IT-Arbeiter in der heutigen Zeit benötigen, nicht mit geringstmöglichen Privilegien eingerichtet werden, ohne detaillierte Zugriffssteuerungseinträge und deren Vererbung handhaben zu müssen. Sie können diese Berechtigungen zwar über die Benutzeroberfläche vergeben, aber meistens sind Sie am besten damit bedient, icacls.exe zur Einrichtung der Sicherheit zu verwenden, vor allem, da Sie den Vorgang mithilfe von Skripts automatisieren können, um eine konsistente Anwendung der Berechtigungen zu gewährleisten. Verwalten Sie die Befugnisse für den Ressourcenzugriff, indem Sie Befugnisverwaltungsgruppen für eine bestimmte Art von Zugriff für die verschiedenen Sammlungen von Ressourcen erstellen. Dadurch können Sie die rollenbasierte Verwaltung nutzen, um eine rollenbasierte Zugriffssteuerung einzurichten. 2.7 Berechtigungen für freigegebene Ordner (SMB-Berechtigungen) Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Freigegebene Ordner, net share Zusammenfassung In den meisten Situationen sollte Jeder die Zugriffsberechtigung Vollzugriff haben, während die NTFS-Berechtigungen dazu verwendet werden, den Ordner im Einklang mit den Geschäftsanforderungen zu schützen. Leider ist die standardmäßige SMB-Berechtigung für Jeder nur die Zulassung von Lesen, was in den meisten Fällen zu restriktiv ist. Mit dem Befehl net share könnens Sie eine Freigabe mit besonderen Berechtigungen schaffen, z.B. mit der Zulassungsberchtigung Vollzugriff für Jeder. Vorteile Verbesserte Verwaltbarkeit der Sicherheit freigegebener Ordner Einführung Die Berechtigungen für einen freigegebenen Ordner wurden lange Zeit Freigabeberechtigungen genannt. Da Windows Server 2008 von Haus aus auch die Ordnerfreigabe mit NFS unterstützt, werden diese Berechtigungen jetzt etwas genauer als SMB-Berechtigungen bezeichnet. Für die Einrichtung der Sicherheit sind sie jedoch eine Herausforderung, da sie den Ressourcenzugriff auf ungewöhnliche Weise beeinflussen. Erstens: Wenn die effektive SMB-Berechtigung für einen Benutzer restriktiver ist als seine effektive NTFS-Berechtigung, wird die SMB-Berechtigung angewendet. Wenn ein Benutzer also die NTFSZulassungsberechtigung Vollzugriff hat, der Ordner aber mit der SMB-Zulassungsberechtigung Lesen für Jeder freigegeben ist, kann der Benutzer Elemente nur lesen, wenn er über die SMB-Freigabe auf den Ordner zugreift. Die Zulassungsberechtigung Lesen für Jeder ist aber die Standardberechtigung, die angewendet wird, wenn Sie über die Benutzeroberfläche von Windows Server 2003 und höher eine Freigabe anlegen. Daher können selbst Administratoren, die die Freigabe erstellt haben, nur mit Leseberechtigung darauf zugreifen. 2.7 Berechtigungen für freigegebene Ordner (SMB-Berechtigungen) 121 Zweitens wirken sich SMB-Berechtigungen nur dann auf den Ressourcenzugriff aus, wenn er über den UNC-Pfad des freigegebenen Ordners erfolgt. Erfolgt der Zugriff lokal durch Anmeldung auf dem Server oder über Remotedesktop, gelten die SMB-Berechtigungen nicht. Ein physischer Ordner kann außerdem mehrere Male mit jeweils völlig anderen SMB-Berechtigungen freigegeben werden. Je nach dem, über welchen UNC-Pfad die Benutzer auf eine Datei in einem Ordner zugreifen, können Sie daher völlig unterschiedliche effektive Berechtigungen dafür haben. Drittens sind SMB-Berechtigungen unsicher. Sie werden nicht in der Sicherheitsbeschreibung des freigegebenen Ordners gespeichert, sondern in der Registrierung. Wird der Ordner verschoben oder umbenannt, gehen die Freigabeberechtigungen letzten Endes verloren, da sie jetzt auf einen Ordner verweisen, den es gar nicht mehr gibt. Es gibt eine Reihe weiterer Gründe, aus denen Freigabeberechtigungen von vielen Organisationen nicht verwendet werden. Stattdessen verfolgen diese Organisationen einen Ansatz, bei dem jede Freigabe mit der SMB-Zulassungsberechtigung Vollzugriff für Jeder erstellt wird. Dadurch werden jedoch keine Daten in diesem Ordner offen gelegt, denn der Ordner wird gleichzeitig durch NTFS-Berechtigungen für den Zugriff mit den geringstmöglichen Privilegien gesichert. Es gibt nach meiner Erfahrung nur eine Hand voll Situationen, in denen es sinnvoll ist, andere SMBBerechtigungen als den Vollzugriff für Jeder einzurichten. Dabei handelt es sich um folgende Fälle: Verhindern, dass Benutzer (selbst die Besitzer von Objekten) Berechtigungen ändern Wenn Sie nur die SMB-Zulassungsberechtigung Ändern einrichten, können die Benutzer die Berechtigungen für die Ressourcen im freigegebenen Ordner nicht mehr ändern, nicht einmal für die Objekte, deren Besitzer sie sind. Diese Einschränkung gilt natürlich nur für den Remotezugriff über den UNC-Pfad des freigegebenen Ordners, nicht über den lokalen oder den Remotedesktop-Zugriff. Seit Windows Server 2008 können Sie diese Geschäftsanforderung jedoch auch über die Identität Eigentümerrechte umsetzen, die in Lösung 2.11 auf Seite 139 beschrieben wird. Erstellen einer Nabe-und-Speiche-Verteilung von Ressourcen Manche Organisationen möchten eine Kopie der Ressourcen auf mehrere Standorte verteilen. Dazu können sie die DFS-Replikation (DFS-R) oder Robocopy einsetzen. Wenn Ihre Organisation wünscht, dass Änderungen nur an den Originaldokumenten an einem einzigen Standort vorgenommen werden dürfen, stehen Sie vor einer Herausforderung. Bei DFS-R werden die NTFS-Berechtigungen repliziert, und Robocopy können und sollten Sie mit /copy:s oder /copyall so konfigurieren, dass ebenfalls die Berechtigungen repliziert werden. Um Änderungen an einem Ort, aber nicht an den anderen zu erlauben, müssen Sie den Benutzern daher die NFTS-Berechtigung Schreiben oder Ändern geben und die Möglichkeit für Änderungen dann dadurch weiter einschränken, dass Sie den freigegebenen Ordnern mit den Kopien die SMB-Zulassungsberechtigung Lesen zuweisen. Dieser Fall wird in Lösung 2.15 auf Seite 150 genauer beschrieben.. Anwenden unterschiedlicher SMB-Einstellungen auf verschiedene Benutzer innerhalb derselben Ordnerstruktur Zu den SMB-Einstellungen gehören Zugriffssteuerungseinträge und Cacheeinstellungen. Stellen Sie sich einen Abteilungsordner vor, bei dem Sie bis auf wenige Ausnahmen alle Benutzer daran hindern möchten, Dateien offline zu nehmen. Dies können Sie dadurch erreichen, indem Sie den Ordner zweimal freigeben. Bei der ersten Freigabe ist das Caching deaktiviert, bei der zweiten aktiviert. Außerdem sind die Freigabeberechtigungen der zweiten Freigabe so eingerichtet, dass nur ausgewählte Benutzer über diesen UNC-Pfad darauf zugreifen können. Ebenso können Sie auch eine Ordnerstruktur einrichten, bei der für einige Benutzer die zugriffsbasierte Auflistung aktiviert ist, während andere, z.B. die Supportabteilung, alle Dateien sehen können. Auch dieses Ziel können Sie mit zwei Freigaben mit unterschiedlichen Konfigurationen und Berechtigungen erreichen. 122 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Vorübergehende Sperrung Ein freigegebener Ordner wird gewöhnlich mit der SMB-Zulassungsberechtigung Vollzugriff für Jeder eingerichtet, wobei die Zugriffsbefugnisse durch restriktivere NTFS-Berechtigungen bestimmt werden. Es kann jedoch notwendig werden, eine Ressource zu sperren. Ein Sicherheitszwischenfall kann z.B. erfordern, einen Ordner einzufrieren – also den Zugriff ganz zu verhindern oder eventuell auf den Lesezugriff einzuschränken. Wenn Sie die Freigabeberechtigungen vom zugelassenen Vollzugriff auf die Zulassungsberechtigung Lesen oder gar die Verweigerungsberechtigung Vollzugriff ändern, können Sie sofort weitere Änderungen an den Daten in dem freigegebenen Ordner verhindern. Die Änderung der NTFS-Berechtigungen des Stammordners würde dagegen zu einer Weiterleitung der Zugriffssteuerungslisten führen, die aus folgenden Gründen problematisch wäre: Die Weiterleitung der Zugriffssteuerungslisten an alle Objekte erfordert, dass alle untergeordneten Objekte die Berechtigungen erben, was nicht der Fall sein muss. Eine explizite Berechtigung für ein untergeordnetes Objekt kann genau die Art von Zugriff ermöglichen, die Sie verhindern möchten. Bei der Weiterleitung der Zugriffssteuerungslisten werden die Dateien angefasst, was die effektive Überwachung oder forensische Untersuchung beeinträchtigen mag. Die Weiterleitung der Zugriffssteuerungsliste erfordert Zeit. Wenn eine große Anzahl von Dateien betroffen ist, kann es sein, dass der Zugriff auf die Dateien für untragbar lange Zeit aufrechterhalten bleibt. Die Sperrung eines Ordners mit SMB-Berechtigungen tritt unmittelbar in Kraft, fasst die Dateien und Ordner innerhalb der Freigabe nicht an und kann auf einfache Weise rückgängig gemacht werden. Denken Sie aber an die Schwächen der SMB-Berechtigungen, z.B. die Tatsache, dass sie den Zugriff auf Dateien über lokal oder via Remotedesktop am Dateiserver angemeldete Benutzer nicht einschränken. Skripterstellung für SMB-Berechtigungen auf lokalen und Remotesystemen Die einfachste Möglichkeit, um SMB-Berechtigungen einzurichten, besteht darin, die Freigabe mit dem Befehl net share zu erstellen: net share freigabename=pfad /GRANT:benutzer oder gruppe,[READ | CHANGE | FULL] Zum Anlegen einer Freigabe empfehle ich Ihnen net share anstelle der Benutzeroberfläche zu verwenden, da Sie mit diesem Befehl gleichzeitig die Freigabe erstellen und die SMB-Berechtigungen festlegen können. Aber was ist, wenn Sie eine Freigabe auf einem Remotesystem erstellen müssen? Hier kommt uns PSExec zu Hilfe. Dieses Programm wurde ursprünglich von Mark Russinovich und seinen Freunden bei der Firma Sysinternals entwickelt, bevor diese von Microsoft übernommen wurden. Es handelt sich dabei um ein wichtiges Handwerkszeug für Administratoren, da sie damit Befehle auf einem Remotecomputer ausgeben können. Wenn Sie das Proramm noch nicht kennen, haben Sie jetzt das Glück, dies nachzuholen. Sie können es von http://www.microsoft.com/technet/sysinternals herunterladen. Die grundlegende Syntax lautet: psexec \\computername befehl 2.8 Skripts zum Erstellen einer SMB-Freigabe 123 In dieser einfachen Form nimmt PSExec zwei Argumente entgegen. Das erste ist der Computername, dem zwei Backslashes vorausgehen, z.B. \\server01. Das zweite Argument ist der Befehl, den Sie ausführen möchten. Sie können PSExec wie folgt verwenden, um den Befehl net share auf dem Remotesystem auszugeben: psexec \\computername net share freigabename=pfad /GRANT:benutzer oder gruppe,[READ | CHANGE | FULL] Mit net share können Sie Berechtigungen nur dann zuweisen, wenn Sie eine Freigabe erstellen. Es ist nicht möglich, mit diesem Befehl die Berechtigungen einer bereits vorhandenen Freigabe zu ändern. Dazu müssen Sie die Freigabe löschen und neu erstellen. Mit Skripts, die z.B. in VBScript geschrieben sind, können Sie die Sicherheitsbeschreibung der SMB-Ordnerfreigabe bearbeiten und die Zugriffssteuerungsliste jederzeit ändern. Ein solches Skript wird in Lösung 2.9, »Erstellen freigegebener Ordner«, auf Seite 125 vorgestellt. Zusammenfassung Der Zugriff auf freigegebene Ordner sollte nach dem Prinzip der geringstmöglichen Privilegien mit NTFS-Berechtigungen eingerichtet werden. Daher können Sie die SMB-Berechtigungen auf die Zulassung des Vollzugriffs für Jeder setzen. Diese Vorgehensweise ist für die meisten Organisationen empfehlenswert. Es gibt nur eine Hand voll Fälle, von denen wir einige in dieser Lösung behandelt haben, bei denen es erforderlich ist, die Freigabeberechtigungen restriktiver einzurichten. Da beim Erstellen von Freigaben mit den Werkzeugen der Benutzeroberfläche standardmäßig nur die Zulassungsberechtigung Lesen für Jeder gewährt wird, sollten Sie Freigaben stattdessen mit dem Befehl net share und der Option /grant:everyone, full anlegen und gleichzeitig die Berechtigungen zuweisen. 2.8 Skripts zum Erstellen einer SMB-Freigabe Die Lösung im Überblick Typ Skript Funktionen und Werkzeuge VBScript, PSExec, net share Zusammenfassung Sie passen das Skript Share_Create.vbs an und verwenden es, um eine SMB-Freigabe mitsamt allen ihren Eigenschaften zu erstellen. Vorteile Verbesserte Verwaltbarkeit der Sicherheit freigegebener Ordner Einführung Da die Konsole Freigegebene Ordner standardmäßig Freigabeberechtigungen und Cacheeinstellungen zuweist, die sich für die meisten Situationen nicht eignen, empfehle ich Ihnen, ein Skript zu erstellen, um freigegebene Ordner nach Ihren Spezifikationen bereitzustellen. Verwenden von Share_Create.vbs Das Skript Share_Create.vbs, dass Sie im Ordner Scripts auf dem Begleitmedium finden, erstellt eine Freigabe und weist ihr die Zulassungsberechtigung Vollzugriff für Jeder zu. Das Skript wird wie folgt verwendet: 124 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben cscript Share_Create.vbs /server:Servername /path: "Pfad zum Ordner im Dateisystem des Servers" /sharename:"Freigabename" [/cache: Cacheeinstellungen] [/username:Alternativer Benutzername /password:Alternatives Kennwort In diesem Skript können Sie als Cacheeinstellungen Manual, Documents, Programs und None wählen. Bei Alternativer Benutzername und Alternatives Kennwort handelt es sich um Anmeldeinformationen zum Erstellen der Freigabe. Sind keine alternativen Anmeldeinformationen angegeben, wird das Skript im Sicherheitskontext des zurzeit angemeldeten Benutzers ausgeführt. Anpassen von Share_Create.vbs Leider werden Cacheeinstellungen nicht auf eine Weise offen gelegt, die einen Zugriff mit VBScript erlaubt. Daher müssen wir den Befehl net share ausführen, um die Cacheeinstellungen vorzunehmen. Das Skript setzt psexec.exe ein, um net share auf Remotecomputern auszuführen. Sie müssen im Konfigurationsblock des Skripts den vollständigen Pfad zu psexec.exe angeben. Dies ist nicht erforderlich, wenn sich psexec.exe im selben Ordner befindet wie das Skript. Optional können Sie auch die Freigabeberechtigungen ändern, die das Skript für einen neu erstellten freigegebenen Ordner vergibt. Standardmäßig weist das Skript die Zulassungsberechtigung Vollzugriff für Jeder zu. Sie können diese Vorgabe ändern und auch weitere Berechtigungen hinzufügen, die auf die neue Freigabe angewendet werden. Grundlagen von Share_Create.vbs Im Folgenden finden Sie eine Beschreibung der Kernkomponenten des Skripts. Set oWMIService = ConnectWMI(sServer, "root\cimv2", sUsername, sPassword) Diese Zeile ruft die Funktion ConnectWMI auf, um Verbindung mit dem WMI-Namespace (Windows Management Instrumentatin) root\cimv2 auf dem Server aufzunehmen, den Sie an der Befehlszeile durch das Argument /server angegeben haben. Bevor eine neue Ordnerfreigabe erstellt wird, entfernt das Skript jegliche Freigabe desselben Namens: Set oOutParams = oWMIService.ExecMethod("Win32_Share.Name='" & sShareName & "'", "Delete") Anschließend wird eine Sicherheitsbeschreibung mit der SMB-Zugriffssteuerungsliste für den freigegebenen Ordner angelegt. Die folgenden Codezeilen können Sie ändern, um eine andere standardmäßige Zugriffssteuerungsliste einzurichten: Set oSecDescClass = oWMIService.Get("Win32_SecurityDescriptor") Set oSecDesc = oSecDescClass.SpawnInstance_() Set oTrustee = oWMIService.Get("Win32_Trustee").SpawnInstance_ Set oACE = oWMIService.Get("Win32_Ace").SpawnInstance_ ' KONFIGURATION (Optional) ' Verwenden Sie die folgenden drei Zeilen für "Jeder" oTrustee.Domain = Null oTrustee.Name = "EVERYONE" oTrustee.Properties_.Item("SID") = Array(1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0) ' Für andere Benutzer/Gruppen als Jeder nehmen Sie folgende Zeilen 2.9 Erstellen freigegebener Ordner 125 ' statt der drei vorstehenden: ' Set oTrustee = Trustee_Get("<domain>", "<name", "user | group") ' KONFIGURATION (Optional) oACE.Properties_.Item("AccessMask") = 2032127 ' 2032127 = "Full" ' 1245631 = "Change" ' 1179817 = "Read" oACE.Properties_.Item("AceFlags") = 3 oACE.Properties_.Item("AceType") = 0 oACE.Properties_.Item("Trustee") = oTrustee oSecDesc.Properties_.Item("DACL") = Array(oACE) Nachdem die Sicherheitsbeschreibung angelegt ist, kann der freigegebene Ordner erstellt werden: Set oWin32Share = oWMIService.Get("Win32_Share") Set oInParam = oWin32Share.Methods_("Create").InParameters.SpawnInstance_() oInParam.Properties_.Item("Access") = oSecDesc oInParam.Properties_.Item("Description") = sRemark oInParam.Properties_.Item("Name") = sShareName oInParam.Properties_.Item("Path") = sPath oInParam.Properties_.Item("Type") = 0 Set oOutParams = oWin32Share.ExecMethod_("Create", oInParam) Abschließend wird der Befehl net share ausgeführt, um die Cacheeinstellungen für den freigegebenen Ordner festzulegen: sCommandLine = "net share """ & sShareName & """ /CACHE:" & sCache PSExec_Run sCommandLine, sServer Zusammenfassung Mit dem Skript Share_Create.vbs können Sie eine Ordnerfreigabe mitsamt ihrer Zugriffssteuerungsliste, ihrer Beschreibung, dem Freigabenamen usw. erstellen. 2.9 Erstellen freigegebener Ordner Die Lösung im Überblick Typ Werkzeug Funktionen und Werkzeuge HTML-Anwendung, VBScript, PSExec, net share Zusammenfassung Sie passen Folder_Provision.hta an und setzen diese Anwendung ein, um freigegebene Ordner mit rollenbasierter Zugriffssteuerung bereitzustellen. Vorteile Automatisierte, rollenbasierte Bereitstellung von freigegebenen Ordnern unter Einhaltung von Sicherheitsmaßnahmen Vorschau Abbildung 2.9 zeigt eine Vorschau auf die Lösung. 126 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Abbildung 2.9 Das Werkzeug zum Bereitstellen eines freigegebenen Ordners Einführung Einen freigegebenen Ordner können Sie nicht in einem einzigen Schritt bereitstellen, sondern müssen Folgendes tun: 1. Erstellen Sie den Ordner, falls er noch nicht vorhanden ist. 2. Erstellen Sie Befugnisverwaltungsgruppen für den Ressourcenzugriff, um den Ordner zu schützen, falls Sie den Prinzipien der rollenbasierten Zugriffssteuerung folgen und es diese Gruppen noch nicht gibt. 3. Richten Sie den Ressourcenzugriff ein, indem Sie die Zugriffssteuerungsliste des Ordners ändern und die geeigneten Zugriffssteuerungseinträge für die Befugnisverwaltungsgruppen einfügen. 4. Erstellen Sie eine SMB-Freigabe. 5. Weisen Sie SMB-Freigabeberechtigungen zu. 6. Ändern Sie die Eigenschaften der SMB-Freigabe, z.B. die Beschreibung und die Cacheeinstellungen. Überall in dieser technischen Referenz wenden wir das Prinzip der Vorsorge an, um Vorgänge mit mehreren Schritten zu automatisieren und die konsistente Einhaltung von Geschäftsregeln sicherzustellen. 2.9 Erstellen freigegebener Ordner 127 Ein Vorgang mit so vielen Variablen wie die Bereitstellung von freigegebenen Ordnern ist ein idealer Kandidat für ein maßgeschneidertes Verwaltungswerkzeug. Abb. 2.9 zeigt die Oberfläche von Folder_Provision.hta, einer HTML-Anwendung, die Sie im Ordner Scripts auf dem Begleitmedium finden. Es handelt sich um ein Programm zur Bereitstellung von Ordnern, das die eben erwähnten Schritte automatisiert. Um die Konfiguration und Geschäftslogik Ihres Unternehmens widerzuspiegeln, erfordert es einen mäßigen Aufwand an Anpassung. In dieser Lösung untersuchen wir die Anwendung Folder_Provision.hta, um ihre Verwendung, ihre Anpassung und den Code kennen zu lernen, mit dem sie ihre Aufgabe erfüllt. Verwenden von Folder_Provision.hta Folder_Provision.hta befindet sich im Ordner Scripts des Begleitmediums. Diese Anwendung erfordert das Skript Share_Create.vbs, das in der vorigen Lösung vorgestellt wurde, sowie Psexec.exe, das Sie sich von http://www.microsoft.com/technet/sysinternals herunterladen können, und Icacls.exe, ein systemeigenes Tool von Windows Server 2003 SP2, Windows Vista und Windows Server 2008. Platzieren Sie das Skript und die HTML-Anwendung im selben Ordner. Außerdem müssen Sie die HTML-Anwendung so anpassen, dass sie den Pfad zu Psexec.exe kennt, sofern Sie dieses Programm nicht ebenfalls in den selben Ordner packen. Die Konfiguration der HTML-Anwendung sehen wir uns weiter hinten in dieser Lösung an. Um das Hilfsprogramm zur Bereitstellung eines Ordners verwenden zu können, brauchen Sie die Berechtigung für folgende Vorgänge: Erstellen eines Ordners am angegebenen Speicherort (sofern der Ordner noch nicht existiert) Der Ordner, den Sie in dem Werkzeug angeben, wird unterhalb des Stammdatenordners angelegt. Dieser Stammdatenordner muss bereits vorhanden sein. Falls es ihn noch nicht gibt, müssen Sie ihn vor der Ausführung dieses Hilfsprogramms erstellen. Erstellen einer Freigabe auf dem ausgewählten Server (es sei denn, die Freigabe ist bereits vorhanden oder Sie möchten den Ordner nicht freigeben) Ändern der Zugriffssteuerungslisten für den Ordner Erstellen von Gruppen in der Organisationseinheit, die Sie auf der Registerkarte Options angeben (sofern diese Gruppen noch nicht existieren) Wenn Sie das Werkzueg öffnen, zeigt es wie in Abb. 2.9 eine Reihe von Eingabesteuerelementen an, mit deren Hilfe Sie einen freigegebenen Ordner bereitstellen können. Um einen Ordner bereitzustellen, gehen Sie wie folgt vor: 1. Wählen Sie aus der Dropdownliste Server einen Server aus. Sie können diese Liste anpassen, sodass sie Ihre Dateiserver anzeigt. 2. Geben Sie im Textfeld Folder Name einen Namen für den Ordner ein. 3. Das Feld Folder Location wird automatisch ausgefüllt. Der Standardspeicherort ist ein Ordner der ersten Ebene unterhalb des Stammdatenordners. Den Stammdatenordner legen Sie auf der Registerkarte Options fest, die Sie erreichen, indem Sie auf die gleichnamige Schaltfläche klicken. Bevor Sie den Stammdatenordner hier angeben können, müssen Sie ihn erstellt und freigegeben haben. 128 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 4. 5. 6. 7. 8. 9. Der Ordner muss unterhalb des auf der Registerkarte Options festgelegten Stammdatenordners erstellt werden. Allerdings muss es sich bei ihm nicht um einen Ordner der ersten Ebene unterhalb des Stamms handeln – er kann auch einige Ebenen tiefer liefen. Sie können den Code der HTML-Anwendung anpassen, um die Logik zu ändern, nach der das Feld Folder Name ausgefüllt wird, oder um die Benutzer daran zu hindern, dieses Feld manuell zu überschreiben. Einzelheiten zur Anpassung dieses Werkzeugs finden Sie im nächsten Abschnitt. Aktivieren Sie das Kontrollkästchen Share Folder um eine neue SMB-Freigabe für den neben Ordner anzulegen. Wenn Sie eine Freigabe erstellen, können Sie angeben, ob Sie Offlinedateien dafür zulassen, indem Sie das Kontrollkästchen Enable Offline Files aktivieren (standardmäßig ist es deaktiviert). Wenn Sie eine Freigabe erstellen, wird das Textfeld UNC Path To Folder automatisch ausgefüllt. Standardmäßig gibt der UNC-Pfad eine verborgene Freigabe in der Form \\<servername>\<ordnername>$ an. Auf der Registerkarte Options können Sie festlegen, ob die HTML-Anwendung verborgene Freigaben anlegt (Standardeinstellung) oder nicht. Sie können den Code der HTML-Anwendung anpassen, um die Logik zu ändern, nach der der UNC-Pfad erstellt wird. Einzelheiten zur Anpassung dieses Werkzeugs finden Sie im nächsten Abschnitt. Geben Sie im Textfeld Description For Folder eine Beschreibung der Freigabe ein. Geben Sie im Textfeld Groups Base Name einen Namen ein. Die HTML-Anwendung stellt den Ordner mit einer rollenbasierten Zugriffssteuerung bereit. Sie legt Befugnisverwaltungsgruppen für ausgewählte Befugnisse wie Lesen (Read), Bearbeiten (Edit), Beiträge leisten (Contribute) und Verwalten (Administer) an. Der Name der Gruppen folgt dem Format ACL_<Ordnername>_<Befugnis>. Sobald Sie den Wert im Feld Groups Base Name ändern, werden automatisch Gruppennamen für die einzelnen Befugnisse erstellt. Auf der Registerkarte Options können Sie den Präfix ändern, der als Namensstandard für Befugnisverwaltungsgruppen zur Ressourcenverwaltung dient (standardmäßig lautet er ACL_). Sie können auch die Organisationseinheit angeben, in der die Gruppen erstellt werden. Sie können den Code der HTML-Anwendung anpassen, um die Logik zu ändern, nach der die Gruppennamen gebildet werden. Einzelheiten zur Anpassung dieses Werkzeugs finden Sie im nächsten Abschnitt. Wählen Sie im Abschnitt Capabilities and Group Names die Befugnisse aus, die Sie für den Ordner einrichten möchten. Es werden nur die ausgewählten Befugnisse (aktivierte Kontrollkästchen) bereitgestellt. Wird eine Befugnis bereitgestellt, ändert das Skript die Zugriffssteuerungsliste des Ordners, um die geeigneten Zugriffssteuerungseinträge für die angegebenen Gruppen hinzuzufügen. Sie können den vorausgefüllten Gruppennamen überschreiben. Dies ist vor allem dann sinnvoll, wenn Sie einen neuen Ordner in einer bereits vorhandenen Sammlung von Ressourcen erstellen, da dann die entsprechenden Gruppen bereits in Active Directory vorhanden sind. Wenn eine Befugnis für eine Gruppe bereitgestellt wird, die es in Active Directory noch nicht gibt, wird diese Gruppe in der auf der Registerkarte Options angegebenen Organisationseinheit angelegt. Sie können die HTML-Anwendung anpassen und einige Befugnisse entfernen oder neue hinzufügen. 2.9 Erstellen freigegebener Ordner 129 Neben den Zugriffssteuerungseinträgen für die ausgewählten Gruppen weist der Code der HTMLAnwendung einige standardmäßige weitere zu, nämlich die Zulassungsberechtigung Vollzugriff für Administratoren und System. Falls Sie die Befugnis Contribute auswählen, erhält Ersteller-Besitzer die Berechtigung Ändern. Alle diese zusätzlichen Berechtigungen können Sie im Code der Anwendung ändern oder entfernen. 10. Wenn der Besitzer einer Datei oder eines Ordners innerhalb des neuen Ordners die Berechtigungen für sein Objekt nicht ändern können soll, aktivieren Sie Prevent Owners from Changing Permissions. Die Option steht nur zur Verfügung, wenn das System, auf dem der Ordner bereitgestellt wird, Windows Vista oder Windows Server 2008 ausführt. Auf Systemen mit früheren Versionen von Windows können Sie diese Option nicht auswählen. Die Berechtigung, die dies möglich macht, wird in Lösung 2.11 auf Seite 139 besprochen. 11. Um den neuen Ordner zu einem DFS-Namespace hinzuzufügen, aktivieren Sie das Kontrollkästchen Add To DFS Namespace. Sie können dann Folgendes tun: Geben Sie den Pfad des übergeordneten DFS-Ordners ein. Dabei kann es sich entweder um einen vorhandenen Namespace oder einen vorhandenen DFS-Ordner handeln. Das Textfeld DFS Parent Folder ist mit der Option DFS Namespace von der Registerkarte Options vorausgefüllt. Geben Sie den Pfad des neuen DFS-Ordners als Ziel für den Ordner ein, den Sie bereitstellen. Im Textfeld DFS Folder Name ist der Name dieses Ordners bereits angegeben. 12. Klicken Sie auf Provision Shared Folder. 13. Während die HTML-Anwendung das Skript Share_Create.vbs und Psexec.exe und Icacls.exe aufruft, werden verschiedene Befehlsfenster geöffnet. Wenn Sie die HTML-Anwendung zum ersten Mal ausführen, werden Sie möglicherweise dazu aufgefordert, dem Lizenzvertrag für Psexec.exe zuzustimmen. 14. Im Fenster Status werden Sie über eventuelle Fehler informiert. Ein Meldungsfeld zeigt an, dass der Ordner erfolgreich bereitgestellt wurde. Um die Standardeinstellungen der HTML-Anwendung zu überschreiben, klicken Sie auf die Schaltlfäche Options. Auf der Registerkarte Options können Sie das Standardverhalten ändern, wobei diese Änderungen bis zum Schließen der Anwendung gelten. Die Vorgabewerte stehen im Code der Anwendung, sodass Sie ihn bearbeiten müssen, wenn Sie die Standardeinstellungen dauerhaft ändern möchten. Grundlegende Anpassung von Folder_Provision.hta Mit Sicherheit müssen Sie das Werkzeug zum Bereitstellen von Ordnern an die Verhältnisse in Ihrem Unternehmen anpassen. Oben im Skript gibt es einen Konfigurationsblock, der Werte wie den Domänennamen und die Pfade zu den benötigten Skripts und Hilfsprogrammen enthält. Anpassen des Verhaltens von Optionsvorgaben Es gibt auch einen Block mit der Bezeichnung Option Defaults, der das Standardverhalten des Werkzeugs bestimmt, z.B. wie der standardmäßige Speicherort der Stammdatenfreigabe lautet, ob für jeden neuen Ordner eindeutige Freigaben erstellt werden, ob die Freigaben verborgen sind, welches Präfix für die Gruppen verwendet wird usw. Jeder dieser Werte wird im Code durch Kommentare erklärt. 130 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Alle Werte aus dem Abschnitt Option Defaults werden auf der Registerkarte Options der Anwendung angezeigt und können bei der Verwendung des Werkzeugs überschrieben werden. Der HTML-Code für diese Registerkarte befindet sich am Ende des Codes für die Anwendung. In manchen Situationen wünschen Sie wahrscheinlich nicht, dass ein Benutzer einen der Standardwerte überschreiben kann. So erlaubt die HTML-Anwendung z.B. nicht, das Präfix für den Benennungsstandard der Gruppen zu ändern (standardmäßig ACL_). Dies liegt daran, dass ein Administrator diesen Wert für das Präfix im Code der Anwendung eingerichtet hat, um die Namenskonvention durchzusetzen. Jemand, der dieses Werkzeug verwendet, sollte nicht in der Lage sein, die Namenskonvention zu missachten. Um einen Standardwert zu sperren, können Sie die Tabellenzelle, die den Wert auf der Registerkarte Options anzeigt, vom öffnenden Tag <tr> bis zum schließenden Tag </tr> komplett löschen. Alternativ können Sie auch dafür sorgen, dass der Wert zwar auf der Registerkarte Options angezeigt wird, aber nicht verändert werden kann, indem Sie dem Tag <input> das folgende Attribut hinzufügen: disabled="true" Ein Beispiel dafür sehen Sie in der HTML-Zeile, die das Gruppennamenpräfix anzeigt. Die letztgenannte Methode ist gegenüber dem Löschen der Tabellenzeile zu bevorzugen, da der Benutzer dann immer noch die Voreinstellung sehen kann, was sehr hilfreich sein mag. Der Benutzer kann diese Voreinstellung nur nicht ändern. Anpassen der Serverliste Die Dropdownliste Server sollte die Dateiserver Ihres Unternehmens anzeigen. Diese Liste finden Sie hartkodiert nahe dem Ende der HTML-Anwendung: <select name="cboServer" /> <option value="">Select a server</option> <option value="SERVER01.contoso.com">SERVER01</option> <option value="SERVER02.contoso.com">SERVER02</option> </select> Das Tag <select> erstellt eine Dropdownliste. Jedes <option>-Tag legt ein Element in dieser Liste an. Um Server zu ändern, hinzuzufügen oder zu entfernen, müssen Sie lediglich die <option>-Tags ändern, hinzufügen oder löschen. Dabei ist es sehr wichtig, dass das Attribut value auf den Namen des Servers eingestellt wird. Ich empfehle Ihnen, stets den vollständig qualifizierten Domänennamen (FQDN) zu verwenden, wenn Sie namentlich auf einen Computer verweisen. Der Text zwischen den öffnenden und schließenden Tags <options> und </options> erscheint als Bezeichnung in der Dropdownliste. Es handelt sich einfach benutzerfreundlichen Namen des Servers, der in dem Formular angezeigt wird. Wenn Sie wünschen, können Sie hier auch einfache Namen verwenden (NetBIOS- oder Hostnamen). Der Code von Folder_Provision.hta und die erweiterte Anpassung Um eine erweiterte Anpassung des Ordnerbereitstellungswerkzeugs vornehmen zu können, müssen Sie wissen, wie dieses Dienstprogramm funktioniert. Wenn Sie Erfahrungen im Schreiben von Skripts in HTML und VBScript haben, ist dieser Abschnitt sehr hilfreich für Sie. Wir schauen uns drei Hauptaspekte der Anwendung an: ihre Anzeige, das Verhalten der Formularsteuerelemente und der Code, der letztlich für die Bereitstellung des Ordners sorgt. 2.9 Erstellen freigegebener Ordner 131 Bildschirmanzeige der Anwendung Die Anwendung hat zwei Registerkarten: Provision und Options Jede Regeisterkarte wird durch eine Schaltfläche vertreten, die durch den folgenden HTML-Code generiert wird: <table border="0" cellpadding="3" cellspacing="5"> <tr><td id="btnProvision" onclick="ShowProvision()" style="background-color: #CCCCCC; width:60px; text-align:center;">Provision</td> <td id="btnOptions" onclick="ShowOptions()" style="background-color: #CCCCCC; width:60px; text-align:center;">Options</td> </tr> </table> Jede Registerkarte befindet sich innerhalb eines <div>-Tags: <div id="divOption" name="divOption"> <table border="0" cellpadding="0" cellspacing="0"> <!-- Die Seite OPTIONS der Anwendung folgt. Wenn die Benutzer den Standardwert einer dieser Optionen nicht ändern sollten, löschen Sie entweder komplett die Tabellenzeile <tr>...</tr> oder fügen disabled="true" im Tag <input> hinzu --> <tr><td class="frmlabel">Root data folder</td><td><input type="text" name="txtRootPath" size="60" /></td></tr> ... </table> </div> Das <div>-Tag enthält eine Tabelle für das Layout der Eingabesteuerelemente auf der Registerkarte. Wenn Sie auf eine Schaltfläche wie Options klicken, wird ein OnClick-Ereignis ausgelöst. Es ist mit dem zuvor gezeigten <td>-Tag der Schaltfläche verknüpft und ruft eine Subroutine wie die folgende auf: Sub ShowOptions() divProvision.style.display = "none" btnProvision.style.backgroundcolor = "#CCCCCC" divOption.style.display = "inline" btnOptions.style.backgroundcolor = "#EEEEEE" End Sub Dieser einfache VBScript-Code öffnet die Registerkarte, für die die Schaltfläche steht (divOption.style.display = "inline") und schließt die andere. Außerdem vertauscht er die Farben der Schaltflächen, damit die hellere für die aktuelle Registerkarte steht. Beim Start der Anwendung wird automatisch die Subroutine Window_OnLoad aufgerufen. Sie skaliert das Anwendungsfenster auf eine geeignete Größe und ruft dann die Subroutine auf, die die Registerkarte Provision sichtbar macht. Anschließend legt sie die Werte der Steuerelemente auf der verborgenen Registerkarte Options fest. Der Code für die Anzeige der Anwendung braucht nicht angepasst zu werden, sofern Sie keine weiteren Steuerelemente hinzufügen oder das Anwendungsfenster breiter oder höher gestalten möchten. 132 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Formularsteuerelemente Die beiden Formulare der HTML-Anwendung sind die Registerkarten Options und Provision. Wie ich gerade erklärt habe, sind sie jeweils in ein <div>-Tag eingebetttet, das angezeigt wird, wenn der Benutzer auf die zugehörige Schaltfläche klickt. Jeder <div>-Bereich enthält eine Tabelle mit dem Layout für die Eingabesteuerelemente: Textfelder, Dropdownlisten und Kontrollkästchen. Jedes dieser Eingabesteuerelemente trägt einen Namen, mit dem Sie auf das Element und seine Werte verweisen können. Wenn Sie das Formular um weitere Eingabeparameter ergänzen möchten, fügen Sie einfach Tabellenzeilen zu der betreffenden Zeile hinzu und fügen die neuen Steuerelemente ein. Die Standardwerte im Formular Options sind im Abschnitt Option Defaults des Skripts hartkodiert. Sie sollten die Standardwerte im Code so einrichten, dass Sie den korrekten Werten für Ihr Unternehmen entsprechen. Damit diese Werte von einem Benutzer der Anwendung leichter überschrieben werden können, werden sie in einem Eingabesteuerelement auf der Registerkarte Options offen gelegt. Die Standardwerte werden über die Subroutine SetDefaultOptions() in die Steuerelemente eingefügt. Diese Routine wird beim Start der HTML-Anwendung durch das Ereignis Window_OnLoad und beim Klicken auf die Schaltfläche Reset Options To Defaults aufgerufen. Sie können die Art und Weise ändern, in der die Optionen auf der Registerkarte Options dargestellt werden. Wie bereits gesagt können Sie das Attribut disabled="true" zu einem <input>-Tag hinzufügen, um das Steuerelement zu deaktivieren und damit zu verhindern, dass ein Benutzer den betreffenden Standardwert überschreibt. Außerdem können Sie den Typ eines Steuerelements ändern. Wenn Sie über mehrere Befugnisverwaltungsgruppen verfügen, in denen sich Befugnisverwaltungsgruppen für den Ressourcenzugriff erstellen lassen, können Sie das Steuerelement txtGroupOU in eine Dropdownliste ändern (<select>-Tag). Stellen Sie aber sicher, dass Sie auch andere Stellen im Code ändern, die auf txtGroupOU verweisen. Wenn Sie neue Parameter hinzufügen, um das Verhalten des Werkzeugs zu ändern, empfehle ich Ihnen, dem bereits vorhandenen Modell zu folgen. Definieren Sie eine Variable mit dem Standardwert im Abschnitt Default Options des Skripts, fügen Sie ein Eingabesteuerelement zum <div>-Bereich von Options hinzu und ergänzen Sie die Subroutine SetDefaultOptions() um eine Codezeile, die den Standardwert in das Steuerelement einbringt. Natürlich müssen Sie auch den restlichen Code der Anwendung ändern, damit der neue Parameter auch tatsächlich verwendet wird und seinen Zweck erfüllt. Die Werte im Formular Provision werden mithilfe von Eingabesteuerelementen im zugehörigen <div>Bereich angezeigt. Die Steuerelemente werden mit Ausnahem des Ordner- und des Servernamens durch die Subroutine ResetControls() auf ihre Standardwerte (leer) zurückgesetzt. Alle Steuerelemente, auch die für den Ordner- und den Servernamen, werden durch die Subroutine ResetForm() initialisiert, die bei einem Blick auf die Schaltfläche Reset Form aufgerufen wird. Wenn Sie dem Formular weitere Steuerelemente hinzufügen, müssen Sie sie auch in ResetForm() auf ihre Standardwerte setzen. Bei manchen Steuerelementen führt eine Eingabe dazu, dass andere Steuerelemente automatisch mit Werten gefüllt werden. Dies wird durch ein OnChange-bzw. durch ein OnClick-Ereignis (für Kontrollkästchen) erreicht. Wenn Sie z.B. den Wert des Feldes Group Base Name ändern, werden automatisch die Namen der Befugnisverwaltungsgruppen ausgefüllt. Im HTML-Code des Formulars heißt dieses Textfeld txtGroupBaseName. Das folgende Skript verknüpft das OnChange-Ereignis für dieses Textfeld mit der gewünschten Funktionalität: Sub txtGroupBaseName_OnChange() ' Bei Änderungen des Basisnamens werden die Werte in den Namensfeldern der 2.9 Erstellen freigegebener Ordner 133 ' Befugnisgruppen neu geschrieben. An dieser Stelle können Sie den Code ' ändern, sodass er Ihre Namenskonvention für Befugnisgruppen ' widerspiegelt If txtGroupBaseName.value > "" Then txtReadGroup.Value = txtGroupPrefix.Value & txtGroupBaseName.Value & "_Read" txtEditGroup.Value = txtGroupPrefix.Value & txtGroupBaseName.Value & "_Edit" txtContributeGroup.Value = txtGroupPrefix.Value & txtGroupBaseName.Value & "_Contribute" txtAdministerGroup.Value = txtGroupPrefix.Value & txtGroupBaseName.Value & "_Administer" Else txtReadGroup.Value = "" txtEditGroup.Value = "" txtContributeGroup.Value = "" txtAdministerGroup.Value = "" End If End Sub Wenn der neue Wert des Textfelds nicht leer ist, konstruiert der Code die Namen der vier Befugnisgruppen, indem er das Präfix aus dem Textfeld txtGroupPrefix auf der Registerkarte Options nimmt, den im Feld Group Base Name eingegebenen Wert anhängt und dann die Bezeichnung der Befugnis hinzufügt. Ist das Textfeld Group Base Name jedoch nicht ausgefüllt, werden auch alle Textfelder für die Befugnisgruppen leer gelassen. Wenn Sie die Logik ändern möchten, nach der die Werte vorausgefüllt werden, suchen Sie im Code der Anwendung nach den entsprechenden OnChange- bzw. OnClick-Ereignissen. Ordnererstellung Der Code, der die Bereitstellung durchführt, ist die Subroutine ProvisionIt(), die aufgerufen wird, wenn der Benutzer auf die Schaltfläche Provision Shared Folder klickt. ProvisonIt() ruft zunächst die Funktion CreateFolder() auf, die einfach den Pfad des neuen Ordners bestimmt und dann ihrerseits die Subroutine FolderPath_Create aufruft. Diese erstellt dann den angegebenen Ordner. Die Funktion CreateFolder() entnimmt die benötigten Werte für den Ordnernamen und -pfad aus den Eingabesteuerelementen des Formulars. Sie gibt das Ergebnis als Zeichenkette zurück. ProvisionIt ist in der Lage, dieses Ergebnis zu untersuchen, um festzustellen, ob ein Fehler aufgetreten ist. Anschließend legt ProvisionIt() die Standardberechtigungen für den Ordner fest. Administratoren und System erhalten jeweils Vollzugriff. Die Berechtigungen werden in Form von Befehlszeilenoptionen für Icacls.exe in die Zeichenfolgenvariable sPermission geschrieben. Tatsächlich wird sPermission zusammen mit dem UNC-Pfad des Ordners an die Subroutine ACLit() übergeben, die einfach icacls mit sPermission als Option aufruft. Wenn Sie die Standardberechtigungen ändern möchten, die jedem von der Anwendung erstellten Ordner gewährt werden, ändern Sie einfach die Zuweisung zu sPermission. Nachdem die Standardberechtigungen angewendet wurden, schaut sich ProvisionIt()die einzelnen Befugnisse an, die ausgewählt (aktiviert) wurden, und ruft als Erstes die Subroutine CreateGroup() auf, um eine Gruppe in Active Directory zu erstellen. CreateGroup enthält eine Geschäftslogik, nach der die Eigenschaft Description der Gruppe als UNC-Pfad zu der von der Gruppe gesteuerten Ressource angelegt wird. Außerdem ist CreateGroup so geschrieben, dass Gruppen als lokale Domänensicherheitsgruppen erstellt werden. 134 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben ProvisionIt weist dann erneut Berechtigungen zu. Dazu wird sPermission als Befehlszeilenoption für icacls eingerichtet und abermals ACLit() aufgerufen, um Icacls.exe auszuführen. Während die einzelnen ausgewählten Befugnisse eingerichtet werden, wird die Variable sRolesConfigured mit dem jeweiligen Anzeigenamen der Befugnis angehängt. Diese Variable wird dann verwendet, um in den Ereignisprotokollen eine Zusammenfassung anzuzeigen. Wenn Sie die Art und Weise ändern möchten, in der Befugnisse eingerichtet werden, ändern Sie die Berechtigungen, die in sPermission geschrieben werden. Um zu den vier vorhandenen Befugnissen eine neue hinzuzufügen, gehen Sie folgendermaßen vor: Fügen Sie in die HTML-Tabelle eine Zeile für die neue Befugnis ein. Als Muster verwenden Sie eine der vorhandenen Befugnisse. Fügen Sie dem Ereignis txtGroupBaseName_OnChange Code hinzu, um den Gruppennamen für die neue Befugnis vorab auszufüllen. Fügen Sie ProvisionIt() Code hinzu, der herausfindet, ob die neue Befugnis ausgewählt ist und ggf. die geeignete sPermission-Zeichenfolge an ACLit() sendet. Die letzte Berechtigung, die ProvisionIt() zuweist, gewährt der Identität Eigentümerrechte die Berechtigung Ändern. Diese Berechtigung ist nur verfügbar, wenn Sie einen Ordner auf einem Windows Vistaoder Windows Server 2008-System bereitstellen, und dient dazu, Benutzer daran zu hindern, die Berechtigungen für ihre eigenen Dateien zu ändern. Eine ausführlichere Beschreibung dieser Berechtigungn finden Sie in Lösung 2.11 auf Seite 139. ProvisionIt() überprüft dann, ob das Kontrollkästchen zum Erstellen einer SMB-Freigabe aktiviert ist. Ist dies der Fall, wird die Funktion ShareFolder() aufgerufen. Sie ermittelt die Werte im Formular und erstellt daraus eine Befehlszeile, um das Skript Share_Create.vbs aufzurufen. Abschließend ermittelt ProvisionIt(), ob der Ordner zu einem DFS-Namespace hinzugefügt werden soll, und ruft dann AddToDFS() auf. Diese Funktion erstellt einen DFS-Namespaceordner für den UNC-Pfad des neu bereitgestellten Ordners. Während ProvisionIt() die einzelnen Hauptschritte durchführt, wird das Statusfenster im Formular (das im Code als txtStatus auftaucht) jeweils aktualisiert. Bei erfolgreichem Abschluss des Vorgangs wird ein Nachrichtenfeld generiert, um den Benutzer von der erfolgreichen Bereitstellung des freigegebenen Ordners zu informieren. Zusammenfassung Folder_Provision.hta ist ein Beispiel für ein leistungsfähiges Bereitstellungswerkzeug, das ein umfangreiches Verfahren automatisiert und Geschäftslogik und verbindliche Verfahrensweisen erzwingt. Dieses Hilfsprogramm demonstriert auch einige nützliche Ansätze zum Einrichten von Standardwerten, zur Anzeige verschiedener Registerkarten in einer HTML-Anwendung, zum automatischen Ausfüllen von Eingabesteuerelementen und zur Nutzung externer Skripts und Werkzeuge. Mit etwas grundlegender Anpassung können Sie die HTML-Anwendung einrichten, um Ordner bereitzustellen, wobei auch für eine rollenbasierte Zugriffssteuerung gesorgt wird. Wenn Sie ein wenig mehr Mühe in die Anpassung investieren, können Sie diesen Ansatz nutzen, um die ideale Lösung für Ihr Unternehmen zu erstellen. 2.10 Vermeiden der Vererbungsweiterleitung beim Verschieben von Dateien und Ordnern 135 2.10 Vermeiden der Vererbungsweiterleitung beim Verschieben von Dateien und Ordnern Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Robocopy.exe Zusammenfassung Verwenden Sie niemals Windows Explorer, um Dateien oder Ordner zwischen zwei Speicherorten im selben Namespace zu verschieben, für die unterschiedliche Berechtigungen gelten, sondern setzen Sie dafür Robocopy ein. Vorteile Korrekte Zuweisung von Berechtigungen Wichtig Diese Lösung geht ein Problem an, das viele (darunter alle meine Kunden) als einen Bug oder einen Entwurfsfehler in der Dateisicherheit von Windows-Systemen ansehen. Microsoft spricht hier von einer Konsequenz aus einem bekannten Feature des NTFS-Dateisystems, hat dies jedoch in Windows Server 2008 trotzdem geändert. Unabhängig davon, ob Sie von einem »Feature« oder einem »Bug« sprechen, müssen Sie Ihre Administratoren darüber unterrichten, um Sicherheitsprobleme zu vermeiden. Überspringen Sie diese Lösung nicht! Einführung Stellen Sie sich vor, dass Sie einen freigegebenen Ordner für eine Abteilung erstellt haben. Unterhalb dieses Ordners befinden sich weitere Ordner für Teams innerhalb der Abteilung. Jeder Teamordner ist so abgesichert, dass nur Mitglieder des entsprechenden Teams auf den Inhalt zugreifen können. Der Abteilungsleiter, der Zugriff auf alle Teamordner hat, platziert versehentlich eine sensible Datei im Ordner des falschen Teams. Er benachrichtigt Sie sofort, woraufhin Sie auf die Freigabe zugreifen und die Datei per Drag & Drop in den richtigen Ordner verschieben. Allerdings stellen Sie bald fest, dass die Mitglieder des falschen Teams immer noch auf die Datei an ihrem neuen Standort zugreifen können, während die Mitglieder des richtigen Teams keinen Zugang haben. Dies stellt ein Sicherheitsproblem dar. Die Kernaussage dieser Lösung lautet, dass Sie Windows Explorer nicht verwenden können, um eine Datei zwischen zwei Ordnern im selben Namespace zu verschieben, für die unterschiedliche Berechtigungen gelten (z.B. innerhalb einer Freigabe oder eines Festplattenvolumes auf dem System, an dem Sie direkt oder über Remotedesktop angemeldet sind). Wenn Sie eine Datei mit Drag & Drop, durch Ausschneiden und Kopieren oder mit irgendeiner anderen Methode verschieben, kann dies zu einer falschen Anwendung von Sicherheitsberechtigungen führen. In Windows Server 2008 wurde dieses Problem behoben. Es überrascht nicht, dass Microsoft nicht auf das potenzielle Sicherheitsrisiko hinweist, das acht Jahre nach seinem Auftreten behoben wurde. Dennoch bin ich froh, dass es jetzt endlich behoben ist. Um zu erklären, was hier genau geschieht und wie Sie es vermeiden können, werde ich ans Eingemachte gehen. Dabei spreche ich nicht jedes Detail und jede Ausnahme von der Regel an, aber Sie werden genug erfahren, um das Problem zu verstehen und eine Auswahl an Lösungen zur Verfügung zu haben. Außerdem lernen Sie die empfohlenen Vorgehensweisen zum Verschieben von Dateien zwischen Ordnern auf beliebigen Windows-Betriebssystemen kennen. 136 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Wie sich das Problem darstellt Praktische Erfahrung ist oft mehr wert als tausend Worte, und in diesem Fall ist dieses Sprichwort vollkommen wahr. Die einfachste Möglichkeit, um das Problem zu verstehen, besteht darin, es selbst zu erfahren. Führen Sie folgende Schritte durch, um die Situation auf einem NTFS-Volume eines Windows Server 2003- oder Windows XP-Systems nachzuvollziehen: 1. Erstellen Sie einen übergeordneten Ordner C:\Data. 2. Erstellen Sie einen Unterordner C:\Data\TeamA. 3. Weisen Sie dem Ordner Berechtigungen zu, sodass die Gruppe TeamA die Berechtigung Ändern hat. 4. Erstellen Sie einen weiteren Unterordner C:\Data\TeamB. 5. Weisen Sie dem Ordner Berechtigungen zu, sodass die Gruppe TeamB die Berechtigung Ändern hat. 6. Fügen Sie eine Datei in den Ordner TeamA ein, z.B. C:\Data\TeamA\TeamAInfo.txt. 7. Weisen Sie der Datei eine Berechtigung zu, die einem Benutzer oder einer Gruppe den Vollzugriff darauf erlaubt. 8. Verschieben Sie die Datei in C:\Data\TeamB. Welche Berechtigungen hat die Datei, nachdem Sie sie verschoben haben? Der gesunde Menschenverstand erwartet, dass die ausdrücklichen Berechtigungen, die Sie in Schritt 7 vergeben haben, noch gelten, dass die Datei nun aber ihre Berechtigungen vom neuen übergeordneten Ordner erbt, also von TeamB. Damit hätte die Gruppe TeamB die Berechtigung Ändern, während TeamA keinen Zugriff mehr hätte. Weit gefehlt! Öffnen Sie die Registerkarte Sicherheit im Eigenschaftendialogfeld der Datei und klicken Sie auf Erweitert. Im Dialogfeld Erweiterte Sicherheitseinstellungen, das Sie in Abb. 2.10 sehen, stellen Sie fest, dass TeamA nach wie vor Zugriff hat, TeamB aber nicht. Besonders bemerkenswert ist, dass in der Liste der Berechtigungseinträge nicht angezeigt werden kann, woher die Berechtigungen geerbt wurden. Abbildung 2.10 Berechtigungen, die eine Datei von ihrem früheren übergeordneten Ordner erbt 2.10 Vermeiden der Vererbungsweiterleitung beim Verschieben von Dateien und Ordnern 137 Gehen wir noch einen Schritt weiter. Öffnen Sie die Registerkarte Sicherheit im Eigenschaftendialogfeld des Ordners TeamB. Deaktivieren Sie das Kontrollkästchen, das die Berechtigung Ändern für die Gruppe TeamB zulässt, klicken Sie auf Übernehmen, aktivieren Sie die Zulassungsberechtigung Ändern erneut und klicken Sie wiederum auf Übernehmen. Sie haben damit die Änderungsberechtigung für TeamB entfernt und erneut zugewiesen. Öffnen Sie jetzt das Dialogfeld Erweiterte Sicherheitseinstellungen für die Datei. Beachten Sie, dass TeamB jetzt die Änderungsberechtigung geerbt hat, während TeamA keine Berechtigungen mehr hat. In der Praxis bedeutet dies, dass eine Datei, die Sie mithilfe von Windows Explorer zwischen zwei Ordnern mit unterschiedlichen Berechtigungen im selben Namespace (in diesem Fall im Volume C:\) über unerwartete Berechtigungen verfügt, bis etwas geschieht, um dies zu korrigieren. Kurz gesagt, unabhängig davon, ob es sich um einen Bug oder ein Feature handelt, stellt es ein unvorhergesehenes und inkonsistentes Verhalten dar. Das Gleiche geschieht in einer Vielzahl von Situationen, z.B. wenn Sie Dateien zwischen zwei Unterordnern einer Remotefreigabe verschieben, aber auch, wenn Sie andere Werkzeuge verwenden als Windows Explorer. Erschreckend, oder? Was geschieht hinter den Kulissen? Dieses merkwürdige und potenziell gefährliche Phänomen ist ein Ergebnis der Art und Weise, in der Zugriffssteuerungslisten auf NTFS-Ressourcen angewendet werden. Ein Objekt wie unsere Datei hat ein Flag, um vererbbare Berechtigungen von seinem übergeordneten Container zu erben. Die Zugriffssteuerungsliste der Datei verfügt über ihre eigenen Zugriffssteuerungseinträge für jede einzelne ihr zugewiesene Berechtigung, auch die geerbten. Aber wie werden diese geerbten Berechtigungen letzten Endes angewendet? Nun, es gibt da einen Prozess, den ich ACL-Weiterleitung nennen möchte. Wenn er ausgelöst wird, geht er von einem Ordner zu dessen Unterordnern und Dateien und übernimmt die vererbbaren Zugriffssteuerungseinträge in die Zugriffssteuerungslisten der untergeordneten Objekte. Als Sie die Datei im Ordner TeamA erstellten, löste dies die Instanzierung (oder Erstellung) des neuen Objekts die ACL-Weiterleitung aus, die dann die vererbbaren Berechtigungen vom übergeordneten Ordner auf die Datei übertrug. Damit enthielt die Zugriffssteuerungsliste der Datei die Einträge, die TeamA die Änderungsberechtigung gewähren. Anschließend fügten Sie der Datei noch einen expliziten Zugriffssteuerungseintrag hinzu. Wenn Sie eine Datei innerhalb des Namespace verschieben, bewegen Sie sie jedoch nicht physisch, sondern ändern im Grunde genommen nur ihren Namen. Beim Verschieben der Datei in den neuen Ordner gab es also nichts, was die ACL-Weiterleitung auslösen konnte, um die vererbbaren Berechtigungen (vom neuen übergeordneten Ordner!) auf die Datei anzuwenden. Dadurch behielt die Datei ihre vorher zugewiesenen Zugriffsssteuerungseinträge. Anschließend nahmen Sie die Änderung am zweiten übergeordneten Ordner vor. Die Änderungen der Berechtigungen in einem Container löst jedoch die ACL-Weiterleitung aus, weshalb die Zugriffssteuerungslisten der untergeordneten Objekte geöffnet und korrekt geändert wurden. Wichtig Bis zum Auslösen der ACL-Weiterleitung behält das verschobene Objekt die falschen Berechtigungen. In Windows Server 2008 ist dieses Problem dadurch behoben worden, dass das Hinzufügen einer Datei oder eines Ordners zu einem anderen Ordner die ACL-Weiterleitung auslöst. 138 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Die Lösung für das Problem Es gibt mehrere Möglichkeiten, um dieses Problem zu lösen. Eine besteht darin, sicherzustellen, dass die ACL-Weiterleitung jedes Mal ausgelöst wird, wenn eine Datei in einen neuen Ordner mit unterschiedlichen Berechtigungen im selben Namespace verschoben wird. Führen Sie dazu die folgenden Schritte aus: 1. Verschieben Sie das Objekt. 2. Öffnen Sie das Dialogfeld Erweiterte Sicherheitseinstellungen des Objekts. 3. Deaktivieren Sie das Kontrollkästchen Vererbbare Berechtigungen des übergeordneten Objektes einschließen (Windows Server 2008 und Windows Vista) bzw. Berechtigungen übergeordneter Objekte (...) verbreiten (Windows Server 2003 und Windows XP). Klicken Sie auf Übernehmen. Bei Windows Vista und Windows Server 2008 mit aktivierter Benutzerkontensteuerung müssen Sie auf die Schaltfläche Bearbeiten klicken, bevor Sie in der Lage sind, das Kontrollkästchen zu deaktivieren. 4. Wenn Sie gefragt werden, ob geerbte Berechtigungen kopiert oder entfernt werden sollen, wählen Sie Entfernen. 5. Reaktivieren Sie das Kontrollkästchen und klicken Sie auf Übernehmen. Dadurch wird die ACLWeiterleitung ausgelöst, sodass vererbbare Berechtigungen vom übergeordneten Ordner auf das Objekt angewendet werden. Ziemlich viele Schritte, oder? Eine andere Möglichkeit besteht darin, das Objekt zu kopieren anstatt es zu verschieben. Dabei erstellen Sie eine neue Instanz des Objekts, was unmittelbar die ACL-Weiterleitung auslöst. Sie müssen dann nur noch das ursprüngliche Objekt löschen. Der einzige mögliche Fallstrick bei dieser Methode liegt darin, dass Sie dem ursprünglichen Objekt möglicherweise explizite Berechtigungen zugewiesen haben, die beim Verschieben erhalten bleiben sollen. Anstatt es zu kopieren und einzufügen verwenden Sie daher besser einen Befehl, der das Objekt mitsamt seiner Sicherheitsbeschreibung kopiert. Dazu können Sie xcopy.exe mit der Option /x verwenden oder unter Windows Server 2008 robocopy.exe mit der Option /copyall. Wenn Sie die gesamte Sicherheitsbeschreibung kopieren, bleiben auch Überwachungs- und Besitzerinformationen erhalten. Löschen Sie anschließend die ursprüngliche Datei. Jedes Hilfsprogramm, das ein NTFS-Objekt unter Beibehaltung seiner Sicherheitsbeschreibung kopieren oder sichern und anschließend wiederherstellen kann, eignet sich, um dieses ungewöhnliche Verhalten bei NTFS-Berechtigungen zu umgehen. Informieren der Benutzer und Ändern der Konfiguration Es ist wichtig, betroffene Benutzer und Supportmitarbeiter über die Gefahren beim Verschieben von Dateien zwischen Ordnern mit unterschiedlichen Berechtigungen im selben Namespace zu unterrichten. Eine solche Schulung bringt schon sehr viel, um die Fallgrube der vererbten Berechtigungen zu vermeiden. Sie können die Erfolgsaussichten noch verbessern, indem Sie eine Konfiguration wählen, bei der jeder Ordner mit einmaligen Berechtigungen seine eigene Freigabe ist. Eine Verbindung zu einer Freigabe baut einen eindeutigen Namespace auf. Wenn Sie also eine Datei zwischen zwei Ordnern in unterschiedlichen 2.11 Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei 139 Freigaben verschieben, kopieren Sie in Wirklichkeit die Datei, sodass das Problem der vererbten Berechtigungen sein hässliches Haupt nicht erheben kann. Dadurch können Sie jedoch leider ein anderes Problem heraufbeschwören: Beim Kopieren der Datei bleibt die Sicherheitsbeschreibung (Besitzer, Überwachung, explizite Zugriffssteuerungseinträge) nicht erhalten, sofern Sie kein geeignetes Werkzeug wie xcopy /x oder robocopy /copyall verwenden. Eine Freigabe für jeden Ordner mit besonderen Berechtigungen einzurichten ist jedoch eine kluge Idee. Sie könnten jetzt einwenden: »Aber wird mein Ressourcennamespace dadurch nicht ziemlich flach und breit?« Das mag sein, aber Ihre Benutzer begeben sich ja nicht direkt zu diesen Freigaben, sondern sehen den Ressourcennamespace über die DFS-Namespaces. Dadurch wird eine virtuelle Hierarchie geschaffen, in der Sie Ihre Freigaben in jeder beliebigen Struktur anordnen können, die Ihrem Unternehmen entspricht. Sie sehen, dass selbst eine scheinbar so einfache Frage wie »Wie soll ich die Ordner auf meinen Servern gliedern?« nur mit »Das kommt darauf an« beantwortet werden kann. Es gibt in Windows viele Variablen, die Sie an Ihre Geschäftsanforderungen anpassen müssen. Zusammenfassung NTFS-Berechtigungen, die von einem übergeordneten Ordner geerbt werden, bleiben auch dann bei einer Datei (oder einem Ordner), wenn Sie diese in einen anderen Ordner verschieben. Die Berechtigungen des neuen übergeordneten Ordners werden nicht angewendet, bis irgendetwas die ACL-Weiterleitung auslöst. Daher ist es für die Sicherheit entscheidend, dass Sie Dateien zwischen Ordnern mit unterschiedlichen Berechtigungen nicht einfach verschieben. Sie müssen entweder das Objekt verschieben und dann die Vererbung für das Objekt deaktivieren und dann erneut aktivieren oder das Objekt mit einem Werkzeug, das die Sicherheitsbeschreibung erhält (z.B. xcopy /x oder robocopy /copyall), an den neuen Speicherort kopieren und das Original löschen. Obwohl dieses Problem in Windows Server 2008 behoben wurde, da dort die ACL-Weiterleitung ausgelöst wird, sobald Sie eine Datei zu einem Ordner hinzufügen, ist es nach wie vor wichtig, den empfohlenen Vorgehensweisen zu folgen, um sicherzustellen, dass die Sicherheitsbeschreibungen korrekt verschoben werden. 2.11 Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Die Identität Eigentümerrechte Zusammenfassung Die Identität Eigentümerrechte ist neu in Windows Server 2008 und ermöglicht Administratoren, die Besitzer daran zu hindern, die Berechtigungen für ihre Objekte zu ändern. Vorteile Verringerung der Anrufe beim Helpdesk und geringere Gefahr der Dienstverweigerung auf Dateiservern 140 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Einführung Solange ich mich zurückerinnern kann, haben Windows-Administratoren mit dem Problem gekämpft, Benutzer daran zu hindern, die Berechtigungen für ihre eigenen Dateien und Ordner zu ändern. Wenn ein Benutzer auf einem Windows-System eine Datei erstellt, wird er zum Besitzer dieses Objekts. Dadurch hat er das eingebaute Recht, die Sicherheitsbeschreibung dieses Objekts zu ändern. Der Grundgedanke hinter diesem Entwurf besteht darin, dass es immer irgendjemanden geben soll (den Besitzer), der in der Lage ist, die Ressource zu entsperren, selbst wenn allen anderen durch Verweigerungsberechtigungen der Zugriff verwehrt ist. Ein Problem tritt auf, wenn ein Benutzer versehentlich oder absichtlich die Zugriffssteuerungsliste eines von ihm selbst erstellten Objekts ändern und es damit für Benutzer öffnet, die (nach den Informationssicherheitsrichtlinien des Unternehmens) keinen Zugriff auf die Datei haben sollen, oder es für Benutzer, die Zugriff haben sollten, unzugänglich macht, was zu Anrufen der betroffenen Benutzer beim Support führt. Weiter vorn in dieser Lösungsgruppe habe ich die Wichtigkeit des Zugriffs mit den geringstmöglichen Privilegien unterstrichen. In der Praxis sind in den meisten Unternehmen die einzigen Benutzer, die Berechtigungen für Dateien und Ordner festlegen sollen, die Mitglieder der IT- oder Datensicherheitsabteilung. Wenn ein Unternehmen die Fähigkeit zum Festlegen von Berechtigungen einschränken kann, ist es in der Lage, den empfohlenen Vorgehensweisen zu folgen und die Zugriffssteuerungslisten nur auf den ersten Ebenen der Ordnerhierarchie einzurichten und die Sicherheit auf den unteren Ebenen über die Vererbung zu steuern. Leider bestand der einzige Weg, um einen Besitzer an Änderungen der Zugriffssteuerungsliste seines Objekts zu hindern, vor den jüngsten Windows-Versionen darin, die SMB-Berechtigung (Freigabeberechtigung) auf Ändern einzuschränken. Ohne die Freigabeberechtigung Vollzugriff kann ein Besitzer die Zugriffssteuerungsliste nicht ändern. Dieser Ansatz bringt jedoch zwei Probleme mit sich: Erstens weiß nicht jeder Windows-Administrator, dass dies möglich ist, und zweitens gelten für Freigabeberechtigungen deutliche Einschränkungen, die wir bereits z.T. in Lösung 2.4, »Delegieren der Verwaltung von freigegebenen Ordnern«, auf Seite 107 angesprochen haben. In Windows Server 2008 ist diese Schwierigkeit jetzt behoben. Es wurde eigens für dieses Problem eine neue Standardsicherheitskennung hinzugefügt, nämlich die integrierte Identität Eigentümerrechte. Zugriffssteuerungseinträge für diese Identität überschreiben die Systemrechte, die dem Besitzer eines Objekts zugewiesen sind. Stellen Sie sich vor, Sie haben einen freigegebenen Ordner mit den standardmäßigen Berechtigungen erstellt, der der Identität Ersteller-Besitzer den Vollzugriff erlaubt. Wenn ein Benutzer darin ein Objekt erstellt, wird diesem ein Zugriffssteuerungseintrag hinzugefügt, der dem Benutzer den Vollzugriff gewährt. Sollte dem Benutzer auf irgendeine Weise der Zugriff auf das Objekt verweigert werden, kann er als Besitzer des Objekts die Berechtigungen dafür ändern und sich selbst wieder Zugriff gewähren. Jetzt nehmen wir eine kleine Änderung an der Zugriffssteuerungsliste des freigegebenen Ordners vor. Wir erstellen einen Zugriffssteuerungseintrag mit einer einzigen Berechtigung, nämlich der Zulassungsberechtigung Ändern für Eigentümerrechte. Sie sehen diesen Vorgang in Abb. 2.11. Wenn der Besitzer versucht, die Berechtigungen zu ändern, geschieht je nach den Anmeldeinformationen des Benutzers und dem Betriebssystem eines der folgenden Dinge: Entweder sind die Steuerelemente deaktiviert, über die der Benutzer die Berechtigungen ändern könnte, oder der Benutzer erhält die Fehlermeldung Zugriff verweigert, wenn er eine Änderung versucht. Die Berechtigung für die Identität Eigentümerrechte lässt das Ändern von Berechtigungen nicht zu und überschreibt jetzt selbst das integrierte Systemprivileg, das einem Besitzer erlaubt, die Zugriffssteuerungsliste seines Objekts zu bearbeiten. 2.11 Verhindern von Berechtigungsänderungen durch den Besitzer einer Datei 141 Abbildung 2.11 Durch Zuweisen der Berechtigung Ändern an Eigentümerrechte wird dem Besitzer das Recht verweigert, die Berechtigungen zu ändern Wird der Besitz des Objekts auf einen anderen Benutzer übertragen, so wird dieser neue Benutzer durch den Zugriffssteuerungseintrag für Eigentümerrechte auf dieselbe Weise eingeschränkt. Das nenne ich eine großartige neue, kleine, aber wichtige Funktion! Vorsicht Sie als Administrator können sich auf diese Weise auch selbst von Ressourcen aussperren! Wenn Sie der Besitzer einer Datei oder eines Ordners sind, können Sie die Berechtigungen ebenfalls nicht ändern. Verwenden Sie diese Funktion mit Bedacht! Besteht die Gefahr einer Sperrung? Sie könnten sich jetzt fragen, ob es nicht möglich wäre, dass alle Benutzer von der Ressource ausgesperrt werden, wenn der Besitzer die Zugriffssteuerungsliste nicht mehr ändern kann. Das ist nicht der Fall. Bei meinen Tests habe ich herausgefunden, dass Sie durch den Zugriffssteuerungseintrag für Eigentümerrechte nicht eingeschränkt werden, wenn Sie gleichzeitig Mitglied der Gruppe Administratoren und der Besitzer eines Objekts sind. Diese Einschränkung ist sinnvoll. Zusammenfassung In früheren Versionen von Windows konnten Sie Benutzer nur dadurch davon abhalten, die Berechtigungen für ihre eigenen Dateien zu ändern, indem Sie die Freigabeberechtigung auf Ändern einschränkten. Jetzt gibt es eine bessere Lösung auf der Grundlage von NTFS-Berechtigungen. Jede Berechtigung, die Sie der Identität Eigentümerrechte zuweisen, überschreibt die Berechtigungen und Systemrechte für den Besitzer eines Objekts. Indem Sie also für einen Ordner die Verweigerungsberechtigung Berechtigungen ändern für Eigentümerrechte festlegen, können Sie jeden Benutzer, der Dateien oder Unterordner darin erstellt, wirkungsvoll daran hindern, die Zugriffssteuerungslisten dieser Objekte zu bearbeiten. 142 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2.12 Verbergen nicht zugänglicher Objekte vor den Benutzern Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Zugriffsbasierte Auflistung (Access-Based Enumeration, ABE) Zusammenfassung Die Dateiserverrolle von Windows Server 2008 umfasst die Funktion der zugriffsbasierten Auflistung. Damit können Sie Ordner und Dateien in Freigaben vor den Benutzern verbergen, die darauf nicht zugreifen dürfen. Vorteile Verringerung der Anrufe beim Helpdesk, zur Erhöhung der Sicherheit eingeschränkte Ansicht von freigegebenen Ordnern Einführung Bei herkömmlichen Windows-Ordnern ermöglichen die Berechtigungen Ordnerinhalt auflisten und Attribute lesen einem Benutzer, den Inhalt des Ordners zu sehen. Der Benutzer sieht dabei alle Dateien und Unterordner unabhängig davon, ob er sie auch wirklich öffnen kann. Die Fähigkeit zum Öffnen der Objekte wird mithilfe der Berechtigungen Lesen und Ausführen gehandhabt. Als ich in den ersten Tagen von Windows NT Server begann, als Berater und Lehrer für Windows-ITProfis zu arbeiten, gingen die meisten Administratoren an Ihre Windows-Netzwerke so heran, wie Sie es von Novell NetWare gewöhnt waren. Diese Plattform sowie einige andere Netzwerkbetriebssysteme, legte freigegebene Ordner aber anders offen als Windows. Wenn Sie sich ein auf einem Novell-Server bereitgestelltes Volume angeschaut haben, sahen Sie nur die Dateien und Unterordner, für die Sie auch Berechtigungen hatten. Diejenigen, die Sie nicht öffnen konnten, waren vor Ihnen verborgen. Solange ich daher mit Windows arbeitete, lautete daher eine der häufigsten Fragen: »Wie verberge ich Dateien vor Benutzern?« Genau darum geht es in dieser Lösung. Eine Sichtweise: Kümmern Sie sich nicht darum! Eine mögliche Antwort auf die Frage »Wie verberge ich Dateien vor Benutzern?« lautet, sich nicht darum zu kümmern. Ich sehe das Problem so: Wenn Sie irgendeinem Ihrer Benutzer mitteilen würden, dass sich irgendwo in Ihrem Netzwerk ein Ordner mit den Beurteilungen der Angestellten des Unternehmens befindet, wäre er wahrscheinlich gar nicht überrascht. Die Benutzer wissen, dass es in ihrem Netzwerk Informationen gibt. Tatsächlich ist ihnen sogar klar, dass es sensible Informationen und solche gibt, auf die sie keinen Zugriff haben. Sie wissen, dass dies alles vorhanden ist. Es ist also wahrscheinlich gar kein Beinbruch, wenn sie diese Datei sehen, denn schließlich ist es für sie nichts Neues, dass sie vorhanden ist. Wirklich von Bedeutung ist dagegen die Frage, ob sie diese Datei öffnen können oder nicht. Der Benutzer sollte also nicht in der Lage sein, die Datei zu öffnen. Wenn Sie die Berechtigungen korrekt eingerichtet haben, kann er das auch tatsächlich nicht. 2.12 Verbergen nicht zugänglicher Objekte vor den Benutzern 143 Eine zweite Sichtweise: Verwalten Sie die Ordner Wenn sich einem Kunden häufig das Problem stellt, dass die Benutzer Dateien sehen, auf die sie nicht zugreifen können, liegt für mich die Vermutung nahe, dass die Ordnerstruktur nicht ideal ist. Wenn Benutzer viele Elemente sehen können, auf die sie keinen Zugriff haben, sollten sich diese Elemente höchstwahrscheinlich besser an einem anderen Ort – einem anderen Ordner – befinden, auf den die Benutzer selbst keinen Zugriff haben. Im Idealfall sollten Ordner Objekte mit denselben Zugriffsmöglichkeiten enthalten. Das ist eigentlich alles: Ein Ordner ist ein Container für ähnliche Objekte. Er wird von einer Zugriffssteuerungsliste reguliert, die all diese Objekte erben und deren Zugriffssteuerungseinträge nach dem Prinzip des geringsten Aufwands festlegen, wie die Benutzer auf diese Objekte zugreifen können. Falls Sie in einem einzigen Ordner mit mehreren Zugriffssteuerungslisten jonglieren müssen, sollten Sie Ihre Ordnerstruktur noch einmal überdenken. Eine dritte Sichtweise und eine Lösung: Zugriffsbasierte Auflistung In Windows Server 2003 SP1 wurde die zugriffsbasierte Auflistung (Access-Based Enumeration, ABE) eingeführt. Sie können sie von der Microsoft-Downloadsite (www.microsoft.com/downloads) für Windows Server 2003 herunterladen. In Windows Server 2008 ist sie als Funktion der Dateiserverrolle verfügbar. Die ABE kann für einen gesamten Server aktiviert werden, sodass sie sich auf alle seine Freigaben auswirkt, aber auch für einzelne Freigaben. Wenn für eine Freigabe die zugriffsbasierte Auflistung aktiv ist, können die Benutzer keine Elemente sehen, für die sie keine Leseberechtigung haben. So einfach ist das. Das wurde aber auch Zeit! Abbildung 2.12 zeigt zwei Ansichten derselben Freigabe. Auf der linken Seite sieht der Benutzer die Freigabe ohne ABE. Nachdem der Administrator die zugriffsbasierte Auflistung für die Freigabe aktiviert hat, kann der Benutzer die Dateien und Ordner, für die er keine Leseberechtigung hat, nicht mehr sehen, wie auf der rechten Seite zu erkennen ist. Abbildung 2.12 Ansicht einer Freigabe ohne (links) und mit zugriffsbasierter Auflistung (rechts) Beachten Sie, dass sich die zugriffsgesteuerte Auflistung auf die gesamte Freigabe auswirkt und nur dann in Kraft tritt, wenn der Zugriff auf die Freigabe über eine SMB-Verbindung erfolgt. Falls sich der Benutzer über Remotedesktop auf dem Server anmeldet und sich den Ordner direkt auf dem lokalen System anzeigen lässt, wird er alle Dateien und Ordner sehen. 144 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Zusammenfassung Wenn Sie Elemente vor den Benutzern verbergen möchten, haben Sie drei Möglichkeiten. Sie können sich nicht darum kümmern sondern sich stattdessen darauf konzentrieren, dass den Elementen die richtigen Berechtigungen zugewiesen werden, sodass die Benutzer sie nicht öffnen oder lesen können. Die zweite Möglichkeit besteht darin, die Elemente in einen anderen Ordner zu verschieben, auf den die Benutzer keinen Zugriff haben. Die dritte Lösung – einfach und elegant – ist die Aktivierung der zugriffsbasierten Auflistung (ABE) für die freigegebenen Ordner. Dadurch werden die Dateien und Ordner verborgen, auf die die Benutzer keinen Lesezugriff haben. 2.13 Wer hat eine Datei geöffnet? Die Lösung im Überblick Typ Skript Funktionen und Werkzeuge VBScript Zusammenfassung Mit dem Skript FileServer_OpenFile.vbs können Sie bestimmen, wer eine Datei auf dem Dateiserver geöffnet hat. Einführung Auf einem Dateiserver mit freigegebenen Ressourcen ist es nicht ungewöhnlich, wenn mehrere Benutzer eine Datei zur selben Zeit benötigen. Manche Anwendungen erlauben nicht, dass verschiedene Benutzer gleichzeitig eine Datei öffnen. So kann es gelegentlich vorkommen, dass ein Benutzer eine Datei braucht, aber nicht darauf zugreifen kann, weshalb er das Helpdesk anruft. Falls der Benutzer die Datei besonders dringend braucht, muss das Helpdesk bestimmen können, wer zurzeit auf die Datei zugreift, um mit dieser Person Kontakt aufzunehmen und sie zu bitten, die Datei zu schließen. Mit der Datei FileServer_OpenFile.vbs aus dem Ordner Scripts auf dem Begleitmedium können Sie genau das tun. Verwenden von FileServer_OpenFile.vbs Das Skript erfordert zwei Parameter, den Server- und den Dateinamen. Als Namen des Servers, auf dem sich die Datei befindet, sollten Sie vorzugsweise den vollständig qualifizierten Domänennamen angeben, obwohl dies nicht notwendig ist. Zur Angabe des Namens können Sie einen beliebigen Teil des Dateinamens oder des Dateipfades verwenden. Das Skript führt eine Suche mit Platzhaltern aus, um mit diesen Angaben übereinstimmende Dateien zu finden. Die Syntax des Skripts lautet wie folgt: cscript //nologo FileServer_OpenFile.vbs /server: Servername /file: Dateiname 2.13 Wer hat eine Datei geöffnet? 145 Grundlagen von FileServer_OpenFile.vbs Das Skript selbst ist einfach: FileServer_OpenFile.vbs sComputerName = WScript.Arguments.Named("server") sFileName = WScript.Arguments.Named("file") if sComputerName = "" or sFileName = "" then WScript.Echo "Usage: cscript FileServer_OpenFile.vbs " &_ " /server:SERVERNAME /file:FILENAME" WScript.Quit (501) end if Set oServer = GetObject("WinNT://" & sComputerName & "/LanmanServer") for each oResource in oServer.resources on error resume next if (Not oResource.User="") AND (Not Right(oResource.User,1) = "$") Then if Instr(1, oResource.Path, sFileName, 1) >0 then WScript.echo "Path: " & oResource.path Wscript.echo "User: " & oResource.user wscript.echo "Lock: " & oResource.lockcount Wscript.echo end if end if next Zunächst analysiert das Skript die Argumente, die ihm übergeben wurden. Falls eines davon fehlt, gibt das Skript eine Meldung aus, um eine bessere Eingabe zu erhalten. Danach nimmt das Skript Verbindung mit den Dateidiensten (dem Dienst LanmanServer) auf dem durch das Argument server angegebenen Server auf. LanmanServer stellt eine Auflistung von Ressourcen – geöffneten Dateien – zur Verfügung. Diese Auflistung wird in einer Schleife verarbeitet, wobei der Code Ausschau nach Ressourcen hält, die mit dem übergebenen Dateinamen übereinstimmen. Bei einer Übereinstimmung werden die Informationen über die betreffende Ressource ausgegeben. Zusammenfassung Das war einfach, nicht wahr? Ein simples Skript sucht in der Ressourcenauflistung des Dienstes LanmanServer nach einer Übereinstimmung, um unsere Frage »Wer hat die Datei geöffnet?« zu beantworten. 146 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2.14 Senden von Nachrichten an die Benutzer Die Lösung im Überblick Typ Skript Funktionen und Werkzeuge VBScript, PSExec Zusammenfassung Sie nutzen PSExec und das Skript Message_Notification.vbs, um wieder Nachrichten an Benutzer zu senden. Dies ist vor allem dann sinnvoll, wenn Sie die Benutzer darauf hinweisen möchten, dass ein Server offline geschaltet werden soll. Einführung In der guten alten Zeit konnten Sie mit den Diensten Messenger und Alerter Nachrichten an Benutzer oder Computer senden. Dann nutzten einige böse Buben diese Dienste aus, um meiner Mutter über eine Internetverbindung Nachrichten zu schicken, damit sie gefälligst deren Waren kaufte. Daraufhin hat Microsoft diese beiden Dienste gesperrt, sodass sie jetzt nicht mehr automatisch gestartet werden. Ich gebe zu, dass meine Mutter nicht die Einzige war, die durch diese Sicherheitslücke in den Diensten Messenger und Alerter belästigt wurde, aber im Grunde genommen lief es wirklich so ab. Wenn Sie einen Server offline schalten oder aus einem anderen Grund eine Nachricht über das Netzwerk an die Benutzer senden möchten, können Sie nicht mehr erwarten, dass der Befehl net send erfolgreich ausgeführt wird, da die zugrunde liegenden Dienste nicht ausgeführt werden. Wir brauchen eine Alternative. In dieser Lösung stellen wir Werkzeuge zusammen, mit deren Hilfe wir Benutzer darüber informieren können, dass sie ihre offenen Dateien auf dem Server schließen sollen, bevor wir den Server offline schalten. Mit diesen Werkzeugen können Sie natürlich auch in anderen Situationen Nachrichten verschicken. Verwenden von Message_Notification.vbs Auf dem Begleitmedium finden Sie im Ordner Scripts ein Skript namens Message_Notification.vbs. Um es zu verwenden, geben Sie den folgenden Befehl ein: cscript //nologo Message_Notification.vbs /message:"Nachrichtentext" [/title:"Titelzeile"] [/time:[0 | n] Der Nachrichtentext ist ein erforderlicher Parameter und darf nicht leer sein. Mit dem Parameter title legen Sie den Text der Titelzeile fest. Wenn Sie ihn auslassen, lautet der Titel Notification. Wenn der Parameter time null beträgt, wird das Dialogfeld so lange eingeblendet, bis der Benutzer auf OK klickt. Sie können auch eine Zahl eingeben, die festlegt, wie viele Sekunden lang die Nachricht zu sehen ist. Wenn Sie den Parameter weglassen, wird ein Standardwert von 60 Sekunden verwendet. Aufgrund der Natur dieses Skripts können Sie anstelle von cscript.exe auch einfach wscript.exe verwenden, um es auszuführen. Mit diesem Skript können Sie eine Nachricht erstellen, aber das reicht noch nicht aus, um eine Nachricht auch auf einem Remotesystem anzuzeigen. Dieses Problem werden wir in Kürze lösen. 2.14 Senden von Nachrichten an die Benutzer 147 Grundlagen von Message_Notification.vbs Der Rumpf von Message_Notificaton.vbs sieht wie folgt aus: Message_Notification.vbs Const PopupOK = 0 Const PopupWarning = 48 sMessage = WScript.Arguments.Named("message") sTitle = WScript.Arguments.Named("title") iWait = WScript.Arguments.Named("time") if sMessage = "" then WScript.Quit(0) if sTitle = "" then sTitle = "NOTIFICATION" if iWait = "" then iWait = 60 Set WSHShell = CreateObject("WScript.Shell") Call WSHShell.Popup (sMessage, iWait, sTitle, PopupWarning + PopupOK) Dieses Skript ist ein einfacher Wrapper um eine bereits vorhandene Methode des Objekts Shell, nämlich die Methode Popup. Sie erstellt ein Dialogfeld, das eine Titelleiste, eine Nachricht, Schaltflächen (wie OK, Ja und Nein, Wiederholen und Abbrechen) und ein Symbol (Stoppschild, Fragezeichen, Ausrufezeichen oder Häkchen) enthalten kann. Für das Dialogfeld kann eine Gültigkeitsdauer angegeben werden, sodass es nach einer voreingestellten Zeit verschwindet. Sie können die Nachricht aber auch so einrichten, dass auf Benutzereingaben gewartet wird. Das Dialogfeld Popup darf auch mehr als 1023 Zeichen enthalten (die Grenze für Nachrichten, die mit der Anwendung MsgBox erstellt werden). Dies macht Popup in vielen Situationen zu einem idealen Kandidaten für die Übermittlung von Nachrichten an Benutzer. In diesem konkreten Skript legen wir zunächst die verfügbare Schaltfläche (OK) und das Symbol (Ausrufezeichen) fest. Anschließend werden die Argumente des Skripts ermittelt und verarbeitet: Wenn der Nachrichtentext leer ist, wird das Skript beendet, falls eines der beiden anderen Argumente fehlt, werden dafür die Standardwerte festgelegt. Anschließend wird ein Verweis auf das Shell-Objekt erstellt und die Methode Popup aufgerufen. Wenn Sie dieses Skript für Popup-Nachrichten mit anderen Schaltflächen oder Symbolen anpassen möchten, lesen Sie die Dokumentation zur Methode Popup unter http://msdn2.microsoft.com/en-us/ library/x83z1d9f.aspx. Ausführen eines Skripts auf einem Remotecomputer mit PSExec Um eine Nachricht an einen Remotecomputer zu senden, verwenden wir PSExec, damit unser Skript Message_Notification.vbs auf dem anderen System ausgeführt wird. Dafür müssen Sie Administrator auf dem Remotesystem sein und eine Verbindung dazu aufnehmen können (die Ports 445 und 139 müssen geöffnet sein). 148 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Hinweis Ich bin mit Sicherheit nicht der Einzige, der Skripts auf virtuellen Maschinen testet. Um Ihnen den Ärger zu ersparen, den ich erlebt habe, muss ich Sie warnen: Dieses Skript scheint nicht zu funktionieren, wenn Sie eine Nachricht an eine Windows Vista-Installation in VMware Workstation 6.0 senden. Es gibt ein Problem mit der Darstellung der Popup-Nachricht, wobei entweder das Skript in der Taskleiste erscheint oder nur die Titelleiste angezeigt wird. Bei Windows XP in VMware Workstation 6.0 und bei Windows Vista auf einem physischen Rechner funktioniert das Skript jedoch tadellos. Schlagen Sie also nicht den Kopf gegen die Wand (und senden Sie mir keine E-Mail!), wenn Sie beim Testen des Skripts in einer virtuellen Umgebung Probleme feststellen. Platzieren Sie das Skript Message_Notification.vbs in einem freigegebenen Ordner auf einem Server, sodass Sie von dem Remotecomputer aus darauf Zugriff haben. Verwenden Sie dann den folgenden Befehl: psexec.exe \\computername –i –u DOMÄNE\benutzername –p Kennwort –d wscript.exe "\\server\freigabe\pfad\message_notification.vbs" /message:"Nachrichtentext" [/title:" Titel"] [-time:0|n] Das sind eine ganze Menge an Befehlszeilenoptionen. Sehen wir sie uns der Reihe nach an: \\computername Hiermit geben Sie den Computer an, auf dem das Skript ausgeführt wird. Die PopupNachricht erscheint auf diesem Rechner. -i Das Skript wird mit den Anmeldeinformationen eines Administrators des betreffenden Computers ausgeführt, aber die Nachricht soll dem zurzeit angemeldeten Benutzer eingeblendet werden. Mit der Option -i kann der Prozess mit der Benutzersitzung interagieren. -u DOMÄNE\benutzername -p Kennwort Diese beiden Optionen stellen die Anmeldeinformationen bereit, um den Prozess auszuführen. Es muss sich um die Anmeldeinformationen eines Mitglieds der lokalen Administratorengruppe auf dem Remotecomputer handeln. Dieses Mitglied muss außerdem Leseberechtigungen für das Skript auf der Netzwerkfreigabe haben. Sie müssen ausdrücklich Anmeldeinformationen angeben, da sie an das Remotesystem übergeben werden, das sie dann für den Zugriff auf das Netzwerk verwendet. -d Die Option -d weist PSExec an, nicht auf den Abschluss des Prozesses zu warten. Dadurch wird verhindert, dass PSExec die ganze angegebene Zeitspanne hindruch wartet, und verhindert außerdem Störungen, falls das Skript auf dem Remotecomputer nicht läuft. wscript.exe PSExec startet den Prozess wscript.exe auf dem Remotecomputer. Da sich wscript.exe im Befehlspfad von Windows-Systemen befindet, ist keine Pfadangabe erforderlich. Wir verwenden hier wscript.exe, da beim Einsatz von cscript.exe ein schwarzes Befehlszeilenfenster erscheinen würde, was nicht das ist, was wir wollen. "\\server\freigabe\pfad\message_notification.vbs" Dies ist der UNC-Pfad zu dem Skript, das von wscript.exe ausgeführt wird. Die restlichen Befehlszeilenoptionen sind Argumente für das Skript, die weiter vorn in dieser Lösung beschrieben wurden. Als Ergebnis der Kombination von PSExec mit einem einfachen VBScript-Wrapper um die Methode Popup des Objekts Shell haben wir einen nützlichen Ersatz für den Befehl net send geschaffen! Da PSExec auf sichere Weise funktioniert und lokale administrative Anmeldeinformationen auf dem Remotecomputer benötigt, handelt es sich um eine solide und sichere Lösung. 2.14 Senden von Nachrichten an die Benutzer 149 Auflisten der geöffneten Sitzungen auf einem Server Nachdem wir jetzt ein Hilfsmittel haben, um eine Nachricht über das Netzwerk zu senden, müssen wir jetzt nur noch herausfinden, welche Benutzer wir informieren müssen. In der vorherigen Lösung haben wir uns ein Skript angeschaut, das sich die geöffneten Dateien auf einem Server mithilfe der Ressourcenauflistung von LanmanServer ansieht. LanmanServer erfasst aber auch geöffnete Sitzungen, die Sie mit folgendem Code auflisten lassen können: sComputerName = "SERVER02.contoso.com" Set oServer = GetObject("WinNT://" & sComputerName & "/LanmanServer") for each oSession in oServer.sessions wscript.echo "User: " & oSession.user wscript.echo "Computer: " & oSession.computer next Mit diesem Ansatz können wir die Computer bestimmen, von denen aus die Benutzer Verbindung mit dem Server aufgenommen haben. Das sind die Computer, an die wir unsere Nachrichten senden. Verwenden und Anpassen von FileServer_NotifyConnectedUsers.vbs Wenn Sie den soeben gezeigten Code, der die mit einem Server verbundenen Computer findet, mit unserem PSExec-Befehl kombinieren, der das Skript Message_Notification.vbs startet, können wir die gewünschte Lösung erstellen. Das Ergebnis finden Sie als FileServer_NotifyConnectedUsers.vbs im Ordner Scripts des Begleitmediums. Bevor Sie das Skript verwenden, müssen Sie den Konfigurationsblock mit dem Pfad zu Message_Notification.vbs und PSExec.exe ändern. (Falls sich PSExec.exe im selben Pfad befindet wie FileServer_NotifyConnectedUsers.vbs, ist kein Pfad erforderlich.) Sie können auch den Text der Titelleiste und die Zeiteinstellung für die Nachricht ändern. Die Syntax zum Ausführen des Skripts lautet wie folgt: cscript FileServer_NotifyConnectedUsers.vbs /user: DOMÄNE\benutzername /password: kennwort /server: SERVERNAME /message:"Nachrichtentext" Sie müssen hierbei den Benutzernamen und das Kennwort eines Benutzers eingeben, der Administrator auf allen Systemen ist, an die die Nachricht geht. Systeme, auf denen dies nicht der Fall ist, erhalten die Nachricht nicht, während das Skript aber weiterhin ausgeführt wird. Der Servername, den Sie eingeben, zeigt auf den Server, der auf offene Sitzungen hin untersucht wird. Der Nachrichtentext ist das, was Sie den mit dem Server verbundenen Benutzern mitteilen möchten. Das Skript bestimmt, welche Computer Sitzungen auf dem Server geöffnet haben, und sendet ihnen die angegebene Nachricht. Dabei meldet das Skript jeden einzelnen Computernamen. Einige Rechner reagieren möglicherweise nicht so schnell wie andere. Räumen Sie dem Skript daher etwas Zeit zur Ausführung ein. Das Ergebnis ist eine Benachrichtigung der Benutzer bei vernünftigem Aufwand. Es gibt keine Garantie dafür, dass sich die Benutzer um die Nachricht kümmern, aber auch nicht dafür, dass PSExec mit jedem Computer Verbindung aufnehmen und das Skript dort ausführen kann. Firewalls und andere Dinge können Verbindungen verhindern. Dies galt aber auch für früher für Benachrichtigungen über net send. 150 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Zusammenfassung Netzwerkadministratoren müssen häufig eine Nachricht an die Benutzer schicken. E-Mail ist eine Möglichkeit dafür, sofern die Benutzer in ihren Posteingang schauen. Es geht aber nichts über eine PopupNachricht mitten auf dem Bildschirm, um die Aufmerksamkeit des Benutzers auf sich zu ziehen. In dieser Lösung werden ein einfacher VBScript-Wrapper und die Methode Popup des Shell-Objekts und das unglaublich nützliche Werkzeug PSExec.exe eingesetzt, um das Skript auf einem Remotecomputer auszuführen. Wenn Sie einen Server offline schalten müssen, können Sie alle damit verbundenen Benutzer darüber informieren, indem Sie FileServer_NotifyConnectedUsers.vbs ausführen. Dieses Skript ermittelt alle geöffneten Sitzungen auf dem Server und ruft dann automatisch PSExec auf, um das Benachrichtigungsskript auf den Computern der verbundenen Benutzer auszuführen. 2.15 Serverübergreifendes Verteilen von Dateien Die Lösung im Überblick Typ Befehl und Verfahren Funktionen und Werkzeuge schtasks.exe, robocopy.exe, DFS-Replikaton, SMB-Berechtigungen (Freigabeberechtigungen) Zusammenfassung Sie erstellen eine Master/Spiegel-Topologie, um Dateien von einer (Master-) Quelle auf mehrere (Spiegel-) Ziele zu verteilen. Dazu verwenden Sie Robocopy oder die DFS-Replikation. Einführung In einer verteilten Organisation ist es oft notwendig, Dateien auf Server am Standort der Benutzer zu verteilen. Es kann z.B. sein, dass Sie einen Ordner mit Treibern oder Anwendungen auf die Server in den Filialen kopieren oder häufig verwendete Geschäftsdokumente auf mehrere Server verteilen müssen. In solchen Situationen wird meistens ein Modell mit einer einzigen Quelle gewünscht, bei der die Änderungen an einem Ordner am zentralen Standort weiterverteilt werden, während an den verteilten Kopien keine Änderungen durchgeführt werden können. Wir nennen diese Quelle Master und die verteilten Kopien Spiegel. Dieses Problem gehen wir auf zwei Weisen an, nämlich mit Robocopy und mit der DFS-Replikation. Verteilen von Dateien mit Robocopy Robocopy.exe gehört zu den systemeigenen, im Lieferumfang enthaltenen Hilfsprogrammen von Windows Vista und Windows Server 2008. Für frühere Versionen von Windows steht es als Resource Kit Tool zur Verfügung. Viele Organisationen verwenden Robocopy, um Dateien zu verteilen oder zu replizieren. Die einfachste Syntax zum Spiegeln eines Ordners an einen anderen Standort lautet: robocopy.exe Quelle Ziel /copyall /mir Die Parameter Quelle und Ziel sind die Pfade zu dem Quell- und Zielordner. Gewöhnlich verwenden Sie Robocopy auf dem Quellserver, sodass es sich bei Quelle um einen lokalen Pfad und bei Ziel um 2.15 Serverübergreifendes Verteilen von Dateien 151 einen UNC-Pfad handelt. Es können jedoch auch beide Parameter lokale oder UNC-Pfade sein. Die Option /copyall gibt an, dass alle Dateiattribute – auch Sicherheit, Überwachung und Besitz – kopiert werden sollen. Mit /mir weisen Sie Robocopy an, den Quellordner zu spiegeln: Jüngere Dateien aus der Quelle überschreiben entsprechende ältere Dateien im Ziel, fehlende Dateien im Ziel werden ergänzt, und jegliche Dateien, die im Ziel vorhanden sind, aber nicht in der Quelle, werden gelöscht. Um eine Master/Spiegel-Dateiverteilungstopologie anzulegen, erstellen Sie einfach eine geplante Aufgabe, um Robocopy in den gewünschten Abständen auszuführen. Dazu können Sie den Befehl schtasks.exe wie folgt einsetzen: schtasks.exe /create /RU DOMÄNE\Benutzername /RP Kennwort /TN Aufgabenname /TR "robocopy.exe Quelle Ziel /copyall /mir" /sc MINUTE /mo Intervall Die Anmeldeinformationen DOMÄNE\Benutzername und Kennwort werden verwendet, um die Robocopy-Aufgabe auszuführen. Sie müssen die NTFS-Berechtigung Vollzugriff für die Ordner und Dateien in Quelle und Ziel haben. Der Aufgabenname ist der Anzeigename der geplanten Aufgabe. Das Intervall wird als Anzahl der Minuten zwischen den Wiederholungen angegeben. Geben Sie an einer Befehlszeile schtasks.exe /create /? ein, um weitere Einzelheiten über die Parameter zu erfahren, die für den Befehl schtasks zur Verfügung stehen. Um sicherzustellen, dass die Quelle (der Master) der einzige Standort ist, an dem Dateien für die Verteilung hinzugefügt werden können, müssen Sie Freigabeberechtigungen für die Zugriffssteuerung verwenden. Nehmen Sie keine NTFS-Berechtigungen, da Robocopy sie auf den Spiegel repliziert. Richten Sie stattdessen auf dem Spiegel Freigabeberechtigungen so ein, dass nur das Konto, das für die geplante Aufgabe verwendet wird, Vollzugriff hat. Alle anderen Benutzer, die Zugriff auf die Spiegel brauchen, sollten die Freigabeberechtigung Lesen haben. Das Konto für schtasks.exe und andere Benutzer, die Zugriff auf den Master benötigen, müssen dort die Freigabeberechtigung Vollzugriff haben. Da sich der effektive Zugriff eines Benutzers aus der restriktivsten Kombination seiner Freigabe- und NTFS-Berechtigungen ergibt, können Benutzer, die die NTFS-Berechtigung zum Erstellen, Ändern oder Löschen von Dateien haben, dies nur auf der Masterfreigabe tun. Verteilen von Dateien mit DFS-Replikation Die DFS-Replikation (DFS-R), die mit Windows Server 2003 R2 eingeführt wurde, ermöglicht eine hochgradig effiziente und verwaltungsfreundliche Replikation und nutzt differentielle Komprimierung und Bandbreitensteuerung aus, um sicherzustellen, dass die Replikation der Daten nur den geringstmöglichen Einfluss auf das Netzwerk hat. Eines der häufigsten Missverständnisse bei der Nabe/Speiche-Replikationstopologie (Hub-and-Spoke) von DFS-R besteht darin, dass sie eine Master/Spiegel-Funktionalität böte. Das ist jedoch nicht der Fall. Bei dieser Topologie werden Änderungen auf einem Speichensystem an die Nabe und von dort aus an andere Speichen repliziert. Um eine Master/Spiegel-Topologie zu erstellen, beginnen Sie mit einer DFSR-Topologie und ändern dann die Freigabeberechtigungen. Dazu sind folgende Schritte erforderlich: 1. Öffnen Sie die DFS-Verwaltungskonsole. 2. Rechtsklicken Sie auf Replikation und wählen Sie Neue Replikationsgruppe. 3. Der Assistent für neue Replikationsgruppen erscheint. 4. Aktivieren Sie auf der Seite Replikationsgruppentyp die Option Mehrzweckreplikationsgruppe. Klicken Sie auf Weiter. 152 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 5. Geben Sie auf der Seite Name und Domäne einen Namen für die Replikationsgruppe ein, z.B. Master-Mirror File Distribution. Optional können Sie eine Beschreibung eingeben. Klicken Sie auf Weiter. 6. Klicken Sie auf der Seite Replikationsgruppenmitgliederauf Hinzufügen und geben Sie den Namen des Masterservers ein. Klicken Sie auf OK. Wiederholen Sie diesen Vorgang für jeden Spiegelserver. Klicken Sie auf Weiter, wenn alle Server im Feld Mitglieder aufgeführt werden. 7. Aktivieren Sie auf der Seite Topologieauswahl die Option Nabe und Speiche, falls Sie mindestens drei Mitglieder haben. Bei nur zwei Mitgliedern wählen Sie Vollständig vermaschtes Netz. Klicken Sie auf Weiter. Falls Sie die vollständig vermaschte Netztopologie verwenden, fahren Sie mit Schritt 10 fort. 8. Wählen Sie auf der Seite Nabenmitglieder den Masterserver aus der Liste Speichenmitglieder aus und klicken Sie auf Hinzufügen, um ihn in die Liste Nabenmitglieder zu überführen. Klicken Sie auf Weiter. 9. Akzeptieren Sie die Standardwerte auf der Seite Nabe-zu-Speiche-Verbindungen und klicken Sie auf Weiter. 10. Auf der Seite Replikationsgruppenzeitplan und Bandbreite können Sie die Standardbandbreite (Vollständig) akzeptieren, aber auch die Bandbreitennutzung für die Replikation konfigurieren. Denken Sie daran, dass es sich bei DFS-R um einen hochgradig effizienten Replikationsmechanismus handelt, sodass es selbst bei der vollständigen Bandbreitennutzung unwahrscheinlich ist, dass bei der Replikation die gesamte Bandbreite verbraucht wird. Klicken Sie auf Weiter. 11. Wählen Sie auf der Seite Primäres Mitglied den Masterserver aus und klicken Sie auf Weiter. 12. Klicken Sie auf der Seite Zu replizierende Ordner auf Hinzufügen und geben Sie den Pfad zu dem Ordner ein, den Sie replizieren möchten. Alle Unterordner werden in die Replikation einbezogen. Optional können Sie dem Ordner einen benutzerdefinierten Namen geben. Klicken Sie auf OK. Wiederholen Sie diesen Schritt für jeden Ordner, den Sie replizieren möchten. Klicken Sie auf Weiter. 13. Wählen Sie auf der Seite Lokaler Pfad von <zu replizierender Ordner> auf anderen Mitgliedern den Spiegelserver aus, klicken Sie auf Bearbeiten und wählen Sie Aktiviert. Geben Sie den Pfad zu dem Ordner auf diesem Server ein und klicken Sie auf OK. Wiederholen Sie diesen Schritt für jeden Spiegelserver. Klicken Sie auf Weiter. 14. Überprüfen Sie die Einstellungen, die Sie vorgenommen haben. 15. Klicken Sie auf Erstellen. 16. Stellen Sie sicher, dass die Aufgaben erfolgreich fertig gestellt werden. 17. Klicken Sie auf Schließen, um den Assistenten für neue Replikationsgruppen zu schließen. Weisen Sie auf dem Master die Freigabeberechtigung Vollzugriff für alle Benutzer zu, die Zugriff auf diesen Ordner benötigen könnten. Auf den Spiegelservern sollten Benutzern, die Zugriff auf die Spiegel brauchen, nur die Leseberechtigung für die Freigabe bekommen. Im Gegensatz zu Robocopy, das ein Konto zum Kopieren der Dateien zwischen den freigegebenen Ordnern verwendet, ist DFS-R ein Dienst, weshalb keine anderen Änderungen an den Freigabeberechtigungen erforderlich sind. Wichtig Der zuvor beschriebene Vorgang ist die empfohlene Methode, um eine Einweg-Replikation vom Master zum Mirror einzurichten. Auf vielen Websites können Sie lesen, dass Sie die Replikationsverbindungen löschen sollten. Dies wird jedoch nicht empfohlen, da dies unbeabsichtigte Nebenwirkungen auf die DFS-Replikation haben kann. Microsoft rät vom Löschen von Replikationsverbindungen ab. 2.16 Speicherplatzverwaltung mit Kontingenten 153 Zusammenfassung Mit einer geplanten Aufgabe, die Robocopy ausführt, oder mithilfe der DFS-Replikation können Sie Dateien von einem Master auf die Spiegelversionen eines freigegebenen Ordners replizieren. Um sicherzustellen, dass direkt an den Spiegeln keine Änderungen vorgenommen werden können, verwenden Sie Freigabeberechtigungen für die gespiegelten Kopien, die nur den Lesezugriff erlauben. die NFTS-Berechtigungen sollten auf den Spiegeln nicht geändert werden, da die NTFS-Berechtigungen des Masters an die Spiegel repliziert werden und daher jegliche Änderungen überschreiben, die Sie vorgenommen haben. Das Löschen von DFS-Replikationsverbindungen wird ebenfalls nicht empfohlen. 2.16 Speicherplatzverwaltung mit Kontingenten Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Kontingente Zusammenfassung Änderungen bei den Möglichkeiten der Kontingentverwaltung in Windows Server 2008 Einführung Die Kontingentverwaltung auf Windows Server-Systemen wurde in Windows Server 2003 R2 überholt. Wie die Vorgängerversion bietet auch Windows Server 2008 leistungsfähige, flexible und wirkungsvolle Funktionen zur Überwachung und Durchsetzung der Speichernutzung. Diese Lösung bietet einen Überblick über die Windows-Kontingentverwaltung und hebt einige Schlüsselkonzepte und Tricks hervor. Im Hilfe- und Supportcenter finden Sie ausführliche Dokumentation zur Kontingentverwaltung. Neue Merkmale der Kontingentverwaltung In den folgenden Abschnitten gehe ich auf Änderungen bei der Kontingentverwaltung gegenüber Windows Server 2003 und Windows 2000 ein. Seit Windows Server 2003 R2 wurden keine weiteren Änderungen an dieser Funktion vorgenommen. Die wahrscheinlich hervorstechendste Änderung besteht darin, dass Kontingente jetzt auch für einzelne Ordner und nicht nur Volumes eingerichtet werden können. Wenn ein Ordnerkontingent festgelegt ist, sind alle Benutzer daran gebunden. Falls Sie also das Kontingent für den Ordner Marketing auf 100 MB festlegen, ist das der maximale Speicherplatz, den dieser Ordner einnehmen darf, unabhängig davon, welcher Benutzer Dateien darin erstellt. Sobald sich in dem Ordner 100 MB an Daten befinden, wird dem nächsten Benutzer, der versucht, eine neue Datei darin anzulegen, der Zugriff verweigert. Das Kontingent beruht jetzt auch auf der physischen und nicht auf der logischen Festplattennutzung. Wird eine Datei also mit der NTFS-Komprimierung verkleinert, wird die resultierende (also die komprimierte) Größe mit dem Kontingent verrechnet. Das Verhalten der Kontingente ist sehr flexibel. Sie können harte Kontingente einrichten, die alle Benutzer daran hindern, Daten hinzuzufügen, nachdem der Grenzwert erreicht ist, aber auch weiche Kontingente, bei denen nach dem Limit immer noch Daten hinzugefügt werden können, bei denen aber die Speichernutzung überwacht wird. Jedes Kontingent kann verschiedene Benachrichtigungsschwellen 154 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben aufweisen, die festlegen, was geschieht, sobald ein bestimmter Prozentsatz des Kontingents erreicht ist. Bei jedem Schwellenwert können eine oder mehrere der folgenden Aktionen ausgelöst werden: E-Mail-Nachricht Eine E-Mail kann an einen oder mehrere Administratoren und/oder an den Benutzer gesendet werden, dessen Änderungen zum Überschreiben des Schwellenwertes geführt haben. Die Nachricht an den Benutzer ist frei wählbar und kann verschiedene Variablen enthalten. Ereignisprotokoll Im Ereignisprotokoll kann eine Warnung eingetragen werden. Wie bei der E-MailNachricht können Sie einen beliebigen Text dafür wählen und verschiedene Variablen einfügen, um einen ausführlichen und verständlichen Protokolleintrag zu gestalten. Befehl Sie können festlegen, dass beim Erreichen eines Schwellenwertes ein beliebiger Befehl ausgeführt wird. Dadurch werden die möglichen Aktionen auf unendlich viele Möglichkeiten erweitert. Bericht Berichte über die Speichernutzung können generiert und per E-Mail an Administratoren und/ oder den Benutzer gesendet werden, der den Schwellenwert überschritten hat. Die Berichte werden außerdem im Ordner %systemdrive%\StorageReports\Incident auf dem Server gespeichert. Kontingentvorlagen Die Kontingentverwaltung von Windows bietet zwar unzählige Konfigurationsmöglichkeiten, doch sehr wahrscheinlich gibt es nur eine sehr kleine Anzahl möglicher Konfigurationen, die sich für die Kontingentverwaltung in Ihrem Unternehmen eignen. Sie können sich z.B. dafür entscheiden, dass dem Ordner einer Abteilung ein bestimmtes Kontingent zugewiesen wird und dass die Benutzer beim Erreichen von 85% dieses Kontingents E-Mail-Nachrichten erhalten, in denen sie gebeten werden, veraltete Dateien zu entfernen. Außerdem sollen die Administratoren darüber informiert werden, dass die Kapazitätsgrenze des Ordners bald erreicht ist. Bei 100% des Kontingents sollten Sie das Hinzufügen weiterer Dateien untersagen. Sie können auch andere Konfigurationen für eine Hand voll verschiedener Situationen in Ihrer Organisation definieren. Um diese Entscheidungen umzusetzen, sollten Sie Kontingentvorlagen einsetzen. Einige standardmäßige Kontingentvorlagen sind von Anfang an verfügbar. Im Snap-In Ressourcen-Manager für Dateiserver können Sie neue Vorlagen erstellen. Erweitern Sie Kontingentverwaltung, markieren Sie Kontingentvorlagen und rechtsklicken Sie darauf und wählen Sie Kontingentvorlage erstellen. Als Ausgangspunkt für die neue Vorlage können Sie eine Kopie einer vorhandenen Vorlage verwenden, Sie können aber auch alle Eigenschaften von Grund auf neu zusammenstellen. Benennen Sie die Vorlage und geben Sie die Maximalgröße des Kontingents an. Richten Sie das Kontingent als hart oder weich ein und fügen Sie Benachrichtigungsschwellenwerte hinzu. Geben Sie für jeden Schwellenwert die auszulösenden E-Mail-Nachrichten, Protokolleinträge, Befehle oder Berichte an. Nachdem Sie eine Kontingentvorlage definiert haben, können Sie sie auf Ordner anwenden. Wahrscheinlich wollen Sie ähnliche Kontingentvorlagen auf verschiedenen Servern verwenden. Zur Übertragung der Vorlagen auf andere Systeme verwenden Sie den Befehl dirquota.exe mit den Optionen / export und /import. Anwenden eines Kontingents auf einen Ordner Nachdem Sie die geeigneten Kontingentvorlagen erstellt haben, können Sie Kontingente für einzelne Pfade anlegen. Markieren Sie im Snap-In Ressourcen-Manager für Dateiserver den Knoten Kontingente im Zweig Kontingentverwaltung und rechtsklicken Sie darauf. Wählen Sie Kontingent erstellen. 2.16 Speicherplatzverwaltung mit Kontingenten 155 Geben Sie den Pfad ein, auf den Sie das Kontingent anwenden möchten. Es kann sich dabei um einen Ordner oder um ein gesamtes Volume handeln. Wählen Sie anschließend aus der Dropdownliste in der Mitte des Dialogfelds Kontingent erstellen Ihre Vorlage aus, wie Sie in Abb. 2.13 sehen. Abbildung 2.13 Das Dialogfeld Kontingent erstellen Sie können im Dialogfeld Kontingent erstellen zwar auch ein maßgeschneidertes Kontingent anlegen, doch lassen sich Kontingente mit Vorlagen wirkungsvoller verwalten als mit dieser Einweg-Methode. Kontingentvorlagen vereinfachen nicht nur die Anwendung von Kontingenteigenschaften, sondern geben Ihnen auch langfristig mehr Flexibilität. Wenn Sie die Eigenschaften einer Kontingentvorlage ändern, werden alle Ordner, auf die diese Vorlage angewandt wurde, unmittelbar aktualisiert, um diese Änderungen widerzuspiegeln. Im Dialogfeld Kontingent erstellen finden Sie auch die Option Vorlage automatisch anwenden. Sie ist vor allem dann nützlich, wenn Sie einen Ordner der obersten Ebene (gewöhnlich ohne Kontingent) haben und wünschen, dass Unterordnern bei ihrer Erstellung automatisch ein bestimmtes Kontingent zugewiesen wird. Stellen Sie sich einen Ordner für eine Abteilung vor, der Unterordner für einzelne Funktionen oder Teams innerhalb der Abteilung enthält. Für jeden Unterordner soll ein bestimmtes Kontingent gelten. Mit der Option Vorlage automatisch anwenden können Sie dieses Ziel erreichen. Ein weiteres häufiges Einsatzgebiet für diese Option sind Benutzerdatenordner: Oberhalb der Ordner für die einzelnen Benutzer gibt es einen Stammordner. Wenn Benutzerdatenordner erstellt werden, soll ihnen ein bestimmtes Kontingent zugewiesen werden. In Lösungsgruppe 3, »Verwalten von Benutzerdaten und -einstellungen«, wird die Option Vorlage automatisch anwenden ausführlich besprochen. 156 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Zusammenfassung In Windows Server 2003 R2 wurde die Kontingentverwaltung der Windows Server-Produktlinie völlig neu gestaltet. Sie können jetzt eine Speicherzuteilung mithilfe von Kontingenten einrichten, die es ermöglicht, beim Erreichen von Schwellenwerten E-Mail-Benachrichtigungen zu senden, Einträge im Ereignisprotokoll vorzunehmen, Berichte zu generieren und Befehle auszuführen. Die Kontingente werden auf einzelne Ordner statt auf Benutzer angewendet. Kontingentvorlagen bilden einen zentralen Verwaltungspunkt zum Definieren und Ändern von Kontingenteigenschaften. 2.17 Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Schattenkopien für freigegebene Ordner Zusammenfassung Sie aktivieren Schattenkopien und geben den Benutzern Methoden an die Hand, um vorherige Versionen von Dateien in freigegebenen Ordnern wiederherzustellen. Einführung Wenn ein Benutzer eine Datei versehentlich löscht oder überschreibt, können die erforderlichen Maßnahmen zur Wiederherstellung sehr aufwändig sein: Sie müssen eine Sicherung finden, die Sicherung bereitstellen und die Datei abrufen. Mit Windows Server 2003 wurde die Funktion der Schattenkopien für freigegebene Ordner eingeführt, die zeitpunktgenaue Snapshots von Festplattenvolumes ermöglicht. Außerdem wurde der Client für vorherige Versionen vorgestellt, der den Benutzern erlaubt, Dateien ohne Eingriff des Administrators aus diesen Snapshots wiederherzustellen. Es ist sehr wichtig, die zugrunde liegende Technik der Schattenkopien genau zu verstehen, weshalb ich Ihnen empfehle, die folgende Microsoft-Dokumentation zu lesen: Dokumentation der Funktion: http://technet2.microsoft.com/windowsserver/en/library/77a571cca360-468a-ad99-6c80049530db1033.mspx?mfr=true Technische Referenz: http://technet2.microsoft.com/windowsserver/en/library/2b0d2457-b7d842c3-b6c9-59c145b7765f1033.mspx?mfr=true Whitepaper: http://www.microsoft.com/windowsserver2003/techinfo/overview/scr.mspx Diese Lösung bietet eine Anleitung für bestimmte Bereiche, um Ihnen zu helfen, diese Funktion mit Ihren Geschäftserfordernissen in Einklang zu bringen. 2.17 Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien 157 Aktivieren von Schattenkopien Schattenkopien müssen auf Windows Server-Computern aktiviert werden, da sie standardmäßig deaktiviert sind. Die Funktion wird für Volumes aktiviert, nicht für einzelne Ordner oder Freigaben. Klicken Sie auf der Registerkarte Schattenkopien im Eigenschaftendialogfeld eines Volumes auf Einstellungen (siehe Abb. 2.14). Abbildung 2.14 Die Registerkarte Schattenkopien im Eigenschaftendialogfeld eines Volumes Empfohlene Vorgehensweisen Klicken Sie nicht auf die Schaltfläche Aktivieren. Die Schaltfläche Aktivieren ist das Schnellverfahren. Damit werden Schattenkopien mit den Standardeinstellungen eingerichtet, die sich aber nicht für jede Situation eignen. Klicken Sie stattdessen lieber auf Einstellungen. Daraufhin erscheint das Dialogfeld Einstellungen, das Sie in Abb. 2.15 sehen. Nachdem Sie dort die Einstellungen eingerichtet und auf OK geklickt haben, können Sie die Schattenkopien aktivieren und dabei Ihre besonderen Einstellungen durchsetzen. Schattenkopien benötigen Speicherplatz, der sich jedoch nicht auf demselben Volume befinden muss. Tatsächlich ist es am besten, den Speicherbereich für Schattenkopien auf einem anderen Volume einzurichten, von dem selbst keine Schattenkopien erstellt werden. 158 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Abbildung 2.15 Das Dialogfeld Einstellungen für Schattenkopien Klicken Sie im Dialogfeld Einstellungen auf die Schaltfläche Zeitplan, um den Zeitplan für die Schattenkopien oder Snapshots zu ändern. Auf der Registerkarte Zeitplan, die Sie in Abb. 2.16 sehen, können Sie mehrere Zeitpläne einrichten. So können Sie z.B. einen Snapshot an jedem Abend und zusätzlich an Werktagen einen weiteren zur Mittagszeit erstellen lassen. Abbildung 2.16 Das Dialogfeld Zeitplan für Schattenkopien 2.17 Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien 159 Grundlagen und Konfiguration von Schattenkopien Kunst und Wissenschaft der Konfiguration von Schattenkopien werden in den zuvor aufgeführten Microsoft-Dokumentationen ausführlich dargestellt. Im Grunde geht es darum, einen Kompromiss zwischen der gewünschten Funktionalität – der Fähigkeit eines Benutzers, eine Datei wiederherzustellen – und der Leistung und dem Speicherplatzbedarf zu finden. Wie ein Benutzer eine vorherige Version wiederherstellt, erklären wir weiter hinten in dieser Lösung. Kurz gesagt, kann ein Benutzer Versionen wiederherstellen, die zum jeweiligen Zeitpunkt eines Snapshots bestanden haben. Nicht jede Version lässt sich wiederherstellen – es stehen nur diejenigen zur Verfügung, die bei der Snapshoterstellung erfasst wurden. Vielleicht denken Sie jetzt: »Dann richte ich möglichst häufige Snapshots ein!« Gemach, gemach! Sie müssen auch die Leistung und den Speicherbedarf bedenken. Zuerst die gute Nachricht: Wenn ein Snapshot erstellt wird, kopiert Windows nicht das gesamte Volume. Die einzelnen Schattenkopien nehmen nicht so viel Speicherplatz ein wie die Volumes. Bei einem Snapshot wird in Wirklichkeit der aktuelle Zustand des Volumes eingefroren und (im Speicherbereich des Snapshots) ein Cache erstellt. Wenn jetzt Änderungen auf die Festplatte geschrieben werden sollen, werden sie zunächst vom Volumeschattenkopie-Dienst (Volume Shadow Copy Service, VSS) abgefangen, der als Erstes die Informationen, die sich zurzeit auf der Festplatte befinden, in den Cache des jüngsten Snapshots verschiebt, und erst danach die neuen Informationen auf die Festplatte schreibt. Wenn also Snapshots für 7.00 Uhr und 12.00 Uhr vorgesehen sind, werden alle Änderungen zwischen diesen beiden Zeitpunkten abgefangen, die vorhandenen Daten (also die von 7.00 Uhr) in den Speicherbereich für den 7.00-UhrSnapshot verschoben, und erst danach die Änderungen durchgeführt. Die Änderungen werden blockweise erfasst, was je nach der Anwendung, die die Änderungen auf der Festplatte vornimmt, sehr effizient sein kann. Die Größe eines Snapshots hängt also von der Festplattenaktivität zwischen ihm und dem nächsten Snapshot fest. Und nun die schlechte Nachricht: Sie können maximal 64 Snapshots unterhalten. Wenn Sie einen Snapshot pro Tag anlegen, können Sie also Snapshots von bis zu 64 Tagen aufbewahren. Am 65. Tag wird der erste (älteste) Snapshot gelöscht, um Platz für den nächsten zu machen. Bei einem Snapshot alle drei Stunden kommen Sie auf acht Snapshots pro Tag, sodass Sie Snapshots von bis zu acht Tagen zur Verfügung haben können. Ich sage »bis zu«, denn bei starker Festplattenaktivität kann es sein, dass der Speicherbereich schon gefüllt ist, bevor der 64. Snapshot erstellt wird. Ist der Speicher aber voll, wird der älteste Snapshot gelöscht. Sie sehen jetzt wahrscheinlich, dass es wirklich eine Kunst und Wissenschaft ist, den Zeitplan für die Snapshots einzurichten. Es gibt jedoch einige weitere Richtlinien, die ich vorstellen möchte: Wählen Sie als Speicherbereich für die Schattenkopien nach Möglichkeit ein Volume aus, von dem selbst keine Schattenkopien gezogen werden. Dies gilt vor allem auf stark belasteten Dateiservern. Bereitstellungspunkte und symbolische Verknüpfungen (Ordner, die Daten von anderen Speicherorten bereitstellen) werden nicht in Schattenkopien aufgenommen. Sie müssen die Funktion der Schattenkopien auf den Volumes mit den Daten aktivieren, die bereitgestellt werden oder zu denen die Verknüpfung besteht, wenn Sie Schattenkopien von diesen Daten benötigen. Planen Sie Kopien nicht häufiger als einmal pro Stunde ein, da sonst die Leistung beeinträchtigt wird. Wenn für ein Volume der Schattenkopie-Dienst eingesetzt wird, formatieren Sie es mit Zuordnungseinheiten von 16 KB oder größer. Der Schattenkopie-Dienst speichert Daten in Blöcken von 16 KB. 160 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Kleinere Zuordnungseinheiten führen zu einer weniger effizienten Speicherung. Dies ist vor allem dann wichtig, wenn Sie das Volume regelmäßig defragmentieren. Leider bedeutet diese empfohlene Größe von 16 KB für die Zuordnungseinheiten, dass Sie auf dem Volume keine NTFS-Komprimierung verwenden können, denn diese Art der Komprimierung funktioniert nicht bei Zuordnungseinheiten größer als 4 KB. Kurz gesagt, formatieren Sie Ihre Volumes mit Zuordnungseinheiten von 16 KB und werfen Sie die NTFS-Komprimierung über Bord. Tut mir Leid, aber das ist so. Wichtig Schattenkopien für freigegebene Ordner (vorherige Versionen oder Snapshots) sind keine Alternative für umfassende Sicherungs- und Wiederherstellungsmaßnahmen. Da Schattenkopien nicht unendlich aufbewahrt werden, sollten Sie sie nur für folgende Zwecke verwenden: Wiederherstellen von versehentlich gelöschten Dateien Wiederherstellen von überschriebenen Dateien Vergleichen einer Dateiversion mit einer vorherigen Version aus einem Snapshot Sie müssen auf jeden Fall Sicherungs- und Wiederherstellungsverfahren für Ihren Server entworfen, eingerichtet und (was am wichtigsten ist) getestet haben. Zugriff auf vorherige Versionen Um für die zuvor aufgeführten Zwecke auf frühere Versionen einer Datei zugreifen zu können, müssen Sie den Client für vorherige Versionen oder Schattenkopie-Client verwenden. In Windows XP SP2 und höher ist er integriert, für Windows 2000 und Windows XP können Sie ihn sich von der MicrosoftWebsite herunterladen. In Windows Server 2003 und Windows Server 2008 finden Sie ihn im Ordner %systemroot%\System32\Clients\Twclient. Der Clients funktioniert bei den verschiedenen Windows-Versionen jeweils unterschiedlich. Bei Windows Vista und Windows Server 2008 können Sie sich die Eigenschaften einer Datei ansehen und auf die Registerkarte Vorgängerversionen klicken, die Sie in Abb. 2.17 sehen. Wenn es eine vorherige Version gibt, wird sie aufgelistet. Sie können dann auf Öffnen klicken, um die Datei in ihrer standardmäßigen Anwendung zu öffnen, oder auf die Datei rechtsklicken und die Anwendung auswählen, mit der Sie sie öffnen möchten. Dadurch können Sie die Datei anzeigen, und natürlich können Sie die Anwendung auch verwenden, um eine Kopie der Datei an einem anderen Ort zu speichern. Sie können dazu aber auch auf der Registerkarte Vorgängerversionen auf Kopieren klicken. Wenn Sie auf Wiederherstellen klicken, stellen Sie die Version am ursprünglichen Speicherort wieder her. Damit können Sie eine gelöschte Datei retten oder die aktuelle Version überschreiben. In Windows 2000, Windows XP und Windows Server 2003 ist der Zugriff auf vorherige Versionen nur über einen freigegebenen Ordner möglich. Wenn Sie den Ordner über einen UNC-Pfad geöffnet haben – also \\<server>\<freigabe>\<pfad> –, können Sie auf die Eigenschaften zugreifen und sehen Vorgängerversionen. Anschließend können Sie die zuvor beschriebenen Aktionen durchführen. In Windows 2000, Windows XP und Windows Server 2003 können Sie über die Eigenschaften einer lokalen Datei nicht auf Vorgängerversionen zugreifen. 2.17 Weniger Helpdesk-Anrufe zum Wiederherstellen gelöschter oder überschriebener Dateien 161 Abbildung 2.17 Die Registerkarte Vorgängerversionen im Eigenschaftendialogfeld einer Datei Beachten Sie folgende Hinweise zu Vorgängerversionen: Falls sich eine Datei seit dem letzten Snapshot nicht geändert hat, wird keine vorherige Version aufgelistet. Denken Sie daran, dass der Mechanismus der Schattenkopien greift, wenn Änderungen nach dem Snapshot durchgeführt wurden. Es werden also nur Vorgängerversionen von Dateien aufgeführt, die seit dem ersten Snapshot mindestens einmal geändert wurden. Wenn Sie eine Datei umbenennen, werden ihre vorherigen Versionen nicht mehr angezeigt. Wenn Sie eine Datei wiederherstellen, umfasst dies nicht ihre Berechtigungen. Eine zuvor gelöschte Datei erbt bei der Wiederherstellung die Zugriffssteuerungsliste von ihrem übergeordneten Ordner. Überschreiben Sie durch das Wiederherstellen die aktuelle Version, so erbt die Datei deren Zugriffssteuerungsliste. Zusammenfassung Trotz der möglichen Einschränkungen sind Schattenkopien von freigegebenen Ordnern eine fantastische Lösung für unser Ziel, Helpdesk-Anrufe wegen gelöschter oder überschriebener Dateien zu reduzieren. Investieren Sie Zeit in die Lektüre der Microsoft-Dokumentation, damit Sie Schattenkopien auf Ihren Servern sinnvoll einrichten, den Client für vorherige Versionen an Computer mit Windows XP SP1 oder früher verteilen und die Benutzer darin schulen können, wie sie Vorgängerversionen wiederherstellen. 162 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben 2.18 Erstellen eines effektiven delegierten DFS-Namespace Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge DFS-Namespaces Zusammenfassung Sie lösen die geschäftlichen und technischen Verwicklungen des DFS-Namespacedesigns. Einführung Wenn Sie mit der Funktion DFS-Namespaces vertraut sind, können Sie diesen Überblick überspringen. Anderenfalls finden Sie hier eine Einführung in die Komponente DFS-Namespaces, die ich gern »Der Rollendienst, der früher als Distributed File System (DFS) und davor als Distributed File System (Dfs) bekannt war« nenne. Sie werden feststellen, dass sich die Funktion DFS-Namespaces fast von selbst erledigt. DFS-Namespaces – und davor DFS und Dfs – bietet seit Windows NT 4.0 die Möglichkeit, den physischen Speicherort von Dateien und Ordnern durch Zeiger auf diese Ressourcen zu verschleiern. Die grundlegende Herausforderung besteht darin, dass ein Zeiger – z.B. eine Verknüpfung, ein zugeordnetes Laufwerk oder ein UNC-Pfad zu einer Freigabe, einem Ordner oder einer Datei – die Form \\<server>\<freigabe>\[<pfad>]\[<ordner>]\[<datei>] annimmt. Wenn Sie den physischen Speicher der Datei in irgendeiner Weise umstrukturieren, indem Sie z.B. den Freigabenamen ändern oder die Ordnerstruktur zu einer anderen Freigabe oder einem anderen Server verschieben, müssen Sie die Verknüpfung, das zugeordnete Laufwerk oder den UNC-Zeiger ändern. Bei mehreren Zeigern steigt der Verwaltungsaufwand exponentiell an. Wenn Daten in einem Unternehmen beliebiger Größe von einem Server auf den anderen verschoben werden, wird es zur Mammutaufgabe, jegliche Verweise auf Dateien, Ordner und Freigaben zu ändern. DFS-Namespaces löst dieses Problem, indem ein eigenständiger Namespace aufgebaut wird – eine Ordnerhierarchie, in der Unternehmensressourcen in einer logischen statt in einer physischen Struktur dargestellt werden können. Sie können z.B. den Pfad zur Freigabe der Marketingabteilung als \\contoso.com\departments\marketing angeben. Jeder Ordner im DFS-Namespace ist eine virtuelle Entität, die auf den physischen Speicherort des Ordners zeigt oder verweist. Der Ordner \\contoso.com\departments\marketing im DFS-Namespace verweist auf den aktuellen Speicherort \\server01\data$\marketing. Alle anderen Verweise auf den Marketingordner – zugeordnete Laufwerke, Verknüpfungen, Verknüpfungen zwischen Dateien usw. verwenden den DFS-Namespace. Wenn ein Windows-Client \\contoso.com\departments\marketing anfordert, wendet sich der DFS-Client (der in alle jüngeren Versionen von Windows integriert ist) an den DFS-Namespaceserver, der ihn an den aktuellen Speicherort des Ordners verweist. Daraufhin stellt der Client eine Verbindung zu dem betreffenden Server her. All dies geschieht für den Benutzer unsichtbar. Wenn der Ordner marketing auf server02 verschoben wird, muss als einzige Änderung nur der Verweis im DFS-Namespaceordner korrigiert werden, damit er auf \\server02\data$\marketing zeigt. Die Clients fordern nach wie vor \\contoso.com\departments\marketing an, aber jetzt werden sie auf den neuen Speicherort verwiesen. Da der physische Speicherort der Ressourcen verborgen wird, lassen sie sich deutlich einfacher verwalten. Außerdem ist es für die Benutzer einfacher, die Daten zu finden, die sie benötigen, da 2.18 Erstellen eines effektiven delegierten DFS-Namespace 163 diese in einem logischen Format dargestellt werden. Der Benutzer kann leichter nachvollziehen, dass sich ein Marketingordner in einem Abteilungsordner befindet, als herauszufinden, dass die Datei auf server02 gespeichert ist. Darüber hinaus können DFS-Namespaceordner auf mehr als ein Ziel verweisen. Mit anderen Worten, der Marketingordner in DFS kann auf mehrere Kopien sowohl auf server01 als auch auf server02 zeigen. Die Ordner lassen sich mit der eng damit verwandten Funktion der DFS-Replikation replizieren. Ein Ordner, der auf mehr als ein Ziel zeigt, bietet eine Art von Lastverteilung an, da die Clients abwechselnd unterschiedliche Verweise auf die beiden Sever erhalten. Wenn sich die Server in verschiedenen Active Directory-Standorten befinden, erhält der Client jeweils den Verweis auf den Server, der ihm, was die Standortverknüpfungskosten angeht, am nächsten steht. Als sei das noch nicht genug, werden Clients außerdem auf den zweiten Server verwiesen, wenn der erste ausfällt – eine Form von Fehlertoleranz, die ich als »Cluster für Arme« bezeichne. Erstellen von DFS-Namespaces Microsoft hat DFS-Namespaces ausführlich dokumentiert, und ich empfehle Ihnen, sich die folgenden Quellen anzusehen: Dokumentation der Funktion: http://technet2.microsoft.com/windowsserver/en/library/77a571cca360-468a-ad99-6c80049530db1033.mspx?mfr=true Technische Referenz: http://technet2.microsoft.com/windowsserver/en/library/77a571cca360468a-ad99-6c80049530db1033.mspx?mfr=true Sie sollten diese Dokumente unbedingt lesen, bevor Sie DFS-Namespaces einrichten, aber wie auch bei den anderen Lösungen in dieser technischen Referenz gebe ich Ihnen eine Anleitung für einige besondere Bereiche, bei denen nach meiner Erfahrung selbst erfahrene Administratoren ins Straucheln geraten. Das Erstellen eines DFS-Namespace wird in der Dokumentation ausführlich erklärt. Kurz gesagt, müssen Sie die DFS-Verwaltungskonsole öffnen, auf den Knoten Namespaces rechtsklicken und Neuer Namespace auswählen. Ein Assistent führt Sie durch die erforderlichen Aufgaben, um einen Namespace anzulegen. Für das Beispiel in den folgenden Abschnitten nehmen wir an, dass Sie einen Namespace namens Human Resources erstellt haben. Delegieren von DFS-Namespaces Die Enterprise Edition und die Datacenter Edition von Windows Server 2003 R2 und Windows Server 2008 können mehrere DFS-Namespaces beherbergen, bei der Standard Edition und der Web Edition sind Sie dagegen auf einen einzigen beschränkt. Haben Sie mehrere Namespaces, möchten Sie deren Verwaltung wahrscheinlich delegieren. An dieser Stelle machen viele Organisationen den ersten Fehler – indem sie die Verwaltung der DFSNamespaces eben nicht delegieren. Das typische Argument, das ich in solchen Situation höre, lautet: »Die Geschäftsführung möchte die Kontrolle über den Namespace behalten, um eine logische Hierarchie der Ordner zu gewährleisten.« Das ist meiner Meinung nach, vorsichtig ausgedrückt, kurzsichtig (es sei denn, Sie arbeiten mit der Standard oder der Web Edition und haben daher nur einen DFS-Namespace). Ein DFS-Namespace ist einfach nur ein Namespace – einfach ausgedrückt, eine Hierarchie oder eine Ordnerstruktur. Hat die Geschäftsleitung die Kontrolle darüber, welche Ordner sich auf einem Dateiserver befinden? Müssen Sie den Prokuristen anrufen, bevor Sie in einer Freigabe einen Unterordner anlegen? Wahrscheinlich nicht. Die Gliederung der Daten sollte im Allgemeinen von denen vorgenommen werden, die sie »besitzen« und die am besten einschätzen können, wie sie dargestellt werden sollen. 164 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Ich will damit nicht sagen, dass das Argument der Geschäftsführung unwichtig wäre. Ein zentral gesteuerter Namespace, der über einen langen Zeitraum hinweg konsistent bleibt, ist von großem Nutzen. Darum kümmern wir uns im nächsten Abschnitt, »Verknüpfen von DFS-Namespaces«. Die Geschäftsleitung bekommt ihren Willen also außerdem noch. Ich behaupte aber, dass diejenigen, die die Daten und die Server kennen und die, was am wichtigsten ist, wissen, wie und warum auf die Daten zugegriffen wird, am besten dazu geeignet sind, die Daten in einem logischen Namespace zu gliedern. Nehmen wir an, dass Sie eine erhebliche Anzahl von Ressourcen haben, die mit dem Personalwesen (Human Resources) verbunden sind, z.B. Unternehmensrichtlinien, Hinweise zu Sonderzahlungen usw. Eine oder mehr Einzelpersonen sind damit beauftragt, herauszufinden, wie diese Daten verwendet werden, und diese Personen erstellen eine logische Hierarchie der Ordner wie die folgende: HR Benefits Vacation Medical Retirement Corporate Discounts Policies Diversity Statement Information Technology Usage Sexual Harassment Policy Compensation Payroll Calendar Direct Deposit Forms Ich empfehle Ihnen, der betreffenden Person oder dem Team zu ermöglichen, den Namespace zu verwalten, sodass diese Mitarbeiter neue Ressourcen zum Namespace hinzufügen können, wenn dies notwendig wird. Um die Verwaltung eines Namespace zu delegieren, rechtsklicken Sie in der DFS-Verwaltungskonsole darauf und wählen Verwaltungsberechtigungen delegieren. Geben Sie den Namen des Benutzers oder besser der Gruppe ein, die die Berechtigungen zur Verwaltung des Namespace bekommen soll. Mehr ist nicht zu tun! In früheren Versionen von DFS musste ein Benutzer oder eine Gruppe Mitglied der lokalen Administratorengruppe auf dem Namespaceserver sein, um die Verwaltungsberechtigungen erhalten zu können. Das ist jetzt nicht mehr der Fall. Das Team kann nun den Namespace verwalten. Änderungen am DFS-Namespace sollten Sie nur sehr behutsam vornehmen. Der Sinn und Zweck eines solchen Namespace besteht darin, eine stabile, logische Sicht der Unternehmensressourcen zu bieten. Jegliche Änderungen am DFS-Namespace machen Änderungen an den Verweisen (zugeordnete Laufwerke, Verknüpfungen usw.) notwendig. Mit guter Planung sollen Sie eine Struktur aufbauen können, die nicht regelmäßig oder am besten gar nicht geändert werden muss. Es ist jedoch sehr wahrscheinlich, dass neue Ressourcen im Unternehmen hinzugefügt werden müssen. Sofern die vorhandene Struktur (Ordner) stabil bleibt, können diese Ressourcen dem Namespace natürlich hinzugefügt werden. 2.18 Erstellen eines effektiven delegierten DFS-Namespace 165 Verknüpfen von DFS-Namespaces Jetzt kümmern wir uns um die Bedenken der Geschäftsleitung, die die Kontrolle über den Namespace behalten möchte. Diese Forderung entspringt gewöhnlich dem Wunsch, einen sehr stabilen Namespace zu unterhalten, der eine Einteilungssystematik bietet – eine Möglichkeit, um die Unternehmensressourcen zu gliedern. In diesem Abschnitt lernen Sie einen Trick kennen, um diese und andere Geschäftsanforderungen zu erfüllen. Weiter vorn habe ich Ihnen ein Szenario vorgestellt, in dem die Personalabteilung einen DFS-Namespace unterhält. Nehmen wir an, dass auch andere Abteilungen einen eigenen, delegierten DFS-Namespace haben, auch die IT-Abteilung. Es ist sehr sinnvoll, die Software-Bereitstellungspunkte in Ihrem Untenrehmen innerhalb eines DFSNamespace darzustellen. Der Pfad, von dem Microsoft Office installiert wird, kann z.B. ein UNC-Pfad über einen DFS-Namespace namens Software sein, z.B. \\contoso.com\softwre\microsoft\office\2007. Dabei kann der DFS-Namespaceordner auf verschiedene Kopien der Software im Unternehmen verweisen, z.B. \\denverserver\software$\office2007. Die Verwendung von DFS-Ordnern für die UNC-Pfade zur Softwareverteilung macht die Softwareverteilung (Installation, Reparatur und Entfernen) sehr viel effizienter. In Lösungsgruppe 9, »Verbessern der Bereitstellung und Verwaltung von Anwendungen und Konfiguration«, besprechen wir dies noch genauer. Sie könnten die Verwaltung des Namespace Software zwar an eine begrenzte Anzahl von Administratoren delegieren, die sich um die Softwareinstallation kümmern, doch da Softwareordner häufig als ITRessourcen angesehen werden, möchten Sie in der Lage sein, über den IT-Namespace auf die Software zuzugreifen. Hier kommt ein Trick ins Spiel. Erstellen Sie einen DFS-Namespaceordner im Namespace IT, z.B. \\contoso.com\it\software. Das Ziel dieses Ordners ist ein weiterer DFS-Namespace, in diesem Fall \\contoso.com\software. Wenn ein Client in den Namespace IT wechselt, sieht er darin Software. Wechselt er zu diesem Ordner, befindet er sich in Wirklichkeit (aber für ihn unbemerkt) in einem völlig anderen DFS-Namespace! Abb. 2.18 zeigt ein Beispiel des resultierenden Namespace aus der Perspektive des Clients. Abbildung 2.18 Der Namespace IT mit dem Ordner Software, der zu einem anderen DFS-Namespace führt 166 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Mit diesem Trick im Hintergrund können Sie sich eine Lösung für den Wunsch der Geschäftsführung ausdenken. Die Geschäftsleitung kann einen Namespace auf oberer Ebene erstellen, den sie selbst unterhält, z.B. wie folgt: \\Contoso.com\Corporate Departments HR IT Finance Marketing ... Die Ordner im Namespace Corporate verweisen auf die Abteilungsnamespaces, die wiederum an die Personen delegiert, die sie am besten verwalten können. Dieses Prinzip löst auch ein Dilemma, dem sich Organisationen oft gegenüber sehen: Sollen die Namespaces nach Abteilungen oder nach geografischen Regionen aufgeteilt werden? Warum nicht nach beiden Prinzipien? Es hindert sie nichts daran, einen DFS-Namespace mit mehreren Pfaden zu einer Ressource aufzubauen. Das Ziel besteht darin, dass die Ressourcen leicht zu verwalten und für die Benutzer leicht aufzufinden sind. Ein Problem kann dabei jedoch auftreten: Wenn Sie zu einer Ressource mehrere Pfade bereitstellen, müssen Sie die Benutzer darüber unterrichten, dass es sich nur um eine einzige Datei handelt, auch wenn sie sie in zwei verschiedenen Pfaden sehen. Ansonsten könnten die Benutzer versucht sein, diese Datei zu löschen, da sie glauben, es handele sich um eine Kopie. Anzeigen von DFS-Namespaces für die Benutzer Da DFS-Namespaces eine logische Sicht der Unternehmensressourcen erstellen, ist es sinnvoll, den Benutzern Navigationsmöglichkeiten an die Hand zu geben, mit denen sie sich geschickter als durch einfaches Durchsuchen durch den Namespace bewegen können. Es gibt mehrere Möglichkeiten, um DFS-Namespaces in die Client-Benutzeroberfläche aufzunehmen: Verknüpfungen Verknüpfungen, bei denen die Angabe des Speicherorts auf einen DFS-Namespaceordner zeigt, können überall in der Benutzeroberfläche platziert werden; auf dem Desktop, im Ordner Dokumenteim Startmenü usw. Sie eignen sich für alle Benutzer, die eine der jüngeren Versionen von Windows verwenden. Zugeordnete Laufwerke Auch Netzlaufwerke, die einem DFS-Namespaceordner zugeordnet sind, können von Benutzern mit einer der jüngeren Versionen von Windows verwendet werden. Der Vorteil zugeordneter Laufwerke gegenüber von Verknüpfungen besteht darin, dass sie in der Ordnerstruktur von Windows Explorer einen erweiterbaren Knoten hinzufügen. Außerdem lässt sich z.B. sehr leicht auf ein Laufwerk namens S:\ verweisen, in dem die Benutzer Software finden. Die Anzahl zugeordneter Laufwerke ist allerdings auf die Anzahl verfügbarer Buchstaben beschränkt und in vielerlei Hinsicht eine überholte Form der Verbindung zu Netzwerkressourcen. Netzwerkressourcen Netzwerkressourcen vereinen die Vorteile beider Methoden. In Windows XP erstellen Sie Netzwerkressourcen im Ordner Netzwerkumgebung, bei Windows Vista jedoch im Ordner Computer, nicht im Netzwerk- und Freigabecenter. Nachdem Sie eine Netzwerkressource erstellt haben, können Sie sie wie eine Verknüpfung an einen anderen Platz verschieben. Netzwerkressourcen können auch wie Verknüpfungen beliebige Namen tragen. Wie ein zugeordnetes Laufwerk kann eine Netzwerkressource in der Ordnerstruktur von Windows Explorer erweitert werden, 2.18 Erstellen eines effektiven delegierten DFS-Namespace 167 um so die Hierarchie des DFS-Namespace sichtbar zu machen, auf den sie zeigt. Ich empfehle Ihnen, die von Ihren Benutzern am häufigsten verwendeten Netzwerkressourcen auf deren Desktops zu verschieben und die Links zu den weniger häufig besuchten Zielen in den Ordnern Netzwerkumgebung bzw. Computer zu belassen, wo sie erstellt wurden. Auf der Begleitwebsite www.intelliem.com/resourcekit finden Sie Skripts, um automatisch Netzwerkressourcen zu erstellen. Symbolische Verknüpfungen Symbolische Verknüpfungen sind eine neue Einrichtung in Windows Vista und bieten eine weitere Möglichkeit. Sie können eine symbolische Verknüpfung zu einem DFS-Namespace herstellen, und zwar in jedem beliebigen Ordner – z.B. Desktop oder Dokumente – oder im Benutzerprofil. Die Verknüpfung kann auch einen beliebigen Namen tragen. In der Ordnerstruktur von Windows Explorer kann die symbolische Verknüpfung erweitert werden, um die DFS-Hierarchie zu zeigen. Um eine symbolische Verknüpfung zu erstellen, verwenden Sie den Befehl mklink.exe. Wenn Sie eine Verzeichnisverknüpfung anlegen möchten, was für den Verweis auf einen DFS-Namespace erforderlich ist, müssen Sie ein Administrator sein. Sie können z.B. mit folgender Syntax eine symbolische Verknüpfung namens Corporate für den Benutzer James Fine erstellen, die auf den DFS-Namespace Corporate zeigt: mklink.exe /d "c:\users\jfine\Corporate" \\contoso.com\corporate Ein Beispiel des DFS-Namespace Corporate, wie er im Benutzerprofil von James Fine erscheint, sehen Sie in Abb. 2.19. Abbildung 2.19 Ein DFS-Namespace wird durch eine symbolische Verknüpfung innerhalb eines Benutzerprofils angezeigt 168 Lösungsgruppe 2: Verwalten von Dateien, Ordnern und Freigaben Sowohl Netzwerkressourcen als auch symbolische Verknüpfungen erscheinen in der Explorer-Shell als erweiterbare Knoten. Bei symbolischen Verknüpfungen haben Sie zusätzlich die Möglichkeit, innerhalb des lokalen Pfads auf den DFS-Namespace zu verweisen. Damit können Sie auf einen Ordner im DFSNamespace Corporate als C:\Ussers\jfine\Corporate\<Unterordner> verweisen. Symbolische Verknüpfungen sind eine neue Einrichtung in Windows Vista, weshalb ihre Verwendung und ihre Vorteile noch Neuland sind. Meiner Ansicht nach sind sie einen Versuch wert! Ich möchte gern Ihre Erfahrungen mit symbolischen Verknüpfungen zur Darstellung von DFS-Namespaces kennen lernen. Diskutieren Sie diese und andere Lösungen daher bitte auf der Begleitwebsite www.intelliem.com/resourcekit. Zusammenfassung DFS-Namespaces ist eine unglaublich nützliche Funktion von Windows-Serversystemen, mit der Sie die Verwaltung und den Zugriff der Benutzer auf Ressourcen vereinfachen und die Leistung über Server und Standorte hinweg verbessern können. Wenn Sie sich bisher noch nicht darum gekümmert haben, tun Sie es jetzt. Meiner Ansicht nach funktioniert es wie von selbst. Schauen Sie sich die zuvor in diesem Abschnitt aufgeführte Dokumentation von Microsoft an, um mehr über diese Technologie zu lernen. Wenn Sie die Enterpise Edition von Windows Server verwenden, können Sie mehrere DFSNamespaces einrichten und zur Verwaltung an Administratoren delegieren, die die Daten, ihre Verwendung und ihre Speicherorte am besten kennen. Um zentrale oder hierarchische Namespaces zu erstellen, können Sie einen DFS-Namespace oberster Ebene mit Ordnern anlegen, die auf andere Namespaces zielen. Nachdem Sie die ideale DFS-Namespacestruktur für Ihr Unternehmen eingerichtet haben, können Sie den Benutzern anzeigen die Namespaces (oder Teile davon). Einrichtungen wie Verknüpfungen, zugeordnete Laufwerke, Netzwerkressourcen und symbolische Verknüpfungen (Windows Vista) ermöglichen den Benutzern, in dem von Ihnen entworfenen logischen Namespace effizient nach Ressourcen zu suchen. 169 L Ö S U N G S G R U P P E 3 Verwalten von Benutzerdaten und -einstellungen In diesem Kapitel: Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen . . . . . . 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) . . 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern . . . . . . . . . . . . . 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher . . . . . . . . . . . . . . . . . . . 3.5 Entwerfen und Ausführen der Ordnerumleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Konfigurieren von Offlinedateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Entwerfen und Einrichten von servergespeicherten Profilen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Verwalten lokal gespeicherter Benutzerdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9 Verwalten von nur lokal zugänglichen Benutzerdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) . . 170 172 181 188 205 217 237 248 259 265 270 283 In der Lösungsgruppe 2, »Verwalten von Dateien, Ordnern und Freigaben«, haben wir uns die empfohlenen Vorgehensweisen zum Anlegen, Sichern und Verwalten von Ordnern mit freigegebenen Unternehmensdaten angesehen. Allerdings werden nicht unbedingt alle Unternehmensdaten freigegeben – normalerweise gibt es eine große Menge von Daten, die von einem Benutzer allein erstellt werden und nur diesem zugänglich sind. Benutzerdaten – beispielweise Dateien und Ordner, die im Ordner Dokumente (bzw. Eigene Dokumente), auf dem Desktop oder in einem Basisverzeichnis abgelegt werden – sind üblicherweise wesentlich für die Funktion, die der Benutzer in der Organisation ausübt. In den meisten Geschäftssituationen ist es erforderlich, dass die Benutzer von ihrem stationären oder mobilen Hauptrechner, einem allgemein zugänglichen Computer wie einem Konferenzraumsystem, einem stationären Rechner außerhalb des Standorts (Terminaldienste) oder von zu Hause oder unterwegs ohne Verbindung zum Firmennetzwerk auf ihre Daten zugreifen können. Außerdem müssen diese Daten gegen Beschädigung oder Verlust durch Hardwareausfall, versehentliches oder absichtliches Löschen geschützt sein. Darüber hinaus sollten sie griffbereit abgelegt sein, damit sie sofort zur Verfügung stehen, wenn der Benutzer ein neues oder ein Ersatzsystem bekommt. 170 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Nicht nur die geschäftlichen Dateien und Ordner sind von Bedeutung dafür, dass der Benutzer wirkungsvoll und produktiv arbeitet. Einstellungen wie die individuelle Anpassung, Vorlagen, Favoriten und Voreinstellungen sollten ebenfalls auf jedem Rechner zur Verfügung stehen, auf den er aus geschäftlichen Gründen zugreifen muss, und geschützt und griffbereit sein. Das Verwalten von Benutzerdaten und -einstellungen (User Data and Settings, UDS) ist ein kompliziertes Vorhaben, das mehr erfordert als nur ein oder zwei Funktionen, nämlich Technologien, Menschen und Prozesse. Ich betrachte jede Infrastruktur, die auf diesen Voraussetzungen beruht, als Framework – eine Zusammenstellung von Komponenten, die für sich selbst entworfen, implementiert und unterstützt werden, aber außerdem in definierter, verwaltungs- und unterstützungsfähiger Weise zusammenwirken müssen. Hinweis Als Framework bezeichne ich die Gesamtheit der Personen, Prozesse und Technologien zum Erreichen eines geschäftlichen Ziels – in diesem Fall der Verwaltung von Benutzerdaten und -einstellungen (UDS). Bei dieser Lösung geht es um die geschäftlichen und technischen Herausforderungen, auf die Sie wahrscheinlich bei der Implementierung eines Frameworks für Benutzerdaten und -einstellungen stoßen. Szenarien, Probleme und Lösungen Die folgenden häufigen Szenarien sind symptomatisch dafür, dass in einer Organisation ein UDS-Framework ganz fehlt oder unvollständig ist: Die Benutzer bei Contoso Ltd. bereiten auf ihren stationären Computern regelmäßig Managementberichte und -präsentationen vor und übertragen die Ergebnisse in den Konferenzraum. Wenn sie sich jedoch auf den dortigen Rechnern anmelden, können sie nicht auf die Daten auf ihren Arbeitsplatzcomputern zugreifen. Deshalb müssen sie die Dateien, die sie brauchen, ständig auf USBFlashmedien kopieren, um sie in den Konferenzraum zu tragen. Die Benutzer bei Blue Yonder Airlines sind regelmäßig geschäftlich unterwegs und benötigen Daten aus dem Firmennetzwerk auf ihrer lokalen Festplatte, um ohne Verbindung zum Netzwerk arbeiten zu können. Ein Mitarbeiter in der Personalabteilung kopierte einige Dateien in einen Ordner im Stammverzeichnis seines Laptops. Einige Wochen danach meldete sich ein Angehöriger der Personalabteilung bei dem Laptop an, um eine Anwendung zu installieren, und bekam ohne Weiteres Zugriff auf sensible Daten in diesem Ordner, denn Ordner im Stammverzeichnis eines Mitgliedsrechners können standardmäßig von allen Benutzern gelesen werden, die sich beim System anmelden können, also standardmäßig von allen Benutzern innerhalb der Domäne. Die Administratoren bei Adventure Works wollen die Speicherkapazität durch Kontingente steuern, die festlegen, welche Datenmenge die Benutzer im Netzwerk ablegen können. Dummerweise teilt die Funktion für die automatische Kontingentzuweisung jedem Ordner für Benutzerdaten eine eigene Quote zu, darunter den Ordnern Desktop, Dokumente, Favoriten, Bilder, Videos und Musik. Sie möchten lieber eine Gesamtquote einrichten, die diese Datenordner zu einer Einheit zusammenfasst. Wechselt ein Benutzer bei Adventure Works an einen anderen Standort, verschieben die Administratoren seine Daten auf dortige lokale Server. Anschließend müssen sie alle Verweise auf die Benutzerdaten anpassen, darunter den Pfad des servergespeicherten Profils, die Ziele für Ordnerumleitung und zugeordnete Laufwerke, Verknüpfungen und Links zwischen Dokumenten. Szenarien, Probleme und Lösungen 171 Northwind Traders stellt gerade auf Windows Vista um. Die IT-Abteilung hat festgestellt, dass die Unterstützung von Benutzerdaten und -einstellungen schwierig ist, wenn sowohl XP- als auch Vista-Clients vorhanden sind, und sucht nach einer Möglichkeit, die Verwaltung von Benutzerprofilen und umgeleiteten Ordnern in dieser heterogenen Desktopumgebung zu vereinheitlichen. Bei Trey Research hat eine unglückliche Reihe von Festplattenausfällen vor kurzem dazu geführt, dass einigen wichtigen Mitgliedern des Forschungsteams der Ordner Favoriten verloren gegangen ist, sodass sie nun im Internet die Quellen zusammensuchen müssen, die sie sich für ihre Forschung gespeichert hatten. Das IT-Team erhielt den Auftrag, eine Methode zum Schutz der Produktivität des Forschungsteams zu suchen, bei der der Ordner Favoriten sowohl unter Windows Vista als auch unter Windows XP umgeleitet wird. Bei Wide World Importers wurde vor einigen Jahren versucht, den Benutzern Offlinedateien zur Verfügung zu stellen. Die Benutzer klagten jedoch über die extrem lange Synchronisierungsdauer beim An- und Abmelden, mäßige Leistung bei Remoteverbindungen zum Netzwerk über das virtuelle private Netzwerk der Firma und unzählige eingeblendete Meldungen, sodass der Versuch eingestellt wurde. Die Produzenten und Redakteure bei Sothridge Video bearbeiten und verschlüsseln Videos, die aus Leistungsgründen nicht auf einem Netzwerkserver, sondern auf dem lokalen Festplattensystem gespeichert werden. Die Firmenleitung macht sich Gedanken um mögliche Datenverluste bei einem Festplattenausfall und hat die IT-Abteilung gebeten, alle ein bis zwei Wochen eine Sicherungskopie der Videos auf einem Server anzulegen. Wegen der Größe der Dateien eignen sich dazu weder die regelmäßige und häufige Synchronisierung der Offlinedateien noch die Synchronisierung servergespeicherter Profile – es muss eine Alternative gefunden oder entwickelt werden. Die Aktualisierung der Computer bei Fabrikam Inc. war für die Benutzer immer problematisch. Sie beschwerten sich häufig darüber, dass auf der Ersatzhardware nicht alle ihre Daten und Einstellungen vorhanden sind, was zu Produktivitätsverlust und gelegentlich zum Verlust unternehmenskritischer Dateien führte. In dieser Lösungsgruppe untersuchen wir Technologien und Funktionen, mit deren Kombination sich diese Probleme beheben lassen. Dazu nutzen wir u.a. Ordnerumleitung, Benutzerprofile, Offlinedateien, Kontingente, Gruppenrichtlinien, Skripts, Robocopy, Verschlüsselung, DFS-Namespaces und DFS-Replikation – mit dem Ziel, ein effizientes Framework für die Verwaltung von Benutzerdaten und -einstellungen zu schaffen. Wahrscheinlich haben Sie sich bereits eine oder mehrere dieser Techniken und Merkmale angesehen oder gar umgesetzt. Wenn Ihre Erfahrung derjenigen entspricht, die meine Kunden gemacht haben, sind Ihre Ergebnisse gemischt. Dafür gibt es einen einfachen Grund: Es gibt eine Vielzahl beweglicher Teile. Jede einzelne Technologie lässt sich einfach verstehen, entwerfen, umsetzen und unterstützen. Aber die Einzelteile genau so zusammenzufügen, dass sie Ihre geschäftlichen Anforderungen unterstützen, ist alles andere als simpel. Lassen Sie mich schon jetzt eine Warnung aussprechen: Versuchen Sie nicht, nur einen Teil des in dieser Lösungsgruppe aufgezeigten Frameworks zu implementieren! Achten Sie darauf, dass Sie sämtliche Aspekte des UDS-Frameworks berücksichtigen, denn wenn auch nur ein Teil fehlt, führt das zu Problemen und lässt die gesamte Arbeit sinnlos erscheinen. 172 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge – Zusammenfassung Ermitteln der Unternehmensanforderungen an Verfügbarkeit, Mobilität, Stabilität und Sicherheit von Benutzerdaten und -einstellungen Vorteile Klare Anforderungen und Konsens darüber stellen eine wesentliche Vorbedingung für den Entwurf eines komplexen Frameworks dar. Einführung Der erste Schritt beim Entwerfen eines UDS-Frameworks besteht darin, die Unternehmensanforderungen zu ermitteln. Bei dieser Lösung stelle ich Ihnen gängige Anforderungen an die UDS-Verwaltung vor, für die wir später Lösungen entwickeln. Insofern handelt es sich bei dieser Lösungsgruppe nicht um eine technische, sondern um eine geschäftliche Übung. Berater wie ich verwenden viel Zeit darauf, Unternehmen durch die Phase der Definition von Anforderungen zu leiten, die die unverzichtbare Grundlage für den Erfolg der Arbeit darstellt. Sie sollten ihre Bedeutung nicht unterschätzen. Der Grund für die Definition der Geschäftsanforderungen Das Ziel dieser Übung – die Definition der Unternehmensanforderungen an ein UDS-Framework – besteht in der Festlegung der gewünschten Ergebnisse. Sie können sie »Resultat«, »Anforderungen«, »Endzustand«, »Vision« oder »Ideal« nennen. Wofür Sie sich auch immer entscheiden, das Ergebnis der Übung sollte als Maßstab für alle Entwürfe und Lösungen dienen, anhand dessen ermittelt wird, ob sie die Anforderungen erfüllen. Ich finde es hilfreich, den gewünschten Endzustand durch Brainstorming mit einem Team von Beteiligten festzulegen, in dem technische Sachverständige, die Firmenleitung, die Finanzverantwortlichen und auch Repräsentanten der Kunden (Endbenutzer) vertreten sind. Dadurch erreichen Sie zwei Dinge: Zum einen erhalten Sie ein umfassenderes Bild oder eine realistischere Sicht der Anforderungen, zum anderen stellen Sie durch Einbeziehen aller Beteiligten in dieser Phase mit höherer Wahrscheinlichkeit sicher, dass diese die Strategie und Taktik zur Erfüllung der Anforderungen und damit das entstehende UDS-Framework selbst verstehen und stützen. Anleitung Stellen Sie die Unternehmensanforderungen durch Brainstorming mit einer breit gefächerten Gruppe von Auftraggebern auf, die Einfluss auf das UDS-Framework haben oder davon betroffen sind. Ich rate Ihnen dringend, sich auf das Ziel der Übung zu konzentrieren und sich nach Möglichkeit nicht an einer bestimmten Methode für die Definition der Anforderungen festzubeißen. Ich habe gesehen, dass Kunden viel Zeit damit vergeudet haben, Six Sigma oder eine andere Methode der Prozessverbesserung so genau zu befolgen, dass sie aus den Augen verloren haben, was sie eigentlich versuchten. 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen 173 Kommen Sie zum Abschluss. Definieren Sie den Endzustand. Es ist unwahrscheinlich, dass jeder der Beteiligten über die geeignete Ausrüstung verfügt, um sich auf eine einzige Methode (wie Six Sigma) beschränken zu können. Wahrscheinlicher ist, dass jeder mehr zum Ganzen beiträgt, indem er sich auf seine eigene Art und Weise an der Definition der Vision beteiligt. Anleitung Verfangen Sie sich nicht in der Frage, wie Sie die Anforderungen definieren (also in der Nutzung einer bestimmten Methode wie Six Sigma), sondern konzentrieren Sie sich darauf, die Unternehmensanforderungen herauszufinden. Außerdem rate ich Ihnen, sich nicht an der Formulierung oder dem »Klang« von Anforderungen festzubeißen. Manchmal ist es leicht, eine Anforderung einfach zu gestalten: »Die Benutzer sollen in der Lage sein, sich an jedem Rechner anzumelden und von dort auf ihre Geschäftsdaten zuzugreifen.« Gelegentlich ist es jedoch leichter, ein Szenario zu beschreiben, das unterstützt werden soll. Solange alle Beteiligten verstehen, was Sie zu erreichen versuchen, ist alles in Ordnung. Anleitung Unternehmensanforderungen lassen sich als Anforderungen, in Form von zu unterstützenden Szenarien oder in anderer Art definieren, die schließlich zu einer klaren Vorstellung davon führt, was Sie erreichen wollen. Als Ausgangspunkt für Sie schlage ich eine Reihe von Anforderungen vor, die Sie im Kontext Ihres Unternehmens und Ihrer IT-Umgebung untersuchen sollten. Ich nehme an, Sie sind mit den meisten oder sogar allen einverstanden. Wo Ihre Anforderungen jedoch abweichen, müssen Sie die Lösungen ändern, um sicherzustellen, dass sie zu Ihren Erfordernissen passen. Anleitung Nutzen Sie die in dieser Lösung vorgestellten Anforderungen als Grundlage, aber achten Sie darauf, dass Sie die für Ihr Unternehmen und Ihre IT-Umgebung gültigen Anforderungen erstellen. Zu den wichtigsten Ergebnissen beim Aufstellen der Anforderungen zählt neben der Festlegung der Regeln die Definition der Ausnahmen. Wir wissen alle, dass es höchst selten einen Königsweg gibt, der sämtliche Probleme in allen Szenarien löst. Können Sie Ausnahmen definieren und damit umgehen, kommen Sie zu einem Framework, das alle Benutzer in allen Szenarien verwalten kann und mit höherer Wahrscheinlichkeit unerwartete Änderungen im Lauf der Zeit verkraftet – also zu einer flexiblen Umgebung. Anleitung Definieren Sie nicht nur Anforderungen für die Mehrheit – also für die Regeln –, sondern auch für die Minderheit – also für die Ausnahmen von den Regeln. Mit einer Verwaltungsinfrastruktur, die alle Szenarien abdeckt, leistet das entstehende Framework Ihnen die besten Dienste. Ein weiteres wichtiges Ergebnis der Anforderungsdefinition besteht darin, einen Konsens über die Anforderungen herzustellen. Wenn Sie im Team arbeiten, sollten Sie dafür sorgen, dass alle Mitglieder die Anforderungen verstehen. Außerdem sollten Sie darauf achten, dass die übrigen weiter oben erwähnten Beteiligten hinter den Anforderungen stehen, die den gewünschten Endzustand definieren. Anleitung Sorgen Sie für Konsens über die Anforderungen. Bei der Einigung über die Anforderungen sollten Sie alles tun, um die Diskussion nicht in eine Erörterung von Techniken, Funktionen und Entwürfen abgleiten zu lassen. Am häufigsten kommt es zum Niedergang des Frameworkentwurfs, wenn Sie mit dem Entwerfen beginnen, bevor die Anforderungen 174 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen klar sind. Eine Diskussion über Entwurf und Implementierung eines Merkmals, beispielsweise servergespeicherter Profile, und über die Stärken und Schwächen einer Technologie nimmt die Beteiligten leicht so gefangen, dass sie den eigentlichen Faden verlieren: Ein Framework besteht nicht nur aus einer oder mehreren Technologien, sondern umfasst auch Personen und Prozesse, die alle zusammen einen gewünschten Endzustand anstreben. Ohne Strategie, Vision, Definition des Endzustands, Anforderungen – wie auch immer Sie es nennen – können Sie nicht daran gehen, eine wirksame Lösung zu entwerfen. Konzentrieren Sie sich also darauf, was Sie erreichen wollen, nicht darauf, wie Sie es erreichen. Anleitung Konzentrieren Sie sich während der Definition der Anforderungen auf Ergebnisse und Szenarien, die den gewünschten Endzustand definieren. Vermeiden Sie es, sich im Entwurf zu verstricken – darin, wie Sie diesen Zustand erreichen. Schließlich ermutige ich Sie, eine Idealvorstellung ohne Einschränkungen zu definieren. Beginnen Sie mit dieser Vision. Nachdem alle der Vision und den Anforderungen zugestimmt haben, können Sie anfangen, die Komponenten des Frameworks zu entwerfen, die dorthin führen. Erst in dieser Phase führen Sie Einschränkungen wie Budget, Zeit, Netzwerkanbindung, Bandbreite usw. ein. Diesen von Einschränkungen freien Ansatz für die Unternehmensanforderungen schlage ich vor, weil ich festgestellt habe, dass sich die Anforderungen in fast allen Situationen erfüllen lassen. Es gibt kaum Einschränkungen, die sich als unüberwindbar erweisen. Wie meine Erfahrung zeigt, ergeben sich aus dem Umstand, dass ein UDS-Framework aus zahlreichen beweglichen Teilen besteht, auch zahlreiche Möglichkeiten, sie zusammenzusetzen. Deshalb finden Sie höchstwahrscheinlich einen Weg zu Ihrem Ziel. Bringen Sie also nicht zu früh Einschränkungen ein, weil sie von der wichtigsten Aufgabe ablenken: der Definition des gewünschten Ergebnisses. Anleitung Versuchen Sie, in dieser Phase des Frameworkentwurfs noch keine Einschränkungen einzuführen. Definieren Sie die gewünschten Ergebnisse als genau dies: gewünschte Ergebnisse. Während Sie die Komponenten des Frameworks entwerfen, um diese Ergebnisse zu erreichen, können Einschränkungen eingeführt und Ansätze ausgewählt werden, die sie berücksichtigen. Zu den bedeutendsten Einschränkungen, die Sie schließlich einführen müssen, zählen natürlich die finanziellen, d.h. das Budget. Ich kann nicht genug betonen, wie destruktiv es sich auf das gesamte Framework auswirkt, die Anforderungen unter Berücksichtigung finanzieller Einschränkungen festzulegen. Anforderungen werden von Geschäftsergebnissen gesteuert – sie sollten vor dem Hintergrund des Idealfalls aufgestellt werden. Halten Sie Diskussionen über das Budget (und die technische Gestaltung) heraus. Das ist schwierig, aber sehr wichtig. Definieren der Geschäftsanforderungen auf hoher Ebene Ich habe festgestellt, dass sich die Definition von Unternehmensanforderungen an ein UDS-Framework am besten in zwei Phasen angehen lässt. In der vorliegenden ersten Phase sollten Sie die Anforderungen auf einer sehr hohen und breiten Ebene festlegen. In den folgenden Abschnitten habe ich übliche Anforderungen zusammengestellt, die Sie als Grundlage für die Erörterung von Anforderungen mit Ihren Beteiligten verwenden können. Wichtig Die Unternehmensanforderungen hoher Ebene an ein UDS-Framework lassen sich i.A. in folgende Kategorien unterteilen: Verfügbarkeit und Mobilität (für mobile Benutzer), Widerstandsfähigkeit (gegen Ausfall der lokalen Festplatte) und Schutz (gegen Aufdeckung von Daten). 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen 175 Verfügbarkeit und Mobilität Verfügbarkeit und Mobilität: Die Benutzer können von jedem Computer auf ihre Daten und Einstellungen zugreifen. Diese Anforderung bezieht sich auf ein in »Szenarien, Probleme und Lösungen« auf Seite 170 erwähntes Szenario. Die Benutzer sollen in der Lage sein, sich bei jedem beliebigen Computer anzumelden, zum Beispiel in einem Konferenzraum, und auf dieselben Daten und Einstellungen zugreifen können wie auf ihrem Hauptclient (stationär oder mobil). Diese Anforderung haben alle UDS-Projekte gemeinsam, mit denen ich zu tun hatte. Sie bildet den Goldstandard der Unternehmensanforderungen. Dies ist jedoch nur eine Regel, von der es mit Sicherheit Ausnahmen gibt. Es gibt mit einiger Wahrscheinlichkeit Computer, die nicht einbezogen werden sollten, beispielsweise öffentliche Kioskcomputer, Rechner mit Internetzugang im Foyer eines Gebäudes oder solche, die nicht regelmäßig (oder mit ausreichender Bandbreite) Verbindung zum Firmennetzwerk haben. Wir müssen also ein UDS-Framework entwerfen, das mit diesen und anderen Einschränkungen zurechtkommt. Ich möchte noch darauf hinweisen, dass dieses Framework zwar die Verfügbarkeit der Daten und Einstellungen eines Benutzers gewährleisten kann, aber nicht die Verfügbarkeit der zum Öffnen der Dateien oder zum Implementieren der Einstellungen erforderlichen Anwendungen. Die Softwareverteilung ist meiner Meinung nach besser in einem eigenen Framework aufgehoben. Sie wird in diesem Werk in Lösungsgruppe 9, »Verbessern der Bereitstellung und Verwaltung von Anwendungen und Konfiguration«, erörtert. Verfügbarkeit: Wenn ein Benutzer einen neuen Computer bekommt, sollen seine Daten und Einstellungen bei der ersten Anmeldung ohne große Verzögerung vollständig zur Verfügung stehen. Diese Anforderung ist eigentlich nur eine Variante der vorherigen. Ich habe Organisationen kennen gelernt, in denen die Benutzer Stunden oder Tage warten mussten, bis ihre Daten auf dem neuen Rechner waren, und selbst dann nur einen Teil dessen bekamen, was sie vorher hatten. Mit einem gut gestalteten UDS-Framework sollte es genauso einfach sein, einen nagelneuen Computer für einen Benutzer voll funktionsfähig zu machen, wie für den Benutzer, sich an einem anderen Rechner der Umgebung anzumelden. Verfügbarkeit: Ein neuer Mitarbeiter soll von Anfang an mit Standardbenutzerdaten und -einstellungen arbeiten können. Beim Anlegen von Benutzerkonten sollen deren Datenspeicher so initialisiert werden, dass der Benutzer sofort an die Arbeit gehen kann. Seine Arbeitsumgebung soll von Anfang an die Firmenstandards für Anpassung, Voreinstellungen und Richtlinien widerspiegeln. Ausfallsicherheit Ausfallsicherheit: Bei einem Hardwareausfall oder -verlust soll innerhalb von x Stunden ein Ersatz mit sämtlichen Benutzerdaten und -einstellungen zur Verfügung stehen. Diese Anforderung hat als weitere Variante des UDS-Ziels der universellen Verfügbarkeit Auswirkungen auf das Framework, zu denen eine Angabe gehören kann, wie viele Zusatzsysteme für diesen Fall vorrätig gehalten werden. Wie viele Stunden Sie bis zum Ersatz vorsehen, hängt davon ab, ob sich der Benutzer am Firmenstandort oder unterwegs befindet. Eine Reaktion innerhalb weniger Stunden kann sinnvoll sein, wenn sich der Benutzer im Büro aufhält. Ist er jedoch unterwegs, sind 24 bis 48 Stunden realistischer, weil der Rechner zu ihm transportiert werden muss. 176 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Ausfallsicherheit: Der Datenverlust bei Ausfall einer Clientfestplatte soll sich in Grenzen halten. Fällt die Festplatte eines Benutzers aus, können einige Daten verloren gehen. Hat er beispielsweise kürzlich einen Favoriten in sein Profil eingefügt und sich noch nicht abgemeldet, liegt in seinem servergespeicherten Profil auf der Netzwerkfreigabe noch keine Kopie davon, sodass diese Einstellung verloren geht. Das Ausmaß des Datenverlusts lässt sich natürlich durch das von Ihnen erstellte UDS-Framework einschränken. Viele Organisationen lassen die Benutzer unternehmenskritische Dokumente ausschließlich auf ihrer Festplatte speichern. Für mich ist das ein nicht akzeptables Geschäftsrisiko, weil Firmenwissen verloren geht, wenn das System des Benutzers ausfällt oder gestohlen wird – Wissen, das sich problemlos in einem UDS-Framework festhalten lässt. Unsere Entwurfsarbeiten und Lösungen konzentrieren sich auf die Entscheidung, was »begrenzt« für Ihr Unternehmen bedeutet. Sicherheit Sicherheit: Von den Benutzern erstellte Geschäftsdaten sollen sicher sein. Sicherheit ist für die meisten IT-Teams die primäre Aufgabe, wobei die Sicherheit von Benutzerdaten weit vorn auf der Liste der Anliegen von Unternehmen steht, die nicht in den Schlagzeilen erscheinen wollen, weil der Rechner eines Benutzers gestohlen wurde und sensible Daten aufgedeckt wurden. Ein Benutzerprofil umfasst eine Reihe von Ordnern und Dateien, in denen die Daten (Dokumente und andere Dateien) und Einstellungen des Benutzers (individuelle Anpassungen und Konfiguration) abgelegt sind. Das Profil wird in mehreren Lösungen weiter hinten in dieser Lösungsgruppe detailliert behandelt. Seine standardmäßige Zugriffssteuerungsliste (Access Control List, ACL) sorgt dafür, dass nur der Benutzer und die Mitglieder der lokalen Administratorengruppe des Computers Zugriff auf das Profil haben und andere Benutzer ausgeschlossen werden. Zugriffssteuerungslisten nützen jedoch nichts, wenn eine Festplatte physisch zugänglich gemacht wird – zum Beispiel, wenn ein Laptop gestohlen wird. Sobald die lokale Administratorengruppe des Rechners geknackt ist, kann jedes Mitglied dieser Gruppe auf alle Daten der Festplatte zugreifen. Dazu braucht nur eine zweite WindowsInstanz installiert zu werden. Als deren Administrator können Sie auf sämtliche Daten zugreifen, selbst auf diejenigen, die zur ersten Instanz gehören. Der einzige Schutz für Daten auf einer Festplatte gegen lokalen physischen Zugriff liegt in der Verschlüsselung, die ebenfalls in späteren Lösungen zur Sprache kommt. Erlauben Sie mir, nach diesen Hintergrundinformationen einige selbst erlebte Szenarien zu beschreiben, die unnötigerweise zur Aufdeckung von Geschäftsdaten führen können. Sie können als Unternehmensanforderungen an ein UDS-Framework dienen – es muss folgende Probleme lösen, falls sie in Ihrem Unternehmen bestehen: Außerhalb des Benutzerprofils angelegte Datenordner Benutzer schützen ihre eigenen Daten häufig nicht besonders gut. Legt ein Benutzer irgendwo außerhalb seines Profils eine Datendatei an, besteht ein hohes Risiko, dass die Daten aufgedeckt werden. Ein gängiges Beispiel dafür sind Ordner im Stammverzeichnis des Laufwerks C:\. Manche Anwendungen fördern diese gefährliche Vorgehensweise sogar. Alle Benutzer, die sich lokal am System anmelden, haben Zugriff auf den betreffenden Ordner. Da alle Benutzer innerhalb der Domäne standardmäßig das Recht haben, sich lokal an allen Mitgliedsservern und Arbeitsstationen anzumelden, kann sich jeder Benutzer in der Organisation an jedem stationären oder mobilen Computer anmelden und hat anschließend mindestens Leserechte für alle Ordner im Stammverzeichnis des Laufwerks C:\. Das UDS-Framework sollte Vorgehensweisen zur Datenverwaltung fördern oder erzwingen, die angemessen sicher sind. 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen 177 Benutzer, die lokale Administratoren sind Mitglieder der lokalen Administratorengruppe haben gültigen uneingeschränkten Zugriff auf alle nicht verschlüsselten Daten eines Systems. Es ist wichtig, Benutzer aus dieser Gruppe zu entfernen, was jedoch Frameworks zur Unterstützung derjenigen Unternehmensanforderungen nach sich zieht, deretwegen die Benutzer im Augenblick in der Administratorengruppe sind: die Berechtigung, Druckertreiber zu installieren, die Systemzeit und die IPKonfiguration zu ändern sowie Anwendungen zu installieren. Außerdem müssen Sie Anwendungen daraufhin prüfen, ob sie Anmeldeinformationen von lokalen Administratoren voraussetzen, um korrekt zu funktionieren, und dieses Problem beheben. Diese wichtigen Arbeiten werden größtenteils in anderen Lösungsgruppen dieser technischen Referenz behandelt. Bis sie erledigt und alle Benutzer aus der lokalen Administratorengruppe entfernt sind, kann der Datenschutz nur durch Verschlüsselung verbessert werden. Zugriff auf die physische Festplatte (beispielsweise durch Diebstahl) Wie bereits erwähnt, liegen die Daten auf einer Festplatte offen, wenn physischer Zugriff darauf möglich ist. Dagegen setzen wir Verschlüsselung als Schutzmaßnahme ein. Ableiten wichtiger Entwurfsentscheidungen aus Geschäftsanforderungen hoher Ebene Nachdem Sie Einigkeit über die Unternehmensanforderungen auf hoher Ebene erreicht haben, müssen Sie eine Schlussfolgerung daraus ziehen: Benutzerdaten und -einstellungen müssen im Netzwerk abgelegt werden. In gewisser Hinsicht handelt es sich dabei um eine Entwurfsentscheidung, aber aufgrund dessen, dass die Unternehmensanforderungen sonst nicht erfüllt werden können, auch um eine Anforderung. Ich ermutige Sie, diese Anforderung darzulegen und an dieser Stelle des Vorgangs mit Ihren Auftraggebern zu erörtern. Verlieren Sie sich nicht in ausführlichen Entwurfsdiskussionen, beispielsweise, welche Daten wo abgelegt werden oder wie der mobile Zugriff erfolgt. Halten Sie die Diskussion auf einer hohen Ebene mit dem Ziel, Konsens über die einfache Tatsache herzustellen, dass sonst die weiter vorn aufgeführten Anforderungen hoher Ebene nicht zu erreichen sind. Benutzerdaten und -einstellungen müssen im Netzwerk gespeichert werden Nur wenn Sie Benutzerdaten und -einstellungen im Netzwerk speichern, können Sie die Ziele der Mobilität, Ausfallsicherheit, Sicherheit und Unterstützung verwirklichen. Wie wir bei späteren Lösungen sehen werden, bedeutet dies nicht, dass sämtliche Daten und Einstellungen im Netzwerk abgelegt werden: Einige liegen außerhalb der Anforderungen hoher Ebene und brauchen deshalb nicht genauso verwaltet zu werden. Denken Sie an die Elemente in Ihrem TEMP-Ordner – es ist klar, dass sie nicht denselben Anforderungen unterliegen. Daten, die eine Verwaltung unter Berücksichtigung der Anforderungen hoher Ebene erfordern, müssen jedoch früher oder später im Netzwerk gespeichert werden. Wir behaupten auch nicht, dass der Server sofort auf alle Benutzerdaten zugreifen muss. Das sind typische Einwände gegen diese grundlegende Entwurfsentscheidung. Es geht dabei jedoch um Einzelheiten des Entwurfs, sollte also im Augenblick außen vor bleiben. Halten Sie die Diskussion auf einer hohen Ebene. Besteht Einigkeit darüber, wichtige Daten auf einem Server unterzubringen (wenigstens in Form einer Sicherungskopie), um sie gegen den Verlust einer lokalen Benutzerfestplatte zu schützen? Ja. Also weiter. Wenn Ihre Organisation zu denen gehört, die keine oder nur wenige Benutzerdaten in ihrem Netzwerk ablegen, müssen Sie nun möglicherweise den Verkäufer spielen. Das Speichern im Netzwerk hat kulturelle, politische und finanzielle Folgen, auf die wir demnächst als Anforderungen eingehen, die sich aus 178 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen dieser Architekturentscheidung ableiten. Wenn Sie es geschafft haben, Konsens über die weiter vorn erörterten Unternehmensanforderungen hoher Ebene herzustellen, ist die Anerkennung dieser Folgen ein Kinderspiel. Auch das ist ein Grund, aus dem Sie sich meiner Meinung nach intensiv bemühen sollten, sich auf die Unternehmensanforderungen zu konzentrieren, bevor es um Konsequenzen des Entwurfs geht – wie dieses Beispiel zeigt, können sie gelegentlich von erheblicher Bedeutung und kompliziert sein. Ich empfehle Ihnen, unter den Beteiligten Übereinstimmung darüber herzustellen, dass irgendeine Form von Speicherung im Netzwerk erforderlich ist, um die Unternehmensanforderungen zu verwirklichen. Ich rate Ihnen, nicht weiter in die Details zu gehen. Äußern Sie sich noch nicht zu servergespeicherten Profilen, umgeleiteten Ordnern, Offlinedateien oder der Sicherung von Kundendaten. Das sind bestimmte Technologien, die sinnvoller zu einem späteren Zeitpunkt im Zusammenhang mit detaillierteren Anforderungen und Entwurfsherausforderungen erörtert werden sollten. Unter dem Strich spielt jede davon eine Rolle bei der Unterstützung einer Vielzahl von Szenarien, die wir jedoch noch nicht definiert haben. Konzentrieren Sie sich daher im Augenblick allein auf das Gesamtbild: Speichern im Netzwerk ist ein Entwurfselement. Halten Sie es einfach, denn in Kürze stehen wir vor einer Menge neuer Anforderungen, die sich aus dieser Entscheidung ergeben, und erst dann können wir anfangen, ein wirkungsvolles UDS-Framework zu entwerfen. Haben Sie im Augenblick keine Benutzerdaten auf Servern abgelegt, sollten Sie auch vermeiden, sich in finanzielle Folgen wie zusätzliche Speicherkapazität zu verstricken. Der erste meiner besten Ratschläge für Sie lautet: Lassen Sie die Diskussion nicht in diese Richtung laufen. Halten Sie sie auf einer hohen Ebene und frei von Einschränkungen. Später ist noch mehr als genug Zeit, über Budgets und ROI zu sprechen. Jeder weiß, dass das Framework nicht ohne Berücksichtigung der Kosten entworfen und umgesetzt wird. Wiederum gilt aber, dass wir noch nicht detailliert entwerfen – wir entwickeln Anforderungen. Ja, wir haben die Entscheidung getroffen, dass eine Speicherung im Netzwerk erforderlich ist, um die Unternehmensanforderungen hoher Ebene zu erfüllen, aber wir haben noch nichts darüber gesagt, was das heißt. Das verschieben wir auf später. Der zweite Rat, den ich Ihnen geben kann, besagt, dass sie alles daran setzen sollten, die Beteiligten aus dem Finanzbereich – die Entscheidungsträger – in die vorstehende Erörterung der Unternehmensanforderungen hoher Ebene einzubeziehen. Schließen sie sich der Ansicht an, dass diese Anforderungen (Verfügbarkeit, Mobilität, Ausfallsicherheit und Sicherheit) für den Erfolg des Unternehmens unverzichtbar sind – was ich für ein leicht nachvollziehbares Argument halte –, können Sie die Netzwerkspeicherung mühelos als wichtige Rolle in sämtliche Anforderungen aufnehmen. Ohne sie lassen sich die Unternehmensanforderungen nicht erreichen. Kunst und Wissenschaft des Entwerfens aufgrund von Anforderungen bei gleichzeitigem Abwägen von Kosten und anderen Einschränkungen werden in Lösungen behandelt, die später folgen. Ableiten von Anforderungen aus wichtigen Entwurfsentscheidungen Weiter vorn habe ich Sie ermutigt, bei den Beteiligten Einigkeit darüber herzustellen, dass Benutzerdaten und -einstellungen im Netzwerk abgelegt werden müssen, um ihre Ausfallsicherheit, Verfügbarkeit, Sicherheit und Flexibilität zu gewährleisten. Diese wesentliche Entwurfsentscheidung zieht Folgen nach sich, auf die Sie eingehen sollten, indem Sie die Anforderungen zusammenstellen, die sich daraus ergeben. Anders ausgedrückt: Welche zusätzlichen Anforderungen bringt diese Entscheidung mit sich? Auch hier sollten Sie noch nicht auf spezielle Technologien oder Details des Entwurfs eingehen. Bleiben Sie bei den Anforderungen. 3.1 Definieren der Anforderungen an ein Framework für Benutzerdaten und -einstellungen 179 Sicherheit: Das UDS-Framework erfüllt die Informationssicherheits- und IT-Richtlinien des Unternehmens über die Speicherung von Dateien im Netzwerk Diese Sicherheitsanforderung spiegelt die Tatsache wider, dass in vielen Unternehmen bestimmte Arten von Dateien nicht im Netzwerk gespeichert werden sollen. Ihre IT-Richtlinien können zum Beispiel besagen, dass es nicht erlaubt ist, dort Musik z.B. in Form von MP3-Dateien abzulegen. Außerdem schreibt das Unternehmen möglicherweise vor, dass – aus Gründen der Sicherheit, der Speicherverwaltung oder der Erfüllung von Vorschriften – auch keine E-Mail-Archive auf Netzwerkservern untergebracht werden dürfen. Vielleicht sollen auch bestimmte Arten von Daten nicht auf bestimmte Server gelangen. Was diese Anforderung für Ihr UDS-Framework bedeutet, hängt davon ab, was Ihre konkreten Richtlinien vorgeben. Wir schlagen Entwurfselemente für ein UDS-Framework vor, die die meisten gängigen Datenspeicherungsszenarien unterstützen, darunter auch diejenigen, die das Speichern bestimmter Dateitypen auf Servern untersagen. Mobilität: Benutzer können im nicht verbundenen Zustand (z.B. auf einem Laptop) über denselben Namespace auf ihre Dateien zugreifen wie im Falle einer Verbindung Wären alle Benutzerdaten auf den Computern der einzelnen Benutzer gespeichert, könnten diese ständig darauf zugreifen, im Büro oder unterwegs. Um die Anforderungen hoher Ebene zu erfüllen, werden die Daten jedoch teilweise im Netzwerk abgelegt. In diesem Fall können Sie die Konsistenz (und damit die Sicherheit) verbessern und die Unterstützungskosten reduzieren, indem sie die Benutzerumgebung rationell gestalten. Kopieren die Benutzer ständig Dateien aus ihrem Basisverzeichnis auf ihre lokale Festplatte, wenn sie sich auf den Weg machen, und nach der Reise wieder zurück? Das wäre ein Beispiel für einen unverbundenen Namespace: Der Benutzer greift auf eine Art auf die Datei zu, wenn er mit dem Netzwerk verbunden ist (über sein dem Basisordner zugeordnetes Laufwerk), jedoch auf eine andere Art, wenn er ohne Netzwerkverbindung arbeitet (indem er die Ordnerstruktur der lokalen Festplatte durchsucht). Es wäre sinnvoll, wenn die Benutzer mit und ohne Verbindung zum Netzwerk auf dieselbe Weise arbeiten könnten, weil dadurch vermutlich auch ihre Produktivität steigt, das Risiko von Fehlern sinkt und die Unterstützungskosten abnehmen. Microsoft Outlook ist ein Beispiel für solch eine rationelle Benutzerumgebung. Im Exchange-CacheModus ist für die Benutzer unsichtbar, ob sie mit oder ohne Verbindung arbeiten. Sie können E-Mails mithilfe desselben Namespace schreiben, lesen und verwalten. Die Arbeit mit Windows Explorer sollte genauso rationell aussehen. Um dies zu erreichen, verwenden wir Windows-Offlinedateien. Verfügbarkeit: Die Leistung muss für die Geschäftsanforderungen ausreichen Diese bewusst vage formulierte Anforderung muss im Kontext Ihres Unternehmens konkretisiert werden. Sie ergibt sich aus der Erkenntnis, dass die Leistung bei Zugriffen über das Netzwerk so hoch sein muss, dass der Benutzer nicht alle Daten lokal ablegt, um das UDS-Framework zu umgehen. Die folgenden Anforderungen sollten Sie so genau wie möglich definieren: Verfügbare Betriebszeit des Frameworks Die verfügbare Betriebszeit ist die Verfügbarkeit der Benutzerdaten und -einstellungen, nicht zwangsläufig auf die Betriebszeit eines bestimmten Servers, weil Server in Clustern angeordnet sein oder repliziert werden können. Die Zeit kann in Minuten, Stunden, Tagen oder als Prozentsatz angegeben werden, zum Beispiel als 99,6%, was 35 Stunden 180 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Nichtverfügbarkeit im Jahr entspricht, und zwar geplant und ungeplant zusammen. Meiner Meinung nach ist diese Zahl mit einem UDS-Framework erreichbar, das auf Speichersystemen mit nur einem Server untergebracht ist – sie bietet ausreichend Zeit zum Neustarten des Servers nach Aktualisierungen und für die gelegentliche Behebung von Hardwareproblemen. Der Großteil der Abschaltzeit sollte so geplant sein, dass sie in Zeitfenster außerhalb von Arbeitsspitzen fällt. Selbstverständlich besteht aber auch die Möglichkeit ungeplanter Ausfälle. Redundanz Möglicherweise möchten Sie eine Redundanzanforderung folgender Art aufstellen, die die Betriebszeitanforderung ergänzt: »Die Benutzerdatenspeicher werden durch den Ausfall einer Festplatte oder eines Plattenarrays nicht beeinträchtigt.« Verkraftet das UDS-Framework den Ausfall einer Festplatte oder eines Plattenarrays, entsteht ihm keine Ausfallzeit. Die Leistung des Netzwerkzugriffs von Clients aus soll den Geschäftsanforderungen entsprechen. Dies betrifft das bereits erörterte Szenario: Der Zugriff auf einen Teil der Daten erfolgt direkt im Netzwerk. Die Arbeit mit diesen Daten sollte nicht so quälend langsam sein, dass Geschäftsziele aufs Spiel gesetzt werden oder die Benutzer nach Umgehungsmöglichkeiten suchen. Letzteres bedeutet i.A., dass die Benutzer Daten auf ihre lokalen Festplatten kopieren und lokal damit arbeiten – was den meisten Anforderungen hoher Ebene des UDS-Frameworks widerspricht. Der Einfluss des UDS-Frameworks auf das Netzwerk soll optimiert werden. Hier sehen Sie die dienstbezogene Perspektive derselben Anforderung. Wir wollen das UDS-Framework vor dem Hintergrund der Netzwerkkapazität optimieren. Beachten Sie, dass wir nicht »minimiert« gesagt haben, was die Netzwerkinfrastruktur an die Spitze der Liste brächte und anderen Anforderungen überordnete, sondern »optimiert«, um sie gegenüber anderen Anforderungen abzuwägen. Das UDS-Framework soll den Umgang mit Ausnahmen erlauben. Um diese Anforderung zu beschreiben, müssen wir ein Entwurfselement beleuchten: umgeleitete Ordner. Im weiteren Verlauf dieser Lösungsgruppe gehen wir darauf detaillierter ein. Diese Ordner gehen mit Benutzerdaten ähnlich um wie Basisverzeichnisse: Die Daten werden auf einem Server abgelegt. In den meisten Situationen ist dieser Ansatz recht wirkungsvoll. Sie können sich aber sicher vorstellen, dass es Umstände gibt, unter denen der Benutzer aus dem einen oder anderen Grund nicht sinnvoll mit einer Datei arbeiten kann, die auf einem Netzwerkserver liegt. Die Einzelheiten hängen dabei von Ihrem Unternehmen und den benutzten Anwendungen ab. Ein Beispiel: Ältere Versionen von Microsoft Outlook boten keine Unterstützung für den Zugriff auf PST-Dateien in Netzwerkordnern – er musste lokal erfolgen. Ein weiteres Beispiel: Bei der Bearbeitung umfangreicher Videodateien benötigt der Benutzer wahrscheinlich lokalen Zugriff darauf, weil die Geschwindigkeit sonst unerträglich ist. In solchen Situationen sollte das UDS-Framework gewährleisten, dass die Daten, auf die lokal zugegriffen wird, so verwaltet werden, dass sie den UDS-Anforderungen entsprechen, beispielsweise der Widerstandsfähigkeit gegen einen lokalen Plattenausfall und der Verfügbarkeit auf anderen Computern. Anstatt die Benutzer zur Suche nach Umgehungsmöglichkeiten zu zwingen, muss das Framework sämtliche Arbeitsszenarien unterstützen. Die Speicherorte sollen von den Konfigurationszeigern getrennt werden. Diese Anforderung schreibt vor, dass Benutzerprofile nicht auf \\<server>\<freigabe>\%username% zeigen sollen, weil sonst alle Benutzerprofilpfade aktualisiert werden müssen, wenn die Profile auf einen anderen Server verlagert werden – beispielsweise, um Server zusammenzuführen. Um die Speicherverwaltung zu vereinfachen, ist eine Trennung sinnvoll. Möglicherweise ziehen Sie im Kopf bereits Schlüsse: Ja, als Konsequenz aus dieser Entwurfsanforderung werden DFS-Namespaces eingesetzt. 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) 181 Der verantwortungsbewusste Umgang mit Netzwerkspeicherplatz soll in angemessener Weise gefördert, erzwungen oder überwacht werden. Um die Gesamtkosten zu optimieren, sollte das Netzwerk nicht zum Abladeplatz für alle Daten werden, gute und schlechte, aktuelle und überholte. Das UDS-Framework sollte Optionen für die Verwaltung der Speichernutzung durch die Benutzer bieten. Zusammenfassung Diese Lösung hat sich auf die Schritte konzentriert, die zur Definition der Anforderungen an ein UDSFramework führen. Da ein solches Framework komplex ist und aus zahlreichen beweglichen Teilen besteht, die in den folgenden Lösungen detailliert behandelt werden, müssen alle Beteiligten unbedingt zu einem Konsens über die Anforderungen kommen, bevor sie zur Erörterung des Entwurfs übergehen. Da ein fundamentaler Aspekt eines UDS-Frameworks – die Speicherung von Benutzerdaten im Netzwerk – jedoch sowohl kulturelle, politische und finanzielle als auch technische Konsequenzen hat, sollten Sie die Diskussion über die Anforderungen so führen, wie ich es hier skizziert habe: Konzentrieren Sie sich zunächst auf die Unternehmensanforderungen hoher Ebene und die Szenarien, die das Framework unterstützen soll. Stellen Sie einen Konsens über die Anforderungen her. Damit wird die Notwendigkeit der Netzwerkspeicherung als grundlegende Entwurfsentscheidung deutlich. Vor dem Hintergrund eines Frameworks mit Netzwerkspeicherung können Sie anschließend Anforderungen an Leistung, Redundanz, Sicherheit und Mobilität auflisten. 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Servergespeicherte Profile, umgeleitete Ordner, Gruppenrichtlinien, Offlinedateien Zusammenfassung Bewährte Vorgehensweise für die Einführung eines Frameworks für Benutzerdaten und -einstellungen Vorteile Der in dieser Lösung beschriebene Entwurf dient als Überblick und Referenz für eine detaillierte Erörterung der einzelnen Komponenten des UDS-Frameworks. Ihr konkreter Entwurf basiert auf der Analyse in Lösung 3.11 auf Seite 283. Einführung Nachdem Einigkeit über die Anforderungen hergestellt ist, können Sie sich der Technologie zuwenden, die zu ihrer Unterstützung erforderlich ist. Diese Lösung soll Sie durch den Entwurfsvorgang leiten, in dem die wesentlichen Bestandteile des UDS-Frameworks ermittelt werden und herausgearbeitet wird, wie sie so aufeinander abgestimmt werden können, dass sie den aufgezeigten Anforderungen sowie einer Vielzahl von Arbeitssituationen entsprechen. Sie liegt immer noch auf einer hohen Ebene, da wir 182 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen die Teile als solche und ihr Zusammenspiel betrachten. So gelangen wir schließlich zu einer Vorabversion eines UDS-Frameworks nach empfohlenen Vorgehensweisen, anhand derer Sie sehen können, wie Sie die einzelnen Teile auf die für die meisten Unternehmen effizienteste Weise kombinieren. Ich möchte Ihnen den Wald zeigen, bevor wir die schönen und auch die hässlichen Einzelheiten der einzelnen Bäume betrachten. Darum kümmern wir uns, wenn wir uns detailliert mit den einzelnen Komponenten beschäftigen und festlegen, wie sie in den folgenden Lösungen entworfen, umgesetzt, verwaltet und unterstützt werden sollen. Danach kehren wir in Lösung 3.11 zum Zusammenbau der Teile zurück und werfen einen Blick darauf, warum es so und nicht anders geschieht. Die genannte Lösung dient also dazu, unsere Erörterung der Framework-Komponenten abzuschließen, und bringt Ihnen hoffentlich zwei Ergebnisse. Zum einen sehen Sie, warum die in der Lösung empfohlene Struktur für die meisten Organisationen gut funktioniert, zum anderen verstehen Sie die Anforderungen, die Komponenten und ihr Zusammenspiel so gut, dass Sie in der Lage sind, die vorgeschlagene Struktur zu verändern, damit sie exakt zu den Bedürfnissen Ihres Unternehmens passt. Natürlich dürfen Sie gern zu Lösung 3.11 springen – insbesondere, wenn Sie bereits umfangreiche Erfahrungen mit den Technologien gesammelt haben, die das UDS-Framework benutzt. Aber ich empfehle Ihnen durchaus, diese Lösungsgruppe der Reihe nach durchzuarbeiten. Betrachten wir nun also die Komponenten eines UDS-Frameworks von einer hohen Ebene aus. Grundlagen von UDS-Optionen Ich bezeichne diesen ersten Schritt gern als Definition von »Optionen«. Sie sind die Werkzeuge, die Ihnen beim Entwerfen einer Verwaltungsinfrastruktur für Benutzerdaten und -einstellungen zur Verfügung stehen. Konzentrieren Sie sich beim Lesen dieses Abschnitts auf die Konzepte und Definitionen, denn die einzelnen Optionen werden in den folgenden Lösungen wesentlich detaillierter untersucht. Daten und Einstellungen Das UDS-Framework muss sowohl Daten als auch Einstellungen unterstützen: Daten Damit sind die Dateien gemeint, die der Benutzer anlegt und verwendet: Dokumente, Arbeitsblätter, Präsentationen usw. Einstellungen Hierbei handelt es sich um die Dateien, die Anwendungen für den Benutzer unsichtbar erstellen, um sich dessen Anpassungen zu merken, beispielsweise die Favoriten in Internet Explorer, Cookies, Benutzerwörterbücher usw. Bei dieser Definition werden wir noch weiter ins Detail gehen und bestimmte Arten oder Klassen von Daten betrachten – z.B. Dokumente, E-Mail-Archive, Musiksammlungen und Bilder. Wichtig Im Kontext eines UDS-Frameworks bezeichne ich als »Klassen« von Daten Dinge mit gemeinsamen Anforderungen und Charakteristika, die Sie mithilfe gängiger Werkzeuge und Prozesse verwalten können. Windows-Speicher für Benutzerdaten und -einstellungen Windows stellt eine Reihe von Speichern für Benutzerdaten und -einstellungen bereit: Dokumente (Windows Vista) bzw. Eigene Dokumente (Windows XP): Benutzerdokumente Desktop: Dokumente, Verknüpfungen Favoriten: Favoriten in IE 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) 183 AppData (Windows Vista) bzw. Anwendungsdaten (Windows XP): Anwendungseinstellungen und Konfigurationsdateien Ntuser.dat: Die Registrierungsstruktur des Benutzers mit seinen Einstellungen An der Befehlszeile von Windows Vista und Windows Server 2008 erfolgt der Zugriff auf diese Ordner trotz der deutschen Anzeige in der Benutzeroberfläche über die englischen Namen wie Documents, Favorites usw. Wichtig Benutzerdatenspeicher sind Schnittstellen für eine oder mehrere Datenklassen. Meistens handelt es sich um Elemente der Windows-Benutzerschnittstelle. Wahrscheinlich legen Sie einen oder mehrere Benutzerdatenspeicher zusätzlich an. Der Benutzerdatenspeicher ist die Stelle, an der der Benutzer mit den Daten interagiert. Netzwerk- und lokale Speicher Speicher für Benutzerdaten und -einstellungen werden physisch an einem oder beiden folgenden Orten untergebracht: UDS-Server Um die Unternehmensanforderungen hoher Ebene zu erfüllen, werden die meisten Benutzerdaten und -einstellungen im Netzwerk auf Servern gespeichert, die wir als Server für Benutzerdaten und -einstellungen (UDS-Server) bezeichnen. Beachten Sie, dass ich »gespeichert« gesagt habe, nicht unbedingt »zugriffsbereit abgelegt«. Dieser feine Unterschied wird in dieser Lösung geklärt. Die Platzierung der UDS-Server wird von den Leistungsanforderungen bestimmt – üblicherweise befinden sie sich an verteilten Standorten, um den dortigen Benutzern Datenzugriff über das lokale Netzwerk (LAN) zu bieten, oder in Rechenzentren mit schneller Anbindung. Lokale Datenspeicher Um die Anforderungen an die Leistung und für Arbeitssituationen ohne Netzwerkanbindung zu erfüllen, werden zahlreiche Benutzerdaten außerdem lokal auf der Festplatte des Benutzers gespeichert. Die Einzelheiten dazu behandeln wir wiederum weiter hinten in dieser und anderen Lösungen. Wichtig Die physischen Datenspeicher eines UDS-Frameworks sind diejenigen, in denen die Benutzerdaten tatsächlich »live« gespeichert werden. Der Ordner Dokumente ist beispielsweise ein Benutzerdatenspeicher, der auf der lokalen Festplatte oder auf einem Server angesiedelt sein kann. Ein Benutzerdatenspeicher kann in mehreren physischen Speichern untergebracht sein. Ein serverbasierter (umgeleiteter) Ordner Dokumente kann ebenfalls im lokalen Cache für Offlinedateien liegen. Primäre Datenspeicher Der UDS-Entwurf bestimmt, an welchem Ort in den unterschiedlichen Arbeitssituationen auf die verschiedenen Klassen von Daten und Einstellungen zugegriffen wird. Den Speicher, in dem die Benutzer auf die Dateien zugreifen, bezeichne ich als den primären Datenspeicher für die betreffende Datenklasse. Ein Benutzer, der umfangreiche Videodateien bearbeitet, greift wahrscheinlich aus Geschwindigkeitsgründen lokal darauf zu – der primäre Datenspeicher ist in diesem Fall also ein lokaler Speicher. Unterliegen diese Videodateien jedoch den in Lösung 3.1 auf Seite 172 erörterten Geschäftsanforderungen, zum Beispiel der Widerstandsfähigkeit gegen den Ausfall des Festplattenlaufwerks eines Benutzers, müssen sie auch im Netzwerk abgelegt sein. Der Netzwerkspeicher erfüllt lediglich die Anforderungen an Verfügbarkeit, Mobilität und Ausfallsicherheit – er ist kein primärer Datenspeicher, in dem der Zugriff auf die Dateien erfolgt. 184 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Synchronisation von Datenspeichern Dies führt zu der Frage, wie Dateien aus einem Speicher in den anderen gelangen. Für die Synchronisierung des lokalen Speichers mit dem Netzwerkspeicher gibt es mehrere Ansätze: Windows-Offlinedateien Mithilfe von Offlinedateien lassen sich Ressourcen in einem Primärspeicher im Netzwerk mit einem lokalen Speicher (dem Cache) im System des Benutzers synchronisieren. Ist der Benutzer mit dem Netzwerk verbunden, greift er dort auf die Dateien zu, hat er keine Verbindung zum Netzwerk, benutzt er die Dateien im Cache (siehe auch Lösung 3.6 auf Seite 237). Servergespeicherte Profile Mit servergespeicherten Profilen lassen sich Benutzereinstellungen im Primärspeicher des Benutzersystems auf einen Netzwerkspeicher übertragen. Der Benutzer greift auf den Speicher mit dem lokalen Profil zu (siehe auch Lösung 3.7 auf Seite 248). Robocopy oder andere Mechanismen zum Kopieren von Dateien Mit Robocopy und anderen Hilfsmitteln können lokale und Netzwerkspeicher synchronisiert werden, und zwar auch zeitgesteuert. Beide Speicher lassen sich abhängig von der Arbeitssituation und der Art der Daten für den Dateizugriff nutzen (siehe auch Lösung 3.10 auf Seite 270). Kopieren Sie werden auch Situationen erleben, in denen das Kopieren bei Bedarf sinnvoll ist. Ausschließen (ohne Kopieren) Schließlich gibt es auch Fälle, in denen schlicht und einfach keine Synchronisierung erforderlich ist. Ich habe beispielsweise noch keinen Kunden getroffen, der es für notwendig hielt, die temporären Ordner der Benutzer zu synchronisieren (siehe auch Lösung 3.9 auf Seite 265). Darstellung (Namespace) Benutzer oder Anwendungen müssen im richtigen lokalen oder Netzwerkspeicher auf Dateien zugreifen, was für sie idealerweise möglichst unsichtbar erfolgen sollte. Im Namespace der Windows-Shell sollten sie ein Element der Benutzeroberfläche sehen, das die komplexen Einzelheiten der zugrunde liegenden UDS-Infrastruktur verbirgt. Es stellt die Verbindung zwischen dem Datenspeicher, den der Benutzer sieht, und dem physischen Datenspeicher (auf der lokalen Festplatte oder im Netzwerk) her, in dem die Daten liegen. Zum Glück gibt es verschiedene Techniken, die zur effizienten Darstellung der Benutzerdaten und -einstellungen beitragen: Umgeleitete Ordner Die Umleitung macht es möglich, dass ein Ordner der Windows-Shell auf einen beliebigen physischen Datenspeicher zeigt. Die Ordner Desktop und Dokumente (vor Windows Vista Eigene Dokumente) sind solche umgeleiteten Ordner. Sie werden in der Shell immer gleich dargestellt, sind jedoch abstrakte Konstrukte – genau genommen gibt es sie nicht, sondern sie sind Zeiger auf einen bestimmten Ordner im lokalen Festplattensystem oder auf einem Netzwerkserver. Servergespeicherte Profile Servergespeicherte Profile maskieren die komplexen Einzelheiten der Synchronisierungsfunktionalität, indem sie Komponenten des servergespeicherten Benutzerprofils in einer lokal zwischengespeicherten Kopie darstellen, die sich an genau derselben Stelle im Windows-Namespace befindet wie ein lokales Profil (z.B. unter Windows Vista C:\Users\<Benutzername> und unter Windows XP C:\Dokumente und Einstellungen\<Benutzername>). Offlinedateien Die Funktion Offlinedateien synchronisiert wie bereits beschrieben Netzwerkressourcen mit einem lokalen Cache, wird aber dadurch noch sinn- und wertvoller, dass sie diese Dateien unabhängig davon im selben Namespace darstellt, ob der Benutzer mit dem Netzwerk verbunden ist oder nicht. Anders ausgedrückt: Hat der Benutzer die Netzwerkdatei \\server\freigabe\dateiname.erw offline verfügbar gemacht, kann er über genau diesen Pfad auch darauf zugreifen, wenn er offline ist. Er braucht nicht direkt auf Dateien im clientseitigen Cache zuzugreifen, was er auch nicht kann. 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) 185 Symbolische Verknüpfungen oder Verbindungen Symbolische Verknüpfungen (neu in Windows Vista) und Abzweigungspunkte (Windows XP und Windows Server 2003) legen Ordner im Namespace von Windows Explorer an, die den Benutzer an einen anderen Ort umleiten. Verknüpfungen Verknüpfungen geben dem Benutzer die Möglichkeit, an ein Ziel zu gelangen. Netzwerk- und DFS-Namespaces Für das Back-End sind auch Überlegungen zu Namespaces wichtig, damit Administration, Unterstützung und Verwaltung des UDS-Frameworks möglichst effizient und wirkungsvoll sind. In Lösung 3.3 auf Seite 188 untersuchen wir die Konfiguration der physischen Speicher der Benutzerdaten und -einstellungen auf den UDS-Servern – die Ordnerhierarchie, beispielsweise E:\Users\%username%\Documents –, und in Lösung 3.4 die für die Unterstützung des Frameworks erforderlichen SMB-Freigaben, beispielsweise \\server23\users$ als freigegebener Ordner, der auf E:\Users auf SERVER23 zeigt. In Lösung 3.1 haben wir folgende Anforderung für das Framework vorgeschlagen: »Die Speicherorte sollen von den Konfigurationszeigern getrennt werden.« Sie lässt sich mithilfe von DFS-Namespaces umsetzen. Anstatt die Dokumente-Benutzerordner auf \\server23\users$\%username%\Documents umzuleiten, können Sie einen DFS-Namespace nutzen, um einen Pfad wie \\contoso.com\Users\%username%\Documents anzulegen, der seinerseits auf die Freigabe auf SERVER23 zeigt. So können Sie mit nur einer Änderung alle Benutzerdaten auf einen anderen Server verlagern – ein neues Ziel für den DFS-Ordner. Unter dem Strich besagt der Abschnitt »Netzwerk- und DFS-Namespaces«, dass die bereits erwähnte Darstellung (der Namespace) – die Verknüpfung zwischen dem für den Benutzer sichtbaren Datenspeicher und dem Netzwerkdatenspeicher, in dem die Daten liegen – mithilfe eines DFS-Namespace erfolgen sollte. Für die meisten Lösungen in dieser Gruppe bezeichne ich die Speicher für Benutzerdaten und -einstellungen im Netzwerk anhand der universellen Namenskonvention (Universal Naming Convention, UNC) für DFS-Namenräume. Welchen DFS-Namespace Sie tatsächlich anlegen, hängt von den in Lösung 3.4 auf Seite 205 erörterten Entwurfsüberlegungen ab. Anpassen der Optionen für Benutzerdaten und -einstellungen an die Anforderungen und Szenarien Sehen wir uns nun an, wie diese Optionen zu unseren Anforderungen passen. Es handelt sich immer noch um eine Erörterung auf recht hoher Ebene, um allen Beteiligten den Wald zu zeigen, bevor die einzelnen Bäume definiert werden. Oder anders: Wir sehen uns zuerst das zusammengesetzte Puzzle an und dann die Einzelteile. Die folgende Skizze beschreibt eine gängige Konfiguration von UDS-Speichern und Synchronisierungstechnologien nach bewährter Vorgehensweise. Es handelt sich weder um die einzige noch um die beste Wahl für jedes Unternehmen. Sehen Sie diese Empfehlungen als wahrscheinliche Lösung an. Bei der genaueren Erläuterung der einzelnen Komponenten werden Sie die Entwurfsüberlegungen verstehen und können die für Ihr Unternehmen angemessenen Änderungen vornehmen. Lösung 3.11 zeigt die Einzelheiten, die zu diesem UDS-Entwurf führen: Die beiden wichtigsten Speicher für Benutzereinstellungen Anwendungsdaten (in Windows Vista der Ordner AppData\Roaming) und die Registrierungsstruktur – liegen auf dem Server. Ein servergespeichertes Profil ist der einzige Mechanismus, mit dessen Hilfe die Registrierungsstruktur des Benutzers zu verwalten ist und der die Anforderungen hoher Ebene an die Verfügbarkeit 186 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen von Benutzereinstellungen erfüllt. Bis alle Benutzer mit Windows Vista arbeiten, ist ein servergespeicherter Ordner für Anwendungsdaten meistens die einzige Möglichkeit, den Anforderungen für Einstellungen in diesem Namespace nachzukommen. Die Ordner Desktop und Dokumente werden umgeleitet auf primäre Netzwerkspeicher. Der Ordner Dokumente und in geringerem Ausmaß der Ordner Desktop sind häufig recht groß und führen daher oft zu negativen Erlebnissen, wenn sie auf dem Server abgelegt werden. Alle umgeleiteten Ordner werden für Laptopbenutzer offline verfügbar gemacht, um die Verfügbarkeit auch ohne Verbindung zum Netzwerk zu gewährleisten. Die Ordner Bilder, Musik und Videos werden umgeleitet oder lokal gespeichert, was von Ihren IT-Richtlinien abhängig ist. Es werden Ordner angelegt, um Szenarien zu unterstützen, die einen lokalen Primärspeicher für Benutzerdaten erfordern wie das Videobeispiel weiter vorn. Die Benutzer greifen auf die Dateien in den beiden folgenden Ordnern direkt auf der lokalen Festplatte zu. Ordner Lokale Dateien: Der eine Ordner nimmt Daten auf, um die Anforderungen hoher Ebene zu erfüllen. Dieser lokale Ordner ist ein primärer Datenspeicher für Benutzerdaten, der regelmäßig in einem Netzwerkspeicher gesichert wird, um die Anforderungen an Verfügbarkeit, Mobilität und Ausfallsicherheit zu erfüllen. Wichtig Der Ordner Lokale Dateien ist kein Windows-Standardordner, sondern wird von Ihnen nach der Anleitung in Lösung 3.9 angelegt und verwaltet. Er unterstützt Szenarien, in denen der Datenzugriff aus Gründen der Kompatibilität oder der Leistung auf der lokalen Festplatte erfolgen muss. Dazu gehört die Bearbeitung umfangreicher Videodateien oder von PST-Dateien, für die Outlook 2003 und ältere Versionen keinen Netzwerkzugriff erlauben. Diese Daten lassen sich mithilfe servergespeicherter Profile nicht angemessen mit einem Netzwerkspeicher synchronisieren, müssen aber zwecks Mobilität, Verfügbarkeit und Ausfallsicherheit verwaltet werden, was dazu führt, dass die Benutzer lokal darauf zugreifen und einen Sicherungsmechanismus verwenden, um die Daten in den Netzwerkspeicher zu übertragen – beispielsweise das in Lösung 3.10 auf Seite 270 vorgestellte Skript. Daher bezeichne ich den Netzwerkspeicher als Sicherungsordner des Benutzers. Ordner Nur lokal: Ein weiterer Ordner ist für Daten vorgesehen, die aufgrund von Informati- onssicherheits- oder IT-Richtlinien oder aus Kapazitätsgründen nicht im Netzwerk abgelegt werden sollen. Er wird nicht auf einer Netzwerkfreigabe gesichert. Wichtig Der Ordner Nur lokal ist kein Windows-Standardordner, sondern wird von Ihnen nach der Anleitung in Lösung 3.8 auf Seite 259 angelegt und verwaltet. Er unterstützt Szenarien, bei denen bestimmte Daten aufgrund von Richtlinien über Informationssicherheit oder IT-Nutzung nicht auf Netzwerkservern gespeichert werden sollen. Dazu gehören beispielsweise persönliche Musiksammlungen. Favoriten lassen sich als umgeleitete Ordner oder servergespeichert einrichten. Ich stelle Ihnen verschiedene Überlegungen vor, die Ihnen bei der Entscheidung für die beste Lösung helfen sollen. Andere Benutzerprofilordner, insbesondere die neuen in Windows Vista, sind tendenziell recht klein, sodass sowohl umgeleitete Ordner als auch servergespeicherte Profile als Verwaltungstechnologien in Frage kommen. 3.2 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (I) 187 Bewerten der Ergebnisse für stationäre und mobile Benutzer Benutzern, die an Desktop-Computern arbeiten, und solchen, die sich bei Rechnern an anderen Orten anmelden, werden die Einstellungen auf einem neuen Computer über ihr servergespeichertes Profil verfügbar gemacht. Die Einstellungen (AppData, Ntuser.dat und ggf. Favoriten) werden bei der An- und Abmeldung vom Netzwerkspeicher synchronisiert. Da diese Ordner meistens eine sinnvolle Größe aufweisen, sollte ihr Einfluss auf das Netzwerk und die Anmeldedauer akzeptabel sein, auch wenn sich der Benutzer auf einem neuen System anmeldet und eine vollständige Kopie seines Profils herunterlädt. Bei der Anmeldung bei einem System, das der Benutzer bereits verwendet hat, brauchen nur die aktualisierten Dateien synchronisiert zu werden, was die Auswirkungen auf Netzwerk und Anmeldedauer weiter reduziert. Große Datenspeicher wie Dokumente und Desktop stehen durch Umleitung sofort zur Verfügung – bei An- und Abmeldung werden keine Dateien übertragen. Deshalb können sich die Benutzer bei einem beliebigen System anmelden und bekommen Zugriff auf ihre Daten und Einstellungen, wie es die Anforderungen hoher Ebene verlangen. Laptop-Benutzern bietet die lokale Zwischenspeicherung des servergespeicherten Profils an jedem Ort, auch offline, Zugriff auf die Einstellungen. Die Benutzerdaten in den Ordnern Dokumente und Desktop sowie weiteren umgeleiteten Ordnern werden mithilfe von Offlinedateien zwischengespeichert. Laptops haben also kaum Probleme mit der Mobilität im UDS-Framework. In den Bereichen Ausfallsicherheit und Redundanz ist der Vorteil des Frameworks für Laptops noch größer – als Schutz gegen Datenverlust bei Diebstahl, Verlust oder Beschädigung des Geräts. Meldet sich der Benutzer bei einem (Desktop- oder Laptop-) System mit nicht ausreichender Anbindung an den Server mit seinen Daten an, kann die Leistung zum Problem werden, wenn Dateien über die schlechte Leitung übertragen werden. Betrachten Sie die folgenden Szenarien und Lösungen: Bürowechsel Wird ein Benutzer an einen anderen Standort mit schlechter Anbindung an seinen bisherigen UDS-Server versetzt, ist es sinnvoll, seine Daten auf einen UDS-Server am neuen Standort zu verschieben, um eine optimale Leistung sicherzustellen. Reisender Benutzer (Laptop) Reist ein Benutzer an einen anderen Standort mit begrenzter Anbindung an seinen UDS-Server, verfügt er wahrscheinlich über einen Laptop. Da auf Laptops eine lokal zwischengespeicherte Kopie des Benutzerprofils vorhanden ist, sollte die Synchronisierung des Profils am neuen Standort einfach sein. Für den Datenzugriff setzen mobile Benutzer Offlinedateien ein, weshalb wir auf dieses Szenario im Zusammenhang mit Offlinedateien in Lösung 3.6 zurückkommen. Reisender Benutzer (ohne Laptop) Reist ein Benutzer an einen anderen Standort mit begrenzter Anbindung an seinen UDS-Server, ohne über einen Laptop zu verfügen, wird sein Profil bei der Anmeldung geladen. In den meisten Fällen ist dieser Ansatz vertretbar, da der Umfang des Profils durch Umleitung der Ordner Dokumente und Desktop reduziert wird – es enthält lediglich die Dateien Ntuser.dat, Anwendungsdaten und ggf. Favoriten. Ist die Ladegeschwindigkeit des Profils über die langsame Verbindung nicht akzeptabel, sollten Sie ein Verfahren einrichten, durch das der Speicher des Benutzerprofils verschoben oder der Pfad des servergespeicherten Profils aus dem Benutzerkonto entfernt wird, wenn der Benutzer auf Reisen geht, und dies rückgängig gemacht wird, wenn er zurückkehrt. Das zweite Problem in diesem Szenario bildet der Zugriff auf die Daten in den umgeleiteten Ordnern Dokumente und Desktop auf der anderen Seite der langsamen Verbindung zum UDS-Server. Als einzige Dateien werden die vom Benutzer geöffneten über diese Verbindung an den Client am neuen Standort übertragen. Je nachdem, welche Arbeit der Benutzer dort erledigt, kann dies unproblematisch 188 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen sein. Gibt es jedoch ein Geschwindigkeitsproblem, müssen die benötigten Dateien manuell übertragen werden, z.B. auf einem USB-Laufwerk oder anderen tragbaren Medien. An diesem Punkt sollten Sie überlegen, ob es nicht möglich ist, dem Benutzer einen Laptop zur Verfügung zu stellen, und sei es nur temporär, damit er auch an Standorten mit schlechter Anbindung effizient arbeiten kann. Zusammenfassung Diese Lösung zeigte im Überblick, wie die wesentlichen Komponenten eines UDS-Frameworks zusammenwirken, um zahlreiche Anforderungen hoher Ebene zu erfüllen. Umfangreiche Datenordner werden umgeleitet, um die Leistung von Benutzer und Netzwerk zu optimieren. Einstellungsspeicher wie AppData, die meistens wesentlich kleiner sind, werden auf dem Server gespeichert, um Zugriff und Kompatibilität unter allen Umständen zu gewährleisten. Damit stehen die Benutzerdaten und -einstellungen Benutzern am eigenen Desktop-Computer, auf ihrem Laptop, an wechselnden stationären Rechnern, bei Versetzung und auf Reisen zur Verfügung. Weitere Lösungen in dieser Gruppe bieten mehr Details zu den einzelnen Komponenten und Entwurfsempfehlungen in diesem Abschnitt. Anschließend kehrt Lösung 3.11 auf ausführlicherer Ebene zur Erörterung des Entwurfs zurück und hilft Ihnen, all diese Teile passend zu Ihren konkreten Anforderungen zusammenzufügen. 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern Die Lösung im Überblick Typ Anleitung, Skripts Funktionen und Werkzeuge NTFS-Ordner, Berechtigungen, Kontingente, dirquota.exe, Dateifenster, icacls.exe, xcacls.vbs Zusammenfassung Erstellen eines effizienten, sicheren und verwalteten Namespace (Ordnerhierarchie) für Benutzerdaten- und -einstellungsspeicher Vorteile Automatisierung und Vorsorge für Speicherverwaltungsaufgaben zur Verbesserung von Konsistenz und Sicherheit Einführung UDS-Speicher werden physisch sowohl auf Netzwerkservern als auch auf der lokalen Festplatte des Benutzers untergebracht. Wie Sie in den weiteren Lösungen sehen werden, erfolgt der Zugriff auf jede Datenklasse in einem Primärspeicher, der meistens mit dem anderen synchronisiert wird. Die Entscheidung, welche Datenspeicher wir zuerst behandeln, ähnelt dem Problem von Henne und Ei. Daher fange ich mit der vermutlich unkompliziertesten Variante an: den Datenspeichern auf dem Server. In dieser Lösung sehen wir uns an, welche Möglichkeiten Sie für die Anordnung der UDS-Ordner, für die Einrichtung von Freigaben, für die Zugriffssteuerung, für die Vergabe von Kontingenten und für die Bereitstellung von Benutzerdatenspeichern haben. Nach den beiden Erörterungen über den Entwurf in den vorherigen Lösungen sind Sie sicher erfreut, dass es jetzt an die Technologie geht. Blicken wir zunächst auf die in Lösung 3.2 auf Seite 181 eingeführte Terminologie zurück, die sich auf Entwurf und Einrichtung von UDS-Frameworks bezieht und nicht unbedingt Microsoft-Terminologie ist. Ein Benutzerdatenspeicher ist ein Einstiegspunkt für eine Datensammlung, der dem Benutzer als 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 189 Schnittstellenelement präsentiert wird, beispielsweise der Ordner Dokumente oder Desktop. Dabei kann es sich auch um einen echten Ordner handeln, beispielsweise Vorlagen, in dem Microsoft OfficeVorlagen abgelegt sind. Im physischen Datenspeicher sind die Daten tatsächlich gespeichert, was häufig entweder lokal oder auf dem Server der Fall ist. Ist ein physischer Datenspeicher sowohl auf dem lokalen System als auch auf einem Server vorhanden, wobei deren Inhalt synchronisiert wird, bezeichne ich den Speicher, auf den der Benutzer zugreift, als primären Speicher. Laufend kommt der Begriff Namespace vor. Anwendungsdaten ist der Stamm eines Namespace, in dem Anwendungen ihre Einstellungen ablegen. Das Benutzerprofil ist ebenfalls ein Namespace, genauso wie die physische Ordnerstruktur auf dem UDS-Server. Der Ort der physischen Datenspeicher lässt sich mithilfe von DFS-Namespaces zu einer logischen Sicht abstrahieren. Für die meisten Organisationen gleicht oder ähnelt der gewünschte Endzustand des Benutzerdatennamespace demjenigen in Abbildung 3.1. Unterhalb eines Stammordners für Benutzer (den wir als Stammordner für Benutzerdatenspeicher oder Ordner Benutzer bezeichnen) befindet sich für jeden Benutzer ein Ordner (der Ordner %username%) und darin Ordner für die einzelnen Datenspeicher des Benutzers. Abbildung 3.1 Der UDS-Namespace Die Benutzerdatenspeicher unterhalb des Ordners %username% sind die in Lösung 3.2 skizzierten: Desktop und Dokumente (umgeleitete Ordner), Sicherungen (Sicherungen der lokalen Dateien des Benutzers) und Profil. Der Ordner Profil, in dem das Windows XP-Profil abgelegt ist, enthält Anwendungsdaten und Favoriten als Bestandteile des servergespeicherten Profils, der Ordner Profil.V2 das Benutzerprofil für Windows Vista. Windows Vista verwendet für seine Profile die Erweiterung .V2, um die Trennung zwischen den älteren Profilen und dem neuen Vista-Profil sicherzustellen (siehe Lösung 3.7). Beachten Sie außerdem, dass der Ordner Profil.V2 keinen Ordner Favoriten aufweist, weil Vista nämlich die Umleitung dieses Ordners unterstützt und Sie ihn in den Speicher Favoriten des servergespeicherten Profils von Windows XP umleiten können, um ein einheitliches Verhalten für Benutzer zu schaffen, die mit beiden Plattformen arbeiten. Beachten Sie jedoch, dass Sie den Ordner Favoriten auch unter Windows XP mit einem Trick umleiten können, den ich Ihnen in Lösung 3.5 auf Seite 217 verrate. Das Ziel der vorliegenden Lösung besteht darin, eine Konfiguration für den physischen Namespace der Datenspeicher auf dem Server zu entwerfen (die Ordnerstruktur). In der nächsten Lösung erörtern wir den SMB-Namespace (Server Message Block) dieser Speicher (die Freigaben), um (mithilfe von DFSNamespaces) zu einer rationellen, logischen Sicht des UDS-Namespace zu kommen. Damit haben Sie das Rüstzeug, um die folgenden drei Fragen zu beantworten: Wie sind die Ordner für die Datenspeicher auf dem Server selbst strukturiert? Oder anders formuliert: Wie sieht der Ordnernamespace (die Hierarchie) aus? Welche Ordner sind freigegeben? Wie wird diese physische Struktur der Datenspeicher für Benutzer und Administratoren dargestellt? 190 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Zwischen dem physischen Namespace der Datenspeicher auf den Plattenlaufwerken des Servers, den Freigaben, die angelegt werden, und dem logischen Namespace in der Darstellung für Benutzer und Administratoren kann es durchaus einen Unterschied geben. Um diese Fragen beantworten zu können, müssen Sie auch die folgenden beherrschen: Welche NTFS-Berechtigungen müssen vergeben werden? Welche SMB-Einstellungen müssen eingerichtet werden? Welche Kontingente werden zugewiesen? Welche Ordner legen die Administratoren für die Benutzer an, welche richtet Windows automatisch ein? Erstellen des Stammordners für den Benutzerdatenspeicher Zuerst müssen Sie festlegen, wie die serverbasierten Datenspeicher für Benutzerdaten und -einstellungen strukturiert sein sollen. Wir beginnen am oberen Ende des physischen Namespace des UDS-Servers: mit dem Stammordner für den Benutzerdatenspeicher (dem Ordner Benutzer in Abbildung 3.1), von dem mindestens ein Exemplar vorhanden sein muss. Legen Sie ihn auf dem Laufwerk C:\ des Servers an (auf dem das Betriebssystem installiert ist), sollten sie einen anderen Namen als Benutzer verwenden, weil dieser Ordner dort für die lokalen Benutzerprofile auf dem System reserviert bleiben sollte. Ihr Server hat hoffentlich ein eigenes Datenlaufwerk, auf dem Sie einen Ordner Benutzer unter Beibehaltung dieses Namens einrichten können. Wir beginnen mit der Sicherung dieses Ordners und betrachten anschließend, welche Faktoren bestimmen, wie viele Stammordner für Benutzerdatenspeicher Sie auf dem UDS-Server brauchen. Gewähren der geringsten Berechtigungen für den Stammordner Sie sollten der Stammordner für Benutzerdatenspeicher (Benutzer in Abbildung 3.1) mit den geringsten möglichen NTFS-Berechtigungen schützen. Sie unterscheiden sich von denen, die Windows beim Anlegen eines neuen Ordners vergibt. Im nächsten Abschnitt stelle ich ein Skript für die Automatisierung der Anwendung von Berechtigungen bereit, das folgendermaßen aussehen sollte: System: Zulassen: Vollzugriff (Übernehmen für: Diesen Ordner, Unterordner und Dateien) Diese Option ermöglicht Diensten, die unter dem Systemkonto ausgeführt werden, den Zugriff auf den Datenspeicher. Windows erteilt standardmäßig diese Berechtigung. Administratoren: Zulassen: Vollzugriff (Übernehmen für: Diesen Ordner, Unterordner und Dateien) Es ist in Unternehmen üblich, den Administratoren Vollzugriff zu geben. Sie haben das Recht, den Besitz jeder Ressource zu übernehmen und dadurch Zugriff auf alle Ressourcen auf dem Server zu erhalten. Daher kann man behaupten, es habe keinen Sinn, im Zusammenhang mit Benutzern, die bereits zur Administratorengruppe gehören, über »geringste Berechtigung« zu sprechen. Zunächst jedoch muss die Mitgliedschaft in dieser Gruppe erworben werden. Ob für Administratoren in Ihrem Unternehmen der Vollzugriff angemessen ist, sollte sich aus Ihrer Informationssicherheitsrichtlinie ergeben. Ändern Sie das Skript nach Bedarf, um den Umfang der Zugriffsberechtigungen für Administratoren zu reduzieren. ACL_User Data and Settings_Admin: Zulassen: Ordner erstellen; Lesen, Ausführen (Übernehmen für: Nur diesen Ordner) Dieser Zugriffssteuerungseintrag auf Rollenbasis erlaubt der Gruppe ACL_User Data and Settings_Admin, im Stammordner für den Benutzerdatenspeicher Unterordner anzulegen, und gibt ihr Leseberechtigung im Stammordner. Den Gruppennamen legen 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 191 natürlich Sie fest. Um sich an die Empfehlungen in der Lösungssammlung 1, »Rollenbasierte Verwaltung«, zu halten, schlage ich einen Namen folgender Art vor: ACL_User Data and Settings_Admin (Gruppentyp_Gültigkeitsbereich_Befugnis). Es handelt sich nicht um die Gruppe, die bestimmt, ob der Stammordner für Benutzerdatenspeicher auf diesen Server gehört oder nicht – das ist Sache der Serveradministratoren aufgrund ihrer im vorherigen Eintrag festgelegten Berechtigungen. Sobald der Stammordner für Benutzerdatenspeicher vorhanden ist, kann diese Gruppe aber Unterordner für Benutzer darin anlegen. Natürlich ist es möglich, dass eine Rolle (beispielsweise Netzwerktechniker) Mitglied der Gruppen Administratoren und ACL_User Data and Settings_Admin ist. ACL_User Data and Settings_Admin: Zulassen: Vollzugriff (Übernehmen für: Nur Unterordner und Dateien) Dieser rollenbasierte Zugriffssteuerungseintrag erlaubt derselben Gruppe ACL_User Data and Settings_Admin den Vollzugriff auf sämtliche Benutzerdatenspeicher. Mit dieser Berechtigung, die für alle Objekte unterhalb des Stammordners für Benutzerdatenspeicher gilt, nicht jedoch für den Stammordner selbst, hat die Gruppe vollen Zugriff auf die Ordner, die sie mithilfe der vorherigen Berechtigung angelegt hat. ACL_User Data and Settings_Audit: Zulassen: Lesen (Übernehmen für: Diesen Ordner, Unterordner und Dateien) Üblicherweise haben Organisationen eine Gruppe, die Benutzerdaten überwachen (lesen), aber aus Sicherheitsgründen nicht ändern darf. Das wird mit dieser Berechtigung erreicht. Im Augenblick reichen die aufgeführten Berechtigungen aus, wenn Sie als Mitglied der Gruppe ACL_User Data and Settings_Admin vorhaben, die Ordner %username% für die einzelnen Benutzer anzulegen. Anders ausgedrückt: Wenn Sie im Ordner Benutzer die Unterordner für die einzelnen Benutzer anlegen und jedem Benutzer die Berechtigung für seinen Ordner geben, braucht keine Gruppe Benutzer NTFS-Berechtigungen für den Stammordner! Das ist »geringste Berechtigung«, behaupte ich! Standardmäßig erteilt Windows der Gruppe Jeder das Recht Auslassen der durchsuchenden Überprüfung. Damit können die Benutzer über einen oder mehrere übergeordnete Ordner, für die sie keine Berechtigung haben, auf einen UNC-Pfad (Universal Naming Convention) zugreifen, solange sie die Berechtigung für dessen Ziel haben. Wenn die Datenspeicher von James Fine im Stammordner E:\Users\jfine gespeichert sind, er die Berechtigung für den Ordner jfine besitzt und der Ordner Benutzer mit den beschriebenen Berechtigungen versehen und freigegeben ist, funktioniert also alles. Wichtig Möglicherweise klingt das Anlegen eines Unterordners für jeden Benutzer nach viel Arbeit. Wie Sie sehen werden, bringen Probleme im Zusammenhang mit Kontingenten und servergespeicherten Profilen Sie aber sowieso in eine Lage, in der Sie die Unterordner für die einzelnen Benutzer wahrscheinlich vorher anlegen wollen. Die Möglichkeit, den Stammordner für Benutzerdatenspeicher (also den Ordner Benutzer) vollständig zu sperren, ist ein großer Sicherheitsgewinn. Außerdem vereinfacht das vorherige Anlegen der Benutzerordner (%username%) die Vergabe von Kontingenten, wie ich später erläutern werde. Die vorliegende Lösungsgruppe umfasst einige Skripts zur Automatisierung der Einrichtung von Benutzerdatenordnern. Legen Sie diese Ordner nicht im Voraus an, erledigt Windows dies automatisch, wenn sich ein Benutzer anmeldet und die Konfiguration für sein servergespeichertes Profil oder einen umgeleiteten Ordner erhält. Dazu müssen die Zugriffssteuerungseinträge in die folgende Liste im Ordner Benutzer einfügen: <Benutzergruppe>: Zulassen: Lesen, Ausführen (Übernehmen für: Nur diesen Ordner) Diese Berechtigung ist erforderlich, damit Windows die Speicher automatisch anlegt. Die Gruppe, der Sie diese Berechtigung erteilen, sollte nur Benutzer enthalten, die Datenspeicher auf dem Server haben. 192 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Sie können die Gruppe Authentifizierte Benutzer wählen, wenn es sich um den einzigen UDS-Server in Ihrem Unternehmen handelt. Andernfalls legen Sie die Gruppe genauer fest. Die Berechtigung Lesen, Ausführen ermöglicht den Benutzern, ihre Ordner vom Stammordner aus zu sehen. <Benutzergruppe>: Zulassen: Ordner erstellen / Daten anhängen (Übernehmen für: Diesen Ordner, Unterordner; Berechtigungen nur in diesem Container übernehmen) Mit dieser Berechtigung kann Windows automatisch Datenspeicher für Benutzer anlegen. Die Gruppe, der Sie diese Berechtigung geben, sollte nur Benutzer enthalten, die Datenspeicher auf dem Server haben. Sie können die Gruppe Authentifizierte Benutzer wählen, wenn es sich um den einzigen UDS-Server in Ihrem Unternehmen handelt. Andernfalls legen Sie die Gruppe genauer fest. Wird die Berechtigung Ordner erstellen / Daten anhängen einem Ordner zugewiesen, ist es möglich, Unterordner anzulegen. Mit den geerbten Einstellungen Übernehmen für: Diesen Ordner, Unterordner und Berechtigungen nur in diesem Container übernehmen haben wir Windows ermächtigt, im Auftrag des Benutzers einen Ordner erster Ebene (%username%) und weitere untergeordnete Ordner (Dokumente, Desktop, Profil) anzulegen. Ersteller-Besitzer: Zulassen: Vollzugriff (Übernehmen für: Nur Unterordner und Dateien) Dieser Zugriffssteuerungseintrag erstellt eine Berechtigungsvorlage für den Benutzer, der eine Datei oder einen Unterordner anlegt. Beim Anlegen der einzelnen Ordner erbt er die Berechtigung des Erstellers und Besitzers des jeweiligen Ordners (Vollzugriff). Erstellen von Berechtigungen für den Stammdatenordner mit UDS_DataRoot_ACL.bat Diese Berechtigungen klingen kompliziert, nicht wahr? Es ist tatsächlich ein wenig kompliziert, sie in der Benutzerschnittstelle einzurichten, insbesondere, was die Vererbung betrifft. Es klingt, als wäre ein Skript hier ganz günstig. Im Ordner Scripts des Begleitmediums finden Sie das Skript UDS_DataRoot_ACL.bat, das einem Stammordner für Benutzerdatenspeicher die gerade beschriebenen Berechtigungen zuweist. Rufen Sie es mit einem Parameter auf, der den Pfad zum Stammordner für Benutzerdatenspeicher angibt – beispielsweise folgendermaßen: UDS_DataRoot_ACL.bat E:\Users Führen Sie es als Administrator des Servers aus. Hier das Listing: UDS_DataRoot_ACL.bat @echo off :: KONFIGURATION :: Definieren von Gruppen, die Berechtigungen erhalten Set GRP_ADMIN="ACL_User Data and Settings_Admin" Set GRP_USERS="Authenticated Users" Set GRP_AUDIT="ACL_User Data and Settings_Audit" :: Prüfung, ob Nutzung angefordert oder erforderlich ist if "%1"=="?" goto usage if "%1"=="/?" goto usage if "%1"=="" goto usage Set DIRA="%1" cls :: Anlegen des Ordners if not exist %DIRA% md %DIRA% :: Zurücksetzen des Ordners, um den expliziten Zugriffssteuerungseintrag 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 193 :: für den Benutzer loszuwerden, der das Skript als Administrator ausführt: icacls %DIRA% /reset 1>NUL :: Versuch, die Vererbung mit icacls zu entfernen :: Setzt die Version von icacls.exe voraus, die zu :: Windows Vista SP1 oder Windows Server 2008 gehört :: Anlegen eines Flags, das anzeigt, ob es geklappt hat set manualinherit=0 icacls %DIRA% /inheritance:r 1>NUL 2>NUL if errorlevel==1 set manualinherit=1 :: Zuweisen von Berechtigungen an den Ordner :: KONFIGURATION :: Passen Sie diese Zeilen Zeilen an Ihre Sicherheitsrichtlinie an :: System: Vollzugriff (Übernehmen für: Diesen Ordner, Unterordner und Dateien icacls %DIRA% /grant SYSTEM:(OI)(CI)(F) 1>NUL :: Administratoren: Vollzugriff icacls %DIRA% /grant Administrators:(OI)(CI)(F) 1>NUL :: Gewähren des Vollzugriffs für die Gruppe, die die Benutzerdatenordner :: administriert, außerdem der Berechtigung zum Lesen und Anlegen von Ordnern, ::damit sie die Unterordner der ersten Ebene (%%username%%) unter dem Benutzerdatenordner ::anlegen kann icacls %DIRA% /grant %GRP_ADMIN%:(OI)(CI)(IO)(F) 1>NUL icacls %DIRA% /grant %GRP_ADMIN%:(NP)(RX,AD) 1>NUL :: Erteilen der Leseberechtigung für eine Gruppe, die die Sicherheitsüberwachung durchführt icacls %DIRA% /grant %GRP_AUDIT%:(OI)(CI)(RX) 1>NUL :: Wenn Sie für jeden Benutzer Unterordner unterhalb des Stammordners :: für Benutzerdaten bereitstellen, hat jeder Benutzer einen Ordner, :: BEVOR er ein servergespeichertes Profil hat oder die Ordnerumleitungsrichtlinie :: angewendet wird, und braucht keine Berechtigungen für den Stammordner :: für Benutzerdatenspeicher, sondern nur für den eigenen Ordner. :: Soll Windows jedoch die Ordner für die Benutzer anlegen, :: rufen Sie das Skript mit AddUsers auf. if not "%2"=="AddUsers" goto complete icacls %DIRA% /grant %GRP_USERS%:(NP)(RX) 1>NUL icacls %DIRA% /grant %GRP_USERS%:(CI)(NP)(AD) 1>NUL icacls %DIRA% /grant "CREATOR OWNER":(OI)(CI)(OI)(F) 1>NUL :complete if %manualinherit%==1 goto:fixinherit echo Permissioning of %1 complete. echo. echo Resulting permissions for visual confirmation: icacls %DIRA% echo. goto:eof :fixinherit 194 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen :: Skript konnte die Vererbung nicht mit cacls entfernen :: Aufforderung an den Benutzer, es manuell zu tun echo Unable to remove inheritance using icacls.exe. echo. echo Remove inheritance manually. echo ---------------------------echo Open the security properties for %DIRA% echo and click the Advanced button. On the Permissions tab, echo deselect the check box that allows inheritance from the parent. echo When prompted to Copy or Remove inherited permissions, echo choose REMOVE. echo. echo Then return to this command prompt and pause echo Permissioning of %1 complete. echo. echo Resulting permissions for visual confirmation: icacls %DIRA% echo. goto:eof :: =========================================================================== :: ERLÄUTERUNG DER NUTZUNG :: =========================================================================== :usage :: see UDS_DataRoot_ACL.bat for remainder of script Das Skript gibt die Nutzung an, wenn es ohne Ordnernamen oder mit einer Hilfeoption aufgerufen wird, entweder ? oder /?. Der Nutzungsblock steht am Ende des Skripts und ist im Listing nicht abgedruckt. Sie finden ihn aber auf dem Begleitmedium. Das Skript weist drei Variablen für die Gruppennamen zu, denen später Administrator-, Benutzer- und Überwachungsrechte eingeräumt werden. Fügen Sie in die drei Set-Zeilen die Namen Ihrer entsprechenden Gruppen ein. Anschließend weist es den Pfad, den Sie in der Befehlszeile angegeben haben, der Variablen DIRA zu. Danach legt es den Ordner an, wenn er noch nicht vorhanden ist, und führt icacls mit der Option /reset aus, um die Zugriffssteuerungsliste für den Ordner auf den Standardwert des Ordners zurückzusetzen. Dadurch werden alle expliziten Berechtigungen entfernt, die dem Ordner zugewiesen wurden, beispielsweise die Berechtigungen des Benutzers, der den Ordner angelegt hat. Dann versucht das Skript, icacls mit der Option /inheritance auszuführen, um die Vererbung zu löschen. Da diese Option nur in Windows Server 2008 und Windows Vista SP1 zur Verfügung steht, prüft das Skript, ob der Befehl gescheitert ist. In diesem Fall informiert es Sie, dass Sie die betreffende Aufgabe manuell erledigen müssen. Dazu öffnen Sie das Dialogfeld Erweiterte Sicherheitseinstellungen für den Stammordner der Benutzerdatenspeicher und deaktivieren das Kontrollkästchen, das die Vererbung von übergeordneten Ordnern zulässt. Auf die Frage, ob Sie die geerbten Berechtigungen kopieren oder entfernen wollen, klicken Sie auf Entfernen. 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 195 Anschließend führt das Skript icacls aus, um sämtliche Berechtigungen zu übernehmen. Dies geschieht in genau der Reihenfolge, in der sie weiter vorn besprochen wurden, sodass Sie die Erörterung den von icacls verwendeten Berechtigungsparametern leicht zuordnen können. Wenn Sie die einzelnen %username%-Ordner unterhalb des Stammordners für Benutzerdatenspeicher bereitstellen, benötigen die Benutzer keine Berechtigung für den Stammordner selbst. Erstellen Sie die Ordner nicht selbst, sondern lassen Windows dies automatisch tun, rufen Sie das Skript mit der Option AddUsers auf, damit es der Benutzergruppe, die mit der Variablen GRP_USERS bezeichnet wird, und dem Ersteller und Besitzer die benötigten Berechtigungen erteilt. Anpassen des physischen Namespace an Verwaltungsanforderungen wie Kontingente Möglicherweise wirkt es merkwürdig, dass wir bisher nur den Stammordner für Benutzerdatenspeicher (Benutzer) angelegt haben und bereits über Kontingente sprechen. Aber dies ist der richtige Zeitpunkt, weil Sie beim Lesen der Produktdokumentation den Eindruck bekommen, dass Sie nichts weiter zu tun brauchen, als automatisch eine Kontingentvorlage auf den Stammordner anzuwenden, und alles ist in bester Ordnung. Aber nicht so schnell! Da wir schon in der Lösungsgruppe 2 mit Kontingenten zu tun hatten, wiederholen wir einfach einige grundlegende Tatsachen zu dieser Einrichtung in Windows Server 2003 R2 und Windows Server 2008. Kontingente werden jetzt auf Ordnerbasis vergeben, nicht mehr auf Datenträgerbasis. Früher galten sie für einen Benutzer, und anhand des Dateiattributs Besitzer ließ sich feststellen, ob ein Benutzer sein eingerichtetes Kontingent überschritten hatte. Jetzt legen die Kontingente unabhängig vom Ersteller der Daten eine Maximalgröße für den Ordner fest. Das neue Modell ist für mehr Geschäftssituationen sinnvoll als das alte. Im Kontext eines UDS-Szenarios ist es vollkommen in Ordnung zu sagen: »Ein Benutzer darf x GB Daten für die tägliche Nutzung bereithalten und y GB für Archive, aber das Benutzerprofil begrenzen wir nicht – so gerät die Synchronisierung des Benutzerprofils nicht in Schwierigkeiten.« Wahrscheinlich wollen Sie genau dies – wenn nicht jetzt, dann irgendwann später. Sind Sie sicher, dass Sie nie Kontingente verwenden werden, können Sie diese Erörterung überspringen. Aber wer kann schon »nie« sagen? Die Möglichkeit von Kontingenten in der Zukunft hat erheblichen Einfluss darauf, wie Sie Ihre Datenspeicher jetzt strukturieren. Windows Server 2003 R2 brachte enorme Verbesserungen für den Umgang mit Kontingenten. Erstens können Kontingente mehrere Schwellenwerte haben, sodass beim Erreichen bestimmter Kapazitätsgrenzen Warnmeldungen per E-Mail gesendet, Einträge im Ereignisprotokoll vorgenommen, Berichte erstellt oder Befehle ausgeführt werden können. All diese Eigenschaften lassen sich in Kontingentvorlagen festhalten. So können Sie eine Vorlage definieren, die Folgendes besagt: »Die Benutzer können die folgende Menge Speicherplatz verwenden. Nähern Sie sich dieser Grenze oder erreichen sie sie, geschieht Folgendes ...« Vorlagen lassen sich auf mehrere Ordner anwenden, und wenn Sie (meine Lieblingsfunktion) die Vorlage später ändern, ändert sie das Kontingent für alle Ordner, auf die Sie sie jemals angewendet haben! Bekommen Sie zusätzliche Speicherkapazität und beschließen, dass jeder Benutzer noch weitere 5 GB haben kann, nehmen Sie eine Änderung an der Vorlage vor, und das war's! Toll! 196 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Gemeinsames Verwalten der Kontingente für die Ordner Desktop und Dokumente Werfen Sie einen Blick auf Ihre Datenspeicher und überlegen Sie, wo Sie später einmal Kontingente verwenden wollen. Zuerst fallen Ihnen sicher die Ordner Desktop und Dokumente ein. Die meisten Organisationen wollen festlegen, wie viele Daten die Benutzer auf Netzwerkservern ablegen. Dies ist die erste Stelle, an der das Kontingentmodell von Microsoft für uns nicht funktioniert. Desktop und Dokumente sind getrennte Ordner. Wollen Sie den einen mit einem Kontingent belegen, den anderen aber nicht? Teilen Sie ihnen jeweils ein eigenes Kontingent zu? Wie entscheiden Sie, wie viel Speicherplatz der Ordner Desktop und wie viel der Ordner Dokumente eines Benutzers bekommt? Sie sehen, dass es ein bisschen schwierig wird. Wahrscheinlich möchten Sie die beiden Ordner als Unterordner eines gemeinsamen Ordners einrichten. Auf diese Weise können Sie dem übergeordneten Ordner ein Kontingent zuweisen, das die Kapazität für die beiden Unterordner gemeinsam verwaltet. Dann kann der Benutzer selbst entscheiden, wie viel er in jedem Datenspeicher ablegt. In Abbildung 3.2 sehen Sie ein Beispiel dafür. Abbildung 3.2 Die Ordner Desktop und Dokumente sind als Unterordner von %username% eingerichtet, sodass Sie %username% ein Kontingent zuweisen können Erstellen von Kontingentvorlagen mit Reserven Contoso Ltd. hat beschlossen, jedem Benutzer 1 GB Speicherplatz in den Ordnern Desktop und Dokumente zuzuweisen. Ich spare mir die Erörterung, ob das zu viel oder zu wenig ist – Sie müssen in Ihrer Organisation die aktuelle und die gewünschte Nutzung analysieren. Die Benutzer bekommen E-Mails, wenn sie sich dieser Grenze nähern, und die Administratoren werden durch Einträge im Ereignisprotokoll gewarnt, wenn Benutzer kurz vor der Kapazitätsgrenze stehen. Bei einem harten Kontingent wäre ein Benutzer nicht mehr in der Lage, etwas zu speichern, wenn er die 100%-Marke erreicht hat. Die ITAbteilung von Contoso hat jedoch entschieden, den Benutzern (und damit dem Helpdesk) ein wenig Spielraum zu geben, indem sie einmalig eine automatische Erweiterung um 100 MB bekommen, die von einer ernst gehaltenen E-Mail begleitet wird. Bewegt sich der Benutzer weiter auf 1.100 MB zu, nimmt die IT-Abteilung eine Schluss-mit-lustig-Haltung ein und verhindert weitere Zuweisungen. Dieses Modell lässt sich mit einer individuellen Kontingentvorlage leicht umsetzen. Jede neu erstellte Vorlage kann von einer bestehenden kopiert werden. Windows Server 2008 bietet zwei verschiedene: »200 MB-Grenze mit 50 MB Erweiterung« und »250 MB erweiterte Grenze«. Kopieren Sie einfach diese beiden Vorlagen und ändern Sie ihre Eigenschaften entsprechend den Gegebenheiten Ihrer Organisation. Die beiden Contoso-Vorlagen heißen 1 GB User Data Storage Limit with 100 MB Extension bzw. 1.1 GB Extended User Data Storage Limit. Der eigentliche Zauber des Modells tritt in der ersten Vorlage zu Tage – der mit der Erweiterung. Wird bei dieser Vorlage die 100%-Schwelle erreicht, wird der Befehl dirquota.exe ausgeführt, das Befehlszeilen-Verwaltungsprogramm für Kontingente. Dabei geht es insbesondere um den Befehl, den Sie in Abbildung 3.3 sehen: %windir%\system32\dirquota.exe quota modify /path:[Quota Path] /sourcetemplate:"1.1 GB Extended User Data Storage Limit" 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 197 Abbildung 3.3 Eine Kontingentvorlage wendet mit dirquota eine neue Vorlage an Der Befehl dirquota quota modify ändert das einem Ordner zugewiesene Kontingent. Der Ordner wird durch [Quota Path] dargestellt, eine Variable, die der Server in Echtzeit durch den Pfad ersetzt, der die Kapazität erreicht hat. Der Parameter /sourcetemplate enthält den Namen der Vorlage, die nun gelten soll. Das ist ein geschickter Ansatz, und wir kommen noch auf die Idee zurück, Vorlagen auf diese Weise zu verketten. Automatische Anwendung von Kontingentvorlagen Nun kommt das, von dem jeder gern spricht (was aber möglicherweise nicht so toll ist, wie man allgemein glaubt): die automatische Anwendung von Vorlagen. Dahinter steht die Vorstellung, im Stammordner für Benutzerdaten (Benutzer) ein Kontingent einzurichten, das beim Anlegen eines neuen Unterordners automatisch ein Kontingent zuweist. Diese Konfiguration sehen Sie in Abbildung 3.4. Geben Sie den Pfad des Stammordners (E:\Users) und die anzuwendende Vorlage an (1 GB User Data Storage Limit with 100 MB Extension) und achten Sie darauf, dass die Option Auto Apply Template And Create Quotas On Existing And New Subfolders aktiviert ist. Wie ich bereits erwähnt habe und wie Sie wahrscheinlich wissen, legt Windows die erforderlichen Unterordner an, wenn Sie für einen Benutzer servergespeicherte Profile oder umgeleitete Ordner einrichten – beispielsweise \\<Namespace>\<Pfad>\%username%\[Documents | Desktop | Profile | usw.]. Wenn es nur den Ordner E:\Users gibt, der als Users$ freigegeben ist, und James Fines Ordner Dokumente und Desktop auf \\server01\users$\jfine\Documents und \Desktop umgeleitet werden, sobald er sich anmeldet, legt Windows den Ordner jfine und die Unterordner Dokumente und Desktop an. Die 1-GB-Kontingentvorlage wird automatisch auf den Ordner jfine angewendet. Die beiden Ordner Dokumente und Desktop unterliegen dieser gemeinsamen Speichergrenze. 198 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abbildung 3.4 Automatische Anwendung einer Kontingentvorlage Keine Kontingente für Speicher von servergespeicherten Profilen Neben den Ordnern Dokumente und Desktop ist auch der Ordner Anwendungsdaten eines Benutzers ein wesentlicher Datenspeicher. Diese Ordnerstruktur verbleibt wahrscheinlich aus Gründen, die in späteren Lösungsgruppen behandelt werden, im Benutzerprofil. Außerdem enthält das servergespeicherte Profil seine Registrierungsdatei, Ntuser.dat, sowie wahrscheinlich den Ordner Favoriten. Diese Ordner belegen zusammen nicht besonders viel Platz. Ich benutze Windows Vista sehr ausgiebig, wobei meine Ordner AppData\Roaming, Favoriten und Ntuser.dat insgesamt weniger als 40 MB umfassen. Dafür lohnt sich keine Verwaltung. Außerdem können Kontingentgrenzen irgendeiner Art für einen Ordner, der die Registrierung eines servergespeicherten Profils enthält, dazu führen, dass die Datei Ntuser.dat nicht korrekt gespeichert wird, wenn der Ordner das Kontingent erreicht. Ich bin der Meinung, harte Kontingente stellen für Ordner mit servergespeicherten Profilen ein zu hohes Risiko dar. Sie könnten sich jetzt natürlich für weiche Kontingente entscheiden, mit denen Sie Schwellen mit E-Mails, Einträgen im Ereignisprotokoll, Berichten und Befehlen verknüpfen können – genau wie harte Kontingente. Sie halten den Benutzer zwar nicht davon ab, Daten über die 100%-Schwelle hinaus zu speichern, können Ihnen aber dabei helfen, die Nutzung zu überwachen und auf ungewöhnliche Situationen zu achten. Ich meine jedoch, solange Ihre servergespeicherten Profile keine Benutzerdatenspeicher enthalten, sondern nur Benutzereinstellungen, sind Sie besser damit bedient, Ihre Energie auf die Verwaltung größerer und problemträchtigerer Speicher zu verwenden als auf das servergespeicherte Profil. 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 199 Das Problem der Platzierung von Profilen und anderen Datenspeichern Ich habe Ihnen vorgeschlagen, die Ordner Desktop und Dokumente als Unterordner eines Ordners anzulegen, dem nur ein Kontingent zugewiesen ist, sodass die Speicherbelegung des Benutzers in diesen beiden Ordnern einer gemeinsamen Grenze unterliegt. Außerdem habe ich vorgeschlagen, als übergeordneten Ordner %username% zu wählen (was die Einrichtung der Ordnerumleitung unkompliziert macht). Was geschieht nun aber, wenn wir das Benutzerprofil im selben physischen Ordnernamespace unterbringen wollen? Oder wenn unsere Ordner aussehen sollen wie die in Abbildung 3.5? Abbildung 3.5 Die Ordner Dokumente, Desktop und Profil sind Unterordner von %username%. Diese Struktur kommt häufig vor, weist aber ein Problem auf. Wenn das Kontingent für den Ordner %username% gilt, unterliegt der Ordner Profil ebenfalls dem Kontingent. Es kann also dazu kommen, dass die Profildaten nicht gespeichert werden können, was wirklich problematisch wäre! Stellen Sie sich nun noch vor, dass es wie in Abbildung 3.6 einen Ordner Sicherungen gibt und für einen Benutzer, der mit Windows Vista und Windows XP arbeitet, zwei Benutzerprofilordner. Jetzt lässt sich die entscheidende Frage leichter formulieren: Wie verwalten wir die kombinierten Kontingente für Desktop und Dokumente, wenn es auf derselben Ebene des physischen Namespace noch weitere Ordner gibt? Abbildung 3.6 Der Namespace für Benutzerdaten und -einstellungen Wichtig Die Funktionalität, die automatisch eine Vorlage aus dem Ordner Benutzer auf die %username%Ordner anwendet, passt nicht zu einem natürlichen Ordnernamespace für Benutzerdaten und -einstellungen, in dem ein einziger Ordner für einen Benutzer dessen sämtliche Datenspeicher enthält. Lösung 1: Getrennte physische Namespaces für unterschiedliche Klassen von Datenspeichern Jetzt kommt das Konzept der »Klassen von Datenspeichern« zum ersten Mal zum Tragen. In Lösung 3.2 habe ich von Datenklassen als Elementen mit gemeinsamen Anforderungen und deshalb gemeinsamen Verwaltungswerkzeugen und -prozessen gesprochen. E-Mail-Archive bilden eine Datenklasse, Musiksammlungen von Benutzern eine andere. In dieser Lösung erweitere ich das Konzept auf Klassen 200 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen von Datenspeichern – ganzen Speichern von Daten mit gemeinsamen Anforderungen und daher ähnlicher Verwaltung. Ein Beispiel: Die beiden Benutzerdatenspeicher – Desktop und Dokumente – enthalten ähnliche Datenklassen, insbesondere Dokumente, auf die der Benutzer direkt zugreift. Diese beiden Benutzerdatenspeicher sind in getrennten physischen Datenspeichern (getrennten Ordnern) auf einem Server untergebracht, werden aber wahrscheinlich gleichartig verwaltet – beispielsweise durch Umleitung. Aus diesem Grund sage ich, dass sie zu einer Klasse (umgeleiteter) Speicher gehören. Wir haben hier ein sehr deutliches Beispiel für das Konzept: Die eine Klasse von Datenspeichern enthält Desktop und Dokumente und unterliegt einer Kontingentvorlage mit einem einzigen Kontingent. Eine andere Klasse von Datenspeichern (Profile) wird anders verwaltet, nämlich ohne Kontingente. Wollen Sie die Funktionalität der automatischen Anwendung von Kontingentvorlagen einsetzen, müssen Sie die Ordner der obersten Ebene für die betreffenden Namespaces trennen, wie Abbildung 3.7 zeigt. Die Ordner der obersten Ebene, Benutzer und Sicherungen, sind für die automatische Anwendung geeigneter Kontingentvorlagen auf jeden Ordner in %username% eingerichtet. Der Ordner Profile auf der obersten Ebene sieht keine Kontingente vor oder wendet nur eine Vorlage mit einem weichen Kontingent an, das eine Speicherung über die 100%-Schwelle hinaus nicht verhindert. Abbildung 3.7 Getrennte Namespaces für Klassen von Datenspeichern, die unterschiedlichen Kontingenten unterliegen Wie viele Unterordner Sie einrichten, hängt davon ab, wie viele Datenspeicher zu den einzelnen Datenspeicherklassen gehören. Benutzerdaten liegen beispielsweise in zwei Datenspeichern: in Desktop und Dokumente. Sie müssen Unterordner desselben Ordners sein, damit die Anwendung von Kontingenten mit der Automatikfunktion unterstützt wird. Wenn dagegen der Ordner Sicherung der einzige Datenspeicher für einen Benutzer im Namespace Sicherungen ist, können Sie ohne den Unterordner auskommen, oder? Das sehen Sie in Abbildung 3.7 rechts. Besteht die Möglichkeit, dass sich Benutzer mit einem servergespeicherten Profil während ihrer Zugehörigkeit zu Ihrem Unternehmen bei Windows Vista- und Windows XP-Rechnern anmelden, sollten Sie so klug sein, die beiden separaten Profile einzuplanen, die für die beiden Betriebssysteme erforderlich sind. Der Namespace kann in Form zweier getrennter Unterordner von %username% bereitgestellt werden, wie Sie in Abbildung 3.7 links sehen, wo die Profilpfadeigenschaft von Benutzer auf \\<Namespace>\<Pfad>\%username%\Profile gesetzt ist. Alternativ können Sie die beiden Profile in Benutzer in Form von zwei Ordnern mit Benutzernamen anlegen: %username% und %username%.v2, was Sie in der Abbildung rechts sehen. Die Profilpfadeigenschaft des Benutzerobjekts ist auf \\<Namespace>\ <Pfad>\%username% gesetzt. In beiden Fällen fügt Windows Vista die Erweiterung .V2 automatisch an. Sie brauchen dies im Profilpfad des Benutzers nicht selbst zu tun und sollten es auch nicht. 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 201 Die Vorteile Der wesentliche Vorteil der Verwendung separater physischer Namespaces für die verschiedenen Klassen von Datenspeichern besteht darin, dass Sie automatisierte Verwaltungsfunktionen nutzen können, in diesem Zusammenhang also die Funktion der automatischen Anwendung von Kontingentvorlagen. Wahrscheinlich gibt es noch weitere Verwaltungsaufgaben, die sich leichter erledigen lassen, wenn alle Daten mit ähnlicher Verwaltung an einer Stelle liegen. Das scheint sinnvoll, nicht wahr? Fassen Sie ähnlich verwaltete Dinge zusammen, dann können Sie sie leichter handhaben. Dateiprüfungen, in denen Sie festlegen können, welche Dateitypen die Benutzer in einem bestimmten Ordner ablegen können, werden mithilfe von Vorlagen weitgehend ähnlich wie Kontingente gehandhabt und lassen sich ebenfalls leichter anwenden, wenn Sie Daten mit ähnlicher Verwaltung in Gruppen zusammengefasst haben. Später werden wir noch einen kleineren möglichen Konflikt zwischen servergespeicherten Profilen und Offlinedateien behandeln. Die Unterbringung der Profilspeicher, die kein Zwischenspeichern zulassen sollten, in einem anderen physischen Namespace als dem der umgeleiteten Ordner erleichtert die Lösung dieses Konflikts. Wichtig Die physischen Namespaces in Abbildung 3.7 ermöglichen beide die Nutzung der Funktion zur automatischen Anwendung von Kontingentvorlagen für die einzelnen %username%-Unterordner. Die Verwendung getrennter physischer Namespaces für unterschiedliche Klassen von Datenspeichern vereinfacht deren Verwaltung. Die Nachteile Die Nachteile getrennter physischer Namespaces für unterschiedliche Klassen von Datenspeichern lassen sich in zwei Kategorien unterteilen. Die erste ist kosmetisch. Administratoren mögen die Daten eines Benutzers nicht an unterschiedlichen Stellen haben, wie es in Abbildung 3.7 der Fall ist. Dazu zwei Anmerkungen: Erstens können Sie den physischen Namespace zu einer logischen Sicht von Benutzerdatenspeichern abstrahieren wie in Abbildung 3.8 (die Ihnen allmählich sehr vertraut vorkommen sollte!). Mithilfe von DFS-Namespaces gelangen Sie zu einer gegliederten, rationellen, logischen Sicht – wie auch immer Sie sie nennen möchten – Ihres physischen Namespace. Darüber in Kürze mehr. Den physischen Namespace brauchen Sie nur zu sehen, wenn Sie über Remotedesktop mit dem Server verbunden sind und das Festplattenlaufwerk im Windows Explorer betrachten oder wenn Sie in einen übergeordneten Ordner wie die verborgene Laufwerksfreigabe wechseln (beispielsweise E$) und von dort nach unten gehen. Abbildung 3.8 Der Namespace für Benutzerdaten und -einstellungen Mein zweiter Gedanke zum »Aussehen« unterschiedlicher Namespaces lautet, dass es wesentlich wichtiger ist, die Daten wirkungsvoll verwalten zu können. Ich weiß, dass wir alle gewöhnt sind, die »Daten von Benutzer X« den »Daten von Benutzer Y« gegenüberzustellen. Betrachten Sie jedoch Datenverwaltungsaufgaben – z.B. Sicherheit, Kontingente, Offlinenutzung, Synchronisierung usw. –, so stellen Sie fest, dass es mehr Gemeinsamkeiten über Datenspeichergrenzen hinweg gibt als innerhalb der Datenspeicher eines Benutzers. Anders gesagt: Es ist wahrscheinlicher, dass Sie die Musiksammlungen von Benutzer X und Benutzer Y auf dieselbe Weise verwalten (beispielsweise von Ihrem Server fernhalten) als die unterschiedlichen Datenklassen desselben Benutzers (Sie werden die Musiksammlung von Benutzer X wohl kaum genauso verwalten wie seine E-Mail-Archive). 202 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Langer Rede kurzer Sinn: Wenn Sie sich Sorgen über das Aussehen des physischen Namespace machen, schlage ich Ihnen bei allem Respekt vor, sich davon freizumachen. Die Arbeit mit getrennten Klassen von Datenspeichern bietet eine zweite Herausforderung. Wie legen Sie genau fest, welche Datenspeicher in welcher Klasse untergebracht werden, und wie erreichen Sie das? Was wir bisher aufgezeigt haben, scheint einfach: Desktop und Dokumente als ein Datenspeicher, Profile als weiterer, Sicherungen als dritter. Es wird aber nicht nur drei geben. Was ist mit den E-MailArchiven? Werden sie genauso verwaltet wie Desktop und Dokumente? Oder gehören sie zu Sicherungen? Oder werden sie noch anders gehandhabt? Am Ende können Sie unzählige Datenspeicherklassen haben und damit unzählige Stammordner für diese Klassen. Umgehen der Nachteile DFS-Namespaces helfen Ihnen, den physischen Namespace ausgehend von Datenspeicherklassen als benutzerbasierten logischen Namespace darzustellen. Es gibt keine echte Hilfskonstruktion, die Ihnen hilft, eine neue Datenspeicherklasse auf elegante, einfache Weise hinzuzufügen. Es muss einfach erledigt werden. Lösung 2: Verwalten einzelner Datenspeicher statt Datenspeicherklassen Nun wird es kompliziert, nicht wahr? Sehen wir uns also eine Alternative an. Sie besteht darin, die Datenspeicher eines Benutzers einem einzigen Ordner unterzuordnen, %username%, und sie einzeln zu verwalten. Das Ergebnis sieht dann so aus wie in Abbildung 3.9. Abbildung 3.9 Datenspeicher, die unter %username% verwaltet werden Hier haben wir jetzt deutlich gemacht, dass Desktop und Dokumente in Wirklichkeit Komponenten eines einzigen Speichers für Benutzerdaten sind, indem wir sie zu Unterordnern des Ordners Daten gemacht haben, für den natürlich das gemeinsame Kontingent für die beiden Unterordner gilt. Die Vorund Nachteile dieser Lösung sehen genau umgekehrt aus wie bei Lösung 1. Während wir an dieser Lösung arbeiteten, haben wir erkannt, dass es noch andere Datenspeicher gibt, die Sie möglicherweise auf dem Server ablegen und in die Datenkontingente der Benutzer einbeziehen möchten. Abschließend sieht der alleinige Benutzernamespace eher aus wie in Abbildung 3.10. Abbildung 3.10 Weitere Datenspeicher, die unter %username% verwaltet werden 3.3 Erstellen, Sichern und Verwalten von serverseitigen Benutzerdatenspeichern 203 Die Vorteile Jetzt ist es einfach, die Datenspeicher eines Benutzers im physischen Namespace auf dem Server zu finden und damit zu arbeiten. Außerdem haben Sie keine Probleme mehr mit der Vermehrung der Datenspeicherklassen. Sie können neue Datenspeicher in den alleinigen benutzerbasierten Namespace einfügen. Die Nachteile Sie verlieren jedoch einige der automatisierten Verwaltungsfunktionen, die Regeln als Schutzvorrichtung anwenden. Auf den Ordner %username% wenden Sie außer Sicherheitsberechtigungen nur wenige Regeln an. James' Ordner Dokumente müssen Sie jetzt als besonderen Unterordner seines Ordners behandeln, den gleichnamigen Ordner von Lorrin als besonderen Unterordner ihres Ordners. Abhilfe für die Nachteile Um den Nachteil auszugleichen, dass die Elemente einzeln verwaltet werden müssen, können Sie an der Automatisierung und Vorsorge für ihren Lebenszyklus arbeiten. Meine Empfehlung Im gesamten Verlauf des Buches ist die Rede von Automatisierung und Vorsorge, weil ich dies für den Schlüssel zu produktiver Verwaltung halte. Was vermuten Sie? Ich empfehle die zweite Lösung. Wenn Sie Werkzeuge entwickeln, die die Verwaltung automatisieren, können Sie diese laufend an veränderte Geschäftsanforderungen anpassen. Die integrierten Verwaltungswerkzeuge von Microsoft erlauben Ihnen vielleicht, Kontingentvorlagen auf eine bestimmte Weise automatisch anzuwenden, die heute passt. Bauen Sie Ihr Framework aber um eine Technologie herum, die Sie nicht selbst steuern, stehen Sie auf verlorenem Posten, wenn sich die Technologie ändert oder sich Ihre Unternehmensanforderungen von dem Modell entfernen, das die Technologie unterstützt. Erstellen von Datenspeichern Es gibt viele Gründe, aus denen Sie Speicher für Benutzerdaten und -einstellungen anlegen. Sehen wir uns als erstes Beispiel die Kontingentverwaltung an und erarbeiten eine Lösung, die Benutzerordner mit Berechtigungen, Besitzern und Kontingenten erstellt. Verwenden von UDS_UserFolders_Provision.vbs Im Ordner Scripts des Begleitmediums finden Sie mehrere Skripts, die Ordner für Benutzerdaten bereitstellen. Das ausgefeilteste und damit wahrscheinlich das, das Sie verwenden möchten, ist UDS_UserFolders_Extended_Provision.vbs. Wir gehen von einem bescheideneren Ausgangspunkt aus, nämlich UDS_UserFolders_Provision.vbs, und bauen dieses Skript bis zum Stand des oben genannten aus. Es wird mit einem einzigen Argument aufgerufen: dem Pfad zum Ordner %username%: cscript UDS_UserFolders_Provision.vbs e:\users\Benutzername Das Skript geht davon aus, dass der letzte Ordner im Ordnerpfad ein Benutzername ist und bereits ein Benutzer mit dem entsprechenden Prä-Windows 2000-Anmeldenamen existiert. Es legt alle Unterordner an, die zum Erstellen des in Abbildung 3.9 gezeigten Namespace erforderlich sind. Nebenbei erledigt es noch folgende Dinge: Es wendet ein Kontingent auf den Ordner Daten an, der Desktop und Dokumente enthält. Die Kontingentvorlage muss bereits definiert sein. Es stellt sicher, dass für die Ordner %username% und Profile die Vererbung aktiviert ist, um ein problematisches Verhalten beim Erstellen des Ordners für serverbasierte Profile zu beheben. Dieses Verhalten werden wir später im Rahmen dieser Lösung behandeln. 204 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Es überträgt dem Benutzer den Besitz an der Ordnerstruktur %username%. Da es unter anderen Anmeldedaten als denen des Benutzers ausgeführt wird, ist das Konto Besitzer, das das Skript startet. Deshalb wird das Eigentum ganz am Ende des Skripts an den Benutzer übergeben. Noch einige wichtige Anmerkungen zu diesem Skript: Der Besitz wird dem Benutzer mithilfe von icacls.exe übertagen. Sie müssen das Skript auf einem System mit Windows Server 2008 oder Windows Vista SP1ausführen, weil die Version von icacls.exe auf anderen Plattformen den Befehl /setowner nicht korrekt ausführt. Sie können das Skript über das Netzwerk auf einem Server mit Windows Server 2008 oder Windows Server 2003 ausführen, aber die Anmeldedaten, mit denen Sie es starten, müssen über die Berechtigungen zum Anlegen des angegebenen Ordners sowie den Vollzugriff auf den Ordner und seine Unterordner verfügen. Außerdem benötigen sie das Benutzerrecht zum Wiederherstellen von Dateien und Verzeichnissen, um dem Benutzer den Besitz erfolgreich übertragen zu können. Als Mitglied der Administratorengruppe können Sie das Skript auch direkt auf einem System mit Windows Server 2008 ausführen, wenn Sie lokal angemeldet sind oder Remotedesktop benutzen. Mit einigen Scriptingkenntnissen sollten Sie dem Skript ohne besondere Mühe folgen können. Für jeden Unterordner gibt es einen kurzen Codeblock, der mit einer IF/THEN-Struktur die einzelnen Unterordner anlegt und bei Erfolg die gesamte Verwaltung der Unterordner erledigt. Verwaltungsaufgaben wie das Zuweisen eines Kontingents an den Unterordner Daten werden mit Befehlszeilenwerkzeugen wie dirquota.exe ausgeführt. Hinweis In Lösung 3.5 auf Seite 217 finden Sie ein Skript, das alle Namespaces für einen Benutzer anlegt: die NTFS-Ordner (mit Kontingenten), die SMB-Freigaben und die DFS-Namespaces. Es hebt UDS_UserFolders_Provision.vbs auf die nächste Stufe. Konfigurieren von Dateiprüfungen Falls Ihre Richtlinien zur Informationssicherheit oder IT-Nutzung verbieten, bestimmte Arten von Dateien auf Netzwerkservern abzulegen, können Sie Dateiprüfungen verwenden, die von Windows Server 2003 R2 und Windows Server 2008 unterstützt werden. Sie sind mit einem Ordner verknüpft und legen fest, welche Dateierweiterungen verboten sind und was geschieht, wenn ein Benutzer versucht, eine solche Datei abzulegen. Die Windows-Dokumentation zeigt Ihnen, wie Sie Dateiprüfungen anlegen. Sie ähneln Kontingenten. Genau wie bei diesen können Sie Vorlagen erstellen, die anhand der Dateitypen bestimmen, was ausgelöst werden soll: E-Mail-Meldungen, Berichte, Einträge im Ereignisprotokoll oder Befehle. Diese Vorlagen lassen sich dann auf Ordner anwenden. Außerdem gibt es ein Befehlszeilenwerkzeug namens filescrn.exe, das sowohl den Vorgang als auch die Snap-Ins für die Benutzeroberfläche und die Konsolen verwaltet. Zusammenfassung Wir haben einige Punkte im Zusammenhang mit dem physischen Namespace für Benutzerdatenspeicher auf UDS-Servern berührt, die ich noch einmal besonders herausstellen möchte: Bevor Sie den physischen Namespace anlegen, sollten Sie die Notwendigkeit der Verwaltung von Datenspeichern bedenken. Wollen Sie verschiedene Datenspeicherklassen getrennt in eindeutigen Namespaces unterbringen, wie es Abbildung 3.7 zeigt, oder wollen Sie die Benutzerdatenspeicher in einem benutzerzentrierten Datenspeicher gliedern wie in den Abbildungen 9 und 10? Möglicherweise brauchen Sie mehrere Stammordner für Benutzerdatenspeicher. 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 205 Den Stammordner für Benutzerdatenspeicher (Benutzer) müssen Sie mit den geringstmöglichen Berechtigungen ausstatten, nachdem Sie ihn angelegt haben. Indem Sie mindestens den Ordner %username% anlegen, vermeiden Sie es, Benutzern Berechtigungen für den Ordner Benutzer geben zu müssen – mit dem Recht Auslassen der durchsuchenden Überprüfung können diese ihre %username%-Ordner erreichen. Mit dem Skript UDS_UsersFolder_Provision legen Sie den Ordner %username% und alle Unterordner an. Jeder Benutzer muss die Berechtigung für seinen Ordner %username% bekommen. Insbesondere benötigt er Vollzugriff und sollte Besitzer sein. Servergespeicherte Profile verhalten sich merkwürdig. Zeigt der Profilpfad eines Benutzers auf \\<Namespace>\<Pfad>\%username%\Profile, bevor der Ordner %username% vorhanden ist, legt Windows den Pfad korrekt an, deaktiviert aber die Vererbung für die Ordner und ignoriert die Gruppenrichtlinieneinstellung Sicherheitsgruppe "Administratoren" zu servergespeicherten Profilen hinzufügen. Damit werden die Administratoren vollkommen ausgesperrt. Sie müssen dafür sorgen, dass mindestens der übergeordnete Ordner des Profils (in diesem Fall %username%) angelegt und die Vererbung aktiviert wird und dass der Benutzer Besitzer mit der Berechtigung Vollzugriff ist. Ein weiterer Grund, die Art von Vorsorgeskripts und Tricks zu verwenden, die ich hier vorgestellt habe. Der physische Namespace braucht nicht derjenige zu sein, den Sie nach außen hin anzeigen. In der nächsten Lösung sollen noch ein SMB- und ein DFS-Namespace angelegt werden. Aus der Mischung all dieser Variablen ergibt sich dann ein empfohlener physischer Namespace folgender Art für Datenspeicher: <Volume>:\Users\%username%[\<Datenspeicherklasse>]\<Datenspeicher>, beispielsweise E:\Users\jfine\Profile oder E:\Users\jfine\Data\Documents. Der Bestandteil Datenspeicherklasse des Namespace ist besonders für die Ordner Desktop und Dokumente erforderlich, die im Allgemeinen mit einem einzigen gemeinsamen Kontingent verwaltet werden müssen. 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher Die Lösung im Überblick Typ Anleitung und Skripts Funktionen und Werkzeuge DFS-Namespaces, freigegebene Ordner Zusammenfassung Entwerfen eines SMB- und eines DFS-Namespace, der den Anforderungen der Organisation an Benutzerdaten und -einstellungen entspricht, und Automatisieren des Anlegens von Namespaces für die einzelnen Benutzer Vorteile Erkennen und dadurch Vermeiden häufiger Entwurfsfehler, die die Kosten für die Unterstützung einer agilen Umgebung in die Höhe treiben können 206 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Einführung In der vorangegangenen Lösung haben wir den Namespace für Benutzerdatenspeicher auf dem Server eingerichtet – also den physischen Namespace für NTFS-Ordner. Wir haben erfahren, dass es erforderlich sein kann, Benutzerdatenspeicher in getrennten Namespaces unterzubringen, um die Verwaltung auf der Ebene der NTFS-Ordner zu vereinfachen, beispielsweise die von Kontingenten. Außerdem haben wir erfahren, dass die Alternative darin besteht, die Bereitstellung der Datenspeicher eines Benutzers zu automatisieren, damit wir sie trotz Beibehaltung eines benutzerzentrierten physischen Namespace angemessen verwalten können. Daraus ergab sich ein physischer Namespace für Benutzerdatenspeicher, dessen Name etwa folgendermaßen lautet: <volume:>\Users\%username%[\<datenspeicherklasse>]\<datenspeicher> – beispielsweise E:\Users\jfine\Profile oder E:\Users\jfine\Data\Documents. Nun gehen wir eine Ebene »nach oben« zum SMB-Namespace, um festzustellen, welche Ordner mit welchen SMB-Einstellungen freigegeben werden müssen, und noch »höher« zum DFS-Namespace, der es ermöglicht, den physischen und den SMB-Namespace logisch so darzustellen, wie es unseren Unternehmensanforderungen entspricht. Erstellen des SMB-Namespace für den Benutzerdatenund -einstellungsspeicher Die meisten Organisationen legen für den Stammordner des Benutzerdatenspeichers eine einzige SMB-Freigabe an, die häufig einen einfachen Namen wie Users trägt. Da Clients seit Windows 2000 Laufwerke unterhalb einer Freigabe zuordnen und verbinden können, besteht keine Notwendigkeit, die Ordner der einzelnen Benutzer freizugeben, wie unter Windows NT 4.0. Ich empfehle Ihnen, die Benutzerfreigabe durch Anhängen eines Dollarzeichens ($) an den Freigabenamen zu verbergen – beispielsweise Users$. Eine Freigabe reicht jedoch nicht aus. Wie wir in Lösungsgruppe 2 erörtert haben, steuern die SMBFreigaben die Verbindungseinstellungen, deren wichtigste die für die Zwischenspeicherung sind. Wahrscheinlich möchten Sie zulassen, dass Daten und Einstellungen in umgeleiteten Ordnern (beispielsweise Desktop und Dokumente) für die Offlinenutzung zwischengespeichert werden. Ich gehe jedoch davon aus, dass die Sicherungskopie der lokalen Dateien von Benutzern (der Ordner Sicherungen) nicht zwischengespeichert werden soll, weil damit der Zweck der lokalen Dateien vollkommen unterlaufen wird. Außerdem ist es sehr wichtig, dass die Dateien in der Serverkopie des servergespeicherten Benutzerprofils niemals offline geschaltet werden, weil die Synchronisierungsmechanismen von Offlinedateien und servergespeicherten Profilen gegenseitig zu Problemen führen können. Die unerwünschte Wechselwirkung zwischen servergespeicherten Profilen und Offlinedateien In Lösung 3.6 werden Offlinedateien ausführlich behandelt. Mit dieser Funktion bekommen Sie die Möglichkeit, eine Kopie von Dateien aus einem Netzwerknamespace (SMB oder DFS) zwischenzuspeichern. Diese Funktion ist für Benutzerdatenspeicher wie Desktop und Dokumente sehr sinnvoll und funktioniert gut, wenn sie korrekt entworfen und implementiert ist. Standardmäßig kann der Benutzer jede beliebige Datei auf jeder beliebigen Netzwerkfreigabe auf einem Windows-Server anheften (offline verfügbar machen). Leider gibt es bestimmte Datenspeicher, die nicht offline verfügbar sein sollten, darunter die Serverkopie des servergespeicherten Profils eines Benutzers. Da Profile mit einem anderen Mechanismus synchronisiert werden als Offlinedateien, kann es zu Konflikten kommen, wenn ein System Teile des 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 207 Profils als Offlinedateien zwischenspeichert. Ich bezeichne dies als »Problem durch Zwischenspeichern des servergespeicherten Profils«. Weitere Informationen dazu finden Sie in den drei Knowledge-Base-Artikeln 842007, 287566 und 325838 auf der Microsoft-Supportseite (http://support.microsoft.com). Wie der letzte erläutert, hält Microsoft dieses Problem für bedeutend genug, dass Windows-Clients bei jeder Anmeldung im Ereignisprotokoll eine Warnung hinterlassen (Ereignis-ID 1525), wenn für die Freigabe mit den servergespeicherten Profilen die Offlinezwischenspeicherung aktiviert ist. Entwerfen eines SMB-Namespace ohne zwischengespeicherte Kopie Da Sie das Zwischenspeichern nur auf Freigabeebene deaktivieren können und mehr als eine Konfiguration implementieren müssen, benötigen Sie mehrere freigegebene SMB-Ordner. Sie sollten für jede der folgenden Datenspeicherklassen einen einrichten: Profile, umgeleitete Ordner und Sicherungen. Die Profile können Sie auch in einem vollkommen abgetrennten physischen Namespace unterbringen wie in Abbildung 3.7, aber erforderlich ist es nicht. Glücklicherweise können Sie einen NTFS-Ordner mehrfach freigeben, sodass der Stammordner für Benutzerdatenspeicher (Benutzer) mit der passenden Konfiguration für jede Freigabe versehen werden kann. Anders ausgedrückt: Wir geben ein und denselben physischen Ordner (beispielsweise E:\Users) als Users$ (mit Zwischenspeicher), Profiles$ (ohne Zwischenspeicher) und Backups$ (ohne Zwischenspeicher) frei. Erstellen von SMB-Freigaben als Stamm des Benutzerdatenspeichers Das Skript UDS_DataRoot_Share.bat im Ordner Scripts des Begleitmediums legt die gerade erläuterten SMB-Freigaben an. Rufen Sie es mit einem Parameter auf, der den Pfad zum Stammordner für Benutzerdatenspeicher angibt – beispielsweise folgendermaßen: UDS_DataRoot_Share.bat E:\Users Das vollständige Skript folgt gleich. Ersetzen Sie die Namen in den Set-Anweisungen einfach durch Ihre gewünschten Freigabenamen: UDS_DataRoot_Share.bat @echo off :: if if if Set Set Set Set Prüfen, ob die Nutzung angefordert oder erforderlich ist "%1"=="?" goto usage "%1"=="/?" goto usage "%1"=="" goto usage UserRoot="%1" UserDataShare=users$ UserProfileShare=profiles$ UserBackupShare=backups$ cls echo Creating User Data Root Shares 208 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen net share %UserDataShare%="%UserRoot%" /GRANT:Everyone,Full /CACHE:Manual /REMARK:"Root data share for all user data stores. Allows offline files." net share %UserProfileShare%="%UserRoot%" /GRANT:Everyone,Full /CACHE:None /REMARK:"Root share for all user profiles. Does not allow offline files." net share %UserBackupShare%="%UserRoot%" /GRANT:Everyone,Full /CACHE:None /REMARK:"Root share for all user backups. Does not allow offline files." echo User Data Store Root Shares Created goto:eof :: =========================================================================== :: ERLÄUTERUNG DER NUTZUNG :: =========================================================================== :usage :: Der Nutzungsblock steht im Skript. Die in der Batchdatei verwendeten net share-Befehle legen die Freigabe an, erteilen die Zulassungsberechtigung Vollzugriff für Jeder und richten die Einstellungen für das Zwischenspeichern auf der Freigabe ein. Beachten Sie, dass die Zwischenspeicherungseinstellungen für die Freigaben Backups$ und Profiles$ identisch sind. Deswegen kommen Sie natürlich mit einer Freigabe aus, aber ich ziehe eben eine SMB-Freigabe für jede Datenspeicherklasse vor, obwohl die beiden letzten (Backups$ und Profiles$) dieselben Einstellungen aufweisen. Vermeiden der zwischengespeicherten Kopie durch getrennte SMB-Namespaces für Profile Wir haben für den physischen und den SMB-Namespace unserer Netzwerkdatenspeicher eine bewährte Struktur angelegt, was jedoch nicht heißt, dass sie aus jeder Sicht perfekt ist. Eine bekannte Schwachstelle weist sie auf. Alle Datenspeicher liegen in einem gemeinsamen Stammordner, der dreimal freigegeben ist. Jede Freigabe ist mit Einstellungen für das Zwischenspeichern versehen. Benutzer, deren Ordner Dokumente und Desktop nach \\<Servername>\users$\%username%\[Documents | Desktop] umgeleitet werden, haben also von der Freigabe users$ die Erlaubnis, Dateien offline verfügbar zu machen. Der Benutzerprofilpfad führt zum Profil \<Servername>\Profiles$\%username%. Wie bereits erörtert, ist es wichtig, dass Bestandteile der Serverkopie eines Benutzerprofils nicht offline verfügbar gemacht werden. In diesem Entwurf haben wir es dadurch verhindert, dass das Zwischenspeichern auf der Freigabe Profiles$ deaktiviert ist. Theoretisch könnte ein Benutzer in Windows Explorer zu \\<Servername>\users$\%username%\ Profiles gehen und so über die Freigabe users$ in sein Profil gelangen. Da diese Freigabe das Zwischenspeichern von Dateien erlaubt, könnte er eine Datei aus dem Profil offline ablegen. Die überaus gute Nachricht lautet jedoch, dass sich die Datei im Namespace users$ nicht im selben Namespace befindet wie das servergespeicherte Profil (Profiles$), obwohl sie in der Serverkopie des Profils physisch vorhanden ist. Damit sinkt die Gefahr von Synchronisierungskonflikten auf ein Minimum. Ich kann mir jedoch vorstellen, dass ein besonders kenntnisreicher und böswilliger Benutzer Wege findet, sein eigenes Profil in Unordnung zu bringen, wenn er hartnäckig genug ist. Aus diesem Grund ist unser Entwurf »nicht aus jeder Sicht perfekt«. 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 209 Alternativ können die Benutzerprofile auf einer ganz anderen physischen Stammfreigabe untergebracht werden, bei der der Stammordner nur einmal freigegeben wird, und zwar ohne Zwischenspeicherung. In diesem Fall haben wir aber einen disjunkten Namespace für Benutzerdatenspeicher: Die Profile liegen an der einen Stelle und alles andere an einer anderen. Die meisten Administratoren, die ich kenne, hätten die Benutzerdaten gern alle am selben Platz. Dieser Ansatz ist also auch nicht aus jeder Sicht perfekt. Ich empfehle den von uns entwickelten Ansatz, weil er einfach, gut durchsuchbar, wirkungsvoll und widerstandsfähig gegenüber den meisten Problemen ist, außer den mit voller Absicht verursachten. Einige IT-Fachleute haben mir gegenüber geäußert, dass ein Benutzer, der sich so weit vom rechten Weg entfernt, es verdient, auf das Helpdesk warten zu müssen, wenn sein Rechner dadurch Schwierigkeiten macht. Glücklicherweise gewährleisten die NTFS-Berechtigungen, dass selbst ein Unruhestifter nur in seinen eigenen Datenspeichern Unheil anrichten kann, jedoch nicht in denen anderer Benutzer. Entwerfen der logischen Sicht des Benutzerdatenund -einstellungsspeichers mit DFS-Namenräumen DFS-Namespaces, die in Lösungsgruppe 2 erörtert wurden, geben Ihnen die Möglichkeit, eine logische oder virtuelle Sicht der Unternehmensressourcen anzulegen. Wenn Sie mit dem verteilten Dateisystem (Distributed File System, DFS) nicht vertraut sind, sollten Sie sich darüber informieren, denn es spielt bei der Verwaltung von Benutzerdaten und -einstellungen eine wesentliche Rolle. Seine erste Funktion besteht darin, eine logische Sicht der Speicher für Benutzerdaten und -einstellungen bereitzustellen – nicht server-, sondern benutzerzentriert. Für diese logische Sicht gibt es mehrere Entwurfsoptionen, die ich Ihnen jeweils mit ihren Vor- und Nachteilen vorstellen möchte. Erstellen eines vollständig aufgelisteten DFS-Namespace für Benutzerdatenund -einstellungsspeicher (DFS-Entwurfsoption 1) Bei diesem Entwurf legen Sie im DFS-Namespace einen Ordner für jeden Benutzerdatenspeicher an. Es gibt einen DFS-Ordner für den Benutzer und Unterordner für jeden seiner Speicher (siehe das Beispiel in Abbildung 3.11). Abbildung 3.11 Ein vollständig aufgelisteter DFS-Namespace enthält eine rationelle, logische Sicht aller Speicher für Benutzerdaten und -einstellungen. Der Pfad zum Datenspeicher eines Benutzers ist sehr zweckmäßig: \\domäne\dfs- Namespace\benutzername\speicher. Der Pfad zu James Fines umgeleitetem Ordner Dokumente lautet beispielsweise: \\contoso.com\users\jfine\documents, der Pfad, auf den die Desktop-Ordner aller Benutzer umgeleitet werden, entsprechend \\contoso.com\users\%username%\desktop. Die untersten Ordner im Namespace stehen für die Daten- und Einstellungsspeicher und sind im UNC-Format durch den Namespace des UDSServers mit dem physischen Speicher verknüpft. Das Verknüpfungsziel bei James' Ordner Dokumente lautet beispielsweise \\server01\users$\jfine\documents. 210 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Vorteile Der große Vorteil dieses Entwurfs besteht darin, dass sich ein einzelner physischer Datenspeicher eines Benutzers ohne Weiteres verschieben lässt: Sie ändern einfach das Ziel des DFSOrdners. Änderungen an den Einstellungen der Gruppenrichtlinie, den Attributen der Benutzerkonten, den Gruppenmitgliedschaften oder sonst irgendwo sind nicht erforderlich. Das ist Beweglichkeit! Ein weiterer wesentlicher Vorteil liegt darin, dass die Unterordner auf die korrekten SMB-Namespaces zielen können. Die Ordner Profile und Sicherungen in Abbildung 3.11 zeigen auf die Freigaben Profiles$ und Backups$ auf SERVER01, auf denen das Zwischenspeichern deaktiviert ist. Dagegen zeigen die Ordner Dokumente und Desktop auf die Freigabe Users$ auf SERVER01, auf denen das Zwischenspeichern aktiviert ist. Diese beiden getrennten Namespaces werden zu einem einzigen Namespace zusammengefasst, der auf den Benutzer ausgerichtet ist und durch den Benutzerordner im DFS-Namespace dargestellt wird. Nachteile Leider weist dieser Ansatz auch eine Reihe von Nachteilen auf. Erstens müssen Sie die Ordner im DFS-Namespace anlegen, bevor Sie entweder das Benutzerprofil oder Einstellungen für umgeleitete Ordner in der Gruppenrichtlinie festlegen, damit der von den betreffenden Pfaden benutzte Namespace vorhanden ist, bevor Windows-Clients darauf zuzugreifen versuchen. Zweitens kann Windows nicht alle Ordner automatisch erstellen, wie es bei den anderen Optionen für den DFS-Namespace möglich ist, die ich erörtern werde – Sie müssen einige der physischen Ordner auf dem DFS-Server selbst anlegen, um dort bestimmte Benutzerdatenspeicher unterzubringen. In der vorangegangenen Lösung habe ich ein Skript gezeigt, das die physischen Ordner bereitstellt. In dieser Lösung erweitere ich es zu einem Skript, das alle Schritte so einfach erledigt, dass Sie ohne Probleme einen leistungsfähigen, beweglichen und vollständig aufgelisteten DFS-Namespace anlegen können. Ein vorgefertigter Ablauf, der viele Schritte für einen vollständig aufgelisteten DFS-Namespace automatisiert, geht insbesondere diese beiden Nachteile an. Es gibt aber auch noch eine technische Herausforderung. Unter Windows Server 2003 unterstützen DFS-Namespaces nur bis zu 5.000 Ordnern mit Zielen. Da jeder Benutzer mehrere Unterordner haben kann, die auf Datenspeicher zeigen, sind Sie auf etwa 1.000 bis 2.000 Benutzer beschränkt. Auch für diese Angelegenheit zeige ich Ihnen später einen Ausweg. Erstellen eines DFS-Namespace für die Stammfreigabe des Benutzerdatenspeichers mit Umleitung zu den einzelnen SMB-Namespaces (DFS-Entwurfsoption 2) Die nächste Alternative besteht darin, einen DFS-Namespace anzulegen, dessen Ziel die einzelnen SMB-Freigaben für die Stammordner der Benutzerdatenspeicher auf den UDS-Servern sind. Das Ergebnis sehen Sie in Abbildung 3.12. Abbildung 3.12 DFS-Namespaces, die auf freigegebene Stammordner im SMB-Namespace zeigen 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 211 In der Abbildung sehen Sie links einen DFS-Ordner, der auf die einzelnen Freigaben zeigt (Users$, Profiles$ und Backups$). Dadurch ist gewährleistet, dass die Benutzer über die Freigaben mit den richtigen Cacheeinstellungen auf ihre Ressourcen zugreifen. Der umgeleitete Dokumentordner eines Benutzers zeigt auf \\contoso.com\users\data\%username%\data\documents, sein servergespeichertes Profil dagegen auf \\contoso.com\users\profiles\%username%\profile. Die Namen wirken ein wenig redundant, Sie sollten aber daran denken, dass Sie zwei Namespaces durchqueren: Der erste dataoder profiles-Ordner ist der Ordner im DFS-Namespace, der auf den Stamm des Benutzerdatenspeichers auf SERVER01 zielt, der zweite der echte Unterordner unterhalb des obersten %username%Ordners – der im SMB- oder physischen Namespace liegt. Sehen Sie sich bei Bedarf die früheren Abbildungen noch einmal an, die den physischen Namespace (die Ordnerhierarchie) auf dem Server wiedergeben. Haben Sie nur einen UDS-Server, kommen Sie mit der Struktur in Abbildung 3.13 links aus. Haben Sie mehrere UDS-Server, müssen Sie die Verknüpfungen in Gruppen zusammenfassen, wie es der Screenshot rechts in Abbildung 3.12 zeigt, die den Namespace um übergeordnete DFS-Ordner für geografische Standorte erweitert. Die Struktur, die sich daraus ergibt, ist in vielen bestehenden Implementierungen anzutreffen, ich empfehle sie aber nicht¸ was ich weiter hinten in dieser Lösung begründen werde. Wichtig Abbildung 3.12 zeigt rechts einen gängigen, aber problematischen Namespace. Verwenden Sie für Ihre Namespaces keine Standorte oder anderen Konstrukte aus der Realität; die Gründe erläutere ich gleich. Vorteile Da es weitaus weniger DFS-Ordner gibt, stellt die Unterstützung mehrerer tausend Benutzer kein Problem dar. Die Komponente %username% des Namespace liegt nicht im DFS-, sondern im SMB-Namespace (und im physischen). Nachteile Da sich der Benutzerspeicher und der Benutzerordner nicht mehr im DFS-Namespace befinden, verlieren Sie die Verwaltungsvorteile, die dieser bietet. Wenn Sie die Datenspeicher eines Benutzers physisch auf einen anderen Server verschieben müssen, ist es jetzt erforderlich, die Elemente anzupassen, die für das sorgen, was der Benutzer sieht: die Zielordner der Gruppenrichtlinieneinstellungen für die Ordnerumleitung, den Benutzerprofilpfad und alle Verknüpfungen oder anderen Zeiger, die durch den ursprünglichen DFS-Namespace gehen. Die DFS-Entwurfsoptionen im Vergleich Die erste Entwurfsoption (der vollständig aufgelistete DFS-Namespace) bietet die beste Unterstützung für ein UDS-Framework, solange Sie über ein Werkzeug zum automatischen Anlegen des Namespace und einen Plan für den Umgang mit mehr als 1.000 oder 2.000 Benutzern verfügen (bevor Sie mit DFSNamespaces von Windows Server 2008 arbeiten, was wir im nächsten Abschnitt erörtern werden). Die zweite Option, die weniger Ordner mit Zielen umfasst, kann eine unbegrenzte Zahl von Benutzern unterstützen. Denken Sie über die verbleibenden Zeiger in DFS nach, die im folgenden Abschnitt erwähnt werden, bevor Sie sich für einen Entwurf entscheiden. Erstellen eines DFS-Namespace für Tausende von Benutzern Unter Windows Server 2003 sind DFS-Namespaces auf 5.000 Verknüpfungen beschränkt. Was passiert, wenn Sie mehr haben? Nun, Sie könnten auf Windows Server 2008-Namespaces umstellen, was die Domänenfunktionsebene von Windows Server 2008 und DFS-Namespaceerver mit Windows Server 2008 voraussetzt. Windows Server 2008 kennt keine technische Grenze für die Anzahl der Verknüpfungen, die in einem DFS-Namespace unterstützt werden. Sie müssen nur die Leistung überwachen. 212 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Sie können aber auch neue Namespaces anlegen! Unter Windows Server 2003 kann jeder Domänennamespace 5.000 Verknüpfungen enthalten, was die folgenden drei DFS-Namespaces möglich macht: \\contoso.com\usersa \\contoso.com\usersb \\contoso.com\usersc Jetzt kann jeder Namespace auf der obersten Ebene bis zu 5.000 Verknüpfungen aufnehmen. Unterhalb der einzelnen Namespaces können Sie die erste Entwurfsoption umsetzen, die den vollständigen Pfad zum Benutzerdatenspeicher innerhalb des DFS-Namespace enthält. Dann legen Sie Sicherheitsgruppen mit den Benutzern an, die zu den einzelnen Namespaces gehören, und können für sie damit Ordnerumleitung durch den jeweiligen Namespace einrichten. Die Benutzer werden bei ihrem Eintritt in das Unternehmen in eine Gruppe aufgenommen. Wenn eine Gruppe voll wird, eröffnen Sie die nächste. Alternativ können Sie Ihre Namespaces auf Personalnummern aufbauen, damit die Gruppen und Namespaces weniger willkürlich zusammengesetzt sind, was das Auffinden von Benutzerdatenspeichern im DFS erleichtert: \\contoso.com\users1xxx enthält Mitarbeiter mit Personalnummern, die mit 1 beginnen. \\contoso.com\users2xxx enthält Mitarbeiter mit Personalnummern, die mit 2 beginnen. \\contoso.com\users3xxx enthält Mitarbeiter mit Personalnummern, die mit 3 beginnen. Wichtig Beachten Sie, was ich in meinen Namespacebeispielen nicht als Gruppenmerkmal verwende: Standorte, Geschäftseinheiten oder andere unternehmensbezogene Konstrukte. Im nächsten Abschnitt finden Sie eine Erklärung dafür. Der Einfluss von Datenverschiebungen und Namespaceänderungen In Ihrem UDS-Framework gibt es eine Reihe von Zeigern, die auf bestimmte Datenspeicher verweisen: Den Pfad des servergespeicherten Profils im Benutzerkonto (das Attribut ProfilePath des Benutzerobjekts) Pfade zu Zielen umgeleiteter Ordner, festgelegt in den Einstellungen der Richtlinie für die Ordnerumleitung Verwenden Sie einen vollständig aufgelisteten Namespace (Option 1), lässt sich jeder Verweis auf Datenspeicher von den physischen Speichern trennen. Zielt ein umgeleiteter Ordner auf einen DFS-Namespace, lautet der Pfad etwa folgendermaßen: \\contoso.com\users\jfine\documents. Die Konfiguration des umgeleiteten Ordners ist nicht davon abhängig, ob sich der physische Datenspeicher auf SERVER01 in New York oder auf SERVER02 in Sydney befindet. Sie brauchen nur die Verknüpfungsziele des DFSNamespaceordners zu aktualisieren, aber keine Einstellungen im Benutzerobjekt, in Gruppenrichtlinienobjekten oder sonstwo zu ändern. Das ist ein hervorragender Grund, DFS zu nutzen. Das ist jedoch nur mit der ersten Option möglich. Die zweite führt zu einem DFS-Namespace, der nur bis zu einem mit einem bestimmten Server verknüpften Ordner reicht. Der Rest des Pfads zum Speicher ist Bestandteil des SMB- und des physischen Namespace. Wenn Sie James' Daten bei Option 2 von SERVER01 in New York auf SERVER02 in Sydney verschieben, ändern Sie nicht die Ziele der DFSNamespaceordner, sondern den Namespace selbst, in dem James' Daten liegen. Dann müssen Sie auch die Zeiger ändern, die James' Umgebung ausmachen. Die servergespeicherten Profile müssen von \\contoso.com\users\new york\jfine\profile auf \\contoso.com\users\sydney\jfine\profile umgestellt werden. Auch die umgeleiteten Ordner müssen mit dem Pfad zum neuen DFS-Namespace versehen werden. 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 213 Leider gibt es noch eine ganze Menge komplexere und mühevollere Verweise und Zeiger in der Konfiguration, die Sie aktualisieren müssen, wenn Sie die zweite Entwurfsoption verwenden: Quellpfade von Offlinedateien Die Dateien im Cache sind mit dem Namespace verknüpft, aus dem sie stammen. Ändert sich dieser, müssen Sie die Dateien anpassen, weil Windows sonst annimmt, dass es sich um vollkommen andere Dateien aus anderen Quellen handelt, und der Benutzer alle Dateien aus dem neuen Namespace synchronisieren muss. Dieses Problem wird weiter hinten in dieser Lösung erörtert. Pfade in benutzerdefinierten Werkzeugen Alle benutzerdefinierten Werkzeuge, die auf Pfade im alten Namespace zeigen, müssen aktualisiert werden, beispielsweise das in Lösung 3.10 erstellte Sicherungsskript. Pfade, die in Anwendungen, Verknüpfungen, zugeordneten Laufwerken usw. verwendet werden Werden die Daten eines Benutzers verschoben, müssen mit einiger Wahrscheinlichkeit einige Verweise auf die Daten aktualisiert werden, darunter die Ziele von Verknüpfungen und zugeordneten Laufwerken. Pfade für Verknüpfungen in und zwischen Dokumenten Hat ein Benutzer beispielsweise ein Excel-Arbeitsblatt mit einer PowerPoint-Präsentation verknüpft, ist der vollständige Pfad zu diesem Arbeitsblatt in der Präsentation gespeichert. Ändert sich der Namespace des Arbeitsblatts, müssen Sie die Präsentation aktualisieren. Diese Verweise, besonders die im letzten Punkt, stellen den mühsamsten Teil beim Ändern des Namespace für die Daten eines Benutzers dar – gleich, ob sie in einen anderen Ordner, auf einen anderen Server, eine andere Freigabe oder in einen anderen DFS-Namespace wandern. Aus dieser Abhandlung sollten Sie die Lehre ziehen, dass der Verwaltungsaufwand steigt, wenn sich ein Bestandteil Ihres DFS-Namespacepfads irgendwann einmal ändert. Das schlagendste Beispiel ist ein DFS-Namespace auf Standortbasis wie der in der zweiten Entwurfsoption. Wenn der DFS-Namenraumpfad einen Standortnamen – beispielsweise \\contoso.com\users\new york\%username%\... – enthält und Änderungen an den Daten und Einstellungen eines Benutzers dazu führen, dass sich dieser Standort ändert – etwa in \\contsoso.com\users\sydney\%username% –, haben Sie eine Menge Arbeit damit, die Benutzerprofilpfade zu aktualisieren, die Gruppenrichtlinienobjekte für die Umleitung zu ändern, am Offlinecache des Clients zu basteln und sämtliche anderen eingebetteten Verweise auf den alten Namespace zu suchen und zu ändern. Wichtig Bei der ersten Entwurfsoption erfordert eine Änderung des physischen Orts der Datenspeicher eines Benutzers lediglich, die Ziele der Ordner im DFS-Namespace zu ändern. Bei der zweiten Entwurfsoption müssen Sie alle clientseitigen Verweise auf den DFS-Namespace aktualisieren, was sowohl Anwendungen als auch Offlinedateien betrifft. Der Einfluss von %username%-Änderungen Gerade haben wir den wichtigen Umstand angesprochen, dass Sie die Benutzerattribute (insbesondere den Profilpfad), die Gruppenrichtlinienobjekte für die umgeleiteten Ordner und außerdem zahlreiche clientseitige Verweise anpassen müssen, wenn sich der DFS-Namespacepfad zu den Daten und Einstellungen eines Benutzers ändert. Alle Dateien, die offline verfügbar gemacht wurden, müssen neu erstellt (Windows XP) oder mithilfe eines Skripts umbenannt werden (Windows Vista). Das macht richtig Spaß ... wenn Sie nach Stunden bezahlt werden. 214 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen In unseren Beispielen sind wir aber von einer sehr wichtigen Annahme ausgegangen: dass %username% in einen echten Benutzernamen übersetzt wird, etwa jfine. Wenn das so ist, was geschieht dann, wenn sich der Benutzername ändert? Das kommt immer wieder vor; denken Sie nur an Heirat. Eine Änderung des Anmeldenamens eines Benutzers (Prä-Windows 2000-Anmeldename oder sAMAccountName) hat erhebliche Auswirkungen auf Ihre Infrastruktur. Sie ändert den Namespace von allem. Die Umleitung anhand von Gruppenrichtlinien nutzt die Variable %username%, sodass das System den alten Ordnernamen nicht findet, wenn sich der Benutzer mit einem neuen Namen anmeldet, und neue Ordner anlegt. Bevor sich Ihr Benutzer zum ersten Mal mit einem neuen Namen anmeldet, müssen Sie daher Folgendes ändern: DFS-Namespaceordner Bei den Entwurfsoptionen 1 und 2, die den Benutzernamen in den DFSNamespace aufnehmen, müssen Sie die Namen der DFS-Ordner an den neuen Namen anpassen. Name des physischen NTFS-Ordners, der als Stammordner für die Speicher für Benutzerdaten und -einstellungen dient Bei der zweiten Entwurfsoption, deren Ziel der Stammordner des Benutzerdatenspeichers ist, muss die Änderung des Benutzernamens an dem eigentlichen NTFSOrdner auf dem UDS-Server des Benutzers vorgenommen werden. Alle anderen Verweise auf den vorherigen Namespace Das bedeutet, wie bereits erwähnt, dass Sie alle Verknüpfungen, zugeordneten Laufwerke, Offlinedateien und, was am schwierigsten ist, alle Verknüpfungen innerhalb und zwischen Dokumenten aktualisieren müssen, die auf den alten Namespace verweisen. Attribute wie ProfilePath Der Pfad des servergespeicherten Profils ist im Benutzerkonto hartkodiert. Er verbleibt dort als alter Pfad, der abgesehen davon funktioniert, dass Sie den DFS- bzw. NTFSOrdner wegen der Umleitung auf den neuen Benutzernamen umstellen müssen. Den lokalen Benutzerprofilordner brauchen Sie nicht umzubenennen. Windows unterhält eine Zuordnung zwischen der Sicherheitskennung (SID) des Benutzerkontos und dem Ordner mit der lokalen Kopie des servergespeicherten Profils. Selbst wenn sich der Benutzer mit dem neuen Namen anmeldet, erkennt Windows also den Bezeichner und lädt das richtige Profil. Nicht alle Anwendungen sind jedoch sauber programmiert. Einige suchen das Profil mithilfe der Variable %username% anstatt mit %userprofile% und geraten an die falsche Stelle. Obwohl Windows Sie nicht zwingt, das lokale Benutzerprofil umzubenennen, müssen Sie möglicherweise wegen Ihrer Anwendungen etwas unternehmen. Beachten Sie, dass Sie auch den Zeiger auf das Profil in der Registrierung aktualisieren müssen, wenn Sie den lokalen Benutzerprofilordner umbenennen. Die Zuordnungen von Sicherheitsbezeichnern zu Profilen finden Sie unter HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList. Suchen Sie den Schlüssel, der auf das Profil zeigt, anhand des alten Namens und aktualisieren Sie ihn. Diese ganze Erörterung soll noch einmal unterstreichen, wie einfache Änderungen, beispielsweise ein neuer Anmeldename, Kopfzerbrechen bei der Verwaltung verursachen können. Aus diesem Grund rate ich Ihnen wie in Lösungsgruppe 7, »Erweitern von Benutzerattributen und Verwaltungswerkzeugen«, eindringlich zu Benutzernamen vom Typ einmalige Anmeldung (Single Sign-On, SSO) auf der Grundlage neutraler und eindeutiger Eigenschaften – etwa der Personalnummer. Das ist weniger persönlich als eine auf dem Namen beruhende Anmeldung, trägt aber dazu bei, Verwaltungsprobleme durch Namensänderungen zu reduzieren, ganz abgesehen von Benutzern mit identischen Namen. 3.4 Erstellen der SMB- und DFS-Namespaces für Benutzerdatenspeicher 215 Wichtig Ziehen Sie in Betracht, Prä-Windows 2000-Anmeldenamen zu verwenden, die nicht auf dem persönlichen Namen des Benutzers basieren, sondern auf einem abstrakten, unveränderlichen Konstrukt wie Personalnummern. Ich möchte noch einige Zeiger erwähnen, die wir in Lösungsgruppe 7 wieder erörtern werden. Erstens geht es dabei um den Prä-Windows 2000-Anmeldenamen. Denken Sie daran, dass Windows die Authentifizierung mit dem Benutzerprinzipalnamen (User Principal Name, UPN) unterstützt, der beliebig lauten kann, solange er eindeutig ist. Es könnte auch seine E-Mail-Adresse sein. Auf diese Weise kann er zum benutzerfreundlichen Anmeldenamen auf der Grundlage des Namens werden. Ich habe auch Kunden erlebt, die an Namensänderungen nur im Zusammenhang mit Heirat denken. Sie meinen, wenn Jane heiratet, mache es ihr nichts aus, ihren bisherigen Anmeldenamen beizubehalten. Das kann zwar durchaus stimmen. Denken Sie aber auch an Scheidung. Wird Jane, die als verheiratete Frau eingestellt wurde, nach einer hässlichen Trennung den Anmeldenamen weiterbenutzen wollen, der auf ihrem Ehenamen beruht? Wahrscheinlich nicht. Erstellen eines abstrakten DFS-Namespace für Benutzerdaten und -einstellungen (ohne Standort- und Personennamen) In einem komplexen Unternehmen mit mehreren UDS-Servern, geografischen Standorten oder Geschäftseinheiten geraten Sie vielleicht in Versuchung, für jedes UDS-Framework einen DFS-Namespace anzulegen, der diese Entitäten widerspiegelt. Abbildung 3.12 zeigt beispielsweise rechts eine DFS-Hierarchie auf Standortbasis. Wichtig Sie sollten auf keinen Fall einen Standort, eine Geschäftseinheit oder ein anderes Konstrukt Ihres Unternehmens in Ihren DFS-Namespace aufnehmen! Wir haben die Probleme erörtert, die entstehen, wenn sich ein Bestandteil des Namespace einer Datei oder eines Ordners ändert. Diese nehmen exponentiell zu, wenn es um den Namespace ganzer Datenspeicher oder Datenspeicherklassen geht. Setzen Sie einen Namespace aus abstrakten Elementen zusammen. Verwenden Sie keine Standorte, Geschäftseinheiten oder andere Elemente, die sich ändern. Erwägen Sie auch, die Anmeldenamen der Benutzer auf der Grundlage von Personalnummern anstatt von Namen zu bilden, um Änderungen von %username% zu vermeiden. Automatisieren der Erstellung von Benutzerdatenspeichern und DFS-Namespaces In Lösung 3.1 habe ich das Skript UDS_UserFolders_Provision.vbs entwickelt, das den physischen Namespace auf dem UDS-Server anlegt. In der vorliegenden Lösung habe ich die Empfehlung hinzugefügt, einen vollständig aufgelisteten Namespace zu erstellen. Daraus ergibt sich das neue Skript UDS_UserFolders_Provision_DFS.vbs im Ordner Scripts des Begleitmediums. Es verlangt folgende Argumente: Den Pfad zum obersten Ordner des Benutzers (%username%) auf dem UDS-Server /dfs: Y (oder Yes), was das Skript veranlasst, in den Modus zum Erstellen von Namespaces zu wechseln. Hier werden geeignete DFS-Ordner und Links für den Benutzer in einem vollständig aufgelisteten Namespace angelegt (Entwurfsoption 1). In diesem Modus werden die folgenden drei Parameter benötigt: 216 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen /server:<servername>, der Name des Servers, auf dem sich die Daten des Benutzers befinden /userfirstname:<Vorname des Benutzers> und /userlastname:<Nachname des Benutzers>, um im DFS-Ordner für den Benutzer einen Kommentar zu erstellen. Falls Sie aus dem Benutzernamen nicht erschließen können, wem ein Ordner gehört, können Sie also im Kommentar des Ordners nachsehen. Mit dem folgenden Befehl führen Sie die gesamte netzwerkseitige Konfiguration für James Fine durch: Cscript UDS_UserFolders_Provision_DFS.vbs e:\users\jfine/dfs:yes /server:server01 /userfirstname:James /userlastname:Fine Welche Ordnerstruktur sich daraus ergibt, sehen Sie im Ordner des Benutzers (beispielsweise E:\Users\jfine) und im DFS-Namespace. Bevor Sie das Skript jedoch in einer Produktionsumgebung ausführen, sollten Sie sein Verhalten nach der Anleitung im nächsten Abschnitt anpassen. Anpassen von UDS_UserFolders_Provision_DFS.vbs Eine Anpassung ist definitiv erforderlich. Die Subroutine Configuration definiert sämtliche Variablen, darunter den physischen, den SMB- und den DFS-Namespace, die benutzt werden, um wie in dieser und der vorhergehenden Lösung erläutert einen Namespace anzulegen. Sie werden eine Menge Ähnlichkeit mit dem vorherigen Skript feststellen – neu ist lediglich das Erstellen des DFS-Namespace und der Umstand, dass ich den Code wegen seiner Länge und Komplexität anders angeordnet habe, damit sich der Ablauf leichter verfolgen lässt. Außerdem habe ich den Konfigurationsblock in eine eigene Subroutine verschoben, weil viele Skripteditoren (darunter PrimalScript 2007 von Sapien, mit dem ich Skripts bearbeite) die automatische Zusammenfassung von Subroutinen und Funktionen ermöglichen, was Anzeige und Orientierung in längeren Skripts erleichtert. Wichtig UDS_UserFolders_Provision_DFS.vbs gehört wahrscheinlich zu den nützlichsten Skripts und Werkzeugen dieses Buchs. Nehmen Sie sich genug Zeit, um es durchzuarbeiten, anzupassen und in Gebrauch zu nehmen. Sie können es auch für die in der vorherigen Lösung beschriebene Methode verwenden: Lösen Sie es mit einer Kontingentvorlage aus. Wenn Sie dieses Skript haben, brauchen Sie das Skript UDS_UserFolders_Provision.vbs nicht mehr. Eine weitere Variante, UDS_UserFolders_Extended_Provision_DFS.vbs, legt einen noch vollständiger aufgelisteten DFS-Namespace an. Genaueres dazu finden Sie Lösung 3.5 auf Seite 217. Zusammenfassung Wir haben uns die Konfiguration der Namespaces für die Datenspeicher angesehen. In der vorherigen Lösung haben wir mit dem physischen Namespace angefangen – der Ordnerhierarchie auf UDS-Servern, die tatsächlich recht unkompliziert ist. Außerdem haben wir uns detailliert mit bewährten Zugriffssteuerungslisten für die Datenspeicherstammordner für Benutzerdaten und -einstellungen befasst. Anschließend sind wir zum SMB-Namespace »aufgestiegen«, der dem Netzwerk den physischen Namespace zugänglich macht. Wir haben festgestellt, dass freigegebene SMB-Ordner erforderlich sind, um die unterschiedlichen Anforderungen beispielsweise an Cacheeinstellungen zu unterstützen. Für einen physischen Ordner können Sie aber auch mehrere SMB-Freigaben definieren. Anschließend haben wir den durch Freigaben und Ordner erstellten serverbasierten Namespace durch DFS-Namespaces abstrahiert und zwei Entwurfsoptionen untersucht. Die erste, ein vollständig aufgelisteter DFS-Namespace, erfordert die zunächst umfangreichste Investition in Skripts oder andere Werkzeuge zum Anlegen von Namespaceordnern für die einzelnen Benutzerdatenspeicher. Zu genau 3.5 Entwerfen und Ausführen der Ordnerumleitung 217 diesem Zweck haben wir das Skript UDS_UserFolders_Provision_DFS.vbs bereitgestellt, das Sie jetzt nur zu starten brauchen, um einen vollständig aufgelisteten DFS-Namespace (Entwurfsoption 1) zu erstellen – eine geradezu ideale Möglichkeit. Sobald die clientseitigen Verweise des Benutzers, beispielsweise das servergespeicherte Profil und die Ziele umgeleiteter Ordner, den Namespace verwenden, braucht dieser nicht mehr geändert zu werden! Sie müssen nur noch die Ziele der Ordner im Namespace anpassen, wenn Sie Benutzerdaten verschieben. DFS-Namespaceerver mit Windows Server 2003 verkraften nur 5.000 Links pro Namespace, sodass die Entwurfsoption 1 (mit mehreren Ordnern pro Benutzer) die wenigsten Benutzer pro Namespace unterstützt. Sie können jedoch einfach weitere Namespaces hinzufügen. Wir haben Ideen untersucht, wie sich ein DFS-Namespace für Tausende von Benutzern anlegen lässt, was die Verwendung mehrerer DFS-Namespaces nach sich zieht. Danach haben wir hervorgehoben, wie sinnvoll es ist, keine Unternehmenskonstrukte wie Standorte, Geschäftseinheiten oder auch die benutzerfreundlichen Anmeldenamen in den Namespace von UDSFrameworks aufzunehmen, sondern stattdessen abstrakte Konstrukte zu verwenden, die sich nicht mit der Zeit ändern. Eine Änderung der Benutzerrolle oder seines Standorts, die zu einer Änderung des Namespace für seine Datenspeicher führt, kann sonst komplexe und mühevolle Anpassungen sämtlicher Verweise auf den alten Namespace auf der Clientseite erforderlich machen. Abschließend haben wir das Skript UDS_UserFolders_Provision_DFS.vbs untersucht, das die Datenspeicher eines Benutzers komplett mit seinem obersten Ordner, den Unterordnern für alle Datenspeicher, Kontingenten, Berechtigungen, Besitzverhältnissen und dem DFS-Namespace anlegt. Mit diesem wichtigen Werkzeug in der Trickkiste werden das Anlegen und das Verwalten der Namespaces für Benutzerdatenspeicher im Netzwerk zum Kinderspiel. 3.5 Entwerfen und Ausführen der Ordnerumleitung Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Ordnerumleitung, Gruppenrichtlinien, Registrierung Zusammenfassung Verwenden der Ordnerumleitung zum Verlagern von Benutzerdatenspeichern auf Server und Umleiten von Windows XP-Ordnern wie Favoriten, Musik und Videos Vorteile Einheitliches Speichern auf Windows XP- und Vista-Clients Einführung In der guten alten Zeit gab es das Basisverzeichnis eines Benutzers: ein zugeordnetes Laufwerk, in dem die Benutzer ihre Daten speicherten. Basisverzeichnisse oder – ganz hip – »Basisordner« werden für den Benutzer durch einen Laufwerksbuchstaben dargestellt, beispielsweise H: für »Home«, U: für »User« oder P: für »Personal«. Es wäre sicher amüsant herauszufinden, wie viele englischsprachige Organisationen einen der drei Buchstaben verwenden. Ich vermute, über 90%. Die Ordnerumleitung war der revolutionäre nächste Schritt. Diese Standardtechnologie, die seit Windows 2000 Bestandteil von Windows ist, stellt Datenspeicher (physische Speicherorte) durch Standardelemente der Benutzerschnittstelle dar, beispielsweise die Ordner (Eigene) Dokumente, Desktop, Favoriten. Die 218 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Benutzer greifen also über vertraute Schnittstellenelemente auf ihre Daten zu, die den physischen Speicherort der Datenspeicher verbergen. Der Umstand, dass es sich bei diesen Standardelementen, den so genanten Shell-Ordnern, um Umleitungen handelt, macht die Umleitung für die Benutzer unsichtbar. Durch die umgeleiteten Ordner wird der Netzwerkspeicher zum primären Ort für die Ablage von Benutzerdaten. Solange die Benutzer mit dem Netzwerk verbunden sind, ist der Netzwerkspeicher auch der primäre Ort für den Dateizugriff. Die Dateien können jedoch mithilfe einer weiteren WindowsFunktion, der Offlinedateien, auch für Benutzer verfügbar gemacht werden, die vom Netzwerk getrennt sind, was wir in der nächsten Lösung behandeln. Umgeleitete Ordner mit Offlinedateien stellen im Allgemeinen einen Ansatz zur Verwaltung von Benutzerdaten dar, der sich für servergespeicherte Profile besonders gut eignet, weil er den Benutzern die Möglichkeit gibt, sofort nach der Anmeldung auf einem neuen System auf die Daten zuzugreifen. Umgeleitete Ordner führen keine Synchronisierung durch und laden auch keine großen Datenmengen herunter. Werden die Offlinedateien sorgfältig entworfen und verwaltet, können die Organisation und die Benutzer anders als bei servergespeicherten Profilen, die bei der An- und Abmeldung sämtliche Dateien synchronisieren, besser steuern, welche Dateien synchronisiert werden und wann. Wahrscheinlich entscheiden Sie sich, die Ordner (Eigene) Dokumente und Desktop umzuleiten, und geben den Laptopbenutzern die Möglichkeit, Dateien offline verfügbar zu machen. So lautete die Anleitung, die in Lösung 3.2 empfohlen wurde. Die vorliegende Lösung und die Lösungen 3.6 bis 3.9 vermitteln Ihnen die Einzelheiten, die Sie für eine fundierte Entscheidung benötigen. Sie können auch Favoriten, Videos, Musik und andere Shell-Ordner an einen Ort im Netzwerk umleiten. Die Methode und die Funktionalität unterscheiden sich ein wenig von denen für die Ordner Dokumente und Desktop, aber es funktioniert und kann zur Vereinheitlichung der Datenspeicher auf Windows XPund Vista-Clients beitragen. Grundlagen der Ordnerumleitung Die Ordnerumleitung ist eine clientseitige Technologie, mit deren Hilfe Shell-Ordner einen lokalen Datenspeicher oder einen im Netzwerk als Ziel erhalten können. Die Hauptvorteile der Ordnerumleitung Die Ordnerumleitung bietet folgende wichtige Vorteile: Profile werden kleiner Mit einem Netzwerkdatenspeicher als Ziel lassen sich die Daten in einem Ordner vom Benutzerprofil trennen, wodurch dieses kleiner wird. Dies trifft besonders für den Ordner (Eigene) Dokumente zu, der als vorrangiger Speicherordner für Benutzerdokumente leicht viele Mega- oder sogar Gigabyte umfassen kann. Bei manchen Benutzern wird der Ordner Desktop ebenfalls zum Abladeplatz für große Dateien, sodass die Umleitung ähnlich vorteilhaft ist. Schnelleres An- und Abmelden Sind Dokumente und Desktop umgeleitet, ist das Benutzerprofil erheblich kleiner, was die Synchronisierung des Profils bei der An- und Abmeldung erheblich verkürzt. Auf diese Weise erlebt der Benutzer durch die Ordnerumleitung das System als leistungsfähiger – der Desktop erscheint früher auf dem Bildschirm. Wesentlich geringere Möglichkeit, das Profil zu beschädigen Unter Windows 2000 war das Verhalten des servergespeicherten Profils gegenüber früheren Versionen überarbeitet worden. Vorher wurden die Profile bei der Anmeldung vollständig herunter- und bei der Abmeldung vollständig wieder hochgeladen. Mit Windows 2000 wurde ein Synchronisierungsalgorithmus eingeführt, 3.5 Entwerfen und Ausführen der Ordnerumleitung 219 durch den nur noch geänderte Dateien übertragen werden. Er wurde zur Steigerung der Geschwindigkeit in den nachfolgenden Versionen weiter verfeinert und arbeitet belastbar und zuverlässig. Ein sehr umfangreiches Profil stellt für die Synchronisierung aber immer noch eine Herausforderung dar. Je größer es ist, desto höher ist die Wahrscheinlichkeit einer Beschädigung, die zu »Dateimüll« (teilweise synchronisierten Dateien mit zufälligen Namen) im Profil und möglicherweise zur Beschädigung der Registrierung (Ntuser.dat) führt. Nach meiner Erfahrung sind Beschädigungen recht unwahrscheinlich, solange große Datenspeicher (Dokumente und Desktop) umgeleitet und dadurch aus der Synchronisierung des Benutzerprofils herausgehalten werden. Die Microsoft Knowledge Base (http://support.microsoft.com) enthält übrigens eine Reihe von Artikeln über die Problembehebung bei Beschädigung von Profilen. Am meisten ist Ihnen jedoch damit gedient, dass Sie die großen Datenspeicher von den servergespeicherten Profilen fernhalten. Unmittelbarer Zugriff auf die Daten Die Benutzer können sich bei einem beliebigen Rechner anmelden und sofort auf die Daten in den umgeleiteten Ordnern zugreifen, selbst wenn sie sich bei einem anderen Computer nicht abgemeldet haben. Bei servergespeicherten Profilen werden die Änderungen erst bei der Abmeldung auf den Server übertragen. Bei umgeleiteten Ordnern leitet dagegen alle Rechner der Domäne den Benutzer an seinen zentralen Netzwerkspeicher um, was den Zugriff in Echtzeit ermöglicht. Neue Merkmale der Ordnerumleitung in Windows Vista Windows Vista verbessert die Ordnerumleitung weiter, indem es diese auf 13 Ordner des Benutzerprofils ausdehnt. Wichtig ist dabei, dass die Ordner Favoriten, Cookies, Bilder, Musik und Videos jetzt mithilfe einer Gruppenrichtlinie umgeleitet werden können. Unter Windows XP erfordert die Umleitung dieser Shell-Ordner einige Tricks, wie ich Ihnen später in dieser Lösung zeigen werde. Dadurch erleben Benutzer von Windows XP- und Windows Vista-Systemen eine besser verwaltete Umgebung. Die Nachteile der Ordnerumleitung Die Ordnerumleitung führt dazu, dass ein Netzwerkspeicher zum primären Speicher- und Zugriffsort für Daten wird. Deshalb kann alles, was mit der Verbindung zum Server zu tun hat, zur Herausforderung werden. Ist die Serveranbindung nicht verfügbar oder nicht ausreichend, leiden Funktionalität und Leistung. Aus diesem Grund gestalten wir unser UDS-Framework so, dass die UDS-Server für die Benutzer so lokal wie möglich sind. Ist der Benutzer nicht mit dem Netzwerk verbunden – beispielsweise unterwegs –, hat er keinen Zugriff auf den Server. Das soll die Funktion der Offlinedateien beheben, die jedoch für die Synchronisierung eigene Herausforderungen mit sich bringt. Mit Offlinedateien beschäftige ich mich in Lösung 3.6. Unter der Voraussetzung, dass Sie in Ihren Anforderungen Kompatibilität, Anbindung und Serververfügbarkeit vorgesehen haben wie in Lösung 3.1, stellt die Ordnerumleitung sicher eine unverzichtbare Komponente Ihres UDS-Frameworks dar. Konfigurieren von Richtlinien für die Ordnerumleitung Jetzt wollen wir die Schritte zum Einrichten der Ordnerumleitung untersuchen. Wir gehen als Beispiel davon aus, dass Sie Dokumente und Desktop umleiten wollen. Die Kenntnisse für die Entscheidung, was für Ihr Unternehmen richtig ist, erwerben Sie später bei der Erörterung von Offlinedateien und servergespeicherten Profilen. Außerdem nehmen wir an, dass in Ihrem Unternehmen mindestens ein System mit Windows Vista oder Windows Server 2008 vorhanden ist. Zu Windows Vista und Windows 220 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Server 2008 gehört die Erweiterung Folder Redirection Editor für das Snap-In Gruppenrichtlinienverwaltungs-Editor, früher Gruppenrichtlinien-Editor genannt. Diese Erweiterung (siehe Abbildung 3.13) enthält wichtige neue Einstellungen für die Umleitungsrichtlinien, die diese Windows-Versionen benötigen. Sie gibt Ihnen außerdem die Möglichkeit, die Umleitung für Clients mit Windows XP und Windows 2000 einzurichten. Abbildung 3.13 Das Snap-In Ordnerumleitung Wichtig Bearbeiten Sie Richtlinien für die Ordnerumleitung auf einem Windows Vista- oder Windows Server 2008-System, um die Richtlinieneinstellungen bereitzustellen, die Vista-Clients benötigen. Wie wir gleich genauer erläutern werden, funktionieren die Richtlinien auch bei älteren Windows-Versionen korrekt. Schließlich setzen wir voraus, dass Sie die Grundlagen der Gruppenrichtlinien kennen – insbesondere, wie Sie ein Gruppenrichtlinienobjekt auf einen Standort, eine Domäne oder eine Organisationseinheit anwenden, wie Sie es auf der Grundlage der Mitgliedschaft in Sicherheitsgruppen filtern, wie Sie den Richtlinienergebnissatz auswerten und wie Sie die Gruppenrichtlinien-Verwaltungskonsole (Group Policy Management Console, GPMC) und den Gruppenrichtlinienverwaltungs-Editor benutzen. Falls Sie Ihre Kenntnisse auffrischen müssen, beginnen Sie bei http://www.microsoft.com/technet/grouppolicy oder lesen Sie Windows Server 2008- und Windows Vista-Gruppenrichtlinien von Derek Melber (Microsoft Press 2008) oder Group Policy: Management, Troubleshooting and Security: For Windows Vista, Windows 2003, Windows XP and Windows 2000 von Jeremy Moskowitz (Sybex 2007). Lösungsgruppe 10, »Verwalten von Änderungen, Konfiguration und Richtlinien«, enthält tiefer gehende Lösungen zu Gruppenrichtlinien. 3.5 Entwerfen und Ausführen der Ordnerumleitung 221 Festlegen der Ziele für die Ordnerumleitung Windows Vista und höher unterstützt die Umleitung von 13 Ordnern, wie Sie in Abbildung 3.13 sehen. Sie finden die Einstellungen, indem Sie ein Gruppenrichtlinienobjekt öffnen und zu Benutzerkonfiguration\Windows-Einstellungen\Ordnerumleitung wechseln. Es gibt drei mögliche Einstellungen für jeden Ordner: Standard, Erweitert und Nicht konfiguriert, von denen Sie in der Dropdownliste Einstellung auf der Registerkarte Ziel der Richtlinie für die Ordnerumleitung eine auswählen wie in Abbildung 3.14. Wir sehen uns die einzelnen Einstellungen noch an, wobei Sie sich merken sollten, dass nicht die Einstellung in einem einzelnen Gruppenrichtlinienobjekt zählt, sondern die resultierende Einstellung, die auf den Client angewendet wird. Leider ist die Benutzerschnittstelle für die Einstellungen der Ziele der Ordnerumleitung nicht gerade selbsterklärend und in ihrem Verhalten ein wenig eigenwillig. Standard: Leitet alle Ordner auf den gleichen Pfad um Diese Einstellung leitet die Ordner aller Benutzer nicht an genau denselben Ort um, sondern in einen benutzerspezifischen Ordner in einem einzigen Namespace. Abbildung 3.14 zeigt eine übliche Vorgehensweise. Abbildung 3.14 Die Seite Ziel einer Ordnerumleitungsrichtlinie In Abbildung 3.14 ist »der gleiche Pfad« ein Unterordner des im Textfeld Stammverzeichnis angegebenen Pfades – hier \\contoso.com\users. Wie Sie unten im Dialogfeld sehen können, erhält dort jeder Benutzer einen eindeutigen Ordner, der seinen Prä-Windows 2000-Anmeldenamen trägt (die Eigenschaft sAMAccountName), sowie einen Unterordner mit dem Namen documents. Daraus ergibt sich in diesem Beispiel als Namespace für die umgeleiteten Dokumentordner der einzelnen Benutzer \\contoso.com\users\%username%\documents. 222 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Die Einstellung Standard wird nicht gewählt, um alle Benutzer an genau demselben Ort unterzubringen, sondern um ihnen eine gemeinsame Methode zum Einrichten des Ordnerziels zu geben, die auf Ihrer Auswahl der folgenden Optionen für den Ort des Zielordners beruht: Einen Ordner für jeden Benutzer im Stammpfad erstellen Diese Option für den Ort des Zielordners (siehe Abbildung 3.14) ermöglicht das Anlegen eines Stammpfads, unter dem die Ordner der einzelnen Benutzer erstellt werden, soweit sie nicht schon vorhanden sind und als Ziel dienen. Es sollte sich um den Pfad eines DFS-Namespace handeln, um die UDS-Anforderung zu erfüllen, den physischen Speicherort von den UDS-Konfigurationszeigern zu trennen. Welchen Pfad Sie genau einrichten, hängt von den Überlegungen zum Entwurf des DFS-Namespace in Lösung 3.4 ab. Unter dem Stammpfad legt Windows automatisch einen Ordner für den Benutzer an, wenn noch keiner vorhanden ist, sowie einen Unterordner, dessen Name dem des umgeleiteten Ordners entspricht – beispielsweise Dokumente. Beachten Sie, dass dieser Namespace genau den DFS-Namespace unterstützt, den wir in Lösung 3.4 eingerichtet haben. Bei dieser Option für den Ort des Zielordners gibt es keine Möglichkeit, den Namen des Unterordners zu ändern (beispielsweise Dokumente) oder zu verhindern, dass er angelegt wird. An folgenden Pfad umleiten Bei dieser Option können Sie im Textfeld Stammverzeichnis einen Pfad für den Zielordner angeben. Das Steuerelement ist ein wenig irreführend, da es so scheint, als zeigten die Ordner der einzelnen Benutzer alle auf genau denselben Ort. Sie dürfen jedoch bestimmte Umgebungsvariablen (nämlich %username%, %userprofile%, %homeshare% und %homepath% als Bestandteile des Pfads verwenden. Daher legt der Stammpfad \\contoso.com\users\%username%\documents einen eindeutigen Ordner für jeden Benutzer an. Falls Sie einen Unterordner erstellen möchten, können Sie im Stammpfad weitere Informationen angeben. Der Pfad \\contoso.com\users\%username%\documents ist zum Beispiel gültig und führt zu einem identischen Ergebnis wie die Option Einen Ordner für jeden Benutzer im Stammpfad erstellen. Wichtig Wenn Sie sich an die Anleitung für den DFS-Namespace in Lösung 3.4 halten, ist diese Option für den Ort des Zielordners die richtige. Geben Sie als Stammpfad \\<Namespace>\%username%\documents an. Mit dieser Option versetzen Sie sowohl Windows Vista- als auch Windows XP-Clients in die Lage, einen Ordner in den DFS-Namespace Documents umzuleiten. Weitere Informationen über das Nebeneinander von Windows Vista und Windows XP folgen weiter hinten in dieser Lösung und in Lösung 3.7. Trösten Sie sich, wenn Sie langsam glauben, verrückt zu werden: Die Einstellung An folgenden Pfad umleiten verhält sich in der Tat merkwürdig. Geben Sie den Pfad mit einer Variable ein, beispielsweise \\contoso.com\users\%username%[\<unterordner>]¸ ist sie völlig gültig und funktioniert. Schließen Sie die Eigenschaften der Richtlinieneinstellung und öffnen sie erneut, hat die Benutzerschnittstelle Ihre Einstellung in Einen Ordner für jeden Benutzer im Stammpfad erstellen geändert und Ihre Konfiguration neu interpretiert – sie zeigt beispielsweise im Stammpfad \\contoso.com\users und im Beispiel \\contoso.com\users\clair[\<unterordner>] an. Bestimmte Änderungen lassen sich nicht durchführen (beispielsweise eine Namensänderung bei Unterordnern), ohne die Option für den Zielordner auf An folgenden Pfad umleiten zurückzusetzen. Mein Ratschlag: Nehmen Sie einfach zur Kenntnis, dass die Benutzerschnittstelle für die Richtlinieneinstellung bizarr ist, die Ergebnisse der Umleitung jedoch genau ihren Wünschen und der ursprünglichen Einstellung entsprechen. 3.5 Entwerfen und Ausführen der Ordnerumleitung 223 Sie können die Option auch zur Umleitung der Ordner mehrerer Benutzer an einen einzigen Ort einsetzen, um deren Arbeitsumfeld zu vereinheitlichen. In das Basisverzeichnis des Benutzers kopieren Diese Option für den Ort des Zielordners steht nur bei der Umleitung des Ordners Dokumente zur Verfügung. Sie ermöglicht die Umleitung an den durch die Eigenschaft homeDirectory des Benutzerobjekts in Active Directory festgelegten Ort und ist insbesondere bei der Umstellung von Basisverzeichnissen »alter Schule« auf umgeleitete Dokumentordner im neuen Stil sinnvoll. Das durch das Basisverzeichnis im Benutzerobjekt festgelegte zugeordnete Laufwerk steht den Benutzern weiterhin zur Verfügung, und der Ordner Dokumente wird ebenfalls umgeleitet – beide an denselben Ort. Wenn Sie vorhaben, das zugeordnete Laufwerk in nächster Zeit zu entfernen, empfehle ich Ihnen anstelle dieser Option die vorherige (An folgenden Pfad umleiten) und die Einrichtung des Pfads mit der Vorlage, die Sie für die Basisverzeichnisse Ihres Benutzers verwenden, beispielsweise \\<server>\<freigabe>\%username%. Löschen sie dann die Eigenschaften homeDrive und homeDirectory aus dem Benutzerkonto, so wird der Ordner (Eigene) Dokumente weiter an den richtigen Ort umgeleitet. An lokalen Benutzerprofilpfad umleiten Diese Option für den Ort des Zielordners leitet den Ordner an seinen Windows-Standardort als Unterordner des Benutzerprofils um. Dem Ordner Dokumente folgen Diese Zieleinstellung – die nur für die Ordner Bilder, Musik und Videos gilt – legt fest, dass sie Unterordner von Dokumente sein sollen, was besonders der Kompatibilität mit Windows XP dient, das Eigene Musik und Eigene Videos nicht umleiten kann. Mehr über diese Option erfahren Sie später. Erweitert: Gibt Pfade für verschiedene Benutzergruppen an Die Einstellung Erweitert bietet dieselben Optionen für die Orte der Zielordner. Der Unterschied besteht darin, dass diese Einstellung im Gegensatz zur Einstellung Standard die Einrichtung unterschiedlicher Orte für verschiedene Benutzergruppen zulässt. Das klassische und übliche Nutzungsszenario für diese Einstellung ist die Umleitung von Benutzergruppen auf unterschiedliche Server. Anstatt eigene Gruppenrichtlinienobjekte für die einzelnen Benutzerrollen verwalten zu müssen, können Sie Umleitungsrichtlinien für alle Rollen in einem Objekt zusammenfassen. Abbildung 3.15 zeigt ein Beispiel, in dem Benutzer in New York (die zur Gruppe der Ortsrolle LOC_NYC gehören) und Sydney (aus der Gruppe der Ortsrolle LOC_NYC) auf geeignete Server umgeleitet werden. Die Gruppen und Pfade richten Sie mit einem Klick auf Hinzufügen ein. Für jede Gruppe kann eine der vier vorgestellten Optionen für Zielordner festgelegt werden. In Abbildung 3.15 werden wieder Pfade zu DFS-Namespaces verwendet. Bei \\contoso.com\users\nyc und \\contoso.com\users\syd handelt es sich um DFS-Ordner, die auf Server in New York bzw. Sydney zielen. Ich habe ein Beispiel auf Standortbasis gewählt, um es leichter verständlich zu machen. Wie wir in Lösung 3.4 erörtert haben, sollten Sie dies jedoch unbedingt vermeiden. Verwenden Sie einen Namespace, der auf abstrakten oder unveränderlichen Eigenschaften beruht – damit sind Sie besser dran. 224 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abbildung 3.15 Die Einstellung Erweitert für die Ordnerumleitung Nicht konfiguriert Diese Einstellung leitet Ordner abhängig von ihrem aktuellen Status unterschiedlich um. Ist der Ordner noch nie umgeleitet worden, leitet sie ihn standardmäßig an seinen Standardort im Benutzerprofil um – beispielsweise %userprofile%\<ordnername>. Eine Ausnahme bilden Eigene Bilder und Eigene Musik in Windows XP, die Unterordner von Eigene Dokumente sind. Wurde der Ordner jedoch schon einmal umgeleitet und die damalige Einstellung dann in Nicht konfiguriert geändert, wird er je nach Einstellung in der früheren Richtlinie an einen von zwei Orten umgeleitet. Der Abschnitt Entfernen der Richtlinie auf der Registerkarte Einstellungen einer Richtlinie für die Ordnerumleitung weist zwei Optionen auf (siehe Abbildung 3.16): Ordner nach Entfernen der Richtlinie am neuen Ort belassen Falls dies die resultierende Einstellung war und die Richtlinie jetzt Nicht konfiguriert lautet, bleibt die Umleitung des Ordners an den Ort bestehen, der in der vorherigen Richtlinie festgelegt wurde. Ordner nach Entfernen der Richtlinie zurück an den Ort des lokalen Benutzerprofils umleiten Falls dies die resultierende Einstellung war und die Richtlinie jetzt Nicht konfiguriert lautet, wird der Ordner an seinen Standardort im Benutzerprofil umgeleitet. Dasselbe Optionspaar bestimmt nicht nur dann das Ziel eines umgeleiteten Ordners, wenn die neue Richtlinie Nicht konfiguriert heißt, sondern auch, wenn überhaupt keine Richtlinie mehr für den Ordner festgelegt ist. 3.5 Entwerfen und Ausführen der Ordnerumleitung 225 Einstellungen für die Ordnerumleitung Abbildung 3.16 zeigt die häufigste Ausgangskonfiguration dieser Einstellungen, die unglücklicherweise nicht den Windows-Standardwerten entspricht. Abbildung 3.16 Die Seite Einstellungen der Richtlinie für die Ordnerumleitung Dem Benutzer exklusive Zugriffsrechte für <Ordner> erteilen Diese Option führt zwei Dinge durch. Zum einen legt sie den Ordner an, falls er noch nicht vorhanden ist, und zwar mit nur expliziten Berechtigungen – die Vererbung der Berechtigungen des übergeordneten Ordners ist deaktiviert. Diese expliziten Berechtigungen gewähren nur dem Benutzer und der Identität System des Servers vollen Zugriff. Nicht einmal die Administratoren dürfen auf die Benutzerordner zugreifen. Die Berechtigungen gelten nicht für übergeordnete Ordner, falls solche bestehen, sondern für den Zielordner. Wenn Sie beispielsweise die Zielordneroption Einen Ordner für jeden Benutzer im Stammpfad erstellen mit \\contoso.com\users als Stammpfad und \\contoso.com\users\clair\documents als Beispiel benutzen, bedeutet das, dass die Vererbung nur für den Ordner Documents deaktiviert ist. Der übergeordnete (hier Clair) erbt seinerseits die Berechtigungen seines übergeordneten Ordners und außerdem die expliziten Berechtigungen, die dem Benutzer den Vollzugriff geben. Zum anderen prüft die Ordnerumleitung, ob der Benutzer Besitzer des Zielordners ist, wenn dieser bereits besteht. Wenn nicht, scheitert die Umleitung für den betreffenden Ordner. Deaktivieren Sie das Kontrollkästchen Dem Benutzer exklusive Zugriffsrechte ... erteilen, entfällt die Prüfung der Eigentümerschaft. Noch gewichtiger ist jedoch, dass dann für Ordner, die durch Umleitung angelegt werden, die Vererbung aktiviert ist und der Benutzer außerdem explizit Vollzugriff hat. Durch die Vererbung kann die vom Stamm des Benutzerdatenspeichers definierte Sicherheitsrichtlinie auf die gesamte Benutzerdatenstruktur angewendet werden. Dieser Ansatz entspricht den Bedürfnissen der meisten Organisationen weit besser. 226 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Wichtig Normalerweise deaktivieren Sie das standardmäßig aktive Kontrollkästchen neben Dem Benutzer exklusive Zugriffsrechte für <Ordner> erteilen. In Lösung 3.2 wurden die Berechtigungen für Benutzerdatenspeicher auf dem Server detailliert beschrieben. Diese Einstellung bleibt wirkungslos, wenn die Ordner bereits bestehen. Setzen Sie eine Vorstufe wie das Skript UDS_UserFolder_Provision_DFS.vbs ein, können Sie die Zugriffssteuerungslisten für die einzelnen Ordner beim Anlegen angeben, sodass die Berechtigungen von dieser Richtlinie nicht geändert werden. Den Inhalt von <Ordner> an den neuen Ort verschieben Diese Einstellung ist standardmäßig aktiviert, was dazu führt, dass der Inhalt eines Ordners beim Einrichten eines neuen Ziels für die Ordnerumleitung durch die Richtlinie dorthin verschoben wird. Die Daten wandern also vom alten Ziel des Ordners zum neuen. Stellen Sie sich vor, ein Benutzer wird heute auf den Server in New York verschoben und unterliegt, nachdem er nach Sydney zurückgekehrt ist, dem Gruppenrichtlinienobjekt, das Ordner an den Server in Sydney umleitet. Seine Daten werden wieder von New York nach Sydney verschoben. Dies geschieht in gleicher Weise, wenn der Ordner eines Benutzers derzeit in seinem Profil abgelegt ist und dann auf einen Server umgeleitet wird. Der Ordnerinhalt wird auf den Server verlegt. Sollten Sie diese Einstellung aktivieren? Das kommt auf die Umstände an. Sie stellt tatsächlich eine wirkungsvolle Methode dar, den Ordner automatisch und für den Benutzer unsichtbar zu verschieben. Die Frage lautet, wie wahrscheinlich sie Schwierigkeiten für den Benutzer verursacht oder versagt, was dem Administrator Schwierigkeiten macht. Ich empfehle diese Einstellung bei einfachen, kleinteiligen Ordnern. Leiten Sie beispielsweise Suchvorgänge, Verknüpfungen, Kontakte, Gespeicherte Spiele oder Favoriten um – was unter Windows Vista möglich ist –, sind Sie damit wahrscheinlich gut bedient. Bei umfangreicheren oder komplexeren Ordnern, beispielsweise Dokumente, wollen Sie wahrscheinlich dafür sorgen, dass die Umstellung schnell, problemlos und vollständig erfolgt. Für diese Fälle schlage ich vor, das Kontrollkästchen zu deaktivieren und ein Verfahren einzuführen, das den Benutzerordner Dokumente unmittelbar vor dem Augenblick an den neuen Ort verschiebt, in dem er von der Richtlinie für die Ordnerumleitung erfasst wird. Nachdem die Daten übertragen sind, wird die Umleitungsrichtlinie angewendet. Mit diesem Ansatz können Sie gewährleisten, dass die Umstellung erfolgreich ist. Er hält sich an alle Regeln und jede Logik, die Sie dafür aufgestellt haben, und sorgt außerdem dafür, dass der Benutzer bei der ersten Anmeldung nicht übermäßig aufgehalten wird. Wichtig Bei umfangreichen oder komplexen Datenstrukturen wie Dokumente, Desktop, AppData, Bilder, Musik und Videos sollten Sie das Kontrollkästchen Den Inhalt von <Ordner> an den neuen Ort verschieben deaktivieren und den Ordnerinhalt auf andere Art verlagern. Beachten Sie, dass sich diese Umleitungseinstellung für einen Ordner nicht ändert. Haben Sie wie in Lösung 3.4 beschrieben einen vollständig aufgelisteten Namespace bereitgestellt und werden die Ordner der Benutzer aufgrund einer Gruppenrichtlinie nach \\<Namespace>\%username%\documents umgeleitet, wenn ein Benutzer von New York nach Sydney umzieht, erfolgt keine Änderung der Umleitungseinstellung des Clients. Der Ordner Documents wird immer noch zu demselben Pfad umgeleitet – Sie ändern einfach sein Ordnerziel im DFS-Namespace. Diese Richtlinie ist damit nutzlos – Sie müssen die Daten auf andere Weise verschieben, beispielsweise mit einem Robocopy-Skript wie dem in Lösung 3.10 vorgestellten. 3.5 Entwerfen und Ausführen der Ordnerumleitung 227 Einstellungen für den Fall einer Richtlinienänderung Die letzte Entscheidung, die Sie beim Aufstellen von Richtlinien für die Ordnerumleitung treffen müssen, betrifft die Verfahrensweise bei einer Änderung oder beim Löschen der in Kraft befindlichen Einstellung in der Gruppenrichtlinie. Die folgenden vier Szenarien können zum Löschen einer Richtlinie führen: Das Gruppenrichtlinienobjekt wird gelöscht oder seine Benutzereinstellungen werden deaktiviert. Der Benutzer unterliegt nicht mehr dem Gruppenrichtlinienobjekt, weil der Link dorthin deaktiviert ist oder ein Filter, beispielsweise ein Sicherheitsgruppenfilter, die Richtlinieneinstellungen des Objekts nicht mehr auf den Benutzer anwendet. Die gültige Einstellung des Benutzers für die Umleitung des Ordners wird geändert, weil ein anderes Gruppenrichtlinienobjekt Vorrang hat. Die Einstellung des Gruppenrichtlinienobjekts für die Ordnerumleitung wird auf Nicht konfiguriert gesetzt. Wählen Sie die Option Ordner nach Entfernen der Richtlinie zurück an den Ort des lokalen Benutzerprofils umleiten, wird der Benutzerschnittstellenordner (beispielsweise Dokumente) an den Standardordner im Benutzerprofil umgeleitet und die Daten werden an den Ort des Benutzerprofils kopiert (nicht verschoben), ohne dass diese nicht unbedeutende Kopieraktion in der Benutzerschnittstelle sichtbar ist. Um es noch einmal zu betonen: Sämtliche Daten im umgeleiteten Ordner werden an den Ort des Benutzerprofils kopiert, wenn die Richtlinie entfernt wird, was in seiner Auswirkung das Gegenteil der Einstellung Den Inhalt von <Ordner> an den neuen Ort verschieben ist: Diese Einstellung verschiebt die Daten an den neuen Ort, wenn die Richtlinie zum ersten Mal angewendet wird. Das häufigste Szenario, bei dem Richtlinien für die Ordnereinstellung gelöscht werden, ist in der Praxis die Versetzung eines Benutzers an einen anderen Ort. Ein Benutzer aus New York wird beispielsweise nach Sydney versetzt und deshalb das Active Directory-Objekt, das ihn darstellt, von einer New Yorker Organisationseinheit in eine Organisationseinheit in Sydney verschoben. Für die Benutzer der australischen Organisationseinheit gilt ein anderes Gruppenrichtlinienobjekt, das Ordner auf den dortigen Server umleitet. Sie wissen bereits aus Lösung 3.4¸ dass Namespaces auf Standortbasis für Benutzerdaten und -einstellungen zu anderen Problemen führen. In solchen und den meisten anderen Situationen sollten Sie die Option Ordner nach Entfernen der Richtlinie am neuen Ort belassen wählen, was eigentlich Folgendes bedeutet: »Lass die Daten in dem Ordner, den dieses Gruppenrichtlinienobjekt angibt, und behalte die Umleitung zu diesem Ordner bei.« Gilt das Gruppenrichtlinienobjekt, das Ordner auf einen Server in New York umleitet, nicht mehr für den Benutzer, der nach Sydney wechselt, werden seine Daten in diesen Ordnern nicht in das lokale Benutzerprofil kopiert. Wird jedoch die bereits beschrieben Option Den Inhalt von <Ordner> an den neuen Ort verschieben im Gruppenrichtlinienobjekt in Sydney aktiviert, führt sie zur Übertragung der Ordner des Benutzers vom New Yorker Server auf den in Sydney. Die Wahlmöglichkeiten beim Entfernen einer Richtlinie bedeuten also eigentlich entweder »Kopiere die Daten des Benutzers in das lokale Profil« oder »Lass die Daten, wo sie sind«, wenn das Gruppenrichtlinienobjekt nicht mehr gilt. Wird ein anderes Gruppenrichtlinienobjekt wirksam, werden die Ordner an die dort festgelegten Ziele umgeleitet, wobei die dortige Einstellung Den Inhalt von <Ordner> an den neuen Ort verschieben bestimmt, ob durch die Ordnerumleitung Daten verlagert werden. 228 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Eine interessante Lösung ergibt sich, wenn Sie beide Optionen wählen, also Den Inhalt von <Ordner> an den neuen Ort verschieben und Ordner nach Entfernen der Richtlinie zurück an den Ort des lokalen Benutzerprofils umleiten. Stellen Sie sich ein Szenario mit zwei Orten vor: New York und Sydney. Das eine Gruppenrichtlinienobjekt leitet New Yorker Benutzer auf New Yorker Server um. Es ist mit der New Yorker Organisationseinheit verknüpft oder wird anhand einer Sicherheitsgruppe gefiltert, die die New Yorker Benutzer umfasst (beispielsweise LOC_NYC). Eine anderes Gruppenrichtlinienobjekt leitet Benutzer in Sydney auf die gleiche Weise auf Server in Sydney um. Daneben gibt es eine dritte Organisationseinheit – nennen wir sie »Benutzer im Übergang« –, für deren Benutzer keine Richtlinieneinstellung für die Ordnerumleitung besteht. Eine Benutzerin in New York sorgt dafür, dass ihre Ordner auf den dortigen Server umgeleitet werden. Sie wird demnächst nach Sydney versetzt. Ihr Rechner ist ein Laptop. Vor ihrem letzten Tag in New York wird ihr Benutzerobjekt in die Organisationseinheit Benutzer im Übergang verschoben. Wenn sie sich anmeldet, gilt das Gruppenrichtlinienobjekt mit der Umleitung nach New York nicht mehr für sie. Dessen Einstellung für den Fall, dass eine Gruppenrichtlinie entfernt wird, veranlasst, dass ihre Daten an den Ort ihres lokalen Benutzerprofils kopiert werden. Dann beginnt ihr Umzug, während ihr Objekt in die Organisationseinheit in Sydney verschoben wird. Wenn sie in Sydney ankommt und sich anmeldet, unterliegt sie dem dortigen Gruppenrichtlinienobjekt für Ordnerumleitung, sodass die dortige Einstellung Den Inhalt von <Ordner> an den neuen Ort verschieben dazu führt, dass der Inhalt ihres Ordners aus ihrem Profil auf den Server in Sydney verschoben wird. Anders ausgedrückt: Diese beiden Einstellungen und die vorübergehende Unterbringung der Benutzerin in einer Organisationseinheit ohne Richtlinie für Ordnerumleitung führen dazu, dass sie ihren Wechsel selbst durchführen kann. Die Daten vom New Yorker Server wanderten auf ihren Laptop, den sie nach Sydney mitnimmt, und dann auf den dortigen Server. Das klingt großartig und ist auch so. Sie müssen nur bedenken, dass die Übertragung der Daten lange dauern kann, insbesondere bei Ordnern wie Dokumente. Beachten Sie, dass sich eine ähnliche Datenübertragung auch dadurch erreichen lässt, dass für die Benutzer in der Organisationseinheit Benutzer im Übergang ein Gruppenrichtlinienobjekt eingerichtet wird, das Ziele für die Ordnerumleitung mit der Option Ordner nach Entfernen der Richtlinie zurück an den Ort des lokalen Benutzerprofils umleiten festlegt. Unterstützung der Umleitung für Benutzer mit sowohl Windows XP als auch Windows Vista Befinden sich im Gültigkeitsbereich eines Gruppenrichtlinienobjekts für Ordnerumleitung Benutzer, die sowohl mit Windows XP als auch mit Windows Vista arbeiten, müssen Sie die Richtlinie so einrichten, dass sie für alle Plattformen gilt, und dafür sorgen, dass sie auch die Ordner Bilder, Musik und Videos erfasst. Planen Sie die Umstellung von Windows XP auf Windows Vista und unterstützen Sie dabei die Ordnerumleitung, müssen Sie dies ebenfalls beim Entwurf berücksichtigen. Umleitungsrichtlinie auch auf die Betriebssysteme Windows 2000, Windows 2000 Server, Windows XP und Windows Server 2003 anwenden Diese Option mit ihrem langen Namen, die ich mit Auch auf Windows XP anwenden abkürzen werde, sehen Sie in Abbildung 3.16. Sie ist die wichtigste Einstellung zur Unterstützung der Umleitung auf allen Plattformen. Wenn Sie das zugehörige Kontrollkästchen aktivieren, wird die Umleitungsrichtlinie in einem Format geschrieben, das mit den aufgeführten Betriebssystemen kompatibel ist. Verzichten Sie darauf, wird sie in einem Format abgefasst, das nur Windows Vista und Windows Server 2008 verstehen. Besteht die Wahrscheinlichkeit, dass sich irgendein von dieser Gruppenrichtlinie betroffener 3.5 Entwerfen und Ausführen der Ordnerumleitung 229 Benutzer bei einem System mit einem der genannten Betriebssysteme anmeldet und Zugriff auf seine umgeleiteten Ordner braucht, sollten Sie das Kontrollkästchen aktivieren. Benötigen alle Benutzer im Gültigkeitsbereich des Gruppenrichtlinienobjekts nur von Systemen mit Windows Vista oder Windows Server 2008 aus Zugriff auf ihre umgeleiteten Ordner, können Sie es lassen. Die Einstellung Auch auf Windows XP anwenden steht nur in Ordnerumleitungsrichtlinien für Dokumente, Bilder, Desktop, AppData und das Startmenü zur Verfügung, da es sich um die einzigen Ordner handelt, die die früheren Windows-Versionen mithilfe einer Gruppenrichtlinie umleiten können. Wichtig Ich empfehle Ihnen, das Kontrollkästchen für die Einstellung Auch auf Windows XP anwenden immer zu aktivieren, außer wenn eine Ordnerumleitungsrichtlinie ausschließlich für Windows Vista-Benutzer gilt. Nebenwirkungen der Richtlinie Auch auf Windows XP anwenden Wichtig ist, dass diese Einstellung das Verhalten der Option Einen Ordner für jeden Benutzer im Stammpfad erstellen für Ordnerziele beeinflusst. Ist die Einstellung Auch auf Windows XP anwenden aktiviert, bekommt der Unterordner, der unter dem Stammpfad angelegt wird, den Windows XPNamen Eigene Dokumente – beispielsweise \\contoso.com\users\clair\my documents. Die Funktionalität des umgeleiteten Ordners bleibt vollkommen unangetastet, der Ordnername selbst ist aber ein herkömmlicher. Das ist problematisch, wenn Sie meine Anleitung befolgt und einen Vorgang für die Bereitstellung von Benutzerdatenspeichern erstellt haben, beispielsweise das Skript UDS_UserFolder_Provision_DFS.vbs, das einen konsistenten Namespace mit Windows Vistakompatiblen Namen wie Dokumente für jeden Benutzer anlegt. Eine noch merkwürdigere Folge der gleichzeitigen Verwendung der Richtlinieneinstellungen Auch auf Windows XP anwenden und Einen Ordner für jeden Benutzer erstellen besteht darin, dass Windows Explorer den Pfad als E:\Users\<benutzername>\Documents anzeigt, obwohl er auf dem Server E:\Users\<benutzername>\My Documents lautet, was den Unterordner My Documents einschließt. Windows Explorer zeigt den Aliasnamen des Ordners, was in die Irre führen kann, wie ich aus eigener Erfahrung weiß. Ich hatte Mühe damit, einen Benutzer mit seinem umgeleiteten Dokumentordner zu verbinden. Dabei meldete ich mich über Remotedesktop bei dem Server an, um mich noch einmal zu überzeugen, dass der Pfad richtig ist. Er wurde in Windows Explorer als E:\Users\<benutzername>\Documents angezeigt, aber der UNC-Pfad \\server\users$\<benutzername>\documents funktionierte einfach nicht. Nach einer Viertelstunde Haareraufen stellte ich fest, dass \\server\users$\<benutzername>\my documents gebraucht wurde. Und tatsächlich, die Anzeige des Ordners von der Befehlszeile aus erforderte den Befehl CD zum Wechsel in den Unterordner …\My Documents. Selbst in einer gemischten Windows XP- und Windows Vista-Umgebung sind Sie besser dran, wenn Sie den Pfad zum Ort des Ordnerziels einfach mit \\<Namespace>\%username%\documents angeben, sodass alle neuen Ordner in einem vollständig kompatiblen Namespace erstellt werden. Ich empfehle Ihnen, in Zukunft Ordnernamen »neuer Schule« wie Dokumente anstelle von Eigene Dokumente zu verwenden. Um dies zu erreichen, nutzen Sie Ordnerzieloption An folgenden Pfad umleiten und geben \<Namespace>\%username%\documents an. Mit dieser Einstellung sucht das Gruppenrichtlinienobjekt sowohl für Windows Vista- als auch für Windows XP-Clients einen Ordner Documents (nicht My Documents), legt ihn ggf. an und benutzt ihn, was Ihnen dabei hilft, zum Profilnamespace von Windows Vista überzugehen. Dabei handelt es sich wiederum in erster Linie nicht um ein funktionelles, sondern um ein kosmetisches Problem, aber ich bin inzwischen über die Liebesaffäre mit »My« bzw. »Eigene« hinweg. Denken Sie daran, dass Ihre Windows XP-Benutzer auf ihrem Desktop immer noch den Ordner Eigene Dokumente sehen – dies ist lediglich eine Hilfe für uns am Back-End. 230 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Wichtig Die beste Einstellung für den Ort eines Ordnerumleitungsziels lautet An folgenden Pfad umleiten mit Ihrem konkreten Namespace als Stammpfad – beispielsweise \\<Namespace>\%username%\[Dokumente | Desktop | usw.]. Damit gewährleisten Sie ein konsistentes Erscheiningsbild am Front- und Back-End für Benutzer mit Windows XP und Windows Vista. Umleitungsrichtlinien für Bilder, Musik und Videos Die Ordner Bilder, Musik und Videos erfordern besondere Beachtung. Der Ordner Eigene Bilder ist unter Windows XP standardmäßig ein Unterordner von Eigene Dokumente, genau wie Eigene Musik und Eigene Videos. Wie Sie wissen, sind Bilder, Musik und Videos jetzt unter Windows Vista Unterordner des Benutzerprofils. Wenn Sie den Ordner Dokumente umleiten und sich ein Benutzer, für den die Richtlinie gilt, sowohl bei Windows XP als auch bei Windows Vista anmeldet, müssen Sie – wegen der Kompatibilität mit Windows XP – dafür sorgen, dass Musik und Videos Unterordner von Dokumente bleiben, sonst sieht der Benutzer bei der Anmeldung bei den beiden Betriebssystemen unterschiedliche Orte. Leiten Sie Dokumente um und aktivieren Auch auf Windows XP anwenden, wählt der Editor für die Ordnerverwaltung für Bilder, Musik und Videos glücklicherweise automatisch Dem Ordner Dokumente folgen, solange die Richtlinien Nicht konfiguriert lauten. Wird eine Richtlinie für einen der drei Ordner auf Standard oder Erweitert gesetzt, ändert die Richtlinieneinstellung Auch auf Windows XP anwenden für Dokumente dies nicht, sodass die Ordner nicht dem Ordner Dokumente folgen und für Windows Vista-Clients und solche mit älteren Windows-Versionen eigene Ordner verwendet werden. Wichtig Eine Methode, um sicherzustellen, dass die Ordner Bilder, Musik und Videos umgeleitet und kompatibel mit Windows Vista-Clients und solchen mit älteren Windows-Versionen bleiben, besteht darin, dafür zu sorgen, dass ihre Umleitungsrichtlinien auf Dem Ordner Dokumente folgen gesetzt sind. Umleitung ohne Gruppenrichtlinien: Favoriten, Musik, Bilder und Videos Ihnen steht noch eine andere Option zur Verfügung: die Umleitung von Favoriten, Musik, Bilder und Videos für Windows XP-Clients ohne Gruppenrichtlinien. Indem Sie die jeweiligen Werte in der Windows XP-Registrierung auf einen Netzwerkspeicher für diese Ordner zeigen lassen, können Sie sie umleiten. Anschließend können Sie sie mit Standardgruppenrichtlinieneinstellungen für Windows Vista-Clients in denselben Netzwerkspeicher umleiten. Die Ordnerumleitungsrichtlinie in Windows XP unterstützt die Umleitung von Eigene Bilder an einen anderen Ort, obwohl die Benutzerschnittstelle der Erweiterung zur Ordnerumleitung den Vorgang recht interessant machte. Favoriten, Eigene Musik und Eigene Videos lassen sich unter Windows XP nicht mit Gruppenrichtlinien umleiten. Sie können Shell-Ordner aber mithilfe der Registrierung umleiten. Die Konzepte und Ansätze, die ich hier aufzeige, gelten auch für andere Shell-Ordner – beispielsweise SendTo, NetHood, PrintHood usw. –, aber ich hatte noch nicht das Bedürfnis, andere als die Medienordner oder Favoriten umzuleiten. Die Umleitungsziele sind in der Registrierung unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer definiert. Hier sind zwei untergeordnete Schlüssel relevant: Shell Folders und User Shell Folders. Der zweite enthält die primäre Definition der Ordnerziels. In Abbildung 3.17 sehen Sie, dass jeder Shell-Ordner einen Wert vom Typ REG_EXPAND_SZ aufweist. Der Name des Werts ist der Ordnername, der Wert das Ordnerziel. Es kann die Umgebungsvariable %USERPROFILE% oder %USERNAME% enthalten, beispielsweise %USERPROFILE%\Eigene Dokumente\Eigene Musik – den Standardort für den Ordner Eigene Musik. Wie Abbildung 3.17 zeigt, 3.5 Entwerfen und Ausführen der Ordnerumleitung 231 können Sie jeden Ordner umleiten, genauso wie wir Favoriten, Musik, Bilder und Videos nach \\contoso.com\users\%USERNAME%\<ordner> umgeleitet haben. Obwohl es sich um einen Windows XPClient handelt, habe ich einen Ordnernamen und einen Ort gewählt, der zur Struktur von Windows Vista passt, damit die Umstellung auf Windows Vista einfacher wird. Abbildung 3.17 Der Registrierungsschlüssel für die Shell-Benutzerordner Um die Änderung der Registrierungswerte für die Shell-Benutzerordner auf Clients zu automatisieren, gibt es zahlreiche Optionen, darunter Zusammenführungsdateien für die Registrierung (REG), Skripts in VBScript oder Batchdateien mit dem Befehl REG. Ich empfehle Ihnen, Daten in den neuen Ordner zu verschieben, bevor Sie den Wert ändern, obwohl ich noch nicht erlebet habe, dass es Probleme gab, wenn es hinterher geschah. Der Benutzer muss sich ab- und wieder anmelden, bevor Windows Explorer die umgeleiteten Shell-Ordner vollständig nutzt. Verfügen Benutzer bereits über Kataloge wie die Bibliotheksdatenbank für den Windows Media Player, müssen diese aktualisiert werden. Die einfachsten Methoden, den Erfolg zu testen, sind erstens, etwas im Ordner Favoriten auf dem Server abzulegen und dann im Menü Internet Explorer-Favoriten nachzusehen, ob es erscheint. Öffnen Sie anschließend Windows Media Player, wählen Sie Bibliothek und Zu Bibliothek hinzufügen. Klicken Sie auf Erweiterte Optionen¸ um Überwachte Ordner zu sehen. Hier sollten Sie die drei umgeleiteten Ordner finden (siehe Abbildung 3.18). Dass Windows Media Player, der die Shell-Ordner Musik, Bilder und Videos sucht, die Überwachung der umgeleiteten Ordner meldet, ist ein gutes Zeichen. In der Registrierung finden Sie auch den untergeordneten Schlüssel Shell Folders (in Abbildung 3.17 nur wenige Einträge über User Shell Folders), der ebenfalls Shell-Ordner in Ziele auflöst. Sie sehen dieselben Werte – My Music, My Pictures usw. – wie im Schlüssel User Shell Folders. Der einzige Unterschied ist, 232 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen dass Shell Folders keine erweiterbaren Zeichenfolgen, sondern hartkodierte Pfade enthält (beispielsweise C:\Dokumente und Einstellungen\<Benutzerprofilname>\Eigene Dokumente\Eigene Musik). Dies ist ein älterer Schlüssel, der neue Werte für Shell-Ordner erzeugen sollte, nachdem die Werte in User Shell Folders geändert wurden und sich ein Benutzer ab- und wieder angemeldet hat. Erscheint Ihnen jedoch etwas merkwürdig, sollten Sie sich davon überzeugen, dass die Werte in Shell Folders tatsächlich aktualisiert wurden und den neuen vollständigen Ordnerpfad enthalten. Abbildung 3.18 Windows Media Player mit umgeleiteten Ordnern Macken und Bugs Diese beiden Schlüssel enthalten einige Macken. Am ehesten werden Sie denen begegnen, die Eigene Videos betreffen. Der Ordner in der Benutzerschnittstelle im Windows XP-Ordner Eigene Dokumente heißt Eigene Videos. Die Registrierungswerte sowohl in User Shell Folders als auch in Shell Folders sind mit My Video (Singular) bezeichnet. Erstellen Sie einen Wert My Videos, funktioniert es nicht. Die zweite Eigenheit ist, dass diese Werte (besonders My Music und My Video) möglicherweise erst erscheinen, nachdem Sie Windows Media Player geöffnet haben. Wenn Sie sie anlegen, bevor Sie Windows Media Player öffnen, werden sie glücklicherweise als maßgebend akzeptiert. Sie können den Wert also anlegen, falls er nicht vorhanden ist. Die dritte Macke besteht darin, dass Sie selbst nach dem Öffnen von Windows Media Player in User Shell Folders möglicherweise keinen Wert für My Video finden. Wenn Sie den Wert aber mit dem Typ REG_EXPAND_SZ hinzufügen, klappt es nach meiner Erfahrung hervorragend, auch die Aktualisierung des Wertes in Shell Folders beim nächsten Ab- und Anmelden. Das Umleiten von Shell-Ordnern hat innerhalb der Benutzerschnittstelle zahlreiche Auswirkungen. Ist der Link Bilder Bestandteil Ihres Windows XP-Startmenüs und leiten Sie Eigene Bilder in einen Ordner Bilder um (ein Name nach Windows Vista-Art ohne »My« bzw. »Eigene«), wird der Link im Startmenü ebenfalls als Bilder angezeigt. Wundern Sie sich nicht. Der folgende Umstand ist nirgends dokumentiert: Der Name, der in der Windows-Benutzerschnittstelle erscheint, ist – aus welchem Grund auch immer – nicht hartkodiert (also Bilder oder Eigene Bilder), und er ist auch nicht das letzte Element des Namespacepfads zum umgeleiteten Ordner. Lautet das Ordnerziel \\contoso.com\users\%username%\pictures, lautet der Name nicht zwangsläufig »Pictures«. Um den in der Benutzerschnittstelle sichtbaren Namen für den Ordner zu erzeugen, wird tatsächlich der Ordner selbst verwendet – also in einem vollständig aufgelisteten DFS-Namespace der Name des DFSOrdners oder, wenn das Ordnerziel tiefer liegt als der DFS-Namespace, der physische Ordner auf dem 3.5 Entwerfen und Ausführen der Ordnerumleitung 233 Server Wenn Sie den Ordner Bilder eines Benutzers nach \\contoso.com\users\%username%\pictures umleiten und der Ordner im DFS-Namespace wirklich Pictures heißt, sehen Sie in der Benutzerschnittstelle wirklich Pictures, was für die meisten Benutzer ziemlich merkwürdig aussieht. Benennen Sie den Ordner im DFS-Namespace in Bilder um, zeigt die Benutzerschnittstelle dies bei der nächsten Anmeldung auch an. Ich betone dies besonders, weil die Skripts zu diesem Buch den DFS-Namespace mit dem Befehl DFSUTIL anlegen, der zumindest bei Release Candidate 1 von Windows Server 2008 fehlerhaft ist: Er erzeugt für DFS-Ordner nur noch Namen mit Kleinbuchstaben, auch wenn im Befehl Großbuchstaben stehen. Wir erhalten also DFS-Namespaceordner mit kleinem Anfangsbuchstaben, was zu Benutzerschnittstellenelementen mit kleinen Anfangsbuchstaben führt. Auf der Website zu diesem Buch (www.intelliem.com/resourcekit) finden Sie wahrscheinlich eine Lösung für dieses Problem, wenn Windows Server 2008 auf dem Markt ist. Vorteile der Umleitung mit der Registrierung Der erste Vorteil der Umleitung mit der Registrierung ist, nun ja, die Umleitung! Angenommen, Sie hätten die Benutzerdatenspeicher gern im Netzwerk, so können Sie sie dorthin verlagern. Eigene Musik, Eigene Videos und Eigene Musik wären sowieso dorthin gekommen, wenn Sie ihnen erlaubt hätten, dem Ordner Dokumente zu folgen, was das Standardverhalten ist. Jetzt können Sie aber auch Favoriten und jeden anderen Shell-Ordner dort unterbringen. Zweitens können Sie den physischen und den logischen Namespace (DFS) vereinheitlichen, in denen die Benutzerdaten für Windows Vista- und Windows XP-Clients abgelegt sind. Windows XP leitet Eigene Musik in einen Ordner Musik um, Eigene Bilder in einen Ordner Bilder und Eigene Videos in einen Ordner Videos. Die Gruppenrichtlinieneinstellungen für die Ordnerumleitung bringen die Windows Vista-Ordner an dieselben Orte. Nachteile der Umleitung mit der Registrierung Es gibt nicht viele Nachteile, vorausgesetzt, Sie wollen tatsächlich einen bestimmten Shell-Ordner umleiten. Um die Umleitung zu erreichen, müssen Sie ein bisschen mehr arbeiten, indem Sie die Windows XP-Registrierung mithilfe eines Skripts, einer REG-Datei oder etwas Ähnlichem an den richtigen Stellen bearbeiten. Sie verzichten auch auf die tollen Funktionen der echten Umleitungsrichtlinien: Sie können die Option Dem Benutzer exklusive Zugriffsrechte erteilen nicht nutzen und sie nicht automatisch in Kraft setzen, können Inhalte nicht mithilfe von Optionen verschieben und nicht festlegen, was geschehen soll, wenn die Richtlinie nicht mehr gilt, weil es keine Richtlinie gibt. Ich habe Ihnen jedoch empfohlen, dies auch dann nicht zu tun, wenn Sie es tun können. Empfehlung Leiten Sie diese Ordner um, wenn Sie sie auf dem Server haben wollen. Ich gehe davon aus, dass Favoriten ein Kinderspiel ist. Vermutlich bestimmen Ihre IT-Sicherheitsvorschriften, Ihre Nutzungsrichtlinien, Ihre Geschäftsanforderungen und Ihre Speicherkapazität, ob Bilder, Musik und Videos umgeleitet werden. Ich schlage vor, die physischen Speicher für diese Ordner zusammen mit denen für Desktop und Dokumente im Ordner Users\%username%\data unterzubringen. Es sind schließlich nur weitere Datenspeicher, die in den meisten Situationen genauso verwaltet werden wie Desktop und Dokumente und denselben Kontingenten unterliegen. Außerdem müssen Sie Ihren DFS-Namespace erweitern, wenn Sie einen vollständig aufgelisteten Namespace nutzen. Dieses Problem gehen wir gleich an. 234 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Wichtig Eine weitere Option für die Umleitung der Ordner Favoriten, Bilder, Musik und Videos für Windows Vista-Clients und solche mit älteren Windows-Versionen ist die Umleitung für Windows Vista-Clients mithilfe von Gruppenrichtlinien und für Windows XP-Clients mithilfe der Registrierung. Entfernen der Unterordner »Eigene Musik« und »Eigene Bilder« Wenn Sie Eigene Musik und Eigene Bilder umleiten, verschieben oder löschen Windows XP-Clients die Unterordner Eigene Musik und Eigene Bilder im Ordner Eigene Dokumente nicht. Sie sollten diese Ordner gleichartig behandeln: Verschieben Sie die Daten daraus an den neuen Ort und löschen Sie die Ordner dann, um Verwirrung zu vermeiden. Bereitstellen einer Möglichkeit zum Auffinden der Ordner Wenn Sie die Unterordner Eigene Musik und Eigene Bilder löschen (was sinnvoll ist), geraten die Benutzer möglicherweise in Verwirrung, wenn sie daran gewöhnt sind, sie in Eigene Dokumente zu finden, insbesondere, wenn sie normalerweise durch Eigene Dokumente hindurch zu den Ordnern gelangen. Ich schlage vor, die Umleitung von Eigene Musik und Eigene Bilder mit zwei weiteren Maßnahmen zu verbinden: Erstellen Sie erstens im Ordner Eigene Dokumente Verknüpfungen, die auf die neuen Orte zielen. Dann gibt es ein sichtbares Werkzeug, mit dem sich die Benutzer genau wie vorher bewegen können, als die beiden Ordner noch Unterordner waren. Nehmen Sie Eigene Musik und Eigene Bilder zweitens ins Startmenü auf, was Sie durch Anpassen der Eigenschaften des Startmenüs erreichen. Erzielen einer einheitlichen Umgebung für Windows XP und Windows Vista mit umgeleiteten Ordnern Um diese Lösung abzuschließen, stelle ich Ihnen zwei tolle Werkzeuge vor, mit denen Sie die umgeleiteten Ordner für Windows XP und Windows Vista vereinheitlichen können. Erstellen sämtlicher Benutzerdatenspeicher Das erste Werkzeug bildet die nächste logische Stufe unseres Bereitstellungsskripts aus Lösung 3.4. Es heißt UDS_UserFolders_Extended_Provision_DFS.vbs und wird mit derselben Syntax aufgerufen wie das Skript aus der vorherigen Lösung: cscript UDS_UserFolders_Extended_Provision_DFS.vbs e:\users\jfine /dfs:yes /server:server01 /userfirstname:James /userlastname:Fine An der Befehlszeile werden die folgenden Argumente bereitgestellt: Der Pfad zum obersten Ordner des Benutzers (%username%) auf dem UDS-Server /dfs: Y (oder Yes), wodurch das Skript im Modus zum Erstellen von DFS-Namespaces läuft, sodass die DFS-Ordner und Links für den Benutzer in einem vollständig aufgelisteten Namespace angelegt werden (Entwurfsoption 1). /server:<servername>, der Name des Servers, auf dem sich die Daten des Benutzers befinden /userfirstname:<Vorname des Benutzers> und userlastname:<Nachname des Benutzers>. Aus diesen beiden Argumenten wird im DFS-Ordner ein Kommentar für den Benutzer erstellt, damit Sie dort nachsehen können, wenn Sie den Besitzer des Ordners nicht aus dem Benutzernamen erschließen können. 3.5 Entwerfen und Ausführen der Ordnerumleitung 235 Der einzige Unterschied zwischen diesem Skript und UDS_UserFolders_Provision_DFS.vbs aus der vorherigen Lösung besteht in den zusätzlichen Namespacedefinitionen in der Konfigurationssubroutine und darin, dass sowohl im physischen als auch im DFS-Namespace mehr Ordner angelegt werden. Diese Namespaces sehen Sie in Abbildung 3.19: Abbildung 3.19 Der physische und der DFS-Namespace wurden erweitert, um die umgeleiteten Ordner Favoriten, Musik, Bilder und Dokumente aufzunehmen Sie müssen das Skript UDS_UserFolders_Extended_Provision_DFS.vbs anpassen. Lesen Sie zuerst die Erklärung zu UDS_UserFolders_Provision_DFS.vbs in der vorherigen Lösung nach und gehen Sie dann die Kommentare im Skript selbst durch. Konfigurieren der Ordnerumleitung für Favoriten, Bilder, Musik und Videos von Windows XP mit Gruppenrichtlinien Wer hat behauptet, Sie könnten die Ordner Favoriten, Musik und Videos nicht mithilfe von Gruppenrichtlinien umleiten? Ich war's nicht! Ich habe (hoffentlich) gesagt, dass Sie die Gruppenrichtlinien unter Ordnerumleitung nicht verwenden können. Es stimmt, die Umleitung mit Gruppenrichtlinien unterstützt unter Windows XP nicht alle Ordner, für die wir sie brauchen. Aber die Registrierung tut es! Was in die Registrierung aufgenommen werden kann, kann mit Gruppenrichtlinien dorthin gelangen. Wir brauchen nur anstelle der clientseitigen Erweiterung für die Ordnerumleitung diejenige für die Registrierung zu benutzen. Dazu müssen wir eine benutzerdefinierte Verwaltungsvorlage erstellen, um passende Richtlinieneinstellungen festlegen zu können. Den Kern dieser Vorlage bekommen Sie gleich zu sehen. Sie brauchen die vollständige Version Registry Based Folder Redirection for pre-Vista Clients.adm aus dem Ordner Scripts auf dem Begleitmedium. Fügen Sie sie in ein Gruppenrichtlinienobjekt ein und schalten Sie die Filterung nicht verwalteter Richtlinien aus (sonst erscheinen die Einstellungen nicht), dann können Sie loslegen! Wenn Ihnen die Arbeit mit Verwaltungsvorlagen nicht vertraut ist, können Sie in Lösungsgruppe 10 nachschlagen, wo ich die Vorgänge detailliert erläutere. Registry-Based Folder Redirection for Pre-Vista Clients.adm CLASS USER CATEGORY !!Redirect KEYNAME "Policies\Software\Microsoft\Windows\ CurrentVersion\Explorer\User Shell Folders" POLICY !!Favorites EXPLAIN !!FavoritesExplain 236 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen PART !!FavoritesPath EDITTEXT REQUIRED EXPANDABLETEXT DEFAULT !!FavoritesDefault VALUENAME "Favorites" END PART END POLICY POLICY !!Music EXPLAIN !!MusicExplain PART !!MusicPath EDITTEXT REQUIRED EXPANDABLETEXT DEFAULT !!MusicDefault VALUENAME "My Music" END PART END POLICY POLICY !!Pictures EXPLAIN !!PicturesExplain PART !!PicturesPath EDITTEXT REQUIRED EXPANDABLETEXT DEFAULT !!PicturesDefault VALUENAME "My Pictures" END PART END POLICY POLICY !!Videos EXPLAIN !!VideosExplain PART !!VideosPath EDITTEXT REQUIRED EXPANDABLETEXT DEFAULT !!VideosDefault VALUENAME "My Video" ; Kein Druckfehler: der Wert heißt My Video (Singular) END PART END POLICY END CATEGORY ; Definitionaller String ariablen (!!)follgen ; Siehe .adm-Datei auf dem Begleitmedium Mit dem Skript und der Verwaltungsvorlage können Sie ohne Zeitverzögerung Datenspeicher verlagern und Benutzer dorthin leiten – sowohl unter Windows XP als auch unter Windows Vista. Und da sagte man, das sei nicht möglich! (Tatsächlich hat »man« das nie gesagt ... aber man hat es auch nicht leichtgemacht.) Zusammenfassung In dieser Lösung ging es im Detail um Funktionalität, Konfiguration und Geschäftsszenarien, die Richtlinien für die Ordnerumleitung voraussetzen. Wir haben uns die Feinheiten und Macken der Erweiterung zur Ordnerumleitung und die Standardeinstellungen angesehen, die für Ihre Situation meistens nicht passen. Außerdem ging es um die Umleitung der Ordner Bilder, Musik und Videos mit Gruppenrichtlinien und mit der Registrierung. Mit den in diesem Kapitel bereitgestellten Werkzeugen und Anleitungen können Sie, wenn Sie wollen, eine umfassende Ordnerumleitung vornehmen, die alle wesentlichen Speicher für Benutzerdaten und 3.6 Konfigurieren von Offlinedateien 237 -einstellungen außer Ntuser.dat umfasst. Leider verfügen Sie noch nicht über alle nötigen Informationen für die Entscheidung, welche Ordner Sie umleiten sollten. Warten Sie also mit dem Einrichten der Umleitung, bis Sie die kommenden Lösungen durchgearbeitet haben. Beachten Sie, dass die Umleitung des Ordners Application Data in dieser Lösung nicht erwähnt wurde. Sie können ihn umleiten, werden aber feststellen, dass es wahrscheinlich noch zu früh im Lebenszyklus Ihrer Anwendungen ist, um es mit voller Überzeugung zu tun. In späteren Lösungen dieser Gruppe geht es um Entwurfsüberlegungen zu servergespeicherten Profilen, Offline- und lokalen Dateien. In ihrer Gesamtheit ermöglichen Ihnen diese Informationen die Entscheidung, welche Ordner umgeleitet, welche auf dem Server gespeichert werden und welche lokal bleiben sollen. 3.6 Konfigurieren von Offlinedateien Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Offlinedateien, Synchronisierung, csccmd.exe Zusammenfassung Aufzeigen der Feinheiten, Tricks und Stolperfallen bei Offlinedateien und Synchronisierung, damit Sie die Technologie mit Ihren Unternehmensanforderungen in Einklang bringen können Vorteile Verfügbarkeit der Benutzerdaten und -einstellungen in umgeleiteten Ordnern für Laptopbenutzer Einführung Eine Aufgabe des UDS-Frameworks ist die Unterstützung von Benutzern, die ohne Verbindung zum Netzwerk arbeiten, womit insbesondere Laptopbenutzer gemeint sind. Jeder Benutzerdatenspeicher, auf den der Zugriff in erster Linie im Netzwerk stattfindet, muss offline verfügbar gemacht werden. Dazu gehören natürlich gerade umgeleitete Ordner. Bei bestehender Netzwerkverbindung greifen die Benutzer direkt auf dem Server auf die Dateien in den umgeleiteten Ordnern zu. Diese Dateien müssen auch ohne Netzwerkverbindung zugänglich sein. Die Windows-Funktion der Offlinedateien soll Benutzer unterstützen, die ohne Netzwerkverbindung arbeiten. Sie macht die im Netzwerk gespeicherten Dateien und Ordner sichtbar und bietet Zugriff darauf, indem sie die Dateien (mitsamt ihren Berechtigungen) in einem Offline-Cache zwischenspeichert (standardmäßig C:\Windows\CSC), der selbst verschlüsselt werden kann. Netzwerkdateien werden durch die Synchronisierung in den Offlinecache kopiert, bei der Änderungen zwischen den lokal zwischengespeicherten und den Netzwerkdateien repliziert werden. Windows aktiviert Offlinedateien standardmäßig, die Funktion kann aber auch vom Benutzer auf einem lokalen Computer oder von einem Netzwerkadministrator für einen freigegebenen Ordner eingerichtet werden. Offlinedateien können zwar in verschiedenen Situationen sinnvoll und vorteilhaft sein, das UDS-Framework nutzt sie jedoch insbesondere, um mobilen Benutzern das Zwischenspeichern ihrer umgeleiteten Datenspeicher zu ermöglichen. Für dieses Szenario sind Einrichtung und Verwaltung im Allgemeinen unkompliziert. Sollen beispielsweise die Daten und Einstellungen eines einzelnen Benutzers für den Offlinezugriff zwischengespeichert werden, brauchen wir uns nicht groß Gedanken über Konflikte aufgrund von Änderungen an Dateien zu machen, denn an der Datei arbeitet nur ein Benutzer, der entweder online oder offline ist. 238 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Hinter der Anleitung, die ich in dieser Lösung bereitstelle, steckt eine Menge Technologie und Konfiguration. Wenn Sie sich umfassend über Einzelheiten der Offlinedateien und ihrer Einrichtung informieren wollen, empfehle ich Ihnen die Erörterung dieses Themas in Jeremy Moskowitz' Buch Group Policy: Management, Troubleshooting and Security For Windows Vista, Windows 2003, Windows XP and Windows 2000 (Wiley 2007). Grundlagen des Caches Der Offlinecache (standardmäßig C:\Windows\CSC) dient dazu, Dateien aus Netzwerkfreigaben zu speichern. Sie werden mitsamt den Zugriffsebenen (Berechtigungen) synchronisiert. Die Dateien können und sollten Sie aber nicht direkt im Ordner CSC öffnen, sondern über den umgeleiteten Ordner, den UNC-Pfad oder das zugeordnete Laufwerk, das Sie benutzen würden, wenn Sie Verbindung zum Netzwerk hätten. Zu den erstaunlichsten Fähigkeiten der Offlinedateien gehört es, dass diese mit und ohne Netzwerkverbindung im selben Namespace dargestellt werden. Eine Liste der Dateien, die Sie offline verfügbar gemacht haben, mit dem Pfad zum Dateiursprung und ihrem aktuellen Status können Sie unter Windows XP auf der Registerkarte Offlinedateien des Systemsteuerungsprogramms Offlinedateien sehen, unter Windows Vista im Systemsteuerungsprogramm Offlinedateien. Diese Darstellung der Offlinedateien ist für die Verwaltung und Unterstützung sinnvoll, aber auf die Dateien selbst sollten Sie weiterhin in ihrem eigenen Namespace zugreifen. Grundlagen der Zwischenspeicherung Die Funktion Offlinedateien unterstützt zwei Arten von Zwischenspeicherung: die aktive und die passive. Aktives Zwischenspeichern bedeutet, dass ein Benutzer eine Datei offline verfügbar macht, indem er mit der rechten Maustaste darauf klickt und im Kontextmenü Immer offline verfügbar (unter Windows XP Offline verfügbar machen) wählt. Aktiv zwischengespeicherte Dateien bleiben offline verfügbar, bis der Benutzer die betreffende Option für die jeweilige Datei aufhebt. Administratoren können auch mithilfe einer Gruppenrichtlinie festlegen, dass eine Datei ständig offline zugänglich ist. Beim passiven Zwischenspeichern werden Dateien dagegen synchronisiert und in den Cache kopiert, nachdem in einer Netzwerkfreigabe ein Zugriff auf sie erfolgt ist. Damit soll sichergestellt werden, dass Dateien, die allein dadurch als wichtig gelten, dass vor kurzem jemand darauf zugegriffen hat, verfügbar bleiben, wenn der Benutzer vom Netzwerk getrennt wird. Unter Windows XP ist die Menge der Dateien, die passiv zwischengespeichert werden können, auf einen einstellbaren Prozentsatz der Größe des Datenträgers begrenzt, auf dem der Ordner CSC liegt, standardmäßig 10%. Wird diese Menge überschritten, werden die »ältesten« Dateien (deren Zugriff am längsten zurückliegt) aus dem passiven Cache gelöscht, um Platz für weitere zu machen. Das aktive Zwischenspeichern ist von dieser Einstellung nicht betroffen – der Benutzer kann so viele Dateien aktiv zwischenspeichern, wie die lokale Festplatte aufnimmt. Unter Windows Vista wird die Speicherung der Offlinedateien anders gehandhabt. Es gibt nun eine auswählbare Menge Speicherplatz (die bei der Installation des Betriebssystems als Prozentsatz angegeben wird), den sich die aktiv und passiv zwischengespeicherten Dateien teilen. Passiv zwischengespeicherte Dateien können einen von Ihnen wählbaren Prozentsatz des Caches für Offlinedateien nutzen. Ist dieser voll und speichert das System eine neue Datei passiv, wird eine ältere passiv abgelegte Datei gelöscht. Ist der Speicher voll und versucht ein Benutzer, eine weitere Datei aktiv zwischenzuspeichern, wird er darüber informiert. 3.6 Konfigurieren von Offlinedateien 239 Grundlagen der Synchronisation Die Synchronisation wird unter Windows XP von der Synchronisationsverwaltung gehandhabt. Sie können für jede einzelne Freigabe und für jede Netzwerkverbindung festlegen, wann sie stattfinden soll: bei der An- oder Abmeldung, nach Zeitplan oder in Leerlaufphasen. Außerdem können Sie die Synchronisierung manuell starten und die gewünschten Freigaben auswählen. Windows Vista verfügt über eine in fast jeder Beziehung verbesserte Synchronisierung. Sie ist erheblich effizienter und belastbarer und läuft größtenteils störungsfrei und unsichtbar im Hintergrund ab. Die Benutzerschnittstelle enthält unter Vista keine Möglichkeit, eine Synchronisierung bei der Abmeldung einzurichten – sämtliche Dateien sollten bereits synchronisiert sein. Das Synchronisierungscenter von Vista verschiebt etwaige Konflikte in eine Warteschlange und ermöglicht Ihnen, die Synchronisierung manuell zu starten. Außerdem gibt es zahlreiche APIs für die Synchronisierung, mit denen Sie Skripts für fast alles schreiben können (auch für die Synchronisierung beim Abmelden). Grundlagen des Offlinemodus Wenn ein Server ausfällt, ist ein Dateizugriff im Cache möglich. Wie Ihr Computer z.B. im Flugzeug feststellt, dass er sich nicht mehr im Netzwerk befindet, in den so genannten »Offlinemodus« übergeht und auf Dateien im Cache zugreift, ist relativ leicht verständlich. In den Fällen, in denen der Benutzer mit einem Server verbunden ist, der vom Netz geht, oder in denen die Verbindung zum Server ausfällt, wird es komplizierter. Der Computer führt dann einen so genannten Zustandsübergang in den Offlinemodus durch. Noch komplizierter sind Szenarien, in denen der Benutzer über eine langsame Leitung mit dem Server verbunden ist – wie kann der Benutzer das System davon überzeugen, die Offlinekopie zu benutzen, wenn der Client meint, er solle online sein, aber die Geschwindigkeit beim Zugriff auf die Serverkopie der Datei fürchterlich schlecht ist? Zu den zahlreichen Verbesserungen von Windows Vista bei Offlinedateien zählt die Handhabung des Zustandsübergangs, des Offlinemodus und der Feststellung langsamer Verbindungen. Es gibt zwar auch für Windows XP Einstellungen und Tricks, mit denen Sie spielen können, aber bei Windows Vista haben Sie weit weniger Probleme, und fast jede Einstellung lässt sich mit Gruppenrichtlinien festlegen. Nutzen von Offlinedateien für das UDS-Framework Ich empfehle Ihnen noch einmal dringend¸ umfassende Informationen über die gerade skizzierten Konzepte sowie über alle Aspekte der Einrichtung und Verwaltung von Offlinedateien bei Jeremy Moskowitz nachzulesen. Im Rahmen unserer Erörterung von Offlinedateien zur Unterstützung einer UDSInfrastruktur möchte ich mich auf wesentliche Punkte, die in Unternehmen zu berücksichtigen sind, und häufig gemachte Fehler konzentrieren, die sich vermeiden lassen. Lassen Sie zu, dass umgeleitete Ordner automatisch offline zur Verfügung stehen Wenn Sie einen Ordner mithilfe von Gruppenrichtlinien für einen Windows XP- oder Windows VistaClient umleiten, wird er standardmäßig offline verfügbar gemacht. Für Laptopbenutzer ist dies im Allgemeinen erwünscht. Die UDS-Anforderungen legen fest, dass Benutzer auch ohne Netzwerkverbindung Zugriff auf ihre Daten und Einstellungen haben sollen, was durch dieses Standardverhalten sichergestellt wird. 240 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Im Container Benutzerkonfiguration\Richtlinien\Administrative Vorlagen\System\Ordnerumleitung im Gruppenrichtlinienverwaltungs-Editor finden Sie die Gruppenrichtlinieneinstellung Umgeleitete Ordner nicht automatisch offline verfügbar machen, die das System daran hindert, umgeleitete Ordner wie Dokumente und Desktop automatisch offline verfügbar zu machen. Mithilfe der Registrierung umgeleitete Ordner werden nicht automatisch zwischengespeichert Die vorstehende Erörterung gilt für Ordner, die aufgrund von Richtlinieneinstellungen umgeleitet werden. Aus Lösung 3.5 wissen wir jedoch, dass die Umleitung auch durch Registrierungseinstellungen im Schlüssel User Shell Folders erfolgen kann. Diese Ordner werden nicht automatisch zwischengespeichert, was Sie aber ganz gern möchten! Für Windows XP-Clients ist dies besonders wichtig, weil Sie die Ordner Favoriten, Musik, Videos und Bilder möglicherweise mithilfe der Registrierung umleiten. Sorgen Sie administrativ dafür, dass bestimmte Dateien oder Ordner offline zur Verfügung stehen Glücklicherweise können Sie mit der Richtlinieneinstellung Administrativ zugewiesene Offlinedateien unter Benutzerkonfiguration\Richtlinien\Administrative Vorlagen\Netzwerk\Offlinedateien erzwingen, dass diese mit der Registrierung umgeleiteten Ordner oder andere Netzwerkressourcen offline zur Verfügung stehen. Beim Aktivieren der Richtlinie können Sie UNC-Pfade zu Ressourcen hinzufügen, die Benutzern im Gültigkeitsbereich des Gruppenrichtlinienobjekts offline zugänglich gemacht werden sollen (siehe Abbildung 3.20). Abbildung 3.20 Diese administrativ zugewiesenen Offlinedateien erzwingen, dass ein Ordner offline zur Verfügung steht. 3.6 Konfigurieren von Offlinedateien 241 In dieser Richtlinieneinstellung können Sie Variablen wie %USERNAME% verwenden, eine großartige Sache, die die Dokumentation nicht so deutlich herausstellt. Haben Sie den Windows XP-Ordner Favoriten mithilfe der Registrierung umgeleitet, können Sie also mit der in Abbildung 3.20 gezeigten Art von Einstellung dafür sorgen, dass er offline zur Verfügung steht. Sehen Sie eine lange Erstsynchronisation vor, wenn umfangreiche Ordner offline verfügbar gemacht werden Stellen Sie sich die übliche Größe der Benutzerordner Desktop und besonders Dokumente vor. Bei der ersten Umleitung werden Benutzerordner offline verfügbar gemacht, was eine Synchronisierung auslöst, die häufig einige Zeit dauert. Denken Sie daran, dies bei der Zeitplanung für die Bereitstellung umgeleiteter Ordner zu berücksichtigen. Offline zur Verfügung stehende Ordner werden auf jedem Computer synchronisiert, an dem sich der Benutzer anmeldet Wenn umgeleitete Ordner aufgrund von Gruppenrichtlinien automatisch offline verfügbar gemacht werden, entweder mit Richtlinien für die Ordnerumleitung oder durch administrative Zuweisung, gelten diese Richtlinien für einen Benutzer. Jeder Computer, an dem er sich anmeldet, versucht jetzt, die Ordner zwischenzuspeichern, sodass Datendateien weit verbreitet werden, während sich die Benutzer innerhalb des Unternehmens bewegen. Natürlich lassen sich die Offlinedateien verschlüsseln, aber die Verschlüsselung ist angreifbar (besonders unter Windows XP, das den Cache mit dem Systemkonto verschlüsselt). Außerdem kostet die Verbreitung eine Menge Plattenplatz. Sorgen Sie dafür, dass umgeleitete Ordner nicht automatisch auf jedem Computer verfügbar gemacht werden Dieser Vorschlag sollte inzwischen selbstverständlich sein. Denken Sie an den armen Computer im Konferenzraum. Immer wenn sich ein Benutzer anmeldet, um eine Präsentation vorzuführen, wird eine Komplettsynchronisierung gestartet. Die Festplatte füllt sich (bei Windows XP wortwörtlich), Zeit wird verschwendet, Daten werden möglicherweise offen gelegt. Das ist einfach unerwünscht. Geben Sie an, wo umgeleitete Ordner offline verfügbar gemacht werden sollen Sicher stimmen Sie meiner Empfehlung zu, das UDS-Framework so zu konfigurieren, dass Offlinedateien für umgeleitete Ordner aktiviert werden, wo es wirklich sinnvoll ist: für Benutzer, die am eigenen Laptop arbeiten. Verwalten Sie Offlinedateien nach dieser Spezifikation Nachdem Sie festgelegt haben, auf welchen Computern umgeleitete Ordner offline zur Verfügung stehen sollen und auf welchen nicht, können Sie Ihre Umgebung entsprechend einrichten. Dafür sind die beiden folgenden Einstellungen vorgesehen. Die Richtlinieneinstellung Umgeleitete Ordner nicht automatisch offline verfügbar machen Noch einmal: Diese Einstellung bezieht sich nicht auf Computer, sondern auf Benutzer. Das ist unglücklich, weil es ein wenig Kreativität erfordert, einem Benutzer seine umgeleiteten Ordner offline auf seinem Laptop zugänglich zu machen, aber nicht auf sämtlichen stationären Computern, an denen er sich anmeldet. 242 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Die Richtlinieneinstellung Die Funktion "Offlinedateien" zulassen bzw. nicht zulassen Diese Einstellung, die unter Computerkonfiguration\Richtlinien\Administrative Vorlagen\Netzwerk\Offlinedateien zu finden ist, schaltet die Funktion Offlinedateien für Clients im Gültigkeitsbereich der Richtlinieneinstellung vollkommen aus, wenn sie deaktiviert ist. Dass es sich um eine Computerrichtlinie handelt, ist großartig, aber dass nur »alles oder nichts« geht, ist unglücklich. Außerdem gibt es mehrere Werkzeuge zur Definition des Gültigkeitsbereichs von Systemen: Sicherheitsgruppen Gruppen können zum Filtern von Gruppenrichtlinienobjekten eingesetzt werden. WMI-Filter (Windows Management Instrumentation) Dabei handelt es sich um Abfragen. Geben sie ein logisches true zurück, wird das Gruppenrichtlinienobjekt angewendet. WMI-Filter verursachen in der Verarbeitung hohen Aufwand, weil ihre Ausführung mehrere Prozessorzyklen dauert. Außerdem sind sie schwierig zu schreiben und lassen sich je nachdem, was abgefragt wird, nur schwer genau genug gestalten, um zuverlässig zu arbeiten. Beide Werkzeuge werden in Lösungsgruppe 10 erörtert. Angesichts dieser Einstellungen und Werkzeuge empfehle ich Ihnen einen der Ansätze in den folgenden Abschnitten, um das Verhalten von Offlinedateien und umgeleiteten Ordnern in Ihrer Umgebung zu steuern. Deaktivieren Sie Offlinedateien auf allen Systemen außer Laptops Die eine Option ist das Abschalten von Offlinedateien auf allen Systemen außer Laptops, wofür es eine Reihe guter Argumente gibt. Die Funktion der Offlinedateien kann zwar Vorteile für andere Szenarien bringen, eignet sich aber in der Praxis am besten für die Arbeit mit Laptops. Sind Ihre Organisationseinheiten so strukturiert, dass sich alle Laptops in einer handhabbaren Anzahl von Organisationseinheiten befinden, können Sie Offlinedateien für sämtliche Computer mit einem Gruppenrichtlinienobjekt deaktivieren, das sehr weit oben in Ihrem Active Directory angesiedelt ist – vielleicht sogar in der gesamten Domäne. Anschließend erstellen Sie ein Gruppenrichtlinienobjekt, das Offlinedateien zulässt (indem Sie die Richtlinie Die Funktion "Offlinedateien" zulassen bzw. nicht zulassen aktivieren), und legen seinen Gültigkeitsbereich auf die Organisationseinheiten mit Laptops fest. Dieses Gruppenrichtlinienobjekt hat bei der Verarbeitung Vorrang, weil es für die Organisationseinheiten mit Laptopobjekten gilt. Die Laptops bilden also eine Ausnahme von der Regel und erlauben Offlinedateien. Wenn Ihre Organisationseinheiten komplexer strukturiert sind und sich die Laptops nicht isolieren lassen, legen Sie ein Gruppenrichtlinienobjekt an, das die Einstellung Die Funktion "Offlinedateien" zulassen bzw. nicht zulassen deaktiviert, wodurch Offlinedateien insgesamt ausgeschaltet sind. Legen Sie seinen Gültigkeitsbereich so fest, dass er sich auf alle Rechner außer Laptops erstreckt, indem Sie es mit Sicherheitsgruppen oder via WMI filtern. Gültigkeitsbereich mit Sicherheitsgruppenfilterung Verwenden Sie eine Sicherheitsgruppe, die die Laptops umfasst, und geben Sie Ihr die Verweigerungsberechtigung Gruppenrichtlinie anwenden. Die Richtlinie wird von allen Systemen angewendet, die nicht Mitglieder der betreffenden Gruppe sind. Ich verwalte meine Umgebung lieber mit Erlaubnissen als mit Verboten, weil es sicherer und leichter zu handhaben ist, und mag diesen Ansatz daher. Er klingt zwar, als werde etwas verboten, aber ich verbiete eine Richtlinie, die Offlinedateien deaktiviert – eine doppelte Verneinung. Wenn ich einen Computer in die Gruppe aufnehme, aktiviere ich für ihn die Verwendung von Offlinedateien. Die Alternative ist natürlich eine Sicherheitsgruppe, die sämtliche stationären und anderen Computer umfasst, für die Offlinedateien deaktiviert werden sollen. Filtern Sie das Gruppenrichtlinienobjekt so, dass es nur auf diese eine Sicherheitsgruppe angewendet wird. 3.6 Konfigurieren von Offlinedateien 243 Gültigkeitsbereich mit WMI-Filter Sie können auch eine WMI-Abfrage verwenden, die alle Systeme sucht, für die Offlinedateien nicht aktiviert werden sollen. Beispielsweise können Sie eine Abfrage schreiben, die stationäre Systeme an der Eigenschaft SystemEnclosure erkennt. Ein Beispiel finden Sie im Buch von Jeremy Moskowitz. Zu erwarten, dass eine solche Abfrage in jedem Einzelfall funktioniert, ist aber gewagt. Mehr über WQL (SQL für WMI) finden Sie unter http://msdn2.microsoft.com/en-us/library/aa394606.aspx. Der folgende Tipp nutzt WMI-Abfragen, die für Sie hilfreich sein können: Fragen Sie anhand des Computernamens. Wenn Ihre Namenskonvention ähnlich aussieht wie bei einigen meiner Kunden, bei denen jeder Laptopname mit dem Buchstaben L beginnt, auf den die Inventarnummer des Laptops folgt, kommen Sie zu einer recht gut funktionierenden WMI-Abfrage: Select * From Win32_ComputerSystem Where Name LIKE 'L%' Das Prozentzeichen ist ein Jokerzeichen ähnlich dem Sternchen in der Befehlszeile. Diese Abfrage gibt für jeden Computer true zurück, dessen Name mit L beginnt. Damit haben Sie Ihre Laptops! Wenn Sie damit fertig sind, erstellen Sie zwei Gruppenrichtlinienobjekte. Das erste deaktiviert Offlinedateien durch Deaktivieren der Richtlinieneinstellung Zulassen oder nicht zulassen. Es gilt aufgrund der standardmäßigen Zugriffssteuerungsliste für Gruppenrichtlinienobjekte, die die Zulassungsberechtigung Gruppenrichtlinie anwenden für Authentifizierte Benutzer einschließt, für alle Computer. Ein zweites Gruppenrichtlinienobjekt mit höherem Rang aktiviert Offlinedateien durch Aktivieren der Richtlinieneinstellung Zulassen bzw. nicht zulassen. Es wendet den gerade erwähnten WMI-Filter an. Nachteilig ist beim WMI-Ansatz erstens, dass Sie möglicherweise nicht das Glück haben, eine einfache Methode (wie den Computernamen) zum Ermitteln von Systemen mit den gewünschten Gültigkeitsbereichen zu finden. Außerdem kann irgendwann der Fall eintreten, dass ein stationärer Computer Offlinedateien nutzen soll oder dass, was wahrscheinlicher ist, ein oder mehrere Laptops keine Offlinedateien erhalten sollen. Der Sicherheitsgruppenansatz lässt sich auf lange Sicht einfacher handhaben. Die eine Gruppe legt fest, wer Offlinedateien nutzen darf; ihr wird die Berechtigung verweigert, das Gruppenrichtlinienobjekt anzuwenden, das Offlinedateien deaktiviert. Die in dieser Gruppe zusammengefassten Computer weisen daher die standardmäßige Windows-Konfiguration für Offlinedateien auf, nämlich den aktivierten Zustand. Deaktivieren Sie die automatische Zwischenspeicherung umgeleiteter Ordner auf allen Systemen außer Laptops Dieser Ansatz arbeitet mit der benutzerbezogenen Richtlinieneinstellung Umgeleitete Ordner nicht automatisch online verfügbar machen. Sie legen ein Gruppenrichtlinienobjekt an, das diese Einstellung aktiviert, deaktivieren auf diese Weise das Zwischenspeichern umgeleiteter Ordner und wenden das Objekt auf alle Systeme außer Laptops an. Da es sich um eine Benutzereinstellung handelt, die bei der Anmeldung mit den zugehörigen Anmeldeinformationen angewendet wird, können Sie das Gruppenrichtlinienobjekt nicht mit einer Sicherheitsgruppe aus Computerobjekten filtern, sondern müssen entweder eine WMI-Abfrage oder die Loopback-Gruppenrichtlinienverarbeitung verwenden. Gültigkeitsbereich mit WMI-Filter WMI-Abfragen stellen eine einfache Methode dar, ein benutzerbezogenes Gruppenrichtlinienobjekt anhand von Computereigenschaften zu filtern, wenn Sie einen funktionierenden WMI-Filter erstellen können. Erinnern Sie sich an die WMI-Abfrage aus dem vorherigen 244 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abschnitt, die Laptops ermittelte? Hier haben wir nun ein Gruppenrichtlinienobjekt, das das automatische Zwischenspeichern umgeleiteter Ordner ausschaltet. Wir müssen es auf alle Systeme mit Ausnahme von Laptops anwenden: Select * From Win32_ComputerSystem Where NOT Name LIKE 'L%' Loopback-Gruppenrichtlinienverarbeitung Ausführlich wird die Loopback-Gruppenrichtlinienverarbeitung in Lösungsgruppe 10 behandelt. Wenn Sie sie für ihre stationären und mobilen Computer einrichten, können Sie Sicherheitsgruppen mit den Systemen verwenden, die das automatische Zwischenspeichern umgeleiteter Ordner zulassen bzw. nicht zulassen sollen. Dieser Ansatz ähnelt dem weiter vorn mit der Filterung anhand von Sicherheitsgruppen, abgesehen davon, dass jener Offlinedateien mithilfe einer computerbezogenen Richtlinieneinstellung vollkommen ausschaltete. Jetzt gehen wir gezielter vor und legen nur fest, ob umgeleitete Ordner automatisch zwischengespeichert werden sollen oder nicht, was eine benutzerbezogene Einstellung ist. Wenn für Ihre Clients der Loopback-Modus für Gruppenrichtlinien aktiviert ist (im Zusammenführungsmodus, damit die Gruppenrichtlinien der Benutzer weiterhin korrekt angewendet werden), haben Sie daher die Wahl zwischen folgenden Vorgehensweisen: Anlegen eines einzigen Gruppenrichtlinienobjekts, das die Richtlinie Umgeleitete Ordner nicht automatisch offline verfügbar machen in Kraft setzt und damit das automatische Zwischenspeichern umgeleiteter Ordner ausschaltet. Filtern Sie das Gruppenrichtlinienobjekt, um es nur auf eine Sicherheitsgruppe mit Systemen anzuwenden, die umgeleitete Ordner nicht zwischenspeichern sollen. Anlegen zweier Gruppenrichtlinienobjekte. Das erste aktiviert die Richtlinie Umgeleitete Ordner nicht automatisch offline verfügbar machen und gilt für alle Clients, vielleicht sogar für die gesamte Domäne. Das zweite Gruppenrichtlinienobjekt deaktiviert dieselbe Einstellung und aktiviert dadurch das Zwischenspeichern umgeleiteter Ordner. Es wird anhand einer Gruppe mit Systemen gefiltert, die umgeleitete Ordner zwischenspeichern sollen, und hat Vorrang vor dem ersten Gruppenrichtlinienobjekt. Wie wir in Lösungsgruppe 10 sehen werden, ist die Loopback-Gruppenrichtlinienverarbeitung im Zusammenführungsmodus eine großartige Methode zur Verwaltung Ihrer Systeme. Hier kann sie eingesetzt werden, um unnötiges Speichern umgeleiteter Benutzerordner auf Konferenzraumcomputern und anderen Systemen zu verhindern. Speichern Sie umgeleitete Ordner manuell zwischen Die dritte Option ist ein glattes Nein zu dem Versuch, es zum Funktionieren zu bringen. Stellen Sie eine domänenweite Richtlinie auf, die die Einstellung Umgeleitete Ordner nicht automatisch offline verfügbar machen in Kraft setzt. Weisen Sie anschließend Ihre Laptopbenutzer an, mit der rechten Maustaste auf ihre Ordner Dokumente, Desktop usw. zu klicken und Offline verfügbar machen zu wählen. Das ist zwar ein manuelles Verfahren, bietet aber große Vorteile: Ordner und Dateien werden nur auf den Systemen und von den Benutzern zwischengespeichert, die sie benötigen. Die Benutzer bekommen eine schnelle und einfache Einführung in Offlinedateien, Synchronisierung, Zwischenspeicherung und Offlinearbeit. Die (möglicherweise länger dauernde) Erstsynchronisierung wird vollständig vom Benutzer gesteuert. 3.6 Konfigurieren von Offlinedateien 245 Die Benutzer haben die Wahl, ob sie ganze Ordner oder nur bestimmte Unterordner offline verfügbar machen. Wenn Sie wollen, können Sie mit dem Programm csccmd.exe, das Bestandteil des Windows Server 2003 Resource Kits (für Windows XP) ist, Skripts schreiben, um die Ordner Desktop und Dokumente offline verfügbar zu machen. Für Windows Vista erledigen Sie dies mit VBScript. Auf der LösungsWebsite zu diesem Buch finden Sie Beispiele. Nachdem wir gesehen haben, wie wir Wildwuchs bei Offlinedateien verhindern, können wir uns den Fragen zuwenden, die auftreten, sobald wir Dateien zwischengespeichert haben. Verhindern Sie, dass Windows XP alle Dateien beim Abmelden synchronisiert Stellen Sie sich vor, Sie haben Ihren gesamten Ordner Dokumente offline verfügbar gemacht. Er ist möglicherweise ziemlich groß und umfasst einige hundert oder gar tausend Dateien. Standardmäßig synchronisieren Windows XP-Systeme alle Dateien (wirklich alle) bei der Abmeldung. Nun kopiert die Synchronisierung nur geänderte Dateien, geht dabei aber alle Dateien sowohl auf dem Server als auch im lokalen Cache durch, um zu ermitteln, was sich geändert hat. Selbst wenn nur eine Datei betroffen ist, kann die Suche ewig dauern. Das ist ein bedeutender Schwachpunkt bei Offlinedateien unter Windows XP. Der Trick besteht darin, die Einstellung Alle Offlinedateien vor der Abmeldung synchronisieren auszuschalten. Sie finden sie auf der Registerkarte Offlinedateien des Dialogfelds Ordneroptionen (in Abbildung 3.21 links). Es handelt sich dabei um eine andere Einstellung als Die ausgewählten Objekte automatisch synchronisieren: Bei der Abmeldung vom Computer, die im Dialogfeld Synchronisationseinstellungen der Synchronisationsverwaltung erscheint (in Abbildung 3.21 rechts). Wenn die Synchronisierung für alle Dateien aktiviert ist, ist der Vorgang langwierig. Ist diese Option deaktiviert und die Synchronisierung geschieht überhaupt bei der Abmeldung (wie es die Synchronisationsverwaltung vorsieht), werden nur Dateien, die der Benutzer auf dem Server tatsächlich angefasst hat, im Cache synchronisiert. Abbildung 3.21 Optionen für die Handhabung der Synchronisierung bei der An- und Abmeldung 246 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Wichtig Ich empfehle Ihnen, die Synchronisierung für Windows XP-Clients mit der Einstellung Die ausgewählten Objekte automatisch synchronisieren: Bei der Abmeldung vom Computer im Dialogfeld Synchronisationseinstellungen zu versehen. Achten Sie nur darauf, dass Sie das Kontrollkästchen neben Alle Offlinedateien vor dem Abmelden synchronisieren im Dialogfeld Ordneroptionen für den betreffenden Ordner deaktivieren. Die Einstellung Alle Offlinedateien vor dem Abmelden synchronisieren lässt sich mit einer Gruppenrichtlinie verwalten. Deaktivieren Sie die Richtlinieneinstellung Alle Offlinedateien vor der Abmeldung synchronisieren, die Sie in den Ordnern Benutzerkonfiguration und Computerkonfiguration im Pfad Richtlinien\Administrative Vorlagen \Netzwerk\Offlinedateien finden. Verhindern Sie unnötige Fehlermeldungen von blockierten Dateitypen Vor Windows Vista wurde von der Synchronisierung bestimmter Dateitypen abgeraten. Insbesondere die meisten Datenbankformate, darunter PST- und MDB-Dateien, wurden standardmäßig ausgeschlossen, was auf der Annahme beruhte, dass die Benutzer derartige Dateien in freigegebenen Ordnern offline verfügbar machen könnten. Unterwegs würden sie möglicherweise Änderungen vornehmen, während an der Serverkopie anderes geändert würde. Die Behebung von Konflikten wäre in solchen Szenarien ausgesprochen schwierig, sodass die Dateitypen ganz und gar von der Synchronisierung ausgenommen wurden. Hier benutzen wir Offlinedateien aber für das UDS-Framework. Ein Benutzer nimmt nur seine eigenen Dateien mit, sodass keine separaten Änderungen an den Kopien auf dem Server erfolgen. Es gibt praktisch keine Gelegenheit, dass Konflikte entstehen. Unter Windows XP können Sie daher angeben, welche Dateitypen blockiert werden sollen, indem Sie die Richtlinieneinstellung Nicht zwischengespeicherte Dateien unter Computerkonfiguration\Richtlinien\Administrative Vorlagen\Netzwerk\ Offlinedateien aktivieren. Wenn Sie die Liste der blockierten Dateitypen leer lassen, dürfen sämtliche Dateien aller Typen zwischengespeichert werden. Welche Dateitypen blockiert werden sollen, können Sie auch mithilfe einer durch Semikola getrennten Liste angeben. In diesem Fall müssen Sie alle standardmäßig blockierten Typen, die Sie blockieren wollen, erneut eingeben, weil die Liste die Standardwerte überschreibt. Standardmäßig werden folgende Typen von der Synchronisierung ausgenommen: SLM, MDB, LDB, MDW, MDE, PST und DB?. Ich habe gute Erfahrungen damit gemacht, einfach die Richtlinie zu aktivieren und die Liste leer zu lassen, wodurch die Blockierung für alle Dateitypen aufgehoben wird und diese nervigen Fehlermeldungen aufgrund von Blockierungen aufhören. Wie bei allen Empfehlungen und Lösungen in dieser technischen Referenz müssen Sie es natürlich in Ihrer Umgebung gründlich testen. Bieten Sie Windows XP-Benutzern eine Möglichkeit, um selbst offline zu gehen Sowohl Windows XP als auch Windows Vista versuchen, die Geschwindigkeit von Verbindungen festzustellen, wenn ein Server online ist. Die Einstellungen zum Ermitteln langsamer Verbindungen werden im Buch von Jeremy Moskowitz ausführlich beschrieben. Unter Windows Vista sind sie ziemlich ausgefeilt und sollten Ihnen gute Dienste leisten. Unter Windows XP ist das nicht so gut. Viele meiner Kunden haben Offlinedateien eingerichtet und hatten anschließend Probleme bei der Verbindung über ein virtuelles privates Netzwerk (VPN). Die VPN-Verbindung war schnell genug, um Windows XP zu überzeugen, dass es online ist, was Synchronisierungen und die Offlinenutzung von Dateien auslöste. Sie war aber noch langsam genug, um all diese Aktionen unerträglich schleppend zu machen. 3.6 Konfigurieren von Offlinedateien 247 Um zu erzwingen, dass eine Freigabe offline geht, wenn Windows meint, sie sollte online sein, gibt es den Befehl csccmd.exe, den Microsoft kürzlich aktualisiert hat (siehe den Knowledge Base-Artikel 884739 unter der Adresse http://support.microsoft.com/kb/884739). Sorgen Sie dafür, dass Ihre Kunden die neueste Version haben. Erstellen Sie dann Batchdateien für Benutzer, um sie von den Namespaces zu trennen, die offline verfügbar gemacht werden sollen: csccmd /DISCONNECT:"\\contoso.com\users\%username%\documents" csccmd /DISCONNECT:"\\contoso.com\users\%username%\desktop" Verwalten Sie Benachrichtigungen über Offlinedateien Windows XP bombardiert sie übermäßig mit Unterbrechungen und Meldungen. Sprechblasen informieren Sie darüber, dass Sie offline sind (oder online oder dass Sie synchronisieren müssen), Dialogfelder zeigen Ihnen den Verlauf der Synchronisierung. Die Liste ist noch länger. Mit den Ordnereinstellungen für die Offlinedateien in der Gruppenrichtlinie (sowohl unter Benutzerkonfiguration als auch unter Computerkonfiguration) können Sie festlegen, welche Meldungen angezeigt werden. Denken Sie beim Verschieben von Quellen an zwischengespeicherte Dateien In Lösung 3.4 ging es darum, dass Offlinedateien möglicherweise angepasst werden müssen, wenn Benutzer auf einen anderen Server oder an einen anderen Standort wechseln und sich der Namespace ihrer umgeleiteten Ordner ändert. Die Funktion Offlinedateien hält den vollständigen UNC-Pfad der zwischengespeicherten Dateien fest. Wenn er sich ändert, sieht diese Funktion den neuen Ort als neue Quelle an und hält den alten Ort einfach für unerreichbar. Sie müssen der Funktion mitteilen, dass sich die Dateien, von denen sie meint, sie kämen von Ort A, jetzt an Ort B befinden. Das Dienstprogramm csccmd.exe enthält den Befehl /MOVE, der genau dies ermöglicht. Es funktioniert allerdings nur für Windows XP. Für Windows Vista-Clients benötigen Sie ein Skript. Sie finden es unter der Adresse http://blogs.technet.com/filecab/archive/2007/03/29/updating-your-offline-files-cache-in-windowsvista-to-point-to-a-new-server.aspx. Offlinedateien Ich möchte noch einmal wiederholen, dass ich ein großer Fan von Offlinedateien bin. Wenn sie gut eingerichtet sind, leisten sie hervorragende Dienste, insbesondere für Laptopbenutzer. Das WENN ist jedoch entscheidend. Wie Sie aus der angeführten Liste sehen, gibt es viel zu bedenken und zahlreiche Standardwerte zu ändern, die nicht recht zu dem Vorhaben passen, umfangreiche Ordner (beispielsweise Desktop und Dokumente) offline verfügbar zu machen. Sie sollten alle Einstellungsmöglichkeiten für Offlinedateien ausschöpfen, um die gewünschten Ergebnisse zu erreichen. Auf Windows XPClients sind sie ziemlich gut, wenn alles erledigt ist, und auf Windows Vista-Clients sind sie wirklich großartig. Gehen Sie beim Entwerfen gründlich vor Nehmen Sie sich die Zeit, das Buch von Jeremy Moskowitz zu lesen, und achten Sie dabei auf die wesentlichen Punkte, die ich in den vorherigen Abschnitten angerissen habe. Arbeiten Sie alle Details, die er erörtert, und die Optionen für die Einrichtung und Handhabung von Offlinedateien, Synchronisierung, Offlinemodus und Aufdeckung langsamer Verbindungen gründlich durch. 248 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Informieren und schulen Sie sorgfältig Denken Sie unbedingt daran, einen Plan für Information und Schulung der Endbenutzer aufzustellen. Begeistern Sie die Laptopbenutzer für die Produktivitätsvorteile der Offlinearbeit und die Einfachheit der Synchronisierung. Achten Sie darauf, dass Sie die Benutzer darin schulen, wie sie Dateien offline verfügbar machen, wann die Synchronisierung erfolgen soll und wie sie offline arbeiten. Am wichtigsten ist jedoch, dass die Benutzer wissen, welche Dateitypen sie zwischenspeichern sollen und welche nicht. Die Funktion Offlinedateien gilt nicht für alle Dateien Einige Dateitypen lassen sich einfach nicht zufrieden stellend als Offlinedateien nutzen. Es gibt Anwendungen, die den Übergang von der Online- zur Offlineverwendung nicht mögen, wenn eine Datei geöffnet ist. Manche Dateien sind so groß, dass die Synchronisierung ewig dauert, obwohl Windows Vista dies durch ein Synchronisierungsmodul gewaltig verbessert, das auf Blockebene arbeitet. Wieder andere Anwendungen funktionieren offline nicht vernünftig. Offline verfügbare umgeleitete Ordner stellen zwar für die meisten Klassen von Benutzerdaten die Lösung dar, aber die 80/20-Regel sorgt dafür, dass es Ausnahmen gibt. Die Ordner im servergespeicherten Profil des Benutzers (siehe Lösung 3.7) sowie der Ordner Lokale Dateien (siehe Lösung 3.9) sind die erforderlichen alternativen Datenspeicher für Dateien, die sich als Offlinedateien nicht gut handhaben lassen. Zusammenfassung Die Windows-Funktion Offlinedateien ist eine erhebliche Wohltat für Laptopbenutzer. Sie speichert Dateien aus Netzwerkfreigaben zwischen und ermöglicht ihre Verwendung im selben Namespace (Benutzerdatenspeicher, zugeordnete Laufwerke und UNC-Pfade) wie bei Bestehen einer Netzwerkverbindung, während der Benutzer offline ist. Wenn die Synchronisierung gut eingerichtet ist, funktioniert sie erfolgreich und effizient. Windows Vista bringt mit Verbesserungen an jedem Aspekt dieser Technologie noch einen Tick mehr. Sie werden feststellen, dass Offlinedateien ein wertvoller und willkommener Bestandteil Ihres UDS-Frameworks sind, und dass sich Dateien, die sich für diese Funktion nicht gut eignen, mithilfe des servergespeicherten Profils und des Ordners Lokale Dateien handhaben lassen, die weiter hinten in dieser Lösungsgruppe behandelt werden. 3.7 Entwerfen und Einrichten von servergespeicherten Profilen Die Lösung im Überblick Typ Anleitung und Skripts Funktionen und Werkzeuge Servergespeicherte Benutzerprofile Zusammenfassung Verwaltung der in der Registrierung und wahrscheinlich in Anwendungsdaten (unter Windows Vista AppData\Roaming) gespeicherten Benutzereinstellungen durch Einrichten servergespeicherter Profile Vorteile Verfügbarkeit, Mobilität und Ausfallsicherheit für Benutzereinstellungen und -anpassungen 3.7 Entwerfen und Einrichten von servergespeicherten Profilen 249 Einführung Servergespeicherte Profile werden eingerichtet, um die Anforderungen des UDS-Frameworks an Benutzereinstellungen umzusetzen. Sie sorgen dafür, dass die primären Benutzerspeicher für Einstellungen – der Ordner AppData (unter Windows Vista technisch der Ordner AppData\Roaming, den seine Fans vorher »Anwendungsdaten« nannten) und die Registrierungsdatei (Ntuser.dat) – zur Verfügung stehen, wenn sich der Benutzer an einem beliebigen Computer innerhalb der Domäne anmeldet. Meldet er sich an einem neuen System an, wird das Profil dort synchronisiert, bevor der Desktop erscheint. Die Synchronisierung des Profils bei der An- und Abmeldung stellt sicher, dass der Netzwerkspeicher und die lokal zwischengespeicherte Kopie des Profils aktualisiert werden. Nach der Anmeldung greift der Benutzer über die lokale Kopie auf die Dateien in den Einstellungsspeichern zu, bei der Abmeldung werden alle Änderungen in den auf dem Server gespeicherten Profilordner übertragen. Die Empfehlung für das UDS-Framework lautet, servergespeicherte Profile zur Unterstützung von AppData und Ntuser.dat einzurichten. In Lösung 3.5 haben Sie erfahren, dass Sie den Ordner Favoriten umleiten können, und zwar unter Windows Vista mithilfe von Gruppenrichtlinien und unter Windows XP mit Registrierungswerten (die sich sogar durch Gruppenrichtlinien steuern lassen). Tun Sie dies nicht, so wollen Sie ihn wahrscheinlich auf dem Server ablegen, was auch für Cookies möglich ist. Alle anderen Ordner sind vom Speichern auf dem Server ausgeschlossen, damit das Profil möglichst klein bleibt und die Leistung ausreicht. Bei diesen Empfehlungen handelt es sich jedoch nur um Leitlinien, die meines Erachtens für die meisten Leser zutreffen. Nach dem Durcharbeiten weiterer Lösungen in dieser Sammlung kommen Sie möglicherweise zu der Entscheidung, dass Ihre Umgebung eine Ausnahme von der Regel bildet und auch Datenordner wie Dokumente oder Desktop oder sogar das Startmenü auf dem Server gespeichert werden sollen. Die Struktur des Windows Vista-Benutzerprofils Ein Benutzerprofil ist ein Namespace mit Ordnern zur Isolierung und Strukturierung von Benutzerdaten und -einstellungen. Die einzelnen Profile werden standardmäßig unter einem einzigen Stammordner auf der lokalen Festplatte des Clients abgelegt, der vor Windows Vista Dokumente und Einstellungen, seitdem jedoch Benutzer heißt. Zum Zweck der Abwärtskompatibilität unterhält Windows Vista eine NTFS-Verknüpfung Dokumente und Einstellungen, die auf den Ordner Benutzer zeigt. Verknüpfungen sind Umleitungen in einen anderen Namespace. Wenn für eine ältere Anwendung hartkodiert ist, dass sie nach C:\Dokumente und Einstellungen\<Benutzername>\<Ordnerpfad>\<Dateiname> suchen soll, wechselt sie vom Benutzer unbemerkt zu C:\Users\<Benutzername>\<Ordnerpfad>\<Dateiname>. Unter dem Ordner Benutzer finden Sie eine Sammlung sprechend benannter Ordner. Das Windows Vista-Benutzerprofil fasst einige der Ordner zusammen, die sich in älteren Windows-Versionen einige Ebenen weiter unten im Benutzerprofil befanden, sodass Sie intuitiver und schneller an häufig aufgesuchte Orte gelangen. Die Struktur des Benutzerprofils sehen Sie in Abbildung 3.22. 250 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abbildung 3.22 Die Struktur des Benutzerprofils In Tabelle 3.1 finden Sie die Namen häufig vorkommender Benutzerdatenordner und ihre Speicherorte unter Windows Vista und Windows XP. Tabelle 3.1 Häufige Datenordner unter Windows Vista und Windows XP Windows Vista Windows XP Ordnername Ort (Benutzer\Benutzername\...) Ordnername Ort (Benutzer\Benutzername\...) Desktop Desktop Desktop Desktop Dokumente Dokumente Eigene Dokumente Eigene Dokumente Favoriten Favoriten – Favoriten Bilder Bilder Eigene Bilder Eigene Dokumente\Eigene Bilder Musik Musik Eigene Musik Eigene Dokumente\Eigene Musik Videos Videos Eigene Videos Eigene Dokumente\Eigene Videos Downloads Downloads – – 3.7 Entwerfen und Einrichten von servergespeicherten Profilen 251 Tabelle 3.1 Häufige Datenordner unter Windows Vista und Windows XP (Fortsetzung) Windows Vista Windows XP Ordnername Ort (Benutzer\Benutzername\...) Ordnername Ort (Benutzer\Benutzername\...) Kontakte Kontakte – – Suchvorgänge Suchvorgänge – – Links Links – – Gespeicherte Spiele Gespeicherte Spiele – – Eine Reihe weiterer Profilordner wurde unter Windows Vista in Unterordner von AppData verschoben. AppData ist in drei Unterordner unterteilt: Roaming, Local und LocalLow. Der erste enthält computerunabhängige Einstellungen für den jeweiligen Benutzer und sollte ihn als Bestandteil seines servergespeicherten Profils begleiten, die beiden anderen dind für computerabhängige Einstellungen da, die nicht auf dem Server gespeichert zu werden brauchen, wie den Ordner TEMP und die temporären Internetdateien des Benutzers. Beide Ordner werden automatisch aus dem servergespeicherten Profil herausgehalten. LocalLow ist einer der wenigen Orte, indie Anwendungen schreiben können, die auf der niedrigen (sichersten) Integritätsstufe ausgeführt werden, beispielsweise Internet Explorer 7 im abgesicherten Modus. Tabelle 3.2 ordnet die Windows XP-Ordner ihren Entsprechungen in Windows Vista und höher zu. Tabelle 3.2 2: Windows Vista-Entsprechungen für Windows XP-Ordner Windows XP-Ordner Windows Vista-Ordner Anwendungsdaten AppData\Roaming Lokale Einstellungen AppData\Local Lokale Einstellungen\Anwendungsdaten AppData\Local Lokale Einstellungen\Verlauf AppData\Local\Microsoft\Windows\History Lokale Einstellungen\Temp AppData\Local\Temp Lokale Einstellungen\Temporary Internet Files AppData\Local\Microsoft\Windows\Temporary Internet Files Cookies AppData\Roaming\Microsoft\Windows\Cookies Netzwerkumgebung (NetHood) AppData\Roaming\Microsoft\Windows\Network Shortcuts Druckumgebung (PrintHood) AppData\Roaming\Microsoft\Windows\Printer Shortcuts Recent AppData\Roaming\Microsoft\Windows\Recent Send To AppData\Roaming\Microsoft\Windows\Send To Startmenü AppData\Roaming\Microsoft\Windows\Startmenü Vorlagen AppData\Roaming\Microsoft\Windows\Templates 252 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Im Stamm des Profils befindet sich Ntuser.dat, die Registrierungsdatei, die in HKEY_CURRENT_USER geladen wird, wenn sich der Benutzer anmeldet. Natürlich gibt es zahlreiche Einstellungen in der Registrierung, die Konfigurationen und Anpassungen des Benutzers wiedergeben. Wollen Sie Verfügbarkeit, Mobilität und Ausfallsicherheit der Benutzereinstellungen gewährleisten, können Sie nicht auf diese Datei verzichten. Außerdem finden Sie Kompatibilitätsverknüpfungen, die für ältere Ordnernamen stehen, darunter Standardbenutzer zu Standard für das Standardbenutzerprofil, eine symbolische Verknüpfung für Alle Benutzer, die zu C:\Program Data führt, und viele Verknüpfungen im Stamm des Benutzerprofils (beispielsweise Anwendungsdaten und Eigene Dokumente), die auf die neuen entsprechenden Namespaces zeigen. Die Kompatibilitätsverknüpfungen für Anwendungen, die es unter Windows Vista gibt, z.B. Eigene Dokumente, haben keinen Listenzugriff, weil sonst Anwendungen, die keine Verknüpfungen kennen, fehlerhaft reagieren könnten. Der Ordner, auf den die Verknüpfung zeigt, in diesem Fall also Dokumente, unterliegt solchen Einschränkungen nicht. Die Bestandteile von Benutzerprofilen Meldet sich ein Benutzer an einem Windows-System an, synchronisiert Windows entweder ein servergespeichertes Profil oder erstellt ein lokales Profil für ihn. Sehen wir uns diesen Vorgang kurz an. Sie sollten ihn aus früheren Windows-Versionen kennen, aber ich nutze diese Wiederholung, um Sie mit den Änderungen in Windows Vista vertraut zu machen. Standardbenutzerprofil Wenn sich ein Benutzer an einem Computer anmeldet, prüft Windows, ob für ihn ein lokales Profil vorliegt. Wenn nicht, wird auf der Grundlage des Standardbenutzerprofils, das entweder in der Freigabe NETLOGON des Domänencontrollers oder als C:\Users\Default (bzw. in älteren Windows-Versionen als Vista C:\Dokumente und Einstellungen\Default User) auf der lokalen Festplatte gespeichert ist, ein Profil für ihn angelegt. Shellordner Außerdem sorgt Windows dafür, dass Shellordner erstellt werden, darunter die aus den weiter vorn in dieser Lösung abgedruckten Tabellen. Fehlt in der Benutzerkopie des Standardprofils beispielsweise der Ordner Links, legt Windows ihn an. Synchronisation servergespeicherter Profile Anschließend ermittelt Windows anhand der Eigenschaft Profilpfad (Profile Path) des Benutzerkontos, ob auf einem Netzwerkserver ein Profil zu finden ist. Wenn ja, wird es mit dem lokalen Benutzerprofil synchronisiert, wobei der Profilzusammenführungsalgorithmus sicherstellt, dass alle seit der letzten Anmeldung an dem betreffenden Computer aktualisierten Dateien lokal aktualisiert werden. Hat das lokale Profil vorher noch nicht bestanden, bewirkt die Synchronisierung des Servers mit der neuen Benutzerkopie des Standardprofils, dass das servergespeicherte Profil durch vollständige Synchronisation heruntergeladen wird. Elemente, die für das Standardprofil spezifisch sind, bleiben jedoch erhalten und werden Bestandteile des Benutzerprofils. 3.7 Entwerfen und Einrichten von servergespeicherten Profilen 253 Öffentliches Profil Das öffentliche Profil enthält Datenspeicher, die dazu gedacht sind, allen Benutzern eines Computers zur Verfügung zu stehen, nämlich Öffentliche Dokumente, Öffentliche Downloads, Öffentliche Musik, Öffentliche Bilder und Öffentliche Videos. Die Elemente im Ordner Öffentlicher Desktop erscheinen auf dem Desktop aller Benutzer, die sich an dem betreffenden Computer anmelden – es handelt sich um die Entsprechung des Ordners All Users\Desktop der Systeme vor Windows Vista. Der Ordner All Users\Startmenü in Windows XP und Windows Server 2003 wird ebenfalls mit dem Startmenüordner des Benutzers zusammengeführt. Dieser öffentliche Ordner ist jetzt unter C:\Program Data\Microsoft\Windows\Startmenü zu finden. Der Ordner C:\ProgramData selbst entspricht dem Ordner All Users\Anwendungsdaten früherer Windows-Versionen, in dem Anwendungseinstellungen abgelegt sind, die für alle Benutzer eines Computers gelten. Zusammenfassung: Profilerstellung Letztendlich beginnt jedes Benutzerprofil als Kopie eines anderen Profils: des Standardprofils in der Freigabe NETLOGON des Domänencontrollers oder auf der lokalen Festplatte oder eines servergespeicherten Profils, auf das die Eigenschaft Profilpfad des Benutzerobjekts verweist. Die Benutzeroberfläche führt Elemente aus den Ordnern Öffentlicher Desktop und Startmenü des öffentlichen Profils mit den entsprechenden Ordnern des Benutzers zusammen. Der Zugriff auf Dateien im Benutzerprofil erfolgt lokal, es sei denn, die Ordner wurden umgeleitet. Änderungen des Profils werden bei der Abmeldung mit dem servergespeicherten Profil des Benutzers synchronisiert, wenn die Konfiguration dies vorsieht. Konfigurieren der nicht servergespeicherten Ordner Mithilfe von Gruppenrichtlinien können Sie festlegen, dass außer den Ordnern, die Windows standardmäßig ausschließt (unter Windows XP Lokale Einstellungen, unter Windows Vista AppData\Local und AppData\LocalLow), bestimmte weitere Ordner nicht auf dem Server gespeichert werden. Dazu benötigen Sie die Einstellung Verzeichnisse aus servergespeichertem Profil ausschließen, die Sie unter Benutzerkonfiguration\Richtlinien\Administrative Vorlagen\System\Benutzerprofile finden. Da diese Einstellung benutzerspezifisch ist, können Sie je nach der Rolle des Benutzers unterschiedliche Ordner auf dem Server ablegen. Geben Sie Ordnernamen relativ zum Benutzerprofil an, z.B. AppData\Roaming\Microsoft\Windows\ Cookies. In Abbildung 3.23 sehen Sie ein Beispiel, das den Ordner Cookies sowohl unter Windows XP als auch unter Windows Vista von der Speicherung auf dem Server ausschließt. Welche Ordner Sie wählen, hängt von Ihrem UDS-Entwurf ab, aber ich empfehle Ihnen, alle Windows XP-Profilordner außer Anwendungsdaten und Favoriten auszuschließen. (Denken Sie daran, dass Desktop und Dokumente umgeleitet sind.) Ich schließe generell Ordner wie Netzwerkumgebung, Druckumgebung, Recent, Send To, Startmenü und Vorlagen aus (der Letztere enthält nur Windows-, aber keine Microsoft Office-Vorlagen). Windows Vista führt neue Profilordner ein. Welche davon auf dem Server gespeichert, umgeleitet oder ausgeschlossen (d.h. nur lokal unterhalten) werden sollen, entscheiden Sie anhand Ihrer Unternehmensbedürfnisse. 254 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abbildung 3.23 Diese Richtlinie schließt den Ordner Cookies von der Serverspeicherung aus. Konfigurieren servergespeicherter Profile Um einen Benutzer mit einem servergespeicherten Profil auszustatten, brauchen Sie nur den Pfad zum entsprechenden Ordner im Attribut Profilpfad des Benutzers abzulegen, das Sie auf der Registerkarte Profil des Benutzerkontos finden (siehe Abbildung 3.24). Um die Anforderung zu erfüllen, physische Speicherorte von UDS-Konfigurationszeigern zu trennen, verwenden Sie einen DFS-Namespace. Beachten Sie die Benutzung der Variable %username% in Abbildung 3.24, die automatisch durch den Prä-Windows 2000-Anmeldenamen des Benutzers (die Eigenschaft sAMAccountName) ersetzt wird. Um das Profil eines Benutzers am Speicherort abzulegen, muss sich der Benutzer zunächst an seinem Computer anmelden (nachdem Sie den Profilpfad eingerichtet haben). Meldet er sich dann ab, wird das lokale Profil mit dem auf dem Server synchronisiert. Wichtig Achten Sie darauf, dass sich der Benutzer an dem Computer anmeldet, der den Pfad zu dem servergespeicherten Profil enthält, nachdem Sie ihn eingerichtet haben, und sich dann wieder dort abmeldet. Wenn das servergespeicherte Profil mit Inhalt gefüllt ist, überschreibt es lokal zwischengespeicherte Profile desselben Benutzers, wenn sich dieser an anderen Computern anmeldet. 3.7 Entwerfen und Einrichten von servergespeicherten Profilen 255 Abbildung 3.24 Profilpfad eines Benutzers Erkennen der V2-Endung von servergespeicherten Windows Vista-Profilen Der Namespace des Windows Vista-Benutzerprofils ist nicht mit Windows XP-Profilen kompatibel. Ist für einen Benutzer auf einem Windows Vista-Client ein Profilpfad angelegt, hängt Windows Vista deshalb die Endung .V2 daran an. Meldet sich James Fine aus Abbildung 3.24 beispielsweise an einem Client mit Windows Vista an, sucht dieser eigentlich nach dem Profil \\contoso.com\users\jfine\profile.v2. Dieses Verhalten lässt sich nicht ändern, und Sie sollten die Erweiterung .V2 nicht selbst an den Profilpfad des Benutzerkontos anhängen. Vereinheitlichen der Arbeitspraxis von Windows XP- und Windows Vista-Benutzern Die Profile unter Windows XP und Windows Vista sind zwar nicht miteinander kompatibel, aber das bedeutet nicht, dass Sie für Benutzer, die sich auf beiden Plattformen anmelden, kein einigermaßen einheitliches Verhalten einrichten können. Der Schlüssel dazu heißt Ordnerumleitung. Alle umgeleiteten Ordner stehen den Benutzern beider Plattformen ohne irgendwelche Probleme zur Verfügung. Leiten Sie also so viele Ordner um, wie Sie können: auf jeden Fall Dokumente und Desktop, Anwendungsdaten, falls es bei Ihnen klappt (siehe die folgende Erörterung) sowie Favoriten, Bilder, Musik und Videos (mit Ordnerumleitungsrichtlinien für Windows Vista bzw. mit der Registrierung für Windows XP, wie in 256 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Lösung 3.5 ausführlich beschrieben wurde). Sie können sogar so weit gehen, dass Sie Shellordner wie Cookies, Send To und weitere umleiten. Lediglich die Datei Ntuser.dat kann nicht freigegeben werden. Auch gut. Meine Erfahrung mit der betriebssystemübergreifenden Freigabe von Registrierungsdateien besagt, dass sie – selbst wenn es klappt – keine Ergebnisse bringt, die die Mühe lohnen. Wenn Sie für Favoriten und andere Shellordner für Windows XP-Clients nicht die Umleitung mithilfe der Registrierung benutzen, können Sie sie in das servergespeicherte Windows XP-Profil aufnehmen. In diesem Fall können Sie Umleitungsrichtlinien einsetzen – die nur für Windows Vista-Clients gelten – und die Ordner auf ihren Speicherort im servergespeicherten Windows XP-Profil zeigen lassen. Mit anderen Worten: Windows XP bekommt die Ordner über das servergespeicherte Profil, während Windows Vista sie in die Speicher des servergespeicherten Profils umleitet. Legenden über servergespeicherte Profile Die Implementierung servergespeicherter Profile ist vom technischen Standpunkt aus einfach. Problematisch kann jedoch die Unternehmenspolitik sein. Wenn es in Ihrer Organisation noch keine servergespeicherten Profile gibt, liegt es vermutlich an mindestens einem folgender Faktoren, die ich als FOLKLORE bezeichne: F – Fantasterei oder mangelndes Faktenwissen O – Ownership (Besitz) L – Leadership (Führung) K – Knowledge (Wissen) L – Legende oder Geschichte O – Obsolete Methoden oder Denkweisen R – Religiöser Einfluss E – Entschuldigungen/Erwartungen Jeder dieser Aspekte kann dazu führen, dass ein perfekter Entwurf oder eine perfekte Komponente verworfen wird. Nach meiner Erfahrung fallen servergespeicherte Profile am wahrscheinlichsten Legenden zum Opfer. Sie haben sich in der Windows NT-Ära einen schlechten Ruf erworben – teilweise mit Recht. Heute stellen sie eine zuverlässige Komponente eines UDS-Frameworks dar, wenn sie in Übereinstimmung mit UDS-Anforderungen und -Entwurf korrekt umgesetzt werden. Sowohl mit dem Entwurf als auch mit der Leistung servergespeicherter Profile gab es früher erhebliche Probleme. Erstens gab es weder einen Zusammenführungsalgorithmus noch eine Synchronisierung, sondern das gesamte Profil wurde bei der Anmeldung auf den Client kopiert und bei der Abmeldung auf den Server zurückkopiert, was jeweils zu ärgerlichen Verzögerungen führte. Meldete sich zweitens ein Benutzer gleichzeitig an mehreren Computern an, war der letzte, von dem er sich abmeldete, wegen der fehlenden Synchronisierung bei allen Dateien Sieger, was sich katastrophal auswirken konnte. Seit Windows 2000 sorgt der Zusammenführungsalgorithmus dafür, dass jede einzelne Datei korrekt synchronisiert wird. Die einzige Datei, bei der mehrere parallele Anmeldungen problematisch sind, ist die Registrierungsdatei. Da alle Benutzereinstellungen in einer einzigen Datei, nämlich Ntuser.dat, gespeichert sind, lädt der letzte Computer, von dem sich der Benutzer abmeldet, seine Kopie davon auf den Server und überschreibt damit diejenigen anderer Computer. Dass dies erhebliche oder auch nur spürbare Probleme hervorruft, ist wenig wahrscheinlich. 3.7 Entwerfen und Einrichten von servergespeicherten Profilen 257 Drittens war kein Ordner von der Speicherung auf dem Server ausgenommen, sodass selbst Ordner mit Datenmüll wie Temp und Temporary Internet Files dort landeten, was die Ordner weiter aufblähte und die Wartezeit beim An- und Abmelden verlängerte. Wurden Benutzerdokumente nicht im Basisverzeichnis des Benutzers im Netzwerk abgelegt, sondern im Benutzerprofil, konnte das Profil enorm groß werden. Umfangreiche Profile sind viertens immer noch anfälliger gegen Beschädigungen, was zum Eingreifen des Helpdesks und damit zu Kosten führt. IT-Fachleute fühlten sich daher von servergespeicherten Profilen in den 90er Jahren zu Recht verärgert. Aber, aber ... wir befinden uns inzwischen fast im zweiten Jahrzehnt des 21. Jahrhunderts. Das ist eine neue Welt, ganz anders als damals. Das K für Knowledge (Wissen) ist ein weiterer Faktor, der Diskussionen über servergespeicherte Profile vom Kurs abbringen kann. Sie wissen, dass Ordner aus servergespeicherten Profilen ausgeschlossen und vollkommen aus dem servergespeicherten Profil heraus umgeleitet werden können. Daher ist Ihnen auch bekannt, dass sich servergespeicherte Profile so weit bearbeiten lassen, dass selbst das Profil des erfahrensten Vielnutzers klein genug ist, um sich schnell synchronisieren zu lassen, selbst auf Systemen, an denen er sich zum ersten Mal anmeldet. Ein kleineres Profil bedeutet auch geringeren Speicherbedarf und weniger Anfälligkeit für Beschädigungen und die damit verbundene Problembehebung. Die Anwendung von Kenntnissen bei der Erstellung eines wirkungsvollen Entwurfs für servergespeicherte Profile bringt Sie auf dem Weg zum Erfolg voran. Die Vorteile servergespeicherter Profile Servergespeicherte Profile sind die einzige praktische Methode, um die Anforderungen an Verfügbarkeit und Ausfallsicherheit der in der Registrierung gespeicherten Benutzereinstellungen zu erfüllen. Jede Benutzeranpassung, die HKEY_CURRENT_USER beeinflusst, wird in der Datei Ntuser.dat des Benutzers im Stamm seines Benutzerprofils gespeichert. Diese Registrierungsdatei muss unter allen Umständen im Netzwerk verfügbar sein. Im Profil gibt es jedoch noch weitere Ordner, die auf dieselbe Weise verfügbar gemacht werden müssen. Das beste Beispiel ist Favoriten. Betreibt ein Kunde beruflich Internetrecherche und verliert er aus irgendeinem Grund diesen Ordner, ist er sehr wahrscheinlich höchst verärgert. Der Ordner kann unter Windows XP nicht mithilfe von Gruppenrichtlinien umgeleitet werden, sodass die Speicherung auf dem Server eine praktikable Lösung für die Erfüllung der UDS-Anforderungen darstellt. Möglicherweise entscheiden Sie sich auch dafür, den Ordner Cookies dort abzulegen, auch wenn ich ihn als verzichtbar ansehe und meistens davon ausschließe. Falls Sie einige Lösungen beim Lesen überschlagen, sollten Sie trotzdem nicht auf die Darstellung in Lösung 3.5 verzichten, wie Sie Shellordner wie Favoriten, Cookies und andere unter Windows XP mit dem Registrierungsschlüssel User Shell Folders umleiten. Windows Vista brachte eine Reihe neuer Benutzerprofilordner mit, die Sie unter dem Aspekt des hier und in Lösung 3.6 Gesagten daraufhin bewerten können, ob sie auf dem Server gespeichert, umgeleitet oder lokal abgelegt werden sollen. Verwalten des Ordners mit den Anwendungsdaten (AppData\Roaming) Der nächste Großeinsatz für servergespeicherte Profile nach Ntuser.dat findet im Ordner Anwendungsdaten statt (seit Windows Vista AppData\Roaming). Dieser Ordner enthält zahlreiche wichtige Einstellungen und Anpassungen – darunter Benutzerwörterbücher, Vorlagen und andere Einstellungen für Microsoft Office, Verschlüsselungsschlüssel und mehr. Gehen diese Daten verloren, kann die Produktivität darunter leiden. 258 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Windows-Clients unterstützen zwar die Umleitung des Ordners Anwendungsdaten, aber nach meiner Erfahrung laufen immer noch einige Anwendungen damit nicht gut. Darüber hinaus muss der Ordner mit der Funktion Offlinedateien zwischengespeichert werden, damit die Anwendungsdaten auch ohne Netzwerkverbindung zur Verfügung stehen (beispielsweise auf Laptops). Während der Übergangsphase gibt es wieder Schwierigkeiten mit einigen Anwendungen, besonders, wenn ein Client mit zwischengespeicherten Anwendungsdaten Verbindungsprobleme hat, die dazu führen, dass er mehrfach zwischen Online- und Offlinemodus wechselt. Zusammenfassend ist zu sagen, dass Probleme mit dem Ordner Anwendungsdaten in erster Linie an den Anwendungen selbst liegen (insbesondere daran, ob sie mit dem umgeleiteten Ordner funktionieren) und in zweiter an Herausforderungen im Zusammenhang mit dem Wechsel in den Offlinemodus. Probleme mit dem Zwischenspeichern des Ordners und der Arbeit ohne Netzwerkanbindung treten bei Windows XP eher auf als bei Windows Vista, das erhebliche Verbesserungen für sämtliche Aspekte der Offlinedateien mit sich gebracht hat. Bevor Sie versuchen, den Ordner Anwendungsdaten umzuleiten, was voraussetzt, ihn für Benutzer ohne Netzwerkverbindung (am Laptop) offline verfügbar zu machen, müssen die Anwendungen gründlich darauf getestet werden, ob sie Netzwerkumleitung und Offlinemodus unterstützen. Noch eine Bemerkung: Windows Vista weist eine neue Gruppenrichtlinieneinstellung auf: Nur bei der An- und Abmeldung zu synchronisierende Netzwerkverzeichnisse. Mithilfe dieser in Lösung 3.9 erläuterten Einstellung können Sie Probleme mit Anwendungen reduzieren, die nicht gut funktionieren, wenn der Ordner Anwendungsdaten in einen Netzwerkordner umgeleitet wird. Zusammenfassung Um die Anforderungen an das UDS-Framework zu erfüllen, werden servergespeicherte Profile eingesetzt, die die Verfügbarkeit der Registrierungsdatei des Benutzers, Ntuser.dat, und ihre Synchronisierung mit einem Netzwerkspeicher erledigen. Außerdem wird der Ordner Anwendungsdaten (bzw. unter Windows Vista AppData\Roaming) in das Profil aufgenommen, bis die Anwendungen gründlich auf die Unterstützung von Ordnerumleitung und Offlinemodus getestet sind. Für Windows XP-Clients wird der Ordner Favoriten entweder durch Ändern des betreffenden Werts im Registrierungsschlüssel User Shell Folders umgeleitet (siehe Lösung 3.5 auf Seite 217) oder auf dem Server gespeichert. Da umfangreiche Benutzerdatenspeicher (Dokumente und Desktop) umgeleitet werden, ist das servergespeicherte Profil nicht groß – es enthält nur Einstellungen und vielleicht den Ordner Favoriten. Ältere Klagen über servergespeicherte Profile, die mit der Synchronisierungsdauer und der Gefahr von Beschädigungen zusammenhingen, sind durch das Heraushalten großer Mengen von Benutzerdaten aus den Profilen so gut wie gegenstandslos geworden. Auch andere Ordner – z.B. Druckumgebung, Netzwerkumgebung und Cookies – lassen sich durch Gruppenrichtlinien von der Speicherung auf dem Server ausschließen. Werden servergespeicherte Profile in dieser Art eingerichtet, erfolgen Speicherung und Zugriff auf Benutzerdaten in erster Linie auf dem System des Benutzers. Die Synchronisierung des Profils bei der An- und Abmeldung gewährleistet, dass alle Änderungen in den Profilordner auf dem Server übertragen werden. Meldet sich ein Benutzer an einem neuen System an, wird sein Profil mit dem neuen System synchronisiert, bevor der Desktop erscheint. 3.8 Verwalten lokal gespeicherter Benutzerdaten 259 3.8 Verwalten lokal gespeicherter Benutzerdaten Typ Anleitung und Skripts Funktionen und Werkzeuge Ordnerumleitung, Verknüpfungen, Ausschließen von Ordnern aus dem servergespeicherten Profil Zusammenfassung Anlegen von Datenspeichern für Benutzerdaten, die nicht im Netzwerk abgelegt werden sollen, und Umleiten aller Shellordner, die in diese Kategorie fallen Vorteile Erfüllen der Richtlinien über IT-Sicherheit und Nutzung der technischen Einrichtungen Einführung Wenn ich mit Kunden an der Umsetzung von Frameworks für Benutzerdaten und -einstellungen arbeite, lautet einer der ersten Einwände dagegen: »Wir wollen aber nicht, dass Benutzer den Dateityp XYZ im Netzwerk ablegen!« Dabei wird vorausgesetzt, dass sämtliche Benutzerdaten auf dieselbe At und Weise gehandhabt werden müssen. Manche Administratoren glauben dies, weil ziemlich häufig alle Benutzerdaten im Benutzerprofil gespeichert werden, von denen wir anscheinend behaupten, dass sie entweder umgeleitet oder auf dem Server gespeichert werden, was zu einer Kopie auf den Netzwerkservern führt. Aus genau diesem Grund sollte eine Anforderung an ein Framework für Benutzerdaten und -einstellungen folgendermaßen lauten: »Das UDS-Framework erfüllt die Unternehmensrichtlinien für IT-Sicherheit und die Nutzung der technischen Einrichtungen in Bezug auf die Speicherung von Dateien im Netzwerk.« Es gibt tatsächlich zwei dringende Gründe, bestimmte Daten nicht auf Servern abzulegen: Datensicherheits- und IT-Nutzungsrichtlinien. Richtlinien für die Datensicherheit sollten so formuliert sein, dass sie klar definieren, wie bestimmte Datenklassen gehandhabt werden. Möglicherweise gibt es besonders sensible Daten, die – aus welchem Grund auch immer – weder auf einem Netzwerkserver liegen noch auf einem Computer der betreffenden Umgebung zugänglich sein sollen. Meine Erfahrung besagt jedoch, dass es sich bei Dateien, die unter die Datensicherheitsrichtlinien fallen, normalerweise um die wertvollsten Datenbestände eines Unternehmens handelt, weshalb sie gerade geschützt, gesichert und präzise verwaltet werden sollten. Aufgaben dieser Art lassen sich wirkungsvoller erledigen, wenn sich die Daten doch auf einem Server befinden. Eigentlich geht es eher darum, den Zugriff auf die Daten zu beschränken – also um eine Frage von Sicherheit oder Berechtigungen. Es kann gut sein, dass solche Daten nicht in einem servergespeicherten Profil oder einem umgeleiteten Ordner untergebracht werden sollten, sondern in einem eigenen Datenspeicher. Es ist wahrscheinlicher, dass IT-Richtlinien und Nutzungsfragen bestimmen, was auf Netzwerkservern gespeichert werden kann und was nicht. Nehmen wir als Beispiel die Musiksammlungen von Mitarbeitern. Die meisten Unternehmen, mit denen ich zusammengearbeitet habe, äußerten Bedenken, die Musik von Benutzern auf den Servern ablegen zu lassen – wegen des Speicherbedarfs und möglicher Verletzungen des Urheberrechts. Oft betrachten Firmen Mediendateien – Bilder, Musik und Videos – nicht als geschäftliche, sondern als private Daten, und die IT-Richtlinien untersagen häufig, private Daten auf Servern abzulegen. Daten, die ausschließlich auf einem Clientsystem gespeichert und weder auf dem Server abgelegt noch umgeleitet werden sollen, bezeichne ich als rein lokale Benutzerdaten. 260 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Wichtig »Rein lokale Benutzerdaten« ist ein allein für unsere Darstellung eines UDS-Frameworks gültiger Begriff; es handelt sich nicht um einen offiziellen Terminus von Microsoft. Gemeint sind Daten, die weder auf dem Server abgelegt noch umgeleitet werden. In dieser Lösung betrachten wir Möglichkeiten, rein lokale Daten zu verwalten, die »niemals« auf Servern gespeichert werden sollen. Die Anführungszeichen um »niemals« benutze ich, weil es in der EDV nur wenige knallharte Regeln gibt und ich meine, dass Sie sämtliche Benutzerdaten mitnehmen sollten, wenn ein Benutzer einen neuen Computer bekommt – auch Dateien wie private Musiksammlungen. Ich erwähne dies nur, weil Benutzer unsere Kunden sind und das Löschen oder der Verlust der Musik eines Benutzers mit Sicherheit einen unglücklichen Kunden hinterlässt. Eigentlich geht es in dieser Lösung also um Benutzerdaten, die im Normalfall nicht auf Servern gespeichert werden sollen. Welche Daten sollen nur lokal verwaltet werden? Im ersten Schritt ermitteln Sie, bei welchen Daten das Speichern auf Netzwerkservern verhindert werden soll. Als Beispiel verwende ich Musik-, Bild-, Video- und verschiedene private (also nicht unternehmensbezogene) Dateien und bezeichne sie in ihrer Gesamtheit als rein lokale Daten. Welche Daten Sie als rein lokal betrachten, sollte direkt von den Datensicherheits- und IT-Nutzungsrichtlinien bestimmt werden. Fehlen solche Richtlinien oder beziehen Sie bestimmte Datenklassen in die privaten Dateien ein, die nicht darunter fallen, stoßen Sie wahrscheinlich auf Widerstand. Ich empfehle Ihnen, Richtlinien aufzustellen, falls es keine gibt, oder vorhandene nötigenfalls zu erweitern, damit hinter Ihrer Entscheidung, die betreffenden Datenklassen getrennt zu verwalten, ein Unternehmensziel steht. Entwerfen einer Ordnerstruktur für rein lokale Daten Welche Ordner Sie zur Aufnahme rein lokaler Daten anlegen, hängt vermutlich in erster Linie von der Parallelität zwischen den betreffenden Datenklassen und den Profilordnern in Windows Vista und Ihrer Planung für den Wechsel zu Windows Vista ab. Rein lokale Medienordner Sehen Sie Bilder, Musik und Videos als rein lokal an, sollten Sie daran denken, dass Windows Vista für solche Dateien explizit Ordner anlegt, die Sie problemlos verwenden und von der Speicherung auf dem Server ausnehmen können. Unter Windows XP handelt es unglücklicherweise um Unterordner von Eigene Dokumente. In dieser Lösung gehen wir davon aus, dass Sie irgendwann auf Windows Vista umsteigen, und legen daher weiter hinten eine Windows XP-Profilordnerstruktur an, die diejenige von Windows Vista nachbildet und damit die Migration auf Windows Vista vereinfacht. Anschließend behandeln wir die betreffenden Ordner als rein lokal. Private Nichtmediendateien Möglicherweise haben Sie weitere Datenklassen als Bilder, Musik und Videos, die Sie als rein lokal behandeln wollen. In unserem Beispiel ist es eine Klasse für die verschiedenen privaten Dateien, bei Ihnen sind es möglicherweise mehrere. Sie müssen eine Ordnerstruktur entwerfen, um diese Nichtmedienklassen rein lokaler Daten unterzubringen, die den Zweck des Ordners und die Art der aufzunehmenden Daten verdeutlicht. Idealerweise sollten Sie den Benutzern auch verdeutlichen, dass die Pflege der Daten nicht Sache des Unternehmens ist. 3.8 Verwalten lokal gespeicherter Benutzerdaten 261 Gibt es wie in unserem Beispiel nur eine Nichtmedienklasse, empfehle ich einen einzigen Ordner Private Dateien. Ich habe auch Ordnernamen wie Lokale Daten, Lokale Daten ohne Sicherung und Eigene lokale Daten als Vorschlag oder in Gebrauch erlebt und kann mir auch den Namen Rein lokale Daten vorstellen. Wir legen also einen Ordner Private Dateien auf der obersten Ebene des Benutzerprofils an, der nicht umgeleitet wird und mithilfe der in Lösung 3.6 vorgestellten Gruppenrichtlinie von der Speicherung auf dem Server ausgenommen wird. Wir erstellen ihn im Benutzerprofil, damit er durch die Zugriffssteuerungsliste des Profils geschützt ist, die gewährleistet, dass nur der Benutzer und die Administratorengruppe des Computers Zugriff darauf haben. Aus den in den Anforderungen in Lösung 3.1 angesprochenen Gründen sollte der Ordner nicht im Stamm des Festplattenlaufwerks angelegt werden. Ich empfehle grundsätzlich, den Ordner Private Dateien als Profilordner der obersten Ebene anzulegen – also unter Windows Vista z.B. C:\Users\<Benutzername>\Private Dateien bzw. unter Windows XP C:\Dokumente und Einstellungen\<Benutzername>\Private Dateien. Technisch gesehen gehen Sie das Risiko ein, mit einer Anwendung in Konflikt zu geraten, die einen eigenen Ordner mit diesem Namen an derselben Stelle erwartet, aber dieses Risiko ist gering, und außerdem erkennen Sie es beim Testen der neuen Anwendung. Solche Risiken lassen sich reduzieren, indem Sie im Benutzerprofil einen Ordner mit Ihrem Firmenname anlegen und den Ordner Private Dateien darin unterbringen – beispielsweise C:\Users\<Benutzername>\<Firma>\Private Dateien. Dieser Ansatz zeigt eine gewisse Eleganz, weil Sie möglicherweise weitere benutzerspezifische Ordner anlegen, die Sie dann unter einem gemeinsamen Ordner zusammenfassen können. Lösung 3.9 behandelt den Ordner Lokale Dateien, der als gleichrangiger Ordner unter einem gemeinsamen übergeordneten Ordner möglicherweise eleganter ist – beispielsweise C:\Users\<Benutzername>\<Firma>\Lokale Dateien. Bei mehreren Nichtmedienklassen privater Dateien haben Sie die Wahl: Sie können für jede Dateiklasse einen Profilordner der obersten Ebene oder einen Ordner innerhalb eines Stammordners (z.B. Rein lokal) anlegen und dadurch alle privaten Dateien zentral zusammenfassen. Beide Möglichkeiten sehen Sie in Abbildung 3.25. Abbildung 3.25 Zwei Möglichkeiten einer Dateistruktur für private Dateien 262 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Für welche Möglichkeit sollen Sie sich entscheiden? Ich vermute, dass ist eher eine Geschmacksfrage als alles andere, und Sie können natürlich auch eine Mischung aus Ordnern oberster Ebene und Unterordnern eines gemeinsamen Ordners entwerfen. Hinweis Wenn Sie Entwickler haben, können Sie sie bitten, in die MSDN-Dokumentation der Known Folders in Windows Vista zu schauen. Windows Vista bietet die Möglichkeit, offizielle Profilordner, die so genannten Known Folders, mit Eigenschaften anzulegen, die das Speichern auf dem Server verhindern, z.B. Flags. Solche Ordner können auch die Umleitung unterstützen. Diese Idee lässt sich ohne Weiteres in Form von firmenspezifischen Ordnern dieser Art ausbauen. Einrichten von Ordnern für rein lokale Dateien Nachdem Sie festgelegt haben, welche Dateitypen Sie rein lokal verwalten wollen, und eine Ordnerstruktur für diese Daten entworfen haben, können Sie die Änderungen umsetzen, was mehrere Schritte erfordert: Anlegen der Ordner: Sie legen die eigentlichen Ordner im Dateisystem an. Verschieben der Daten in die neuen Ordner: Dann werden die Benutzerdaten in die neuen Ordner verschoben. Sicherstellen, dass die Anwendungen die verschobenen Medienordner finden: Jede Anwendung, die ihre Daten an einer Stelle sucht, die verschoben wurde, muss aktualisiert werden. Umleiten von rein lokal behandelten Windows XP-Medienordnern: Medienordner wie Eigene Musik, Eigene Bilder und Eigene Videos können an den neuen Ort umgeleitet werden, den Sie für diese Dateien angelegt haben. Vorsehen von Möglichkeiten zum Auffinden verschobener Ordner: Sorgen Sie für einen sichtbaren, leicht auffindbaren Pfad zu den neu angelegten Ordnern. Ausschließen rein lokaler Ordner aus servergespeicherten Profilen: Nutzen Sie die Gruppenrichtlinieneinstellung Verzeichnisse aus servergespeichertem Profil ausschließen, die Sie unter Benutzerkonfiguration\Richtlinien\Administrative Vorlagen\System\Benutzerprofile finden. Die beiden ersten Schritte sind einfach; die anderen vier untersuchen wir gleich. Sicherstellen, dass die Anwendungen die verschobenen Medienordner finden Nehmen wir an, Sie haben eine Datenklasse, die Sie als rein lokal behandeln. Sie haben dafür einen Ordner innerhalb des Benutzerprofils angelegt und die Daten aus dem Ordner Dokumente dorthin überführt. Bestimmte Anwendungen haben sich möglicherweise den Speicherort der Dateien gemerkt, sodass eine Umleitung erforderlich sein kann. Wie Sie die Anwendung auf den neuen Ort zeigen lassen, hängt vollkommen von ihr selbst ab. Häufig müssen Registrierungswerte aktualisiert oder eine Konfigurationsdatei (INI oder XML) geändert werden. Im Allgemeinen finden Anwendungen Ordner entweder über einen hartkodierten Pfad oder durch Auflösen des Speicherorts eines Shellordners. Um Shellordner geht es im nächsten Abschnitt. Die dort behandelten Konzepte können Sie auf alle Anwendungen übertragen, die Shellordner nutzen. Hartkodierte Pfade lassen sich sehr erfolgreich finden, indem Sie die Registrierung nach Instanzen des alten Pfades durchsuchen und dann auf der Festplatte (auch in Systemdateien und -ordnern sowie verborgenen Dateien und Ordnern) nach Dateien suchen, die den alten Pfad enthalten. 3.8 Verwalten lokal gespeicherter Benutzerdaten 263 Beim Entwerfen Ihres UDS-Frameworks testen Sie auch Anwendungen, die von der Verlagerung ihrer Datenspeicher betroffen sein können. Sie wollen sicherstellen, dass sie an einen benutzerdefinierten Ort umgeleitet werden können und weiter erwartungsgemäß funktionieren. Diese Aufgabe sollte jedoch nicht übermäßig schwer sein, weil das Wesentliche an »rein lokalen« Ordnern der Umstand ist, dass sie von Umleitung und Speicherung auf dem Server ausgenommen sind. Wahrscheinlich haben Sie nicht besonders viele Unternehmensanwendungen, die mit einer so eingeschränkten Skala von Datenarten interagieren muss. Umleiten von rein lokal behandelten Windows XP-Medienordnern Behandeln Sie Windows Vista-Ordner als rein lokal, sollte alles klar sein. Sie müssen lediglich dafür sorgen, dass sie nicht den Richtlinien für die Ordnerumleitung unterliegen, und sie anschließend aus den servergespeicherten Profilen ausschließen, wie weiter hinten erörtert wird. Unter Windows XP müssen Sie jedoch die Medienordner umleiten, die Sie als rein lokal behandeln wollen, damit sie keine Unterordner von Eigene Dokumente mehr sind, und die neuen Speicherorte dann aus dem servergespeicherten Profil ausschließen. Um Shellordner wie Bilder, Musik und Videos für Windows XP-Clients umzuleiten, schlagen Sie in Lösung 3.5 auf Seite 217 nach. Ich habe sogar eine benutzerdefinierte Vorlage (ADM-Datei) bereitgestellt, mit der Sie die Medienordner umleiten können. Verlagern Sie sie einfach an einen Ort im Benutzerprofil, beispielsweise %USERPROFILE%\<Ordnername>, anstatt in einen Netzwerkspeicher (siehe Abbildung 3.26). Abbildung 3.26 Umleiten eines Shellordners an einen anderen lokalen Speicherort 264 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Vorsehen von Möglichkeiten zum Auffinden verschobener Ordner Die beiden vorherigen Abschnitte haben Ihnen gezeigt, wie Sie dafür sorgen, dass Anwendungen Ihre rein lokalen Ordner finden: Umleiten von Shellordnern durch Ändern ihrer Registrierungswerte oder Suchen der Einstellungen, die die konkrete Anwendung nutzt, um auf ihre Datenspeicher zu zeigen. Verschieben Sie jedoch Ordner – beispielsweise Musik, Bilder und Videos – wissen die Benutzer nicht mehr, wo sie sie suchen sollen. Sie müssen in der Benutzerschnittstelle leicht auffindbare Pfade zu den verschobenen Ordnern bereitstellen. Ich stelle Ihnen zwei Ansätze vor, die Ihnen genug Möglichkeiten bieten sollten, um eine in Ihrer Situation funktionierende Lösung zu erstellen. Zuerst nehmen wir als Beispiel den Ordner Eigene Musik, aber für jeden anderen Ordner, den Sie an anderer Stelle speichern, können Sie ähnliche Konzepte und Techniken einsetzen. Windows XP-Benutzer sind daran gewöhnt, den Ordner Eigene Musik und seine Kameraden im Ordner Eigene Dokumente zu finden. Haben Sie nun einen neuen Ordner für Musik angelegt – beispielsweise %USERPROFILE%\Musik –, um ihn rein lokal zu verwalten, müssen Sie den Benutzern eine Möglichkeit bieten, sich zu ihrer Musiksammlung durchzuklicken. Ich empfehle Ihnen, den ursprünglichen Ordner Eigene Musik zu löschen. Die Musikdateien sollten sich schon an ihrem neuen Speicherort befinden. Auf diese Weise sehen die Benutzer genau das, was sie schon immer gesehen haben: etwas, das wie ein Ordner aussieht und ihre Musiksammlung zugänglich macht. Das zweite Beispiel gilt für Windows Vista, dessen Benutzeroberfläche ein oft übersehenes und höchst ergiebiges Element aufweist, das Fenster Linkfavoriten (in Abbildung 3.27 links oben). Um den Benutzern einen sichtbaren, leicht zu findenden Pfad zum Speichern ihrer privaten Dateien zur Verfügung zu stellen, habe ich in diesem Fenster einen Link erstellt, der auf unseren rein lokalen Ordner für private Dateien zielt – %userprofile%\Private Dateien. Um einen solchen Link anzulegen, tragen Sie einfach eine Verknüpfung in den Ordner Links im Windows Vista-Benutzerprofil ein. Abbildung 3.27 Der Bereich Linkfavoriten in Windows Vista 3.9 Verwalten von nur lokal zugänglichen Benutzerdaten 265 Hinweis Hinweise in der Benutzeroberfläche sind eine großartige Methode, den Benutzern Nachrichten zu übermitteln. Obwohl der rein lokale Ordner möglicherweise Private Dateien heißt, können wir die Verknüpfung, die den Linkfavoriten anlegt, Private Dateien regelmäßig sichern! nennen und die Benutzer so daran erinnern, dass sie selbst dafür zuständig sind, Sicherungskopien für den Inhalt des Ordners zu erstellen. Informieren und Schulen der Benutzer Wie bei allen Aspekten eines Frameworks für Benutzerdaten und -einstellungen sollten Sie Informationsquellen für die Benutzer bereitstellen und sie im Umgang mit den UDS-Datenspeichern schulen. Dass es rein lokale Daten gibt, hat einen Grund – die Unterstützung bestimmter Datenklassen, die aufgrund von Datensicherheits- oder IT-Nutzungsrichtlinien nicht auf dem Server abgelegt oder umgeleitet werden sollen. Überzeugen Sie sich davon, dass die Benutzer wissen, um welche Datenarten es sich handelt und welche Speicher Sie dafür angelegt haben. Da rein lokale Daten nur auf dem System des Benutzers gespeichert werden, sollten Sie die Benutzer außerdem daran erinnern, dass sie selbst für die Sicherung der Daten zuständig sind, die sie bei Ausfall oder Verlust der Hardware nicht verlieren möchten. Zusammenfassung In vielen Unternehmen gibt es Datenarten, die nicht auf Netzwerkservern gespeichert werden sollen und deshalb nur auf der lokalen Festplatte eines Benutzers abgelegt werden können. Zu diesen rein lokalen Daten zählen häufig die Musiksammlungen von Benutzern (Ordner Musik oder Eigene Musik), gelegentlich auch Bilder, Videos und manche Typen privater Dateien. Um die Erfüllung der Richtlinien für Datensicherheit und IT-Nutzung zu fördern, müssen Sie etwas mit diesen Daten unternehmen, d.h. sie verschieben, damit sie weder auf dem Server abgelegt noch umgeleitet werden. Außerdem müssen Sie es Benutzern und Anwendungen leicht machen, die neuen Ordner zu finden. 3.9 Verwalten von nur lokal zugänglichen Benutzerdaten Die Lösung im Überblick Typ Anleitung und Skripts Funktionen und Werkzeuge Servergespeicherte Benutzerprofile, Offlinedateien, Gruppenrichtlinien, Verknüpfungen Zusammenfassung Anlegen eines oder mehrerer lokaler Ordner innerhalb des Benutzerprofils, die von der Speicherung auf dem Server ausgenommen werden. Sie sind für Daten da, auf die der lokale Zugriff möglich sein muss, die aber trotzdem verwaltet werden müssen, um die Anforderungen des UDS-Frameworks an Verfügbarkeit, Mobilität und Ausfallsicherheit zu erfüllen. Vorteile Unterstützung von Anwendungen oder Verfahren, die lokalen Datenzugriff erfordern 266 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Einführung Von den Unternehmensanforderungen an ein UDS-Framework, die in Lösung 3.1 aufgestellt wurden, konzentrierten sich die meisten auf die Sicherheit, Ausfallschutz und Mobilität von Benutzerdaten, was zu einem Entwurf führt, in dem Benutzerdatenspeicher wie Dokumente und Desktop auf Server als primären Speicherort umgeleitet werden. Für die meisten Benutzerdaten in Netzwerken mit angemessener Verbindung zwischen Benutzern und UDS-Servern sollte dies ausreichen, um die Anforderungen zu erfüllen. Aber keine Regel ohne Ausnahme. Weiter vorn haben wir Beispiele von Benutzern angeführt, die Videodateien bearbeiten. Diese Art beruflicher Tätigkeit wird qualvoll, wenn nicht unmöglich, wenn zwischen der Anwendung und den Daten eine Netzwerkleitung liegt, weshalb Speicherung und Zugriff auf solche Daten lokal erfolgen sollten. Ein weiteres Beispiel, das ich in einigen Unternehmen erlebe, ist der Wunsch, auf Outlook- oder andere E-Mail-Archive lokal zuzugreifen, damit es schneller geht. Aus diesem Grund lautete eine der Anforderungen an das Framework: »Das UDS-Framework unterstützt die Verwaltung von Ausnahmen.« Nehmen wir an, dass die Daten in diesem Szenario für den Benutzer wichtig und für das Unternehmen wertvoll sind, müssen wir den Benutzern eine geregelte Methode zur Verfügung stellen, für solche Daten das Modell der umgeleiteten Ordner zu umgehen, sodass sie lokal darauf zugreifen können. Wir müssen aber auch dafür sorgen, dass Datensicherungen angelegt werden, um die Anforderungen an Ausfallsicherheit und Mobilität zu erfüllen. In dieser Lösung untersuchen wir Möglichkeiten für die Verwaltung von Daten, die lokal zugänglich sein sollen, aber regelmäßig im Netzwerk gesichert werden müssen, also anders als die rein lokalen Daten in Lösung 3.8, die ausschließlich auf der Clientfestplatte liegen. In der nächsten Lösung erfahren wir genau, wie wir Datensicherungen in Netzwerkspeichern durchführen. Festlegen des Namens für den Order mit lokalen Dateien Unabhängig davon, welchen Entwurf Sie nach der Bewertung der in Kürze vorgestellten Möglichkeiten wählen, müssen Sie entscheiden, wie Sie die Ordner nennen, die Sie zur Verwaltung der Daten in dieser Kategorie einsetzen wollen. Der Name sollte einen oder mehrere der folgenden Aspekte deutlich machen: Der Datenzugriff erfolgt nicht über das Netzwerk, sondern auf der lokalen Festplatte. Es werden mit gewisser Regelmäßigkeit Datensicherungen erstellt. Die Ordner sollen keine neuen lokalen Speicher für alle Benutzerdaten werden, sondern ausschließlich für diejenigen, auf die lokaler Zugriff erforderlich ist. Die Ordner sollen nicht als alternative »lokale Kopiermöglichkeit« für Offlinedateien von Benutzern behandelt werden, die offline arbeiten. Die Ordner sollen nur so lange benutzt werden, wie der aktive Zugriff auf die Daten andauert. Wenn die Arbeit abgeschlossen ist, sollen die Daten in einen Speicher übertragen werden, der mit umgeleiteten Ordnern verwaltet werden kann. Die Art der Daten, die Benutzer in den betreffenden Ordnern unterhalten können. Ich habe noch keinen Namen für diese Art Ordner gesehen, der klarer Sieger war. Anscheinend funktionieren Namen folgender Art: Lokale Dateien (oder Daten) Gesicherte lokale Dateien (oder Daten) 3.9 Verwalten von nur lokal zugänglichen Benutzerdaten 267 Lokale Arbeit oder Lokal arbeiten Lokale Unternehmensdateien (im Gegensatz zu Private Dateien) In dieser Lösung wählen wir einen Namen und bleiben dabei: Lokale Dateien. Option 1: Verwenden eines Ordners mit servergespeichertem Profil Die erste Option ist die unkomplizierteste: Verwenden Sie einen Ordner, der mithilfe servergespeicherter Profile verwaltet wird. Wie in Lösung 3.7 erörtert, synchronisieren diese bei der An- und Abmeldung die Dateien des Netzwerkspeichers und der lokal zwischengespeicherten Kopie des Benutzerprofils. Solange der Benutzer angemeldet ist, greift er auf den lokalen Cache zu. Sie können beispielsweise im Benutzerprofil einen neuen Ordner Lokale Dateien anlegen. Solange er nicht ausdrücklich mit einer Gruppenrichtlinie vom Speichern auf dem Server ausgenommen ist, wird er dort abgelegt. Der Nachteil der Serverspeicherung ist die Synchronisierung bei jeder An- und Abmeldung, die sich nicht wirklich abstellen lässt und besonders problematisch wird, wenn die Dateien im Ordner Lokale Dateien umfangreich sind: Wenn die Benutzer ihr System herunterfahren, dauert die Übertragung auf den Server ziemlich lange. Ungeduldige Benutzer schalten den Rechner möglicherweise einfach aus oder bekommen heraus, dass das Herunterfahren schneller geht, wenn sie die Verbindung zum Netzwerk kappen, was in beiden Fällen die Integrität und die Brauchbarkeit des Benutzerprofils auf dem Server bedroht. Sind Anzahl und Größe der Dateien in einem Ordner Lokale Dateien voraussichtlich annehmbar, ist ein Ordner mit servergespeichertem Profil jedoch mit Sicherheit die einfachste Lösung. Option 2: Nutzen von Offlinedateien (nur Windows Vista) Dieser Ansatz ist erst seit Windows Vista möglich und eine gute Möglichkeit für Situationen, in denen der Zugriff auf eine Datei auf einer Netzwerkfreigabe problematisch ist. Unter Windows Vista gibt es die neue Gruppenrichtlinieneinstellung Nur bei der An-/Abmeldung zu synchronisierende Netzwerkverzeichnisse. Sie funktioniert für umgeleitete Ordner, die offline verfügbar gemacht wurden. Wie in Lösung 3.6 erwähnt, führt Windows dies standardmäßig automatisch durch, wenn Benutzerordner umgeleitet werden. Wird der Ordner Dokumente umgeleitet, stellt Windows ihn also offline zur Verfügung. Anschließend können Sie mit dieser Gruppenrichtlinieneinstellung festlegen, auf welche Unterordner von Dokumente (oder anderer Netzwerkordner wie AppData, Desktop usw.) offline zugegriffen werden soll, auch wenn der Server erreichbar ist. Änderungen an darin enthaltenen Dateien werden nur bei der An- und Abmeldung synchronisiert. Das Ergebnis ist ein servergespeichertes Profil wie ein Unterordner innerhalb eines sonst umgeleiteten Ordners. Raffiniert, oder? Sie finden die Richtlinie unter Benutzerkonfiguration\Richtlinien\Administrative Vorlagen\System\Benutzerprofile – eine nicht gerade einleuchtende Stelle für eine Offlinedateieinstellung. Aktivieren Sie sie und legen Sie mithilfe von Netzwerkordnernamen und Pfaden zu Unterordnern die gewünschten Ordner fest. Abbildung 3.28 konfiguriert den Ordner Dokumente\Lokale Dateien für den lokalen Zugriff und die Synchronisierung nur bei der An- und Abmeldung. 268 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Abbildung 3.28 Die Option Nur bei der An-/Abmeldung zu synchronisierende Netzwerkverzeichnisse Der vollständige Pfad im Textfeld der Abbildung lautet \\contoso.com\Users\%username%\Documents\Local Files. Außerdem können Sie mit dieser Option den Ordner AppData in Situationen umleiten, in denen Anwendungen bei Nichtverfügbarkeit des Servers nicht zufrieden stellend laufen (siehe Lösung 3.7). Sie können dann einfach festlegen, dass der AppData-Unterordner für die betreffende Anwendung nur bei der Anund Abmeldung synchronisiert wird. Dadurch werden jedoch nicht Probleme mit Anwendungen behoben, die hartkodierte Pfade wie C:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten verwenden, um den Ordner AppData zu finden. So weit, so gut, doch was ist jetzt der Nachteil? Erstens funktioniert dies nur unter Windows Vista. Zweitens findet bei jeder An- und Abmeldung eine Synchronisierung statt (vorausgesetzt, der Benutzer hat eine Verbindung zum Netzwerk), was wiederum zeitaufwändig sein kann, wenn die Dateien dieser Klasse umfangreich sind. Drittens sind die Pfade, die in diese Richtlinie eingetragen werden müssen, vollständige UNC-Pfade, wodurch Ihre Einrichtung des Gruppenrichtlinienobjekts für die Ordnerumleitung schwieriger werden kann als nötig. Lassen Sie mich das erklären. Bei der einfachen Ordnerumleitung, bei der die Ordner aller Benutzer an einen gemeinsamen Stammpfad umgeleitet werden – z.B. \\contoso.com\Benutzer\%username%\Dokumente – haben Sie noch Glück. Sie können genau diesen Pfad in die Richtlinieneinstellung Nur bei der An-/Abmeldung zu synchronisierende Netzwerkverzeichnisse übernehmen. Wollen Sie jedoch eine erweiterte Umleitung durchführen, bei der mehrere Sicherheitsgruppen unterschiedliche Zielorte haben (beispielsweise \\contoso.com\users\sydney\%username%\documents und \\contoso.com\users\new york\%username%\documents), wird es schwieriger. Entweder müssen Sie jeden möglichen Pfad (in diesem Beispiel die beiden Pfade mit Sydney und New York) in die Einstellung aufnehmen oder auf die erweiterte Ordnerumleitung verzichten und stattdessen getrennte Gruppenrichtlinienobjekte einrichten – für jede Sicherheitsgruppe eins mit einfacher Ordnerumleitung, das durch 3.9 Verwalten von nur lokal zugänglichen Benutzerdaten 269 Filtern nur für diese Gruppe gilt und bei dem das Ziel der Ordnerumleitung und die Einstellung Nur bei der An-/Abmeldung zu synchronisierende Netzwerkverzeichnisse denselben UNC-Pfad enthalten. Noch ein guter Grund mehr, den DFS-Namenraum für Ihr UDS-Framework vollständig aufgelistet einzurichten anstatt auf Elemente wie Standorte aufzubauen. Option 3: Erstellen eines lokalen Ordners, der auf einem Netzwerkspeicher gesichert wird Die dritte Möglichkeit für die Arbeit mit lokalen Dateien besteht darin, den primären Speicher, in dem der Zugriff erfolgt, auf der lokalen Festplatte zu erstellen und anschließend die Dateien im Netzwerk zu sichern. Diese Option ist am kompliziertesten in der Einrichtung, bietet jedoch die meiste Flexibilität und Kontrolle. Außerdem funktioniert sie unter Windows XP und Windows Vista (und allen anderen Windows-Versionen). Da es je nach den konkreten Erfordernissen so viele Varianten gibt, führe ich Ihnen ein Szenario vor, das sämtliche wesentlichen Fragen berührt. Danach können Sie Ihren Bedarf analysieren und einen entsprechenden Entwurf erstellen, der die in Ihrem Unternehmen bestehenden Probleme berücksichtigt. Wir gehen in unserem Szenario davon aus, dass der lokale Zugriff auf mehrere Datenarten erforderlich ist: umfangreiche Videodateien und PST-Dateien von Microsoft Outlook. Es handelt sich um sowohl für den Benutzer als auch für das Unternehmen wichtige Bestände, weshalb sie nicht mit dem Risiko des vollständigen Verlusts bei einem Hardwareausfall rein lokal abgelegt werden sollen. Stattdessen wollen wir sicherstellen, dass eine Kopie der Dateien im Netzwerk vorhanden ist. Erstellen des lokalen Ordners Zuerst muss der lokale Ordner angelegt werden, der als Stamm für die Daten dieser Klasse fungieren soll. Natürlich dürfen es auch mehrere sein. Um in den Windows Vista-Namespace zu passen, soll er %userprofile%\Local Files heißen. Er ist außerhalb der umgeleiteten Ordner untergebracht – eine Umleitung darf nicht stattfinden –, befindet sich aber innerhalb des Benutzerprofils, sodass laut Berechtigung nur der Benutzer Zugriff hat. Ausnehmen des Ordners von der Serverspeicherung Anschließend schließen wir den Ordner mit der in Lösung 3.7 vorgestellten Richtlinie Verzeichnisse aus servergespeichertem Profil ausschließen aus den servergespeicherten Profilen der Benutzer aus. Aufstellen von Verfahren und Werkzeugen zur Datensicherung und Synchronisation Da die Daten dieser Kategorie vom UDS-Framework verwaltet werden, müssen Sie dafür sorgen, dass sie in angemessenen Abständen regelmäßig in einem Netzwerkspeicher gesichert oder synchronisiert werden, damit sie auf anderen Computern zur Verfügung stehen und bei Hardwareausfall oder Verlust auf einem Benutzersystem noch vorhanden sind. Optionen für die Sicherung und Synchronisierung werden in Lösung 3.10 behandelt. Erstellen von sichtbaren Navigations- und Zugriffspunkten in der Benutzeroberfläche Da der Ordner Lokale Dateien nicht in einem umgeleiteten oder servergespeicherten Ordner untergebracht ist, müssen Sie dafür sorgen, dass die Benutzer ihn leicht finden. Dazu können Sie Verknüpfungen oder unter Windows Vista symbolische Links in geeigneten Benutzershellordnern platzieren. Sie können beispielsweise im Ordner Dokumente eine Verknüpfung oder einen symbolischen Link Lokale Dateien mit dem betreffenden Pfad auf der lokalen Festplatte erstellen. 270 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Unter Windows Vista können Sie außerdem den Bereich Linkfavoriten benutzen, den Sie in Abbildung 3.29 gesehen haben. Um dort einen Link einzufügen, geben Sie einfach eine Verknüpfung in den Ordner Links im Benutzerprofil ein. Zusammenfassung Diese Lösung enthielt eine Anleitung zum Anlegen eines Datenspeichers für den lokalen Zugriff für Situationen, in denen die Kernverwaltungskomponenten des UDS-Frameworks – umgeleitete Ordner, Offlinedateien und Synchronisierung – nicht so gut geeignet sind. Die erste Möglichkeit ist das Anlegen eines neuen Ordners im Benutzerprofil und die Synchronisierung der lokalen Änderungen mit dem servergespeicherten Profil durch die standardmäßige Profilzusammenführung. Die zweite Möglichkeit, die nur unter Windows Vista zur Verfügung steht, besteht darin, Unterordner eines umgeleiteten Ordners so einzurichten, das sie nur bei der An- und Abmeldung synchronisiert werden und der Zugriff lokal erfolgt, solange eine Netzwerkverbindung besteht. Am flexibelsten ist die dritte Möglichkeit: Sie lässt sich sowohl unter Windows XP als auch unter Windows Vista implementieren und stützt sich zur Synchronisierung des lokalen Datenspeichers mit dem auf dem Server nicht auf die Standardmechanismen, sodass Sie die Synchronisierung voll und ganz nach den Erfordernissen der jeweiligen Datenklasse einrichten und handhaben können. In Lösung 3.10 werden einige Werkzeuge für die Synchronisierung der lokalen mit den Serverspeichern vorgestellt. 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit Die Lösung im Überblick Typ Anleitung und Skripts Funktionen und Werkzeuge Robocopy, VBScript, zeitgeplante Aufgaben, Gruppenrichtlinien für Anmelde- und Startskripts Vorteile Verwaltung von UDS-Daten, die sich mit umgeleiteten Ordnern, Offlinedateien und servergespeicherten Profilen nicht besonders gut handhaben lassen Einführung Wahrscheinlich stoßen Sie auf einige wenige Klassen von Benutzerdaten, die sich mit umgeleiteten Ordnern oder Offlinedateien nicht besonders gut handhaben lassen, weshalb der Zugriff darauf in einem Primärspeicher auf dem lokalen System erfolgen muss. Sollen diese Dateien vom UDS-Framework verwaltet werden – und unterliegen sie deshalb dessen Anforderungen an Verfügbarkeit, Mobilität und Ausfallsicherheit –, ist ein Mechanismus erforderlich, um sie auf dem serverbasierten Datenspeicher zu sichern. Dabei darf es sich aber nicht um eine Sicherungsdatei in einem Stück wie eine BKF- oder WIM-Datei handeln, sondern um eine Kopie der einzelnen Dateien auf dem Server, die bei Bedarf den einfachen Zugriff ermöglicht. In dieser Lösung geht es um die Bestandteile einer Datensicherung. Wie diese genau aussieht, hängt von den konkreten Anforderungen Ihres Unternehmens ab. Wahrscheinlich gibt es mehrere Varianten 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 271 für unterschiedliche Datenklassen – möglicherweise sichern Sie bestimmte Datenklassen alle drei Tage, andere nur alle zwei Wochen. Windows unterstützt zahlreiche Geschäftsszenarien mit servergespeicherten Profilen, Offlinedateien und umgeleiteten Ordnern. Gibt es für Ihre Situation eine proprietäre Technologie oder Funktion, sollten Sie sie nutzen. Wahrscheinlich treffen Sie aber auch auf Ausnahmesituationen, zu deren Bewältigung diese Lösung beitragen soll. Festlegen der Ziele einer Synchronisationslösung Diese Lösung ist dazu gedacht, die Anforderungen an Verfügbarkeit, Mobilität und Ausfallsicherheit von Daten zu erfüllen (d.h. dafür zu sorgen, dass die Daten auf einem Server gesichert werden), auf die der Zugriff lokal stattfinden muss und bei denen die automatische Synchronisierung durch servergespeicherte Profile (Synchronisierung bei der An- und Abmeldung) und Offlinedateien (einzurichten unter Windows XP, im Hintergrund unter Windows Vista) keine vertretbaren Ergebnisse liefert. In diese Kategorien fallen die beiden folgenden Szenarien: Dateien, die beim Zugriff über das Netzwerk keine akzeptable Leistung aufweisen Dokumente für Anwendungen, die sich nicht akzeptabel in den Offlinemodus versetzen lassen, wenn ein Server offline geht Wenn die Dateien klein sind, können sie in beiden Fällen Bestandteil eines servergespeicherten Benutzerprofils oder unter Windows Vista Unterordner eines Benutzerdatenspeichers wie Dokumente werden, für den die Synchronisierung bei der An- und Abmeldung eingerichtet ist. Die eigentliche Herausforderung besteht also im Umgang mit großen Dateien, die bei der Synchronisierung untragbar große Verzögerungen verursachen. Das wichtigste Ziel dieser Lösung lautet daher, einem Administrator oder Benutzer die flexible Handhabung des Zeitpunkts von Sicherungen oder Synchronisierungen zu ermöglichen. Idealerweise sollte unsere Lösung mehrere Zeitoptionen bieten: Sicherung nach Zeitplan Sicherung beim Start, bei der Anmeldung, beim Sperren einer Arbeitsstation oder aufgrund eines anderen Ereignisses Sicherung zu Leerlaufzeiten Manuelles Sichern Außerdem schlage ich folgende Anforderungen vor: Für alle Sicherungsoperationen werden dieselben Werkzeuge eingesetzt. Die Sicherung kann für eine angegebene Gruppe von Ordnern innerhalb des Benutzerprofils oder einen beliebigen Unterordner dieser Ordner durchgeführt werden. Die Ergebnisse werden protokolliert, sodass wir den Erfolg oder (wichtiger) Fehlschlag einer Sicherung überwachen können. Namespace und Dateien sollten auf dem Server und auf dem lokalen Client identisch sein, damit ein Zugriff auf einzelne Dateien möglich ist. Sicherungsoperationen sollten Synchronisierungstechniken nutzen, die das Sichern unveränderter Dateien vermeiden. Wenn Ihr Sicherungsmodell komplex ist, möchten Sie sicher Dienstprogramme für die Synchronisierung von Dateien und Ordnern kennen lernen. Mein persönlicher Favorit ist BeyondCompare (von 272 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen www.scootersoftware.com). SyncToy 1.4 von Microsoft, das auf der Microsoft-Website zum kostenlosen Herunterladen bereitsteht, läuft unter Windows XP und Windows Vista, ist einigermaßen gut ausgestattet und lässt sich anpassen und automatisieren. Unser Sicherungsmodell ist jedoch ganz einfach: Spiegeln Sie den lokalen Datenspeicher auf den Server. Der Server fungiert als Sicherung, um unsere Anforderungen an Ausfallsicherheit und Verfügbarkeit zu erfüllen. Wir erwarten nicht, dass wir Konflikte beheben müssen, die durch einander ausschließende Änderungen im lokalen und im Serverspeicher entstehen – nur eine einfache Sicherung. Deshalb können wir zum Erreichen unserer Ziele einfache Werkzeuge einsetzen. Mit ein klein wenig Anpassung lassen sich diese so erweitern, dass sie die Besonderheiten Ihrer Situation berücksichtigen. Verwenden von Robocopy als Sicherungsmodul Zu den Windows Server 2003 Resource Kit Tools (http://www.microsoft.com/downloads/info.aspx? na=22&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d9d467a69-57ff-4ae7-96eeb18c4790cffd%26DisplayLang%3den) gehört robocopy.exe, das sich auf Windows XP-Rechner kopieren lässt. Bei Windows Vista und Windows Server 2008 ist es Bestandteil des proprietären Befehlssatzes. Robocopy verhält sich zu XCopy wie XCopy zu Copy – es ist der nächste logische Schritt. Es handelt sich um ein umfassendes, reich mit Funktionen ausgestattetes Synchronisierungswerkzeug, das in manchen Umgebungen als Ersatz für die FRS-Replikation (File Replication Services) von DFS-Ordnern und die Synchronisierung von Offlinedateien oder ähnliche Angebote von Drittherstellern eingesetzt wird. Robocopy ist den eher standardmäßigen Kopierwerkzeugen überlegen, weil es tatsächlich synchronisiert. Sie können es anweisen, Dateien zu überspringen, die nicht geändert wurden, was bei Ordnern, in denen nur wenige Daten modifiziert wurden, zu einer erheblich schnelleren Sicherung führt. Wie bei allen Befehlen ist die beste Methode, etwas über Robocopy zu erfahren, die Befehlszeileneingabe robocopy.exe /?. Mit folgender Syntax werden zwei Ordner synchronisiert: robocopy.exe <Quelle> <Ziel> /MIR [Optionen ...] Ohne Optionen synchronisiert der Befehl das Ziel- mit dem Quellverzeichnis, sodass anschließend beide identisch sind – Dateien, die sich unterscheiden, werden durch die Quelldatei ersetzt, alle Dateien, die in der Quelle vorhanden sind, aber nicht im Ziel, werden in das Ziel kopiert, und alle Dateien im Ziel, die keine Entsprechung in der Quelle haben, werden gelöscht. Bei Verbindungsproblemen unternimmt Robocopy alle 30 Sekunden einen neuen Versuch, und zwar eine Million Male. Mit Optionen können Sie diese Verhaltensweisen und weitere ändern. Die folgenden drei finde ich besonders hilfreich: /COPYALL oder /COPY:DATSO Die Option /COPYALL lässt Robocopy die Datei mit sämtlichen Attributen kopieren, einschließlich der Berechtigungen (DACL), der Überwachung (SACL) und der Besitzdaten. Versucht ein Standardbenutzer, diese Option zu verwenden, schlägt Robocopy fehl, weil dieser nicht das Recht hat, Überwachungseinstellungen zu kopieren. Die höchste Kopieroption für Standardbenutzer lautet /COPY:DATSO. Sie kopiert alle Attribute außer der Überwachung: Daten, Attribute, Zeitstempel, Sicherheit (Zugriffssteuerungslisten) und Besitz. /R:<x> Die Option /R legt die Anzahl neuer Versuche fest. Ich bezweifle, dass Sie Robocopy wirklich eine Million Male ausführen lassen wollen, wenn der Zugriff auf einen Speicherort nicht möglich ist. /W:<t> Mit /W legen Sie die Wartezeit zwischen den einzelnen Versuchen in Sekunden fest. Wenn Robocopy ausgeführt wird, erstellt es ein umfangreiches Protokoll seiner Aktionen – ideal für die Anforderung, die Synchronisierung zu protokollieren und zu überwachen. 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 273 Verwenden von Folder_Synch.vbs als Wrapper für Robocopy Ich kenne zahlreiche Skripts, die versuchen, zwei Ordner zu synchronisieren, aber gefühlsmäßig verwende ich ein Werkzeug von Microsoft, wenn es eines gibt – insbesondere eins, das jetzt unterstützt wird! Deshalb habe ich ein Skript auf der Grundlage von Robocopy erstellt, das uns hilft, die Anforderungen unserer Synchronisationslösung zu erfüllen. Es heißt Folder_Synch.vbs und ist im Ordner Scripts des Begleitmediums zu finden. Ein einfacher Einsatz sieht folgendermaßen aus: cscript //nologo Folder_Synch.vbs /source:"Quellordner" /target:"Zielordner" Wird das Skript von der Befehlszeile aus aufgerufen, spiegelt es die Quelle auf das Ziel, sodass das Ziel anschließend mit der Quelle identisch ist. Die folgenden Zeilen des Skripts sind die wichtigsten: ' KONFIGURATIONSBLOCK sRobocopyOptions = "/COPY:DATSO /R:1 /W:30" iRobocopyTimeout = 10 ' ENDE KONFIGURATIONSBLOCK sSource = <Code zur Ermittlung des Quellordners> sTarget = <Code zur Ermittlung des Zielordners > sCommand = "robocopy.exe """ & sSource & """ """ & sTarget & """ /MIR " & sRobocopyOptions aResults = Execute_Capture(sCommand, iRobocopyTimeout * 60, True) Im Konfigurationsblock legen Sie die Optionen für den Befehl Robocopy fest. Wie im vorigen Abschnitt erwähnt, verwende ich vorzugsweise /COPY:DATSO, /R und /W, die Robocopy anweisen, alle Dateiattribute bis auf die Überwachung zu kopieren, weil Standardbenutzer dafür keine ausreichenden Privilegien haben, und um bei Fehlern eine bestimmte Anzahl erneuter Versuche für die Kopieraktion mit einer bestimmten Wartezeit durchzuführen. Außerdem können Sie angeben, wie viele Minuten Robocopy laufen soll, bevor es abgebrochen wird, wobei Sie darauf achten müssen, dass die Zeit für die größten zu synchronisierenden Ordner ausreicht. Der Quell- und der Zielordner werden ermittelt, und dann wird eine Befehlszeile für Robocopy erstellt. Der Befehl wird durch eine benutzerdefinierte Funktion gestartet, die ich geschrieben habe, Execute_Capture. Sie startet den Befehl, lässt ihn eine Weile laufen, bevor sie ihn beendet, und gibt dann das Ergebnis zurück. Vergleichen Sie die wenigen Zeilen des vorstehenden Codes mit der Größe des Skripts Folder_Synch.vbs, so stellen Sie einen gewaltigen Unterschied fest. Der übrige Code enthält Unterstützung für eine Vielzahl von Szenarien, die den Quell- und den Zielordner jeweils anders übergeben, sowie die Protokollierung und die Fehlermeldungen. Einzelheiten dazu werden weiter hinten in dieser Lösung erörtert. Mit wenigen Codezeilen haben wir also die Grundlage für einen hilfreichen Mechanismus geschaffen, mit dem wir Ordner außerhalb von servergespeicherten Profilen und umgeleiteten Ordnern synchronisieren können. In den folgenden Abschnitten sehen wir uns die Anpassung und Benutzung des Werkzeugs für verschiedene Synchronisierungsszenarien an. Bereitstellen von Folder_Synch.vbs und Robocopy Bevor Sie lokale Datenspeicher mit Folder_Synch.vbs auf Netzwerkservern sichern, müssen Sie das Skript sowie robocopy.exe bereitstellen. Da das Skript in zahlreichen Situationen ausgeführt wird, ist es empfehlenswert, es auf jedem Client in einem bekannten Pfad abzulegen – beispielsweise in Windows\ 274 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen System32 in einem Unterordner von Programme oder AppData. Ich empfehle einen Unterordner von Programme oder AppData (unter Windows XP Anwendungsdaten), weil es wahrscheinlich noch mehr individualisierte Werkzeuge gibt, die Sie für alle Clients erstellen und verwalten wollen. Programme hat den Vorteil, dass es sich um einen bekannten Pfad handelt, der sich anhand einer Umgebungsvariablen finden lässt (%PROGRAMFILES%). Das gilt auch für AppData (%APPDATA%), aber dieser Ordner kann außerdem umgeleitet oder im Benutzerprofil auf dem Server gespeichert werden. Stellen Sie sich die damit verbundenen Vorteile vor: Wenn Sie eine neue Version eines Skripts bereitstellen müssen, brauchen Sie es nur in den Benutzerordnern für Anwendungsdaten in ihren servergespeicherten Profilen abzulegen – den einzelnen Client brauchen Sie nicht mehr anzufassen! Solange das Werkzeug oder Skript nicht so groß ist, dass es bei der Synchronisierung gewaltige Verzögerungen auslöst, und solange es nicht installiert werden muss (wie bei MSI- oder setup.exe-Dateien) ist die Verteilung von Skripts an Benutzer über AppData eine wirkungsvolle und effiziente Methode. Sie müssen nicht nur das Skript verfügbar machen, sondern auf Windows XP- und Windows Server 2003-Systemen auch Robocopy bereitstellen, das Sie in den Windows Server 2003 Resource Kit Tools finden. Kopieren Sie es dort in den Systempfad (System32). Nehmen Sie aber nicht die Version von robocopy.exe, die Sie auf Computern mit Windows XP oder Windows Vista finden – sie ist nicht mit älteren Windows-Versionen kompatibel. Wie und wann soll Folder_Synch.vbs für die einzelnen lokalen Speicher ausgeführt werden? Wenn den Clients das Skript und robocopy.exe zur Verfügung stehen, können Sie überlegen, wie und wann Sie Ordner von der lokalen Festplatte mit Folder_Synch.vbs auf einer Netzwerkfreigabe sichern wollen. Wie oft Sie synchronisieren und welche Ordner Sie einbeziehen, hängt ganz von Ihren Unternehmensanforderungen ab. Es gibt keine bewährte Vorgehensweise außer der, dass eine Sicherung weniger häufig stattfinden sollte als täglich. Haben Sie vor, einen Ordner täglich zu sichern, sollten Sie lieber überlegen, ihn auf dem Server zu speichern oder, falls Sie mit Windows Vista arbeiten, einen Offlineordner einzurichten, der nur bei der An- und Abmeldung synchronisiert wird. Das Skript lässt sich manuell oder automatisch starten. In den folgenden Abschnitten schauen wir uns verschiedene Möglichkeiten an. Manuelles Starten von Folder_Synch.vbs Zuerst nehmen wir uns das manuelle Starten des Skripts vor. Sie können es in einem beliebigen Ordner ablegen und sogar leichter erkennbar umbenennen, beispielsweise Diesen_Ordner_sichern.vbs. Beachten Sie, dass ich von »synchronisieren« zu »sichern« übergegangen bin. Vom technischen Standpunkt aus verwendet das Skript zwar den Synchronisierungsalgorithmus von Robocopy, synchronisiert also. Ich stelle es den Benutzern jedoch lieber als »Sicherungswerkzeug« vor, um es von der Synchronisationsverwaltung (Windows XP) bzw. dem Synchronisationscenter (Windows Vista) abzusetzen. Insbesondere wenn die Benutzer dazu übergehen, einen Doppelklick darauf auszuführen, wie wir in diesem Abschnitt zeigen, halte ich es für hilfreich, in einer Art über das Werkzeug zu sprechen, die hervorhebt, dass Daten von der lokalen Festplatte auf dem Server gesichert werden. Wenn das Skript mit einem Doppelklick gestartet wird, synchronisiert es den Ordner, in dem es sich befindet. Es bezieht immer die gesamte Ordnerstruktur ein, weil im Robocopy-Befehl innerhalb des Skripts die Option /MIR verwendet wird. Dieses Verhalten wird durch folgende Codezeilen ausgelöst: 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 275 bInteractive = (WScript.FullName <> WScript.Path & "\cscript.exe") ' QUELLE UND ZIEL AUSWERTEN If Not bInteractive Then … Else ' Nicht interaktiv - von WScript aufgerufen If WScript.Arguments.Count = 0 Then ' Ein Doppelklick auf das Skript hat stattgefunden ' oder es wurde anderweitig ohne Argumente aufgerufen. ' Damit wird ein Szenario unterstützt, in dem der Benutzer das Skript ' "Dies sichern" startet. Wir gehen also davon aus, dass wir den Ordner ' sichern sollen, der dem Skript übergeordnet ist. sSource = FSO.GetParentFolderName(Wscript.ScriptFullName) Zuerst untersucht das Skript, mit welchem Befehl es gestartet wurde. Beginnt er nicht mit cscript.exe, setzt es die globale Variable bInteractive auf True, was das Skript als interaktiv gestartet kennzeichnet (beispielsweise durch Doppelklick). Dann wird die Variable sSource auf den dem Skript übergeordneten Ordner gesetzt. Robocopy nutzt sie zur Angabe des Quellordners, der mit einem Zielordner synchronisiert werden soll. Wo steckt aber das Ziel? Wird das Skript mit cscript aufgerufen, wie weiter hinten erläutert wird, werden die Optionen /<Quelle> und /<Ziel> angegeben, sodass buchstäblich alles möglich ist. Wird es jedoch interaktiv gestartet, z.B. mit Doppelklick, verhält es sich anders. Das Skript wurde unter der Voraussetzung erstellt, dass es nur innerhalb eines UDS-Frameworks interaktiv benutzt wird – d.h., nur Unterordner des Benutzerprofilstamms dürfen synchronisiert werden. Außerdem wird angenommen, dass für den Benutzer nur ein Ordner auf dem Netzwerkserver vorhanden ist, in dem alle synchronisierten Ordner angelegt werden. Dieser wird als Synchronisationsstamm bezeichnet und im Skript durch die Variable sUserSyncRoot dargestellt. Anders ausgedrückt: Jeder Benutzer hat einen Stammordner für die Sicherung seiner lokalen Dateien. Sein Synchronisationsstamm auf dem Server entspricht dem Stammordner seines lokalen Profils, und der Namespace unterhalb von sUserSyncRoot ist mit dem unterhalb seines lokalen Profilstamms identisch. An einem Beispiel wird das Ganze leichter verständlich. Nehmen wir an, wir haben im Stamm der umgeleiteten Ordner jedes Benutzers einen Ordner Sicherungen erstellt – beispielsweise \\contoso.com\Benutzer\%username%\Sicherungen. Ein Beispiel sehen Sie in Abbildung 3.29. Wenn Sie nun einen Ordner mit dem Pfad %userprofile%\Lokale Dateien haben und diesen synchronisieren, geschieht dies in einem Ordner Lokale Dateien unterhalb seines Synchronisationsstamms (sUserSyncRoot), also in \\<Pfad zum Synchronisationsstamm des Benutzers>\Lokale Dateien. In unserem Beispiel wäre das \\contoso.com\Benutzer\%username%\Sicherungen\Lokale Dateien (siehe Abbildung 3.29). Abbildung 3.29 Der Synchronisationsstamm eines Benutzers 276 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Nicht jeder Ordner wird mithilfe des Skripts synchronisiert, aber Ordner, bei denen es auf diese Weise geschieht, erscheinen unterhalb des Synchronisationsstamms in derselben Hierarchie wie unterhalb des Benutzerprofils. Der Zielordner wird im Skript durch die Variable sTarget dargestellt. Wenn das Skript interaktiv gestartet wird, ermittelt es das Ziel mit folgendem Code: Set WSHShell = CreateObject("WScript.Shell") sUserProfile = WSHShell.ExpandEnvironmentStrings("%userprofile%") sUser = WSHShell.ExpandEnvironmentStrings("%username%") sUserSyncRoot = "\\contoso.com\users\" & sUser & "\backups" sUserLocalRoot = sUserProfile sTarget = sUserSyncRoot & Mid(sSource, Len(sUserLocalRoot)+1) If Not FolderPath_Create(sTarget) Then ... Die beiden ersten Zeilen bezeichnen den Pfad zum lokalen Profil des Benutzers (in diesem Fall C:\Users\<Benutzername>), die dritte den Benutzernamen, der anschließend verwendet wird, um den in der Variable sUserSyncRoot abgelegten Pfad zum Synchronisationsstamm zu ermitteln. Diese Variable ist auf den Profilpfad des Benutzers gesetzt. Das Wunder geschieht in den beiden letzten Zeilen, die dafür sorgen, dass im Synchronisationsstammordner des Benutzers derselbe Namespace erscheint wie im Benutzerprofil. Der in der Variable sSource abgelegte Pfad zum Quellordner verliert den Teil, der den Pfad zum Benutzerprofil bildet, sodass lediglich der relative Pfad zum Quellordner unterhalb des Benutzerprofils übrig bleibt und dann an den Pfad des Synchronisationsstamms des Benutzers angehängt wird. Die letzte Zeile des vorstehenden Codeabschnitts ruft die Funktion FolderPath_Create auf, die prüft, ob der Zielpfad existiert, und andernfalls die Ordnerstruktur anlegt. Dies ist bei der ersten Ausführung des Skripts von Bedeutung, damit der Zielordner tatsächlich besteht, bevor Robocopy ihn benutzt. Rechtsklicken und Sichern eines Ordners mit einem Shellbefehl Außerdem lässt sich das Skript Folder_Synch.vbs als Shellbefehl benutzen. Sie können Benutzern erlauben, mit der rechten Maustaste auf einen Ordner zu klicken und einen Befehl auszuwählen, beispielsweise Sichern, um das Skript zu starten und den ausgewählten Ordner mit dem Synchronisationsstamm zu synchronisieren. Natürlich sollen die Benutzer nicht jeden Ordner synchronisieren können, sondern nur Speicher lokaler Dateien innerhalb des Benutzerprofils, weshalb das Skript eine Logik enthält, die feststellt, welche Ordner gesichert werden dürfen. Diese Methode ist zwar in ihrer Integration in die Benutzeroberfläche gekonnt, hat aber den Nachteil, dass der Shellbefehl Sichern für jeden Ordner angezeigt wird. Wird er ausgeführt, informiert er den Benutzer, wenn für den ausgewählten Ordner keine Sicherung angelegt werden darf, aber es gibt keine Möglichkeit, die Anzeige des Befehls ohne erhebliche Entwicklungsarbeit einzuschränken. Um einen Shellbefehl hinzuzufügen, müssen Sie den Schlüssel Folder von HKEY_Classes_Root ändern, was Anmeldeinformationen als Administrator voraussetzt. Suchen Sie im Registrierungseditor HKEY_Classes_Root\Folder\shell und legen Sie einen neuen Schlüssel mit dem Namen Sichern an (oder einem beliebigen anderen für den Befehl). Erstellen Sie einen neuen Stringwert, der wscript.exe mit dem vollen Pfad zum Skript gefolgt von %1 aufruft (beides in Anführungszeichen, weil die Pfade möglicherweise Leerzeichen enthalten). 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 277 Alternativ können Sie im Editor eine Zusammenführungsdatei für die Registrierung mit folgendem Text schreiben: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder\shell\Back Up\command] @="wscript.exe \"%APPDATA%\\Contoso\\Utilities\\folder_synch.vbs\" \"%1\"" Ersetzen Sie den Befehl (Sichern) im Registrierungspfad durch den von Ihnen gewünschten Befehlsnamen und ersetzen Sie den Pfad in der letzten Zeile (“%APPDATA%\Contoso\Utilities\folder_synch.vbs”) durch den Pfad, für den Sie das Skript bereitgestellt haben. Speichern Sie die Datei mit der Erweiterung REG und übernehmen Sie sie durch einen Doppelklick oder durch Ausführen von regedit.exe /s <Dateiname> in die Registrierung. Wenn Ihnen Zusammenführungsdateien für die Registrierung nicht geläufig sind, wundern Sie sich vielleicht über die Menge der umgekehrten Schrägstriche im vorstehenden Beispiel. Anführungsstriche werden technisch nur am Anfang und Ende des Stringwerts verwendet. Muss der Wert selbst Anführungsstriche enthalten, werden diese internen Zeichen durch ein Maskierungszeichen gekennzeichnet, das hier zufällig der umgekehrte Schrägstrich ist. Daher ergibt \"%1\" beim Zusammenführen mit der Registrierung "%1". Wollen Sie einen umgekehrten Schrägstrich im String haben, müssen Sie ihn selbst mit umgekehrten Schrägstrichen maskieren, was zwei umgekehrte Schrägstriche ergibt. Deshalb wird aus %APPDATA%\\contoso\\utilities in der Registrierung %APPDATA%\contoso\utilities. Der Shellbefehl erscheint in jedem Objekt der Klasse Ordner. Wird er ausgewählt, startet er das Skript und übergibt ihm den Pfad zum gewählten Ordner als Parameter %1. Nachdem Sie den Shellbefehl hinzugefügt haben, der das Skript startet, müssen Sie auch dafür sorgen, dass das Skript festlegt, welche Ordner auf diese Art gesichert werden dürfen. Mit den folgenden Codezeilen wird überprüft, ob der übergebene Ordner gültig ist: sUserLocalRoot = sUserProfile aSyncFolders = Array("Local Files","Videos") bSyncSubFolders = True sSource = WScript.Arguments(0) bAllowed = False For Each sSyncFolder In aSyncFolders ' Prüft für jeden in aSyncFolders angegebenen Ordner ' unter dem Stammverzeichnis in sUserLocalRoot, ' ob es eine Übereinstimmung mit sSource gibt sAllowedFolder = sUserLocalRoot & "\" & sSyncFolder If StrComp(Left(sSource, Len(sAllowedFolder)), sAllowedFolder, _ vbTextCompare) = 0 Then If ((bSyncSubFolders) Or _ (Len(sSource) = Len(sAllowedFolder))) Then bAllowed = True Exit For End If End If Next If Not bAllowed Then <dem Benutzer mitteilen, dass der Ordner nicht gesichert werden kann> 278 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen In der Logik der For ... Next-Schleife ist festgelegt, dass das Skript eine Sicherung nur für Unterordner des Benutzerprofils zulässt, das in der Variable sUserLocalRoot steht. Die Unterordner, die gesichert werden dürfen, sind in dem Array aSyncFolders zu finden. Sie sind aus dem servergespeicherten Profil ausgenommen und dürfen nicht umgeleitet werden, sondern werden durch diese Art der Synchronisierung innerhalb des UDS-Frameworks verwaltet. Um das Verhalten des Skripts in diesem (Shellbefehl-) Szenario anzupassen, brauchen Sie nur noch das Array aSyncFolders so zu ändern, dass es die von Ihnen gewünschten Ordner enthält. Hat die Variable bSyncSubFolders den Wert True, kann der Benutzer den Shellbefehl zum Sichern für die gesamte Ordnerstruktur einsetzen, die mit dem Ordner in aSyncFolders beginnt, sowie für jeden einzelnen Unterordner. Er hat beispielsweise die Möglichkeit, nur den Unterordner %userprofile%\Local Files\Projects\Team A zu sichern, ohne den gesamten Ordner Projects oder Local Files mitzunehmen. Setzen Sie bSyncSubFolders auf False, kann der Benutzer die Sicherung nur von den in aSyncFolders stehenden Ordnern aus starten, nicht jedoch von einem Unterordner aus. In beiden Fällen wird jedoch nach dem Beginn der Sicherung im Synchronisierungsstammverzeichnis des Benutzers derselbe Namespace angelegt und alle Unterordner des Quellordners synchronisiert. Die manuellen Optionen für Folder_Synch.vbs im Vergleich Wir haben nun zwei Optionen kennen gelernt, um Benutzern das manuelle Auslösen der Synchronisierung von Daten in ihren lokalen Dateispeichern mit denen auf dem Server zu ermöglichen. Die erste umfasst das Ablegen des Skripts in einem Ordner, der anschließend durch Starten des Skripts synchronisiert wird, während bei der zweiten in das Kontextmenü aller Ordner ein Shellbefehl aufgenommen wird, der das Skript startet und den Ordner synchronisiert, aber nur, wenn dies zulässig ist. Haben Sie ein einfaches Synchronisierungsmodell, empfehle ich Ihnen die erste Option. Sind beispielsweise alle lokalen Dateien in einem einzigen Stammverzeichnis untergebracht – z.B. %userprofile%\Lokale Dateien –, sollten Sie das Skript dort ablegen und es etwa in Diesen Ordner sichern umbenennen. Sie brauchen keinen Shellbefehl für jeden Ordner, wenn die Sicherung nur für einen Ordner zugelassen werden soll. Haben Sie jedoch vor, diesen Ansatz für mehrere Ordner in verschiedenen Bereichen des Benutzerprofils einzusetzen, sind Sie möglicherweise mit dem Shellbefehl besser bedient. Noch zwei weitere Optionen sollen hier behandelt werden. Erstens können Sie das Skript so ändern, dass es nach dem Start automatisch sämtliche Ordner sichert, für die eine Sicherung erforderlich ist, selbst wenn sie sich in unterschiedlichen Teilen des Benutzerprofils befinden, beispielsweise %userprofile%\Local Files und %userprofile%\Videos. In diesem Fall startet der Benutzer das Skript einmal, um eine vollständige Sicherung sämtlicher Dateien durchzuführen, die nicht durch servergespeicherte Profile oder umgeleitete Ordner auf dem UDS-Server gesichert werden. Ich empfehle Ihnen, eine Verknüpfung zu dem Skript an einer gut sichtbaren Stelle anzulegen, etwa auf dem Desktop oder im Startmenü. Die andere Option ist der Verzicht auf eine manuelle Startmöglichkeit und ein Zeitplan für die Ausführung des Skripts, der dafür sorgt, dass die Benutzerdaten gesichert werden. Sie können das Skript natürlich auch zeitplangesteuert ausführen und zusätzlich das manuelle Auslösen der Synchronisierung ermöglichen. In den nächsten Abschnitten sehen wir uns Methoden an, das Skript automatisch zu starten. 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 279 Automatisches Ausführen von Folder_Synch.vbs Beim Entwerfen einer Methode, Folder_Synch.vbs automatisch zu starten, müssen mehrere Probleme gelöst werden. Das wichtigste ist, dass es einige Zeit dauern kann, die lokalen Dateien mit dem Server zu synchronisieren. Robocopy kopiert nur geänderte Dateien, aber wenn diese groß sind, kann das recht lange dauern. Auch wenn der zu synchronisierende Ordner eine große Anzahl Dateien enthält, ist viel Zeit erforderlich, um festzustellen, was sich geändert hat. Hoffentlich trifft Letzteres nicht auf Ihre Situation zu, weil es nicht notwendig sein sollte, so viele Dateien außerhalb servergespeicherter Profile oder umgeleiteter Ordner zu verwalten. Sie sollten aber wissen, dass sowohl die Anzahl als auch die Größe der lokalen Dateien dazu führen können, dass die Synchronisierung lange braucht. Während der Synchronisierung dürfen die Dateien nicht gesperrt sein, damit sie erfolgreich kopiert werden können. Idealerweise sollte in dieser Zeit nicht mit den Dateien gearbeitet werden. Wird das Skript interaktiv gestartet, informiert es die Benutzer darüber. Haben Sie jedoch vor, das Skript automatisch auszuführen, insbesondere, während Benutzer angemeldet sind, müssen Sie darauf achten, ob gesperrte Dateien die Synchronisierung verhindern, und ggf. überlegen, wie Sie sicherstellen, dass die Dateien erst gesperrt werden, wenn die Synchronisierung abgeschlossen ist. Außerdem sollten Sie sicher sein, dass die Synchronisierung vollständig durchgeführt wird. Läuft sie beim Abmelden oder Herunterfahren, könnte der Benutzer den Computer vom Netzwerk trennen oder ausschalten. Abschließend müssen Sie sicherstellen, dass die Synchronisierung tatsächlich stattfindet, denn sonst werden auf dem Server keine Sicherungen für lokale Dateien angelegt, die vom UDS-Framework verwaltet werden. Wie oft und für welche Dateien dies geschehen muss, machen Sie wiederum am besten von Ihren Unternehmensanforderungen abhängig. Im Bewusstsein dieser Probleme können Sie entscheiden, wie das Skript ausgeführt werden soll. Die Syntax lautet wie folgt: cscript //nologo "Pfad\Folder_Synch.vbs" /source:"Quellordner" /target:"Zielordner" /interval:Tage Beachten Sie das zusätzliche Argument interval, das angibt, wie viele Tage seit der letzten erfolgreichen Sicherung verstrichen sein sollen. Die Synchronisation wird erst gestartet, wenn dieser Zeitraum vorbei ist. Das Intervall 0 oder das Fehlen des Arguments führt dazu, dass die Synchronisierung ohne Rücksicht auf die letzte erfolgreiche Durchführung gestartet wird. Ausführen von Folder_Synch.vbs nach einem Zeitplan Zum Ausführen des Skripts können Sie eine zeitgeplante Aufgabe einrichten. Die zahlreichen Einstellungen und praktischen Beispiele dafür gehen über den Rahmen dieser Erörterung hinaus und werden in anderen Lösungen dieser Referenz ausführlich behandelt, sodass ich die Beschreibung für diesen Zweck von einer höheren Warte fortführe. Zeitgeplante Aufgaben lassen sich unter Windows XP, Windows Server 2003, Windows Vista und Windows Server 2008 einrichten. Die beiden letztgenannten unterstützen wesentlich mehr Varianten und Optionen, sodass Sie überlegen müssen, welche Betriebssysteme im Einsatz sind, um zu ermitteln, wie Sie richtig vorgehen. Aufgaben werden durch einen Trigger gestartet, wozu ein Zeitplan, der Systemstart, die Anmeldung oder eine Leerlaufphase dienen können. Unter Windows Vista und 280 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Windows Server 2008 gibt es zahlreiche weitere Trigger, darunter die Verbindung mit einer Sitzung, das Sperren und Entsperren einer Arbeitsstation oder ein Ereignis im Ereignisprotokoll. Die folgenden Tipps sollen Ihnen helfen, die Zeitplanung auf Ihren Bedarf abzustimmen: Aufgaben lassen sich an der Befehlszeile mit dem Befehl schtasks.exe planen. Eine Aufgabe kann ein Skript starten, das eine Aktion ausführt, die Aufgabe löscht und eine weitere Aufgabe erstellt. Mit diesem Trick können Sie ein Skript schreiben, das lokale Dateien sichert und dann für sich festlegt, zu welchem Zeitpunkt es wieder ausgeführt wird. Damit ist eine flexiblere Zeitplanung möglich als über einen Kalender (täglich, wöchentlich oder monatlich). Unter Windows Vista gibt es eine Option, die das Nachholen von Aufgaben ermöglicht, die ausgefallen sind, weil der Computer keine .Netzwerkverbindung hatte In Microsoft TechNet finden Sie eine hervorragende Abhandlung über Zeitplanung für Aufgaben und die Änderungen in Windows Vista und Windows Server 2008 unter http://technet.microsoft.com/en-us/ windowsvista/aa906020.aspx. Denken Sie auch daran, dass das Ausführen einer Aufgabe nicht zu bedeuten hat, dass etwas geschehen muss. Sie können beispielsweise eine Aufgabe einrichten, die bei jeder Anmeldung eine Synchronisierung startet. Das Skript können Sie so gestalten, dass es erkennt, wann die letzte erfolgreiche Synchronisierung stattgefunden hat, und dass es die Synchronisierung nur startet, wenn das festgelegte Sicherungsintervall abgelaufen ist. Optionen für die eigenständige Handhabung der Ausführung durch das Skript finden Sie im nächsten Abschnitt. Ausführen von Folder_Synch.vbs als Anmelde-, Abmelde-, Startskript oder Skript zum Herunterfahren Die Ausführung des Skripts lässt sich auch dadurch handhaben, dass es innerhalb eines Gruppenrichtlinienobjekts als Start-, An- oder Abmeldeskript oder Skript zum Herunterfahren eingerichtet wird. In diesem Fall müssen Sie sicherstellen, dass die Synchronisierung nicht bei jeder An- und Abmeldung, bei jedem Start oder bei jedem Herunterfahren durchgeführt wird, sondern dass das Skript erkennen kann, wann die letzte Synchronisierung stattgefunden hat, und eine neue Sicherung nur auslöst, wenn das festgelegte Sicherungsintervall abgelaufen ist. sSuccessFlagFile = "_Contoso Synchronization Success.txt" sFailureFlagFile = "_Contoso Synchronization Failure.txt" ' Selbstverwaltung ' Ermitteln des festgelegten Sicherungsintervalls für das Skript (in Tagen) If WScript.Arguments.Named("interval") = "" Then iBackupInterval = 0 Else iBackupInterval = CInt(WScript.Arguments.Named("interval")) End If ' Prüfen der Flagdatei auf die letzte erfolgreiche Synchronisierung sSuccessFlag = sSource & "\" & sSuccessFlagFile sFailureFlag = sSource & "\" & sFailureFlagFile If ((iBackupInterval > 0) And (FSO.FileExists(sSuccessFlag))) Then Set oFile = FSO.GetFile(sSuccessFlag) ' Ermitteln des Datums im Erfolgsflag ' Nach meiner Erfahrung ist LastModified zuverlässiger als Created. 3.10 Sichern von lokalen Datenspeichern zur Erhöhung von Verfügbarkeit, Mobilität und Ausfallsicherheit 281 dLastSuccess = oFile.DateLastModified iInterval = Int(Now()- dLastSuccess) If iInterval < iBackupInterval Then ' Es sollte sich hier um eine zeitgeplante Sicherung handeln. ' Abbrechen, da das Intervall noch nicht abgelaufen ist sMessage = "The last successful backup occurred on" & VbCrLf & _ Cstr(dLastSuccess) & "." & VbCrLf & _ "The next backup should be made on or after" & VbCrLf & _ CStr(dLastSuccess + iBackupInterval) & "." Call Notify (sMessage, "SYNCHRONIZATION NOT NEEDED", 30, 64) If UCase(WScript.Arguments.Named("schedule"))<>"IGNORE" Then WScript.Quit(0) End If End If End If Der vorstehende Code speichert das dem Skript übergebene Argument /interval in der Variable iBackupInterval. Anschließend ermittelt es anhand des Zeitstempels der Flagdatei für Erfolg oder Misserfolg (deren Namen im Konfigurationsblock angepasst werden können), ob eine Synchronisierung erforderlich ist. Ein Sicherungsintervall von 0, das Fehlen des Arguments /interval oder das Fehlen einer Flagdatei führt dazu, dass die Synchronisierung fortgesetzt wird. Die Flagdateien werden beim Abschluss der Synchronisierung angelegt und sind standardmäßig verborgen. Im Konfigurationsblock können Sie auch festlegen, dass sie streng (mit den Attributen system und hidden) oder gar nicht verborgen sein sollen. Protokollieren und Überwachen der Synchronisation Im Verhältnis zu seiner einfachen Aufgabe, Robocopy zu starten, um eine Sicherungskopie eines lokalen Ordners auf dem Server anzulegen, ist das Skript ziemlich lang. Dies liegt an der Geschäftslogik, die die interaktive Ausführung unterstützt, bzw. an der Verwendung von cscript mit zahlreichen unterschiedlichen Parametern, und an den Protokollierungsmöglichkeiten, die es unterstützt. Folder_Synch.vbs legt im Stammverzeichnis des zu synchronisierenden Ordners ein Protokoll an, dessen Name im Konfigurationsblock festgelegt und in der Variable sSyncLogFileName abgelegt wird. Ich empfehle Namen wie _Contoso Synchronization Log.txt, damit die Datei an der Spitze der Dateiliste des Ordners erscheint und sich das Format im Editor leicht öffnen lässt. Da sie Benutzern im Weg wäre und nur für Personen gedacht ist, die die Synchronisierung überwachen oder Fehler beheben, wird sie als verborgen eingerichtet. Zwei Parameter im Konfigurationsblock bestimmen, ob sie einfach, streng oder gar nicht verborgen ist (hidden, system und hidden oder ohne Attribut). Jede Synchronisierungsoperation wird am Beginn des Protokolls eingetragen, sodass ältere weiter unten in der Datei stehen. Damit das Protokoll nicht zu umfangreich wird, können Sie eine Maximalgröße einrichten (standardmäßig 2 MB). Erreicht es die in iSyncLogMaxSize festgelegte Größe, werden die ältesten Informationen gelöscht. Wie viel gelöscht wird, steht im Aufruf der Funktion TextFile_Purge: 25%. Das ist nicht gerade die raffinierteste FIFO-Logik (First In, First Out), reicht aber, um die Handhabbarkeit der Protokolldatei zu gewährleisten. Außerdem legt das Skript eine Flagdatei für Erfolg bzw. Scheitern der Synchronisierung an, deren Name ebenfalls im Konfigurationsblock festgelegt ist. Wiederum empfehle ich einen Namen, der mit 282 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen einem Unterstrich anfängt, und die Erweiterung TXT. Wie das Protokoll sind auch diese Dateien standardmäßig verborgen und lassen sich im Konfigurationsblock als streng verborgen einrichten. Die Protokoll- und die Flagdateien werden nach der Synchronisierung auf den Server kopiert, sodass dort das aktuellste Protokoll vorliegt. Später werden sie lokal aktualisiert und mit xcopy.exe auf den Server übertragen. Falls Verbindungs- oder sonstige Probleme Dateioperationen auf dem Server verhindern, kann auf diese Weise möglichst viel Information auf dem lokalen Computer festgehalten werden. Dass die Protokoll- und Flagdateien auf dem Server liegen, macht die Überwachung der Synchronisierung möglich. Nehmen wir an, Sie synchronisieren nur den Ordner Lokale Dateien (%userprofile%\Local Files) der Benutzer, wie er in Lösung 3.9 angelegt wurde. Jeder Benutzer hat auf dem Server einen Sicherungsordner im Pfad \\contoso.com\users\%username%\backup. Ein Skript, das in den Sicherungsordner im Unterordner Lokale Dateien jedes Benutzers schaut, feststellt, ob eine Datei mit dem Namen des Flags für erfolgreiche Synchronisierung existiert, und dann deren Zeitstempel untersucht, ist recht einfach zu erstellen. Aus dem Erfolgs- bzw. Misserfolgsflag und dem zugehörigen Zeitstempel ergibt sich, ob mit dem Synchronisierungsframework eines bestimmten Benutzers etwas nicht stimmt. Sie können auch dafür sorgen, dass das Skript seinen Erfolg oder Misserfolg in einer zentralen Datenbank protokolliert, wobei es sich um eine einfache Excel-Datei auf einer zugänglichen Netzwerkfreigabe oder eine raffinierte zentrale SQL-Datenbank handeln kann. Mit Windows Vista können Sie alternativ Einträge im Ereignisprotokoll vornehmen, die sich als zentrales Ereignisprotokoll abonnieren lassen. Ich empfehle Ihnen dringend, sich die Lösungs-Website zu dieser technischen Referenz anzuschauen, weil ich damit rechne, dass die IT-Fachleute, die diese Lösung lesen, sie um Überwachungs- und Berichtsfunktionen erweitern. Zusammenfassung Diese Lösung gehört zu den umfangreichen und bietet zahlreichen Szenarien viel Gegenwert. Die servergespeicherten Profile, die umgeleiteten Ordner, die Offlinedateien und die Synchronisierung von Windows sind bemerkenswerte Technologien, die genutzt werden sollten, wo immer sie Ihren Anforderungen gerecht werden. Es gibt jedoch Situationen, in denen der Benutzer nicht direkt auf dem Server auf eine Datenklasse zugreifen kann (umgeleitete Ordner), in denen sich eine bestimmte Datenklasse nicht gut in die Offlinenutzung überführen lässt (Offlinedateien) oder in denen sie bei der Synchronisierung Probleme bereitet (servergespeicherte Profile oder Synchronisierung von Offlinedateien), und zwar meistens wegen der Dateigröße. Wichtig Diese Lösung bringt die lokalen Dateien der Benutzer auf den Server, um die Anforderungen an die Ausfallsicherheit der Geschäftsdaten (Sicherung) innerhalb des UDS-Frameworks zu erfüllen. Wir haben aber noch keine Möglichkeiten der Serverspeicherung bereitgestellt, um den Mobilitätsanforderungen gerecht zu werden. Anders ausgedrückt: Wie bekommt ein Benutzer seine lokalen Dateien auf den Client herunter, wenn er sich an einem neuen System anmeldet? Das Skript Folder_Synch.vbs lässt sich so umkehren, dass es einen Mechanismus bereitstellt, mit dem sich Daten aus der Sicherung eines Benutzers im Netzwerk in sein lokales Benutzerprofil übertragen lassen. Sie finden diese Version auf der Lösungs-Website zu dieser technischen Referenz (www.intelliem.com/resourcekit). In dieser Lösung wurde ein Skript mit Robocopy als Kern erstellt, um Ihnen die Möglichkeit zu geben, eine Sicherung für einen lokalen Datenspeicher in einem Ordner im Netzwerk anzulegen. Das Skript Folder_Synch.vbs kann manuell durch einen Doppelklick in dem zu sichernden Ordner oder mit einem Shellbefehl gestartet werden, indem Sie mit der rechten Maustaste auf einen Ordner klicken und ihn 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) 283 sichern. Weitere Möglichkeiten sind eine zeitgeplante Aufgabe und die Einbindung des Skripts in die An- oder Abmeldung bzw. den Start oder das Herunterfahren des Computers, wobei das Skript anhand eines angegebenen Sicherungsintervalls entscheiden kann, ob eine Synchronisierung erforderlich ist. Außerdem enthält das Skript ein gewisses Maß an Fehlerprüfung und Protokollierung, um die Überwachung der Sicherungstätigkeit der Benutzer zu ermöglichen. 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) Die Lösung im Überblick Typ Anleitung Funktionen und Werkzeuge Umgeleitete Ordner, Offlinedateien, servergespeicherte Benutzerprofile, Gruppenrichtlinien Zusammenfassung Analyse der Datenspeicher und Datentypen im Unternehmen, um den idealen Entwurf zur Verwaltung der Benutzerdaten und -einstellungen zu ermitteln Vorteile Überschreiten bewährter Vorgehensweisen, um festzustellen, was für die konkrete Umgebung wirklich erforderlich ist Einführung Bisher haben wir noch keine erschöpfende (und möglicherweise zur Erschöpfung führende) Betrachtung der Bestandteile eines Frameworks für Benutzerdaten und -einstellungen unternommen. Ob Sie es glauben oder nicht: Wir haben erst an der Oberfläche gekratzt. Sie haben aber hoffentlich genug über die Komponenten erfahren, um in der Lage zu sein, einen intelligenten, wirkungsvollen Entwurf für das UDS-Framework in Ihrem Unternehmen zu erstellen. Lösung 3.2 zeigt meinen Vorschlag für ein Framework auf, der meines Erachtens in vielen Unternehmen funktionieren sollte. Jetzt haben Sie alle Teile des Puzzles gesehen, und es ist an der Zeit, sie zusammenzusetzen, um das perfekte Bild für Ihre Anforderungen zu bekommen. Die Herausforderung Microsoft liefert uns zahlreiche Technologien und Funktionen zur Unterstützung von Benutzerdaten und -einstellungen: Profile, servergespeicherte Profile, umgeleitete Ordner, Offlinedateien, Synchronisierung, Robocopy, Kontingente, Dateiprüfungen, DFS, freigegebene Ordner und NTFS-Ordner. Einige davon arbeiten nicht gut zusammen. Wir haben mehr als zwei Datenklassen: einige, die umgeleitet und offline gut funktionieren, und andere, die sich ohne Weiteres umleiten lassen, aber beim Übergang in den Offlinestatus Probleme bereiten, wovon sich ein Teil nicht vernünftig synchronisieren lässt, ein anderer lokalen Zugriff erfordert und noch ein dritter auf dem Server überhaupt nicht erwünscht ist. Das ist ein weites Feld von Variablen, während wir nur wenige Datenspeicher haben, um sie zu unterstützen, insbesondere Desktop und Dokumente. 284 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Ermitteln der gewünschten Klassen von Datenspeichern Ich schlage ausgehend von den Unternehmensanforderungen und dem Verhalten von Daten folgende fünf Datenklassen vor: Daten, die die Anforderungen des UDS-Frameworks an Verfügbarkeit, Mobilität, Sicherheit und Ausfallsicherheit nicht zu erfüllen brauchen. In diese Kategorie fallen die folgenden Arten: Daten und Einstellungen im Benutzerprofil, auf die es schlicht nicht ankommt. Sie werden weiterhin im Benutzerprofil gespeichert, aber von der Serverspeicherung ausgeschlossen. Daten, auf die der Benutzer zugreifen muss, die Sie aber aus Gründen der IT-Sicherheit oder der IT-Richtlinien nicht auf dem Server haben wollen (Private Dateien oder Rein lokal). Diese Daten werden ebenfalls an Orten im Benutzerprofil verwaltet, die von der Serverspeicherung ausgeschlossen sind. Daten, die die Anforderungen des UDS-Frameworks an Verfügbarkeit, Mobilität, Sicherheit und Ausfallsicherheit erfüllen müssen. In diese Kategorie fallen die folgenden Arten: Daten, die in umgeleiteten Ordnern gespeichert und in Form von Offlinedateien ohne Netzwerkanbindung verfügbar sein können. Wenn sich Daten mit diesen beiden Funktionen verwalten lassen, sollten Sie so vorgehen (umgeleitete Ordner). Daten, die nicht in umgeleiteten Ordnern untergebracht werden können, für die aber eine regelmäßige Synchronisierung akzeptabel ist. Sie werden im Benutzerprofil untergebracht und auf dem Server gespeichert (servergespeicherte Profile). Daten, die nicht in umgeleiteten Ordnern untergebracht werden können, für die aber auch eine regelmäßige Synchronisierung (wie bei servergespeicherten oder Offlinedateien) nicht akzeptabel ist. Sie werden im Benutzerprofil gespeichert, aber nicht auf dem Server, und regelmäßig im Netzwerk gesichert (Lokale Dateien). Beachten Sie, dass es mindestens zwei Speicher gibt, für die Windows keine direkte Verwaltungsmethode bereitstellt – Lokale Dateien (mit Sicherung) und Rein lokal oder Private Dateien (ohne Sicherung). Für diese Speicher mussten wir die Verwaltungsfunktionen vollkommen selbst erstellen. Wir haben im Benutzerprofil Unterordner angelegt, sie von der Serverspeicherung ausgeschlossen und ein Skript entwickelt, um Lokale Dateien regelmäßig im Benutzerordner Sicherungen zu sichern. Außerdem haben wir gelernt, dass wir einen typischen Shellordner wie Eigene Musik¸ wenn wir ihn als rein lokal oder privat behandeln, an einen lokalen Ort umleiten können, damit er keinen Netzwerkspeicher als Ziel hat. Analysieren und Klassifizieren der Benutzerdatenspeicher und Daten Um Ihnen beim Entwerfen Ihres UDS-Frameworks zu helfen, habe ich ein notwendigerweise komplexes Entscheidungsdiagramm erstellt (Abbildung 3.30), das Sie durch eine Reihe von Fragen führt, um zu ermitteln, wie ein bestimmter Datenspeicher oder eine Datei verwaltet werden soll. Um es zu nutzen, führen Sie es in zwei Phasen aus. 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) 285 PHASE I: Lässt sich dieser Datenspeicher mit Gruppenrichtlinien oder mithilfe der Registrierung umleiten? PHASE II: Liegen die Daten in einem umgeleiteten Speicher? LEGENDE Speicherort der Daten JA Art der Synchronisierung mit dem Server PHASE I: Nicht anwendbar. Weiter mit JA. PHASE II: Können die Daten erfolgreich in einem umgeleiteten Ordner untergebracht werden? (Hängt davon ab, welche Anwendungen darauf zugreifen.) A NEIN NEIN Können die Daten in einen anderen Namespace verschoben werden? (Dies hängt von den Anwendungen ab, die darauf zugreifen.) JA JA NEIN Der Datenspeicher, in dem sich die Daten befinden, kann nicht umgeleitet werden. Er muss auf dem Server abgelegt werden. Unterliegen der Datenspeicher (Phase I) oder die Daten (Phase II) den Anforderungen des UDS-Frameworks (benutzerspezifisch, mobil, verfügbar, ausfallgeschützt, sicher usw.)? NEIN NEIN JA JA Ist die Zugriffsgeschwindigkeit auf den Server akzeptabel? Von der Serverspeicherung ausgeschlossenes Benutzerprofil Rein lokal JA NEIN Ist die Synchronisierungsdauer der Offlinedateien akzeptabel? Ist die Synchronisierung bei der An-/Abmeldung als Teil des Benutzerprofils akzeptabel? NEIN JA Laufen die Clients für diese Daten unter Vista? JA JA oder DATEN WERDEN NICHT OFFLINE BENÖTIGT Ist der Übergang in den Offlinemodus und die Arbeit mit Offlinedateien in einem umgeleiteten Ordner akzeptabel? NEIN NEIN Für die Serverspeicherung zugelassenes Benutzerprofil Lokale Dateien Zusammenführung des servergespeicherten Profils bei An-/Abmeldung Sicherung JA Offlinedateien, die nur bei An-/Abmeldung synchronisiert werden Gehe zu A NEIN JA oder DATEN WERDEN NICHT OFFLINE BENÖTIGT Umgeleiteter Ordner Offlinedateien Synchronisierung Abbildung 3.30 Entscheidungsdiagramm für ein Framework für Benutzerdaten und -einstellungen 286 Lösungsgruppe 3: Verwalten von Benutzerdaten und -einstellungen Phase I: Analysieren der Verwaltung Ihrer Benutzerdatenspeicher In der ersten Phase arbeiten Sie das Entscheidungsdiagramm für jeden Windows-Benutzerdatenspeicher durch. Sie wollen ermitteln, wo der betreffende Datenspeicher in seiner Gesamtheit untergebracht werden soll. Dabei sollten Sie folgende Speicher einbeziehen: Dokumente, Desktop, Anwendungsdaten, Favoriten, Bilder, Videos, Musik sowie die Registrierungsdatei (Ntuser.dat). Außerdem sollten Sie alle anderen Benutzerdatenspeicher analysieren, die von Ihrem UDS-Framework verwaltet werden sollen. In manchen Unternehmen gehört dazu beispielsweise der Ordner Cookies. Möglicherweise entscheiden Sie sich auch für die neuen Windows Vista-Profilordner, z.B. Gespeicherte Suchvorgänge, Downloads, Links usw. Es ist schwierig, sich den Speicher vorzustellen, ohne dabei an die Daten zu denken, die er enthält. In Phase II betrachten Sie jedoch die Daten in den einzelnen Speichern, um festzustellen, ob sie in dem betreffenden Speicher verbleiben können oder in einen anderen verlagert werden müssen oder ob es sogar erforderlich ist, den übergeordneten Speicher zu verschieben. Deshalb sollten Sie die Fragen beim Durchlaufen der Phase I unter dem Aspekt der 80/20-Regel angehen. Wenn Sie beispielsweise die Frage bearbeiten, ob die Zugriffsgeschwindigkeit auf dem Server akzeptabel sei, sollten Sie nicht an den größten, langsamsten und schlimmsten Datenblock im Speicher denken, sondern an die durchschnittlichen Dateien. In dieser Phase geht es um die Regeln – darum, wie der Speicher in seiner Gesamtheit verwaltet werden soll. Der Ermittlung und Handhabung der Ausnahmen ist Phase II gewidmet. Um Ihnen ein Beispiel und eine Anleitung für die erste Phase zu geben, stelle ich Ihnen hier meine Antworten vor: Alle wesentlichen Benutzerdatenspeicher außer Ntuser.dat lassen sich umleiten. Als Speicher landet die Datei Ntuser.dat komplett in der Kategorie Für die Serverspeicherung zugelassenes Benutzerprofil. Wir wissen, dass alle wichtigen Benutzerdatenspeicher umgeleitet werden können – auch Favoriten, Bilder, Musik und Videos. Wo sich keine Richtlinien für die Ordnerumleitung einsetzen lassen, ist eine Umleitung über die Registrierung möglich. Im Allgemeinen (80% der Fälle) gilt, dass die Daten in diesen Ordnern in umgeleiteten Ordnern untergebracht werden können und dass die Geschwindigkeit, die Synchronisierung und der Übergang in den Offlinemodus akzeptabel sind. Daher gehe ich davon aus, dass alle Shellordner von Benutzern schließlich in der Kategorie Umgeleiteter Ordner landen. Eine Ausnahme bilden Ordner, die Sie herausnehmen, weil Sie sie überhaupt nicht im Netzwerk ablegen wollen. Wollen Sie keine Musiksammlungen von Benutzern auf Ihren Servern haben, kommen diese Speicher in die Kategorie Rein Lokal. Die zweite Ausnahme sind Windows XP-Shellordner, die sich nicht mithilfe von Gruppenrichtlinien umleiten lassen. Wollen Sie sie aus irgendeinem Grund nicht mithilfe der Registrierung umleiten, gelangen sie in die Kategorie Für die Serverspeicherung zugelassenes Benutzerprofil. Der Ordner Anwendungsdaten (unter Windows Vista AppData\Roaming) ist knifflig. Möglicherweise wissen Sie nicht genug darüber, wie sich Daten in diesem Speicher in Ihrer Umgebung verhalten, sodass Sie sich nicht damit trösten können, dass auch nur 80% davon in einem umgeleiteten Ordner unterzubringen sind. Vielleicht bringen Sie die Anwendungsdaten am Ende, wie ich vorgeschlagen habe, vorläufig in der Kategorie Für die Serverspeicherung zugelassenes Benutzerprofil unter, bis Sie Zeit gefunden haben, ihr Verhalten als umgeleiteter Ordner gründlich zu testen. 3.11 Entwerfen von UDS-Komponenten: Vereinbaren der Anforderungen mit der Technologie (II) 287 Phase II: Klassifizieren der Daten In Phase II geht es um die Ausnahmen von der Regel. Hier fallen die Antworten in hohem Maß unternehmensspezifisch aus. In dieser Phase gehen Sie das Entscheidungsdiagramm für jede unterstützte Datenart noch einmal durch. Zuerst müssen Sie eine Liste der in Ihrem Unternehmen vorhandenen Datenarten aufstellen. Hier einige Vorschläge: Umfangreiche Arbeitsdateien Diese Dateien sind ziemlich groß. In dieser technischen Referenz haben wir auf das Beispiel von Benutzern verwiesen, die mit großen Videodateien arbeiten, die auf der Serverseite eines umgeleiteten Ordners möglicherweise keine akzeptable Bearbeitungs- oder Synchronisierungsgeschwindigkeit bieten. E-Mail-Archive Auch E-Mail-Archive sind ziemlich umfangreich. Sie können auch als Bestandteil der gerade erwähnten Sammlung großer Arbeitsdateien gelten, aber ich möchte etwas genauer darauf eingehen, damit Sie ein Gefühl dafür bekommen, wie Sie Datenarten in Ihrem Unternehmen identifizieren: PST-Dateien von Outlook 2003 Das Entscheidungsdiagramm lässt sich auch auf PSTDateien von Outlook 2003 und früher anwenden. Schon bald werden Sie gefragt: »Können die Daten in einem umgeleiteten Ordner untergebracht werden?« Für Outlook 2003 müssen Sie die Frage verneinen, weil es keinen Zugriff auf PST-Dateien im Netzwerk unterstützt. (Das stimmt, obwohl ich einige Leute kenne, die es tun.) Dann werden Sie gefragt: »Lassen sie sich in einen anderen Namespace verschieben?« Sicher können Sie PST-Dateien an eine beliebige Stelle verschieben, wobei Sie aus Gründen des Supports wahrscheinlich am besten einen lokalen Speicher wählen. Aber die Dateien sind groß, und die Synchronisierung mit dem Netzwerk im Verlauf der Profilsynchronisierung bei jeder Abmeldung ist wahrscheinlich nicht akzeptabel. Ich rechne damit, dass Sie PST-Dateien von Outlook 2003 in der Kategorie Lokale Dateien ablegen. PST-Dateien von Outlook 2007 Unterdessen unterstützt Microsoft mit Outlook 2007 den Zugriff auf PST-Dateien im Netzwerk. Die Daten können jetzt also in einem umgeleiteten Ordner untergebracht werden, wir wollen sie verwalten und die Geschwindigkeit ist vermutlich akzeptabel. Wie steht es aber mit der Synchronisierung? Windows XP-Clients werden allein dadurch eine Dateiänderung feststellen, dass sie sie mit Outlook anfassen (auch wenn nichts hinzugefügt, geändert oder gelöscht wurde). Die Synchronisierung von Windows XP will dann die gesamte PST-Datei in den lokalen Cache kopieren, was das System stark beeinträchtigt. Deshalb ist die regelmäßige Synchronisierung wahrscheinlich nicht akzeptabel, was auch die PST-Dateien von Outlook 2007 in die Kategorie Lokale Dateien bringt. Zusammenfassung Mithilfe des Entscheidungsdiagramms in Abbildung 3.30 sind Sie in der Lage, erstens jeden Benutzerdatenspeicher und zweitens jede Datenart zu analysieren, die Sie unterstützen. Sie werden verstehen, warum ich das Framework empfohlen habe, das wir in Lösung 3.2 aufgebaut haben. Noch wichtiger ist, dass Sie in der Lage sind, meine Vorschläge so zu ändern, dass daraus das bestmögliche Speicher- und Verwaltungsframework für Benutzerdaten und -einstellungen in Ihrem Unternehmen entsteht. Das Entscheidungsdiagramm gibt Ihnen die Möglichkeit, die Anforderungen an Mobilität, Verfügbarkeit, Ausfallsicherheit und Sicherheit mit unterschiedlichen und gelegentlich problematischen Daten und Technologien in der Praxis in Einklang zu bringen. 289 L Ö S U N G S G R U P P E 4 Dokumentverwaltung und Zusammenarbeit mit SharePoint In diesem Kapitel: Szenarien, Probleme und Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Erstellen und Einrichten einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten . . . . . . . . . . . . . . . . . 4.3 Erstellen von verwalteten Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Einrichten mehrerer Vorlagen für eine Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Hinzufügen, Speichern und Hochladen von Dokumenten in einer Dokumentbibliothek . . . . . . 4.6 Erstellen von Verknüpfungen zu Dokumentbibliotheken für Endbenutzer . . . . . . . . . . . . . . . . . 4.7 Isolieren und Verwalten von hochgeladenen Dokumenten in Bibliotheken mit mehreren Inhaltstypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.8 Arbeiten mit Dokumenten in einer Dokumentbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.9 Überwachen von Änderungen an Bibliotheken und Dokumenten mit Warnungen und RSS . . . 4.10 Steuern der Dokumentbearbeitung durch Auschecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11 Einrichten und Warten des Dokument-Versionsverlaufs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.12 Einrichten der Inhaltsgenehmigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.13 Einrichten eines Drei-Status-Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.14 Gliedern und Verwalten von Dokumenten mit Ordnern und Ansichten . . . . . . . . . . . . . . . . . . . 4.15 Konfigurieren der WSS-Indizierung von PDF-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.16 Offline arbeiten mit SharePoint-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 291 300 310 316 318 322 324 326 327 329 333 335 336 340 342 346 Während der ersten zehn oder mehr Jahre der Microsoft Windows-Technologie wurde Gruppenarbeit an Dokumenten durch freigegebene Ordner unterstützt. Weil sie noch in einigen Zusammenhängen benötigt werden, habe ich zu freigegebenen Ordnern in der Lösungsgruppe 2, »Verwalten von Dateien, Ordnern und Freigabe«, eine ausführliche Darstellung gegeben. Dass Windows SharePoint Services 3.0 (WSS) als integrierte Funktion zu Windows Server 2003 und als herunterladbare Komponente zu Windows Server 2008 hinzugefügt wurde, ergibt Möglichkeiten zu fortgeschrittener Zusammenarbeit und Dokumentenverwaltung, von denen bei freigegebenen Ordnern nur zu träumen war. WSS bietet für Unternehmen wertvolle Funktionalität, u.a. Unterstützung für Dokumentbibliotheken (das Thema dieser Lösung), Listen (sowohl voreingestellte als auch angepasste), Wikis, Blogs, Diskussionsforen, Kalender, Aufgaben, Themenverfolgung, Statistiken und vieles mehr. Der Zugriff auf dies alles erfolgt durch Webanwendungen, die WSS zur Verfügung stellt, mit einer Instanz von Microsoft 290 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint SQL Server als Back-End und Authentifizierung durch Active Directory oder einen anderen NET 2.0Authentifizierungsanbieter. Microsoft hat außerdem Microsoft Office SharePoint Server 2007 freigegeben, der mit eigener, gebührenpflichtiger Lizenz erhältlich ist. Er basiert auf WSS als Grundlage und bietet Webinhaltsverwaltung, professionelle Suchfunktionen, Business Intelligence, Webportale und Unterstützung für Geschäftsvorgänge und Formulare. Aber lassen Sie sich durch den wirklich unglaublichen Office SharePoint Server nicht so sehr ablenken, dass Sie den unerhörten Wert von WSS dabei aus den Augen verlieren! Hinweis Wenn ich von Funktionen oder Eigenschaften spreche, die Windows SharePoint Services 3.0 und Office SharePoint Server 2007 gemeinsam haben, verwende ich den Ausdruck SharePoint statt WSS. In dieser Lösungsgruppe richten wir eine voll funktionsfähige sichere Dokumentbibliothek ein, demonstrieren Wesentliches zur Dokumentenverwaltung und Zusammenarbeit und lernen das Zusammenspiel von SharePoint mit Anwendungen kennen, vor allem denen aus Microsoft Office 2007 und 2003. Da Sie wahrscheinlich mit SharePoint weniger vertraut sind als mit anderen Anwendungen, werde ich gewissermaßen bei Null anfangen, damit Sie, Ihre IT-Organisation und Ihre Endbenutzer auch sicher vom Start zum Ziel kommen. Dabei werde ich auf einige häufig auftretende Schwierigkeiten hinweisen, denen Organisationen beim Einrichten von WSS-Dokumentbibliotheken gegenüberstehen, und Lösungen aufzeigen. Sollten Sie mit der SharePoint-Technologie schon vertraut sein, empfehle ich Ihnen, trotzdem einen Blick auf jede Lösung zu werfen und dabei auf Überschriften und Tipps zu achten, die Ihnen helfen werden, die Effektivität Ihrer vorhandenen Implementierung zu erhöhen. Szenarien, Probleme und Lösungen Bei Szenarien, welche die Einrichtung von SharePoint-Produkten und -Technologien wie z.B. WSSDokumentbibliotheken notwendig machen, dreht es sich um Fragen der Zusammenarbeit und Dokumentverwaltung: Zur Vorbereitung eines Fusionsvertrags benötigt die Rechtsabteilung von Adventure Works eine Analyse bestehender Vereinbarungen aller Art, z.B. der Verträge mit Lieferanten und Abnehmern. Leider ist es mühsam, Verträge aufzufinden, die über eine Vielzahl freigegebener Verzeichnisse verteilt sind. Einmal gefunden, müssen sie einzeln geöffnet und gelesen werden, um kritische Informationen wie Ablaufdatum und beteiligte Partner des Vertrags zu ermitteln. Die Rechtsabteilung verlangt von der IT-Organisation, ein Verfahren zu unterstützen, das Schlüsselinformationen zu einem Vertrag besser sichtbar und zugänglich macht, damit Berichte und Analysen in Zukunft leichter zu gewinnen sind. Angestellte, Manager und Buchhaltungspersonal bei Northwind Traders haben ein manuelles Verfahren zum Weiterleiten von Kostenberichten für die Genehmigung und Rückerstattung unterstützt. Der manuelle Prozess ist langwierig und problemanfällig, wenn ein Beteiligter beschäftigt oder in Urlaub ist. Um die Leistungsfähigkeit zu verbessern, beschließt die Gesellschaft, für diesen häufigen und wichtigen Prozess einen automatisierten Arbeitsablauf einzurichten. Die Abteilung für Geschäftsentwicklung der A. Datum Corporation will die Konsistenz von Angeboten für potenzielle Kunden durch eine einheitliche Vorlage für Marketing, Angebote, Verträge und Terminüberwachung sicherstellen. 4.1 Erstellen und Einrichten einer Dokumentbibliothek 291 Wenn bei Trey Research Produktionspläne entwickelt werden, erfordert die Vielschichtigkeit der Dokumentation, dass jeweils nur ein Bearbeiter Änderungen vornimmt. Ansonsten wird die Einpassung mehrfacher Änderungen fast unmöglich. Die IT-Organisation muss eine Möglichkeit finden, sicherzustellen, dass zu jedem Zeitpunkt jeweils nur ein Benutzer ein solches Dokument bearbeitet. Die Nachrichtenabteilung der Proseware Inc., möchte sicherstellen, dass herausgegebenes Werbebegleitmaterial exakt und für die Werbebotschaft und Markenbildung der Gesellschaft repräsentativ ist. Die Firma hat ein kleines Komitee eingesetzt, das für die Genehmigung jeglicher Änderung am Begleitmaterial verantwortlich ist, und die IT-Abteilung gebeten abzusichern, dass Benutzer in der Organisation nur genehmigte Versionen sehen und verwenden. Tailspin Toys hat geschäftsschädigendes Verhalten seitens eines Angestellten entdeckt, der nach Ansicht der Verwaltung fragwürdige Daten in wichtige Microsoft Excel-Dokumente eingefügt hat. Die IT-Abteilung wurde gebeten, eine komplette Überwachungsspur der Änderungen an diesem Dokument bereitzustellen, kann aber nur Versionen liefern, die bei einem wöchentlichen Sicherungsdurchlauf gesichert und gespeichert wurden. Produktmanager bei Contoso Ltd. stehen vor dem Start der nächsten großen Aktion. Der Stichtag rückt näher, und weil Dokumente, Arbeitsblätter und mit dem Projekt verknüpfte Präsentationen kurz vor der Fertigstellung stehen, wollen sie von jeder Änderung an den Dokumenten unverzüglich informiert werden. Überall wünschen sich Benutzer und IT-Profis einen Weg, um Informationen in und über Dokumentenspeicher und Dokumente hinweg leichter finden zu können. Das sind einige der Szenarien, auf die sich SharePoint-Dokumentbibliotheken anwenden lassen. Sie werden feststellen, dass Bibliotheken leicht zu erstellen, einzurichten und zu verwalten sind – so leicht, dass Sie über die umfangreiche Funktionalität, die sie zur Verfügung stellen, erstaunt sein werden. 4.1 Erstellen und Einrichten einer Dokumentbibliothek Die Lösung im Überblick Typ Verfahren Funktionen und Werkzeuge SharePoint-Sites, Dokumentbibliotheken, Berechtigungen und Gruppen Zusammenfassung Aufbau einer SharePoint-Website und einer Dokumentbibliothek und Konfiguration der Einstellungen, Berechtigungen und Vorlagen Vorteile Richtet eine sichere, gut konfigurierte, URL-geeignete Website und eine Dokumentbibliothek ein. Einführung Bevor wir in die fortgeschrittenere Konfiguration einer Dokumentbibliothek einsteigen können, müssen wir eine Bibliothek aufbauen und zum Laufen bringen. In dieser Lösung erfassen wir die Prozeduren zum Erstellen einer Website und einer Dokumentbibliothek. Dann betrachten wir einige der Bibliothekseinstellungen, die Sie vor dem Veröffentlichen einer Bibliothek konfigurieren sollten. Die wichtigste davon ist natürlich die der Bibliotheksberechtigungen. 292 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Die hier vorgestellten Verfahren sind ziemlich grundlegend. Wenn Sie ein erfahrener SharePoint-Administrator sind, überfliegen Sie am besten rasch die Lösung und achten auf die Tipps. Wenn SharePoint für Sie neu ist, sollten Sie diese Prozeduren in einer Testumgebung ausprobieren, um mit ihnen vertraut zu werden. Hinweis Sie können WSS von der Microsoft-Webseite http://technet.microsoft.com/windowsserver/sharepoint herunterladen. Dort finden Sie ausführliche Informationen zur WSS-Installation. Erstellen einer Website Um eine Website für die Dokumentbibliothek anzulegen, müssen Sie sich mit Anmeldeinformationen anmelden, die die Berechtigung zum Erstellen von Unterwebsites enthalten. Diese Berechtigung ist der Gruppe der Besitzer der Website zugeordnet und ist Teil der Berechtigungsebene zum Vollzugriff. Um das zu erreichen, machen Sie Folgendes: 1. In Internet Explorer verbinden Sie sich mit der Standardwebsite für SharePoint Services, indem Sie http://<servername> in das Adresstextfeld eingeben. Dann wählen Sie den Erstellen-Befehl. Das geht auf mehrere Arten: Klicken Sie auf die Schaltfläche Websiteaktion auf der rechten Seite der Teamwebsite und wählen Sie dann Erstellen. Klicken Sie auf den Link Alle Websiteinhalte einblenden in der Schnellstartleiste auf der Teamwebsite und dann auf Erstellen in der Symbolleiste. 2. Unterhalb von Webseiten klicken Sie auf den Link für Websites und Arbeitsbereiche. 3. Geben Sie einen Titel für die Website ein. 4. Wahlweise geben Sie eine Beschreibung ein. 5. Geben Sie den URL für die Website ein. Hinweis Vermeiden Sie in URLs wo immer möglich die Verwendung von Leerzeichen. 6. Wählen Sie die Vorlage Teamwebsite oder eine benutzerdefinierte Vorlage, die Sie für Ihr Unternehmen hergestellt haben. 7. Wählen Sie Berechtigungen wie in übergeordneter Website oder Eigene Berechtigungen verwenden. Das Sicherheitsmodell von WSS wird später in dieser Lösung besprochen. 8. Sorgen Sie dafür, dass die Auswahl unter Navigation und Navigationsvererbung auf dem Entwurf der Schnittstelle für Ihre Webseitenbenutzer beruhen. 9. Klicken Sie auf Erstellen. Erstellen einer Dokumentbibliothek Um eine Dokumentbibliothek anzulegen, müssen Sie sich mit Anmeldeinformationen bei der Website anmelden, der die Berechtigung zur Listenverwaltung enthalten. Diese Berechtigung ist der Gruppe der Besitzer der Website zugeordnet und ist Teil der Entwurfsberechtigung. Gehen Sie wie folgt vor: 1. Wählen Sie den Erstellen-Befehl. Das geht auf mehrere Arten: Klicken Sie auf die Schaltfläche Websiteaktion und wählen Sie dann Erstellen. 4.1 Erstellen und Einrichten einer Dokumentbibliothek 293 Klicken Sie auf den Link Alle Websiteinhalte einblenden in der Schnellstartleiste und dann auf die Erstellen in der Symbolleiste. 2. Klicken Sie unter Bibliotheken auf Dokumentbibliothek (oder auf Bildbibliothek, falls Sie eine Bibliothek für Fotos und Grafiken anlegen). 3. Die Seite Neu für die Dokumentbibliothek erscheint. Geben Sie einen Namen für die Bibliothek in das Namensfeld ein. Wie wir in dieser Lösungsgruppe sehen werden, lassen sich die meisten Einstellungen auf der Seite leicht ändern, nachdem die Bibliothek angelegt worden ist. Allerdings ist das Namensfeld ein bisschen störrisch und muss beim ersten Mal auf der neuen Seite für die Dokumentbibliothek korrekt ausgefüllt werden. Es dient zum Festlegen von Titel und URL der Seite. Der Titel lässt sich nach Anlegen der Bibliothek leicht ändern, jedoch ist eine Änderung des URLs nicht ganz so einfach. Der erstellte URL lautet http://sharepoint.server.fqdn/site/name, wobei name für den Eintrag im Namensfeld auf der neuen Seite der Dokumentbibliothek steht. Hinweis Ich empfehle, einen URL-geeigneten Namen nach folgenden Richtlinien zu wählen: Wählen Sie einen kurzen Namen. Schreiben Sie den Namen entweder in Groß- oder Kleinbuchstaben. Vermeiden Sie Leerzeichen, denn diese müssen manchmal durch das Maskierungssymbol %20 dargestellt werden. Beispielsweise sehen Sie folgenden URL, wenn Sie zu der Dokumentbibliothek gehen, die auf der Standard-Teamwebsite erstellt wurde: http://sharepoint.server.fqdn/Shared%20 Documents. Nach Erstellen der Bibliothek können Sie in deren Einstellungen ihren Titel in einen benutzerfreundlicheren umändern, auch mit Großschreibung und Leerzeichen. Diesen Vorgang beschreibe ich später in dieser Lösung. 4. Wahlweise können Sie eine Beschreibung im Textfeld Beschreibung eingeben. Diese erscheint unterhalb der Kopfzeile der Dokumentbibliothek auf der Seite der Bibliothek. 5. Legen Sie im Abschnitt Navigation fest, ob die Bibliothek als Link in der Schnellstartleiste der Website erscheinen soll. 6. Wollen Sie die Bibliothek E-Mail-aktivieren, so klicken Sie im Abschnitt Eingehende E-Mail auf Ja und vergeben einen eindeutigen Postfachnamen für die Bibliothek. Wenn Sie eingehende E-Mails in der SharePoint-Zentralverwaltung nicht aktiviert haben, ist diese Option nicht sichtbar. Ich bespreche E-Mail-aktivierte Bibliotheken in Lösung 4.5 auf Seite 318. 7. Den Versionsverlauf können Sie durch Aktivierung von Ja im Abschnitt Dokumentversionsverlauf einschalten. Ich werde die Versionsliste in Lösung 4.11 auf Seite 333 besprechen. 8. Wählen Sie eine Dokumentvorlage aus der entsprechenden Dropdownliste. 9. Wenn eine Dokumentbibliothek hauptsächlich oder ausschließlich eine Art von Dokumenten enthält, wie z.B. allgemeine Microsoft Office Word-, Excel- oder PowerPoint-Dokumente, und wenn diese Art in der Auswahlliste vorkommt, dann wählen Sie sie. Meistens sollten Sie aber, vor allem in den folgenden Situationen, Keine als Vorlage wählen: Die Vorlage für die Dokumentart, die Sie beim Klicken auf die Schaltfläche Neu in der Dokumentbibliothek anlegen wollen, ist nicht aufgeführt. Die Bibliothek enthält Dokumente, die nach einer benutzerdefinierten Dokumentvorlage erstellt wurden (z.B. Verträge, Kostenberichte). 294 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Die Bibliothek wird zur Herstellung mehrerer Dokumentarten verwendet. Eine Dokumentbibliothek wird ausschließlich durch Hochladen von Dokumenten gefüllt, nicht aber durch Klicken auf die Schaltfläche Neu. Ich werde benutzerdefinierte Vorlagen in dieser Lösung und mehrere Vorlagen in Lösung 4.4 auf Seite 316 untersuchen. 10. Klicken Sie auf Erstellen. Einstellungen für die Dokumentbibliothek Nach dem Anlegen einer Dokumentbibliothek sollten Sie ihre Einstellungen einrichten. Die Bibliothek öffnet sich unmittelbar nach dem Aufbau, Sie können sie aber auch über die Schnellstartleiste erreichen: Entweder klicken Sie auf den Link der Dokumentbibliothek, wenn Sie ihn aktiviert haben, oder auf Gesamten Websiteinhalt einblenden und dann auf den Link zur Bibliothek. Nach dem Öffnen der Bibliothek klicken Sie in deren Symbolleiste auf Einstellungen und wählen Einstellungen für Dokumentbibliothek, wie in Abbildung 4.1 gezeigt. Abbildung 4.1 Der Befehl Einstellungen für Dokumentbibliothek Um Einstellungen von Bibliotheken oder Listen zu setzen, benötigen Sie die Listenverwaltungsberechtigung. Diese wird der Besitzergruppe zugewiesen und ist Bestandteil der Designberechtigungsebene. Ohne diese Berechtigung wird die Schaltfläche Einstellungen nicht angezeigt. Die Anpassungsseite für die Dokumentbibliothek wird wie in Abbildung 4.2 angezeigt. Ich habe darin die Einzelheiten zu jedem Abschnittstitel im Interesse besserer Lesbarkeit weggelassen. Den Inhaltstypen-Abschnitt werden Sie dabei nicht sehen, es sei denn, Sie hätten die Option wie in Lösung 4.3 auf Seite 310 beschrieben aktiviert. Bevor Sie die Bibliothek für verfügbar erklären, sollten Sie die meisten Einstellungen einrichten. Nachstehende Anleitung weist Sie auf die entsprechenden Lösungen zu den einzelnen Einstellungen hin: Titel, Beschreibung und Navigation: weiter hinten in dieser Lösung Versionierungseinstellungen: Inhaltsgenehmigung: Lösung 4.12 auf Seite 335 Versionsverlauf: Lösung 4.11 auf Seite 333 Auschecken erfordern: Lösung 4.10 auf Seite 329 Erweiterte Einstellungen: Inhaltstypen: Lösung 4.3 auf Seite 310 4.1 Erstellen und Einrichten einer Dokumentbibliothek 295 Dokumentvorlage: weiter hinten in dieser Lösung Ordner: Lösung 4.14 auf Seite 340 Suchen: Lösung 4.15 auf Seite 342 Dokumentbibliothek löschen: selbsterklärend Berechtigungen für Dokumentbibliothek: weiter hinten in dieser Lösung Ausgecheckte Dateien verwalten: Lösung 4.10 Seite 329 Workfloweinstellungen: Lösung 4.13 auf Seite 336 Einstellungen für eingehende E-Mail: Lösung 4.5 auf Seite 318 RSS-Einstellungen: Lösung 4.9 auf Seite 327 Inhaltstypen: Lösung 4.3 auf Seite 310 Spalten: Lösung 4.2 auf Seite 300 Ansichten: Lösung 4.14 auf Seite 340 Abbildung 4.2 Die Anpassungsseite für eine Dokumentbibliothek Festlegen des Titels der Dokumentbibliothek Der Titel der Dokumentbibliothek erscheint in der Kopfzeile der Bibliotheksseite, wie in Abbildung 4.3 gezeigt wird. Wie schon früher erwähnt, ist er ursprünglich von dem Namen abgeleitet, den Sie bei Einrichtung der Bibliothek im Namensfeld eingegeben haben. Der Name dient sowohl für den Bibliothekstitel als auch für den URL. Daher empfehle ich, die Bibliothek mit einem URL-geeigneten Namen zu erstellen und diesen erst danach zu ändern. 296 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Titel Abbildung 4.3 Titel der Dokumentbibliothek Um den Bibliothekstitel zu ändern, nehmen Sie Folgendes vor: 1. Klicken Sie in der Symbolleiste der Bibliothek auf Einstellungen und wählen Sie Einstellungen für Dokumentbibliothek. 2. Die Anpassungsseite wird angezeigt. Im Abschnitt Allgemeine Einstellungen klicken Sie auf Titel, Beschreibung und Navigation. 3. Geben Sie den Bibliothekstitel in das Namensfeld ein. 4. Klicken Sie auf Speichern. Hinweis Wenn Sie die Bibliothek in der Schnellstartleiste anzeigen und als einzige Änderung im Namensfeld die Groß-/Kleinschreibung ändern – beispielsweise von »dokumente« in »Dokumente« – wird die Änderung in der Leiste nicht sichtbar. Um diesem Missstand abzuhelfen, müssen Sie die Bibliothek aus der Leiste entfernen und gleich wieder einfügen. Das machen Sie am leichtesten folgendermaßen: 1. 2. 3. 4. 5. 6. Auf der Anpassungsseite für die Bibliothek klicken Sie auf den Link Titel, Beschreibung und Navigation. Aktivieren Sie im Abschnitt Navigation die Option Nein. Klicken Sie auf Speichern. Klicken Sie nochmals auf Titel, Beschreibung und Navigation. Aktivieren Sie im Abschnitt Navigation die Option Ja. Klicken Sie auf Speichern. Die Dokumentbibliothek sollte nun mit der korrekten Schreibweise in der Schnellstartleiste erscheinen. Aktivieren und Deaktivieren von Ordnern innerhalb der Dokumentbibliothek Eine andere Einstellung, die Sie unverzüglich vornehmen sollten, ist die Möglichkeit für Benutzer, innerhalb der Bibliothek Ordner anzulegen. Wir besprechen weitere Einzelheiten über Ordner in Lösung 4.14. Voreingestellt ist das Anlegen von Ordnern aktiviert. Wenn Sie diese Funktion deaktivieren wollen, können Sie das wie nachstehend erledigen: 1. Klicken Sie auf die Einstellungen der Bibliothekssymbolleiste und wählen Sie Einstellungen für Dokumentbibliothek. 2. Die Anpassungsseite wird angezeigt. Im Abschnitt Allgemeine Einstellungen klicken Sie auf den Link Erweiterte Einstellungen. 3. Im Ordner-Abschnitt aktivieren Sie die Option Nein für Soll der Befehl "Neuer Ordner" im Menü "Neu" angezeigt werden? 4. Klicken Sie auf OK. Hinweis Wenn Sie die Ordner deaktivieren, während weder eine Dokumentvorlage noch ein Inhaltstyp mit der Dokumentbibliothek verknüpft ist, verschwindet die Schaltfläche Neu von der Bibliothekssymbolleiste. Benutzer mit entsprechender Berechtigung können jedoch mithilfe der Schaltfläche Hochladen Dokumente hochladen. 4.1 Erstellen und Einrichten einer Dokumentbibliothek 297 Ändern der Standardvorlage für die Bibliothek Wenn Sie nach Anlegen der Dokumentbibliothek die korrekte Vorlage für alle Bibliotheksdokumente eingerichtet haben, können Sie diesen Abschnitt auslassen. Da aber die meisten Dokumentbibliotheken wohl keine allgemeine Word-, Excel- oder PowerPoint-Vorlage verwenden, wollen Sie wahrscheinlich eine benutzerdefinierte Vorlage für die Bibliothek einrichten. Mit den Schritten dieses Abschnitts erstellen Sie eine Vorlage für Dokumente, die von Benutzern durch einen Klick auf die Schaltfläche Neu der Bibliothek angelegt werden. Wenn Sie mehr als eine Vorlage verfügbar haben wollen, müssen Sie auf die Lösungen 4.3 und 4.4 mit der Besprechung von Inhaltstypen und mehreren Vorlagen warten. Um eine maßgeschneiderte Vorlage für eine Dokumentbibliothek anzulegen, sind zwei Hauptschritte erforderlich. Zuerst müssen Sie die Vorlage in den Formularordner der Bibliothek aufnehmen. Dann muss die Bibliothek zur Verwendung der Vorlage eingerichtet werden. Der erste Schritt kann der schwierigste sein. Sie müssen in den Formularordner gehen, damit Sie Ihre Vorlage hineinkopieren können. Ich empfehle die Verwendung des UNC-Pfads (Universal Naming Convention) für des Bibliotheksformularordners: Hinweis Wählen Sie Start und dann Ausführen. Danach geben Sie den UNC-Pfad der Bibliothek in folgender Form ein: \\<sharepointserver>\<site>\<bibliothek>\forms – z.B. \\sharepoint.contoso.com\department\documents\forms. Dann kopieren Sie die Vorlage hinein, sobald sich dieser Ordner öffnet. Ersatzweise können Sie Folgendes tun: 1. Öffnen Sie die Dokumentbibliothek in Internet Explorer und achten Sie darauf, als Benutzer mit Vollzugriff bei der Bibliothek angemeldet zu sein. 2. Klicken Sie auf die Schaltfläche Öffnen und wählen Sie Mit Windows Explorer öffnen. Dieser Schritt ist derjenige, welcher höchstwahrscheinlich Probleme macht. Wenn sich die Bibliothek mit Windows Explorer nicht öffnen lässt, verwenden Sie einen Windows Vista- oder einen Windows XP-Client – so war ich bis heute unmittelbar auf einem Windows Server 2008-System nicht in der Lage, die Bibliothek in Windows Explorer erfolgreich zu öffnen. Wenn Sie zur Anmeldung aufgefordert werden, müssen Sie Anmeldeinformationen für die Website eingeben. Achten Sie auch darauf, dass der SharePoint-Server zur Zone Vertrauenswürdige Sites oder Lokales Intranet gehört und dass Internet Explorer 7 nicht im geschützten Modus läuft. Die Browserstatusleiste informiert Sie über die Sicherheitsbehandlung der Website. Doppelklicken Sie auf die in Abbildung 4.4 gezeigten Indikatoren als Abkürzung zur Sicherheitsseite des Dialogfelds Internetoptionen. Dort können Sie die Einstellungen ändern. Abbildung 4.4 Internet Explorer-Sicherheitseinstellungen für eine SharePoint-Webseite 3. Gehen Sie zum Formularordner innerhalb der Bibliothek. Er ist versteckt, daher müssen Sie möglicherweise die Option zur Anzeige versteckter Dateien und Ordner in den Ordneroptionen Ihres Systems aktivieren. (Dazu klicken Sie auf Organisieren und wählen dann Ordner- und Suchoptionen. Klicken Sie auf die Registerkarte Ansicht, wählen Sie Dateien und Ordner anzeigen und klicken Sie dann auf OK.) Nach Öffnen des Formularordners kopieren Sie Ihre Vorlage hinein. Dann richten Sie die Einstellungen der Bibliothek wie nachfolgend gezeigt ein, damit sie die Vorlage verwendet. 298 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint 1. Auf der Anpassungsseite der Dokumentbibliothek klicken Sie auf den Link Erweiterte Einstellungen im Bereich Allgemeine Einstellungen. 2. Im Textfeld URL-Vorlage geben Sie den Vorlagen-URL in der Form Bibliothek/Formulare/Vorlagenname.erw ein, (wobei Bibliothek den Namen Ihrer Bibliothek und Vorlagenname.erw den Namen der Vorlage bedeutet). Beachten Sie, dass dort kein Protokoll- (»http://«) oder Stammpräfix (»/«) vorhanden ist. Geben Sie den URL einfach relativ zur Website selbst ein. 3. Klicken Sie auf OK. Die neue Vorlage im Formularordner wird nun verwendet, wenn ein Benutzer den Befehl Neues Dokument in der Dokumentbibliothek auswählt. Der logisch nächste Schritt ist nun, Vorlagen über mehrere Bibliotheken hinweg zusammenzufassen, sodass Sie keine mehrfachen Kopien derselben Vorlage in jeder Dokumentbibliothek vorhalten oder Benutzern mehr als eine Vorlagenoption zur Verfügung stellen müssen. Auf beide dieser großen Ziele wird in Lösung 4.3 eingegangen, wenn wir Inhaltstypen behandeln. Einrichten der Sicherheit für die Dokumentbibliothek Das SharePoint-Modell sicherungsfähiger Objekte ist unkompliziert und wird in Abbildung 4.5 dargestellt. Eine Website kann Bibliotheken, Listen und andere Websites enthalten. In Bibliotheken und Listen können Dokumente bzw. Einträge sowie Ordner auftreten, und in Ordnern können auch Bibliotheksdokumente oder Listenobjekte sowie noch weitere Ordner vorhanden sein. Abbildung 4.5 Das Modell sicherungsfähiger Objekte in SharePoint Voreinstellung ist, dass jedes Objekt seine Berechtigungen von seinem Elternobjekt erbt. Sie können aber für jedes Objekt Berechtigungen so festlegen, dass von da an Änderungen an den Berechtigungen des Elternobjekts nicht mehr vererbt werden. Um Berechtigungen für ein Objekt zu ändern, muss ein Benutzer die Berechtigung zur Berechtigungsverwaltung haben, die Bestandteil des Vollzugriffs ist. Im Vergleich zu freigegebenen Ordnern, die in Lösungsgruppe 2 besprochen werden, gibt es kleinere Unterschiede in der Anwendung von Sicherheitskonzepten bei SharePoint. Bei SharePoint gilt für Vererbung das Alles-oder-nichts-Prinzip – es gibt keine Mischung von vererbten und expliziten Berechtigungen für ein Objekt. SharePoint gestattet auch keinem Benutzer, die Berechtigungen eines Objekts zu ändern, das ihm gehört, weil er es erstellt hat. Im Grunde sollten Sie ebenso an die Sicherheitsverwaltung in SharePoint herangehen wie bei freigegebenen Ordnern: Wo immer möglich, ordnen Sie Berechtigungen zu Gruppen zu, erteilen Berechtigungen für Container – nicht für einzelne Dokumente oder Objekte –, und verwenden die rollenbasierte Zugriffssteuerung wie in der Lösungsgruppe 1, »rollenbasierte Verwaltung«, beschrieben. 4.1 Erstellen und Einrichten einer Dokumentbibliothek 299 Verwalten der Berechtigungen für Dokumentbibliotheken, Ordner und Dokumente Um Berechtigungen für eine Dokumentbibliothek zu verwalten, klicken Sie auf der Anpassungsseite für die Bibliothek auf den Link Berechtigungen für Dokumentbibliothek. für diese Dokumentbibliothek. Entsprechend der Voreinstellung erbt eine neue Dokumentblbliothek ihre Berechtigungen von ihrer Website. Um der Bibliothek eindeutige Berechtigungen zuzuordnen, müssen Sie die Vererbung aufheben. Klicken Sie auf die Schaltfläche Aktionen direkt über der Liste der Benutzer und Gruppen mit Berechtigungen für diese Website und wählen Sie Berechtigungen bearbeiten. Sie werden zur Bestätigung aufgefordert, dass Sie die Vererbung aufheben wollen. Die Berechtigungen, die geerbt worden sind, werden als Standard für die Bibliothek angewandt. Klicken Sie auf OK, um diesen Vorgang zu bestätigen. Die Schaltfläche Neu gestattet Ihnen, Benutzer oder Gruppen hinzuzufügen und ihre Berechtigungen festzulegen. Um derartige Berechtigungen zu verändern, verwenden Sie Schaltfläche Aktionen. Hinweis Obwohl die Benutzerschnittstelle vorgibt, Sie würden Benutzer hinzufügen, entfernen oder bearbeiten, können Sie dasselbe ebenso gut für die Berechtigungen von Gruppen tun. Tatsächlich ist das Verwalten von Berechtigungen mit Gruppen die beste Vorgehensweise. Leider ist die Schnittstelle zugleich unklar und irreführend. Zur Verwaltung von Berechtigungen für Ordner oder Dokumente in der Bibliothek klicken Sie auf den Auswahlpfeil, der angezeigt wird, wenn Sie mit dem Mauszeiger über einen Ordner- oder Dokumentnamen fahren. Aus dem erscheinenden Menü wählen Sie Berechtigungen verwalten. Hinweis Dieses Menü heißt Bearbeitungsmenü. Wenn Sie sich mit dem Bearbeitungsmenü von SharePoint nicht auskennen, sehen Sie in »Verwenden des Bearbeitungsmenüs von SharePoint« auf Seite 306 nach. Es gelten dieselben Regeln: Sie müssen zuerst auf die Aktionsschaltfläche klicken, Berechtigungen bearbeiten auswählen und dann bestätigen, dass Sie die Vererbung aufheben wollen. Dann können Sie Berechtigungen hinzufügen, entfernen und ändern. Zuweisen von Berechtigungen zu SharePoint- und Active Directory-Gruppen Eine häufige Frage lautet, ob man Berechtigungen direkt einer Active Directory-Gruppe zuweisen oder erst eine SharePoint-Gruppe erstellen und dieser dann Berechtigungen zuweisen soll. Die Antwort hängt davon ab, wie Sie die Gruppe über die einfache Gewährung des Zugriffs über Ihre Active DirectoryBenutzer hinaus verwenden wollen. Wenn Sie einer Active Directory-Gruppe Berechtigungen zuweisen, erhalten deren Mitglieder Zugang auf dieser Ebene. Sie können den Zugriff über die Mitgliedschaftsverwaltung der Active DirectoryGruppe steuern. Dieser Gruppe können Sie auch Zugriff zu anderen Ressourcen wie freigegebenen Ordnern, Druckern und Anwendungen erteilen. Sollten Sie jedoch für dieselbe Gruppe Benachrichtigungen einrichten, so gehen diese an das E-Mail-Konto dieser Gruppe, nicht zu jedem einzelnen Benutzer. Natürlich könnte Ihr Mailsystem die Nachricht an alle Mitglieder weiterleiten, aber SharePoint sendet nur eine E-Mail-Mitteilung – an die Gruppe. Wenn Sie einer SharePoint-Gruppe Berechtigungen zuweisen, erhalten deren Mitglieder Zugriff auf dieser Ebene. Wenn Benachrichtigungen geschickt werden, wird jedes Mitglied direkt angeschrieben. Zusätzlich ist es möglich, SharePoint-Funktionen zu nutzen, die es Benutzern ermöglichen, Mitgliedschaft in der Gruppe anzufordern. Diese Fähigkeit zur Mitgliedschaftssteuerung kann den Aufwand für Unterstützungskosten bei Anfragen für den Ressourcenzugriff reduzieren. Beim Benutzen der Active 300 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Directory-Verwaltungswerkzeuge ist jedoch die SharePoint-Gruppe weder sichtbar, noch können Sie ihr außerhalb von SharePoint Berechtigungen zuweisen. Einer der größten Nachteile von Active Directory-Gruppen besteht darin, dass sie nur Benutzern mit einem Active Directory-Konto enthalten. Wenn Sie Ihre SharePoint-Site auf Benutzer erweitern wollen, die sich mit anderen Authentifizierungsanbietern anmelden, z.B. formularbasierter Authentifizierung, dann müssen diese die Berechtigung zur Nutzung einer SharePoint-Gruppe erhalten. Es gibt also keine einfache Antwort. Wenn Sie einfach nicht entscheiden können, was zu tun ist, schlage ich vor, eine SharePoint-Gruppe zur Berechtigungsverwaltung zu erstellen und eine Active DirectoryGruppe in sie einzufügen. Auf diese Weise können Sie weiterhin den Zugriff mit Active Directory-Werkzeugen verwalten, während Ihre SharePoint-Gruppe flexibel genug ist, um eine Erweiterung auf andere Authentifizierungsanbieter zu unterstützen. Sie können, wenn gewünscht, die Funktion der Gruppenmitgliedschaftsverwaltung aktivieren, damit die Gruppe einzelnen Benutzern gestatten kann, Zugriff zu beantragen. Um mehr über Planung und Einrichtung der SharePoint-Sicherheit zu erfahren, besuchen Sie das Windows SharePoint Services Tech Center unter http://technet.microsoft.com/windowsserver/sharepoint. Zusammenfassung In dieser Lösung haben wir die grundlegenden Vorgänge zum Erstellen einer Website und einer sicheren Dokumentbibliothek behandelt. Dabei habe ich einige Tipps angeboten und ausgeführt, wie einige allgemeine Fallstricke zu umgehen sind. Eine Dokumentbibliothek, die so weit konfiguriert wurde, wie in dieser Lösung dargestellt, ist mehr oder weniger einem freigegebenen Ordner gleichwertig. In den folgenden Lösungen kommen wir zur Anwendung der SharePoint-Funktionalität in der Dokumentenverwaltung. 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten Die Lösung im Überblick Typ Prozeduren Funktionen und Werkzeuge SharePoint-Bibliotheks- und Sitespalten, Microsoft OfficeAnwendungen Zusammenfassung Erstellen benutzerdefinierter Spalten zur Unterstützung von Dokumentmetadaten auf dieser Bibliotheks- oder Siteebene. Vorteile Das Beschreiben von Dokumenten mit Metadaten ist ein Kernbestandteil der Inhaltsverwaltung, der Ansichten, Suche, Berichte und andere Funktionen zur Dokumentenverwaltung ermöglicht. Einführung SharePoint-Spalten entsprechen dem, was bei anderen Datenbanken mit Feldern, Attributen oder Eigenschaften bezeichnet wird. Sie sind Datenpunkte in einem Datensatz, der seinerseits Dokument in einer Bibliothek oder Objekt in einer Liste ist. Spalten können von der Einstellungsseite einer Bibliothek – der Anpassungsseite – aus im Abschnitt Spalten bearbeitet werden, den Abbildung 4.6 zeigt. 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten 301 Abbildung 4.6 Der Abschnitt Spalten einer Dokumentbibliothekseinstellung Spalten in einer Dokumentbibliothek können zum Beschreiben, Gliedern, Positionieren und Verwalten von Dokumenten dienen. In Texten zu Inhaltsverwaltungsressourcen werden solche Datenpunkte oft als Metadaten bezeichnet. Voreingestellt ist bei einer Dokumentbibliothek die Unterstützung für mehr als ein Dutzend Spalten, so etwa Titel, Name, Erstellt, Erstellt von, Geändert, Geändert von, Dateigröße, Version, Ausgecheckt von. Sie können die Spalten einer Bibliothek ändern, damit sie andere Eigenschaften unterstützen, die Sie für ein Dokument im Auge behalten wollen. Zu jeder Spalte steht Ihnen ein weiter Bereich von Optionen zur Verfügung, sowohl für die Datentypen, die die Spalte unterstützen soll, als auch für die Steuerelemente der Benutzerschnittstelle zur Dateneingabe in die Spalte, für Standardwerte und dafür, ob die Spalte ein erforderliches Feld für neue Dokumente ist. Ein Dokument ist in der Bibliothek für Benutzer unsichtbar, wenn irgendeine erforderliche Spalte nicht eingerichtet wurde. In diesem Abschnitt werden Sie lernen, Spalten in einer Bibliothek zu erstellen und zu verwalten. Sie erfahren außerdem, wie Endbenutzer mit voreingestellten Spalten sowohl in der SharePoint-Webschnittstelle als auch in Microsoft Office-Clients umgehen, und wie Spalten sowohl auf Bibliotheks- als auch auf Siteebene verwaltet werden, wo sie für mehrere Listen oder Bibliotheken verfügbar gemacht werden können. Erstellen einer Spalte Eine Spalte wird mittels folgender Schritte erstellt: 1. Klicken Sie in der Symbolleiste der Bibliothek auf Einstellungen und wählen Sie Einstellungen für Dokumentbibliothek. 2. Die Anpassungsseite erscheint. Klicken Sie im Abschnitt Spalten auf den Link Spalten erstellen. 3. In das Textfeld Spaltenname geben Sie den Spaltennamen ein. 4. Wählen Sie eine der Optionen aus, die unter der Überschrift Der Informationstyp in dieser Spalte ist erscheinen. Ihre Wahl beeinflusst nicht nur die Art der in der Spalte enthaltenen Daten, sondern auch die Art des Steuerelements, das in der Benutzeroberfläche dargestellt wird. 5. Ihre Wahl des Informationstyps, den Sie in der Spalte speichern wollen, erzeugt eine entsprechende Auswahl zusätzlicher Einstellungen. Richten Sie diese ein und klicken Sie auf OK. 302 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Weitere Information über das Einrichten von Spalten und die Vielzahl verfügbarer Spaltenarten lesen Sie nach im Microsoft Office SharePoint Server 2007 – Das Handbuch (Microsoft Press, 2007). Abbildung 4.7 zeigt die Gestaltung einer Dropdownliste, die Projektnamen enthält. Um die Abbildung lesbarer zu gestalten, habe ich sie bearbeitet, damit sie nur die verwendeten Optionen zeigt. Das Feld sollten Sie unbedingt ausfüllen. Die Beschreibung erscheint im Formular zur Objektbearbeitung, das in Abbildung 4.13 gezeigt wird, unterhalb des Textfeldes für die Projektspalte. Abbildung 4.7 Erstellen einer Spalte namens Project Hinweis Für jede nicht selbsterklärende Eigenschaft geben Sie eine Beschreibung der Spalte ein. Hinweis Standardwert für eine neue Auswahlspalte ist das erste Objekt in der Liste. Oftmals werden Sie sicherstellen wollen, dass es keine Voreinstellung gibt, sodass der Benutzer selbst eine geeignete Auswahl treffen muss. Ich empfehle, das Feld für den Standardwert leer zulassen wie in Abbildung 4.7. Möglicherweise denken Sie voraus und betrachten Szenarien, in denen Sie mehrere Dokumentbibliotheken haben. Stellen Sie sich zum Beispiel vor, Sie hätten mehr als eine Bibliothek, die die Projektspalte erfordert. Es wäre quälend, wenn nicht geradezu entsetzlich, müssten Sie die gleichen Spalten in jeder einzelnen Bibliothek einrichten. Sitespalten und Inhaltstypen, die weiter hinten in dieser und in Lösung 4.3 besprochen werden, gestatten uns, Inhaltsoptionen für mehrere Listen, Bibliotheken oder Websites zentral festzulegen. 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten 303 Arbeiten mit benutzerdefinierten Spalten aus Microsoft Office-Clients Wenn eine Dokumentbibliothek eine benutzerdefinierte Spalte enthält, kann der Benutzer die Eigenschaften eines Dokuments mithilfe mehrerer Verfahren eingeben, je nachdem, welche Microsoft Office-Version benutzt wird. Microsoft Office 2003 und Microsoft Office 2007 arbeiten beide direkt mit SharePoint-Produkten und -Technologieen zusammen. Erstellen eines neuen Dokuments aus der Dokumentbibliothek mit Office-Clients Wenn Sie mit der Schaltfläche Neu in der Symbolleiste der Dokumentbibliothek ein neues Dokument erstellen und Microsoft Office 2003- oder 2007-Clients verwenden, sorgt der Client dafür, dass Sie die Spalteneigenschaften wie erforderlich vervollständigen. Office 2003-Clients fordern Sie mithilfe des in Abbildung 4.8 gezeigten Dialogfelds Webdateieigenschaften zur Eingabe auf, wenn Sie das Dokument speichern. Abbildung 4.8 Das Dialogfeld Webdateieigenschaften erscheint beim Speichern eines Dokuments durch einen Office 2003-Client in einer Dokumentbibliothek Sie können auch die Dokumentinformationsseite im Aufgabenbereich Freigegebener Arbeitsbereich in Office 2003-Clients zum Einstellen von Dokumenteigenschaften nehmen. Sie sehen den Aufgabenbereich in Abbildung 4.9. Um ihn zu erreichen, klicken Sie auf Extras und dann auf Freigegebener Arbeitsbereich. Von Office 2007-Clients werden Dokumenteigenschaften im Informationsfeld für Dokumente dargestellt, das Sie in Abbildung 4.10 sehen. Hinweis Wenn das Fenster nicht erscheint, klicken Sie auf die Schaltfläche Microsoft Office, dann auf Vorbereiten und wählen danach Eigenschaften. 304 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Abbildung 4.9 Aufgabenbereich Freigegebener Arbeitsbereich, Dokumentinformationsseite Abbildung 4.10 Informationsfeld für Dokumente in einem Office 2007-Client Speichern eines Dokuments in einer Bibliothek mit benutzerdefinierten Spalten aus Microsoft Office-Clients Wenn Sie ein Dokument erstellen, ohne die Schaltfläche Neu der Dokumentbibliothek zu verwenden, wissen Office-Clients nichts über die benutzerdefinierten Eigenschaften, bis Sie versuchen, das Dokument in der Dokumentbibliothek zu speichern. Von Office 2003-Clients werden Sie über das Dialogfeld Webdateieigenschaften (siehe Abb.4.8) zur Eingabe aufgefordert. Erforderliche Eigenschaften müssen eingetragen werden, oder Sie können das Dokument nicht in der Bibliothek speichern. Wenn Sie hingegen mit Office 2007 versuchen, ein Dokument zu speichern, dem Eigenschaften fehlen, erhalten Sie die Fehlermeldung der Abbildung 4.11, die klar und hilfreich ist – sie öffnet Ihnen gleichzeitig das Informationsfeld für Dokumente. Dieses Feld (siehe Abb. 4.12) bietet Steuerelemente zum Eingeben der fehlenden Eigenschaften an, wonach dann die Schaltfläche zum erneuten Speichern aktiviert wird. Abbildung 4.11 Word 2007-Fehlermeldung beim Speichern eines Dokuments mit fehlenden erforderlichen Eigenschaften 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten 305 Abbildung 4.12 Office 2007-Informationsfeld für Dokumente mit erforderlichen Eigenschaften Arbeiten mit Dokumenteigenschaften aus der SharePoint-Webschnittstelle Wenn Sie ein Dokument mit einer Vorgängerversion von Office 2003 oder mit einer anderen nicht mit Windows SharePoint Services kompatiblen Anwendung erstellen, wird es durch Hochladen in der Bibliothek gespeichert. Hochladen eines Dokuments mit benutzerdefinierten Spalten Wenn ein Benutzer ein Dokument in die Bibliothek hochlädt, fordert ihn die Website auf, die Dokumenteigenschaften zu vervollständigen, wie Abbildung 4.13 zeigt. Legt der Benutzer die mit einem roten Stern markierten erforderlichen Eigenschaften nicht fest, verbleibt das Dokument ausgecheckt beim Benutzer, der es hochladen wollte. Es ist für normale Benutzer nicht sichtbar, bis die Eigenschaften eingetragen sind und das Dokument eingecheckt wird. Dies ist einer von mehreren in dieser Lösungsgruppe besprochenen Gründen für die empfohlene Vorgehensweise, das Auschecken von Dokumentbibliotheken zu fordern. Abbildung 4.13 Erforderliche Spalten für ein hochgeladenes Dokument Anzeigen der Dokumenteigenschaften Dokumenteigenschaften können Sie mit dem Befehl Eigenschaften anzeigen im Bearbeitungsmenü des Dokuments sichtbar machen. Die Objekt- bzw. Eigenschaftenseite listet jede Spalte wie in Abbildung 4.14 dargestellt auf. 306 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Abbildung 4.14 Die Eigenschaftenseite eines Dokuments Verwenden des Bearbeitungsmenüs von SharePoint Da hier erstmals vom Bearbeitungsmenü eines Dokuments die Rede ist, lassen Sie mich sicherstellen, dass wir von derselben Sache reden. Sie führen die meisten Aktionen in einer Dokumentbibliothek entweder mit den Symbolleisten-Schaltflächen oder mit dem Bearbeitungsmenü aus. Es kann verwirrend wirken, dass es kein als solches bezeichnetes Bearbeitungsmenü gibt. Es erscheint vielmehr, wenn Sie mit dem Mauszeiger über ein Dokument fahren und auf den eingeblendeten Dropdownpfeil klicken. Die Inhalte des Menüs ändern sich je nach dem von Ihnen gewählten Inhaltstyp und Ihren Berechtigungen in der Bibliothek. Ein typisches Bearbeitungsmenü sehen Sie in Abbildung 4.15. Es ähnelt dem Kontextoder Rechtsklickmenü in Office-Anwendungen insofern, als die in ihm enthaltenen Befehle das ausgewählte Dokument beeinflussen. Abbildung 4.15 Bearbeitungsmenü eines Dokuments Hinweis Ein Tipp sei hier noch verraten: Sie müssen nicht auf den winzigen Dropdownpfeil an der äußersten Kante des Links klicken, sondern können irgendwohin zwischen Text und Pfeil auf den freien Platz klicken. Die Dropdownpfeile sind klein und auf den leeren Raum zielt es sich mit dem Mauszeiger viel leichter. Vielleicht bin ich zu sehr an das Einhalten der Spielregeln gewöhnt und klicke nur auf Dinge, die ich sehe, doch ich habe monatelang mit SharePoint gearbeitet, bevor mir klar wurde, dass ich das Bearbeitungsmenü mit einem Klick irgendwohin rechts vom Namen des Dokuments erreichen konnte. 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten 307 Bearbeiten von Dokumenteigenschaften Zum Ändern von Dokumenteigenschaften klicken Sie auf den Befehl Eigenschaften Bearbeiten im Bearbeitungsmenü des Dokuments oder auf die Schaltfläche Elemente bearbeiten auf der Eigenschaftenseite des Dokuments, wie vorher in Abbildung 4.14 gezeigt. Dort finden Sie Steuerelemente für jede Eigenschaft, wobei erforderliche Eigenschaften mit einem Stern gekennzeichnet werden. Abbildung 4.16 Formular zur Elementbearbeitung eines Dokuments Ändern und Löschen von Bibliotheksspalten Nachdem Sie jetzt gesehen haben, wie man Spalten erstellt und wie sie die Arbeitsweise des Benutzers beeinflussen, können Sie sich eingehender mit dem Thema Spalten befassen. Zur Spaltenverwaltung gehen Sie zurück zum Abschnitt Spalten auf der Anpassungsseite der Dokumentbibliothek. Sie können jede Spalte anklicken, um ihre Änderungsseite zu öffnen. Dort gibt es gewisse Eigenschaften, die Sie nicht ändern können, nachdem die Spalte erstellt worden ist – welche Eigenschaften das sind, hängt vom Spaltentyp ab. Alle änderungsfähigen Eigenschaften stehen auf der Spaltenänderungsseite zur Verfügung. Sie können die Spalte auch durch einen Klick auf die Schaltfläche Löschen der Änderungsseite beseitigen. Umordnen von Spalten Die Seiten zur Ansicht und Elementbearbeitung stellen die Spalten in der Reihenfolge dar, die von den Einstellungen der Dokumentbibliothek festgelegt wird. Im Abschnitt Spalten auf der Anpassungsseite der Dokumentbibliothek klicken Sie auf den Link zur Spaltensortierung und benutzen die Dropdownlisten, um die Spaltenanordnung zu ändern. Wichtig Der Link Spaltensortierung wirkt auf die Seiten, mit denen Sie die Dokumentbearbeitungseigenschaften anzeigen können, wie etwa das in Abbildung 4.16 gezeigte Formular zur Elementbearbeitung. Die Spaltenanordnung hat keinen Einfluss auf die Reihenfolge, in der die Spalten in Dokumentbibliotheksansichten erscheinen. Die Reihenfolge der Spalten in einer Bibliotheksansicht ist Teil der Ansichtsdefinition, wie wir in Lösung 4.14 sehen werden. 308 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Verwalten von Websitespalten Wir haben besprochen, wie Sie voreingestellte Spalten in einer Dokumentbibliothek erstellen, verwalten und benutzen können, wobei wir das einfache Beispiel einer Projektspalte verwendet haben, die eine Auswahl ermöglicht – ein Dropdownlisten-Steuerelement. Vernünftigerweise sollte man erwarten, dass eine derartige Spalte in mehreren Dokumentbibliotheken nützlich sein kann, vielleicht sogar mehreren Websites. Sitespalten verhalten sich ähnlich wie Bibliotheks- und Listenspalten, nur dass sie sich auf eine gesamte Website und deren Unterwebsites erstrecken. Erstellen von Websitespalten Um eine Websitespalte zu erstellen, müssen Sie zuerst die Website festlegen, welche die Spalte enthalten wird. Websitespalten stehen einer Website und ihren Unterwebsites zur Verfügung. Um eine solche Spalte zu erstellen, verfahren Sie wie folgt: 1. Auf der Site, in der die Spalte enthalten sein soll, klicken Sie auf Websiteaktionen und wählen Websiteeinstellungen. 2. Im Abschnitt Galerien klicken Sie auf Websitespalten. 3. Klicken Sie auf Erstellen. 4. Richten Sie die Einstellungen für die Spalte ein. 5. Klicken Sie auf OK. Hinweis Es wird empfohlen, Websitespalten auf der Site in der höchsten Ebene der Websitesammlung zu erstellen. Einstellungen für eine Websitespalte sind identisch mit denen einer Liste oder Bibliotheksspalte, wie früher in dieser Lösung beschrieben. Darüber hinaus müssen Sie eine Gruppe für die Spalte festlegen. Gruppen sind nur ein Gliederungswerkzeug, das es erleichtert, die Gruppe zu lokalisieren, wenn sie bearbeitet oder einer Liste bzw. Bibliothek hinzugefügt werden soll. Verwenden einer Websitespalte in einer Liste oder Bibliothek Um einer Liste oder Bibliothek eine Websitespalte hinzuzufügen, öffnen Sie die zugehörige Anpassungsseite und klicken im Abschnitt Spalten auf den Link zum Aus vorhandenen Websitespalten hinzufügen. Verwenden Sie zum Auswählen einer Websitespalte die Dropdownliste Websitespalten auswählen aus und das Listenfeld für Verfügbare Websitespalten. Dann klicken Sie auf die Schaltfläche Hinzufügen. Ein Beispiel wird in Abbildung 4.17 gezeigt. Klicken Sie auf OK, wenn Sie alle Spalten ausgewählt haben, die Sie der Website hinzufügen wollen. Die neu hinzugefügte Websitespalte erbt ihre Eigenschaften von der Definition der Websitespalte. Sie können die Eigenschaften anzeigen und verändern, indem Sie auf der Anpassungsseite der Liste oder Bibliothek im Abschnitt Spalten auf den Spaltennamen klicken. Aus Gründen, die im nächsten Abschnitt besprochen werden, ist es sehr zu empfehlen, dass Sie keine der Eigenschaften ändern. Wenn eine Spalte für die Verwendung in einer Liste oder Bibliothek nicht geeignet erscheint, erstellen oder wählen Sie eine andere Websitespalte oder erstellen Sie eine Listen- oder Bibliotheksspalte. 4.2 Verwalten von Dokumentmetadaten mit Bibliotheks- und Websitespalten 309 Abbildung 4.17 Die Seite Spalten aus Websitespalten hinzufügen Ändern und Löschen von Websitespalten Nach dem Erstellen einer Sitespalte können Sie in der Websitespaltensammlung auf den Link zu ihr klicken. Daraufhin wird die Änderungsseite angezeigt, wo Sie die Spalte ändern oder löschen können. Wenn Sie die Eigenschaften einer Sitespalte ändern, aktualisiert SharePoint standardmäßig sämtliche Instanzen der Spalte in Listen und Bibliotheken. Fügen wir beispielsweise ein Projekt zur Auswahlliste in unserer Projektspalte hinzu, wird das neue Projekt als Wahlmöglichkeit in allen Bibliotheken und Listen in der Site angezeigt. Diese Aktualisierung können Sie verhindern, indem Sie im Abschnitt Listen aktualisieren der Seite Websitespalte ändern die Option Nein aktivieren. Es wird jedoch empfohlen, diese leistungsfähige Funktion nicht aus-, sondern einzuschalten. Hinweis Die Fähigkeit, an einer Stelle eine Spalte zu verändern und diese Änderung in sämtlichen Listen und Bibliotheken wiederzufinden, die diese Spalte verwenden, ist ein großer Vorteil von Websitespalten. Wird eine Websitespalte in einer Liste oder Bibliothek verwendet, so erbt das dortige Exemplar seine sämtlichen Eigenschaften von ihr. Sie können die Eigenschaften für diese spezielle Liste oder Bibliothek aufheben. Haben Sie beispielsweise eine Standardbeschreibung in der Sitespalte, verändern Sie sie in der Liste oder Bibliothek so, dass sie spezifischer wird. Aber Ihre Änderungen an den Einstellungen der Liste oder Bibliothek werden ersetzt, wenn Sie von der automatischen Aktualisierung von Listenund Bibliotheksspalten beim Ändern der Websitespalte Gebrauch machen. Daher rate ich davon ab, Eigenschaften von Websitespalten in einer Liste oder Bibliothek zu überschreiben. 310 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Zusammenfassung Bibliotheksspalten stellen die Datenfelder oder Metadaten bereit, mit denen Dokumente innerhalb der Bibliothek dargestellt und beschrieben werden können. Metadaten ermöglichen uns, Ansichten zu erstellen, die unsere Daten in nützlicher Weise sortieren, filtern und gruppieren (Lösung 4.14), und diese Ansichten können zum Einrichten von Benachrichtigungen dienen (Lösung 4.9). Metadaten werden auch verwendet, um Suchvorgänge, Berichte und jede andere Kernfunktion der Dokumentverwaltung zu unterstützen. Wenn Sie Spalten erstellen, und vor allem, wenn Sie sie als erforderliche Spalten einrichten, müssen Sie verstehen, wie Benutzer mit ihnen umgehen und wie sie diese Spalten mit den Anwendungen ausfüllen, die sie beim Zugang zu SharePoint verwenden. Falls Metadaten für mehr als nur eine Liste oder Bibliothek definiert werden müssen, sollte das auf Siteebene in Form von Sitespalten geschehen. 4.3 Erstellen von verwalteten Inhaltstypen Die Lösung im Überblick Typ Verfahren Funktionen und Werkzeuge Website- und -Bibliotheks-Inhaltstypen von SharePoint Zusammenfassung Erstellen und Einrichten von Webite- und Bibliotheks-Inhaltstypen. Vorteile Zentrale Definition von Spalten (Metadaten), Einstellungen und Workflows für die vollständige Beschreibung eines Inhaltstyps zum Einsatz für eine oder mehrere Bibliotheken oder Listen in einer oder mehreren Websites Einführung Inhaltstypen sind eines der leistungsfähigsten Werkzeuge von SharePoint. Ein Inhaltstyp stellt eine Definition für ein Objekt oder Dokument dar. Er umfasst sämtliche Eigenschaften (Spalten), Einstellungen und Workflows, die der Inhaltstyp haben soll, wo auch immer er verwendet wird. Sie definieren ihn einmal als Inhaltstyp der Website, um ihn dann in jeder Liste oder Bibliothek innerhalb der Site benutzen zu können. Änderungen an der Definition des Inhaltstyps wirken sich auf jede seiner Instanzen aus. Beispielsweise möchte sich Contoso.com über abgeschlossene Verträge und Vereinbarungen mit Kunden, Partnern und Händlern auf dem Laufenden halten. Solche Verträge und Vereinbarungen können in jeder Geschäftseinheit oder Abteilung zustande kommen, sodass sich die Unterlagen in einer Anzahl von Bibliotheken befinden. Daher erstellt Contoso einen Inhaltstyp, der zusammenfasst, was ein Vertrag ist, welche Vorlagen er benutzt und welche Metadaten (Spalten) zur Verwaltung von Verträgen benötigt werden. Erstellen eines Inhaltstyps Um einen Inhaltstyp zu erstellen, müssen Sie zuerst bestimmen, welche Site ihn Inhaltstyp enthalten soll. Nach seiner Erstellung können Sie einen Inhaltstyp innerhalb der Site und ihrer Untersites verwenden. Mit folgenden Schritten definieren Sie einen Inhaltstyp: 4.3 Erstellen von verwalteten Inhaltstypen 311 Hinweis Es wird empfohlen, Inhaltstypen in der Website der höchsten Ebene der Websitesammlung zu erstellen, um die Verwaltung der Inhaltstypen für diese Sammlung zu zentralisieren. 1. Klicken Sie auf Websiteaktionen und wählen Sie Websiteeinstellungen auf der Site, welche die Spalte enthalten soll. 2. Im Abschnitt Galerien klicken Sie auf Websiteinhaltstypen. 3. Klicken Sie auf Erstellen. 4. Die Seite Neuer Websiteinhaltstyp wird wie in Abbildung 4.18 angezeigt. Abbildung 4.18 Die Seite Neuer Websiteinhaltstyp 5. Füllen Sie Name und Beschreibung für den Inhaltstyp aus. 6. Wählen Sie den übergeordneten Inhaltstyp mithilfe der beiden Dropdownlisten Übergeordneten Inhaltstyp auswählen aus und Übergeordneter Inhaltstyp. In dieser Lösungsgruppe, wo Dokumentbibliotheken betrachtet werden, verwenden wir Dokumentinhaltstypen, um neue Inhaltstypen abzuleiten. Document und Bild sind selbsterklärend und bilden die am häufigsten ausgewählten Optionen. Spalten für Dublin Core Metadaten sind eine Alternative. Dabei handelt es sich um eine Standardsammlung von Metadaten, mit deren Hilfe Sie praktisch jede Art von Inhalten beschreiben können. Der einzige Nachteil von Dublin Core-Spalten ist, dass es sich um 15 Spalten handelt, was mehr sein dürfte, als für Ihren Inhaltstyp wirklich erforderlich ist. 7. Wählen Sie eine vorhandene Gruppe oder erstellen Sie eine neue für den Inhaltstyp. Gruppen sind nur ein Organisationshilfsmittel, das die Lokalisierung des Inhaltstyps erleichtert, wenn Sie ihn bearbeiten oder zu einer Liste oder Bibliothek hinzufügen. Die Standardgruppe für 312 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint neue Websiteinhaltstypen bei SharePoint ist Benutzerdefinierte Inhaltstypen. Allerdings werden Spaltengruppen, wenn Sie mit ihnen arbeiten, in alphabetischer Reihenfolge dargestellt. Ich empfehle daher, eine Gruppe zu erstellen, die am Kopf oder am Ende von Inhaltstyplisten erscheint, wie z.B. _ Benutzerdefinierte Inhaltstypen. 8. Klicken Sie auf OK. Die Seite Websiteinhaltstyp wird wie in Abbildung 4.19 angezeigt. Abbildung 4.19 Die Seite Websiteinhaltstyp Die Seite sieht so ähnlich wie eine Bibliotheks- oder Listeneinstellungsseite aus, nicht wahr? Das ist kein Zufall! Listen oder Bibliotheken sind nichts weiter als Behälter für ihre Inhalte. Jede Liste oder Bibliothek hat standardmäßig einen Inhaltstyp, durch den die Einträge oder Dokumente für sie definiert werden, sowie Einstellungen der Containerebene, z.B. Berechtigungen, RSS-Einstellungen und Ansichten. Von der Einstellungsseite für den Websiteinhaltstyp aus können Sie den Inhaltstyp einschließlich der folgenden Elemente verwalten: Name, Beschreibung und Gruppe Mit diesen Einstellungen können Sie die Eigenschaften ändern, die dem Inhaltstyp bei seiner Erstellung zugewiesen wurden. Erweiterte Einstellungen Diese Einstellungen definieren die mit dem Inhaltstyp verknüpfte Dokumentvorlage. In Lösung 4.4 wird das noch ausführlicher besprochen. 4.3 Erstellen von verwalteten Inhaltstypen 313 Workfloweinstellungen Mithilfe dieser Einstellungen richten Sie mit dem Inhaltstyp verknüpfte Workflows ein. Diesen Websiteinhaltstyp löschen Diese Einstellung erklärt sich von selbst. Es ist auch möglich, Sitespalten so zu verwalten, dass Sie mit dem Inhaltstyp verknüpfte Metadaten oder Eigenschaften hinzufügen können. Abbildung 4.19 zeigt einige Beispiele von definierten Eigenschaften (Spalten) für den Inhaltstyp Contract. Jede mit einem Inhaltstyp verknüpfte Spalte ist eine Sitespalte. Hinzufügen von Inhaltstypen zu einer Liste oder Bibliothek Nachdem Sie Ihre Inhaltstypen definiert haben, können Sie sie in Ihren Bibliotheken und Listen verwenden. Führen Sie dazu folgende Schritte aus: 1. Auf der Anpassungsseite der Liste oder Bibliothek klicken Sie auf den Link Erweiterte Einstellungen. 2. Im Abschnitt Inhaltstypen aktivieren Sie Ja unter Verwaltung von Inhaltstypen zulassen. 3. Klicken Sie auf die Schaltfläche OK. Die Einstellungsseite zeigt nun den Abschnitt Inhaltstypen, wie Sie in Abbildung 4.20 sehen können. Abbildung 4.20 Einstellungsseite mit dem Abschnitt Inhaltstypen Verwenden Sie die Befehle im Abschnitt Inhaltstypen, um einen Inhaltstyp hinzuzufügen. Um einen Inhaltstyp zu entfernen, der in der Liste oder Bibliothek bereits vorhanden ist, klicken Sie auf seinen Namen und dann auf den Link Diesen Inhaltstyp löschen. Falls Ihre Bibliothek mehr als einen Inhaltstyp enthält, können Sie die Reihenfolge verändern, in der sie im Schaltflächenmenü Neu angezeigt werden, und Sie können den Standardinhaltstyp einstellen, der verwendet wird, wenn der Benutzer einfach auf Neu klickt. 314 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Grundlagen von untergeordneten Website- und Listeninhaltstypen Inhaltstypen sind hierarchisch gegliedert. Wenn Sie einen Standardinhaltstyp erstellen, wie z. B. den von uns früher erstellten Typ Contract (siehe Abbildung 4.19), wird er von einem übergeordneten Inhaltstyp (zumeist Dokument oder Bild) abgeleitet. Eigenschaften des übergeordneten werden von dem neuen untergeordneten Inhaltstyp geerbt. Beim Erstellen eines Inhaltstyps, der auf einem übergeordneten Typ beruht, ist es möglich, die vorhandene Definition mit zusätzlichen Spalten, Einstellungen wie z.B. einer Vorlage und mit Workflows zu erweitern. Wir haben zu unserem Inhaltstyp Contract verschiedene Spalten hinzugefügt, die in seinem übergeordneten Inhaltstyp Document nicht enthalten waren. Um das Beispiel einen Schritt weiter zu verfolgen, nehmen wir an, Sie haben einen Inhaltstyp Contract erstellt und legen einen anderen davon abgeleiteten Typ für Kaufvereinbarungen über einen konkreten Wert an. Sie nennen diesen neuen Inhaltstyp High Value Contracts und fügen geeignete Spalten hinzu, etwa über den Wert des Vertrags und Hinweise, wie er abgeschlossen wurde. Änderungen am Inhaltstyp übertragen sich auf untergeordnete Inhaltstypen. Bleiben wir bei unserem Vertragsbeispiel und nehmen wir an, Sie wollen eine Spalte zum Inhaltstyp hinzufügen, um anzugeben, wer den Vertrag oder die Vereinbarung unterzeichnet hat. Wenn Sie die Unterzeichnet von-Spalte zum Inhaltstyp Contract hinzufügen, können Sie untergeordnete Inhaltstypen wie den der High Value Contracts aktualisieren. Die Ausbreitung von Aktualisierungen auf untergeordnete Inhaltstypen ist in den meisten Szenarien wertvoll, weil sie einen sehr guten Weg zur Verwaltung von Inhaltsdefinitionen aufzeigt. Wenn Sie jedoch eine Einstellung oder Spalte in einem untergeordneten Inhaltstyp verändert haben, werden Ihre Anpassungen überschrieben, falls Sie einen übergeordneten Inhaltstyp ändern und festlegen, dass SharePoint Aktualisierungen an untergeordneten Inhaltstypen vornimmt. Wichtig Es gibt einen feinen Unterschied: Aktualisierungen von einem übergeordneten auf einen untergeordneten Inhaltstyp überschreiben Änderungen, die Sie an letzterem vorgenommen haben. Haben Sie aber Spalten zum untergeordneten Typ hinzugefügt, so werden diese Spalten, die nur den untergeordneten Inhaltstyp betreffen, weder geändert noch entfernt. Wenn Sie einen Inhaltstyp zu einer Liste oder Bibliothek hinzufügen, erstellen Sie genauer gesagt einen neuen Inhaltstyp, der vom Siteinhaltstyp abgeleitet ist. Anders formuliert ist jeder Listen- oder Bibliotheksinhaltstyp ein Abkömmling seines Siteinhaltstyps. Der Listen- oder Bibliotheksinhaltstyp steht natürlich nur im Rahmen dieser Liste oder Bibliothek zur Verfügung. Siteinhaltstypen sind auf die Site und ihre Untersites beschränkt. Daher betreffen die folgenden Regeln sowohl die Inhaltstypenhierarchie als auch Aktualisierungen: Sie können Spalten, Einstellungen und Workflows ändern. Sie können Spalten und Workflows hinzufügen. Wenn Änderungen am übergeordneten (Site-)Inhaltstyp untergeordnete Listen- und Bibliotheksinhaltstypen aktualisieren, werden Änderungen (aber keine Ergänzungen), die Sie vorher an Bibliotheks- oder Listeninhaltstyp vorgenommen haben, überschrieben. Wichtig Die SharePoint-Benutzerschnittstelle lässt nicht unmittelbar erkennen, dass der Inhaltstyp, den Sie zu einer Bibliothek hinzufügen, tatsächlich ein untergeordneter Inhaltstyp ist und nicht nur eine Referenz auf einen Siteinhaltstyp. 4.3 Erstellen von verwalteten Inhaltstypen 315 Schreibschutz für einen Inhaltstyp Sie können jeden Inhaltstyp – ob auf der Site- oder Listen/Bibliotheksebene – mit Schreibschutz versehen. Diese Einstellung befindet sich auf der Seite Erweiterte Einstellungen des Inhaltstyps. Wenn ein Inhaltstyp schreibgeschützt ist, können keine Änderungen vorgenommen werden – Sie können Spalten, Einstellungen oder Workflows weder hinzufügen noch entfernen oder verändern. Benutzer mit der Berechtigung zum Bearbeiten des Inhaltstyps können die Schreibschutzeinstellung entfernen, um Änderungen vorzunehmen. Daher ist die Einstellung mehr eine Sicherheitsmaßnahme, damit sich Änderungen am übergeordneten Inhaltstyp nicht auf den untergeordneten übertragen. Der Schreibschutz ist besonders wichtig, wenn sich Workflows oder anderer Code auf die Definition eines Inhaltstyps stützen, weil er sicherstellt, dass Änderungen des Inhaltstyps, die andere Prozesse beeinträchtigen könnten, vermieden werden. Wenn Sie einen untergeordneten Inhaltstyp mit Schreibschutz versehen, rufen Änderungen an übergeordneten Inhaltstypen, die eine Aktualisierung von Abkömmlingen auslösen würden, eine Fehlermeldung hervor: Zwar wird der übergeordnete Inhaltstyp erfolgreich aktualisiert, jedoch keines der schreibgeschützten untergeordneten Objekte. Die Ausnahme von dieser Regel bildet die Schreibschutzeinstellung selbst. Wenn sie für ein übergeordnetes Objekt geändert wird, überträgt sich das auf die untergeordneten Objekte. Hinweis Indem Sie den Schreibschutz für ein übergeordnetes Objekt ein- und dann wieder ausschalten, können Sie wirkungsvoll an allen untergeordneten Objekten Änderungen ermöglichen und dann eine Änderung am übergeordneten Objekt vornehmen, die sich erfolgreich auf alle Abkömmlinge überträgt. Die einzige Schwierigkeit ist dann, zu den einzelnen untergeordneten Inhaltstypen zu wechseln, die schreibgeschützt sein sollen, und die Einstellung zu reaktivieren. Das mag kompliziert klingen, doch ist es das häufig auch. Ich empfehle, den Schreibschutz für ganze Zweige von Inhaltstypen einzuschalten – beginnend mit dem übergeordneten Inhaltstyp, den Sie erstellen. Verwalten Sie die Umgebung möglichst so, dass Situationen vermieden werden, in denen untergeordnete Inhaltstypen schreibgeschützt sind, übergeordnete jedoch nicht. Ändern Sie keine standardmäßigen SharePoint-Inhaltstypen Ändern Sie keine Einstellungen, Spalten oder Workflows an irgendeinem der standardmäßigen SharePoint-Inhaltstypen. Wenn Sie meinen, Sie müssten einen solchen Typ ändern, überprüfen Sie zuvor, ob Sie Ihre Ziele nicht durch einen untergeordneten Inhaltstyp erreichen können, der vom Standardinhaltstyp abgeleitet ist. Ist das nicht möglich, so konsultieren Sie das SharePoint Software Development Kit und alle anderen tiefer gehenden technischen Informationen über SharePoint, um die Auswirkungen Ihrer beabsichtigten Änderung voll zu überblicken. Zusammenfassung Mit dem Erstellen von Inhaltstypen für eine Sitesammlung können Sie den Inhalt definieren, den Sie in Bibliotheken und Listen unterstützen wollen. Die zentralisierte und hierarchische Beschaffenheit von Inhaltstypen bietet die Grundlage für eine wirkungsvolle Inhalts- und Dokumentenverwaltung. 316 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint 4.4 Einrichten mehrerer Vorlagen für eine Dokumentbibliothek Die Lösung im Überblick Typ Verfahren Funktionen und Werkzeuge SharePoint-Inhaltstypen und -Dokumentbibliotheken Zusammenfassung Sie ermöglichen die Anzeige mehrerer Vorlagen im Schaltflächenmenü Neu einer Dokumentbibliothek. Vorteile Benutzer können neue Dokumente nach geeigneten Vorlagen für die Bibliothek erstellen. Einführung Viele Dokumentbibliotheken sind nicht auf einen Dokumenttyp spezialisiert. Wenn eine Bibliothek das Erstellen, Speichern und Verwalten mehrerer Dokumenttypen erlauben soll, wird man vernünftigerweise von der Schaltfläche Neu Hilfe bei der Erstellung jedes unterstützten Dokuments erwarten. In dieser Lösung verwenden wir Inhaltstypen zu diesem Zweck. Inhaltstypen sind nicht nur wegen der mit ihnen verknüpften Spalten von Nutzen. Jeder Inhaltstyp definiert auch die Vorlagen, die beim Erstellen eines Dokuments von diesem Typ verwendet werden sollen. Vielleicht erkennen Sie bereits, worauf wir hinauswollen: Erstellen einer Dokumentbibliothek für Vorlagen Erstellen eines Inhaltstyps für jede Dokumentklasse Einrichten einer Bibliothek zur Unterstützung der Inhaltstypen Erstellen einer zentralen Bibliothek für Vorlagen Erstellen Sie zunächst eine Bibliothek, um die Vorlagen selbst bereitzuhalten. Ich empfehle, eine Dokumentbibliothek auf der höchsten Ebene einer Sitesammlung anzulegen. Weil diese Bibliothek im Hintergrund verwendet wird, sollten Sie sie nicht auf der Schnellstartleiste anzeigen lassen – das würde zu Verwirrung bei den Benutzern darüber führen, von wo aus sie ein neues Dokument anlegen sollen. Sorgen Sie dafür, dass die Leseberechtigung für alle Benutzer zugelassen wird, die eine der Vorlagen anfordern. Laden Sie Ihre Vorlagen in die Bibliothek hoch. Vorherige Lösungen beschreiben die Einzelschritte zum Erstellen einer Bibliothek und zum Hochladen von Dokumenten. Diesen Schritt können Sie auch weglassen. Wie Sie in der nächsten Lösung sehen, können Sie beim Erstellen eines Inhaltstyps das Hochladen einer Vorlage auswählen. SharePoint speichert auf diese Weise hochgeladene Vorlagen in einem versteckten Ordner, _cts, auf dieser Site ab. Der _cts-Ordner funktioniert daher etwa wie eine Vorlagenbibliothek. Ich ziehe es allerdings vor, wenn meine Vorlagen für Mitarbeiter und Administratoren leicht zugänglich zur Bearbeitung und sichtbar sind. 4.4 Einrichten mehrerer Vorlagen für eine Dokumentbibliothek 317 Festlegen des Inhaltstyps für eine Vorlage In der Lösung 4.3 haben wir das Vorgehen beim Erstellen von Inhaltstypen besprochen und einen für Verträge angelegt. Bei den erweiterten Einstellungen für einen Inhaltstyp können Sie den URL für seine Vorlage angeben: 1. Klicken Sie Websiteaktionen an und wählen Sie Websiteeinstellungen. 2. Im Abschnitt Galerien der Seite Websiteeinstellungen klicken Sie auf den Link Websiteinhaltstyp. 3. Erstellen Sie einen neuen Inhaltstyp (Einzelheiten dazu in Lösung 4.3) oder klicken Sie auf den Namen eines vorhandenen Inhaltstyps, um diesen zu bearbeiten. 4. Auf der Einstellungsseite für den Websiteinhaltstyp klicken Sie auf den Link Erweiterte Einstellungen. 5. Im Abschnitt Dokumentvorlagen, den Abbildung 4.21 zeigt, tragen Sie den URL zur Vorlage ein. Abbildung 4.21 Die Dokumentvorlageneinstellung für einen Inhaltstyp Hinweis In diesem Schritt können Sie eine Vorlage hochladen, allerdings heben Sie keinen Einfluss darauf, wo diese Vorlage gespeichert wird. Das geschieht in einem versteckten Ordner namens }_cts. Zur Erleichterung von Zugriff und Bearbeitung ziehe ich es vor, eine zentrale Vorlagenbibliothek zu unterhalten, vor allem in WSS-Implementierungen, sodass ich die Vorlagen für Inhaltstypen verwenden kann, die in anderen Websitesammlungen und auf anderen Servern definiert sind. Der vorige Abschnitt liefert Handreichungen zum Erstellen einer zentralen Vorlagenbibliothek. 6. Klicken Sie auf OK. Konfigurieren einer Bibliothek zur Unterstützung der Inhaltstypen In der Dokumentbibliothek, in der Sie den Inhaltstyp verfügbar haben wollen, öffnen Sie die Einstellungen der Bibliothek, klicken auf den Link Erweiterte Einstellungen und wählen die Option Ja für Verwaltung von Inhaltstypen zulassen im Abschnitt Inhaltstypen. Dann fügen Sie auf der Anpassungsseite der Dokumentbibliothek Siteinhaltstypen zur Bibliothek hinzu. Die Einzelheiten hierzu wurden in Lösung 4.3 vorgestellt. Wenn Sie fertig sind, zeigt die Schaltfläche Neu alle Inhaltstypen, die Sie zu der Bibliothek hinzugefügt haben. Das sehen Sie in Abbildung 4.22. Die Reihenfolge der Inhaltstypen im Schaltflächenmenü Neu wird durch die Anordnung bestimmt, in der sie in den Einstellungen der Dokumentbibliothek aufgeführt werden. Um sie zu ändern, klicken Sie auf den Link Reihenfolge der neuen Schaltflächen und Standardinhaltstyp ändern. Der zuerst aufgeführte Inhaltstyp ist der Standardinhaltstyp der Bibliothek. Er wird verwendet, falls der Benutzer direkt auf die Schaltfläche Neu klickt, anstatt aus dem Dropdownmenü der Schaltfläche auszuwählen. 318 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint Abbildung 4.22 Die Schaltfläche Neu mit mehreren Inhaltstypen Zusammenfassung Damit eine Dokumentbibliothek mehrere Vorlagen anzeigen kann, müssen Sie für jede Vorlage einen damit verknüpften Inhaltstyp erstellen. Die Speicherung der Vorlagen in einer zentralen Bibliothek erleichtert für Vorlagenbearbeiter den Zugriff auf diese Vorlagen sowie ihre Bearbeitung. 4.5 Hinzufügen, Speichern und Hochladen von Dokumenten in einer Dokumentbibliothek Die Lösung im Überblick Typ Verfahren Funktionen und Werkzeuge SharePoint-Dokumentbibliotheken, Microsoft Office-Anwendungen, Windows Explorer, E-Mail Zusammenfassung Sie lernen die Möglichkeiten kennen, eine Dokumentbibliothek zu füllen: über die Webschnittstelle, aus Office-Anwendungen heraus und auch durch E-Mails. Vorteile Benutzer können Dokumente mittels ihnen vertrauter Anwendungen und Schnittstellen zu SharePoint-Bibliotheken hinzufügen, wodurch sich Verwendbarkeit und Akzeptanz der Bibliothek verbessern. Einführung Die Schaltflächen Neu und Hochladen einer Dokumentbibliothek ermöglichen Ihnen, Dokumente hinzuzufügen, was Sie zusätzlich auch bequem mittels einfacher Kopier- und Einfügeoperationen in Windows Explorer, Office-Anwendungen und durch E-Mail-Anhänge erreichen können. Erstellen eines neuen Dokuments mit der Schaltfläche Neu Die Schaltfläche Neu wird angezeigt, wenn Sie die Berechtigung zum Elemente hinzufügen für die Dokumentbibliothek haben und einer der folgenden Punkte zutrifft: Für die Dokumentbibliothek ist (in den erweiterten Einstellungen) eine Vorlage angegeben. Die Dokumentbibliothek hat einen oder mehr Inhaltstypen mit Vorlagen. Die Dokumentbibliothek gestattet (in den erweiterten Einstellungen) die Erstellung neuer Ordner. 4.5 Hinzufügen, Speichern und Hochladen von Dokumenten in einer Dokumentbibliothek 319 Wie wir in den Lösungen 4.3 und 4.4 gesehen haben, können Sie eine Dokumentbibliothek mit mehreren Inhaltstypen einrichten, wobei jeder Inhaltstyp, der eine Vorlage hat, im Schaltflächenmenü Neu wie in Abbildung 4.22 als Neu\<Inhaltstyp> erscheint. Wenn ein Dokument in einer Dokumentbibliothek erstellt wird, so wird die mit der Vorlage verknüpfte Anwendung auf dem Client aufgerufen. Falls diese dem Client nicht zur Verfügung steht, wird eine Fehlermeldung angezeigt. Ist die Anwendung installiert und kompatibel mit WSS 2.0+ (z.B. Office 2003 oder Office 2007), so behält sie die Information bei, dass das Dokument in der Dokumentbibliothek gespeichert werden soll, weshalb bei Auswahl des Befehls Speichern das Dialogfeld auf die Bibliothek als Standardort zum Speichern des Dokuments eingestellt wird. Hochladen von Dokumenten mit den Befehlen unter Hochladen Das Menü Hochladen ist völlig unkompliziert. Es enthält zwei Befehle: Dokument hochladen und Mehrere Dokumente hochladen. Hochladen eines Dokuments Wenn Sie Dokument hochladen auswählen oder direkt auf die Schaltfläche Hochladen klicken, öffnet sich eine Webschnittstelle, von der aus Sie nach dem Dokument suchen können, das Sie hochladen wollen. Wenn eine Dokumentbibliothek mehrere Inhaltstypen enthält, wird der Benutzer aufgefordert, den Inhaltstyp auszuwählen, nachdem ein Dokument hochgeladen wurde. Ebenso wird er gebeten, mit der Bibliothek oder dem Inhaltstyp verknüpfte Eigenschaften (Spalten) zu vervollständigen. Hochladen mehrerer Dokumente Wenn Sie geeignete WSS 2.0+-Clientsoftware installiert haben, z.B. Office 2003 oder Office 2007, steht der Befehl Mehrere Dokumente hochladen zur Verfügung. Mit diesem Befehl können Sie eines oder mehrere Dokumente aus einem einzelnen Ordner Ihres Systems auswählen und zusammen hochladen. Hinweis Sie können den Befehl Mehrere Dokumente hochladen nicht zur Auswahl verschiedener Elemente aus getrennten Ordnern verwenden – er ermöglicht lediglich die Auswahl mehrerer Dokumente aus einem einzelnen Ordner. Achten Sie darauf, Ihre Benutzer über diesen feinen Unterschied zu informieren. Bei der Verwendung von Mehrere Dokumente hochladen wird der Benutzer nicht aufgefordert, den Inhaltstyp auszuwählen oder Dokumenteigenschaften festzulegen. Hinweis Nach Aufnahme der Dokumente in die Bibliothek müssen ihre Eigenschaften wahrscheinlich vervollständigt werden. Darüber hinaus müssen Sie Dokumente mit den korrekten Inhaltstypen verknüpfen, wenn die Bibliothek mehrere Typen umfasst. SharePoint erzwingt die Eingabe erforderlicher Eigenschaften für hochgeladene Dokumente. Lesen Sie dazu in Lösung 4.7 auf Seite 324 wichtige Handreichungen über das Hochladen mehrerer Dokumente. Hochladen bestimmter Inhaltstypen Ein weniger gut bekannter Kunstgriff besteht darin, Benutzern eine Möglichkeit zur Auswahl der Inhaltstypen anzubieten, die sie hochladen wollen. Erreicht wird das dadurch, dass ein Inhaltstyp ohne Vorlagen bereitgestellt wird. Wenn für einen Inhaltstyp in einer Bibliothek keine Vorlage angegeben wurde, ändert sich der Befehl der Schaltfläche Neu wie in Abbildung 4.23 gezeigt auf Eine neue <Inhaltstyp> hochladen. Obwohl der Vorgang mit der Neu- anstelle der Hochladen-Schaltfläche beginnt (sicher eine Eigenart der Benutzerschnittstelle, die Sie Ihren Benutzern verdeutlichen sollten), verläuft der Rest wie 320 Lösungsgruppe 4: Dokumentverwaltung und Zusammenarbeit mit SharePoint beim Hochladen eines Dokuments, außer dass die Benutzer den Inhaltstyp des Dokuments nach dem Hochladen nicht mehr auszuwählen brauchen. Abbildung 4.23 Ein Inhaltstyp ohne Vorlage erscheint als Eine neue <Inhaltstyp> hochladen Hinweis Die Möglichkeit, Benutzern die Option Eine neue <In