Microsoft bietet seit Windows Server 2003 die Möglichkeit jedem Benutzer ein Bild im Active Directory hinzuzufügen (das sogenannte Thumbnail-Photo). Doch erst mit der Einführung von Office 2010 haben die ersten Anwendungen davon profitiert. Leider kann unter Windows 8/8.1 nicht das gleiche Verfahren wie in Office genutzt werden, um das Bild bereitzustellen.
Es bestehen zwei Möglichkeiten um dieses Thumbnail-Photo automatisch für jeden Benutzer in Windows 8/8.1 Clients zu setzen. Nachstehend möchte ich kurz die beiden Varianten und die Umsetzung erläutern.
Wie funktionieren diese Tools
Bei jeder Anmeldung eines Benutzers wird im entsprechenden Benutzerobjekt geprüft, ob Bildinformationen hinterlegt sind. Sollte dies der Fall sein, wird das Bild in fünf verschiedenen Auflösungen in einen Zielpfad gespeichert. Außerdem wird in der Registry unter der SID des Benutzers der Pfad zur Bilddatei für jede der fünf Bildgrößen hinterlegt. Wie bei vielen benutzerspezifischen Anpassungen, kann Windows das nicht nach der ersten Anmeldung umsetzen. Es sind zwei Anmeldungen des Benutzers nötig.
Der Ablauf beider Tools:
- Erste Anmeldung: Starten des Tools (Bilder kopieren und Registrywerte setzen)
- Zweite Anmeldung: Darstellen des Bildes
Variante 1 – Ein VB.net Snippet
Das Tool ist ein kleines VB.net Programm, welches kostenfrei heruntergeladen werden kann. Download
Schritt 1
Herunterladen und Bereitstellen der Anwendung UserTile8.exe in einem Ordner auf den jeder Zugriff hat. Das kann der Fileserver sein oder auch das Sysvol-Verzeichnis der Domäne, auf dem jeder Zugriff hat, aber keine löschen kann.
Schritt 2
Erstellen und konfigurieren einer Gruppenrichtlinie, die nur auf Windows 8/8.1 Clients wirkt.
Wenn es noch keine geeignete Richtlinie gibt, dann erstellen Sie eine neue mit dem geeigneten WMI Filter.
SELECT * FROM Win32_OperatingSystem WHERE (Version LIKE "6.2%" or Version LIKE "6.3%") AND ProductType = 1
Als nächstes muss die Richtlinie editiert werden. Dazu in den Bereich Computerkonfiguration | Richtlinien | WindowsEinstellungen | Sicherheitseinstellungen | Registrierung wechseln und bearbeiten. Geben Sie den Domänenbenutzern Vollzugriff auf den Schlüssel und Untergeordnete unter
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAccountPictureUsers
Aktivieren Sie Vorhandene Berechtigungen für alle Unterschlüssel mit vererbbaren Berechtigungen ersetzen.
Es ist auch möglich nur die Berechtigung ändern zu vergeben. Dies erfordert allerdings etwas mehr Klickerei.
Schritt 3
Der Autor erstellt in seinem Beispiel einen geplanten Task. Ich habe einen anderen Weg gewählt: Über die Registry habe ich das kleine Programm in den Autostart jedes Benutzers gelegt und dazu unter Benutzerkonfiguration | Einstellungen | Windows-Einstellungen | Registrierung eine Eintrag erzeugt der unter
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
das Programm ausführt.
Das waren die Einstellungen in der Gruppenrichtlinie. Nun kann diese mit einer Test-OU verknüpft werden.
Da in diesem Beispiel Benutzer und Computereinstellungen in einer OU vorgenommen werden, muss diese Richtlinie in der Computer-OU und Benutzer-OU verknüpft werden. Für diese beiden Einstellungen kann natürlich auch jeweils eine separate Richtlinie erstellt werden.
Den Zielpfad habe ich von
C:ProgramDataAccountPictures
nach
C:Users<username>AppDataLocalAccountPictures
geändert. Dies kann selbstständig geändert werden, da der Autor den Quellcode zur Verfügung stellt. Quelle: Blogbeitrag von Jimmy Mathew
Variante 2 – VB.net Snippet + PowerShell
Die zweite Variante beruht auf dem Tool aus Variante 1, wurde aber mit Powershell umgesetzt. Das dürfte der Grund sein, dass sich Variante 2 größere Beliebtheit erfreut. Da hier die Anpassungen am Zielepfad leichter umzusetzen sind. Download
Schritt 1 und 2 werden aus Variante 1 übernommen.
Schritt 3
Das PowerShell-Script kann nun als Anmeldeskript für Benutzer über eine Gruppenrichtlinie verteilt werden. Wenn der Zielpfad der Benutzerbilder geändert werden soll, dann ist das in Zeile 25 zu machen. Je nach gewünschtem Speicherort die Umgebungsvariale zu ändern. Als Beispiel hier 3 Vorschläge.
$image_base = $env:public + "AccountPictures" - C:UsersPublic $image_base = $env:Appdata + "AccountPictures" - C:Users<username>AppDataRoaming $image_base = $env:LocalAppdata + "AccountPictures" - C:Users<username>AppDataLocal
Quelle: Blogbeitrag von Jourdan Templeton
Fazit
Beide Varianten schließen den Kreis zwischen den Möglichkeiten des Active Directorys und Windows 8/8.1. Wobei Variante 2 sicher mehr Anklang finden wird, da die PowerShell vermutlich einfache zu verstehen ist als Programmcode in Visual Studio.
Der Link zu der VB.net Snippet Datei ist leider offline. Im Internet finde ich auch nichts.