Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anwendungen mit einer Abhängigkeit von Druckdiensten können erfolgreich mit Windows-Containern containerisiert werden. Es gibt spezielle Anforderungen, die erfüllt werden müssen, um die Funktionalität des Druckerdiensts erfolgreich zu aktivieren. In diesem Handbuch wird erläutert, wie Sie Ihre Bereitstellung ordnungsgemäß konfigurieren.
Wichtig
Während der erfolgreiche Zugriff auf Druckdienste in Containern funktioniert, ist die Funktionalität eingeschränkt. Einige druckbezogene Aktionen funktionieren möglicherweise nicht. Beispielsweise können Apps, die eine Abhängigkeit von der Installation von Druckertreibern auf dem Host haben, nicht containerisiert werden, da Treiberinstallation innerhalb eines Containers nicht unterstützt wird. Bitte reichen Sie unten ein Feedback ein, wenn Sie eine nicht unterstützte Druckfunktion finden, die Sie mithilfe von Containern unterstützt sehen möchten.
Konfiguration
- Der Host sollte Windows Server 2019 oder Windows 10 Pro/Enterprise Oktober 2018 update oder höher sein.
- Verwenden Sie das Basisimage für Windows-Container oder das Basisimage für Windows Server-Container. Andere Windows-Containerbasisimages (z. B. Nano Server und Windows Server Core) tragen nicht die Druckserverrolle.
Hyper-V-Isolation
Es wird empfohlen, Ihren Container mit Hyper-V-Isolation auszuführen. Wenn es in diesem Modus ausgeführt wird, können Sie beliebig viele Container verwenden, die Zugriff auf die Druckdienste haben. Sie müssen den Spoolerdienst nicht auf dem Host ändern.
Sie können die Funktionalität mit der folgenden PowerShell-Abfrage überprüfen:
PS C:\Users\Administrator> docker run -it --isolation hyperv mcr.microsoft.com/windows:1809 powershell.exe
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\> Get-Service spooler
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
PS C:\> Get-Printer
Name ComputerName Type DriverName PortName Shared Published
---- ------------ ---- ---------- -------- ------ --------
Microsoft XPS Document Writer Local Microsoft XPS Document... PORTPROMPT: False False
Microsoft Print to PDF Local Microsoft Print To PDF PORTPROMPT: False False
Fax Local Microsoft Shared Fax D... SHRFAX: False False
PS C:\>
Prozessisolation
Da Container mit Prozessisolation einen gemeinsamen Kernel nutzen, können Benutzende nur eine Instanz des Druckspoolerdiensts im Host und allen untergeordneten Containern ausführen. Wenn der Host den Druckspooler ausgeführt hat, müssen Sie den Dienst auf dem Host beenden, bevor Sie den Druckerdienst auf dem Gast starten.
Tipp
Wenn Sie einen Container starten und gleichzeitig sowohl im Container als auch auf dem Host den Spoolerdienst abfragen, melden beide den Status als "läuft". Lassen Sie sich nicht täuschen - der Container kann keine Liste der verfügbaren Drucker abfragen. Der Spoolerdienst des Hosts darf nicht ausgeführt werden.
Um zu überprüfen, ob der Host den Druckerdienst ausführt, verwenden Sie die Abfrage in PowerShell unten:
PS C:\Users\Administrator> Get-Service spooler
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
PS C:\Users\Administrator>
Verwenden Sie die folgenden Befehle in PowerShell, um den Spoolerdienst auf dem Host zu beenden:
Stop-Service spooler
Set-Service spooler -StartupType Disabled
Starten Sie den Container, und überprüfen Sie den Zugriff auf die Drucker.
PS C:\Users\Administrator> docker run -it --isolation process mcr.microsoft.com/windows:1809 powershell.exe
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\> Get-Service spooler
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
PS C:\> Get-Printer
Name ComputerName Type DriverName PortName Shared Published
---- ------------ ---- ---------- -------- ------ --------
Microsoft XPS Document Writer Local Microsoft XPS Document... PORTPROMPT: False False
Microsoft Print to PDF Local Microsoft Print To PDF PORTPROMPT: False False
Fax Local Microsoft Shared Fax D... SHRFAX: False False
PS C:\>