W2K-Networker 11 Geschrieben 8. März 2010 Melden Teilen Geschrieben 8. März 2010 Hallo Board, um unseren Benutzern die Arbeit so leicht wie möglich zu machen (und auch uns Admins zu entlasten) installieren wir die Netzwerkdrucker bei allen Usern über ein VBS-Logonscript. Der Befehl sieht so aus: strOU = "Drucker_D01" strOU_STD = "Drucker_D01_Std" strUNC = "\\PrintSRV02\D01" If objGroupList.Exists(strOU) or objGroupList.Exists(strOU_STD) Then MapPrinter strUNC If objGroupList.Exists(strOU_STD) Then objNetwork.SetDefaultPrinter strUNC End If End If Ist der betroffene Benutzer in der entsprechenden OU, bekommt er den Drucker auf seiner Maschine installiert. Das ganze funktioniert auch einwandfrei. Jetzt haben wir aber uns aber einen neuen Printserver installiert, den PrintSRV02. Das Script habe ich entsprechend angepasst. Wie kann ich jetzt aber in diesem Script auf allen Machinen die Netzwerkdrucker deinstallieren oder löschen, die noch auf PrintSRV01 zeigen? Vielen Dank für alle Ideen und Antworten. Bastian Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 8. März 2010 Melden Teilen Geschrieben 8. März 2010 Hallo, ich vermute mal, dass sich hinter "MapPrinter" eine Sub bzw. Function befindet, die z.B. mit AddPrinterConnection arbeitet. Um Drucker zu entfernen würde sich z.B. entspr. RemovePrinterConnection anbieten EDIT: Wenn es sich um eine Domäne handelt, in der GPPs verwendet werden können, würde es sich auch anbieten, das Ganze per Grouppolicy abzuhandeln. Zitieren Link zu diesem Kommentar
W2K-Networker 11 Geschrieben 9. März 2010 Autor Melden Teilen Geschrieben 9. März 2010 Hi Cybquest, das hier hatte ich zu Anfangs noch vergessen mit hinzuzufügen: '## Netzlaufwerke und Drucker Set oDrives = objNetwork.EnumNetworkDrives For i = 0 to oDrives.Count - 1 Step 2 strDrives = strDrives & i & ".) " & oDrives.Item(i) & vbCr & " " & i+1 & ".) " & oDrives.Item(i+1) & vbCr Next Set oPrinters = objNetwork.EnumPrinterConnections For i = 0 to oPrinters.Count - 1 Step 2 strPrinters = strPrinters & i & ".) " & oPrinters.Item(i) & vbCr & " " & i+1 & ".) " & oPrinters.Item(i+1) & vbCr Next Ich bin leider kein VBS Spezi. Wie kann ich deinen Vorschlag mit in das bestehende Skript einbauen? Oder wie kann ich das ganze per GPO realisieren? Bastian Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 9. März 2010 Melden Teilen Geschrieben 9. März 2010 Du kannst auch via Batch die Drucker beim anmelden installieren lassen: Anmelde Skripe - Möglichkeiten und Funktionen Die Alternative von Frank sind die Group Policy Preferences. Dazu muß mind. ein VISTA/7/W2008 in der Domain vorhanden sein: GPP - Group Policy Preferences - Gruppenrichtlinien Einstellungen Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. März 2010 Melden Teilen Geschrieben 10. März 2010 Hier ein Vorschlag, wie Dein Script z.B. erweitert werden könnte ... strUNC = "\\PrintSRV02\D01" strUNCAlt = "\\PrintSRV01\D01" If objGroupList.Exists(strOU) or objGroupList.Exists(strOU_STD) Then objNetwork.RemovePrinterConnection strUNCAlt MapPrinter strUNC ... Zitieren Link zu diesem Kommentar
W2K-Networker 11 Geschrieben 16. März 2010 Autor Melden Teilen Geschrieben 16. März 2010 Hallo Cybquest, danke für den Vorschlag. Wenn ich mein Skript aber durch deine Zeilen ergänze, bekomme ich immer einen Fehler: End erwartet am Ende des gesamten Skripts. Da steht End Sub. So sieht mein Skript jetzt aus, was leider nicht funzt: strUNC = "\\PrintSRV02\D01" strUNCAlt = "\\PrintSRV01\D01" If objGroupList.Exists(strOU) or objGroupList.Exists(strOU_STD) Then objNetwork.RemovePrinterConnection strUNCAlt MapPrinter strUNC strOU = "Drucker_D01" strOU_STD = "Drucker_D01_Std" strUNC = "\\PrintSRV02\D01" If objGroupList.Exists(strOU) or objGroupList.Exists(strOU_STD) Then MapPrinter strUNC If objGroupList.Exists(strOU_STD) Then objNetwork.SetDefaultPrinter strUNC End If End If Wenn ich aber ein End If in zeile 6 einfüge, meckert er über strUNCAlt = "\\PrintSRV01\D01" Variable ist nicht definiert. Was ich hierzu aber auch noch gefunden habe: 1. Preparation RemovePrinterConnection Option Explicit Dim objNetwork Dim strUNCPrinter strUNCPrinter = "\\alan\Epson" Set objNetwork = CreateObject("WScript.Network") objNetwork.AddWindowsPrinterConnection strUNCPrinter WScript.Echo "Check the Printers folder for : " & strUNCPrinter WScript.Quit 2. Delete the printer icon with RemovePrinterConnection Option Explicit Dim objNetwork, strUNCPrinter strUNCPrinter = "\\LittleServer\win2pdf" Set objNetwork = CreateObject("WScript.Network") ' Section which removes the network printer objNetwork.RemovePrinterConnection strUNCPrinter WScript.Echo "Check Printers folder NO: " & strUNCPrinter Wscript.Quit Vielleicht ist das ja was nützliches?! Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 16. März 2010 Melden Teilen Geschrieben 16. März 2010 Das ist momentan nach wie vor noch nicht das ganze Script, denke ich... Egal: Momentan fehlt ein "End if". Kannst ganz leicht selbst durchzählen ;) 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.