Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Guten Tag zusammen!

Ich habe die Aufgabe bekommen, Drucker aus dem alten Druckserver (Windows 2008 R2) auf den neuen Druckserver (Windows 2012 R2) zu übernehmen, da der ältere abgeschaltet werden soll. Jedoch stehe ich jetzt vor dem Problem, dass es sich um 55 Drucker handelt. Diese alle einzeln zu übernehmen und für die Nutzer bereitzustellen stelle ich mir sehr zeitaufwendig vor. Meine Fragen dazu:

- Gibt es eine Möglichkeit, die Drucker von der alten Umgebung in die neue Umgebung zu "kopieren"?

- Wie kann ich definieren, dass die Nutzer (Sowohl Citrix als auch feste Clients) problemlos weiterarbeiten können?

- Wie kann ich sicher sein, dass ich alle Drucker, die wirklich in Benutzung sind umgezogen werden und nicht nur die, die in letzter Zeit (1 Woche, 1 Monat) benutzt wurden? 

Insgesamt gibt es auf dem alten Druckserver etwa 200 Drucker, wobei ich nicht weiß ob ich alle erfasst habe, die noch in Benutzung sind. Das habe ich mit einer Spoolabfrage gemacht und dadurch herausgefunden, auf welchen Druckern noch gedruckt wurde.

 

Über hilfreiche Antworten würde ich mich sehr freuen und es tut mir leid, falls es bereits ein Thema gibt welches diese Problematik behandelt, jedoch habe ich dazu nicht gefunden.

 

Grüße, Marcel

Gelöst von Tiro

Zur Lösung

Die Frage ist: willst Du wenig Arbeit oder einen "sauberen" Druckserver?

Für ersteres: Alle Drucker über den Druckmanager in eine Datei exportieren, Server umbenennen, neuen Server wie alten Server benennen, Import der Datei. Nachteil: Du räumst nicht auf und schleppst den "Dreck" weiter mit.
Für letzteres: den Druckserver neu aufbauen und nur die Treiber verwenden, die Du brauchst. Nachteil: Viel Arbeit.

  • Autor

Hallo Tiro, danke für deine Antwort!

 

Zitat

Für ersteres: Alle Drucker über den Druckmanager in eine Datei exportieren, Server umbenennen, neuen Server wie alten Server benennen, Import der Datei. Nachteil: Du räumst nicht auf und schleppst den "Dreck" weiter mit.

Es gibt bereits einen neuen Druckserver. Nennen wir sie einfach DS01 und DS02. Auf DS01 sind die ganzen alten Drucker, Treiber und sonstige Informationen, auf dem neuen sind die Drucker für die Modelle die wir aktuell im Einsatz haben und auch noch verwendet werden. Die Drucker, die ich in einer ersten Analyse für "noch im Gebrauch" tituliert habe sind nun alle implementiert, die habe ich bereits übernommen und einen Treiber der gefehlt hat installiert. 

Was ich nun als weitere Vorgehensweise für mich benötige ist die Möglichkeit, für den Client einzustellen, dass der Drucker auf dem neuen Server erkennt und speichert. Wahrscheinlich am besten und einfachsten ist die Möglichkeit mit einem Skript zu arbeiten. Der fragt dann ab, ob Drucker1 auf DS01 oder DS02 ist. Falls Drucker1 auf DS01 ist soll er den alten löschen und auf DS02 einstellen, sodass der Computer nicht mehr über den alten Server druckt. Kann mir da vielleicht jemand helfen, da ich nicht so der Experte im Skripte schreiben bin :unsure:

  • Lösung

Das alte VBS-Skript sollte immer noch funktionieren:

 

'Written by Jeffrey M. Oyler, Systems Engineer
' ICH (C) 2009
' Letzte Aenderung: 2010-03-06

	Option Explicit
	On Error Resume Next

	Dim objShell		: Set objShell = WScript.CreateObject("WScript.Shell")
	Dim objNetwork		: Set objNetwork = WScript.CreateObject("WScript.Network")
	Dim objGroupList
	Dim enumPrinters	: Set enumPrinters = objNetwork.EnumPrinterConnections
	Dim strWorkDir		: strWorkDir = ObjShell.ExpandEnvironmentStrings("%temp%")
	Dim strUser		: strUser = objNetwork.UserName
	Dim strDomain		: strDomain = objNetwork.UserDomain
	Dim strGroup
	Dim objUser		: Set objUser = GetObject("WinNT://" & strDomain & "/" & strUser & ",user")
	Dim intCounter
	Dim localPrinter	: Set localPrinter = False

'Set script working directory to user %temp%

	objShell.CurrentDirectory = strWorkDir

'Remove all current network printers
'ICH: drei folgende Zeilen auskommentiert
For intCounter = 1 to enumPrinters.Count -1 step 2
		objNetwork.RemovePrinterConnection enumPrinters.Item(intCounter), true
		Next

'Map standard printers for all users

	objNetwork.AddWindowsPrinterConnection "\\servername\drucker_fuer_alle"

'Set standard default printer
'ICH: eine Zeile auskommentiert
 objNetwork.SetDefaultPrinter "\\servername\druckername"

'If local printer exists on LPT or USB, set to default

	For intCounter = 0 to enumPrinters.Count -1 step 2
	if Left(enumPrinters(intCounter),3)="LPT" OR Left(enumPrinters(intCounter),3)="USB" OR Left(enumPrinters(intCounter),3)="DOT" Then
	if Left(enumPrinters(intCounter+1),7)="Acrobat" Then
	Else
	objNetwork.SetDefaultPrinter enumPrinters(intCounter+1)
	localPrinter = True
	end if
	end if
	Next

'Map additional printers and change default printer if no local printer based on group membership

'Drucker für Connectors

 'Drucker für Abteilung_X
	strGroup = "Abteilung_X"
	if IsMember(strGroup) Then
	objNetwork.AddWindowsPrinterConnection "\\servername\druckername"
 	if localPrinter = false Then
	objNetwork.SetDefaultPrinter "\\servername\druckername"
	end if
	end if



'For use with Windows 2003 built in fax servername (Client must have XP fax client installed)
' ICH: folgende vier Zeilen auskommentiert
'	strGroup = "Fax Group"
'	if IsMember(strGroup) Then
'	objNetwork.AddWindowsPrinterConnection "\\FAXservername\Fax Printer$"
'	end if

'Cleanup

	Set objGroupList = Nothing
	Set objUser = Nothing

 MsgBox "Fertig",vbOKOnly,"Druckerskript"

'Function to test group membership

	Function IsMember(strGroup)

	If IsEmpty(objGroupList) Then
	Call LoadGroups
	End If

	IsMember = objGroupList.Exists(strGroup)

	End Function

'Subroutine to load user's groups into dictionary object

	Sub LoadGroups

	Dim objGroup

	Set objGroupList = CreateObject("Scripting.Dictionary")
	objGroupList.CompareMode = vbTextCompare
	For Each objGroup In objUser.Groups
	objGroupList(objGroup.name) = True
	Next

	Set objGroup = Nothing

	End Sub

Oder Du machst alles über Gruppenrichtlinien und läßt das Skript nur einmal laufen um die alten Drucker zu löschen.

Bearbeitet von Tiro
Sticky fingers ;-)

  • 4 Wochen später...

Was spricht dagegen die alten Drucker per GPO zu trennen und mit einer GPO zu verbinden?


Wenn du dir vorher überlegst wer welche Drucker bekommen soll kannst du das wunderbar über AD Gruppen steuern.

                                                               

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.