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, 2303 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
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing17 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...