Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Drucker in der Domäne per AnmeldeSkript löschen

Frage Microsoft Windows Server

Mitglied: california92

california92 (Level 1) - Jetzt verbinden

20.12.2006, aktualisiert 18.10.2012, 10594 Aufrufe, 8 Kommentare

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
Mitglied: Quenck
20.12.2006 um 12:05 Uhr
Google mal nach WSHNetwork.Enumprinterconnections

Damit kannst du dir ein Array der Druckerverbindungen erzeugen und in einer for...each schleife mit RemovePrinterConnection entfernen.

Marko
Bitte warten ..
Mitglied: gemini
20.12.2006, aktualisiert 18.10.2012
Hi california,

ich hab momentan das hier laufen:
01.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
02.
Set colPrinters =  objWMIService.ExecQuery("Select * from Win32_Printer") 
03.
For Each objPrinter in colPrinters 
04.
	If Left(objPrinter.Name, 8) = "\\" & strPrintSRV2 Then 
05.
		WshNetwork.RemovePrinterConnection "\\" & strPrintSRV2 & "\" & objPrinter.ShareName, blnForce 
06.
	End If 
07.
Next
Tom73 hat in seinem Tutorial - Netzwerkdrucker automatisch verbinden - ein Lösungsvorschlag eine elegantere Lösung zum löschen eingesetzt
01.
Set objNetwork = WScript.CreateObject("WScript.Network") 
02.
Set objPrinters = objNetwork.EnumPrinterConnections 
03.
For intLoop = 0 to objPrinters.Count - 1 
04.
	objNetwork.RemovePrinterConnection objPrinters.Item(intLoop),-1,-1 
05.
	WScript.Sleep 500 
06.
Next
HTH,
gemini
Bitte warten ..
Mitglied: california92
20.12.2006 um 12:28 Uhr
Ich habe dazu folgendes gefunden:

Set WshNetwork = WScript.CreateObject("WScript.Network")
Set Printers = WshNetwork.EnumPrinterConnections
li = "Installierte Drucker: " & vbcr
For i = 0 to Printers.Count - 1 Step 2
li = li & Printers.Item(i) & " " & Printers.Item(i+1) & vbcr
Next
msgbox(li)


Damit werden alle installierten Drucker in einer Infobox aufgelistet. Wenn ich damit versuchen werde die Drucker zu löschen gehen doch auch meine lokal installierten Drucker weg?
Was muss ich umschreiben im Skript, dass die Löschung per RemovePrinterConnection startet?

Danke!
Bitte warten ..
Mitglied: california92
20.12.2006 um 12:53 Uhr
Bekomme leider kein brauchbares Ergebnis hin.

Gibt es denn nicht irgeneine Möglichkeit alle Drucker mit \\druckserver\druckername zu entfernen? Mit einem Dreizeiler installiert. Muss doch auch so wieder zum Löschen gehen?

Vielen Dank nochmal
Bitte warten ..
Mitglied: gemini
20.12.2006 um 13:14 Uhr
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 kracht
Bitte warten ..
Mitglied: california92
20.12.2006 um 13:27 Uhr
Ich habe die Lösung gefunden:

Option Explicit
On Error Resume Next

Dim WshNetwork, PrintSRV
PrintSRV = "Druckserver"

Set WshNetwork = Wscript.CreateObject("Wscript.Network")

WshNetwork.RemovePrinterConnection "\\" & PrintSRV & "\Druckername"


Set WshNetwork = Nothing



Ich nehme einfach die bei der Anmeldung installiereten Drucker mit in dieses kurze Abmeldeskript. Alle Drucker sind dann sauber entfernt.

Danke für Euere Unterstützung!
Bitte warten ..
Mitglied: gemini
20.12.2006 um 20:41 Uhr
Ich 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
Bitte warten ..
Mitglied: 65440
21.05.2008 um 11:56 Uhr
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.
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (14)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...