Microsoft hat sich dazu endlich mal geäußert. Die Restriktionen fingen wegen der Printingnightmare-Lücke an. Microsoft hat einfach auch Adminrechte für die Treiberinstallation verlangt, obwohl Point and Print konfiguriert ist und die Treiberquellen damit auf die Druckserver beschränkt sind. Das kam mit dem 2. Sicherheitsupdate zu Printingnightmare. Dann haben die einen Registry-Wert eingeführt, mit dem man diese Einschränkung wieder aufheben kann. Und den Wert haben die nun endlich auch mal verraten.
Tag: drucker
Für dieses Script wird die PsExec.exe von SysInternals benötigt, um die Powershell mit dem Systemaccount zu starten.
PowerShell starten:
Start-Process -FilePath cmd.exe -Verb Runas -ArgumentList ‘/k C:\pstools\PsExec.exe -i -s powershell.exe’
Scriptcode:
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceClasses{0ecef634-6ef0-472a-8085-5ad023ecbccd}##?#SWD#PRINTENUM#"| Remove-Item -Recurse -Force Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Class{1ed2bbf9-11f0-4084-b21f-ad83a8e6dcdc}*" -exclude "Properties" | Remove-Item -Recurse -Force Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Enum\SWD\PRINTENUM*"| Remove-Item -Recurse -Force get-childitem "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceContainers\" -ErrorAction SilentlyContinue -Recurse -exclude "{00000000-0000-0000-FFFF-FFFFFFFFFFFF}"|where-object {$_.property -like "SWD\PRINTENUM"}| foreach-object {(get-item $_.PSParentPath).PSParentPath}|Remove-Item -recurse -Force Get-childItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider*" | Remove-Item -Recurse -Force
Bei neueren Terminal Server Umgebungen (bei uns Windows Server 2019) werden die verbundenen Drucker bei der Abmeldung gelöscht. Dieses Verhalten kann man über die Registry auf das alte Verhalten umstellen (Drucker werden beibehalten)
Für jeden Terminal Server folgenden Registry Eintrag setzen:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider] "RemovePrintersAtLogoff"=dword:00000000
Außerdem soll auf allen Druckern die „Druckaufbereitung auf dem Client“ abgeschaltet werden. Das kann man über die Druckverwaltung des Druckservers einstellen.
Verschiedene Methoden einen Drucker per Script zu verbinden.
Mit einem kleinen Umweg kann man die alte, aus WinXP gewohnte, Ansicht für installierte Drucker öffnen. Wer weiß wozu das mal gut ist…
shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}\0\::{2227A280-3AEA-1069-A2DE-08002B30309D}
Eine kurze Übersicht der Befehle zur Verwaltung von Druckern mit der PowerShell. Da die PowerShell 2.0 keine eigenen Möglichkeiten für die Druckerverwaltung bietet, muss auf die Windows Management Instrumentation (WMI) und/oder den Windows Scripting Host (WSH) zugegriffen werden.