redzack
Goto Top

Nur Drucker löschen die in einer Domain sind Script

Hallo Scripter,

mir worde hier ja schon sehr oft geholfen nun habe ich wiedermal ein Problem, hoffe mal das ihr mich nun auch nicht im Stich lässt

ich lösche wia Script alle Netzwerkdrucker

Set objNetwork = WScript.CreateObject("WScript.Network")  
Set objPrinters = objNetwork.EnumPrinterConnections
				For intLoop = 0 To objPrinters.Count - 1
				objNetwork.RemovePrinterConnection objPrinters.Item(intLoop),-1,-1

die Drucker sind alle auf ein Domainserver verbunden.

\\Server1.test.lokal\FreigabeDrucker

Nun möchte ich aber nur die Drucker löschen die auch tatsächlich in der Domain test.lokal Verbunden wurden löschen

Beispiel:

ein Client hat noch andere Drucker verbunden

\\Server1.test.lokal\FreigabeDrucker > diesen soll er löschen
\\CLient\Druckername > diesen nicht
\\192.168.1.1\Druckername > diesen auch nicht


ich hoffe ihr könnt mir weiterhelfen.

vielen Dank

Content-ID: 147982

Url: https://administrator.de/forum/nur-drucker-loeschen-die-in-einer-domain-sind-script-147982.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

noodyn
noodyn 30.07.2010 um 09:43:53 Uhr
Goto Top
Überschrift enthält Fehler: Bitte entweder Domäne oder Domain, aber sicher nicht Domaine
bastla
bastla 30.07.2010, aktualisiert am 18.10.2012 um 18:42:59 Uhr
Goto Top
Hallo redzack!

Sieh Dir mal LotPings hier gepostetes Script an - sollte sich entsprechend anpassen lassen ...

Grüße
bastla
redzack
redzack 30.07.2010 um 10:35:05 Uhr
Goto Top
Hab ich bereits getestet

Set objNetwork = WScript.CreateObject("WScript.Network")  
				Set objPrinters = objNetwork.EnumPrinterConnections
				For intLoop = 0 to objPrinters.Count - 1
				If Left(objPrinters.Item(intLoop),9) = "\\Server1"  Then  
						objNetwork.RemovePrinterConnection objPrinters.Item(intLoop),-1,-1

doch er löscht mir die Drucker nicht raus
Biber
Biber 30.07.2010 um 11:01:52 Uhr
Goto Top
Moin redzack,

du hast doch aber sicherlich diese Schleife schon einmal mit einem "Wscript.echo objPrinters.Item(intLoop)" laufen lassen, hmm?

Ich verwette das Lieblingsfusskettchen meiner Lieblingspraktikantin, dass eventuell ein
     If LCase(Left(objPrinters.Item(intLoop),9)) = "\\server1" 
..das Problem stark relativiert.
Ansonsten poste doch die o.b. Ausgabe.

Grüße
Biber

P.S. Dass noch irgendwo ein "Next" und ein "Set objXXX = Nothing" folgt in dem Copy&Paste-Schnipsel nehme ich mal einfach als selbstverständlich an.
P.P.S: @bastla wg "Set objXXX=Nothing" --> Aber wenn die es sich nicht bei 5zeiligen Schnipsel angewöhnen, wie denn dann bei 5000 Zeilen?
bastla
bastla 30.07.2010 um 13:28:07 Uhr
Goto Top
Hallo redzack!

Da ja nun VBS bei einfachen String-Vergleichen recht genau ist, vielleicht eher:
If LCase(Left(objPrinters.Item(intLoop),9)) = "\\server1"  Then
Grüße
bastla

P.S.:
@Biber
"Set objXXX = Nothing" sollte automatisch beim Scriptende erfolgen ...
redzack
redzack 30.07.2010 um 22:00:15 Uhr
Goto Top
Ja die Groß und Kleinschreibung wars ;) hehe

danke