Windows 2008/2012/2016 – DFS Replikation wiederherstellen

Wird der Domaincontroller z.B. durch einen Stromausfall unsauber heruntergefahren, kann es passieren dass die DFS-Replikation anschließend nicht mehr korrekt funktioniert. In dem Fall tauchen im Eventlog Fehlermeldungen mit den ID’s: 6012, 1204, 2203 oder 4012 auf, die das bestätigen.
Wenn die Replikation nicht mehr funktioniert, wird das SYSVOL Verzeichnis nicht mit anderen Domain Controllern synchronisiert. Es werden also keine Gruppenrichtlinen oder Startskripte synchronisiert/aktualisiert.
Die Fehlermeldungen im Detail:

Der DFS-Replikationsdienst hat die Replikation für den Ordner unter dem folgenden lokalen Pfad "C:\Windows\SYSVOL\domain" beendet. Dieser Server wurde von anderen Partnern für 218 Tage getrennt. Dadurch wird die im Parameter "MaxOfflineTimeInDays" zulässige Dauer überschritten (60). Aus diesem Grund geht der DFS-Replikationsdienst davon aus, dass diese Daten veraltet sind, und dieser Ordner wird vom Server erst nach Korrektur dieses Fehlers wieder repliziert.
Verwenden Sie zum Fortsetzen der Replikation dieses Ordners das DFS-Verwaltungs-Snap-Ins zum Entfernen dieses Servers aus der Replikationsgruppe, und fügen Sie ihn dann der Gruppe erneut zu. Dadurch führt der Server einen ersten Synchronisierungstask aus, wodurch die veralteten Daten durch aktuelle Daten der Mitglieder der Replikationsgruppe ersetzt werden.
Weitere Informationen:
Fehler: 9061 (Der replizierte Ordner war zu lange offline.)
Name des replizierten Ordners: SYSVOL Share
ID des replizierten Ordners: 02A2AFE0-7636-4311-8224-7870CA231A31
Replikationsgruppenname: Domain System Volume
ID der Replikationsgruppe: D312232D-1934-4F65-9EC8-3A92F9A1ABEF
Mitglieds-ID: F12B1BC5-158F-48F4-9B36-9585C7F8DF46
Vom DFS-Replikationsdienst wurde die Replikation für das Volume "C:" beendet. Dieser Fall tritt ein, wenn eine DFSR-JET-Datenbank nicht ordnungsgemäß heruntergefahren wird und die automatische Wiederherstellung deaktiviert ist. Sichern Sie zum Beheben dieses Problems die Dateien in den betroffenen replizierten Ordnern, und setzen Sie die Replikation anschließend mithilfe der WMI-Methode "ResumeReplication" fort.
Weitere Informationen:
Volume: C:
GUID: 41230C60-D123-11E2-93E8-123E6F6E6123
Wiederherstellungsschritte
1. Sichern Sie die Dateien in allen replizierten Ordnern auf dem Volume. Andernfalls gehen möglicherweise aufgrund einer unerwarteten Konfliktauflösung im Rahmen der Wiederherstellung der replizierten Ordner Daten verloren.
2. Setzen Sie die Replikation für dieses Volume mithilfe der WMI-Methode "ResumeReplication" der DfsrVolumeConfig-Klasse fort. Geben Sie hierzu an einer Eingabeaufforderung mit erhöhten Rechten beispielsweise den folgenden Befehl ein:
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="41230C60-D123-11E2-93E8-123E6F6E6123" call ResumeReplication
Weitere Informationen finden Sie hier: http://support.microsoft.com/kb/2663685.

Als erstes kann man folgende Schritte unternehmen um die Replikation zu überprüfen. In meinem Fall handelt es sich um mehrere Domaincontroller, es geht also um das SYSVOL Verzeichnis. (Quelle: Technet)

For /f %i IN ('dsquery server -o rdn') do @echo %i && @(net view \\%i | find "SYSVOL") & echo


Anschließend kann man sich den Status der DFS Replikation ausgeben lassen:

For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername='SYSVOL share' get replicationgroupname,replicatedfoldername,state

Die Statuscodes haben folgende Bedeutung:

0 = Uninitialized
1 = Initialized
2 = Initial Sync
3 = Auto Recovery
4 = Normal
5 = In Error

[stextbox id=’alert‘]Vorher eine Sicherung des geteilten Ordners machen! Also in meinem Fall: C:\Windows\SYSVOL. Bei der Wiederherstellung kann es vorkommen, dass die Inhalte der Freigabe verloren gehen.[/stextbox]
Nun geht es an die Wiederherstellung der Replikation. Bei mehreren DC’s oder bei neu hinzugefügten DC’s kann es sein, dass das SYSVOL Verzeichnis noch nie synchronisiert wurde und daher leer ist bzw. gar nicht existiert. Daher die folgenden Schritte auf dem „primären“ DC ausführen, von dem aus der Sync erfolgen soll.
Schritt 1: Replikation fortsetzen
Aus der 2. Fehlermeldung von oben ergibt sich, dass die Replikation gestoppt ist. Diese müssen wir wieder fortsetzen. Der passende Befehl dazu findet sich zum Glück direkt im Eventlog.

wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="41230C60-D123-11E2-93E8-123E6F6E6123" call ResumeReplication

Im Eventlog finden sich jetzt weitere Einträge, dass die Replikation zwar fortgesetzt wird – jedoch nicht funktioniert, da der Partner immer noch zulange offline war.
Schritt 2: MaxOfflineTimeInDays hochsetzen
Die Lifetime also den Wert „MaxOfflineTimeinDays“ können wir mit folgenden Befehl für alle DC’s überprüfen:

For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path DfsrMachineConfig get MaxOfflineTimeInDays

Dieser wird jetzt auf eine Anzahl Tage gesetzt die höher ist, als die im Eventlog vermerkte Anzahl. In meinem Fall wäre das dann 220. Der Befehl muss auf allen DC’s mit dem Fehler ausgeführt werden.

wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=220

Damit die Änderung des Wertes greift muss jeweils noch der Dienst „DFS Replication“ (DFSR) neugestartet werden.

net stop DFSR && net start DFSR

Ab jetzt sollte die Replikation wieder korrekt durchlaufen. Dies kann man über das Eventlog weiter verfolgen.

Schritt 3: MaxOfflineTimeInDays  – back to default
Wenn die Replikation abgeschlossen wurde sollte der Wert „MaxOfflineTimeInDays“ – wie in Schritt 2 – wieder auf den Standard von 60 Tagen zurückgesetzt werden.

Windows 8 – Profilbild via CMD setzen

Ich beschrieb ja schon, wie man Benutzerbilder ins AD bekommt. Nun gibt’s wieder etwas neues. Wie wird das AD-Bild in Windows 8 angezeigt ?
Normalerweise kann man das Profilbild so setzen:

Windows/PC-Einstellungen -> Anpassen -> Profilbild

Macht man es so, wird das Profilbild in 5 verschiedenen Größen in folgendem Ordner gespeichert. (Achtung: Versteckte Dateien)

C:\Users\Public\AccountPictures\S-1-5-21-141383358-124726640-2919435464-1237 (eigene USER-SID)

Ich habe noch keinen Weg gefunden die Dateien von Hand zu löschen, oder auszutauschen.
Profilbild von Hand setzen:
Einfach das Bild von Hand in den 5 verschiedenen Größen in den Ordner:

C:\Users\Public\AccountPictures\----EIGENE SID----

kopieren. Eure SID bekommt ihr via Powershell heraus:

[System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value

Bildernamen und Größen:

Image40.jpg -->  40x40px
Image96.jpg --> 96x96px
Image200.jpg --> 200x200px
Image240.jpg --> 240x240px
Image448.jpg --> 448x448px

Folgendes Powershell-Skript erstellt euch den passenden Ordner (mit SID): 

# Get Current User SID
$sid = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value
# Create Folder
if (Test-Path ($env:PUBLIC\AccountPictures\$sid)) -eq $FALSE) {
$(mkdir $env:PUBLIC\AccountPictures\$sid).Attributes = 'Hidden'
}

Das Profilbild wird aber erst neu geladen, wenn man z.B. den PC sperrt, oder neu anmeldet. Wie man direkt das Metro Menü neu laden kann, habe ich  noch nicht herausgefunden.
Weitere nützliche Ordner:

Default Account Picture:
C:\ProgramData\Microsoft\User Account Pictures
Lockscreen
C:\Windows\Web\Screen
C:\ProgramData\Microsoft\Windows\SystemData\S-1-5-18\ReadOnly\LockScreen_Z
C:\Windows\WinSxS\long_random_file_name
C:\Users\Username\AppData\Roaming\Microsoft\Windows\LockScreen_Z
C:\Users\Public\AccountPictures

Jetzt fehlt erst einmal nur noch der Mechanismus, der das Foto aus dem Active-Directory ausliest und als .jpg abspeichert. Das kommt dann später. Eventuell gibt es auch noch einen anderen, besseren weg. (Wie z.B. über die neue API von Microsoft. Der Code für Windows 7 findet ihr hier.)

Active Directory etwas persönlicher -> Mit Fotos

Sofern man schon Office 2010 im Einsatz hat, findet man im Outlook und an anderen Stellen immer ein leeres Kontakt-Bild.

Um das aufzupeppen und es etwas persönlicher zu gesalten, kann man nun für jeden AD-User ein Foto hinterlegen.
Schlussendlich sieht es dann so aus:

Was benötigen wir dafür?
Angefanen damit, wird das Bild in den Benutzer-Attributen „thumbnail“ und „jpegPhoto“ abgespeichert. Die Bilder sollten nicht größer als 10kb sein. (Rechnet man mit 1000 Usern: 1000*10KB  werden im Globalen Katalog ca. 10 MB belegt.)
Es gibt 2 Wege das Bild ins AD zu bekommen: 1) Via GUI 2) per Powershell / Console
Für das Bearbeiten von mehreren Benutzern gleichzeitig würde ich die Powershell empfehlen. Ich habe mir folgendes Skript geschrieben, welches Bilder in einem Ordner sucht (Namensgebung: SamAccountName.jpg) und die Bilder ihren Benutzern zuordnet. Beachten, dass muss man für thumbnailPhoto und jpegPhoto machen.

$dir = Get-ChildItem C:\IT\picture\bilder
$list = $Dir | where {$_.extension -eq ".jpg"}
foreach ($file in $list)
{
$username = $file.basename
$photo = [byte[]](Get-Content $file -Encoding byte)
Set-ADUser $file.basename -Replace @{thumbnailPhoto=$photo}
}

 

Hat man nun erstmal alle Bilder drinnen, kann man später vereinzelte User noch per GUI bearbeiten. Dafür gibt es ein super Active-Directory Snapin.
Download:ADPhoto
 
 
 
 
 
 
 
 
 
Wie bekommt man jetzt seine Windows 7 Clients dazu automatisch das Profilbild des Users anzuzeigen? Da ich hier nichts einfach kopieren möchte – schaut euch dieses Howto an.