Drucker implementieren über Opsi

mube
Beiträge: 10
Registriert: 31 Dez 2008, 18:57

Drucker implementieren über Opsi

Beitrag von mube »

Hi, ich bräuchte mal eure Hilfe. Ich möchte alle Drucker die wir hier haben über Opsi installieren lassen. Gibt es hierfür eine Möglichkeit in Opsi. Drucker hängen fast alle im Netzwerk und haben entweder eine Interne Lankarte oder einen Printerport dran. Drucker sind unterschiedlich.
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: Drucker implementieren über Opsi

Beitrag von wolfbardo »

Hallo mube,
mube hat geschrieben:Hi, ich bräuchte mal eure Hilfe. Ich möchte alle Drucker die wir hier haben über Opsi installieren lassen. Gibt es hierfür eine Möglichkeit in Opsi. Drucker hängen fast alle im Netzwerk und haben entweder eine Interne Lankarte oder einen Printerport dran. Drucker sind unterschiedlich.
eine Möglichkeit ist unter

http://www.opsi.org/opsi_wiki/Printer

beschrieben.

Falls die Installation mit dem pnmgr.vbs fehlschlaegt, so schafft in der Regel

Code: Alles auswählen

[DosInAnIcon_rundll]
rundll32 printui.dll,PrintUIEntry /q /if /x /n "" /b "$MyPrinterNameIp$" /m "$PrinterNameInInfFile$" /r "$PrinterPort$" /f "$InfFile$" /l "$Path2InfFile$"
Abhilfe.

Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

opsi-Basisworkshops:

22. - 25. 04. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
mube
Beiträge: 10
Registriert: 31 Dez 2008, 18:57

Re: Drucker implementieren über Opsi

Beitrag von mube »

Danke wolfbardo für die Antwort. Sorry aber, ich konnte nicht herausbekommen wo ich die IP Adresse für den Printerport eingeben muß.
Nehmen wir mal an meine IP für den Printerport ist die 192.168.1.20. Wo muß ich das denn eingeben.
Wäre dir sehr dankbar, wenn du mir auch noch einen Tipp geben könntest
Danke
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: Drucker implementieren über Opsi

Beitrag von wolfbardo »

Hallo mube,

Hallo mube,
mube hat geschrieben: Sorry aber, ich konnte nicht herausbekommen wo ich die IP Adresse für den Printerport eingeben muß.
Nehmen wir mal an meine IP für den Printerport ist die 192.168.1.20. Wo muß ich das denn eingeben.
Die IP kann man im configed angeben.

Code: Alles auswählen

set $IpNumbers$ = IniVar ("Brother_MFC_8840_PCL")
naheres ueber syntax findet sich im winsthandbuch und im opsi-handbuch


Eine Testversion gibt es sogar als opsi-Paket

http://download.uib.de/opsi3.3/produkte ... 2.0-1.opsi


Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

opsi-Basisworkshops:

22. - 25. 04. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
a.schnober
Beiträge: 15
Registriert: 23 Feb 2009, 08:38

Re: Drucker implementieren über Opsi

Beitrag von a.schnober »

Moin,
folgendermaßen haben wir die Druckereinrichtung für unsere Verwaltungen gelöst (OPSI ist bisher nur im Testeinsatz!).
Vorab zur Erklärung, unsere Verwaltungen haben mehr als 50 Drucker, weswegen eine komplette Einrichtung aller vorhandenen Drucker unsinnig ist.
Daher haben wir definiert das wir maximal 10 Drucker pro Rechner initial installieren.
Die Druckernamen sind definiert als D+SAP Druckernamen, daher bei den Scripten das vorangestellte D. Für jeden Drucker gibt es ein eigenes Script!
Als Auswahlparameter ist die Liste aller möglichen Drucker für Drucker1-10 hinterlegt.
Bei der Einrichtung setzt das Script nun die Werte Drucker 1-10 auf die Inivar Parameter und geht dann je Script in die entsprechende SUB Config des Druckers.
Wichtig ist das die Variablen der Hauptconfig mit in die Subconfigs geschleift werden, bzw. das zwischen der Einrichtung der Ports in der Registry und der Installation der Treiber der Spooler einmal neu gestartet werden muss.
Eine Uninstallmöglichkeit für einzelne Treiber habe ich bewusst nicht implementiert, jedoch werden geänderte Druckerscripte (Beispiel bei Nutzung eines anderen Druckertreibers), die jedoch denselben Druckernamen haben, beim nochmaligen Setup des Paketes aktualisiert!

Code: Alles auswählen

[Initial]
Message= <hier könnte ihr Nachricht stehen>
LogLevel=2
ExitOnError=false
ScriptErrorMessages=on
TraceMode=off
DefVar $Drucker01$
DefVar $Drucker02$
DefVar $Drucker03$
DefVar $Drucker04$
DefVar $Drucker05$
DefVar $Drucker06$
DefVar $Drucker07$
DefVar $Drucker08$
DefVar $Drucker09$
DefVar $Drucker10$

DefVar $Name_Drucker$
DefVar $Typ_Drucker$
DefVar $IP_Drucker$
DefVar $Port_Drucker$
DefVar $Driverpath_Drucker$

[Aktionen]
Set $Drucker01$ = IniVar("Drucker01")
Set $Drucker02$ = IniVar("Drucker02")
Set $Drucker03$ = IniVar("Drucker03")
Set $Drucker04$ = IniVar("Drucker04")
Set $Drucker05$ = IniVar("Drucker05")
Set $Drucker06$ = IniVar("Drucker06")
Set $Drucker07$ = IniVar("Drucker07")
Set $Drucker08$ = IniVar("Drucker08")
Set $Drucker09$ = IniVar("Drucker09")
Set $Drucker10$ = IniVar("Drucker10")
sub_install_nlprinter

[sub_install_nlprinter]
if not ($Drucker01$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker01$+".ins"
endif
if not ($Drucker02$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker02$+".ins"
endif
if not ($Drucker03$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker03$+".ins"
endif
if not ($Drucker04$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker04$+".ins"
endif
if not ($Drucker05$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker05$+".ins"
endif
if not ($Drucker06$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker06$+".ins"
endif
if not ($Drucker07$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker07$+".ins"
endif
if not ($Drucker08$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker08$+".ins"
endif
if not ($Drucker09$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker09$+".ins"
endif
if not ($Drucker10$ = "Kein Drucker")
  sub "%scriptpath%\subconfigs\"+"D"+$Drucker10$+".ins"
endif
Dazu gehören dann die jeweiligen Druckerscripte

Code: Alles auswählen

; Dieses Script installiert den Drucker
; Druckername: D<Druckername>
; Druckertyp: Samsung CLP-350 Series
; IP <Drucker IP>

Set $Name_Drucker$ = "D<Druckername>"
Set $Typ_Drucker$ ="Samsung CLP-350 Series"
Set $IP_Drucker$ = "<Drucker IP>"
Set $Port_Drucker$ = "9100"
Set $Driverpath_Drucker$ ="%ScriptPath%\driver\samsung_clp-350\cl35c.inf"

Registry_install_Printport
winbatch_restart_spool
winbatch_install_Printer

[Registry_install_Printport]
OpenKey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_$IP_Drucker$]
Add "Protocol" = REG_DWORD:00000001
Add "Version" = REG_DWORD:00000001
Add "HostName" = ""
Add "IPAddress" = "$IP_Drucker$"
Add "HWAddress" = ""
Add "PortNumber" = REG_DWORD:$Port_Drucker$
Add "SNMP Community" = "public"
Add "SNMP Enabled" = REG_DWORD:00000001
Add "SNMP Index" = REG_DWORD:00000001

[winbatch_install_Printer]
rundll32 printui.dll,PrintUIEntry /dl /n "$Name_Drucker$" /q
rundll32 printui.dll,PrintUIEntry /if /b "$Name_Drucker$" /f "$Driverpath_Drucker$" /r IP_$IP_Drucker$ /m "$Typ_Drucker$" /z /u

[winbatch_restart_spool]
;Startet den Spool Dienst neu
net.exe stop Spooler
net.exe start Spooler
bzw. für einen Standard Windows Xp Treiber

Code: Alles auswählen

; Dieses Script installiert den Drucker
; Druckername: D<Druckername>
; Druckertyp: HP LaserJet 5L
; IP  <Drucker IP>

Set $Name_Drucker$ = "D<Druckername>"
Set $Typ_Drucker$ ="HP LaserJet 5L"
Set $IP_Drucker$ = " <Drucker IP>"
Set $Port_Drucker$ = "9100"
Set $Driverpath_Drucker$ ="%Systemroot%\inf\ntprint.inf"

Registry_install_Printport
winbatch_restart_spool
winbatch_install_Printer

[Registry_install_Printport]
OpenKey [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP_$IP_Drucker$]
Add "Protocol" = REG_DWORD:00000001
Add "Version" = REG_DWORD:00000001
Add "HostName" = ""
Add "IPAddress" = "$IP_Drucker$"
Add "HWAddress" = ""
Add "PortNumber" = REG_DWORD:$Port_Drucker$
Add "SNMP Community" = "public"
Add "SNMP Enabled" = REG_DWORD:00000001
Add "SNMP Index" = REG_DWORD:00000001

[winbatch_install_Printer]
rundll32 printui.dll,PrintUIEntry /dl /n "$Name_Drucker$" /q
rundll32 printui.dll,PrintUIEntry /if /b "$Name_Drucker$" /f "$Driverpath_Drucker$" /r IP_$IP_Drucker$ /m "$Typ_Drucker$" /z /u

[winbatch_restart_spool]
;Startet den Spool Dienst neu
net.exe stop Spooler
net.exe start Spooler
Gruß
Alexander

P.S. man könnte noch hingehen und den Spoolerrestart in eine DosAsAnIcon Sektion schreiben, dann würde die commandline nicht mehr sichtbar auftauchen.
JTR
Beiträge: 40
Registriert: 02 Jun 2009, 07:33

Re: Drucker implementieren über Opsi

Beitrag von JTR »

Hi,

ich bin auch gerade dabei, die Druckerimplementierung zur lösen. Das Skript von a.schnober finde ich dafür schonmal sehr gut und verwende es auch für die meisten Drucker bei uns. Nun haben wir aber auch ein paar Drucker bei uns, die an LPT1 angeschlossen werden. Nun wollte ich fragen, wie ich das Skript denn abändern müsste, damit als Anschluss LPT1 genommen wird und kein neuer für IP angelegt wird?
Wäre super, wenn mir da jemand helfen könnte :)

Danke schonmal!

MFG
JTR
matth46
Beiträge: 172
Registriert: 22 Jun 2009, 19:48

Re: Drucker implementieren über Opsi

Beitrag von matth46 »

IP-Druckerports lassen sich übrigens auch so anlegen:

Code: Alles auswählen

cscript %SYSTEMROOT%\system32\prnport.vbs -a -r IP_$IP$ -h $IP$ -o raw -n 9100
Voraussetzung hierbei ist, das die Ausführung von WSH-Skripts erlaubt ist. Lässt sich auch temporär aktivieren:

Code: Alles auswählen

[Registry_TurnWSH_on]
;schaltet WSH auf "enable"
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
set "Enabled" = REG_DWORD:1

... Installations-Aktionen...

[Registry_TurnWSH_off]
;schaltet WSH auf "disable"
openkey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings]
set "Enabled" = REG_DWORD:0
Schon vorhandene Druckerports lassen sich ja mit dem Schalter

Code: Alles auswählen

/r "PORTNAME"
übergeben (siehe oben), also in deinem Fall mittels

Code: Alles auswählen

/r "LPT1:"
JTR
Beiträge: 40
Registriert: 02 Jun 2009, 07:33

Re: Drucker implementieren über Opsi

Beitrag von JTR »

Hi,

danke für deine Antwort. Funktioniert einwandfrei :)

Gruß
Roland
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3319
Registriert: 04 Jun 2008, 14:27

Re: Drucker implementieren über Opsi

Beitrag von d.oertel »

Hi,

siehe auch:
http://www.opsi.org/opsi_wiki/Printer

gruss
d.oertel
opsi support - uib gmbh

For productive opsi installations we recommend support contracts.
http://www.uib.de
http://www.opsi.org
Benutzeravatar
Anakim
Beiträge: 116
Registriert: 04 Jul 2008, 07:03

Re: Drucker implementieren über Opsi

Beitrag von Anakim »

Hy,

wollte noch mal zwei ganz zwei andere Ansätze aufführen, welche ich beide gelegentlich verwende.

1) Zum einen bei einer vorhandenen Domäne werden unsere Drucker per Script zugewiesen, dass schafft flexibilität und einfaches zentrales verwalten.

Hier mal ein Auszug aus unserem Loginscript (recht einfach gehalten, aber funktioniert)

Code: Alles auswählen

REM Paramter und Dateien abfragen
If not Exist %systemroot%\system32\con2prt.exe Copy %logonserver%\netlogon\con2prt.exe %sysapps%

rem **  diese Drucker stehen allen Mitgleidern zur Verfügung **
rem **  con2prt Optionen: /c = connect; /cd= connect default; /f = lösche vorhandene
echo User aus der Gruppe RBA\EDV erkannt... Drucker werden zugewiesen..
%logonserver%\netlogon\con2prt /f
%logonserver%\netlogon\con2prt /cd \\XXX\"LEX510C"
%logonserver%\netlogon\con2prt /c \\XXX\"Magic Color EDV"
%logonserver%\netlogon\con2prt /c \\XXX\"NDMMV"
Es werden dazu con2prt benötigt welches erst kopiert wird, falls nicht vorhanden.

2) Oder aber man verwendet den "Microsoft Printer Migratior". Dieser funktionert wie folgt:
  • 1. Ein Masterplatz wird abgezogen, dort sollte die Drucker vorhanden sein, welche man verweden möchte (z.B. innerhalb der Abteilung). Der MPM packt dann alle Treiber und Druckereinstellungen in eine ausführbare Datei.
    2. per Opsi diese bei der Installation installieren lassen, man könnte dann per Optionsschalter z.B. die verschiedenen Pakete auswählen, die man auf der Kiste haben möchte
Der Vorteil bei dieser Variante ist, dass es keine Probleme mit Treiber gibt, da alles relevante sauber mitgenommen wird.

Grüße
Anakim
Mein Opsi 4.0.5.15 läuft derzeitig auf ESX 5.5 in der jeweils aktuellsten Version. (hoffe ich zumindestens :-))
Antworten