14634
Goto Top

Alle Netzwerkdrucker von einem bestimmten Printserver entfernen

Hallo zusammen,

kurzer überblick:

Client PC: Windows 7 32bit

alter Printserver: Server 2003 R2 (DNS Name: Print01)
neuer Printserver: 2012R2 (DNS Name: Pront02)


folgendes Problem:

ich will mit einem Script alle Netzwerkdrucker vom Print01 entfernen, jedoch sollen die Netzwerkdrucker vom Print02 nicht gelöscht werden.

ich habe mir die Drucker freigaben vom alten Printserver exportiert und eine Batch Datei wie folgt aufgebaut:

rundll32 printui.dll,PrintUIEntry /dn /n /q "\\srvprint01\Drucker1
rundll32 printui.dll,PrintUIEntry /dn /n /q "\\srvprint01\Drucker2
rundll32 printui.dll,PrintUIEntry /dn /n /q "\\srvprint01\Drucker3


die liste ist fortlaufend, es sind insgesamt 250 Drucker.

Nicht jeder User hat alle Drucker bei sich hinterlegt, sodass ich folgende Fehlermeldung erhalten wenn das Script probiert einen Drucker zu löschen der beim User nicht hinterlegt ist:

Windows Meldung:

Die Druckverbindung kann nicht entfernt werden.

kann man diese Meldung einfach verbergen und das Script soll einfach weiter durchlaufen, oder habt ihr hier einen besser Vorschlag?

Content-Key: 241839

Url: https://administrator.de/contentid/241839

Printed on: April 26, 2024 at 15:04 o'clock

Member: emeriks
emeriks Jun 25, 2014 updated at 14:29:36 (UTC)
Goto Top
Hi,
wenn Du das mit VBscript machst, dann kannste Fehler ignorieren

on error resume next
dim WshNet : Set WshNet = CreateObject("Wscript.Network")  

with WshNet
  .RemovePrinterConnection "\\server\Drucker01", True, True  
  .RemovePrinterConnection "\\server\Drucker02", True, True  
  .RemovePrinterConnection "\\server\Drucker03", True, True  
  .RemovePrinterConnection "\\server\Drucker04", True, True  

end with

Sollte funktionieren.

E.

Edit: habe noch Fehler im Code korrigiert.
Member: colinardo
colinardo Jun 25, 2014 updated at 14:31:23 (UTC)
Goto Top
Moin Gl05e,
ich mach das immer mit Powershell:
$comNetwork = New-Object -ComObject "Wscript.Network"  
gwmi -Class Win32_Printer | ?{$_.Network -eq $true -and $_.ServerName -eq '\\srvprint01'} | %{$comNetwork.RemovePrinterConnection($_.Name)}  
Grüße Uwe