Archiv

Artikel Tagged ‘drucker’

Drucken auf Netzwerkdrucker aus DOS Anwendungen mit Windows 7 / Server 2008

Ich hatte vor kurzem eine Windows 7 Workstation, welche mit einer alten 16Bit DOS Anwendung direkt auf einen Drucker, welcher per “net use” auf LPT2 gemappt war, drucken sollte (Der Rechner, welche die Freigabe des Druckers zur Verfügung stellt ist ein Windows Server 2008 SBS).

Unter XP lief das noch einwandfrei, unter Windows 7 (Vista haben wir im professionellen Umfeld direkt mal ausgelassen) ging nix mehr. Angeblich keine Berechtigung…

Nach langem suchen, sprich googlen, kam die Lösung -> Das Samba Protokoll ist “schuld”! XP beherrscht nur smb v1, sprich es wurde hier auch nur mit diesem Protokoll gearbeitet. Windows 7 kann nun aber auch smb v2 – ergo kam dies zum Einsatz. Die Version 2 hat aber nicht die Möglichkeit mehr 16Bit Anwendungen diesen Druckvorgang zu erlauben -> Problem!

Lösung: Dem Windows 7 Client manuell sagen, das er nur nach smb v1 benutzen soll, keinesfalls mehr v2.

sc config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc config mrxsmb20 start= disabled

Das SMB v2 kann natürlich auch wieder aktiviert werden. Zur Reaktivierung reichen die beiden nun folgenden Kommandos:

sc config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc config mrxsmb20 start= auto

Bitte beachten: Nach dem “=” zeichen MUSS zwingend ein Leerzeichen folgen.
Diese Kommandos am besten wirklich genau so wie sie hier stehen eingeben, sonst gibt es Murks!

Viel Erfolg beim Drucken aus DOS!

P.S. Man kann nun auch ganz einfach Verzeichnislistings etc. auf den Drucker umleiten:

dir > lpt2

Logon Script: PopUp Fenster bei Fehlern mit KixTart

Nichts ist schlimmer als wenn ein Logonscript Fehler ausgibt, die benutzer diese allerdings nicht an den Administrator weitergeben, weil sie sich die meldung nicht gemerkt haben, oder garnicht wussten das beim Login ein Fehler aufgetreten ist.

KixTart kann im Rahmen eines Logonscripts jedoch PopUp Fenster generieren, in denen dann die Fehlerbeschreibung steht und der User natürlich aufgefordert wird sofort den zuständigen Administrator zu verständigen. Im Rahmen eines Druckermappings könnte das so aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$PRINTSERVER = "192.168.100.10"
$PRINTERNAME = "Farbdrucker_Raum_12"
If ADDPRINTERCONNECTION ("\\"+$PRINTSERVER+"\"+$PRINTERNAME) = 0
    ? "Drucker Druckername wurde verbunden"
ELSE
    ? "FEHLER beim verbinden vom Druckername"
	$MsgStr = "Bitte den Administrator verständigen!@CRLF"
	+ "Die Fehlermeldung lautet:@CRLF"
	+ "@CRLF"
	+ "Drucker: "+$PRINTERNAME + "@CRLF"
	+ "Server:  "+$PRINTSERVER + "@CRLF"
	+ "Fehlermeldung: "+ @SERROR + "@CRLF"
	+ "Fehlercode:    "+ @ERROR
	$Title = "FEHLER: Druckername nicht verbunden"
	$X MessageBox( $MsgStr, $Title, 4096 )
ENDIF

Ein paar Anpassungen muss man immer je nach Umgebung vornehmen, aber es soll in diesem Beispiel ja nur die generelle Funktion erklärt werden.
Über Kommentare freue ich mich natürlich immer sehr, speziell wenn meine Scripte irgendwo zum Einsatz kommen – die Firma muss natürlich nicht genannt werden!

Logon Script: Drucker verbinden mit KixTart

Einen Netzwerkdrucker zu verbinden, gehört zu den normalen Aufgaben eines Logonscripts. Via Kixtart geht das auch ganz einfach, wenn nicht noch einfacher als mit den guten alten “net use” Kommandos:

1
ADDPRINTERCONNECTION ("\\"+$PrintServer+"\Druckername")

Mit etwas mehr Code kann man gleich ein Errorhandling einbauen, welches dann auch ausgibt ob alles geklappt hat. Wahlweise entweder direkt im Scriptfenster, oder in ein Logfile, je nachdem wie man sein Loggig geregelt hat.

1
2
3
4
5
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\Druckerfreigabename") = 0
     ? "Drucker Druckername wurde verbunden"
ELSE
     ? "FEHLER beim verbinden vom Druckername"
ENDIF

Die Variable “+$PrintServer+” sollte hierbei automatisch gesetzt werden, alternativ kann man, um auf Nr. Sicher zu gehen, den Printserver entweder direkt angeben, oder selbst mit einer eigenen Variablen arbeiten.