gMSA TroubleShooting unter Windows Server 2025

Einleitung

Auf meinem ersten produktiven Windows Server 2025 wollte ich eine geplante Aufgabe importieren, mit der die Datensicherung über Windows Server Backup gesteuert werden soll. Die Aufgabe selber läuft bei allen Servern mit unterschiedlichen Group Managed Service Accounts (gMSA).

Für die Konfiguration der Aufgabe mit diesem speziellen Account nutze ich mein PowerShell-Script „gMSA-Admin“. Das funktionierte im Windows Server 2016, 2019 und 2022 hervorragend. Unter Windows Server 2025 bekomme ich aber einen Fehler angezeigt:

gMSA-Problem unter Windows Server 2025

In diesem Artikel analysiere ich das Problem und finde die Lösung.

TroubleShooting

Nachstellen des Problems

Zur Eingrenzung der Ursache habe ich mir ein altes Demo-Script aus meiner Kursunterlagensammlung geholt und experimentiere damit auf dem Testserver „Win-2025“. Das ist mein Script:

# RSAT für AD installieren
    Install-WindowsFeature RSAT-AD-PowerShell | Out-Null

# Variablen
    $Domain = (Get-ADDomain).dnsroot
    $gMSA = 'gMSA-Test1'

    $MemberServer = 'Win-2025' | Get-ADComputer

# neuen gMSA erstellen      
    New-ADServiceAccount `
        -Name $gMSA `
        -DNSHOSTNAME "$gMSA.$Domain" `
        -PrincipalsAllowedToRetrieveManagedPassword $MemberServer
                    
# Installieren des gMSA (nur für Testzwecke)
    Install-ADServiceAccount $gMSA
    Test-ADServiceAccount $gMSA    

# ScheduledTask erstellen        
    $action    = New-ScheduledTaskAction  "c:\scripts\test-$gMSA.bat" 
    $trigger   = New-ScheduledTaskTrigger -AtLogOn
    $principal = New-ScheduledTaskPrincipal -UserID "$Domain\$gMSA$" -LogonType Password
    Register-ScheduledTask -TaskName "Test-$gMSA" –Action $action –Trigger $trigger –Principal $principal -ErrorAction SilentlyContinue | Out-Null

    New-Item -Path "c:\scripts"  -ItemType directory -ErrorAction SilentlyContinue | Out-Null
    "whoami > c:\Scripts\Protokoll-$gMSA.txt" | Out-File -FilePath "c:\scripts\test-$gMSA.bat" -Encoding default -ErrorAction SilentlyContinue

# ScheduledTask testen    
    Start-ScheduledTask -TaskName "Test-$gMSA"
    Get-Content -Path "c:\Scripts\Protokoll-$gMSA.txt"

Zeile 2 installiert dann das PowerShell-Modul Active Directory, dann folgen einige Variablenzuweisungen. Da der Testserver direkt im Tier-0 platziert ist, konnte ich mich mit meiner T0-Kennung mit Domain Admin Berechtigung anmelden und dann mit Zeile 11 einen neuen gMSA anlegen:

gMSA-Problem unter Windows Server 2025

Im Active Directory ist er dann ebenfalls sichtbar:

gMSA-Problem unter Windows Server 2025

Bei der Installation des neuen Accounts in Zeile 17, die nur für demonstrative Zwecke notwendig ist, erhalte ich dann aber einen Fehler:

gMSA-Problem unter Windows Server 2025

„Das Dienstkonto kann nicht installiert werden. Fehlermeldung: Der bereitgestellte Kontext stimmte nicht mit dem Ziel überein“… Die Meldung habe ich noch nicht gesehen, er passt auch nicht zu dem meines gMSA-Admin-Scriptes.

Suche in den Eventlogs #1

Ich durchsuche erst einmal die Eventlogs des Servers und der Domain Controller, denn da müsste doch was zu finden sein. Auf den DCs finde ich aber nur ein einziges Event. Das ist die Anlage des Accounts gewesen:

gMSA-Problem unter Windows Server 2025

Das bringt mich nicht weiter.

Suche mit Wireshark

Da ich einen Wireshark auf dem Testsystem installiert habe, schneide ich mal den Traffic zwischen ihm und den DCs beim Account-Installieren mit. Aber auch hier sehe ich (zugegeben erwartet) nur verschlüsselte Kommunikation beim Abruf des gMSA-Passwortes:

gMSA-Problem unter Windows Server 2025

Suche in den Eventlogs #2

OK. Irgendwo muss der Server das Event protokollieren. Auf meinem Server gibt es 449 Eventlogs. 131 davon haben auch mindestens einen Record:

gMSA-Problem unter Windows Server 2025

Die manuell zu durchsuchen wäre Wahnsinn. Das lasse ich daher die PowerShell erledigen. Mit Get-WinEvent kann ich die Events filtern. Die Treffer speichere ich in einer Array-Variable. Das ist mein Code:

# Auslösen des Events
    Install-ADServiceAccount -Identity 'gMSA-Test1'

# suche in den aktiven Events in der letzten Minute nach dem Namen des Accounts 
    $Treffer = @()

    get-winevent -ListLog * | 
      Where-Object { $_.RecordCount -gt 0 } | 
        ForEach-Object {
          $CurLog = $_

          $Treffer += Get-WinEvent `
              -ErrorAction SilentlyContinue `
              -FilterHashtable @{ 
                  logname   = $CurLog.LogName
                  StartTime = (get-date).AddMinutes(-1)
                  Data      = 'gMSA-Test1' 
               } 
        }

# Ausgabe der Ergebnisse
    $Treffer | Format-List -Property *

Und hier das Ergebnis. Es gibt 2 Events!!!

gMSA-Problem unter Windows Server 2025

Diese Events schaue ich mir genauer an:

gMSA-Problem unter Windows Server 2025

Nun kenne ich das Eventlog: Microsoft\Windows\Security-Netlogon\Operational. Das sehe ich mit in der Ereignisanzeige genauer an. In der XML-Ansicht sieht man auch gut meinen DATA-Filter:

gMSA-Problem unter Windows Server 2025

Der Fehlertext ist identisch mit dem Fehler in der PowerShell. Nun kenne ich aber zusätzlich die Event-ID und die Quelle. Das kann die Internetsuche deutlich vereinfachen:

gMSA-Problem unter Windows Server 2025

Mir fällt aber auf, dass es immer 2 Events mit den Event-IDs 9001 und 9002 gibt. Also prüfe ich noch das andere Event:

gMSA-Problem unter Windows Server 2025

Das könnte die Ursache sein: „Das Konto „gMSA-Test1“ kann nicht als verwaltetes Dienstkonto auf dem lokalen Computer verwendet werden, da nicht alle vom Konto unterstützten Verschlüsselungstypen auf dem lokalen Computer unterstützt werden.“

Analyse der verwendeten Verschlüsselungstypen

Die Verschlüsselungstypen beziehen sich bestimmt auf das Protokoll Kerberos, den gMSA funktionieren nur im Active Directory und da wird Microsoft bestimmt kein veraltetes NTLM nutzen. Daher prüfe ich die Eigenschaften meines gMSA-Kontos. Der gMSA unterstützt noch RC4_HMAC_MD5!

gMSA-Problem unter Windows Server 2025

Und was unterstützt mein Windows Server 2025? Nur die moderneren Verschlüsselungstypen!

gMSA-Problem unter Windows Server 2025

Das ist der Fehler! Nun stellt sich mir die Frage, wo diese Einstellung her kommt. Ein gpresult löst das Rätsel. Es ist die neue Sicherheits-GPO, die ich von Gitlab (hier beschrieben) gezogen habe!

gMSA-Problem unter Windows Server 2025

Die Lösung

Wenn es hier also einen Missmatch gibt, dann kann ich das am gMSA-Konto im Active Directory ändern. Dafür muss ich nur den anderen Bitwert eintragen, der nur AES125 und AES256 erlaubt und RC4 deaktiviert. Die Codes habe ich hier im Internet gefunden: Decrypting the Selection of Supported Kerberos Encryption Types | Microsoft Community Hub. Ich ändere den Wert von 28 auf 24:

gMSA-Problem unter Windows Server 2025

Nun teste ich die Installation des gMSA auf meinem Testserver erneut und suche nach den dazugehörigen Events. Der gMSA lässt sich nun installieren – wenn auch ohne Eventlog auf dem Memberserver:

gMSA-Problem unter Windows Server 2025

Nun teste ich noch die Anlage eines ScriptTasks über die PowerShell. Dieser wird vom gMSA ausgeführt und soll das Ergebnis von whoami in eine Textdatei schreiben:

# ScheduledTask erstellen        
    $action    = New-ScheduledTaskAction  "c:\scripts\test-$gMSA.bat" 
    $trigger   = New-ScheduledTaskTrigger -AtLogOn
    $principal = New-ScheduledTaskPrincipal -UserID "$Domain\$gMSA$" -LogonType Password
    Register-ScheduledTask -TaskName "Test-$gMSA" –Action $action –Trigger $trigger –Principal $principal -ErrorAction SilentlyContinue | Out-Null

    New-Item -Path "c:\scripts"  -ItemType directory -ErrorAction SilentlyContinue | Out-Null
    "whoami > c:\Scripts\Protokoll-$gMSA.txt" | Out-File -FilePath "c:\scripts\test-$gMSA.bat" -Encoding default -ErrorAction SilentlyContinue

Das Ergebnis sieht gut aus:

gMSA-Problem unter Windows Server 2025

Damit sollte mein gMSA-Admin-Script auch wieder laufen:

gMSA-Problem unter Windows Server 2025

Abschluss

Bei solchen Artikeln überlege ich manchmal, ob ich nicht einfach nur das Problem beschreiben und die Lösung präsentieren sollte. Ich finde aber, dass die Schritte im TroubleShooting mindestens genauso wertvoll wie die Lösung sind. Denn wenn ihr die Methodik und die Werkzeuge in Aktion seht und versteht, dann könnt ihr auch andere Probleme lösen. 😉

Und nun kann ich die Sicherungsjobs meiner 3 neuen Windows Server 2025 endlich auf die gMSA-Konten umstellen:

gMSA-Problem unter Windows Server 2025

Stay tuned.

Kommentar hinterlassen