Drucker in der Domäne per AnmeldeSkript löschen
Wir installieren in unserer Domäne (Windows 2003) die Netzwerkdrucker vom Druckserver per VBS Skript.
Beispiel:
Option Explicit
On Error Resume Next
Dim WSHNetwork, PrintSRV
PrintSRV = "Druckserver"
Set WshNetwork = Wscript.CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection "Druckername"
WshNetwork.AddWindowsPrinterConnection "\\" & PrintSRV & "\Druckername"
'WshNetwork.SetDefaultPrinter "\\" & PrintSRV & "\Druckername"
Nun habe ich aber das Problem, dass die Drucker installiert bleiben. Wenn der Drucker physikalisch nicht mehr existiert, bleibt der Installierte Drucker beim User als "Altlast" zurück.
Gibt es die Möglichkeit die installierten Drucker in einem Abmeldeskript beim Herunterfahren des PCs zu entfernen? Lokal installierte Drucker sollen davon ausgenommen bleiben.
Da ich zum Entfernen von Netzwekdruckern nicht Brauchbares finden konnte stelle ich die Frage hier mal ein.
Vielen Dank für Euere Hilfe.
california92
Beispiel:
Option Explicit
On Error Resume Next
Dim WSHNetwork, PrintSRV
PrintSRV = "Druckserver"
Set WshNetwork = Wscript.CreateObject("WScript.Network")
WshNetwork.RemovePrinterConnection "Druckername"
WshNetwork.AddWindowsPrinterConnection "\\" & PrintSRV & "\Druckername"
'WshNetwork.SetDefaultPrinter "\\" & PrintSRV & "\Druckername"
Nun habe ich aber das Problem, dass die Drucker installiert bleiben. Wenn der Drucker physikalisch nicht mehr existiert, bleibt der Installierte Drucker beim User als "Altlast" zurück.
Gibt es die Möglichkeit die installierten Drucker in einem Abmeldeskript beim Herunterfahren des PCs zu entfernen? Lokal installierte Drucker sollen davon ausgenommen bleiben.
Da ich zum Entfernen von Netzwekdruckern nicht Brauchbares finden konnte stelle ich die Frage hier mal ein.
Vielen Dank für Euere Hilfe.
california92
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 47139
Url: https://administrator.de/contentid/47139
Ausgedruckt am: 25.11.2024 um 21:11 Uhr
8 Kommentare
Neuester Kommentar
Hi california,
ich hab momentan das hier laufen:
Tom73 hat in seinem Tutorial - Netzwerkdrucker automatisch verbinden - ein Lösungsvorschlag eine elegantere Lösung zum löschen eingesetzt
HTH,
gemini
ich hab momentan das hier laufen:
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * from Win32_Printer")
For Each objPrinter in colPrinters
If Left(objPrinter.Name, 8) = "\\" & strPrintSRV2 Then
WshNetwork.RemovePrinterConnection "\\" & strPrintSRV2 & "\" & objPrinter.ShareName, blnForce
End If
Next
Tom73 hat in seinem Tutorial - Netzwerkdrucker automatisch verbinden - ein Lösungsvorschlag eine elegantere Lösung zum löschen eingesetzt
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objPrinters = objNetwork.EnumPrinterConnections
For intLoop = 0 to objPrinters.Count - 1
objNetwork.RemovePrinterConnection objPrinters.Item(intLoop),-1,-1
WScript.Sleep 500
Next
HTH,
gemini
Bekomme leider kein brauchbares Ergebnis hin.
Wo hakt es denn?Ich habe dir oben zwei Möglichkeiten gepostet, die erste habe ich im Einsatz, ist zwar nicht so elegant aber funktioniert soweit, du musst nur die Variablen entspr. belegen und blnForce durch TRUE ersetzen.
Die zweite Möglichkeit habe ich nicht getestet, schaut aber sehr gut aus und funktioniert auch, sonst wäre das Feesback auf Tom73's Beitrag nicht so positiv gewesen.
Und mach zum testen das
On Error Resume Next
raus damit du siehst wo es krachtIch habe die Lösung gefunden:
Das entlockt mir doch ein leichtes lächeln Zum einem hattest du das in deinem Ursprungspost schon fast richtig drin, zum anderen fragtest du
Gibt es denn nicht irgeneine Möglichkeit __alle Drucker__ mit \\druckserver\druckername zu entfernen
Nun, deine Lösung hat zwei Nachteile:
1) Es werden nicht alle Drucker automatisch entfernt, sondern nur die für die du eine Zeile mit RemovePrinter... einfügst
2) Die Idee mit dem Abmeldescript bewirkt, dass du Änderungen beim Druckerbestand an zwei Stellen pflegen musst.
Ich entferne die Drucker im Loginscript bevor sie neu gemappt werden.
Evtl. Druckerleichen zu beseitigen ist dabei nur ein Nebeneffekt, der eigentliche Grund liegt darin, dass Änderungen der Druckereinstellungen so sicher und zuverlässig auf die Clients übertragen werden.
Was Pflegefreundlichkeit anbetrifft ist der Ansatz vom Tom73 der beste.
Wenn ich Zeit habe werde ich das auch noch implementieren.
Gruß,
gemini
Hallo,
dafür gibt es das Tool con2prt.exe. (http://www.gruppenrichtlinien.de/tools/con2prt.exe)
Mit dem Parameter /f (z. B. "c:\con2prt.exe /f") werden alle installierten Drucker entfernt.
dafür gibt es das Tool con2prt.exe. (http://www.gruppenrichtlinien.de/tools/con2prt.exe)
Mit dem Parameter /f (z. B. "c:\con2prt.exe /f") werden alle installierten Drucker entfernt.