Top-Themen

Aktuelle Themen (A bis Z)

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

Bereinigung alter Druckserver Umstellung an den Clients

Mitglied: Chrischtian

Chrischtian (Level 1) - Jetzt verbinden

01.08.2012, aktualisiert 13:20 Uhr, 2295 Aufrufe, 1 Kommentar

Hallo zusammen, stehe gerade hier vor einem mittelgroßen Problem.
Ausgangssituation: ca 450 Drucker, ca 1500 Clients (zum großen Teil noch XP),
zwei Printserver (Windows 2003 und Windows 2008 R2). Alle Drucker vom 2003 Druckserver wurden von mir schon auf dem 2008er angelegt. Die Clients können von mehreren Usern verwendet werden, natürlich ist bei den meisten noch der Pfad zu dem alten Printserver vorhanden. Neu ausgelieferte Clients oder Drucker bekommen natürlich nur noch den aktuellen Printserver zugewiesen.

Die Zuweisung der Drucker erfolgte via Netinstall, leider sind die Drucker dort teilweise nicht mehr aktuell, die Listen veraltet. Zudem de-installiert Netinstall die einmal zugewiesenen Drucker nicht mehr.Was teilweise zu Problemen führt. Zudem sind die Drucker per Benutzer zugewiesen. Und es können sich wie gesagt mehrere Benutzer an einem Client anmelden.

Durch eine WMI Abfrage am Server weiß ich welcher Benutzer von welchem Drucker im letzten Monat gedruckt hatte.
Allerdings ohne den dazugehörigen Client...

Leider sehe ich im Netinstall nicht alle Benutzer welche den Client nutzen, sondern immer nur die Person welche sich zuletzt angemeldet hatte. Das einzige was man als Vorteil nennen könnte ist, dass Netinstall die Drucker generell für alle User installiert.

Aber diese Netinstall-Lösung ist imo alles andere als effizient und optimal, ich habe zwar eine Bastellösung welche
via PSexec und nem kleinen Script alle Drucker vom zuvor ausgewählten Client herunter haut, aber ich müsste Im Gegenzug dann auch den jeweiligen Drucker im Netinstall pro Client wieder eintragen. Und welche Drucker dies genau sein sollten kann ich nur vermuten, die die User sich mit der Zeit auch selbst Drucker hinzufügen konnten und die Drucker im Netintsall, wie schon gesagt, zum Teil veraltet sind.

Ich habe in meinem Batchscript keine Abfrage drin, welcher mir die beinhalteten Drucker der Clients ausliest... Auch sehe ich nicht genau welcher User den Client mitbenutzt.

Entweder ich mache mit der Batch (mit zukünftiger Abfrage der Drucker/User) und dem Netinstall weiter.
Wobei ich im Batchscripting eher eine Niete bin^^

Oder ich suche mir eine andere bessere Methode aus, was meint ihr? Wäre z.B eine Verteilung und vor allem eine De-Installation über eine GPO nicht wesentlich sinnvoller!?

Oder was gibt es sonst noch für Ansätze, stehe gerade etwas auf dem Schlauch..

Schon mal ein Danke fürs Lesen

Mitglied: Karo
01.08.2012 um 13:54 Uhr
Moin,

ich habe auch mal massenweise Drucker verschieben und die Pfade neu setzen müssen. Dafür habe ich folgendes Script gebastelt.

- Das Script wird von jedem User aufgerufen.
- Das Script benötigt die eine Datei mit dem Inhalt \\SERVER\ALTER_DRUCKER;\\SERVER\NEUER_DRUCKER (in diesem Script ist es die Printers.TXT).
- Beides (Script und Printers.txt) sollte beim Logon zugreifbar sein (NETLOGON-Share).

Das Script schaut bei jedem User nach den Druckern, ist dieser (erste Eintrag in Zeile von Printers.txt) vorhanden, dann ersetzen durch neuen Drucker (zweiter Eintrag in Zeile von Printers.txt).

Wenn Du eine Liste abarbeiten willst in der nur Drucker gelöscht werden sollen, dann bei 'NEW MAPPING auskommentieren und dies mit einer extra Liste als zusätzliches Script laufen lassen.


01.
' Remap Printers for Users 
02.
03.
' Karo , 08.09.2010 
04.
' With this script you can change the mapping from Printernames 
05.
' OLDNAME to NENAME in a Textfile 
06.
' Syntax in TXT = \\SERVER\PRINTERNAMEOLD;\\SERVER\PRINTERNAMENEW 
07.
08.
' 20100908 Initial 
09.
' 20100909 Set Default Printer 
10.
' 20100910 Added Loop for check if Printer connected after renaming 
11.
 
12.
 
13.
' Set printers 
14.
' ****************************** 
15.
Const HKEY_CURRENT_USER = &H80000001 
16.
Const HKEY_LOCAL_MACHINE = &H80000002 
17.
 
18.
On Error Resume Next 
19.
Dim objNetwork, fs, fsFILE 
20.
Dim Counter, CounterU, aryPrinter(999), aryPrinterU(100), strComputer, strUsername 
21.
Dim splPrinter, x, y, fstemp, DefPrinter 
22.
Set objNetwork = CreateObject("WScript.Network") 
23.
Set fs = CreateObject("Scripting.FileSystemObject") 
24.
Set fstemp = fs.GetSpecialFolder(2) 
25.
wscript.echo ("The path to your TEMP folder is '" & fstemp & "'." ) 
26.
 
27.
'COPY FILE TO TEMP 
28.
'wscript.echo ("\\DOMAIN\sysvol\DOMAINNAME\scripts\printers.txt") 
29.
Set fsFILE = fs.GetFile("\\DOMAIN\sysvol\DOMAINNAME\scripts\printers.txt") 
30.
fsFILE.copy (fstemp & "\printers.txt") 
31.
 
32.
'READ FILE 
33.
Set fsFILE = fs.OpenTextFile(fstemp & "\printers.txt") 
34.
Counter = 0 
35.
Do Until fsFILE.AtEndOfStream 
36.
	Counter = Counter + 1 
37.
	aryPrinter(Counter) = fsFILE.Readline 
38.
	'wscript.echo Counter & " ---- " & aryPrinter(Counter) 
39.
Loop 
40.
 
41.
strComputer = "." 
42.
 
43.
'Read User Printer Connections 
44.
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
45.
    strComputer & "\root\default:StdRegProv") 
46.
CounterU = 0 
47.
strKeyPath = "Printers\Connections" 
48.
oReg.EnumKey HKEY_CURRENT_USER, strKeyPath, arrSubKeys 
49.
For Each subkey In arrSubKeys 
50.
	CounterU = CounterU + 1 
51.
	aryPrinterU(CounterU) = UCase(Replace(subkey,",","\")) 
52.
Next 
53.
 
54.
'Get Current Username 
55.
strUsername = objNetwork.UserName 
56.
wscript.echo strUsername & " - Mapped Printers: " & CounterU 
57.
'READ MAPPED PRINTERS FROM USER 
58.
strComputer = "." 
59.
Set objWMIService = GetObject("winmgmts:" _ 
60.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
61.
 
62.
Set colInstalledPrinters =  objWMIService.ExecQuery _ 
63.
    ("Select * from Win32_Printer") 
64.
Y = 0 
65.
DefPrinter = "FALSE" 
66.
 
67.
For Each objPrinter in colInstalledPrinters 
68.
  For y = 1 to CounterU 
69.
	If InStr(1,UCase(aryPrinterU(Y)),UCase(objPrinter.Name),1) > 0 Then 
70.
  wscript.echo "##################################################" 
71.
  WScript.echo "SEARCH: " & aryPrinterU(Y) 
72.
   For x = 1 to Counter 
73.
 		splPrinter=Split(aryPrinter(x),";") 
74.
     'COMPARE MAPPED PRINTERS WITH PRINTERS IN FILE 
75.
     If InStr(1,aryPrinterU(Y),splPrinter(0),1) > 0 Then 
76.
 		 WScript.echo aryPrinterU(Y) & " - " & splPrinter(0) 
77.
				 wscript.echo "-YES-" 
78.
 
79.
      		'Is Printer Default 
80.
      			'DefPrinter = "FALSE" 
81.
      		  If objPrinter.Default = "True" Then 
82.
      		  	DefPrinter = splPrinter(1) 
83.
      		  	wscript.echo "Default Printer Flag is set on " & splPrinter(0) & "" 
84.
	      		 ' Else 
85.
	      		 ' 	DefPrinter = "FALSE" 
86.
	      		 ' 	Exit For 
87.
      		  End If 
88.
 
89.
     		'DELETE OLD MAPPING 
90.
				wscript.echo "-Delete Old Mapping-" 
91.
     		objNetwork.RemovePrinterConnection splPrinter(0) 
92.
     				wscript.echo splPrinter(0) 
93.
 
94.
     		'NEW MAPPING 
95.
				wscript.echo "-New Mapping-" 
96.
     		objNetwork.AddWindowsPrinterConnection splPrinter(1) 
97.
     		wscript.echo splPrinter(1) 
98.
 
99.
     		wscript.echo "######END " & splPrinter(1) & "#####" 
100.
     Else 
101.
     End If 
102.
   Next 
103.
  End If 
104.
  Next 
105.
Next 
106.
Y = 0 
107.
wscript.echo "##################################################" 
108.
wscript.echo "" 
109.
wscript.echo "" 
110.
wscript.echo "##################################################" 
111.
 
112.
If DefPrinter =  "FALSE" Then 
113.
	wscript.echo "No Default Printer in Remapped Printers" 
114.
Else 
115.
	wscript.echo "Check for Connection: " & DefPrinter & " " 
116.
	For counter = 0 to 2 
117.
		Set colInstalledPrinters =  objWMIService.ExecQuery _ 
118.
    ("Select * from Win32_Printer") 
119.
	 For Each objPrinter in colInstalledPrinters 
120.
	 'wscript.echo UCase(objPrinter.Name)& " -> " & UCase(DefPrinter) 
121.
		If InStr(1,UCase(objPrinter.Name),UCase(DefPrinter),1) > 0 Then 
122.
			wscript.echo "-Bingo!" 
123.
			counter = 3 
124.
			Exit For 
125.
		Else 
126.
		  counter = 1 
127.
		End If 
128.
	 Next 
129.
	Next 
130.
	     		'IF PRINTER IS DEFAULT (True) SET NEW DEFAULT 
131.
			     		If DefPrinter = "FALSE" Then 
132.
			     	  Else 
133.
								wscript.echo "-Set as Default" 
134.
			     			'objNetwork.SetDefaultPrinter splPrinter(1) 
135.
			     			'wscript.echo splPrinter(1) 
136.
			     			objNetwork.SetDefaultPrinter DefPrinter 
137.
			     			wscript.echo DefPrinter 
138.
			     		End If 
139.
End If 
140.
wscript.echo "##################################################" 
141.
wscript.echo "" 
142.
wscript.echo "#######################" 
143.
wscript.echo "###### END OF ALL " & "#####" 
144.
wscript.echo "#######################" 
145.
WScript.sleep 20000
Happy Testing (aber nicht gleich mit allen ) ....

Karo
Bitte warten ..
Ähnliche Inhalte
Windows Server

Druckserver nach Umzug bei einigen Clients extrem langsam

gelöst Frage von LHanDuoWindows Server4 Kommentare

Hallo zusammen, nach einiger Google Recherche konnte ich leider nichts passendes finden, also hier der Versuch. Und zwar habe ...

Netzwerkgrundlagen

Lokaler Client-Drucker über Druckserver freigeben?

gelöst Frage von QugartNetzwerkgrundlagen7 Kommentare

Hallo zusammen! Ich hab mal wieder eine einfache Frage. Folgendes Szenario: Drucker 1 hängt per USB an PC 1 ...

ISDN & Analoganschlüsse

Telekom: alter analoger Anschluss und Umstellung auf VoIP

Frage von upietheISDN & Analoganschlüsse16 Kommentare

Hallo zusammen, ich habe mal eine Frage für Kunden, die NUR einen analogen Telefonanschluss bei der Telekom haben und ...

Windows Tools

Tool zur "Bereinigung" von inkonsistenten Datenstand

gelöst Frage von xbast1xWindows Tools6 Kommentare

Hallo Gemeinde, unser Server welcher die Freigaben hostet (WIN SRV 2012 R2) hat ein neues Storage bekommen. Die Daten ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 6 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 10 StundenCPU, RAM, Mainboards5 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 1 TagRouter & Routing7 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...