[TIP] SHADOW COPY en WIndows XP. Como copiar archivos que estan en uso mediante "copia de sombra"

02/02/2005 - 19:41 por JM Tella Llop [MVP Windows] | Informe spam
SHADOW COPY en Windows XP
-

Utilidad: por ejemplo, copiar ficheros que están en uso por otra aplicacion.
Con este ejemplo, podemos copiarnos la carpeta de correo: outlook.pst por
ejemplo, aunque esté abierto el correo. Su uso no se limita unicamente al
correo: es posible copiar cualquier archivo o carpeta completa aunque esté en uso.

Shadow Copy es un servicio nativo de W2003 cuya utilidad está dirigida a
proteger carpetas compartidas que estan en uso por usuarios, y ante posibles
errores de usuarios realiza copias periodicas al objeto de no perder datos por
manipulaciones incorrectas como por ejemplo borrados accidentales.
XP tambien es capaz de usarlo indirectamente con NTBackup, pero en principio
está restringido solo a un servicio y por desgracia, solo para lo use NTBackup.


¿COMO IMPLEMENTARLO EN XP DE UNA MANERA GENERICA?
-

Es necesario tener en el Path el programa vshadow.exe (290 KB's) y posteriormente
usar un script que describiré a continuacion. La unica manera de obtener ese
fichero es bajarse el SDK del Volume Shadow Copy Service:
http://www.microsoft.com/downloads/...x?FamilyID 4F56E4-0CCC-4626-826A-ED2C4C95C871&displaylang=en
que por desgracia ocupa 23 megas.

Una vez instalado, debemos localizar el programa vshadow.exe del cual nos
dejará dos versiones: una para XP y otra para W2003. Debemos copiar la de XP,
por ejemplo a una carpeta que esté accesible en el path, por ejemplo a \windows\system32

Una vez copiado, el resto del SDK no nos hace falta ya que son herramientas para desarrolladores.


CREACION DEL SCRIPT DE COPIA
-

Con notepad por ejemplo, o con cualquier editor, creamos un fichero llamado copyshadow.cmd
con el siguiente contenido (delimitado por las lineas de guiones, sin copiar estas):


setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_DRIVE_LETTER=%~d1
set SOURCE_RELATIVE_PATH=%~pnx1
set DESTINATION_PATH=%2

set CALLBACK_SCRIPT=%~dpnx0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

%~dp0\vshadow.exe -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT% %SOURCE_DRIVE_LETTER%

del /f %TEMP_GENERATED_SCRIPT%

@goto :EOF

:IS_CALLBACK
setlocal

call %TEMP_GENERATED_SCRIPT%

copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%
-


Posteriormente la manera de ejecutarlo en una ventana de comandos (cmd.exe) es:

copyshadow origen destino

siendo "origen" un archivo o carpeta y el mismo criterio para "destino"
Si el origen o destino tuviese caracteres especiales, como espacios en blanco,
deberan encerrarse entre comillas. Por ejemplo:

copyshadow "carpeta origen 1" "c:\pruebas de copia"

en este caso, copiará todo el contenido de "carpeta origen 1" que cuelga de la
carpeta en donde estemos situados en ese momento a la carpeta "c:\pruebas de copia"





Jose Manuel Tella Llop
MVP - Windows
jmtella@XXXcompuserve.com (quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.
 

Leer las respuestas

#1 Javier Inglés [MS MVP]
02/02/2005 - 19:52 | Informe spam
muchas gracias master, muy bueno ;-)

Salu2!!
Javier Inglés
MS MVP, Windows Server-Directory Services





"JM Tella Llop [MVP Windows]" escribió en el mensaje
news:%23$
SHADOW COPY en Windows XP
-

Utilidad: por ejemplo, copiar ficheros que están en uso por otra aplicacion.
Con este ejemplo, podemos copiarnos la carpeta de correo: outlook.pst por
ejemplo, aunque esté abierto el correo. Su uso no se limita unicamente al
correo: es posible copiar cualquier archivo o carpeta completa aunque esté
en uso.

Shadow Copy es un servicio nativo de W2003 cuya utilidad está dirigida a
proteger carpetas compartidas que estan en uso por usuarios, y ante posibles
errores de usuarios realiza copias periodicas al objeto de no perder datos
por
manipulaciones incorrectas como por ejemplo borrados accidentales.
XP tambien es capaz de usarlo indirectamente con NTBackup, pero en principio
está restringido solo a un servicio y por desgracia, solo para lo use
NTBackup.


¿COMO IMPLEMENTARLO EN XP DE UNA MANERA GENERICA?
-

Es necesario tener en el Path el programa vshadow.exe (290 KB's) y
posteriormente
usar un script que describiré a continuacion. La unica manera de obtener ese
fichero es bajarse el SDK del Volume Shadow Copy Service:
http://www.microsoft.com/downloads/...x?FamilyID 4F56E4-0CCC-4626-826A-ED2C4C95C871&displaylang=en
que por desgracia ocupa 23 megas.

Una vez instalado, debemos localizar el programa vshadow.exe del cual nos
dejará dos versiones: una para XP y otra para W2003. Debemos copiar la de
XP,
por ejemplo a una carpeta que esté accesible en el path, por ejemplo a
\windows\system32

Una vez copiado, el resto del SDK no nos hace falta ya que son herramientas
para desarrolladores.


CREACION DEL SCRIPT DE COPIA
-

Con notepad por ejemplo, o con cualquier editor, creamos un fichero llamado
copyshadow.cmd
con el siguiente contenido (delimitado por las lineas de guiones, sin copiar
estas):


setlocal

if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK

set SOURCE_DRIVE_LETTER=%~d1
set SOURCE_RELATIVE_PATH=%~pnx1
set DESTINATION_PATH=%2

set CALLBACK_SCRIPT=%~dpnx0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd

%~dp0\vshadow.exe -script=%TEMP_GENERATED_SCRIPT% -exec=%CALLBACK_SCRIPT%
%SOURCE_DRIVE_LETTER%

del /f %TEMP_GENERATED_SCRIPT%

@goto :EOF

:IS_CALLBACK
setlocal

call %TEMP_GENERATED_SCRIPT%

copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%
-


Posteriormente la manera de ejecutarlo en una ventana de comandos (cmd.exe)
es:

copyshadow origen destino

siendo "origen" un archivo o carpeta y el mismo criterio para "destino"
Si el origen o destino tuviese caracteres especiales, como espacios en
blanco,
deberan encerrarse entre comillas. Por ejemplo:

copyshadow "carpeta origen 1" "c:\pruebas de copia"

en este caso, copiará todo el contenido de "carpeta origen 1" que cuelga de
la
carpeta en donde estemos situados en ese momento a la carpeta "c:\pruebas de
copia"





Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no rights.
You assume all risk for your use.

Preguntas similares