KLDAH 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Hallo, ich habe einen Script, der Drucker abhängig von der AD-Gruppe mappt: ____________________________________________________________ strUser = "LDAP://" & CreateObject("ADSystemInfo").UserName StrPrintSRV = "Printserver" On Error resume next rem Drucker mappen, wenn Benutzer in Gruppe "Kevin_Drucker" If GetObject("LDAP://CN=Kevin_Drucker,OU=Gruppen,DC=Domain,DC=de").IsMember(strUser) Then Set WshNetwork = Wscript.CreateObject("Wscript.Network") WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker1" WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker2" WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\Drucker3" end if ____________________________________________________________ Ich möchte gerne vorher alle Drucker, die verbunden sind löschen. Wie kann ich das per Script machen? Danke schonmal. Gruß Kevin Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 In diesem Fall müsstest du die Methode RemovePrinterConnection der Klasse Network verwenden. Beispiel: WshNetwork.RemovePrinterConnection "\\" & strPrintSRV & "\Drucker1"[/Code] Gruß Carsten Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 Danke für die Antwort. Ich möchte aber alle Drucker löschen, die drin sind. Es könnte ja sein, dass noch andere Drucker da sind. Gibt es da einen Befehl? Ist das möglich? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Das könnte man zum Beispiel so lösen: Const NETWORK = 22Set objNetwork = CreateObject("WScript.Network")strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")For Each objPrinter in colPrinters If objPrinter.Attributes And NETWORK Then strPrinter = objPrinter.Name objNetwork.RemovePrinterConnection strPrinter End IfNext[/Code] Quelle: Hey, Scripting Guy! How Can I Remove All the Network Printers on a Computer? Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 Danke! für was ist die const=22? was muss ich für strcomputer einsetzen Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Network steht in diesem Fall für ein konstantes Flag, welches einen Netzwerkdrucker kennzeichnet. strcomputer ist schon mit "." vorbelegt, was dem lokalen Rechner entspricht. Auf diesem wird dein Anmeldeskript ja auch ausgeführt, von daher passt das. Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 Funktioniert nicht. Ich bekomme immer die Meldung: Diese Netzwerkverbindung ist nicht vorhanden. Muss ich daran noch was anpassen? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Soweit ich das überblicke musst du daran nix anpassen. Bekommst du denn überhaupt Drucker aus der WMI-Query zurück? Bau dir doch mal eine MsgBox in die ForEach-Schleife ein, welche dir den grade bearbeiteten Drucker anzeigt. Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 das funktioniert auch schon nicht. Kannst du nochmal drüberschauen? Ich bin nicht so fit in vb? Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Dann versuch dich mal mit Messageboxen ala "jetzt bin ich hier und hier" an die Stelle des Problems ranzudebuggen und schau mal, wo das Skript aussteigt. Hast du an dem Skript nochwas modifiziert? Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 ne, hab versucht es genau so aufzurufen Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Und ist aktuell überhaupt ein Netzwerkdrucker verbunden? Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 ja klar Zitieren Link zu diesem Kommentar
phoenixcp 10 Geschrieben 17. April 2009 Melden Teilen Geschrieben 17. April 2009 Dann probier es mal so: Set objNetwork = CreateObject("WScript.Network")strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")For Each objPrinter in colPrinters If objPrinter.Attributes Then strPrinter = objPrinter.Name objNetwork.RemovePrinterConnection strPrinter End IfNext[/Code] BTW: Wir reden von einem XP-Client? Zitieren Link zu diesem Kommentar
KLDAH 10 Geschrieben 17. April 2009 Autor Melden Teilen Geschrieben 17. April 2009 damit funktioniert es: strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * From Win32_Printer Where Network = True") For Each objPrinter in colInstalledPrinters objPrinter.Delete_ Next Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.