Microsoft KB Archive/102359

= Replacing Corrupted System Files in Windows NT =

Article ID: 102359

Article Last Modified on 10/31/2006

-

APPLIES TO


 * Microsoft Windows NT Advanced Server 3.1
 * Microsoft Windows NT Workstation 3.1
 * Microsoft Windows NT Advanced Server 3.1

-



This article was previously published under Q102359



WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.

To enable a Windows NT machine with a corrupt .DLL file to complete the logon process successfully, you must replace the .DLL with a new, renamed version of the file:

 From a Windows NT machine that has an uncorrupted version of the .DLL file you want to replace, connect to the machine with the corrupt .DLL file as Administrator. From the remote machine, place a new, uncorrupted copy the of the file in the SYSTEM32 directory on the machine with the damaged file (use a different filename for the copy of the file). From the remote machine, run REGEDT32.EXE, to edit the registry on the affected machine.  Locate the following section:   HKEY_LOCAL_MACHINE on (Remote Machine Name) SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLS.  In this section, change the name of the file pointed to by the key to the new, renamed version of the file that was copied to the SYSTEM32 directory. Close REGEDT32 and restart the machine with the previously corrupted file.

The machine should start up and complete the logon process.



MORE INFORMATION
For example, if the SHELL32.DLL file is corrupt, the following error message is displayed after you enter your password and attempt to complete the logon process:

The application failed to initialize properly (0xc0000139). Click OK to terminate the application.

The application that has failed to start is Program Manager. At this point, Windows NT is nonfunctional. Attempting to copy SHELL32.DLL from a remote machine will not be effective since the file is marked as in use by Windows NT. To replace the corrupt SHELL32.DLL do the following:

 Connect to the affected machine's root with a functioning Windows NT machine as Administrator.</li> Copy a new SHELL32.DLL from the functioning machine to the affected machine's <SYSTEMROOT>\WINNT\SYSTEM32 using the filename SHELLALT.DLL.</li>  Edit the affected machine's registry by running REGEDT32.EXE and scrolling to the following section: <pre class="fixed_text">     HKEY_LOCAL_MACHINE on (Remote Machine Name) SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLS. The SHELL32.DLL key will point to the file SHELL32.DLL. Change that key so that it points to the new file SHELLALT.DLL.

Before Registry Edit: <pre class="fixed_text">  Existing Value Names       Data Type   String SHELL32.DLL               REG_SZ      SHELL32.DLL After Registry Edit: <pre class="fixed_text">  Existing Value Names       Data Type   String SHELL32.DLL               REG_SZ      SHELLALT.DLL </li> Close REGEDT32 on the remote machine and restart the affected machine. The machine should start and complete the logon process with the new SHELLALT.DLL.</li></ol>

Additional query words: prodnt tshoot

Keywords: kbusage KB102359

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.