Jump to content
Sign in to follow this  
ronny80

IP von Drucker Share ändern

Recommended Posts

Hallo Zusammen,

 

Ich steh vor der herausforderung, dass ich auf einem Terminalserver einen Druckershare auf einen anderen Drucker umleiten muss. Das Zeil ist, wenn ein Drucker defekt ist, alle Druckaufträge beim anderen Drucker raus kommen.

 

Der User kann dann ein Skript laufen lassen, welches auf dem TS im Druckershare die IP ändert oder so ähnlich...

 

folgendes Skript hab ich schon ausprobiert..:

 

dim oMaster1
Dim oMaster2
dim oPrinter1
Dim oPrinter2
'The following code creates the required PrintMaster and Printer objects.
Set oMaster1 = CreateObject("PrintMaster.PrintMaster.1")
Set oMaster2 = CreateObject("PrintMaster.PrintMaster.1")
Set oPrinter1 = CreateObject("Printer.Printer.1")
Set oPrinter2 = CreateObject("Printer.Printer.1")

'The following code gets the existing printer settings. This step is optional; however, if you do not use it, you
'will not know which options have been left on the default settings. Because there are so many properties
'you can set, you might fail to enter a value, and the default settings might cause unwanted effects.
oMaster1.PrinterGet "\\SERVER", "Drucker1", oPrinter1
oMaster2.PrinterGet "\\SERVER", "Drucker2", oPrinter2

'The following code sets the ServerName and is used only for a remote printer if you did not use 'PrinterGet.
'If you did use PrinterGet, it fills in the ServerName property for you.
'oPrinter.ServerName = "\\SERVER"

'The following code sets some printer properties. Because there are so many settings, the following code
'only configures a few settings. You might or might not want to set any of the following properties.
'oPrinter.PortName = "lpt1:"

'Drucker1
oPrinter1.PrinterName = "Drucker1_old"
oPrinter1.ShareName = "Drucker1_old"
oPrinter1.Location = "Leit Alt"
oMaster1.PrinterConnectionDel 
oMaster1.PrinterSet oPrinter1

'Drucker2
oPrinter1.PrinterName = "Drucker1"
oPrinter2.ShareName = "Drucker1"
oPrinter2.Location = "Pas ex drucker2"
'oPrinter.Comment = "comment"
'oPrinter.DataType = "RAW"
'oPrinter.NewName = "New Printer Name"
'oPrinter.SepFile = "c:\sep-file"
'The following code sets printer attributes. They can be set to true or false to enable or disable the setting.
'oPrinter.Queued = true / false
'oPrinter.Direct = true / false
'oPrinter.Default = true / false
'oPrinter.Shared = true / false 
'oPrinter.Hidden = true / false
'oPrinter.EnableDevq = true / false
'oPrinter.KeepPrintedJobs = true / false
'oPrinter.DoCompleteFirst = true / false
'oPrinter.WorkOffline = true / false
'oPrinter.EnableBidi = true / false
'oPrinter.RawOnly = true / false
'oPrinter.Published = true / false
'The following code saves the printer settings.
oMaster2.PrinterSet oPrinter2

'The following code uses the Err object to determine whether the printer settings were updated successfully.
if Err <> 0 then
'An error occurred
end If

 

 

Hat jemand Erfahrung auf dem Gebiet? Oder hat jemand schon ein solches Skript gemacht?

 

 

gruss

ronny

Share this post


Link to post
Guest

Hallo,

schaue dir doch mal die Option "Druckerpool" in den Druckereinstellungen an.

Dann geht das ganze auch ohne Script. Nehme doch an, dass der Ersatzdrucker in der Nähe des ersten steht.

 

Gruß SB

Share this post


Link to post

hi..

 

die Sache ist die, der Ersatzdrucker ist eben auch im Einsatz...

Dieser ist jedoch nicht produktionskritisch... so könnte dieser für den anderen einspringen im Notfall...

 

das ganze läuft in einem Schichtbetrieb... sonst muss ich eines morgens um 3 Uhr in den Betrieb fahren und den Drucker umhängen :-)

 

daran hab ich auch gedacht, aber geh eben ned.. leider

Share this post


Link to post

Hallo,

 

das ganze geht doch ja auch nur dann, wenn der andere Drucker genau der gleich ist wie der , der ausgefallen ist (So habe ich es in Errinnerung).

 

Und da ist es wirklich am leichtesten eben den Hacken zu setzen, wenn es muß.

Die Frage ist wie die Rechteeinstellung sind, ob ein User das einrichten kann.

 

Mfg

 

Ernst

Share this post


Link to post

Hi..

 

Es sind handelt sich um 2 HP Laserjet 8000TN...

Von dem her kein Problem..

 

Die Frage ist eben, was für Rechte ein User haben muss, damit er den Share aufheben kann und ändern kann. Grundsätzlich haben die Benutzer bei uns auf dem Drucker alle Rechte.. wie Manage Printers, manage Documents und Print

 

gruss

Share this post


Link to post

Ich nehme nun dieses Skript:

strComputer = "server" 'servername des hosts oder . für localhost
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Drucker bei welchem der Port geändert wird
Set objPrinter = objWMIService.Get _
   ("Win32_Printer.DeviceID='Drucker1'")
'Nimm diesen Port
objPrinter.PortName = "test"
objPrinter.Put_

strComputer = null

 

Lokal funktioniert es, blos wie mache ich dass ich das Skript auf dem Server zum laufen bringe? Also via Skript auf dem Server ändern.

 

Welche Rechte werden auf dem Server benötigt?

 

gruss

ronny

Share this post


Link to post

Ein Druckerpool sollte aber auch so funktionieren. Beide Ports anlegen und den wichtigen rucker mit Pool anlegen. Den nicht so wichtigen Standardmässig anlegen. Somit hättest du einen Port mit zwei Druckobjekten belegt. Das funktioniert auch bei unterschiedlichen Treibern wie PCL und PS. Dann müsste sich keiner mit der Umkonfiguration herumschlagen.

 

Gruß,

 

Aljoscha

Share this post


Link to post

hmm ja das ist mir klar, dass ich x Drucker auf einen Port lenken kann. Aber schlussendlich muss der Share ja stimen.. das Programm druckt auf einen Druckershare...

Share this post


Link to post

Mit dem Skript oben, klappts problemlos lokal!

 

Blos wie kann ich das Skript auf dem Server ausführen?

 

mit diesem gehts ned...

Dim Controller, RemoteScript
Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.vbs", "server")
RemoteScript.Execute
Do While RemoteScript.Status <> 2 
   WScript.Sleep 100
Loop

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...