Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

nehmen wir einmal an, es gibt einen Etikettendrucker an der nicht direkt aus dem ERP angesteuert werden kann weil es keine passenden Unix Treiber gibt. Nehmen wir weiter an, es gibt keine Alternative zu diesem Drucker, aber auch kein Problem das Teil unter Windows zum laufen zu bekommen. Außerdem kann das ERP System die zu druckenden Dateien als .pdf in einem Verzeichnis ablegen... Also drucken wir eben über den Umweg "Datei in Ordner ablegen".

Hierzu habe ich mir ein kleines Powershellscript gebastelt, welches auch prinzipiell funktioniert, allerdings nur wenn ich einen lokalen Drucker auswähle, nicht mit einem Netzwerkdrucker.

Der Drucker ist ein MuFu Gerät, welches ich mir lokal über die IP gemapt habe. Auf dem Printserver gibt es das Gerät 3x (s/w auf Normalpapier, Farbe auf Normalpapier, Briefpapier). Ich möchte auf dem Drucker "\\printserver\Druckername-Schacht1" drucken, aber ich bekomme es einfach nicht hin, der Drucker "Druckername lokal" klappt problemlos. Daher vermute ich, dass ich falsch mit dem Drucker reden möchte.

$files = Get-ChildItem “C:\Test\*.*”
$printer = "iR-ADV C5535"
#$printer = "\\printserver\Drucker Schacht1"
#$printer = "Drucker Schacht1"
#$printer = "Drucker Schacht1 an printserver"

ForEach ($file in $files){
Start-Process –FilePath $File.FullName –Verb PrintTo -PassThru $printer | %{sleep 10;$_} | kill
#Remove-Item ($file).FullName
}

Alle 4 Drucker sind das identische Gerät,

  • $printer = "iR-ADV C5535" --> ist der Drucker lokal eingerichtet
  • #$printer = "\\printserver\Drucker Schacht1" --> ist die Freigabe auf dem Printserver
  • #$printer = "Drucker Schacht1" --> ist der Name des Druckers
  • #$printer = "Drucker Schacht1 an printserver" --> so wird er mir in Windows unter Geräte und Drucker angezeigt

Was ist falsch? Wie muss ich den Netzwerkdrucker ansprechen dass er mich versteht?

 

Folgende Lösungsansätze habe ich:

  • Wie sieht es denn mit den Berechtigungen aus? Darf der Account, unter dem das Skript läuft, auf den Netzwerkdruckern drucken?
  • Alternativ kannst du auch mal das CMDLET "Out-Printer" probieren.

mfg Hendrik232

Wenn es lokal funktioniert: Zur Not kannst Du den Drucker einfach nochmal pseudo-lokal einrichten - "Loken Drucker hinzufügen" und dann als Druckerport den UNC Pfad über "Anschluss hinzufügen"->"Local port" wählen, also als "Local port"

\\printserver\Drucker Schacht1

eingeben..

  • Autor

Berechtigungsproblem schließe ich aus, da es mein Account und mein Standarddrucker war mit dem ich getestet habe. Auch mit DEM Adminaccont hat es nicht geklappt.

Und nein, einfach den Standarddrucker nehmen ist leider keine Lösung, da der betreffende Drucker an keinem Arbeitsplatz Standard sein sollte.

So wie es ausschaut wird das Script nachher auf dem Printserver laufen, dann hab ich das Problem mit dem Netzwerkdrucker eh nicht, aber ich will wissen was da jetzt das Problem sein soll. Es ist ja jetzt nicht soo abwegig Daten per Powershell auf einem bestimmten Netzwerkdrucker ausdrucken zu wollen...

Meine Vermutung ist, dass meine Syntax beim ansprechen des Druckers einfach falsch ist, und dieser nicht weiß dass er gemeint ist

"Out-Printer" wird wohl leider rausfallen, da dieses cmdlet wohl nicht bei .pdf Dateien funktionieren soll (nicht getestet, nur gelesen)

Ps: Wenn ein Mod hier rein schaut, ich möchte gerne ein "O" kaufen für den Titel

Hallo @Maniska

zwei Dinge sind mir noch eingefallen:

  • Du könntest mal versuchen dem Start-Process explizit ein Credential-Objekt mitzugeben
  • Du solltest auch mal den Schalter "LoadUserProfile" angeben. Ich bin mir nicht ganz sicher, aber ich meine, dass lokale Drucker dem System ("HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Control - Print" irgendwo da.) zugeordnet sind. Die Netzwerkdrucker sind aber im Userprofil ("HKEY_CURRENT_USER - Printers - Connections" müsste das sein) gespeichert.
Wenn das nichts hilft, dann würde ich im nächsten Schritt mal den Netzwerktraffic mitschneiden und gucken, ob irgendwas zum Printserver geschickt wird. Das hilft dann das Problem einzugrenzen.
 
mfg Hendrik232

Ich hab' das gerade mal nachgestellt. Mit einem TXT File und dem Freigabenamen (\\<Servername>\<Freigabe>) funktioniert das bei mir ohne Probleme.

Ist der angegebene Freigabename tatsächlich der, der im System gemapped ist? (get-printer)

Hast du da tatsächlich Leerzeichen im Namen? Bei mir konnte die PS das dadurch gerade nicht richtig auflösen.
Geholfen hat: '"\\<Server>\Druckername mit Leerzeichen"' (also einfaches Hochkomma davor und dahinter)

Grüße

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.