Microsoft bietet uns mit Universal Print eine neue Moderne Art Drucker zu verwalten und zu verteilen. Nicht aber in jedem Szenario ist Universal Print die Optimale Lösung, gerade wenn Multifunktionsgeräte spezielle Funktionen wie Kostenstellen oder spezielle Benutzerinterfaces haben, reicht der Funktionsumfang nicht. In solchen Fällen bewährt sich der klassische freigebende Drucker im Netzwerk via Printserver. In den Intune Richtlinien selbst gibt es die Option, freigegebene Drucker zu verteilen, diese Richtlinie funktioniert aus meinen Erfahrungen aber nicht zuverlässig genug. Darum habe ich ein Script erstellt, welches die Drucker beim Login eines Benutzers und bei einem Netzwerkwechsel verbindet.
Voraussetzungen
- Drucker sind auf einem Printserver (AD Join) im Netzwerk freigegeben
- Der Printserver ist via FQDN erreichbar
- Der Benutzer ist mit dem lokalen Active Directory synchronisiert
PowerShell Script
Vorbereitung
Im Script selbst musst du den Print-Server und die zu verbindenden Drucker angeben. Optional hast du zudem die Möglichkeit bestehende Drucker zu entfernen.
Variabel | Inhalt |
---|---|
$Prt_Server Linie 8 | FQDN-Adresse deines Print-Servers |
$Prt_Shares Linie 9 | Freigabenamen deiner Drucker (Kommagetrennt und in Anführungszeichen) |
$REMOVE_fromServer Linie 10+ | $true = löscht nur Drucker mit exakten Freigabenamen $false = löscht den Drucker, wenn der Name beinhaltet ist |
$Prt_REMOVEs Line 11+ | Optional, nur nötig, falls du bestehende Drucker entfernen möchtest. |
Bei der Ausführung überprüft das Script als erstes, ob der Druckserver erreichbar ist. Ist dies nicht der Fall, wird der Vorgang beendet, um unnötige Prozesse auf dem Gerät zu vermeiden. Wird der Server aber erkannt, wird jeder angegeben Drucker, der noch nicht verbunden ist, verbunden.
Verteilen mit Intune / Endpoint Manager
Das Script kannst du im Endpoint Manager unter "Devices > Windows > PowerShell scripts" hochlade und verteilen.
Mit dem Script kannst du gewährleisten, dass mit Intune freigegebene Drucker verbunden werden.
Möchtest du nun, dass Windows keine Drucker weiteren automatisch verbindet, die im Netzwerk sind? Dann habe ich hier einen Beitrag für dich: Windows "Drucker automatisch verbinden" deaktivieren - Intune
Hello. Thanks for this. Just an FYI doesn't seem to work in my Environment. Scheduled task is created and everything however printer will not map. Will map with the Add-Printer -ConnectionName $PrinterShareName if I map it manually
You're welcome.
Do you maybe block vbs scripts?
same goes for me scheduled task is created but printer does not map 🙁 vbs scripts are not being blocked tried to run the task manually but still not mapping
I've uploaded a small fix. Previously the transcript for connection could only be created if the user has admin rights.
Now the transcript will be located at: C:\Users\%username%\AppData\Local_MEM
Could you check if it works for you like this?
Mapping still not working...
what does the users log say?
C:\Users\%username%\AppData\Local_MEM
Hello! Thank you for the article and script. Like some others have stated, the scheduled task is being created but the installation of the printer is failing. Checking the logs, I am seeing the line detailed below. I've tried adding the printer/server name a bit differently but that made no change. I'm still playing around with the script but as far as I can tell, there should be no reason for the server/printer to not be found...
PS>TerminatingError(Add-Printer): "The running command stopped because the preference variable "ErrorActionPreference" or common parameter is set to Stop: The specified server does not exist, or the server or printer name is invalid. Names may not contain ',' or '\' characters."
Error adding \\servername.domain.com\printer1234
The specified server does not exist, or the server or printer name is invalid. Names may not contain ',' or '\' characters.
Do you reach the print server if you type in "\\servername.domain.com" in your Windows Explorer?
Pingback: Point and Print & Intune | scloud
Hi, I was wondering how would you ammend the script to add a further print server? We have 2 printer servers with 1 printer on each.
You can deploy the script twice. Just make sure you change the PackageName on the second one.