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

Änderung von Servernamen per Batch nach Neuinstallation von Druckern auf einem neuen Printserver

Frage Microsoft Windows Netzwerk

Mitglied: 68154

68154 (Level 1)

04.08.2008, aktualisiert 18.10.2012, 6257 Aufrufe, 6 Kommentare

Wir müssen einen Printserver austauschen, da sein Alter sich auf die Stabilität auswirkt...

Nachdem wir die Drucker ( ca. 30 oder mehr, kann ich im Moment nicht sagen ) auf dem neuen Printserver installiert haben, müssen wir unseren Mitarbeitern möglichst einfach die Drucker umstellen können ( in Windows ). Dies würden wir gerne über einen Batch machen den wir an diese Mitarbeiter verteilen würden. Dieser Batch soll einfach den Pfad mit dem alten Servernamen durch den Pfad mit dem neuen Servernamen ersetzten. Die Bezeichnungen der einzelnen Drucker wird sich nicht ändern.

Leider habe ich nach intensiver Suche keinen Batch mit solchen Möglichkeiten gefunden.

Desshalb ist meine Frage ob dies realisierbar ist und ob ihr bereits von so einem Batch wisst.
Unsere Mitarbeiter sind User und sehr verstreut, desshalb wäre dies die einfachste Lösung.

Vielen Dank für eure Aufmerksamkeit und ich freue mich schon auf konstruktive Anregungen.
Mitglied: 60730
04.08.2008, aktualisiert 18.10.2012
Servus,

du mußt nur richtig suchen

Gruß
Bitte warten ..
Mitglied: 68154
04.08.2008 um 15:39 Uhr
Vielen Dank für deine Antwort.
Hab ich wohl überlesen.
Ich werd das so gleich mal austesten.

Gruss
Bitte warten ..
Mitglied: MegaTraveller
04.08.2008 um 15:51 Uhr
Hallo,

vielleicht hilft Dir ja das hier weiter.

Bye
MT
Bitte warten ..
Mitglied: stbewo
05.08.2008 um 07:42 Uhr
Hi,

wir hatten 2003 auch einmal die gleiche Umstellung wie Du. Für den Benutzer hatten wir folgendes Script benutzt. Kannst Du auch im Login Script einbauen, da ein Registry Eintrag erzeugt wird, der bei jedem Ausführen überprüft wird, ob schon einmal gelaufen. Das Script musst Du natürlich an Deine Bedürfnisse noch anpassen.

Gruß
Stefan

Option Explicit

Dim Text, i, PS1, PS2, PS3, PS4, PS5, PS6, nPS1, nPS2, nPS3, nPS4, nPS5, nPS6
Dim drucker, server, tempname, fso, fi2, message, intro, def_printer, old_def_printer, error_meldung, reg_eintrag
Dim WshNetwork, WshShell, oDevices ' Objektvariable
Const ForWriting = 8 ' 2 = Write und 8 = anhängen

Set WshShell = WScript.CreateObject("WScript.Shell")

' Erstelle neues WshNetwork-Objekt, welches man zum Zugriff
' auf die Netzwerk-Eigenschaften brauchen.
Set WshNetwork = WScript.CreateObject("WScript.Network")

On error resume next

if WshShell.RegRead("HKCU\Software\Shortcut\chgPrinter\chgPrinterVersion") <> "100" Then
Select Case err.number
Case 0
error_meldung = " Registryeintrag vorhanden " & vbCRLF
Case -2147024894
error_meldung = " Registryeintrag fehlt " & vbCRLF
Case Else
error_meldung = " Unbekannter Fehler: Code " & Err.Number & " Bezeichnung : " & Err.Description & vbCRLF
End Select

' Alte Druckserver
PS1 = "DE-MANN-PRINT1"
PS2 = "DE-MANN-PRINT2"
PS3 = "DE-MANN-PRINT3"
PS4 = "DE-MANN-PRINT4"
PS5 = "DE-MANN-PRINT5"
PS6 = "DE-MANN-PRINT6"
' Neue Druckserver
nPS1 = "DE-MANN-PS1"
nPS2 = "DE-MANN-PS2"
nPS3 = "DE-MANN-PS3"
nPS4 = "DE-MANN-PS4"
nPS5 = "DE-MANN-PS5"
nPS6 = "DE-MANN-PS6"

intro = "Es werden jetzt ihre installierten Drucker auf andere Druckserver umgestellt." &vbCRLF &vbCRLF
intro = intro + "Die Drucker auf den Servern DE-MANN-PRINT(X) werden jetzt auf die Drucker, der Server DE-MANN-PS(X) umgestellt." &vbCRLF &vbCRLF
intro = intro + "Bereits umgestellte Drucker werden erkannt." &vbCRLF &vbCRLF

msgBox intro, vbInformation, "Druckerumstellung"

def_printer = WshShell.RegRead("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device")
old_def_printer = Split(def_printer, ",", -1, 1)
'msgBox "Alter Default Printer = : " & old_def_printer(0)
def_printer = Replace(ucase(old_def_printer(0)), "PRINT", "PS", 1, 1, 1)
'msgBox "Neuer Default Printer = : " & def_printer

' Schreiben der Logdatei "Printer.txt" in "C:\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fi2 = fso.OpenTextFile("C:\PRINTER.TXT", ForWriting, true) ' Ausgabedatei

' Jetzt die Zuordnungen auflisten
Set oDevices = WshNetwork.EnumPrinterConnections

' Überschrift der Ausgabe

Text = vbCRLF &" Zusammenfassung der Druckerzuordnungen" & vbCRLF
Text = text &"-----------------------------------------------------------------------" & vbCRLF & vbCRLF
fi2.WriteLine "------------S T A R T ----D R U C K E R U M S T E L L U N G -----------" & vbCRLF

fi2.Writeline "Datum = " & Date & " Uhrzeit = " & time & vbCRLF
fi2.Writeline "Computername = " & WshNetwork.ComputerName & vbCRLF & "Benutzername = " & WshNetwork.UserName & vbCRLF
fi2.Writeline "Old Default Printer = " & old_def_printer(0) & vbCRLF
fi2.WriteLine "-----------------------------------------------------------------------" & vbCRLF

' Untertitel der Ausgabe
Text = text & " Die alten Druckerzuordnungen lauteten:" & vbCRLF & vbCRLF
text = text & "Old Default Printer = " & old_def_printer(0) & vbCRLF

' Ermitteln der alten (aktuell) definierten Druckerobjekte
For i = 0 To oDevices.Count-1 Step 2
' Ausgabe bei jedem Durchlauf ergänzen
Text = " " & Text & oDevices(i) & " " & oDevices(i+1) & vbCRLF
' Variable splitten wo ein \ vorkommt
tempname = Split(oDevices(i+1), "\", 2, 1)
for each server in tempname
' Variable abermals splitten wo ein \ vorkommt, damit Server und Drucker übrig bleibt
drucker = Split(server, "\", -1, 1)
' Prüfen welcher Printserver gefunden wurde
if Instr(1, ucase(server), PS1, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS1&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS1&"\"&drucker(2)
end if
if Instr(1, ucase(server), PS2, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS2&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS2&"\"&drucker(2)
end if
if Instr(1, ucase(server), PS3, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS3&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS3&"\"&drucker(2)
end if
if Instr(1, ucase(server), PS4, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS4&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS4&"\"&drucker(2)
end if
if Instr(1, ucase(server), PS5, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS5&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS5&"\"&drucker(2)
end if
if Instr(1, ucase(server), PS6, 1) Then
' Druckerzuordnung zu neuem Server herstellen
WshNetwork.AddWindowsPrinterConnection "\\"&nPS6&"\"&drucker(2)
' Druckerzuordnung löschen
WshNetwork.RemovePrinterConnection "\\"&PS6&"\"&drucker(2)
end if
Select Case err.number
Case 0
message = " Info: Druckervorgang " & "\\"&server&"\"&drucker(2) & " erfolgreich durchgeführt." & vbCRLF
'fi2.WriteLine message
Case -2147023688
message = " Fehler: Drucker " & "\\"&server&"\"&drucker(2) & " existiert nicht." & vbCRLF
'fi2.WriteLine message
Case Else
message = "Unbekannter Fehler: Code " & Err.Number & " " & Err.Description & vbCRLF
fi2.WriteLine message
End Select
next
Next

' Abermals die neuen Druckereinstellungen auslesen
Set oDevices = WshNetwork.EnumPrinterConnections
' Ausgabetext definieren
Text = " " & Text & vbCRLF &vbCRLF & " Die neuen Druckerzuordnungen lauten jetzt:" & vbCRLF &vbCRLF

' Ermitteln der alten (aktuell) definierten Druckerobjekte
For i = 0 To oDevices.Count-1 Step 2
Text = " " & Text & oDevices(i) & " " & oDevices(i+1) & vbCRLF
Next

' Default Printer setzen
WshNetwork.SetDefaultPrinter def_printer

text = text & "New Default Printer = " & def_printer & vbCRLF

MsgBox Text, vbOkonly + vbInformation

fi2.WriteLine Text & "----------------------------------------------------" & vbCRLF & error_meldung
fi2.WriteLine " " & vbCRLF & vbCRLF & "--------------------------- E N D E --------------------------------" & vbCRLF

'In Registry schreiben, um bei jedem Start zu prüfen ob schon gelaufen
WshShell.RegWrite "HKCU\Software\shortcut\chgPrinter\chgPrinterVersion", "100"

Set fi2 = Nothing

else
' msgBox "Fehlermeldung = : " & err.Number
' MsgBox "Ist schon gelaufen"
WScript.Quit
end if
WScript.Quit
Bitte warten ..
Mitglied: 68154
05.08.2008 um 09:23 Uhr
Hallo zusammen

Ich hab noch eine Frage.
Wie verhält es sich, wenn ich wohl die Serverbezeichnungen die ich ändern will kenne, allerdings die Drucker der einzelnen User nicht kenne. Ich möchte z.B. einfach nur den Eintrag bei HKEY_CURRENT_USER - Printers - Connections so ändern, dass es die Serverbezeichnung ändert den Drucker aber unverändert stehen lässt.

Vielen Dank für eure Anregungen
Bitte warten ..
Mitglied: stbewo
05.08.2008 um 09:28 Uhr
Mit dem Script wird nur der Servername geändert und die Druckernamen bleiben erhalten.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
DHCP-Server vor Änderung schützen (1)

Frage von cuilster zum Thema Windows Server ...

Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Windows Server
gelöst Änderung eines Registryeintrages per GPO (15)

Frage von honeybee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
RODC über VPN - Verbindung weg (10)

Frage von stefan2k1 zum Thema Windows Server ...