Maniska Geschrieben 14. November 2018 Geschrieben 14. November 2018 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? Zitieren
Gast Geschrieben 14. November 2018 Geschrieben 14. November 2018 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 Zitieren
RipperFox Geschrieben 14. November 2018 Geschrieben 14. November 2018 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.. Zitieren
Maniska Geschrieben 14. November 2018 Autor Geschrieben 14. November 2018 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 Zitieren
Gast Geschrieben 15. November 2018 Geschrieben 15. November 2018 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 Zitieren
Eratum Geschrieben 15. November 2018 Geschrieben 15. November 2018 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 Zitieren
Maniska Geschrieben 15. November 2018 Autor Geschrieben 15. November 2018 Danke, die Hochkommata haben es erleuchtet (also als ich die Teile dann an der richtigen Stelle hatte...). Mistige Dinger, die sehen aber auch alle gleich aus^^ Blöd, dass Powershell bei lokalen Ressourcen mit Leerzeichen kann, im UNC Pfad aber nicht. Zitieren
Enno Geschrieben 15. November 2018 Geschrieben 15. November 2018 Leerzeichen sind pöse. GAANZ ganz Pöse. Die verwendet man auch nicht. Nie, weder lokal noch im Netzwerk. Zitieren
Eratum Geschrieben 19. November 2018 Geschrieben 19. November 2018 Am 15.11.2018 um 14:52 schrieb Enno: Leerzeichen sind pöse. GAANZ ganz Pöse. Die verwendet man auch nicht. Nie, weder lokal noch im Netzwerk. Erzähl das mal Nutzern mit ganzen Sätzen als Dateinamen Zitieren
Empfohlene Beiträge
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.