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

Alte ntuser.dat hiven und Reg Einträge in neue Registry übernehmen?

Frage Entwicklung

Mitglied: einfachBernd

einfachBernd (Level 1) - Jetzt verbinden

25.01.2012, aktualisiert 10:34 Uhr, 3086 Aufrufe, 2 Kommentare

Hallo @all,

bräuchte beim Scripten bitte eure Hilfe

Muss aus einer alten NTUSER.DAT Daten auslesen und dann in die HKCU übernehmen:

Müsste folgende 4 Punkte in ein Batch File einbauen
REM 1) Drucker: alle eingerichteten Drucker vom Server serverPRNQ (keine weiteren Drucker), auch der vom User eingerichtete Standarddrucker soll wieder gesetzt werden,

Bisher habe ich wie folgt gearbeitet:
REM HIVE Migration anlegen
reg add HKEY_LOCAL_MACHINE\Software\Migration /f
reg load "HKU\_Migration\%username%" "\\server\Profiles$\%username%\ntuser.dat"

REM 1) Drucker: alle eingerichteten Drucker vom Server serverPRNQ (keine weiteren Drucker), auch der vom User eingerichtete Standarddrucker soll wieder gesetzt werden,
REM ------------------------------------------
reg copy "HKU\_Migration\%username%\Software\Microsoft\Windows NT\CurrentVersion\Windows\" "HKCU\_Migration\%username%\Software\Microsoft\Windows NT\CurrentVersion\Windows\" /f
reg copy "HKU\_Migration\%username%\Software\Microsoft\Windows NT\CurrentVersion\Devices" "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" /f

reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" > "%temp%\Drucker.txt"
find /i \\KSVPRNQ "%temp%\Drucker.txt" > "%temp%\Drucker2.txt"
for /f "skip=2 tokens=1" %%i in ("%temp%\Drucker2.txt") do rundll32 printui.dll,PrintUIEntry /q /dn /n %%i

REM HIVE Migration anlegen
reg unload "HKU\_Migration\%username%"


Ausgabe bei find /i \\serverPRNQ "%temp%\Drucker.txt" > "%temp%\Drucker2.txt"

Drucker2.txt
\\serverPRNQ\prt01 REG_SZ winspool,Ne00:

So nun meine Frage:
zu REM 1: Habe die Einträge aus HKU auf HCU kopiert, das funktioniert auch, jedoch verstehe ich nicht wie ich nun die Installation aller Drucker inizieren kann, bzw wie der Befehl geschrieben werden musss, dass alle Drucker installiert werden die der Anforderung entsprechen (for schleife mit suche?)

Wäre echt dankbar, wenn ich hier nen Fehler drinnen habe, dass mir jemand die passende Lösung schreibt

DAnke für die Hilfe
Mitglied: Karo
25.01.2012 um 11:02 Uhr
Hi,

ich habe vor einiger Zeit ein Script gebastelt mit dem man Printernamen eines Users ändern kann (auf dem Druckservern wurden damals andere Sharenamen angelegt). Vielleicht hilft es Dir weiter.
Da ich nicht die Zeit habe das Script an Deine Bedürfnisse umzustellen, kannst Du in dem benötigten Textfile für den alten und neuen Namen den gleichen Wert nehmen.

Den Drucker hast Du in Deinem Drucker2.txt bereits, benötigt wird nur der Shareteil (\\serverPRNQ\prt01) .
(\\SERVER\PRINTERNAME;\\SERVER\PRINTERNAME), Dann würde der Inhalt in etwa so aussehen:
\\serverPRNQ\prt01;\\serverPRNQ\prt01
\\serverPRNQ\prt02;\\serverPRNQ\prt02
\\serverPRNQ\prt......

Das File könnte nach dem Usernamen benannt sein (NAME_printers.txt) und mit \\MYSERVER\MYSHARE\%USERNAME%_printers.txt aufgerufen werden. im Code zu finden bei Set fsFILE = fs.GetFile("\\MYSERVER\MYSHARE\printers.txt")


01.
' CHANGE 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 ("\\MYSERVER\MYSHARE\printers.txt") 
29.
Set fsFILE = fs.GetFile("\\MYSERVER\MYSHARE\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...

bye
Karo
Bitte warten ..
Mitglied: einfachBernd
25.01.2012 um 11:21 Uhr
Hi Karo,

danke für die Info, jedoch würde es mir reichen, wenn mir jemand das bestehende Script einfach anpasst oder erweitert. thx
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Server-Hardware
gelöst Neue Serverfestplatten (13)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...