# Windows Server allgemein

# Installation/migration/upgrade

# Download links

Beschreibung:  
  
Downloadlinks der Server ISOs von der MS Seite

[MS Developer Center](https://www.microsoft.com/en-us/evalcenter/download-windows-server-2025)

Achtung in den links de-de und de einfügen denn da steht noch en-us und us drin.

# Aktiverung Lizenzen Server 2025

### Beschreibung:

Lizenzkey über die Powersehll installieren wenn von Produktlizenzen und Co kommen.  
Danach gibts noch Fehler bei Aktivierung, einfach auf Problembehandlung klicken.

### Durchführung:

Nach der Installation von Windows Server 2025 aktivieren der einzigartigen Lizenz  
Öffne dazu die Eingabeaufforderung (CMD) mit Administratorrechten und führe folgenden Befehl aus (ersetze XXXX durch deine Lizenz).

**Datacenter:**  
Dism /online /Set-Edition:ServerDatacenter /AcceptEula /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

**Standard:**  
Dism /online /Set-Edition:ServerStandard /AcceptEula /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX  
  
Sollte es mal nicht sofort gehen und da steht nicht Aktiviert, einfach neustarten der aktiviert von selbst, sollte das nicht gehen und man klickt auf Jetzt Aktivieren

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/ZT3fcFS9i2XZf5aQ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/ZT3fcFS9i2XZf5aQ-image.png)

und bekommt ein Fehler,

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/Hmkod10o1sIF1y8R-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/Hmkod10o1sIF1y8R-image.png)

dann auf Problembehandlung klicken.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/4HaWbWjXneNdku37-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/4HaWbWjXneNdku37-image.png)

  
Dann versucht er nochmals zu aktivieren und das klappt dann in der Regel.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/YOI0Eo0XNWTaQj7T-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/YOI0Eo0XNWTaQj7T-image.png)

# Zusätzlicher Domänen Controller einrichten

### Beschreibung:

Es gibt Situtationen, da möchte man einen alten Domänencontroller ersetzen oder einfach nur für die Sicherheit einen zweiten Domänencontroller haben.  
Dies ist mittlerweile sehr einfach. Denn das PDC (PrimaryDomainController) und BDC (BackupDomainController) gibt es Gott sei dank  
schon lange nicht mehr.  
Beides sind Master Master und replizieren sich gegenseitig. So können Benutzer und andere Änderungen vorgenommen werden, auf egal welchem der beiden. Es wir immer Synchronisiert.

### Vorrausetzungen:

Der alte Server sollte die Mindest Forest Domain Version des neues Domain Controller haben.  
Beispiel bei Server 2025 darf der Vorhandene Domain Controller nicht kleiner als Server 2016 sein.  
Es gibt unter Umständen die Fehlermeldung das es kein 2016 ist, obwohl er es ist.  
Das liegt daran, das bei jedem Update vergessen wurde den Domänencontroller hochzustufen.  
Der Server ist zwar 2016 aber der Dömencontroller immer noch als Beispiel 2008, weil das einfach vergessen wurde.  
Kann man aber fix nachholen, kein Beinbruch. Dazu aber später

Das war auch schon alles an Vorrausetzungen.

Durchführung:

1. Server installieren feste IP geben und dann in die Vorhandene Domäne einfach erstmal auf nehmen
2. Dann über den Server Manager die Rolle Active Directory Domänendienste -&gt;   
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/xECelYDCrhd2dkde-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/xECelYDCrhd2dkde-image.png)  
    Wenn die Rolle installiert ist, dann neustart und dann über die Flagge den Domain Controller konfigurieren.
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/hqZ6Qxgg5iIADBLM-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/hqZ6Qxgg5iIADBLM-image.png)
    
    Nun Domäne zu einer vorhandenen Domäne hinzufügen anklicken. Den Adiminstrator das Kennwort und die Domäne mit Endung angeben (in der Regel .local)  
    Sollte dieser Fehler auftauchen was meistens der fall ist, deshalb hab ich die Meldung mit abfotografiert.  
    Dann liegt es daran, das der alte Server noch auf einer älteren Struktur als 2016 läuft. Hat nichts damit zu tun.  
    das der Server an sich schon 2016 ist.  
    Die Active Directory Struktur wurde aber nie aktualisiert. Muss man sich vorstellen ich aktualisiere ein Programm, aber die Datenbankstruktur wird nicht aktualisiert  
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/PDZw7GeLkqUeNV8W-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/PDZw7GeLkqUeNV8W-image.png)
    
      
    Mit ein paar Befehlen bekommen wir raus, ob alles vorhanden ist und welche Version wir haben.  
    Erstmal Freigaben Checken, läuft auf dem bestehenden/alten Server DC überhaupt ein Domaincontroller.  
    Und den Replikationsdienst überprüfen, der kopiert ja die Daten auf den neuen DC  
    Dazu führen wir ein Powershell als Admin auf dem bestehenden/alten DC Server aus  
    ```
    # DFSR Status prüfen
    dfsrdiag pollad
    repadmin /replsummary
    
    # SYSVOL-Freigabe vorhanden?
    net share | findstr SYSVOL
    ```
    
    Ausgabe:
    
    ```
    Windows PowerShell
    Copyright (C) 2016 Microsoft Corporation. Alle Rechte vorbehalten.
    
    PS C:\Users\administrator> # DFSR Status prüfen
    PS C:\Users\administrator> dfsrdiag pollad
    
    Vorgang erfolgreich
    
    PS C:\Users\administrator> repadmin /replsummary
    Startzeit der Replikationszusammenfassung: 2025-12-05 15:41:46
    
    Datensammlung für Replikationszusammenfassung wird gestartet.
    Dieser Vorgang kann einige Zeit dauern.
      ....
    
    
    Quell-DSA          Größtes Delta    Fehler/gesamt %%  Fehler
    
    
    Ziel-DSA           Größtes Delta    Fehler/gesamt %%  Fehler
    
    PS C:\Users\administrator> # SYSVOL-Freigabe vorhanden?
    PS C:\Users\administrator> net share | findstr SYSVOL
    NETLOGON     C:\Windows\SYSVOL\sysvol\<domainname>.local\SCRIPTS
    SYSVOL       C:\Windows\SYSVOL\sysvol        Ressource f?r Anmeldeserver
    ```
    
    Da das alles in Ordnung ist, checken wir jetzt die Version vom DC
    
    ```
    Get-ADForest | Select-Object ForestMode
    Get-ADDomain | Select-Object DomainMode
    ```
    
      
    Ausgabe, wie wir sehen, sogar noch 2008R2 Version:
    
    ```
    PS C:\Users\administrator> Get-ADForest | Select-Object ForestMode
    
             ForestMode
             ----------
    Windows2008R2Forest
    
    
    PS C:\Users\administrator> Get-ADDomain | Select-Object DomainMode
    
             DomainMode
             ----------
    Windows2008R2Domain
    
    
    
    ```
    
    Aber kein Ding, diese Stufen wir einfach auf 2016 hoch.Dazu einfach die fragen mit ja beantworten
    
    ```
    # Erst Domäne anheben
    Set-ADDomainMode -Identity "<domainname>.local" -DomainMode Windows2016Domain
    #Dann den Forest anheben
    Set-ADForestMode -Identity "<domainname>.local" -ForestMode Windows2016Forest
    ```
    
    Ausgabe:
    
    ```
    PS C:\Users\administrator> # Erst Domäne anheben
    PS C:\Users\administrator> Set-ADDomainMode -Identity "<domainname>.local" -DomainMode Windows2016Domain
    
    Bestätigung
    Möchten Sie diese Aktion wirklich ausführen?
    Ausführen des Vorgangs "Set" für das Ziel "DC=<domainname>,DC=local".
    [J] Ja  [A] Ja, alle  [N] Nein  [K] Nein, keine  [H] Anhalten  [?] Hilfe (Standard ist "J"): j
    PS C:\Users\administrator>
    PS C:\Users\administrator> # Dann Forest anheben
    PS C:\Users\administrator> Set-ADForestMode -Identity "<domainname>.local" -ForestMode Windows2016Forest
    
    Bestätigung
    Möchten Sie diese Aktion wirklich ausführen?
    Ausführen des Vorgangs "Set" für das Ziel "CN=Partitions,CN=Configuration,DC=<domainname>,DC=local".
    [J] Ja  [A] Ja, alle  [N] Nein  [K] Nein, keine  [H] Anhalten  [?] Hilfe (Standard ist "J"): j
    
    
    
    ```
    
    Nun nochmals überprüfen obs geklappt hat
    
    ```
    Get-ADForest | Select-Object ForestMode
    Get-ADDomain | Select-Object DomainMode
    ```
    
    Ausgabe, wie wir sehen, endlich 2016
    
    ```
    PS C:\Users\administrator> Get-ADForest | Select-Object ForestMode
    
           ForestMode
           ----------
    Windows2016Forest
    
    
    PS C:\Users\administrator> Get-ADDomain | Select-Object DomainMode
    
           DomainMode
           ----------
    Windows2016Domain
    
    ```
    
    nun können wir auf dem neuen/weiteren DC auf weiter klicken zbd die fehlermeldung ist weg.  
    Und alle Objekte werden repliziert. Nach einem neustart haben wir MASTER &lt;-&gt; MASTER DC

### Alten DC entfernen:

Wenn man möchte und den alten DC los werden will, müssen wir den neuen als Primären machen:  
Dazu auf den neuem DC eine Powershell als Admin öffnen

1. FSMO-Rollen auf den neuen übertragen:  
    (DC01 durch den Namen deines neuen Servers ersetzen)  
    ```
    Move-ADDirectoryServerOperationMasterRole -Identity "DC01" -OperationMasterRole SchemaMaster,DomainNamingMaster,PDCEmulator,RIDMaster,InfrastructureMaster
    ```
    
    Prüfen obs geklappt hat.
    
    ```
    PS C:\Users\administrator> netdom query fsmo
    Schemamaster               DC01.e<domainname>.local
    Domänennamen-Master        DC01.e<domainname>.local
    PDC                         DC01.e<domainname>.local
    RID-Pool-Manager            DC01.e<domainname>.local
    Infrastrukturmaster       DC01.e<domainname>.local
    Der Befehl wurde ausgeführt.
    ```
2. **NS umstellen** – überall wo der alte DC als DNS eingetragen ist (DHCP-Scope, Router, Drucker, Geräte mit statischer IP) auf den neuen zeigen lassen.
3. **Alten DC sauber demoten** (nicht einfach ausschalten!):  
    Erst nach dem Demote kannst du ihn abschalten. Wenn du ihn einfach ausknipst ohne Demote, hast du Leichen im AD und musst manuell aufräumen – das willst du nicht.  
      
    WICHTIG!!!!!! Auf dem alten DC Server eine Powershell als Admin öffnen  
    ```
    Uninstall-ADDSDomainController -DemoteOperationMasterRole:$true -RemoveApplicationPartitions:$true
    ```

# MS FSLogix-Profile

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**1. Was ist FSLogix *Profilmanagement für Windows-Umgebungen*?**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">FSLogix ist eine Microsoft-Lösung, die Benutzerprofile in virtuelle Festplatten (VHDX) auslagert. Beim Login wird der Container gemountet – das Profil ist sofort vollständig verfügbar, unabhängig vom Server. Dadurch werden Anmeldezeiten drastisch verkürzt und Serverumzüge zum Kinderspiel.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**1.1 Hauptfunktionen**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Profile Container: Komplettes Benutzerprofil in einer VHDX-Datei</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Office Container: Separater Container für Outlook-Cache, Teams, OneDrive</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Application Masking: Anwendungen pro Benutzer/Gruppe ein-/ausblenden</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Java Version Control: Verschiedene Java-Versionen pro Anwendung</span></span>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**2. Vorteile und Nachteile**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**2.1 Vorteile**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-vorteil-beschreibung" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Vorteil**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Beschreibung**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Schnelle Anmeldung</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Profil wird gemountet statt kopiert – Login in Sekunden statt Minuten</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Serverunabhängigkeit</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">User kann sich an beliebigem Server anmelden, Profil folgt automatisch</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Einfache Migration</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Serverwechsel ohne Profilmigration – Container bleibt gleich</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Vollständiges Profil</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Im Gegensatz zu Roaming Profiles wird ALLES gespeichert</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Outlook-Performance</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">OST-Datei bleibt erhalten, kein Neuaufbau bei jedem Login</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Einfaches Backup</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Eine VHDX-Datei pro User = einfache Sicherung</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Dynamische Größe</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX wächst nur bei Bedarf, belegt nicht sofort Maximalgröße</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**2.2 Nachteile**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-nachteil-beschreibun" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Nachteil**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Beschreibung**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Single-Session</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Standardmäßig nur eine gleichzeitige Anmeldung pro User</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Storage-Abhängigkeit</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Netzwerkfreigabe muss hochverfügbar und performant sein</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Keine echte Synchronisation</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Bei gleichzeitiger Anmeldung an zwei Geräten keine Zusammenführung (letze Abmeldung gewinnt)</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX-Verwaltung</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Monitoring für Füllstand erforderlich (siehe Kapitel 6)</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Lizenzierung</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nicht für alle Szenarien kostenlos (siehe Kapitel 3)</span></span>

</td></tr></tbody></table>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**3. Lizenzierung und Kosten**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**3.1 Kostenlos enthalten bei**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-lizenz%2Fprodukt-anmer" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Lizenz/Produkt**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Anmerkung**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">RDS-CALs</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Remote Desktop Services – der klassische Terminalserver</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VDA-Lizenzen</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Virtual Desktop Access für VDI-Umgebungen</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Microsoft 365 E3/E5</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enterprise-Pläne</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Microsoft 365 A3/A5</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Education-Pläne</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Microsoft 365 Business Premium</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Für KMU mit bis zu 300 Usern</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Windows 10/11 Enterprise</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Per User oder Device</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Windows 10/11 Education</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Bildungseinrichtungen</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**3.2 Nicht kostenlos / Nicht lizenziert**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-szenario-status-wind" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Szenario**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Status**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Windows Pro ohne M365</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nicht lizenziert – auch nicht für Domänen-Clients</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Standalone-PCs ohne Domäne/Azure AD</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nicht offiziell unterstützt</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Reine File-Server-Nutzung</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nicht lizenziert</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**3.3 Wo erwerben?**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">FSLogix selbst ist kostenlos – du benötigst lediglich eine der oben genannten Lizenzen. Der Download erfolgt direkt bei Microsoft:</span></span>

[<span style="color: #0563c1;"><span style="font-family: Arial, serif;"><span style="font-size: small;">https://aka.ms/fslogix-latest</span></span></span>](https://aka.ms/fslogix-latest)

<table cellpadding="7" cellspacing="0" id="bkmrk-hinweis-f%C3%BCr-server-%2B" width="100%"><colgroup><col width="256*"></col> </colgroup><tbody><tr><td bgcolor="#e2f0d9" valign="top" width="100%"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Hinweis für Server + Clients:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">Wenn du normale Server mit Clients (nicht RDS) betreibst und keine M365 Business Premium oder Enterprise-Lizenzen hast, ist FSLogix nicht lizenziert. Alternative: Microsoft 365 Business Premium enthält FSLogix-Rechte.</span></span>

</td></tr></tbody></table>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**4. Szenarien und gleichzeitige Anmeldung**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**4.1 Terminalserver (RDS) – Einzelner Server**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Bei einem einzelnen Terminalserver gibt es keine Probleme mit Doppel-Anmeldungen. Windows lässt standardmäßig nur eine Session pro User zu. Meldet sich ein User erneut an, landet er in seiner bestehenden Session.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**4.2 Terminalserver-Farm (mehrere Server)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Bei mehreren Terminalservern muss verhindert werden, dass ein User sich parallel an verschiedenen Servern anmeldet. Das regelt der RD-Verbindungsbroker (Connection Broker):</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Der Broker merkt sich, wo jeder User angemeldet ist</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Bei erneuter Verbindung wird der User zu seinem bestehenden Server geleitet</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Zusätzlich per GPO absichern:</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">*Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Remotedesktopdienste → Remotedesktop-Sitzungshost → Verbindungen:*</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Remotedesktopbenutzer auf eine Sitzung beschraenken -&gt; Aktiviert**</span></span>

<table cellpadding="7" cellspacing="0" id="bkmrk-wichtig%3A-fslogix-sel" width="100%"><colgroup><col width="256*"></col> </colgroup><tbody><tr><td bgcolor="#d6e3f8" valign="top" width="100%"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Wichtig:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">FSLogix selbst regelt KEINE Sessions – das ist Aufgabe von Windows/RDS. FSLogix kümmert sich nur um das Profil.</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**4.3 Normale Server mit Clients (kein RDS)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Hier gibt es keinen zentralen Broker. Wenn ein User sich an PC-A anmeldet und dann an PC-B:</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">FSLogix Standard-Modus: Der erste Rechner hat den Container exklusiv. Am zweiten Rechner wird ein temporäres lokales Profil erstellt – Änderungen gehen verloren.</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Read-Only Modus (ProfileType=3): Beide können gleichzeitig arbeiten, aber Änderungen werden nicht zurückgeschrieben.</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Für echtes gleichzeitiges Arbeiten mit Synchronisation ist FSLogix nicht gedacht. Hierfür eignet sich eher:**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Klassische Ordnerumleitung auf Netzlaufwerk</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">OneDrive Known Folder Move</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Kombination aus beidem</span></span>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**5. Installation und Konfiguration**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.1 Voraussetzungen**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Windows Server 2016 oder neuer / Windows 10/11</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Dateifreigabe für Profile (SMB)</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Ausreichend Storage (ca. 5-30 GB pro User, dynamisch)</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Hyper-V-Rolle oder integrierte VHD-Unterstützung</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.2 Schritt 1: Freigabe vorbereiten**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Erstelle eine Freigabe auf deinem Fileserver, z.B.:</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">\\\\fileserver\\FSLogix\\Profiles  
  
Man kann auch gleich auf Profiles den Namen legen, wenn man möchte ;-)</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**NTFS-Berechtigungen:**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-benutzer%2Fgruppe-bere" width="100%"><colgroup><col width="85*"></col> <col width="85*"></col> <col width="85*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Benutzer/Gruppe**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Berechtigung**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Anwenden auf**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">SYSTEM</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Vollzugriff</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Diesen Ordner, Unterordner und Dateien</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Domain Admins</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Vollzugriff</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Diesen Ordner, Unterordner und Dateien</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Domain Users</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Ändern</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nur diesen Ordner</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Creator Owner</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Vollzugriff</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nur Unterordner und Dateien</span></span>

</td></tr></tbody></table>

Beispiel Screenshot:

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/U3yT19er3O98Ng2e-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/U3yT19er3O98Ng2e-image.png)

<span style="font-family: Arial, serif;"><span style="font-size: small;">*Freigabeberechtigungen: Jeder → Vollzugriff (NTFS regelt den Rest)*</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.3 Schritt 2: FSLogix Agent installieren**</span></span>

[<span style="color: #0563c1;"><span style="font-family: Arial, serif;"><span style="font-size: small;">https://aka.ms/fslogix-latest</span></span></span>](https://aka.ms/fslogix-latest)

<span style="font-family: Arial, serif;"><span style="font-size: small;">Auf dem Terminalserver/Remotedesktop Client die Datei FSLogixAppsSetup.exe ausführen. Standard-Installation reicht aus.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.4 Schritt 3: Konfiguration per Registry (Ich würde aber Schritt 5.5 per GPO bevorzugen)  
wurde gelöscht, GPO ist einfacher, deswegen bei 5.5 weiter machen.**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.5 Konfiguration per GPO (Alternative zur Registry empfohlen)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Statt der Registry-Konfiguration kannst du FSLogix auch zentral per Gruppenrichtlinie steuern. Das ist besonders bei mehreren Servern praktisch.</span></span>

### <span style="font-family: Arial, serif;"><span style="font-size: small;">**GPO-Vorlagen installieren**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Die ADMX-Vorlagen liegen nach der FSLogix-Installation unter:</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">C:\\Program Files\\FSLogix\\Apps\\fslogix.admx</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">C:\\Program Files\\FSLogix\\Apps\\fslogix.adml</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Kopiere die Dateien in den Central Store (falls vorhanden) oder lokal:**</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">\# Central Store (empfohlen, denn bei mehren DCs wirds automatisch Synchroniert)</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">\\\\domain.local\\SYSVOL\\domain.local\\Policies\\PolicyDefinitions\\fslogix.admx</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">\\\\domain.local\\SYSVOL\\domain.local\\Policies\\PolicyDefinitions\\de-DE\\fslogix.adml</span></span>

Falls die Verzeichnisse nicht bestehen manuell anlegen

```
Einfach den Ordner manuell erstellen:
\\domain.local\SYSVOL\domain.local\Policies\PolicyDefinitions
Dann noch den Sprachordner:
\\domain.local\SYSVOL\domain.local\Policies\PolicyDefinitions\de-DE
```

### <span style="font-family: Arial, serif;"><span style="font-size: small;">**<span style="font-family: Consolas, serif;">Oder lokal auf dem DC (Ich würde Central Store bevorzugen siehe oben)</span>**</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">C:\\Windows\\PolicyDefinitions\\fslogix.admx</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">C:\\Windows\\PolicyDefinitions\\de-DE\\fslogix.adml</span></span>

### <span style="font-family: Arial, serif;"><span style="font-size: small;">Nachdem die Dateien kopiert sind (lokal oder Central Store) GPO erstellen und verknuepfen</span></span>

1. <span style="font-family: Arial, serif;"><span style="font-size: small;">Group Policy Management oeffnen (nicht gpedit.msc, das ist lokal, nicht Domänenbezogen)  
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/fY38kmyYmpwPetVJ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/fY38kmyYmpwPetVJ-image.png)
    
    <span style="font-family: Arial, serif;"><span style="font-size: small;">  
    </span></span>
2. <span style="font-family: Arial, serif;"><span style="font-size: small;">Neue GPO erstellen, z.B. "FSLogix Profile Container"  
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/TtzmDDu3RBeTXVqo-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/TtzmDDu3RBeTXVqo-image.png)
    
    <span style="font-family: Arial, serif;"><span style="font-size: small;">  
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/nSbfLikw2N6XyR99-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/nSbfLikw2N6XyR99-image.png)
    
    <span style="font-family: Arial, serif;"><span style="font-size: small;">  
    </span></span>
3. <span style="font-family: Arial, serif;"><span style="font-size: small;">GPO mit der OU verknuepfen, in der die Terminalserver liegen, in unserem Fall eine neue OU  
    Rechtsklick auf die Dömäne dann neue Organistaioneinheit  
      
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/nr604bqJ2Fy4aAwF-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/nr604bqJ2Fy4aAwF-image.png)
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/gFJdiTSWvHwhUNMe-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/gFJdiTSWvHwhUNMe-image.png)
    
    Nun unsere Gruppenrichtline auf Terminalserver ziehen  
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/o1VslJNHDQYlMyO7-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/o1VslJNHDQYlMyO7-image.png)
    
      
    <span style="font-family: Arial, serif;"><span style="font-size: small;">Nun auf OK klicken  
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/JGYXpL3BNmZhpebt-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/JGYXpL3BNmZhpebt-image.png)
    
    <span style="font-family: Arial, serif;"><span style="font-size: small;">  
    </span></span>
    
    [![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/nk2ZOZqqv3uCWhHb-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/nk2ZOZqqv3uCWhHb-image.png)
    
    <span style="font-family: Arial, serif;"><span style="font-size: small;">  
    </span></span>
4. <span style="font-family: Arial, serif;"><span style="font-size: small;">GPO bearbeiten</span></span>

### <span style="font-family: Arial, serif;"><span style="font-size: small;">**GPO-Einstellungen bearbeiten** </span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Rechtsklick auf die GPO und bearbeiten auswählen:  
</span></span>

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/xZxuTgYq6N6axKGa-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/xZxuTgYq6N6axKGa-image.png)

<span style="font-family: Arial, serif;"><span style="font-size: small;">  
</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Navigiere zu:**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">*Computer Configuration -&gt; Richtlinienen -&gt; Administrative Templates -&gt; FSLogix -&gt; Profile Containers*</span></span>

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/ZJac7czWHzqe7u1g-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/ZJac7czWHzqe7u1g-image.png)

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Folgende Einstellungen konfigurieren:**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-einstellung-wert-bes" style="height: 740.559px;" width="100%"><colgroup><col style="width: 33.3707%;" width="85*"></col><col style="width: 33.3707%;" width="85*"></col><col style="width: 33.3707%;" width="85*"></col></colgroup><tbody><tr style="height: 30.6765px;" valign="top"><td bgcolor="#2b579a" style="height: 30.6765px;" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Einstellung**</span></span></span>

</td><td bgcolor="#2b579a" style="height: 30.6765px;" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Wert**</span></span></span>

</td><td bgcolor="#2b579a" style="height: 30.6765px;" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Beschreibung**</span></span></span>

</td></tr><tr style="height: 83.8824px;" valign="top"><td bgcolor="#ffffff" style="height: 83.8824px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled</span></span>

</td><td bgcolor="#ffffff" style="height: 83.8824px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled + Dropdown auf "Enabled"</span></span>

</td><td bgcolor="#ffffff" style="height: 83.8824px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Aktiviert FSLogix (WICHTIG: Beides setzen!)  
Aber erst wenn die Profile migriert sind.  
Erstmal auf 0 lassen also Disabled, wenn Benutzer migriert werden sollen</span></span>

</td></tr><tr style="height: 30.6765px;" valign="top"><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VHD Locations</span></span>

</td><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">\\\\fileserver\\FSLogix\\Profiles</span></span>

</td><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Pfad zur Freigabe</span></span>

</td></tr><tr style="height: 137.088px;" valign="top"><td bgcolor="#ffffff" style="height: 137.088px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Delete Local Profile When VHD Should Apply</span></span>

</td><td bgcolor="#ffffff" style="height: 137.088px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Disabled</span></span>

</td><td bgcolor="#ffffff" style="height: 137.088px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Lokales Profil loeschen wenn FSLogix greift:  
**Auf Disabled setzen Ganz wichtig, damit vorhandene Profile nicht gelöscht werden:**  
Sind lokale Profile vorhanden wir auch keine VHDX angelegt.  
Also verhalten so als gäbe es FSLogix gar nicht.  
</span></span>

</td></tr><tr style="height: 30.6765px;" valign="top"><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Size In MBs</span></span>

</td><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">30000</span></span>

</td><td bgcolor="#f2f2f2" style="height: 30.6765px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Maximale Groesse in MB (30 GB)</span></span>

</td></tr><tr style="height: 48.4118px;"><td style="height: 48.4118px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Prevent Login With Failure</span></span>

</td><td style="height: 48.4118px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled</span></span>

</td><td style="height: 48.4118px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Anmeldung verhindern wenn Container nicht geladen werden kann</span></span>

</td></tr><tr style="height: 66.1471px;"><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Prevent Login With Temp Profile</span></span>

</td><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled</span></span>

</td><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Anmeldung mit temporaerem Profil verhindern, wenn schon woanders angemeldet ist</span></span>

</td></tr><tr style="height: 66.1471px;"><td style="height: 66.1471px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">NoProfileAvailableMessage</span></span>

</td><td style="height: 66.1471px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Dein Profil ist bereits in Benutzung. Bitte melde dich zuerst am anderen Computer/Terminalserver ab</span></span>

</td><td style="height: 66.1471px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nachricht für   
Prevent Login With Temp Profile, ansonsten kommt ne riesen Fehlerbox.  
  
Muss als Reg Key erstellt werden.</span></span>

</td></tr><tr style="height: 66.1471px;"><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VolumeWaitTimeMS</span></span>

</td><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">20000</span></span>

</td><td bgcolor="#f2f2f2" style="height: 66.1471px;" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Legt fest, wie lange FSLogix maximal wartet, bis die VHDX-Datei verfügbar ist. Ist die Datei nach Ablauf der Zeit nicht verfügbar (z.B. weil sie von einem anderen Computer verwendet wird), schlägt der Login fehl.  
  
Default : 20000 (20 seconds)</span></span>

</td></tr><tr style="height: 30.6765px;"><td style="height: 30.6765px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">RoamIdentity</span></span>

</td><td style="height: 30.6765px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled</span></span></td><td style="height: 30.6765px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">Speichert die Authentifizierungs-Tokens für Microsoft 365 im FSLogix-Container statt lokal. Ohne diese Einstellung werden die Anmeldedaten lokal auf dem Server gespeichert – der User muss dann auf jedem Server sein Passwort neu eingeben.</span></span>

</td></tr><tr style="height: 119.353px;"><td bgcolor="#f2f2f2" style="height: 119.353px;" width="33%"></td><td bgcolor="#f2f2f2" style="height: 119.353px;" width="33%"> </td><td bgcolor="#f2f2f2" style="height: 119.353px;" width="33%"></td></tr><tr style="height: 30.6765px;"><td style="height: 30.6765px;"></td><td style="height: 30.6765px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">  
</span></span></td><td style="height: 30.6765px;"><span style="font-family: Arial, serif;"><span style="font-size: small;">  
</span></span>

</td></tr></tbody></table>

**RoamCredentials nur Per Reg hinzufügbar und das aus gutem Grund!**

Speichert klassische Windows-Anmeldeinformationen (Benutzername/Passwort) im FSLogix-Container statt lokal. Diese Einstellung ist für ältere Authentifizierungsmethoden gedacht.

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-%C2%A0-%C2%A0-wann-aktivieren-"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold"> </th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold"> </th></tr></thead><tbody><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">**Wann aktivieren**</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Bei lokalem Exchange Server (On-Premises), IMAP/POP3 Konten, älteren Outlook-Versionen</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">**Registry**</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">`HKLM\SOFTWARE\FSLogix\Profiles\RoamCredentials`</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">**Wert**</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">1 = Aktiviert, 0 = Deaktiviert</td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">**GPO**</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top">Nicht verfügbar – nur per Registry konfigurierbar</td></tr></tbody></table>

</div>**Hinweis:** Diese Einstellung gilt als veraltet. Die meisten modernen Umgebungen nutzen Microsoft 365 mit Web Account Manager (WAM) – dort ist stattdessen `RoamIdentity` die richtige Einstellung. `RoamCredentials` wird nur noch für Legacy-Umgebungen mit klassischer Authentifizierung benötigt.

**Sicherheitswarnung:** Bei aktiviertem `RoamCredentials` werden Passwörter im Netzwerk-Container gespeichert. Bei Diebstahl der VHDX-Datei könnten diese kompromittiert werden.

Powershell Befehl:   
Enable:

```
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "RoamCredentials" -Value 1 -PropertyType DWord -Force
```

Disable:

```
New-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles" -Name "RoamCredentials" -Value 0 -PropertyType DWord -Force
```

**NoProfileAvailableMessage nur Per Reg hinzufügbar**

Oder per GPO **Registry Preferences** verteilen:

1. `gpmc.msc` → deine FSLogix GPO bearbeiten
2. **Computerkonfiguration → Einstellungen → Windows-Einstellungen → Registrierung**
3. Rechtsklick → Neu → Registrierungselement
4. Eintragen: 
    - Aktion: Erstellen
    - Struktur: HKEY\_LOCAL\_MACHINE
    - Schlüsselpfad: SOFTWARE\\FSLogix\\Profiles
    - Wertname: NoProfileAvailableMessage
    - Werttyp: REG\_SZ
    - Wertdaten: `Dein Profil ist bereits in Benutzung. Bitte melde dich zuerst am anderen Computer/Terminalserver ab.`

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/hztlgdoTXdtJlYCb-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/hztlgdoTXdtJlYCb-image.png)

<table cellpadding="7" cellspacing="0" id="bkmrk-wichtig%3A-bei-%22enable" width="100%"><colgroup><col width="256*"></col> </colgroup><tbody><tr><td bgcolor="#e2f0d9" valign="top" width="100%"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Wichtig:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">Bei "Enabled" muss sowohl der Status auf "Enabled" gesetzt werden ALS AUCH im Dropdown darunter nochmal "Enabled" ausgewaehlt werden. Sonst greift FSLogix nicht!</span></span>

</td></tr></tbody></table>

### <span style="font-family: Arial, serif;"><span style="font-size: small;">**Optionale Einstellungen**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">*Unter Profile Containers -&gt; Container and Directory Naming:  
  
[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/Y2O1Cyt0hzgpB8EJ-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/Y2O1Cyt0hzgpB8EJ-image.png)* </span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-einstellung-empfehlu" width="100%"><colgroup><col width="85*"></col> <col width="85*"></col> <col width="85*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Einstellung**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**mpfehlung**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Beschreibung**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Flip Flop Profile Directory Name</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Enabled</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Ordner heissen username\_SID statt SID\_username</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Virtual Disk Type</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Moderneres Format, besser fuer PowerShell-Verwaltung</span></span>

</td></tr></tbody></table>

### <span style="font-family: Arial, serif;"><span style="font-size: small;">**Nun noch im Active Directory Benutzer und Computer die Terminalserver auf unsere OU Terminal ziehen** </span></span>

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/scaled-1680-/WOmo4DfxZsE85xcS-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-01/WOmo4DfxZsE85xcS-image.png)

### <span style="font-family: Arial, serif;"><span style="font-size: small;"> **GPO aktualisieren**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Nach dem Konfigurieren auf dem DC und Terminalserver(n) die GPO aktualisieren oder Server neu starten.:</span></span>

```
gpupdate /force
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Nun können wir überpüfen ob die Gruppenrichtlinie auch drin ist.  
Auf den Terminalserver(n) überprüfen.</span></span>

```
gpresult /r
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Ausgabe:  
</span></span>

```
Betriebssystem Microsoft (R) Windows (R) Gruppenrichtlinienergebnis-Tool v2.0
© Microsoft Corporation. Alle Rechte vorbehalten.

Am ‎25.‎01.‎2026 um 15:05:48 erstellt


RSOP-Daten für HACKER-TEST\administrator auf TERM-TEST: Protokollmodus
-----------------------------------------------------------------------

Betriebssystemkonfiguration: Mitgliedsserver
Betriebssystemversion:       10.0.26100
Standortname:                Default-First-Site-Name
Roamingprofil:Nicht zutreffend
Lokales Profil:              C:\Users\administrator.HACKER-TEST
Langsame Verbindung?         Nein


COMPUTEREINSTELLUNGEN
----------------------
    CN=TERM-TEST,OU=Terminalserver,DC=hacker-test,DC=local
    Letzte Gruppenrichtlinienanwendung:   25.01.2026, um 15:05:33
    Gruppenrichtlinieanwendung von:       DC01-test.hacker-test.local
    Schwellenwert für langsame Verbindung:500 kbps
    Domänenname:                          HACKER-TEST
    Domänentyp:                           Windows 2008 oder höher

    Angewendete Gruppenrichtlinienobjekte
    --------------------------------------
        FSLogix Profile Container
        Default Domain Policy
        Richtlinien der lokalen Gruppe

    Der Computer ist Mitglied der folgenden Sicherheitsgruppen
    ----------------------------------------------------------
        Administratoren
        Jeder
        Benutzer
        NETZWERK
        Authentifizierte Benutzer
        Diese Organisation
        TERM-TEST$
        Domänencomputer
        Von der Authentifizierungsstelle bestätigte ID
        Systemverbindlichkeitsstufe


BENUTZEREINSTELLUNGEN
----------------------
    CN=Administrator,CN=Users,DC=hacker-test,DC=local
    Letzte Gruppenrichtlinienanwendung:   25.01.2026, um 15:05:34
    Gruppenrichtlinieanwendung von:       DC01-test.hacker-test.local
    Schwellenwert für langsame Verbindung:500 kbps
    Domänenname:                          HACKER-TEST
    Domänentyp:                           Windows 2008 oder höher

    Angewendete Gruppenrichtlinienobjekte
    --------------------------------------
        Nicht zutreffend

    Folgende herausgefilterte Gruppenrichtlinien werden nicht angewendet.
    ----------------------------------------------------------------------
        Richtlinien der lokalen Gruppe
            Filterung:  Nicht angewendet (Leer)

    Der Benutzer ist Mitglied der folgenden Sicherheitsgruppen
    ----------------------------------------------------------
        Domänen-Benutzer
        Jeder
        Benutzer
        Administratoren
        INTERAKTIVE REMOTEANMELDUNG
        INTERAKTIV
        Authentifizierte Benutzer
        Diese Organisation
        LOKAL
        Richtlinien-Ersteller-Besitzer
        Domänen-Admins
        Organisations-Admins
        Schema-Admins
        Von der Authentifizierungsstelle bestätigte ID
        Abgelehnte RODC-Kennwortreplikationsgruppe
        Hohe Verbindlichkeitsstufe
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">  
Der entscheidene Teil:  
  
Nun testen der Einstellungen:  
</span></span>

```
Get-ItemProperty -Path "HKLM:\SOFTWARE\FSLogix\Profiles"
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Ausgabe:  
</span></span>

```
Enabled                              : 1
VHDLocations                         : \\dateiserv-test\Profiles
SizeInMBs                            : 30000
VolumeType                           : VHDX
FlipFlopProfileDirectoryName         : 1
DeleteLocalProfileWhenVHDShouldApply : 0
PreventLoginWithFailure              : 1
PreventLoginWithTempProfile          : 1
PSPath                               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles
PSParentPath                         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix
PSChildName                          : Profiles
PSDrive                              : HKLM
PSProvider                           : Microsoft.PowerShell.Core\Registry
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Hinweis:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">Registry und GPO koennen parallel existieren. GPO-Einstellungen ueberschreiben Registry-Werte. Fuer Konsistenz empfiehlt sich EINE Methode.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**5.6 Schritt 4: Testen**</span></span>

1. <span style="font-family: Arial, serif;"><span style="font-size: small;">Server neu starten (oder Dienst frxsvc neu starten)</span></span>
2. <span style="font-family: Arial, serif;"><span style="font-size: small;">Mit einem Testuser anmelden</span></span>
3. <span style="font-family: Arial, serif;"><span style="font-size: small;">Auf der Freigabe prüfen ob VHDX erstellt wurde</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Kontrolle am Client per CMD:**</span></span>

```
frx list-redirects
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Zeigt an, ob das Profil korrekt gemountet ist.</span></span>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**6. Profilgröße überwachen und automatisch vergrößern**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Ein volles Profil verhindert die Anmeldung! Daher ist Monitoring wichtig.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**6.1 Manuelle Vergrößerung**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">User muss abgemeldet sein. Dann per PowerShell:</span></span>

```
# VHDX auf 50 GB vergrößern
Resize-VHD -Path "\\fileserver\FSLogix\Profiles\user_SID\Profile_user.VHDX" -SizeBytes 50GB
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Die Partition wächst beim nächsten Login automatisch mit.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**6.2 Standardgröße für neue Profile ändern**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Registry-Wert anpassen (Beispiel 50 GB = 50000 MB = 0xC350):</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">"SizeInMBs"=dword:0000c350</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**6.3 Automatisches Monitoring und Resize**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Siehe beiliegendes PowerShell-Skript: [FSLogix-AutoResize.ps1 download](https://wiki.hacker-net.de/attachments/117)</span></span>

<details id="bkmrk-fslogix-autoresize.p"><summary>FSLogix-AutoResize.ps1</summary>

\# FSLogix VHDX Auto-Resize Script mit Mail-Benachrichtigung  
\# Prüft alle Profile und vergrößert automatisch wenn &gt; 85% voll  
\#  
\# Einrichtung:  
\# 1. Skript anpassen (Pfade, Mail-Einstellungen)  
\# 2. Speichern unter C:\\Scripts\\FSLogix-AutoResize.ps1  
\# 3. Log-Ordner anlegen: mkdir C:\\Logs  
\# 4. Scheduled Task erstellen (siehe unten)  
\#  
\# Scheduled Task per PowerShell erstellen:  
\# $action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\\Scripts\\FSLogix-AutoResize.ps1"  
\# $trigger = New-ScheduledTaskTrigger -Daily -At "06:00"  
\# $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest  
\# Register-ScheduledTask -TaskName "FSLogix AutoResize" -Action $action -Trigger $trigger -Principal $principal

\#region Konfiguration  
\# ============================================================================  
\# HIER ANPASSEN  
\# ============================================================================

\# Pfad zu den FSLogix Profilen  
$ProfilePath = "\\\\fileserver\\FSLogix\\Profiles"

\# Ab welchem Füllstand vergrößern (in Prozent)  
$ThresholdPercent = 85

\# Um wie viel GB vergrößern  
$GrowByGB = 10

\# Maximale Größe (Obergrenze)  
$MaxSizeGB = 100

\# Log-Datei  
$LogFile = "C:\\Logs\\FSLogix-AutoResize.log"

\# Mail-Konfiguration  
$MailSettings = @{  
 SmtpServer = "mail.example.de" # SMTP-Server  
 Port = 587 # 587 für STARTTLS, 465 für SSL, 25 für unverschlüsselt  
 UseSsl = $true # SSL/TLS verwenden  
 Username = "monitoring@example.de" # SMTP-Benutzername  
 Password = "DEIN-PASSWORT-HIER" # SMTP-Passwort  
 From = "monitoring@example.de" # Absender  
 To = "admin@example.de" # Empfänger (mehrere: "a@x.de","b@x.de")  
}

\# ============================================================================  
\# AB HIER NICHTS MEHR ÄNDERN  
\# ============================================================================  
\#endregion

\#region Funktionen  
function Write-Log {  
 param(  
 \[string\]$Message,  
 \[string\]$Level = "INFO"  
 )  
   
 # Log-Verzeichnis erstellen falls nicht vorhanden  
 $logDir = Split-Path -Path $LogFile -Parent  
 if (-not (Test-Path $logDir)) {  
 New-Item -ItemType Directory -Path $logDir -Force | Out-Null  
 }  
   
 $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"  
 $logEntry = "\[$Level\] $timestamp - $Message"  
   
 # In Datei schreiben  
 $logEntry | Out-File -FilePath $LogFile -Append -Encoding UTF8  
   
 # Auch auf Konsole ausgeben  
 switch ($Level) {  
 "ERROR" { Write-Host $logEntry -ForegroundColor Red }  
 "WARNING" { Write-Host $logEntry -ForegroundColor Yellow }  
 "RESIZE" { Write-Host $logEntry -ForegroundColor Green }  
 default { Write-Host $logEntry }  
 }  
}

function Send-AlertMail {  
 param(  
 \[string\]$Subject,  
 \[string\]$Body  
 )  
   
 try {  
 $securePassword = ConvertTo-SecureString $MailSettings.Password -AsPlainText -Force  
 $credential = New-Object System.Management.Automation.PSCredential ($MailSettings.Username, $securePassword)  
   
 $mailParams = @{  
 SmtpServer = $MailSettings.SmtpServer  
 Port = $MailSettings.Port  
 UseSsl = $MailSettings.UseSsl  
 Credential = $credential  
 From = $MailSettings.From  
 To = $MailSettings.To  
 Subject = $Subject  
 Body = $Body  
 BodyAsHtml = $true  
 Encoding = \[System.Text.Encoding\]::UTF8  
 }  
   
 Send-MailMessage @mailParams  
 Write-Log "Mail erfolgreich gesendet: $Subject"  
 }  
 catch {  
 Write-Log "Mail-Versand fehlgeschlagen: $\_" -Level "ERROR"  
 }  
}

function Get-HtmlReport {  
 param(  
 \[array\]$Warnings,  
 \[array\]$Resizes,  
 \[array\]$Errors  
 )  
   
 $html = @"  
&lt;!DOCTYPE html&gt;  
&lt;html&gt;  
&lt;head&gt;  
 &lt;meta charset="UTF-8"&gt;  
 &lt;style&gt;  
 body {   
 font-family: 'Segoe UI', Arial, sans-serif;   
 margin: 20px;  
 background-color: #f5f5f5;  
 }  
 .container {  
 max-width: 800px;  
 margin: 0 auto;  
 background-color: white;  
 padding: 20px;  
 border-radius: 8px;  
 box-shadow: 0 2px 4px rgba(0,0,0,0.1);  
 }  
 h2 {   
 color: #333;   
 border-bottom: 2px solid #4472C4;  
 padding-bottom: 10px;  
 }  
 h3 {  
 margin-top: 25px;  
 }  
 table {   
 border-collapse: collapse;   
 width: 100%;   
 margin-bottom: 20px;   
 }  
 th, td {   
 border: 1px solid #ddd;   
 padding: 10px 12px;   
 text-align: left;   
 }  
 th {   
 background-color: #4472C4;   
 color: white;   
 }  
 tr:nth-child(even) {   
 background-color: #f9f9f9;   
 }  
 tr:hover {  
 background-color: #f1f1f1;  
 }  
 .warning {   
 background-color: #fff3cd !important;   
 }  
 .error {   
 background-color: #f8d7da !important;   
 }  
 .success {   
 background-color: #d4edda !important;   
 }  
 .info-box {  
 background-color: #e7f3ff;  
 border-left: 4px solid #4472C4;  
 padding: 10px 15px;  
 margin-bottom: 20px;  
 }  
 .footer {  
 margin-top: 30px;  
 padding-top: 15px;  
 border-top: 1px solid #ddd;  
 font-size: 12px;  
 color: #666;  
 }  
 &lt;/style&gt;  
&lt;/head&gt;  
&lt;body&gt;  
 &lt;div class="container"&gt;  
 &lt;h2&gt;🗄️ FSLogix Auto-Resize Report&lt;/h2&gt;  
   
 &lt;div class="info-box"&gt;  
 &lt;strong&gt;Server:&lt;/strong&gt; $env:COMPUTERNAME&lt;br&gt;  
 &lt;strong&gt;Zeitpunkt:&lt;/strong&gt; $(Get-Date -Format "dd.MM.yyyy HH:mm:ss")&lt;br&gt;  
 &lt;strong&gt;Profilpfad:&lt;/strong&gt; $ProfilePath  
 &lt;/div&gt;  
"@

 # Zusammenfassung  
 $html += "&lt;p&gt;&lt;strong&gt;Zusammenfassung:&lt;/strong&gt; "  
 $summaryParts = @()  
 if ($Resizes.Count -gt 0) { $summaryParts += "✅ $($Resizes.Count) Profile vergrößert" }  
 if ($Warnings.Count -gt 0) { $summaryParts += "⚠️ $($Warnings.Count) Warnungen" }  
 if ($Errors.Count -gt 0) { $summaryParts += "❌ $($Errors.Count) Fehler" }  
 $html += ($summaryParts -join " | ") + "&lt;/p&gt;"

 # Vergrößerte Profile  
 if ($Resizes.Count -gt 0) {  
 $html += @"  
 &lt;h3&gt;✅ Automatisch vergrößerte Profile&lt;/h3&gt;  
 &lt;table&gt;  
 &lt;tr&gt;  
 &lt;th&gt;Profil&lt;/th&gt;  
 &lt;th&gt;Alte Größe&lt;/th&gt;  
 &lt;th&gt;Neue Größe&lt;/th&gt;  
 &lt;th&gt;Belegt&lt;/th&gt;  
 &lt;/tr&gt;  
"@  
 foreach ($r in $Resizes) {  
 $html += "&lt;tr class='success'&gt;&lt;td&gt;$($r.Name)&lt;/td&gt;&lt;td&gt;$($r.OldSize) GB&lt;/td&gt;&lt;td&gt;$($r.NewSize) GB&lt;/td&gt;&lt;td&gt;$($r.UsedPercent)%&lt;/td&gt;&lt;/tr&gt;"  
 }  
 $html += "&lt;/table&gt;"  
 }

 # Warnungen  
 if ($Warnings.Count -gt 0) {  
 $html += @"  
 &lt;h3&gt;⚠️ Maximum erreicht - Manuelle Prüfung erforderlich!&lt;/h3&gt;  
 &lt;p style="color: #856404;"&gt;Diese Profile haben die maximale Größe von $MaxSizeGB GB erreicht und können nicht weiter automatisch vergrößert werden.&lt;/p&gt;  
 &lt;table&gt;  
 &lt;tr&gt;  
 &lt;th&gt;Profil&lt;/th&gt;  
 &lt;th&gt;Aktuelle Größe&lt;/th&gt;  
 &lt;th&gt;Belegt&lt;/th&gt;  
 &lt;/tr&gt;  
"@  
 foreach ($w in $Warnings) {  
 $html += "&lt;tr class='warning'&gt;&lt;td&gt;$($w.Name)&lt;/td&gt;&lt;td&gt;$($w.Size) GB&lt;/td&gt;&lt;td&gt;$($w.UsedPercent)%&lt;/td&gt;&lt;/tr&gt;"  
 }  
 $html += "&lt;/table&gt;"  
 }

 # Fehler  
 if ($Errors.Count -gt 0) {  
 $html += @"  
 &lt;h3&gt;❌ Fehler bei der Verarbeitung&lt;/h3&gt;  
 &lt;table&gt;  
 &lt;tr&gt;  
 &lt;th&gt;Profil&lt;/th&gt;  
 &lt;th&gt;Fehlermeldung&lt;/th&gt;  
 &lt;/tr&gt;  
"@  
 foreach ($e in $Errors) {  
 $html += "&lt;tr class='error'&gt;&lt;td&gt;$($e.Name)&lt;/td&gt;&lt;td&gt;$($e.Error)&lt;/td&gt;&lt;/tr&gt;"  
 }  
 $html += "&lt;/table&gt;"  
 }

 # Footer  
 $html += @"  
 &lt;div class="footer"&gt;  
 Diese E-Mail wurde automatisch generiert vom FSLogix Auto-Resize Script.&lt;br&gt;  
 Schwellwert: ${ThresholdPercent}% | Vergrößerung: +${GrowByGB} GB | Maximum: ${MaxSizeGB} GB  
 &lt;/div&gt;  
 &lt;/div&gt;  
&lt;/body&gt;  
&lt;/html&gt;  
"@

 return $html  
}  
\#endregion

\#region Hauptlogik  
Write-Log "=== Starte FSLogix Auto-Resize ==="

\# Prüfen ob Profilpfad erreichbar  
if (-not (Test-Path $ProfilePath)) {  
 Write-Log "Profilpfad nicht erreichbar: $ProfilePath" -Level "ERROR"  
   
 $errorBody = Get-HtmlReport -Warnings @() -Resizes @() -Errors @(@{  
 Name = "Profilpfad"  
 Error = "Der Pfad $ProfilePath ist nicht erreichbar. Bitte Netzwerkverbindung und Berechtigungen prüfen."  
 })  
 Send-AlertMail -Subject "FSLogix FEHLER: Profilpfad nicht erreichbar" -Body $errorBody  
 exit 1  
}

\# Arrays für Report  
$warnings = @()  
$resizes = @()  
$errors = @()

\# Alle VHDX-Dateien finden  
$vhdxFiles = Get-ChildItem -Path $ProfilePath -Recurse -Filter "\*.vhdx" -ErrorAction SilentlyContinue

Write-Log "Gefundene Profile: $($vhdxFiles.Count)"

foreach ($vhdx in $vhdxFiles) {  
 try {  
 # VHDX mounten (readonly) um Größe zu prüfen  
 $mount = Mount-VHD -Path $vhdx.FullName -ReadOnly -Passthru -ErrorAction Stop  
 $partition = Get-Partition -DiskNumber $mount.DiskNumber | Where-Object { $\_.Type -eq "Basic" }  
   
 if ($partition) {  
 $volume = Get-Volume -Partition $partition  
 $usedPercent = \[math\]::Round((($volume.Size - $volume.SizeRemaining) / $volume.Size) \* 100, 1)  
 $currentSizeGB = \[math\]::Round($volume.Size / 1GB, 1)  
   
 Write-Log "Prüfe: $($vhdx.Name) - $usedPercent% belegt ($currentSizeGB GB)"  
   
 # Dismounten vor möglichem Resize  
 Dismount-VHD -Path $vhdx.FullName  
   
 # Prüfen ob Schwellwert überschritten  
 if ($usedPercent -ge $ThresholdPercent) {  
 $currentMaxGB = \[math\]::Round((Get-VHD -Path $vhdx.FullName).Size / 1GB, 1)  
 $newSizeGB = $currentMaxGB + $GrowByGB  
   
 if ($newSizeGB -le $MaxSizeGB) {  
 # Vergrößern  
 Write-Log "RESIZE: $($vhdx.Name) von $currentMaxGB GB auf $newSizeGB GB" -Level "RESIZE"  
 Resize-VHD -Path $vhdx.FullName -SizeBytes ($newSizeGB \* 1GB)  
   
 $resizes += @{  
 Name = $vhdx.Name  
 OldSize = $currentMaxGB  
 NewSize = $newSizeGB  
 UsedPercent = $usedPercent  
 }  
 }  
 else {  
 # Maximum erreicht  
 Write-Log "WARNUNG: $($vhdx.Name) hat Maximum ($MaxSizeGB GB) erreicht!" -Level "WARNING"  
   
 $warnings += @{  
 Name = $vhdx.Name  
 Size = $currentMaxGB  
 UsedPercent = $usedPercent  
 }  
 }  
 }  
 }  
 else {  
 Dismount-VHD -Path $vhdx.FullName  
 Write-Log "Keine gültige Partition gefunden in: $($vhdx.Name)" -Level "WARNING"  
 }  
 }  
 catch {  
 Write-Log "FEHLER bei $($vhdx.Name): $\_" -Level "ERROR"  
   
 # Sicherstellen dass VHD dismounted ist  
 Dismount-VHD -Path $vhdx.FullName -ErrorAction SilentlyContinue  
   
 $errors += @{  
 Name = $vhdx.Name  
 Error = $\_.Exception.Message  
 }  
 }  
}

\# Mail senden wenn es was zu berichten gibt  
if ($warnings.Count -gt 0 -or $resizes.Count -gt 0 -or $errors.Count -gt 0) {  
   
 # Betreff zusammenbauen  
 $subject = "FSLogix Report: "  
 $parts = @()  
   
 if ($resizes.Count -gt 0) { $parts += "$($resizes.Count) vergrößert" }  
 if ($warnings.Count -gt 0) { $parts += "$($warnings.Count) Warnungen" }  
 if ($errors.Count -gt 0) { $parts += "$($errors.Count) Fehler" }  
   
 $subject += $parts -join ", "  
   
 # HTML-Report erstellen und senden  
 $body = Get-HtmlReport -Warnings $warnings -Resizes $resizes -Errors $errors  
 Send-AlertMail -Subject $subject -Body $body  
}  
else {  
 Write-Log "Keine Aktionen erforderlich - alle Profile im grünen Bereich"  
}

Write-Log "=== Durchlauf beendet ==="  
\#endregion

</details><span style="font-family: Arial, serif;"><span style="font-size: small;">**Das Skript:**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Prüft alle Profile auf Füllstand</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Vergrößert automatisch wenn über Schwellwert (Standard: 85%)</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Sendet E-Mail-Benachrichtigung bei Aktionen oder Fehlern</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Loggt alle Aktivitäten</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Einrichtung als Scheduled Task:**</span></span>

```
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\FSLogix-AutoResize.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "06:00"
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "FSLogix AutoResize" -Action $action -Trigger $trigger -Principal $principal
```

[FSLogix-AutoResize.ps1 download](https://wiki.hacker-net.de/attachments/117)

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**7. Bestehende Profile migrieren**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**7.1 Option A: Sauber neu anfangen**</span></span>


<span style="font-family: Arial, serif;"><span style="font-size: small;">User meldet sich an, neues Profil wird erstellt. Outlook, Netzlaufwerke etc. müssen neu eingerichtet werden. Bei wenigen Usern vertretbar.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**7.2 Option B: Profil übernehmen** </span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Vorraussetzungen:</span></span>

1. <span style="font-family: Arial, serif;"><span style="font-size: small;">Das Scripte:  
    migrate2vhdx.ps1  
    </span></span>
2. ```
    # ============================================
    # FSLogix Profil-Migration
    # Mountet VHDX, kopiert Profildaten, trennt VHDX
    # ============================================
    
    # ============================================
    # Variablen anpassen
    # ============================================
    $username = "max.mustermann"
    $sid = "S-1-5-21-2630395647-2518157359-3528892432-1109"
    $driveLetter = "P"
    $profileShare = "\\dateiserv-test\Profiles"
    
    # ============================================
    # Ab hier nichts aendern
    # ============================================
    $vhdPath = "$profileShare\${username}_$sid\Profile_${username}.VHDX"
    $source = "C:\Users\${username}_migrate"
    $destination = "${driveLetter}:\Profile"
    
    Write-Host ""
    Write-Host "========================================" -ForegroundColor Cyan
    Write-Host " FSLogix Profil-Migration" -ForegroundColor Cyan
    Write-Host "========================================" -ForegroundColor Cyan
    Write-Host ""
    Write-Host "User:        $username" -ForegroundColor White
    Write-Host "SID:         $sid" -ForegroundColor White
    Write-Host "VHDX:        $vhdPath" -ForegroundColor White
    Write-Host "Quelle:      $source" -ForegroundColor White
    Write-Host "Ziel:        $destination" -ForegroundColor White
    Write-Host ""
    
    # Pruefen ob Quelle existiert
    if (-not (Test-Path $source)) {
        Write-Host "FEHLER: Quellordner $source nicht gefunden!" -ForegroundColor Red
        Write-Host "Wurde das lokale Profil in _migrate umbenannt?" -ForegroundColor Yellow
        exit 1
    }
    
    # Pruefen ob VHDX existiert
    if (-not (Test-Path $vhdPath)) {
        Write-Host "FEHLER: VHDX $vhdPath nicht gefunden!" -ForegroundColor Red
        Write-Host "Hat sich der User einmal angemeldet damit FSLogix die VHDX erstellt?" -ForegroundColor Yellow
        exit 1
    }
    
    # VHDX mounten
    Write-Host "[1/3] Mounte VHDX..." -ForegroundColor Yellow
    $diskpartMount = @"
    select vdisk file="$vhdPath"
    attach vdisk
    select partition 1
    assign letter=$driveLetter
    "@
    $diskpartMount | diskpart | Out-Null
    
    # Kurz warten bis Laufwerk verfuegbar
    Start-Sleep -Seconds 2
    
    # Pruefen ob Mount erfolgreich
    if (-not (Test-Path "${driveLetter}:\")) {
        Write-Host "FEHLER: Laufwerk ${driveLetter}: nicht verfuegbar!" -ForegroundColor Red
        Write-Host "VHDX konnte nicht gemountet werden." -ForegroundColor Yellow
        exit 1
    }
    Write-Host "      VHDX gemountet auf ${driveLetter}:" -ForegroundColor Green
    
    # Daten kopieren
    Write-Host "[2/3] Kopiere Profildaten..." -ForegroundColor Yellow
    Write-Host "      Das kann je nach Profilgroesse einige Minuten dauern..." -ForegroundColor Gray
    robocopy $source $destination /E /COPYALL /R:0 /W:0 /NP /NFL /NDL
    
    if ($LASTEXITCODE -le 7) {
        Write-Host "      Kopieren erfolgreich!" -ForegroundColor Green
    } else {
        Write-Host "      WARNUNG: Einige Dateien konnten nicht kopiert werden (Exit: $LASTEXITCODE)" -ForegroundColor Yellow
    }
    
    # VHDX trennen
    Write-Host "[3/3] Trenne VHDX..." -ForegroundColor Yellow
    $diskpartDismount = @"
    select vdisk file="$vhdPath"
    detach vdisk
    "@
    $diskpartDismount | diskpart | Out-Null
    Write-Host "      VHDX getrennt." -ForegroundColor Green
    
    Write-Host ""
    Write-Host "========================================" -ForegroundColor Green
    Write-Host " Migration abgeschlossen!" -ForegroundColor Green
    Write-Host "========================================" -ForegroundColor Green
    Write-Host ""
    Write-Host "Naechste Schritte:" -ForegroundColor Cyan
    Write-Host "1. FSLogix aktivieren (Enabled = 1)" -ForegroundColor White
    Write-Host "2. User $username kann sich jetzt anmelden" -ForegroundColor White
    Write-Host "3. Nach erfolgreichem Test: $source loeschen" -ForegroundColor White
    Write-Host ""
    ```
    
    Kleines Hilfsscript um zu sehen, wo inder Regestry die USER IDS auf welches Verzeiuchnis linken:
    
    ```
    Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" | ForEach-Object { 
        $sid = $_.PSChildName
        $path = (Get-ItemProperty $_.PSPath).ProfileImagePath
        Write-Host "$sid -> $path"
    }
    ```
    
    Ausgabe:
    
    ```
    S-1-5-18 -> C:\WINDOWS\system32\config\systemprofile
    S-1-5-19 -> C:\WINDOWS\ServiceProfiles\LocalService
    S-1-5-20 -> C:\WINDOWS\ServiceProfiles\NetworkService
    S-1-5-21-2630395647-2518157359-3528892432-1109 -> C:\Users\max.mustermann.HACKER-TEST
    
    ```
3. <span style="font-family: Arial, serif;"><span style="font-size: small;">SID herausbekommen in einer Powershell:  
      
    Wenn es ein lokaler Benutzer ist:</span></span>

```
Get-LocalUser -Name "benutzername").SID
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Wenn es ein Domänen Benutzer ist:  
</span></span>

```
 ([System.Security.Principal.NTAccount]"DOMÄNE\BENUTZERNAME").Translate([System.Security.Principal.SecurityIdentifier]).Value
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Ausgabe</span></span>

```
S-1-5-21-2630395647-2518157359-3528892432-1109
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Die user\_SID würde dann so aussehen Bennutzername\_S-1-5-21-2630395647-2518157359-3528892432-1109</span></span>

```
"C:\Program Files\FSLogix\Apps\frx.exe" copy-profile -filename "\\fileserver\FSLogix\Profiles\<username>_<SID>\Profile_<username>.VHDX" -username "DOMAIN\username" -size-mbs 30000


Beispielpfad

\\dateiserv-test\Profiles\max.mustermann_S-1-5-21-2630395647-2518157359-3528892432-1107\Profile_max.mustermann.VHDX
```

**Sauberer Ablauf für die Migration:**

1. Die Scripte erstellt haben
2. Wenn credentials gesichert werden sollen, dann mit dem Benutzer nochmals anmelden und  
    ```
    rundll32.exe keymgr.dll,KRShowKeyMgr
    ```
    
      
    ausführen, dann die Credentials im Benutzerverzeichnis sichern
3. FSLogix auf `Enabled = 1` setzen falls nicht schon geschehen
4. Lokales Benutzerprofil umbennen in &lt;username&gt;\_migrate
5. Benutzer anmelden, so das die VHDX erstellt wird.
6. Benutzer abmelden
7. SSID des Benutzers mit Befehl siehe oben herausbekommen und die Script anpassen
8. Das migrate script starten und danach dismount starten
9. Benutzer anmelden
10. Fertig

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**7.3 Option C: Migration mit Transwiz (Drittanbieter)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Für einfache GUI-basierte Migration:</span></span>

4. <span style="font-family: Arial, serif;"><span style="font-size: small;">Am alten Server Profil exportieren (.zip)</span></span>
5. <span style="font-family: Arial, serif;"><span style="font-size: small;">Am neuen Server importieren und User zuweisen</span></span>
6. <span style="font-family: Arial, serif;"><span style="font-size: small;">Danach FSLogix aktivieren</span></span>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**8. Troubleshooting**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**8.1 User kann sich nicht anmelden**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Freigabe erreichbar? Test: dir \\\\fileserver\\FSLogix\\Profiles</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX voll? Manuell vergrößern (siehe Kapitel 6.1)</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX bereits gemountet? Anderer Server/PC hält Container offen</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Berechtigungen korrekt? Creator Owner muss Vollzugriff haben</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**8.2 Profil wird nicht geladen (lokales Profil statt Container)**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Registry prüfen: Enabled = 1?</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Dienst läuft? services.msc → FSLogix Apps Services</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Logs prüfen: C:\\ProgramData\\FSLogix\\Logs</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**8.3 Anmeldung sehr langsam**</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Netzwerk zum Fileserver prüfen (Latenz, Bandbreite)</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Antivirus-Ausnahmen für VHDX-Dateien?</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Storage-Performance (IOPS) ausreichend?</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**8.4 Nützliche Befehle**</span></span>

```
# Status prüfen
frx list-redirects
```

```
# Logs anzeigen
Get-Content C:\ProgramData\FSLogix\Logs\Profile*.log -Tail 50
```

```
# VHDX-Info abrufen
Get-VHD -Path "\\server\share\user_SID\Profile_user.VHDX"
```

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**9. Checkliste für die Einrichtung**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Zum Abhaken:**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-schritt-erledigt-liz" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Schritt**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Erledigt**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Lizenzierung geklärt (RDS-CAL, M365, etc.)</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Freigabe erstellt mit korrekten Berechtigungen</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">FSLogix Agent installiert</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Registry-Konfiguration importiert</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Server/Client neu gestartet</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Test-Anmeldung erfolgreich</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">VHDX auf Freigabe vorhanden</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">frx list-redirects zeigt gemountetes Profil</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Monitoring-Skript eingerichtet</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Scheduled Task für Auto-Resize erstellt</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Bei RDS-Farm: Verbindungsbroker konfiguriert</span></span>

</td><td bgcolor="#ffffff" width="50%">☐

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Bei RDS-Farm: GPO für Single-Session aktiviert</span></span>

</td><td bgcolor="#f2f2f2" width="50%">☐

</td></tr></tbody></table>

# <span style="font-family: Arial, serif;"><span style="font-size: large;">**10. ODFC-Container (Optional)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Der ODFC-Container (Office Data File Container) ist eine optionale Erweiterung von FSLogix speziell für Microsoft 365 und Exchange. Er ist KEIN Muss – wenn du nur den Profile Container nutzt, landen alle Office-Daten automatisch dort mit drin und alles funktioniert problemlos.</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.1 Was macht der ODFC-Container?**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Der ODFC-Container speichert ausschließlich Daten von Microsoft 365 Anwendungen:</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Outlook Offline-Cache (OST-Datei) – kann schnell 10-20 GB werden</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">OneDrive-Cache</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">OneNote lokale Daten</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">SharePoint-Cache</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Teams-Daten</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Office-Aktivierungsdaten</span></span>

<table cellpadding="7" cellspacing="0" id="bkmrk-wichtig%3A-der-odfc-co" width="100%"><colgroup><col width="256*"></col> </colgroup><tbody><tr><td bgcolor="#e2f0d9" valign="top" width="100%"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Wichtig:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">Der ODFC-Container ist optional! Ohne separate ODFC-Konfiguration landen alle Office-Daten einfach im normalen Profile Container – das funktioniert genauso gut.</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.2 Ein Container vs. Zwei Container**</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-variante-vorteile-na" width="100%"><colgroup><col width="85*"></col> <col width="85*"></col> <col width="85*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Variante**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Vorteile**</span></span></span>

</td><td bgcolor="#2b579a" width="33%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Nachteile**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nur Profile Container</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Einfacher zu verwalten, weniger Komplexität, eine VHDX pro User</span></span>

</td><td bgcolor="#ffffff" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Office-Cache ist im Backup enthalten (braucht mehr Speicher)</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Profile + ODFC Container</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Office-Cache kann vom Backup ausgeschlossen werden, bessere Trennung</span></span>

</td><td bgcolor="#f2f2f2" width="33%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Zwei VHDXs pro User, mehr Verwaltungsaufwand</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.3 Wann lohnt sich der ODFC-Container?**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Der separate ODFC-Container ist sinnvoll wenn:</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">Du regelmaessige Backups der Profile machst und den Office-Cache (nur Cache, kann neu aufgebaut werden) ausschliessen willst</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Du bereits eine andere Profilloesung hast (z.B. Citrix Profile Management) und nur den Office-Teil mit FSLogix loesen willst</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">Du sehr grosse Outlook-Postfaecher hast (M365 E3/E5 bieten 100 GB Postfach, Outlook cached bis zu 50 GB)</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Fuer kleinere Umgebungen (z.B. einzelner Terminalserver mit 25 Usern): Ein Container reicht voellig aus!**</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.4 Konfiguration (falls gewuenscht)**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Die Konfiguration erfolgt analog zum Profile Container per Registry oder GPO:</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**GPO-Pfad:**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">*Computer Configuration -&gt; Administrative Templates -&gt; FSLogix -&gt; ODFC Containers*</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Registry-Eintraege:**</span></span>

<span style="font-family: Consolas, serif;"><span style="font-size: small;">Windows Registry Editor Version 5.00</span></span>

```
[HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\ODFC]
"Enabled"=dword:00000001
"VHDLocations"="\\\\fileserver\\FSLogix\\ODFC"
"VolumeType"="VHDX"
"SizeInMBs"=dword:00007530
```

<span style="font-family: Arial, serif;"><span style="font-size: small;">Du kannst den gleichen Share wie fuer Profile verwenden oder einen separaten. FSLogix erstellt dann pro User:</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">profile\_username.vhdx – restliches Profil</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">odfc\_username.vhdx – nur Office/M365-Daten</span></span>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.5 Gleichzeitige Anmeldung mit ODFC**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Bei gleichzeitigen Sessions (z.B. User an VDI + veröffentlichte App vom RDSH) nutzt FSLogix Differenzdateien.</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**Fuer ODFC gibt es eine separate Einstellung:**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">VHDAccessMode – regelt wie gleichzeitige Zugriffe auf den ODFC-Container behandelt werden</span></span>

<table cellpadding="6" cellspacing="0" id="bkmrk-modus-verhalten-0-%28d" width="100%"><colgroup><col width="128*"></col> <col width="128*"></col> </colgroup><tbody><tr valign="top"><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Modus**</span></span></span>

</td><td bgcolor="#2b579a" width="50%"><span style="color: #ffffff;"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Verhalten**</span></span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">0 (Direct Access)</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Erste Session hat exklusiven Zugriff, weitere Sessions bekommen temporaeren Container</span></span>

</td></tr><tr valign="top"><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">1 (Difference Disk - Default)</span></span>

</td><td bgcolor="#f2f2f2" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Aenderungen werden in Differenzdatei geschrieben, bei Abmeldung zusammengefuehrt</span></span>

</td></tr><tr valign="top"><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">2 (Read-Only)</span></span>

</td><td bgcolor="#ffffff" width="50%"><span style="font-family: Arial, serif;"><span style="font-size: small;">Nur lesender Zugriff, Aenderungen werden verworfen</span></span>

</td></tr></tbody></table>

<table cellpadding="7" cellspacing="0" id="bkmrk-empfehlung%3A-bei-eine" width="100%"><colgroup><col width="256*"></col> </colgroup><tbody><tr><td bgcolor="#d6e3f8" valign="top" width="100%"><span style="font-family: Arial, serif;"><span style="font-size: small;">**Empfehlung:** </span></span><span style="font-family: Arial, serif;"><span style="font-size: small;">Bei einem einzelnen Terminalserver brauchst du dir darueber keine Gedanken machen – da kann sich der User ohnehin nur einmal anmelden.</span></span>

</td></tr></tbody></table>

## <span style="font-family: Arial, serif;"><span style="font-size: medium;">**10.6 Outlook Cache begrenzen**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Um zu verhindern, dass der Outlook-Cache die Container sprengt, kannst du per GPO begrenzen wie viele Monate Outlook cached:</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">**GPO-Pfad:**</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">*User Configuration -&gt; Administrative Templates -&gt; Microsoft Outlook -&gt; Account Settings -&gt; Exchange -&gt; Cached Exchange Mode*</span></span>

- <span style="font-family: Arial, serif;"><span style="font-size: small;">"Use Cached Exchange Mode" -&gt; Aktiviert</span></span>
- <span style="font-family: Arial, serif;"><span style="font-size: small;">"Sync Settings" -&gt; z.B. 3 Monate oder 6 Monate</span></span>

<span style="font-family: Arial, serif;"><span style="font-size: small;">Das reduziert den Speicherbedarf des Outlook-Caches erheblich.</span></span>

<span style="color: #888888;"><span style="font-family: Arial, serif;"><span style="font-size: small;">*Stand: Januar 2026 | Erstellt mit Claude*</span></span></span>

# Remote Desktop Service (RDS)

# RDS Lizenzserver festlegen und RDS Mode festlegen

Beschreibung:

Über das Programm Remotedesktop-Lizenzsierungsdiagnose bekommen wir heraus ob alles mit dem RDS in Ordnung ist.  
Diese angaben müssen übrigends auf jeden Terminalserver gemacht werden.  
In der Regel hat man nur einen. Auf dem Terminalserver läuft dann auch der Remotdesktop Lizenzserver.  
Hat man mehrere Terminalserver läuft natürlich nur auf einem der Lizenzserver oder sogar seperat und man wählt diese auf den anderen Servern aus.  
  
Hier mal die Fehler angemarkert die sich übrigends wiederholen.  
Was ist zu tun?

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/Jy5tWbgdNvQ0Tqz9-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/Jy5tWbgdNvQ0Tqz9-grafik.png)

- Lizenzserver angeben
- Modus angeben pro Gerät oder Pro Benutzer

Vorgehen:

gpedit.msc öffnen

Dann Computerconfiguration -&gt; Administrative Vorlagen -&gt; Windows Komponenten

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/uypNNgHODUCwxSoS-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/uypNNgHODUCwxSoS-grafik.png)

Remotedesktopdienste -&gt; Remotedesktop-Host -&gt; Lizenzensierung

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/NZuOIQSg27EozCbp-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/NZuOIQSg27EozCbp-grafik.png)

Als erstes doppelklick auf Angebene Remotdesktop-Lizenzserver verwenden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/cFTgw83DCZABZoCp-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/cFTgw83DCZABZoCp-grafik.png)

Nun Aktivieren einhacken, IP Adresse des Lizenzserver eingeben, auch wenn der Selbe Server ist immer die IP angeben, kein loopback Adapter, sprich 127.0.0.1 . Dann übernehmen.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/lxCoY60VJMFXOMak-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/lxCoY60VJMFXOMak-grafik.png)

Nun doppelklick auf Remotdesk Lizenzsierungsmodus festlegen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/2E12ZDAcA7tkTh6E-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/2E12ZDAcA7tkTh6E-grafik.png)

Nun auf aktiviert klicken, Dann Auswählen ob Pro Gerät oder Benutzer lizensiert werden soll.  
Iich habe in diesem Fall Benutzerlizenzen gekauft, also nach Benutzer.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/4DSypqWTrQTPqhmn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/4DSypqWTrQTPqhmn-grafik.png)

Nun noch in einer Administrator cmd

```
gpupdate /force
```

Ausgabe:

```
Microsoft Windows [Version 10.0.26100.1742]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\Users\administrator>gpupdate /force
Die Richtlinie wird aktualisiert...

Die Aktualisierung der Computerrichtlinie wurde erfolgreich abgeschlossen.
Die Aktualisierung der Benutzerrichtlinie wurde erfolgreich abgeschlossen.


C:\Users\administrator>
```

Wir öffnen wieder die Diagnose oder wenn noch offen, klicken wir auf aktualisieren.  
Wir haben imm noch Fehler, aber wer lesen kann ist klar im Vorteil.  
Wir haben im Lizenzmanager noch keine RDS Lizenzen hinterlegt.  
Ursache. Vergessen, oder noch keine gekauft. (Was auch beabsichtigt sein kann)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/VYNF3RkKt1ODF6mv-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/VYNF3RkKt1ODF6mv-grafik.png)  
Nun haben wir uns Liznzen gekauft oder hatten es nur vergessen einzutragen.  
Dies machen wir im Remotedesktop Lizenzsierungsmanager.  
Da wir jetzt den modus und Server angeben haben, ist aus dem grünen Haken ein Warndreieck geworden.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/XoGNsrG5q8sjzgXY-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/XoGNsrG5q8sjzgXY-grafik.png)

Rechtsklick drauf und dann Eigenschaften

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/DZpyFDT3l13FneFR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/DZpyFDT3l13FneFR-grafik.png)

Bei Verbindungsmethode Telefon auswählen , Land Deutschland und auf ok klciken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/YYkyOFKChbEtyOEB-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/YYkyOFKChbEtyOEB-grafik.png)

Rechtklick drauf und dann Lizenzen installieren anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/Qg3c1TznlL0yOjhc-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/Qg3c1TznlL0yOjhc-grafik.png)

Dort dann Lizenznummer rein und weiter

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/J6y73lFU3mth5yms-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/J6y73lFU3mth5yms-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/MZcHGYUAeJVLuKAk-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/MZcHGYUAeJVLuKAk-grafik.png)

Wie zu sehen, Lizenzen sind installiert aber imm noch ein Warndreieck.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/ef3P2ooHQjyLi0OM-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/ef3P2ooHQjyLi0OM-grafik.png)

Dazu wieder Rechtklick auf Terminal01 und dann Konfiguration Prüfen anklicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/wHWH5CY6AsComwOt-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/wHWH5CY6AsComwOt-grafik.png)

Dort sehen wir das der Liezenzserver in der Gruppe Terminalserver-Lizenzserver fehlt.  
Nun einfach auf Zur Gruppe hinzufügen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/pIdsRBCcLNiEmz2H-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/pIdsRBCcLNiEmz2H-grafik.png)

Wir sind Admin, also weiter

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/QSo1eRvcJdJDFajC-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/QSo1eRvcJdJDFajC-grafik.png)

Hat geklappt

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/Pb8Csoye007dyg1g-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/Pb8Csoye007dyg1g-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/cZbyxRPeiiwRRzqY-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/cZbyxRPeiiwRRzqY-grafik.png)

Haken grün, Perfekt.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/pzC9uCNtHI1r5lSw-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/pzC9uCNtHI1r5lSw-grafik.png)

Nun in die Diagnose zurück und aktuallisieren anklicken.  
Alles in Ordnung.

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/scaled-1680-/ZHrTNO0nbLyWU9Kn-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-12/ZHrTNO0nbLyWU9Kn-grafik.png)

Fertig

# Fehlerbehebung

# Windows search wird gewartet beim Abmelden

### Beschreibung:

man will sich vom Server abmelden, Remote und diese Meldung kommt.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2026-03/scaled-1680-/RzlVcYTo11z8CavF-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2026-03/RzlVcYTo11z8CavF-image.png)

  
Herzlichen Glückwunsch.  
  
Der Windows Search Indexer ist mal wieder verreckt.  
Mit anderem benutzer einloggen und Dienst stoppen bringt nichts.  
  
Holzhammer Methode: Admin cmd auf und

```
taskkill /f /im SearchIndexer.exe
```

eingeben.  
Dann über Dineste den Serach Indexer wieder starten.  
Fertig.