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

Druckerpfad ändern

Frage Entwicklung

Mitglied: Klingenberg

Klingenberg (Level 1) - Jetzt verbinden

04.05.2010 um 12:25 Uhr, 6701 Aufrufe, 11 Kommentare

Moin moin,
ich bin ein Jungspund des Forums un hoffe, dass ihr mir hier ein wenig auf die Sprünge helfen könnt.

Mein Problem ist das Folgende:

Wir haben unseren Printserver migriert und umbenannt. Nun müssen rund 300 Anwender ihren DruckerPfad ändern. Es hat sich lediglich der Name des Servers geändert, nicht jedoch der der Drucker.

Daher ist der Status quo der Folgende:
Alt: \\server1\druckername
Neu:\\server1\druckername

Wie kann ich ein Script erstellen, das lediglich den Pfad des Druckers ändert, ohne den Drucker zu deinstallieren?
Gerne kann dies auch über die Logon.bat passieren.

Mein Gedanke ist,
nach \\server1\* zu suchen und das Ergebnis in \\server2\* umzubenennen.

Wie kann ich das realisieren?

Mit Freundlichem Gruß,

A. Klingenberg
Mitglied: Aufmuckn
04.05.2010 um 13:19 Uhr
lass den drucker doch per script neu verbinden und den alten löschen vorher ... relativ einfache sache ..

schau dir mal:

rundll32 printui.dll,PrintUIEntry


genauer an .... da kannst die wichtigsten sachen machen wie:

drucker löschen , drucker installieren, standarddrucker setzen , .. etc ..

Mit freundlichen Grüßen
mike
Bitte warten ..
Mitglied: Klingenberg
04.05.2010 um 13:29 Uhr
Das klingt ja schön und gut,....
Ich weiß jedoch nicht, in welcher Abteilung welcher Drucker genutzt wird.

Daher sollen alle Drucker, die vorher auf einem System eingerichtet waren nun anstelle von \\server1\ den \\server2\ Pfad nehmen.


Wie finde ich heraus, welche Drucker auf dem System vorher alles über \\server1\ Ihre Druckaufträge erhalten haben?

Mit freundlichen Grüßen

A. Klingenberg
Bitte warten ..
Mitglied: Aufmuckn
04.05.2010 um 13:44 Uhr
um wieviele versch. drucker gehts denn auf server1 ?
Bitte warten ..
Mitglied: Klingenberg
04.05.2010 um 13:52 Uhr
ca. 60 -70 versch. Drucker ;)
Bitte warten ..
Mitglied: Aufmuckn
04.05.2010 um 13:58 Uhr
hui .. ok .. das macht die sache schon aufwändiger ..
Bitte warten ..
Mitglied: Klingenberg
04.05.2010 um 14:00 Uhr
Nicht jeder Anwender greift auf alle Drucker zu. Es sind meistens Drucker, die direkt in den jeweiligen Büroräumen stehen, jedoch über den Printserver angesprochen werden.
Bitte warten ..
Mitglied: Aufmuckn
04.05.2010 um 14:20 Uhr
naaaaja .. also ..

dafür bin ich leider zu wenig scripter .. aber es soltle schon möglich sein die druckerinformationen auszulesen - zu vergleichen und falls "server1" vorkommt dies durch "server2" zu ersetzten ..

zumindest kann man die druckerinformationen als datei abspeichern .. und somit auslesen ...

http://www.diew.eu/2009/07/01/mit-rundll32-printuidllprintuientry-zur-d ...

aber wie gesagt .. das übersteigt leider meine scriptfähigkeiten - aber ev. findet sich hier noch der ein oder andere .. ?

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Aufmuckn
04.05.2010 um 14:22 Uhr
Zitat von Klingenberg:

Daher ist der Status quo der Folgende:
Alt: \\server1\druckername
Neu:\\server1\druckername


sollt wohl heissen:

neu: \\server2\druckername
Bitte warten ..
Mitglied: 89485
04.05.2010 um 14:44 Uhr
nur mal ne frage:

wenn die über einen Printserver laufen, haben die doch eine feste IP-Adresse....

bekommen die dann überhaupt eine neue????

wenn ja, überleg' dir mal, ob es nicht sinnvoller ist, die Einstellungen von ALT auf NEU zu übernehmen

Grüße Batchliebhaber
Bitte warten ..
Mitglied: Klingenberg
04.05.2010 um 14:56 Uhr
Ich habe jetzt eine Lösung gefunden. Der Code stammt aus einem anderen Forum, führt jedoch zum Ziel

01.
Option Explicit 
02.
 
03.
Dim Text, i, PS1, nPS1 
04.
Dim drucker, server, tempname, fso, fi2, message, intro, def_printer, old_def_printer, error_meldung, reg_eintrag 
05.
Dim WshNetwork, WshShell, oDevices ' Objektvariable 
06.
Const ForWriting = 8 ' 2 = Write und 8 = anhängen 
07.
 
08.
Set WshShell = WScript.CreateObject("WScript.Shell") 
09.
' Erstelle neues WshNetwork-Objekt, welches man zum Zugriff 
10.
' auf die Netzwerk-Eigenschaften brauchen. 
11.
Set WshNetwork = WScript.CreateObject("WScript.Network") 
12.
 
13.
On error resume next 
14.
 
15.
if WshShell.RegRead("HKCU\Software\Shortcut\chgPrinter\chgPrinterVersion") <> "100" Then 
16.
Select Case err.number 
17.
Case 0 
18.
error_meldung = " Registryeintrag vorhanden " & vbCRLF 
19.
Case -2147024894 
20.
error_meldung = " Registryeintrag fehlt " & vbCRLF 
21.
Case Else 
22.
error_meldung = " Unbekannter Fehler: Code " & Err.Number & " Bezeichnung : " & Err.Description & vbCRLF 
23.
End Select 
24.
 
25.
' Alte Druckserver 
26.
PS1 = "AlterServer" 
27.
' Neue Druckserver 
28.
nPS1 = "NeuerServer" 
29.
 
30.
def_printer = WshShell.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device") 
31.
old_def_printer = Split(def_printer, ",", -1, 1) 
32.
'msgBox "Alter Default Printer = : " & old_def_printer(0) 
33.
def_printer = Replace(ucase(old_def_printer(0)), "PRINT", "PS", 1, 1, 1) 
34.
'msgBox "Neuer Default Printer = : " & def_printer 
35.
 
36.
' Schreiben der Logdatei "Printer.txt" in "D:\" 
37.
Set fso = CreateObject("Scripting.FileSystemObject") 
38.
Set fi2 = fso.OpenTextFile("D:\PRINTER.TXT", ForWriting, true) ' Ausgabedatei 
39.
 
40.
' Jetzt die Zuordnungen auflisten 
41.
Set oDevices = WshNetwork.EnumPrinterConnections 
42.
 
43.
' Überschrift der Ausgabe 
44.
 
45.
Text = vbCRLF &" Zusammenfassung der Druckerzuordnungen" & vbCRLF 
46.
Text = text &"-----------------------------------------------------------------------" & vbCRLF & vbCRLF 
47.
 
48.
 
49.
' Untertitel der Ausgabe 
50.
Text = text & " Die alten Druckerzuordnungen lauteten:" & vbCRLF & vbCRLF 
51.
text = text & "Old Default Printer = " & old_def_printer(0) & vbCRLF 
52.
 
53.
' Ermitteln der alten (aktuell) definierten Druckerobjekte 
54.
For i = 0 To oDevices.Count-1 Step 2 
55.
' Ausgabe bei jedem Durchlauf ergänzen 
56.
Text = " " & Text & oDevices(i) & " " & oDevices(i+1) & vbCRLF 
57.
' Variable splitten wo ein \ vorkommt 
58.
tempname = Split(oDevices(i+1), "\", 2, 1) 
59.
for each server in tempname 
60.
' Variable abermals splitten wo ein \ vorkommt, damit Server und Drucker übrig bleibt 
61.
drucker = Split(server, "\", -1, 1) 
62.
' Prüfen welcher Printserver gefunden wurde 
63.
if Instr(1, ucase(server), PS1, 1) Then 
64.
' Druckerzuordnung zu neuem Server herstellen 
65.
WshNetwork.AddWindowsPrinterConnection "\\"&nPS1&"\"&drucker(2) 
66.
' Druckerzuordnung löschen 
67.
WshNetwork.RemovePrinterConnection "\\"&PS1&"\"&drucker(2) 
68.
end if 
69.
Select Case err.number 
70.
Case 0 
71.
message = " Info: Druckervorgang " & "\\"&server&"\"&drucker(2) & " erfolgreich durchgeführt." & vbCRLF 
72.
End Select 
73.
next 
74.
Next 
75.
 
76.
' Abermals die neuen Druckereinstellungen auslesen 
77.
Set oDevices = WshNetwork.EnumPrinterConnections 
78.
' Ausgabetext definieren 
79.
Text = " " & Text & vbCRLF &vbCRLF & " Die neuen Druckerzuordnungen lauten jetzt:" & vbCRLF &vbCRLF 
80.
 
81.
' Ermitteln der alten (aktuell) definierten Druckerobjekte 
82.
For i = 0 To oDevices.Count-1 Step 2 
83.
Text = " " & Text & oDevices(i) & " " & oDevices(i+1) & vbCRLF 
84.
Next 
85.
 
86.
' Default Printer setzen 
87.
WshNetwork.SetDefaultPrinter def_printer 
88.
 
89.
text = text & "New Default Printer = " & def_printer & vbCRLF 
90.
 
91.
MsgBox Text, vbOkonly + vbInformation 
92.
 
93.
fi2.WriteLine Text & "----------------------------------------------------" & vbCRLF & error_meldung 
94.
fi2.WriteLine " " & vbCRLF & vbCRLF & "--------------------------- E N D E --------------------------------" & vbCRLF 
95.
 
96.
'In Registry schreiben, um bei jedem Start zu prüfen ob schon gelaufen 
97.
WshShell.RegWrite "HKCU\Software\shortcut\chgPrinter\chgPrinterVersion", "0" 
98.
 
99.
Set fi2 = Nothing 
100.
else 
101.
' msgBox "Fehlermeldung = : " & err.Number 
102.
' MsgBox "Ist schon gelaufen" 
103.
WScript.Quit 
104.
end if 
105.
WScript.Quit 
106.
 
107.
 
Wer das Problem sonst noch hat kann damit evtl. etwas anfangen.
Danke Mike, das du dich um eine Lösung bemüht hast.
Bitte warten ..
Mitglied: Aufmuckn
04.05.2010 um 15:13 Uhr
büdde gern .. und funktioniert das script bei dir ? oder hast noch nicht getestet?
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Erkennung und -Abwehr
Lokale Virenprüfstation : Windows 10: Ändern von Einstellungen verhinden (5)

Frage von TryAndSolve zum Thema Erkennung und -Abwehr ...

Windows Server
gelöst Word 2010 : Absatz - Abstand per GPO ändern (3)

Frage von johanna-p zum Thema Windows Server ...

Exchange Server
Exchange 2013, Outlook 2010 Standard-Absendeadresse ändern (4)

Frage von ingoue zum Thema Exchange Server ...

E-Mail
gelöst GMail: Anzeige der Mailübersicht ändern (7)

Frage von honeybee zum Thema E-Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...