Evi 12 Geschrieben 5. November 2007 Melden Teilen Geschrieben 5. November 2007 Hallo, gibt es irgendeinen Trick, mit dem ich das PrintMigrator31 für einen User anwenden kann, der nicht Administrator-Rechte besitzt? mit runas und Administrator-Daten funktioniert es nicht. Müßte mit Druckern von altem auf neuen Druckserver umziehen und möchte nicht bei 60 Usern alle Drucker wieder komplett einrichten vielleicht hat jemand eine geniale Lösung?? gruss Evi Zitieren Link zu diesem Kommentar
Sunny61 812 Geschrieben 5. November 2007 Melden Teilen Geschrieben 5. November 2007 Wenn es ein Printserver ist, dann einfach alles sichern, auf dem neuen wieder retour. Jetzt kannst Du den Server auch umbennen, die User können evtl. 5 Minuten nicht drucken. Bei mir hat die Umstellung in der Mittagspause ca. 15 Minuten gedauert, komplett. Oder suchst Du sowas hier: Druckservermigration auf Clientseite - faq-o-matic.net Zitieren Link zu diesem Kommentar
Evi 12 Geschrieben 5. November 2007 Autor Melden Teilen Geschrieben 5. November 2007 Hallo, es handelt sich wirklich um die Clients, den Serverumzug hab ich mit Printmigrator durchgeführt, lief wunderbar. Dieses Tool läuft aber nur, wenn man als Administrator unterwegs ist, ein User im Netzwerk hat diese Rechte hier nicht. Auch wenn ich als lokaler Administrator ausführen will hab ich nicht den gewünschten Erfolg. Den Artikel hab ich mal durchgesehen - ist eine interessante Geschichte, da ich aber je Abteilung und auch hier wieder teilweise nicht einheitlich Drucker im Netz und lokale Drucker hab, ist das Script dann auch diverse Male zu ändern. Perfekt wäre es, wenn ich das Migrationstool irgendwie mit dem User zum Laufen bekäme - hab es auch schon mit dem RunAs von Steel versucht, auch ohne Erfolg. gruss evi Zitieren Link zu diesem Kommentar
Evi 12 Geschrieben 6. November 2007 Autor Melden Teilen Geschrieben 6. November 2007 Hallo, nochmals die Frage: Printmigrator und Benutzer mit eingeschränkten Rechten - hat keiner damit Erfahrung?? Einen Tipp??? Gruß Evi Zitieren Link zu diesem Kommentar
fha 10 Geschrieben 6. November 2007 Melden Teilen Geschrieben 6. November 2007 Hi! Ich habe den PrintMigrator nicht dazu benutzen können um die Drucker auf den Clients von dem alten auf den neuen Printserver umzuziehen. Ich habe mir daher ein kleines Skript zusammengeschustert. Vorraussetzung: 1) Die Drucker sind unter dem gleichen Namen freigegeben, wie vorher. 2) Die Drucker sind bereits installiert 3) Du willst einfach alle Drucker von einem Server auf den anderen umziehen. Vorgehensweise: Das Skript liest als erstes den Standarddrucker aus. Dann geht es die installierten Netzwerk-Drucker der Reihe nach durch und prüft ob in den Verbindungeigenschaften der String "AlterServername" vorkommt. Ist das der Fall legt es denselben Drucker mit Verbindung auf den neuen an und löscht danach den alten Drucker. Zum Schluss wird der Standarddrucker neu gesetzt. Dieser sollte nun der selbe sein wie vorher, nur verweist er nun auf den neuen Server. Ist das das, was du suchst? Zitieren Link zu diesem Kommentar
Evi 12 Geschrieben 6. November 2007 Autor Melden Teilen Geschrieben 6. November 2007 Hallo, ja das hört sich gut an - würdest du mir das Script zur Verfügung stellen?? Gruß Evi Zitieren Link zu diesem Kommentar
fha 10 Geschrieben 6. November 2007 Melden Teilen Geschrieben 6. November 2007 Hi! Skript s.u. Ich habe das Skript schon zweimal benutzt und fand es hilfreich. Allerdings übernehme ich natürlich keine Gewähr, dass es bei dir in dieser unveränderten Form ohne Probleme funktioniert. Dementsprechend übernehme ich auch keine Gewähr für irgendwelche Datenverluste oder Schäden, die durch die Benutzung auftreten... TIP: Sollte das Skript ohne Fehler durchlaufen, aber deine Drucker nicht umstellen, dann prüfe das Ereignislog "Anwendung". Dort müssten mehrere Meldungen mit Quelle WSH drinstehen. Die sagen eine Menge darüber aus, was das Skrip macht, bzw. gemacht hat(oder auch nicht). '---------------------------------------------------------- ' Variablendefinitionen '---------------------------------------------------------- strAlterServer = "srv" strNeuerServer = "srv1" '---------------------------------------------------------- ' Konstantendefinition '---------------------------------------------------------- Const SUCCESS = 0 Const FEHLER = 1 Const WARNING = 2 Const INFORMATION = 4 Const AUDIT_SUCCESS = 8 Const AUDIT_FAILURE = 16 '---------------------------------------------------------- ' Ausblenden eventueller Fehlermeldungen '---------------------------------------------------------- 'On Error Resume Next '---------------------------------------------------------- ' Instanzieren des Windows Scripting Hosts '---------------------------------------------------------- Set Network = CreateObject("Wscript.Network") Set WShell = CreateObject("WScript.Shell") '---------------------------------------------------------- ' Ermitteln des Standarddruckers '---------------------------------------------------------- DefaultDrucker = "" DefaultDrucker = WShell.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device") DefaultDrucker = Left(DefaultDrucker, InStr(1, DefaultDrucker, ",") - 1) WShell.Logevent INFORMATION, "Default printer is " & DefaultDrucker If InStr(1, DefaultDrucker, strAlterServer, vbTextCompare) > 0 then DefaultDrucker = Replace(DefaultDrucker, strAlterServer, strNeuerServer) '---------------------------------------------------------- ' Alle Netzwerkdrucker werden überprüft, ob sie auf den ' alten Printserver verweisen. Diese werden dann auf den ' neuen Printserver umgeschrieben und anschließend gelöscht. '---------------------------------------------------------- Set colPrinters = Network.EnumPrinterConnections strLog = "" For i = 0 To colPrinters.Count - 1 Step 2 Err.number = 0 Typ = INFORMATION strLog = "Process Printer: " & colPrinters.Item(i) & vbTab & colPrinters.Item (i + 1) & "..." & vbNewLine If InStr(1, LCase(colPrinters.Item(i)), LCase(strAlterServer), vbTextCompare) > 0 Or _ InStr(1, LCase(colPrinters.Item(i + 1)), LCase(strAlterServer), vbTextCompare) > 0 Then strLog = strLog & "Found string: " & strAlterServer & vbNewLine strAlterDrucker = colPrinters.Item(i) strNeuerDrucker = Replace(colPrinters.Item(i), strAlterServer, strNeuerServer) strLog = strLog & "Add printer: " & strNeuerDrucker & "..." Network.AddWindowsPrinterConnection strNeuerDrucker strLog = strLog & " DONE!" & vbNewLine strLog = strLog & "Delete printer: " & strAlterDrucker & "..." Network.RemovePrinterConnection strAlterDrucker, True, True strLog = strLog & " DONE!" & vbNewLine Else strLog = strLog & "Keine Übereinstimmung mit " & strAlterServer & " gefunden!" & vbNewLine End If If Err.number <> 0 Then Typ = FEHLER strLog = "=== ERROR ===" & vbNewLine & strLog & vbNewLine & Err.Description & vbNewLine strLog = strLog & Err.Source Else Typ = SUCCESS End If WShell.Logevent Typ, strLog strLog = "" Next Network.SetDefaultPrinter DefaultDrucker WShell.Logevent INFORMATION, "New default printer is " & DefaultDrucker Set Network = Nothing Set WShell = Nothing P.S.: Wäre nett, wenn du schreiben könntest, ob es funktioniert hat:) Zitieren Link zu diesem Kommentar
fha 10 Geschrieben 6. November 2007 Melden Teilen Geschrieben 6. November 2007 Sorry, War die vorherige Version.... Habe die aktuelle jetzt nochmals oben eingefügt. Zitieren Link zu diesem Kommentar
Evi 12 Geschrieben 6. November 2007 Autor Melden Teilen Geschrieben 6. November 2007 Hallo, nochmals eine Frage zum Script: ich hab die beiden Servernamen ausgetauscht - jetzt aber: Windows Script Host: zeile 53, Zeichen 3, Fehler: der Druckername ist unzulässig code 80070709. Quelle null (soll das heißen, dass irgendwo ein Leerzeichen stört oder wurde die Variable nicht gefüllt??) in diesem Bereich befinden sich nur die Variablen - was könnte da schieflaufen?? Gruß Evi Zitieren Link zu diesem Kommentar
fha 10 Geschrieben 6. November 2007 Melden Teilen Geschrieben 6. November 2007 Das ist der Add-Befehl für die neue Druckerverbindung. Ich denke, dass da irgendwas bei der Ersetzung schief gelaufen ist. Nimm einmal das Hochkomma vor der Zeile 20 "On error resume next" heraus und lass das Skript laufen. Nun sollte das Skript durchlaufen, aber im Eventlog "Anwendung" eine Fehlermeldung drin haben. Evtl siehst du schon, was da nicht läuft, ansonsten posten. Edit: Und nimm mal die aktualisierte Version oben aus dem Code-Ausschnitt, ich hatte zuerst die verkehrte Version gepostet. Aber jetzt ist die korrekte drin. Und da ist es dann nämlich Zeile 54. Zitieren Link zu diesem Kommentar
Evi 12 Geschrieben 7. November 2007 Autor Melden Teilen Geschrieben 7. November 2007 Hallo, diese Meldung steht im Ereignisprotokoll: Diese Netzwerkverbindung ist nicht vorhanden. der UNC-Pfad sieht aber bis zum .... so aus, wie er sein soll - wie wird er im Script denn genau zusammengesetzt?? Könntest du mir noch einen Tipp geben?? Gruß Evi Zitieren Link zu diesem Kommentar
fha 10 Geschrieben 7. November 2007 Melden Teilen Geschrieben 7. November 2007 Hi! Wenn du über VBscript einen Drucker abfragst, dann hat dieser zwei Komponenten: 1.) Den Namen des Druckers (Also das, was du zu sehen bekommst, wenn du "Drucker und Faxgeräte" öffnest) 2.) Den Port des Druckers(Also "LPT1:" bei einem Paralleldrucker, "\\server\share" bei einem Netzwerkdrucker) Das Skript liest diese Parameter aus den vorhanden Druckern aus und schreibt sie in die Ereignisanzeige: strLog = "Process Printer: " & colPrinters.Item(i) & vbTab & colPrinters.Item (i + 1) & "..." & vbNewLine Wenn im Port des Druckers die Bezeichnung des alten Servers vorkommt, If InStr(1, LCase(colPrinters.Item(i)), LCase(strAlterServer), vbTextCompare) > 0 Or _ InStr(1, LCase(colPrinters.Item(i + 1)), LCase(strAlterServer), vbTextCompare) > 0 Then dann wird dieser durch den Namen des neuen Servers ersetzt. strNeuerDrucker = Replace(colPrinters.Item(i), strAlterServer, strNeuerServer) D. h. Schau dir in der Ereignisanzeige die erste Zeile an, die mit "Process Printer" anfängt. Dort stehen zwei Datensätze dahinter. Der erste muss der Port, also der UNC-Pfad, und der zweite die Bezeichnung sein. Ansonsten: Poste mal den gesamten Fehlereintrag aus der Ereignisanzeige. EDIT: Die nächste Zeile in der Ereignisanzeige sagt dir, welchen Drucker er anlegen möchte: strLog = strLog & "Add printer: " & strNeuerDrucker & "..." Dort sollte der UNC-Pfad zum neuen Server stehen. Dieser Pfad muss natürlich existieren! Also einfach mal kopieren und über Start>Ausführen probieren, ob der Client da wirklich drauf kommt. 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.