Drucker mit PowerShell und CSV-Datei anlegen


    Tags: ,

    Drucker konfigurierenPowerShell kann nicht nur die Eigen­schaften von vor­han­denen Druckern aus­lesen, sondern solche auch anlegen. Wie bei anderen Auf­gaben empfiehlt sich Power­Shell auch hier bei Bulk-Operationen, also dem Anlegen vieler Drucker. In diesem Fall kann man die Drucker­eigen­schaften aus einer CSV-Datei impor­tieren.

    Um einen Drucker auf einem Print-Server erstellen zu können, benötigen wir zuerst den richtigen Treiber. Viele Unter­nehmen gehen aufgrund einer Vielzahl von Drucker­modellen dazu über, den Universal­drucker­treiber eines Herstellers zu verwenden, um nicht für jedes Modell einen eigenen Treiber vorhalten zu müssen.

    Vor dem Anlagen des Druckers hinterlegt man die dafür nötigen Treiber auf dem Print-Server.

    Dies spart in der Vorbereitung eine Menge Arbeit und wird auch von ver­schiedenen Plattformen wie etwa Citrix unterstützt.

    Printer einzeln anlegen

    Hat man alle benötigten Treiber auf den Print-Server geladen, dann geht es im nächsten Schritt darum, den Printer-Port zu erstellen. Dies gestaltet sich mit PowerShell recht einfach:

    Add-PrinterPort -Name 192.168.0.10 -PrinterHostAddress 192.168.0.10 -PortNumber 9100 `
    -SNMP 1 -SNMPCommunity "public" -ErrorAction SilentlyContinue

    Auch der Printer-Port lässt sich mit PowerShell anlegen

    Ist der benötigte Port angelegt, dann können wir mit dem eigentlichen Einrichten des Druckers beginnen:

    Add-Printer -Name "Drucker-Verwaltung" -DriverName "KyoceraXYZ" `
    -PortName "192.168.0.10" -Location "Verwaltung" `
    -Comment "Erster Stock hinten links" -Shared `
    -ShareName "Drucker-Verwaltung" -Published

    Der neu angelegte Drucker enthält alle Eigenschaften, die in Add-Printer spezifiziert wurden.

    Der Befehl Add-Printer erzeugt also einen Drucker auf dem Print-Server. Dazu geben wir ihm den Namen des Druckers und des Treibers, welchen wir weiter oben bereits auf dem Druckserver vorbereitet hatten, sowie den Port mit.

    Der Drucker wäre so schon einsatzbereit, bei der Nutzung in Unternehmen bedarf er aber noch einer weiteren Konfiguration. So bietet es sich an, einen Kommentar im betreffenden Feld zu hinterlassen oder festzulegen, ob und wie der Drucker freigegeben werden darf.

    Der Drucker lässt sich beim Anlegen mit PowerShell auch gleich freigeben.

    Damit wäre das Anlegen eines einzelnen Druckers abgeschlossen und er könnte benutzt werden.

    Druckereigenschaften aus CSV-Datei importieren

    Hat man aber eine größere Zahl an Druckern anzulegen, macht es Sinn, ihre Eigenschaften in einer CSV Datei zu speichern und die Drucker dann über PowerShell zu importieren. Dabei iteriert man über jede Zeile der CSV-Datei und ruft Add-Printer mit jedem Datensatz auf:

    Import-CSV -Delimiter ";" -Path "C:\Drucker.csv" |
    %{ Add-Printer -Name $_.Name -DriverName $_.DriverName -PortName $_.PortName `
    -Location $_.Location -Comment $_.Comment }

    Die Spaltenüberschriften in der CSV-Datei sollten mit den Namen der Parameter von Add-Printer übereinstimmen, so dass sie eindeutig zugeordnet werden können.

    Print-Server duplizieren

    Einige Unternehmen betreiben einen zentralen Druck-Server, und jede Niederlassung hält nochmal zusätzlich ihren eigenen Print-Server vor. Es kommt aber auch vor, dass für einen möglichen Hardware-Defekt ein weiterer identischer Druck-Server bereitstehen soll.

    Für diese Anforderung oder wenn der Druck-Server einfach umgezogen werden soll, spart man einige Arbeit, wenn man eine bestehende Konfiguration auf einen anderen Print-Server übertragen kann.

    Auch hierfür gibt es mit dem Tool PrintBrm.exe eine geeignete Lösung, mit ihm lässt sich der Export- und Importvorgang auf einem Druckserver erledigen.

    Optionen des Tools PrintBrm.exe, mit dem sich Druckerkonfigurationen ex- und importieren lassen.

    Es findet sich unter %SystemRoot%­\System32­\Spool\Tools, der Schalter -B steht für "Backup":

    PrintBrm.exe -B -S \\PRINTSERVERNAME -F printserver.printerExport

    Für die umgekehrte Variante benötigt man den Schalter -R (für "Restore"):

    PrintBrm.exe -R -S \\ PRINTSERVERNAME -F Export.printerExport

    Die Exportdatei enthält alle Daten der Drucker auf dem Druckserver inklusive Treiber. Ein neuer Print-Server ist nach dem Einlesen einer solchen Konfiguration sofort ohne weitere Vorbereitungen (wie Treiber vorladen oder Ports anlegen) einsatzbereit.

    Diese Methode kann man auch nutzen, um einfach die Konfiguration eines Druckservers zu sichern.

    1 Kommentar

    Bild von Jörg Zschimmer
    26. Oktober 2019 - 12:26

    Danke für den tollen Artikel!
    Ich mache das seit einiger Zeit schon mit einer Batch-Datei unter CMD. Wird mal Zeit auf PS umzustellen! :-)
    Der Import scheitert bei mir übrigens immer, wenn nichtsignierte Druckertreiber installiert sind, daher ist die Scriptvariante immer noch bei mir die erste Wahl.