Freigeben über


Ausführen eines Containers mit einem gMSA

Gilt für: Windows Server 2025, Windows Server 2022, Windows Server 2019

Um einen Container mit einem über Gruppen verwaltetes Dienstkonto (Group Managed Service Account, gMSA) auszuführen, geben Sie die Anmeldeinformationsspezifikationsdatei für den --security-opt-Parameter von docker run an:

docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 -it mcr.microsoft.com/windows/server:ltsc2022 powershell

Wichtig

Unter Windows Server 2016, Versionen 1709 und 1803, muss der Hostname des Containers mit dem gMSA-Kurznamen übereinstimmen.

Im vorherigen Beispiel ist der gMSA SAM-Kontoname webapp01, sodass der Containerhost auch webapp01benannt wird.

Unter Windows Server 2019 und höher ist das Hostnamenfeld nicht erforderlich, aber der Container identifiziert sich weiterhin durch den gMSA-Namen anstelle des Hostnamens, auch wenn Sie explizit eine andere angeben.

Um zu überprüfen, ob die gMSA ordnungsgemäß funktioniert, führen Sie das folgende Cmdlet im Container aus:

# Replace contoso.com with your own domain
PS C:\> nltest /sc_verify:contoso.com

Flags: b0 HAS_IP  HAS_TIMESERV
Trusted DC Name \\dc01.contoso.com
Trusted DC Connection Status Status = 0 0x0 NERR_Success
Trust Verification Status = 0 0x0 NERR_Success
The command completed successfully

Wenn der Status der vertrauenswürdigen DC-Verbindung und der Vertrauensüberprüfungsstatus nicht NERR_Successsind, befolgen Sie die Fehlerbehebungsanweisungen, um das Problem zu beheben.

Sie können die gMSA-Identität innerhalb des Containers überprüfen, indem Sie den folgenden Befehl ausführen und den Clientnamen überprüfen:

PS C:\> klist get webapp01

Current LogonId is 0:0xaa79ef8
A ticket to krbtgt has been retrieved successfully.

Cached Tickets: (2)

#0>     Client: webapp01$ @ CONTOSO.COM
        Server: krbtgt/webapp01 @ CONTOSO.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
        Start Time: 3/21/2019 4:17:53 (local)
        End Time:   3/21/2019 14:17:53 (local)
        Renew Time: 3/28/2019 4:17:42 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: dc01.contoso.com

[...]

Um PowerShell oder eine andere Konsolen-App als gMSA-Konto zu öffnen, können Sie den Container bitten, unter dem Netzwerkdienstkonto anstelle des normalen ContainerAdministrator-Kontos (oder ContainerUser für NanoServer) auszuführen:

# NOTE: you can only run as Network Service or SYSTEM on Windows Server 1709 and later
docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 --user "NT AUTHORITY\NETWORK SERVICE" -it mcr.microsoft.com/windows/servercore:ltsc2019 powershell

Bei der Ausführung als Netzwerkdienst können Sie die Netzwerkauthentifizierung als gMSA testen, indem Sie versuchen, eine Verbindung mit SYSVOL auf einem Domänencontroller herzustellen:

# This command should succeed if you're successfully running as the gMSA
PS C:\> dir \\contoso.com\SYSVOL


    Directory: \\contoso.com\sysvol


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d----l        2/27/2019   8:09 PM                contoso.com

Sie können gMSAs nicht nur zur Ausführung von Containern, sondern auch für Folgendes verwenden:

Wenn während des Setups Probleme auftreten, finden Sie im Leitfaden zur Problembehandlung mögliche Lösungen.