Seite 1 von 1

Windows 10 Drucken Fehler Base/4313

Verfasst: Mi, 29. Aug 2018 12:00
von littlea1991
Hallo Liebe Forenmitglieder,

ich bin auf Windows 10 mittlerweile umgestiegen und versuche darüber zu drucken. Leider kommt der Fehler: "
sie können keine verbindung mit der dateifreigabe herstellen weil sie unsicher ist. Diebe Freigabe Erfordert das alte SMB1 Protokoll
Ich habe anbei ein Screenshot der Fehlermeldung hinzugefügt. Wir verwenden ein Zebra ZT-420 der über einen Windows Server 2003 als Freigabe im Programm angesprochen wird. Gibt es eine Möglichkeit den Drucker mit einem neueren Protokoll (SMB2 oder 3) ansprechbar zu machen?
Vielen Dank im vorraus für eure Antworten!

Ali

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Mi, 29. Aug 2018 13:44
von brandelh
Evtl. DOSBOX ...

UNC Name statt Umlenkung auf LPT Schnittstelle sollte (ich weiß es nicht genau) SMB2 Protokoll nutzen.

Aber ich empfehle den Druck umzustellen auf zeitgemäße Druckausgaben ;-)

Frage, kann Windows selbst eine Druck Test Seite auf den Drucker über den Druckertreiber drucken ?

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Mi, 29. Aug 2018 14:17
von littlea1991
laut der Dell Website kann Windows 10 über die Druckeigenschaften eine Testseite drucken. Vielen Dank für den Hinweis mit der LPT Schnittstelle!

Gruß

Ali

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Mi, 29. Aug 2018 14:49
von brandelh
Wenn der Druckertreiber drucken kann, dann kann man auch Xbase++ Grafischen Druck nutzen (XbpPrinter()).
Es gibt verschiedene Möglichkeiten das umzusetzen, eines ist unter Lineprinter zu finden hier in der Wissensbasis ...

Hier ein paar Links zu dem Thema:

viewtopic.php?f=20&t=10561&p=123558&hil ... er#p123558

viewtopic.php?f=25&t=9006&p=120603&hili ... er#p120603

Wenn der Drucker den lineprinter Modus unterstützt, wäre das eine einfache Lösung, einfach mal ausprobieren ...

viewtopic.php?f=16&t=511&p=4866&hilit=lineprinter#p4866

Umstellen nach XbpPrinter() über meine Druckerklasse

viewtopic.php?f=16&t=116

Wichtig ist, dass du auf die eingebaute Druck Warteschlange druckst, denn die hat genug Rechte ;-)

Ansonsten kann man darüber nachdenken, ob man mit L&L besser bedient ist.

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Mi, 29. Aug 2018 22:48
von AUGE_OHR
littlea1991 hat geschrieben: Mi, 29. Aug 2018 12:00 Wir verwenden ein Zebra ZT-420 der über einen Windows Server 2003 als Freigabe im Programm angesprochen wird.
ist der auch für UPS Label zuständig :?:

ein Windows 2003 Server hat KEIN SMB2 d.h. mit Windows 10 als Workstationen wird deine Xbase++ App nicht im Netzwerk laufen :!: es ist mindesten ein Server 2008 notwendig für SMB2 ...
oder man installiert wieder SMB1 unter Windows 10 [-X

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 6:39
von brandelh
Ich frage mich schon, wie ein Win 10 Rechner ohne SMB1 in einem SMB1 Netzwerk (laut Jimmys Aussage) in Betrieb gehen konnte,
angeblich wird das doch nur abgeschaltet, wenn es nicht gebraucht wird.

SMB1 nachinstallieren ist der einfachste Weg um die Probleme weg zu bekommen.

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 10:02
von littlea1991
Vielen Dank für eure Antworten @Jimmy und @brandelh,
Nur die Drucker sind über einen Windows Server 2003 als Freigabe angebunden, sollen aber jetzt über einen Windows Server 2012 (und dementsprechend SMB2) angebunden werden. Deine Druckerklasse ist wirklich sehr Hilfreich! Wie könnte man denn mit ihr Netzwerkfreigaben ansprechen? Ich habe gesehen das man mit oXbpPrinter:list() die installierten Drucker aufrufen kann, allerdings zeigt er keine Netzwerkfreigaben an.
Vielen Dank für eure Hilfe!

Ali

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 10:24
von brandelh
XbpPrinter() und damit meine Klasse spricht keinen Drucker direkt an, sondern geht immer über das in Windows hinterlegte Drucker-Objekt (Drucker-Wartenschlangen-Objekt ?) ...
In einem "richtigen" Active Direktory Netzwerk wird der zentrale Drucker vom Server verwaltet und freigegeben, bei der USER Anmeldung sollte dann auch der Netzwerkdrucker verfügbar sein.

Bei meinem kleinen lokalen peer to peer Netzwerk installiere ich auf Windows den Netzwerkdrucker (die Treiber sind von dem Server) wie jeden anderen auch, nur halt bei der Suche als Netzwerkdrucker ...

Xbase++ ist das egal, er zeigt alle verfügbaren Drucker-Objekte des Rechners an, auch die Netzwerkdrucker.
Das ist ja das Gute daran, darum muss sich Windows kümmern, solange die Testseite druckt, druckt Xbase++ auch

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 11:28
von littlea1991
Leider findet XbpPrinter:List() keine Netzwerk drucker, ich bin in einem Active Directory Netzwerk angemeldet und List zeigt mir nur die momentan installierten Drucker an. Unter Windows Explorer -> Netzwerk werden mir die momentan verfügbaren Drucker allerdings angezeigt. (Bei weit mehr als 100 PCs und Drucker lohnt es sich nicht an jedem einzelnen es lokal zu installieren). Gibt es keine Möglichkeit Die Freigabe über den UNC Pfad anzusprechen (also mit \\Server\Druckername)?

Gruß

Ali

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 14:29
von brandelh
Im Büro haben wir Druckserver und Citrix Server, auf dem lokalen Laptop, habe ich mal ein paar Hardcopies gemacht:

Druckerpool, das Programm läuft auf Terminalserver, die Anzeige ist von meinem Laptop.
Mein Programm erkennt sowohl die Drucker mit der TS Nummer, die könnte man wählen wenn man keinen Drucker vorgeben will sollte das auch der Standarddrucker sein !!!
Aber ich will Drucker vorgeben und dann kann man auch die UNC Namen aus der Liste wählen (die Liste erstelle ich mit xbpPrinter:List())
UNC-Drucker.png
UNC-Drucker.png (348.09 KiB) 11820 mal betrachtet
Druckeranschluß.png
Druckeranschluß.png (47.3 KiB) 11820 mal betrachtet
Druckerliste.png
Druckerliste.png (28.87 KiB) 11820 mal betrachtet
Die Anzeige, dass dieser Drucker vorgegeben ist bedeutet, dass der Druckername aus der INI Datei gelesen und übergeben wird:

Quellcode folgt

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 14:37
von brandelh
in MAIN (nur Anzeige):

Code: Alles auswählen


public cVorgabeDrucker := NIL        // Standarddrucker verwenden ***** SCHOCK die alten Programme nutzen PUBLICS ;-)

cVorgabeDrucker := GetStandardDrucker()
if ! empty(cVorgabeDrucker)
   meldung(12,"H",{ "Sie haben den Drucker vorgegeben:","",cVorgabeDrucker,"" })
endif
*------------------------------------------------------------------------
function GetStandardDrucker()
  local cPrinter      := ""
  local cFileName     := UserInI("INI")          // INI-Dateinamen DES Users ermitteln
  local cSection      := "Benutzervorgaben"
  local cVar          := "VorgabeDrucker"

  cPrinter := GetIni(cSection, cVar, cPrinter , cFileName)
  if empty(cPrinter)
     cPrinter := NIL
  endif
return cPrinter

in den Druckroutinen kann man bei uns die UNC Namen genauso übergeben wie die lokalen Namen

Code: Alles auswählen

*------------------------------------------------------------ Kopf_Brief -----------------------
CLASS Kopf_Brief from HBPrinter
...
ENDCLASS
*--------------------------------------------------------------
METHOD Kopf_Brief:Init()
   ::HBPrinter:Init()
....
return self
*--------------------------------------------------------------
METHOD Kopf_Brief:Create(cPrinterName)

    If cVorgabeDrucker # NIL
       cPrinterName := cVorgabeDrucker
    endif

    ::HBPrinter:Create(cPrinterName)

    if ! ::HBPrinter:IsPrinterError()           // Druckerfehler -> Aufrufe in Hauptprogramm stoppen

...

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Do, 30. Aug 2018 15:46
von Jan
Die Frage ist doch: Kann ich einen Drucker benutzen, der auf meinem Rechner gar nicht installiert ist. Und wenn ja - wie?

Jan

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Fr, 31. Aug 2018 4:09
von AUGE_OHR
littlea1991 hat geschrieben: Do, 30. Aug 2018 11:28 ... und List zeigt mir nur die momentan installierten Drucker an.
also die lokal "installierten"
littlea1991 hat geschrieben:Unter Windows Explorer -> Netzwerk werden mir die momentan verfügbaren Drucker allerdings angezeigt.
dann musst du den gewünschten Drucker "installieren" denn der Drucker benötigt Treiber :!:

sobald du einen Drucker auswählst sollte die Install Routine anspringen aber meistens nur mit Windows Treibern.
littlea1991 hat geschrieben: Gibt es keine Möglichkeit Die Freigabe über den UNC Pfad anzusprechen (also mit \\Server\Druckername)?
das ist der Weg den man gehen muss aber ohne Treiber wird der Drucker nicht mal zucken.

p.s. bei vielen (grossen) Netzwerk Drucker kann man über

Code: Alles auswählen

\\Server\Druckername\Setup
oder
\\Server\Druckername\Install
per Browser ran kommen

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Fr, 31. Aug 2018 4:31
von AUGE_OHR
hi,
brandelh hat geschrieben: Do, 30. Aug 2018 6:39 angeblich wird das doch nur abgeschaltet, wenn es nicht gebraucht wird.
JA ... aber wie lange dauert es bis der "neue" PC den Kunden erreicht ... da ist die Zeitspanne längst abgelaufen.
meistens sind doch erst mal diverse Updates notwendig ... oder eine andere Release Version :lol:
brandelh hat geschrieben:SMB1 nachinstallieren ist der einfachste Weg um die Probleme weg zu bekommen.
wenn das Netzwerk keinen Kontakt zum Internet hat "könnte" man die UDP Port 135-139 wieder aufmachen.
Was allerdings der Administrator einer Firma zu deinem Vorschlag sagen wird kann ich mir schon ausmalen ... :roll:

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Fr, 31. Aug 2018 7:43
von littlea1991
Guten Morgen Liebe Forenmitglieder,

@brandelh Deine Lösung sieht super aus, ich werde sie auch versuchen als eine Liste zu übergeben. Wie Jan richtig erkannt hat ist die Frage wie man einen Drucker benutzen kann der gar nicht auf dem Rechner installiert ist, sondern nur als Freigabe über Netzwerk praktisch da ist.
Aktuelle Situation: Mehrere Abteilungen besitzen Netzwerkdrucker und greifen über die alten Clipperbefehle zu:

Code: Alles auswählen

  SET PRINTER ON
      SET PRINTER TO "DBf Datei mit Druckerliste die den UNC Pfad enthält"
      ? "Test"
      SET PRINTER OFF
geregelt. Da man über 60 Drucker verwalten muss hatten wir bisher eine DBF Datei angelegt die für verschiedene Abteilungen die jeweiligen Druckerliste angezeigt bekommt. z.B. Abteilung Auftragsverwaltung -> Drucker der Auftragsverwaltung werden angezeigt, da man nicht möchte das die Abteilung anfängt an verschiedenen Standorten zu Drucken.
Wir möchten das gerne über den XbPPrintDialog jetzt regeln (Laden der Druckerlisten und ansprechen der jeweiligen Netzwerkdrucker).
@jimmy das Drucken klappt auch wunderbar wenn man vorher die Drucker installiert hat, allerdings ist es nicht sinnvoll das bei 60 verschiedenen Druckern zu machen. Und für mehrere hundert Rechner jeweils die richtigen Drucker zu installieren.
Deshalb verwalten wir im Moment sie über eine DBF Datei die die entsprechenden UNC Pfade enthält und jeweils der Abteilung die richtigen Drucker anzeigt. Genau dieser Vorgang klappt nicht mehr unter Windows 10 mit den Clipperbefehlen.
Vielen Dank für eure Hilfreichen Antworten!

Ali

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Fr, 31. Aug 2018 7:58
von brandelh
Jan hat geschrieben: Do, 30. Aug 2018 15:46 Die Frage ist doch: Kann ich einen Drucker benutzen, der auf meinem Rechner gar nicht installiert ist. Und wenn ja - wie?

Jan
dann schau dir doch den Quellcode genauer an, da wird der gemerkte Vorgabedrucker in diesem Falle \\vps13-nghg102\d09nbg02 als String in einer INI gespeichert, wieder geladen nach cVorgabeDrucker (die ist Public) und dieser Wert wird an oXbpPrinter:Create(cPrinterName) übergeben (in meinem Beispiel meine Druckerklasse, aber die macht das intern genauso)

Code: Alles auswählen

    If cVorgabeDrucker # NIL
       cPrinterName := cVorgabeDrucker
    endif

    ::HBPrinter:Create(cPrinterName)
Keiner unserer Netzwerkdrucker im Büro ist LOKAL installiert, die Treiber hat der DruckServer \\vps13-nbg102
Allerdings weiß ich nicht was die wie und wo sonst noch eingestellt haben.
In einem echten Netzwerk kennen die Clients die Druckserver und deren freigegebene Drucker.

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Fr, 31. Aug 2018 21:05
von ramses
In einem echten Netzwerk kennen die Clients die Druckserver und deren freigegebene Drucker.
Nicht nur dass, die Clients erhalten zum Drucken auch den Druckertreiber der auf dem Server dazu installiert ist.
Jedenfalls richten wir das unter AD immer so ein.

Gruss Carlo

Re: Windows 10 Drucken Fehler Base/4313

Verfasst: Sa, 01. Sep 2018 4:59
von AUGE_OHR
littlea1991 hat geschrieben: Fr, 31. Aug 2018 7:43 installierten Drucker aufrufen kann, allerdings zeigt er keine Netzwerkfreigaben an.
...
Genau dieser Vorgang klappt nicht mehr unter Windows 10 mit den Clipperbefehlen.
der Unterschied zwischen installierten und Netzwerkfreigaben sind die Rechte des Users.
im Netzwerk kannst du auch andere Server sehen aber das bedeutet nicht das du Zugriff hast.

mit "control printers" öffnet sich das Fenster "Geräte und Drucker"
nur die Geräte die dort auftauchen kann man IMHO unter Windows 10 ansprechen.