Jump to content

Drucker per Script einbinden


Gast haeuptling1977
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Gast haeuptling1977

Hallo zusammen,

 

ich habe ein kleines Problem mit einem vorhanden Script, dass ich jetzt umschreiben soll.

 

Wir haben hier verschiedene Drucker im Netzwerk.

Die sind auf einem Server eingerichtet und freigegeben.

Diese jetzt per VBS auf allen Clients einzurichten ist nicht das Problem.

Wir haben nur das Problem, dass auf diese Art ein bestimmtes Programm nicht richtig druckt.

 

Jetzt wollen wir alle Drucker als TCP/IP Drucker auf allen Clients eingerichten.

 

Ich komme aber nicht so richtig weiter.

Wir haben Druckergruppen, über die geregelt wird, welcher Rechner welchen Standarddrucker bekommt.

 

Ich habe jetzt eine bat-Datei, in der ich die Treiber auf den PC´s installiere und auch alle Drucker eingerichtet bekomme.

 

Ich möchte aber über die Drcukergruppe definieren, welcher Drucker bei welchem Rechner der Standarddrucker ist.

 

Hier mal der "alte" Code:

 

' Hilfsvariablen zur Speicherung des vollqualifizierten Computer- und Druckernamens

Dim computer

Dim drucker

Dim benutzer

Dim druckerListe

 

' Konstanten fr den Druckserver und die OU der Druckergruppe

' Diese Konstanten müssen für die jeweilige Domäne angepasst werden!

serverName = "DCBN01"

strOUGrp = "ou=drucker,ou=gruppen,dc=consult,dc=local"

 

' Bei Bedarf strGrpNT und lokalerPort auskommentieren

strGrpNT = ".Testgruppe"

lokalerPort = "LPT2"

 

' Verbindung zur Netzwerkkomponente des Windows Scripting Hosts herstellen

Set WshNetwork = WScript.CreateObject("WScript.Network")

 

' Liste aller Drucker

Set druckerListe = WshNetwork.EnumPrinterConnections

 

' Falls lokale Drucker vorhanden (Notebooks), keine Fehlermeldung rausbringen

On Error Resume Next

' Lösche alle vorhandenen Drucker an der WKS, die über das Script eingebunden wurden

For i = 0 to druckerListe.Count - 1 Step 2

' Wenn lokalerPort vorhanden, löschen

if druckerListe.Item(i) = lokalerPort Then

WshNetwork.RemovePrinterConnection druckerListe.Item(i), true, true

Else

WshNetwork.RemovePrinterConnection druckerListe.Item(i+1) , true, true

End If

 

Next

 

 

' FQN des aktuellen Computers auslesen

Set objSysInfo = CreateObject("ADSystemInfo")

computer = objSysInfo.Computername

 

' Benutername auslesen

benutzer = WshNetwork.UserName

 

 

' Durchlaufe die OU

For each druckerGruppe in GetObject("LDAP://"& strOUGrp)

 

' Baue Druckernamen zusammen

drucker = "\\" & serverName & "\" & Mid(druckerGruppe.Name,8,Len(druckerGruppe.Name))

 

' Verbinde Drucker

WshNetwork.AddWindowsPrinterConnection drucker

 

' Wenn Computer Mitglied (also Standarddrucker), dann zuweisen

If druckerGruppe.IsMember("LDAP://" &computer) Then

 

WshNetwork.SetDefaultPrinter drucker

 

' Wenn Gruppe bzw. Benutzer nicht vorhanden, keine Fehlermeldung rausbringen

On Error Resume Next

' Wenn Benutzer Mitglied von strGrpNT ist, lokalerPort zuweisen

if GetObject("WinNT://"& WshNetwork.UserDomain &"/" & strGrpNT).IsMember("WinNT://"& WshNetwork.UserDomain &"/" & benutzer) Then

' lokalerPort nur dann zuweisen, wenn die Bedingung oben erfüllt wird!

' durch das "on error resume next" wird zwar keine Fehlermeldung mehr rausgebracht, lokalerPort wird dennoch zugewiesen!

if err.number = 0 Then

WshNetwork.AddPrinterConnection lokalerPort, drucker

End If

End If

 

End If

 

next

 

 

Vielen Dank für eure Hilfe.

Link zu diesem Kommentar

Moin,

 

Wir haben nur das Problem, dass auf diese Art ein bestimmtes Programm nicht richtig druckt.

 

Jetzt wollen wir alle Drucker als TCP/IP Drucker auf allen Clients eingerichten.

 

Vorsicht - dieser Workaround kann euch erhebliche Probleme einhandeln!

 

Ein TCP/IP-Drucker ist logisch betrachtet ein lokaler Drucker. Der Client umgeht damit den Druckserver und dessen Spooling und Jobsteuerung. Zudem benötigt er einen lokal installierten Druckertreiber.

 

Bevor ihr nun die Probleme eines Programms umgeht, indem ihr zahlreichen anderen Programmen und Prozessen ein neues Problem beschert, solltet ihr lieber das eigentliche Problem lösen.

 

Gruß, Nils

Link zu diesem Kommentar
Gast haeuptling1977

Hi NilsK,

wir können das eigentliche Problem nicht beheben.

Wir nutzen hier Citrix (Terminalclient).

Wenn wir aus einem Programm auf Citrix drucken, kommt eine falsche Schriftart raus.

Die Firma, über die wir Citrix nutzen, kann leider keinen Fehler finden.

 

Das das dann lokale Durcker sind, ist uns vollkommen bewusst. Wir haben einen Test gemacht und kein Programm hat dadurch ein Problem.

 

Gruß Jens

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

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

×
×
  • Neu erstellen...