webdoktor
Goto Top

ALLE Drucker per Logonscript löschen auch ohne bekannter Name

Wie kann ich alle Printer löschen?

Hallo zusammen

Ich habe ein Logonscript bei welchem ich die Drucker lösche und zwar mit folgendem Befehl:

*

DelPrinter "\\Server01\Drucker01"


sub DelPrinter(PrinterUNC)
on error resume next

wshNetwork.RemovePrinterConnection PrinterUNC


if err.number <> 0 then

print "Printer kann nicht entfernt werden: " & err.number & PrinterUNC & ": " & err.description


end if

on error goto 0
end sub


*

Nun ist mir leider nicht jeder Druckername bekannt da es sein könnte, das auch noch ältere Drucker
auf dem Rechner installiert sind. Gibt es daher eine Möglichkeit, einfach alle Drucker zu löschen welche
auf dem Client sind?

Vielen Dank für eure Antworten.
Marco

Content-ID: 142591

Url: https://administrator.de/forum/alle-drucker-per-logonscript-loeschen-auch-ohne-bekannter-name-142591.html

Ausgedruckt am: 22.12.2024 um 12:12 Uhr

NilsErik
NilsErik 11.05.2010 um 10:34:30 Uhr
Goto Top
Am besten lädst du dir bei Microsoft con2prt herunter.

Mit

con2prt /f

werden dann alle Drucker getrennt.
bastla
bastla 11.05.2010 um 11:48:12 Uhr
Goto Top
Hallo Webdoktor!

Du brauchst eine Schleife ("Step 2" wäre vermutlich besser - komme aber gerade nicht zum Testen):
On Error Resume Next
For i = 0 To wshNetwork.EnumPrinterConnections.Count - 1
    wshNetwork.RemovePrinterConnection wshNetwork.EnumPrinterConnections.Item(i)
Next
Grüße
bastla
77559
77559 11.05.2010 um 11:50:00 Uhr
Goto Top
Hallo Marco,

Wscript.network hat die Methode EnumPrinterConnections siehe hier in der MSDN.
Die listet aber alle Drucker auf, auch die an lokalen Ports.

Mit diesem abgewandelten Script sollte es gehen:
' <http://msdn.microsoft.com/en-us/library/zhds6k80%28VS.85%29.aspx>  
Set WshNetwork = WScript.CreateObject("WScript.Network")  
Set oPrinters = WshNetwork.EnumPrinterConnections
WScript.Echo "Network printer mappings:"  
For i = 0 to oPrinters.Count - 1 Step 2
  if Left(oPrinters.Item(i+1),2) = "\\" Then _  
  WScript.Echo "Port " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1)  
Next

Gruß
LotPings
77559
77559 11.05.2010 um 11:58:47 Uhr
Goto Top
Moin bastla,

ich würde das so bei mr nicht testen,, aus Angst das auch die lokalen Drucker zerschossen werden. Wenn ich in meinem Script Zeile 6 rausnehme kriege ich dieses Ergebnis
Port XPSPort: = Microsoft XPS Document Writer
Port FRITZ!fax: = FRITZfax Drucker
Port FRITZ!faxColor: = FRITZfax Color Drucker
Port nul: = An OneNote 2010 senden
Port USB001 = \\PC12\HP Officejet 5600 series

Gruß
LotPings
Webdoktor
Webdoktor 11.05.2010 um 12:53:41 Uhr
Goto Top
Liebe Administrator-User

Zuerst mal vielen herzlichen Dank für eure Bemühungen und die prompten
Antwort. Ich schätze das sehr! DANKE!

Ich habe das Script von LotPings getestet und es listet mir wirklich nur die
Netzwerkprinters auf und funktioniert somit einwandfrei - auch hier nochmals
danke!

Wünsche euch eine erfolgreiche Woche!
Marco
bastla
bastla 11.05.2010 um 15:19:24 Uhr
Goto Top
Hallo LotPings!

Dein Einwand hinsichtlich der lokalen Drucker ist natürlich richtig - da es hier um ein Logonscript geht, wäre allerdings zu hoffen, dass mangels entsprechender Berechtigungen der betroffenen User (deshalb auch "On Error Resume Next") die lokalen Drucker unbeschadet davonkommen ...

... wobei aber Deine "Sicherheitsvariante" diese Hoffnung zur Gewissheit werden lässt. face-smile

Grüße
bastla