Die Konfiguration von Server und Client für BranchCache Hosted Caching ist im Windows TechCenter im ‘Early Adopter’s Guide’ beschrieben. Es sind nur wenige Schritte durchzuführen, aber bezüglich der Einstellungen der Gruppenrichtlinie für die Client-Konfiguration ist ein sehr wichtiger Punkt zu beachten, der ansonsten die Server-Konfiguration fehlschlagen läßt.

Die übliche Konfiguration für BranchCache ist, das Distributed Caching (also das Caching auf den Clients selbst) für das gesamte Unternehmen zu aktivieren, unabhängig von der physikalischen Lokation des Endgeräts. Da bei der Suche nach einem Cache ein IPv6-Broadcast benutzt wird, bekommt der Client ohnehin keine Daten aus Caches in anderen physikalischen Lokationen angeboten. Um das Caching in LAN-Szenarien zu vermeiden, in denen die Kommunikation mit dem Server meist schneller ist als mit einem Client im gleichen Subnet (schnellere Festplatten, schnelleres Netzwerk), stellt man einfach in der Gruppenrichtlinie für Distributed Caching einen Schwellwert für die Latenz ein, ab der BranchCache aktiviert wird.

Im Gegensatz dazu ist Hosted Caching an physikalische Lokationen gebunden, denn in der Gruppenrichtlinie wird der Name eines bestimmten Hosted Cache-Servers angegeben. Das ist aber gar kein Problem, denn Sie haben ja Ihre IP-Subnets vollständig und korrekt in den AD-Sites gepflegt. Also richten Sie jeweils eine eigene Gruppenrichtlinie pro physikalischer Lokation (Zweigstelle) ein, in der Sie Hosted Caching benutzen möchten.

Jetzt fragen Sie sich wahrscheinlich: “Womit hat er den nun ein Problem???” Nun, die Antwort ergibt sich, wenn Sie die Gruppenrichtlinie für die Active Directory Site anwenden und danach auf dem Hosted Cache-Server den Cache konfigurieren wollen. Auf den Befehl ‘netSh BranchCache set service mode=HOSTEDSERVER’ (den habe ich in einem früheren Artikel auf meinem Blog beschrieben) bekommen Sie nämlich die Fehlermeldung, diese Einstellung könne nicht verändert werden, da sie per Gruppenrichtlinie festgelegt sei. Ich gebe zu, ich habe schon ein paar Minuten gebraucht, bis mir klar wurde, daß der Server ja in der gleichen Site steht und daher die Gruppenhrichtlinie für die Clients ebenfalls anwendet …

Die Gruppenrichtlinie muß also so angewendet werden, daß nur Clients sie übernehmen. Das geht z.B. mit Hilfe einer Sicherheits-Gruppe, in der nur Clients enthalten sind. Wesentlich einfacher ist jedoch ein WMI-Filter. Wie man den einrichtet, ist auf Technet beschrieben: ‘Create WMI Filters for the GPO’. Fehlt nur noch die richtige WMI-Abfrage. WMI-Filter funktionieren so, daß eine Gruppenrichtlinie nur angewendet wird, wenn die Abfrage insgesamt den Wert ‘True’ ergibt. Will man nur zwischen Server und Client unterscheiden, dann genügt eine Abfrage nach dem ‘ProductType’:

SELECT * FROM Win32_OperatingSystem WHERE ProductType = ‘1’

‘1’ bedeutet ‘Workstation’, der Filter sorgt also dafür, daß der Server die Gruppenrichtlinie nicht anwendet.

Zwei Dinge sind wichtig:

  • Der Namensraum für die WMI-Abfrage muß ‘root\CIMv2’ sein.
  • Der Wert ‘1’ muß in einfachen Hochkommas stehen. In manchen Dokumentationen sind doppelte Hochkommas (“1”) wiedergegeben, damit funktioniert die Abfrage jedoch nicht!

Auf ähnliche Weise kann man natürlich auch nach bestimmten Betriebssystem-Versionen, installierten Service Packs usw. filtern. Informationen hierzu finden Sie z.B. im Active Directory-Blog.

Mit freundlichen Grüßen!

 

Ralf M. Schnell