Cómo reemplazar ficheros que están siendo usados por Windows

Id. de artículo: 551047 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E10997
Expandir todo | Contraer todo

Resumen



En muchas ocasiones es necesario reemplazar algún fichero del sistema,
que no puede ser borrado o renombrado dinámicamente, debido a que está
siendo utilizado por el sistema. En Windows 95, siempre existe la
posibilidad de reiniciar el equipo en modo MS-DOS y hacerlo desde
línea de comandos. En Windows NT, puede darse también este paso
siempre que contemos con una partición FAT y algún medio para arrancar
la máquina sin cargar Windows NT (arranque dual, disco de arranque,
etc.). Sin embargo es necesario en ocasiones algún método para
realizar esta tarea automáticadamente, sobre todo cuando hay un gran
número de equipos implicados, o en el caso de particiones NTFS de
Windows NT.

En el presente artículo se plantean dos métodos diferentes para
Windows 95/98 y para Windows NT para realizar esta tarea de forma
automática. En ambos casos, no deja de ser necesario reiniciar el
equipo para que el cambio tome efecto.

Más información



Windows 95/98
-------------

Puede reemplazar ficheros automáticamente en Windows 95/98 mediante el
uso de un fichero inf como el que sigue:

; Replace.inf
; Este fichero es un ejemplo de instalación de un driver o fichero
; que esta siendo usado por Windows
; Copyright 1993-1998 Microsoft Corporation

[DefaultInstall]
CopyFiles=NewFile.copy.sys

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

[DestinationDirs]
NewFile.copy.sys=11

[NewFile.copy.sys]
Viejo.exe, Nuevo.exe, Temporal.exe

[SourceDisksNames]
55="Instalación del fichero Nuevo.exe","",1

[SourceDisksFiles]
New.exe=55

; Fin del fichero .inf.

donde, en este ejemplo:

- NewFile.copy.sys=11 hace referencia al directorio destino donde
se encuentra el fichero a sustituir. Los directorios están
representados por un número:

10: Directorio Windows
11: Directorio System
12: Directorio Iosubsys
01: Unidad fuente:\nombre de ruta
20: Directorio de Fuentes
22: Directorio VMM32

- Viejo.exe es el nombre del fichero a ser sustituido. Debe estar
localizado en el mismo lugar que el fichero .inf.

NOTA: Esto es debido a la sección [SourceDiskNames], cuya
sintaxis es:

ordinal-disco="Descripción del disco",etiqueta-disco,número-
serie-disco

- Nuevo.exe es el fichero con el que se quiere sustituir el
anterior (puede coincidir el nombre).

- Temporal.exe es el nombre con el que se copia Nuevo.exe para ser
renombrado durante el arranque.

Este ejemplo asume que el fichero Viejo.exe está localizado en el
directorio Windows\System (debido al 11 de la sección
[DestinationDirs]) y que se está ejecutando. Cuando se ejecuta el
fichero .inf, sucede los siguiente:

- El fichero Nuevo.exe se copia como Temporal.exe en el directorio
referenciado en la sección [DestinationDirs]).

- Se crea el fichero c:\windows\wininit.ini. En nuestro ejemplo,
este fichero contendrá lo siguiente:

[rename]
C:\WINDOWS\SYSTEM\Viejo.exe=C:\WINDOWS\SYSTEM\Temporal.exe

- La máquina debe reiniciarse. En el proceso de arranque,
wininit.exe procesará el fichero wininit.ini, realizando la
tarea arriba mencionada.

- Una vez realizada la acción el fichero wininit.ini se renombra
como wininit.bak, para tener una copia de los cambios que se han
hecho en el sistema.

El proceso para ejecutar el fichero .inf anterior puede ser alguno de
los siguientes:

- Hacer clic con el botón de la derecha del ratón sobre el y
elegir la opción instalar.

- Ejecutar el siguiente comando:

c:\windows\rundll.exe setupx.dll,InstallHinfSection
DefaultInstall 130 <path al fichero .inf>

Este comando debe ser especificado en una sola línea y
respetando EXACTAMENTE las mayúsculas y minúsculas.

ALTERNATIVAS
------------

1. Puede ejecutar éste comando desde un login script apuntando a un
recurso de red. El nombre de éste no debe tener más de 8
caracteres. La máquina hará el cambio la siguiente vez que
reinicie.

2. Puede copiar manualmente el fichero o ficheros que se quieren
sustituir a un directorio temporal en un login script, y copiar
posteriormente el fichero wininit.ini al directorio
c:\windows\system. Este fichero debe tener el siguiente formato:

[rename]
<Path del fichero a sustituir>=<Path del fichero nuevo>

NOTA: Para borrar un fichero existente puede usar:

NULL=<path del fichero a borrar>

Windows NT 4.0
--------------

El Disco de Reparación de Emergencia (ERD) de Windows NT puede ser
utilizado para reemplazar ficheros del sistema que estén siendo
utilizados. Este procedimiento es útil cuando la partición en la que
se encuentra el sistema es NTFS, o en sistemas con espejo, en los que
no hace falta romper éste para llevar a cabo este procedimiento.

Los pasos para llevar a cabo esta sustitución son los siguientes:

1. Cree o copie un ERD del sistema. Puede usar RDISK para generar
un disco de reparación del sistema, copiar uno ya existente, e
incluso usar el de otra máquina que tenga una instalación lo más
parecida posible a su equipo (aunque esto debe hacerse sólo en
el último de los casos).

NOTA: Para usar el ERD, debe tener una versión actualizada del
fichero setupdd.sys, localizado en el Service Pack 2 o
posterior. Debe copiar dicho fichero al segundo de los tres
discos de instalación de Windows NT 4.0.

2. Localice el fichero Setup.log en el ERD. Este es un fichero de
texto que puede ser editado con cualquier editor de textos
(Edit.com, Notepad.exe, etc.). Dicho fichero, tiene el siguiente
aspecto:

[Paths]
TargetDirectory = "\WINNT"
TargetDevice = "\Device\Harddisk0\partition2"
SystemPartitionDirectory = "\"
SystemPartition = "\Device\Harddisk0\partition1"
[Signature]
Version = "WinNt4.0"
[Files.SystemPartition]
ntldr = "ntldr","2d513"
NTDETECT.COM = "NTDETECT.COM","b69e"
[Files.WinNt]
.
.
\WINNT\system32\ole32.dll = "ole32.dll","b25a5"
.
.

Donde:

- TargetDirectory es el directorio donde está instalado Windows
NT 4.0 (en éste caso \WINNT).

- TargetDevice apunta al disco y partición donde está instalado
el sistema (en este caso D:, segunda partición del primer
disco).

- SystemPartitionDirectory apunta a la localización del
directorio raíz de la partición de arranque del sistema (en
este caso C:\).

- SystemPartition apunta al disco y partición de donde arranca
el sistema (en este caso primera partición del primer disco).

3. Localice la sección [Files.WinNt]. Aquí aparece un listado de
todos los ficheros que el ERD monitoriza durante el proceso de
reparación. En el ejemplo que nos ocupa hemos puesto sólo la
línea correspondiente a OLE32.DLL, generalmente en uso por
Windows NT. Puede verse como dicha línea consta del path al
fichero en el sistema, su nombre entre comillas y un "checksum"
que el ERD usa para saber si el fichero está binariamente
intacto o no.

Si quisiéramos sustituirlo, tendríamos que eliminar todas las
demás líneas correspondientes al resto de ficheros y modificar
la correspondiente a OLE32.DLL hasta dejar la sección
[Files.WinNt] con el siguiente aspecto:

[Files.WinNt]
\WINNT\system32\ole32.dll = "ole32.dll","99999","\","Disco de
Reparación","ole32.dll"

Pueden agregarse tantas líneas como ficheros deseemos sustituir.

NOTA: Puede sustituirse el fichero incluso por otro distinto con
sólo modificar el último nombre que aparece entre comillas.
Por ejemplo, esta línea sustituiría la OLE32.DLL por BEEP.SYS.
Este último sería copiado al disco renombrado como OLE32.DLL:

[Files.WinNt]
\WINNT\system32\ole32.dll = "ole32.dll","99999","\","Disco de
Reparación","beep.sys"

4. Copie los ficheros con los que deseamos sustituir los existentes
en el sistema al ERD. En caso de que nos falte espacio, podemos
borrar de dicho disco todos los ficheros salvo el Setup.log, e
incluso usar un segundo disco que deberemos introducir en el
momento en que se solicite el fichero (Nótese que existe una
cadena identificadora del disco de origen para un fichero en la
cadena arriba mencionada).

5. Lance un proceso de reparación normal de Windows NT, eligiendo
sólo la opción de reparar los archivos del sistema. Cuando se le
pida el Disco de Reparación, introduzca el ERD modificado. Para
más información sobre el proceso de reparación de Windows NT
4.0, consulte por favor el siguiente artículo de la Base de
Conocimientos de Microsoft:

ARTICLE-ID: 550894
TITLE : Cómo utilizar el disco de reparación de
emergencia.

6. Debido al número de "Checksum" que le hemos puesto a la línea
modificada (99999), la reparación detecta que el fichero que se
encuentra en el sistema no es el correcto. Se nos pide
confirmación para sustituirlo. Pulsamos Intro para todos los
ficheros que hallamos puesto en la sección [Files.WinNt] hasta
que el proceso termina y se nos pide reiniciar la máquina.

NOTA: Causas frecuentes del fallo de este proceso son que el path del
fichero no sea el correcto, bien debido a la sección [Files.WinNt]
como a la variable TargetDirectory y errores tipográficos (falta de
comillas, nombres de ficheros, etc.).

Propiedades

Id. de artículo: 551047 - Última revisión: jueves, 30 de diciembre de 2004 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Windows 95
  • Microsoft Windows 98 Standard Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
Palabras clave: 
use setup.log erd replace files wininit.ini KB551047

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com