Drucker entfernen und wieder verbinden

sancezz

Lieutenant
Registriert
März 2005
Beiträge
538
Hallo zusammen

Wir in der Firma wechseln unseren Zentralen Printserver aus. Die Drucker sind alle bereits auf diesem neuen Server installiert. Damit die User nun aber über den neuen Server drucken sollte ich etwas programmieren, was alle vorhandenen Drucker beim User löscht und die selben Drucker vom neuen Server wieder anhängt.
dies kann ja mit net use gemacht werden, nur wie kann ich die vorhandenen Druckernamen auslesen und danach automatisch diese Drucker wieder verbinden?

Danke im Voraus
 
Zuletzt bearbeitet:
Hallo,
Drucker kannst du mit dem Befehl "con2prt.exe" löschen (kein Bestandteil von Windows -> Google).

Mit "rundll32 printui.dll,PrintUIEntry /in /u /q /n \\server\Drucker-XY" wird ein neuer hinzugefügt.
Mit "rundll32 printui.dll,PrintUIEntry /y /u /q /n \\server\Drucker-XY" wird der Drucker als Standard-Drucker definiert.

Welcher Drucker auf welchem System installiert ist, dürfte man nicht so "ohne weiteres" Scripten können.
Würde aber empfehlen, dass Ganze mit Logon-Scripten zu handeln ... so hat man später Überblick, Wer / Welchen Drucker installiert hat.

Gruß
Frank
 
danke für deine antwort.
leider muss ich unbedingt herausfinden, welcher drucker bereits installiert wurde. den es sollten nur die bestehenden drucker jedoch von einem anderen server installiert werden hier ein beispiel
alter server: \\server01\drucker01
neuer server aber gleicher drucker: \\server02\drucker01
 
habe die lösung gefunden
man kann es mit kix lösen
habe mit einem mitarbeiter nun etwas erstellt
Code:
;------------------------------------------------
;Wechseln des PrintServer (server001 auf server045)
;------------------------------------------------

Break on

$prtsrvold="\\server001"
$prtsrvnew="\\server045"
$Index = 0
$TempPrinter = ""

;----------------------------------------------------
;Erstellt eine Liste mit allen installierten Druckern
;----------------------------------------------------

Dim $PrinterArray[40]
:Loop
 If @ERROR=0
  $TempPrinter = $TempPrinter + EnumValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts",$Index) + ","
  $Index = $Index + 1
  GoTo "Loop"
 EndIf

$TempPrinter = Trim($TempPrinter)
$Length = Len("$TempPrinter") - 2
$TempPrinter = Left("$TempPrinter","$Length")
$PrinterArray = Split("$TempPrinter",",")

;------------------------------
;Ermittelt den Standard Drucker
;------------------------------

$DefaultPrinter = ReadValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device")
If $DefaultPrinter <> ""
 $End = InStr("$DefaultPrinter",",") - 1
 $DefaultPrinter = Left("$DefaultPrinter","$End")
Else 
  $DefaultPrinter = "none"
EndIf 

;---------------------
;Gibt Status-Infos aus
;---------------------

;? "Standard-Drucker: " + $DefaultPrinter
;? ? "Liste aller Drucker:" ? ?

;--------------------------------------------------------------------------------------
;Trennt alle Netzwerkdrucker vom alten Server und verbindet sie wieder vom neuen Server
;--------------------------------------------------------------------------------------

For $Count = 0 to $Index-2
  If Left($PrinterArray[$Count],Len($prtsrvold))=$prtsrvold	; nur Netzwerk-Drucker auf dem bisherigen Print-Server
    ;? $PrinterArray[$Count]
    $rc=DelPrinterConnection ($PrinterArray[$Count])
    ? $PrinterArray[$Count]" gelöscht"
    $newprt=$prtsrvnew+SubStr ($PrinterArray[$Count],Len($prtsrvold)+1,200)
    $rc=AddPrinterConnection ($newprt)
    ? $newprt" neu verbunden"
  EndIf    
Next

;---------------------------------------
;Stellt den "alten" Standard-Drucker ein
;---------------------------------------

If $DefaultPrinter <> "none"						
  If Left($DefaultPrinter,Len($prtsrvold))=$prtsrvold ; Standard-Drucker ist ein Netzwerk-Drucker
    $newprt=$prtsrvnew+SubStr ($DefaultPrinter,Len($prtsrvold)+1,200) ; 
    $rc=SetDefaultPrinter ($newprt) ; "neuer" Standard-Drucker gesetzt
    ? ? "neuer Standard-Drucker "$newprt" eingestellt"
  EndIf
EndIf
 
Zurück
Oben