How did you mangage to move this file? The file is always in use by
Windows and cannot be moved, and if you had somehow managed to move this
"unmovable" file WFP would have almost certainly immediately replaced it
with a copy from the DLLCache
If you truly did mangage to move the file it could be copied from the
dll cache back to the System32 folder by booting to the Recovery Console
and using the copy command:
copy %Systemroot%\system32\dllcache\kernel32.dll
%Systemroot%\system32\kernel32.dll
or
copy c:\windows\system32\dllcache\kernel32.dll
c:\windows\system32\kernel32.dll
http://support.microsoft.com/kb/314058
The problem that you describe is more consistent with the removal of the
Userinit.exe file than moving kernel32.dll. Or changing the drive
letter assignement in the registry, or changing values refering to
Userinit.exe in the registry's Winlogon key.
John