Tom250376 10 Geschrieben 18. November 2005 Melden Geschrieben 18. November 2005 Hallo NG, ich stehe vor der Aufgabe den Printserver zu migrieren von einem NT4 zu einem W2k3. Die Drucker sind mittlerweile schon auf dem neuen angelegt und nun steht es an auf den clients die alten verbindungen zu trennen und die neuen anzulegen. Ich habe vor das mit einem anmeldeskript zu erledigen, weil nur 600 rechner einfach zu viele sind. Habe es schon bis hier geschafft: * Const PrnShare1 = "\\xpsrvprint\nit6" Const AlterServer = "srvprints" Set IWshNetwork2 = CreateObject("Wscript.Network") Set drucker = IWshNetwork2.EnumPrinterConnections For x = 0 to drucker.count-1 step 2 port = drucker(x) name = drucker(x+1) If InStr(LCase(name),LCase(AlterServer))>0 then On Error Resume Next IWshNetwork2.RemovePrinterConnection name, true, true On Error Goto 0 end if Next On Error Resume Next IWshNetwork2.AddWindowsPrinterConnection PrnShare1 * Das löscht schon mal die alten und verbindet statisch einen neuen Drucker. Was ist aber mit den "querverbundenen" Druckern, die sich ein mitarbeiter aber ohne mein zutun installiert hat, weil er ihn braucht? Eigentlich weiss ich durch das skript wie der Drucker heißt und den neuen Server kenne ich auch. Aber wie baue ich es ein, dass er mir den alten drucker automatisch mit dem neuen server verbindet? ich wäre echt dankbar. ToM Zitieren
Tom250376 10 Geschrieben 18. November 2005 Autor Melden Geschrieben 18. November 2005 Theoretisch stelle ich mir das so vor..... * Const NeuerServer = "NeuerPrintserver" Variable PrnShareX = NeuerServer + Name 'Kommt aus der For-Schleife IWshNetwork2.AddWindowsPrinterConnection PrnShareX * Klingt doch einfach, oder? Aber wie baue ich die Variable? Zitieren
Tom250376 10 Geschrieben 18. November 2005 Autor Melden Geschrieben 18. November 2005 Hab es ... so wird jeder alte pfad in den neuen umgewandelt...aber den standarddrucker bekomme ich nicht hin. habe gelesen man kann den aktuellen standarddrucker nciht ermitteln,stimmt das? * Set IWshNetwork2 = CreateObject("Wscript.Network") Set drucker = IWshNetwork2.EnumPrinterConnections For x = 0 to drucker.count-1 step 2 port = drucker(x) name = drucker(x+1) msgbox name If InStr(UCase(name),UCase("SRVPRINTS"))>0 then On Error Resume Next name1=replace(name,"SRVPRINTS","xpsrvprint") msgbox name1 IWshNetwork2.AddWindowsPrinterConnection name1 IWshNetwork2.RemovePrinterConnection name, true, true end if Next * Zitieren
lefg 276 Geschrieben 18. November 2005 Melden Geschrieben 18. November 2005 Was ist aber mit den "querverbundenen" Druckern, die sich ein mitarbeiter aber ohne mein zutun installiert hat, weil er ihn braucht? Hallo, von denen weisst du doch nichts oder? Also löschen und ignorieren! Oder gibt es einen guten Grund etwas anders zu tun? Ich sage das mal so provokant. Gruß Edgar Zitieren
Tom250376 10 Geschrieben 21. November 2005 Autor Melden Geschrieben 21. November 2005 hi, nein von denen wusste ich nichts, aber kennst ja die mitarbeiter. eine verkaufsmitabeiterin braucht halt manchmal einen drucker im versand, damit die dann möglichst schnell den lieferschein haben....kennst das bestimmt. hab alles soweit hinbekommen, und TIPPS UND TRICKS hab ich das Skript hinterlegt....Kommentare? Gruß ToM Zitieren
lefg 276 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 ...eine verkaufsmitabeiterin braucht halt manchmal einen drucker im versand, .... hab alles soweit hinbekommen, und TIPPS UND TRICKS hab ich das Skript hinterlegt....Kommentare?Hallo, letztendlich muss man ja den Betrieb am Laufen halte und darf ihn nicht sabotieren. Das ist nämlich eine Wanderung auf einem verdammt schmalen Grat. Solange das nicht zu einem Dschungel auswächst und handhabbar ist, muss man halt damit leben. Ich habe den Usern alle Netzwerkdrucker weggenommen, es gibt keine Freigaben, es gibt keine Drucker an Workstations. Gut, fachkundige Leute können IP- und Portadressen in Erfahrung bringen, ist anscheinend bis nicht geschehen. Falls doch, nach dem nächsten Boot ist alles wieder gut. Sie würden die Lust verlieren und doch zu mir kommen. Gruß Edgar Zitieren
Tom250376 10 Geschrieben 21. November 2005 Autor Melden Geschrieben 21. November 2005 ich gebe dir vollkommen recht, muss aber leider zugeben, dass es eventuell vorgekommen sein kann, dass ich ihn selber "querinstalliert" habe ohne es notiert zu haben....sträflich,sträflich,.... Zitieren
lefg 276 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 ..., dass ich ihn selber "querinstalliert" habe ohne es notiert zu haben....sträflich,sträflich,....Auch das geschieht ... :D Nobody ist perfect Zitieren
Letze01 10 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 Hay hay, habe mal das folgende Script auf http://cwashington.netreach.net/depo/comments.asp?Index=1014&author=fosterr_2000@excite.com&action=view gefunden: ____________________________________________________________________________________ On Error Resume Next strComputer = "." 'creates shell object to read registry Set objShell = WScript.CreateObject("WScript.Shell") 'gets cimv provider from WMI Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 'creates network object to manipulate printers set wshNetwork = WScript.CreateObject("Wscript.Network") 'gets default printer prnDefault = objShell.RegRead ("HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Windows\Device") 'gets all printers Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer", ,48) 'cycles through the printers and sets up the new ones For Each objItem in colItems 'wscript.Echo objItem.ServerName if objItem.ServerName = "\\oldserver" Or "\\OLDSERVER" THEN wshNetwork.RemovePrinterConnection (objItem.Name) wshNetwork.AddWindowsPrinterConnection ("\\newserver\" & objItem.ShareName) End If Next divchar = InStr(prnDefault, ",") oldSrv = InStr(prnDefault, "rhea") if oldSrv <> "0" Then newPrinter = Mid(prnDefault,8,(divchar-1)) objNetwork.SetDefaultPrinter("\\oldserver\" & newprinter) ____________________________________________________________________________________ Aber wie das funktioniert, und was da genau gemacht wird.... Zitieren
Tom250376 10 Geschrieben 21. November 2005 Autor Melden Geschrieben 21. November 2005 Hi hi und danke, das hätte genau das richtige gemacht....nur mal mit WMI...ich hab mein Skript so gebaut dass auch das funktioniert...->TIPPS UND TRICKS Gruß ToM Zitieren
Letze01 10 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 Hay hay, also funktioniert jetzt alles so, wie Du es möchtest? Mit Standard-Drucker und allem drum und dran? Könnte man Dein Script dann vielleicht auch bekommen? :D Zitieren
Tom250376 10 Geschrieben 21. November 2005 Autor Melden Geschrieben 21. November 2005 klar, darum ist es hier....-> http://www.mcseboard.de/showthread.php?t=76524 Gruß ToM Zitieren
Letze01 10 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 Hay hay, vielen Dank - ist schließlich ein Thema das regelmäßig vorkommt :thumb1: Da ich in Sachen Scripting sehr unerfahren bin, sollte ich noch wissen, ob vor Anwendung noch irgendwas angepasst werden muss... Danke vorab! Zitieren
Tom250376 10 Geschrieben 21. November 2005 Autor Melden Geschrieben 21. November 2005 [ÄHM]....ja [NeuerServer] und [AlterServer] solltest du mit deinen Werten befüllen. Der Teil, der die besonderen Drucker speziell behandelt (ist dementsprechend kommentiert) kannst du eigentlich ganz weglassen, stört das skript aber auch in deiner umgebung nicht, da der teil einfach weggelassen wird. Zitieren
Letze01 10 Geschrieben 21. November 2005 Melden Geschrieben 21. November 2005 Hay hay, prima! Vielen Dank!! Zitieren
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.