Zum Inhalt springen

Pwershell Dateien aus Verzeichnis drucken


Maniska

Empfohlene Beiträge

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?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...