archivos-con-nombres-largos-restaurarlos

Archivos con nombres largos, restaurarlos de una copia VSS

Archivos con nombres largos, como restaurarlos de una copia de seguridad VSS

En esta entrada trataré un problema que me surgió hace algún tiempo, y no es más que restaurar una copia de seguridad VSS que tiene archivos con nombres largos, de más de 260 caracteres (limitación de Windows que próximamente publicaré una entrada de como quitar esta limitación en windows 10).

La solución más cotidiana al problema de los archivos de más de 260 caracteres, consiste en crear una unidad de red a la carpeta raíz de dicho archivo para poder copiarlo, pero en este caso, dicho archivo proviene de una copia de seguridad VSS (https://en.wikipedia.org/wiki/Shadow_Copy) como la que configuramos en la entrada Versiones anteriores de archivos y este proceso se convierte en una verdadera hazaña.

En este caso opté por usar las herramientas DiskShadow y MkLink que aunque son herramientas que normalmente se usan en Windows Server, funcionan perfectamente con Windows 7.

Nota: DiskShadow lo puedes descargar aquí

Voy a guiaros a la hora de usarlo:

Lo primero que he hecho es crear una carpeta en c: llamada tmp y en ella he copiado los archivos extraídos de la descarga

A continuación vamos a ver cuántos snapshots tenemos creados y volcamos toda esa información en un archivo de texto para procesarlo luego. Para ello, abrimos una consola de windows con permisos de administrador y nos situamos en dicha carpeta, y escribiremos

C:\tmp>diskshadow /l listado.txt
DISKSHADOW> list shadows all
DISKSHADOW> exit

En este ejemplo tenemos disponibles 10 snapshots. Abrimos el fichero listado.txt generado y aquí se nos muestran los 10 snapshosts, os pongo un ejemplo de uno de ellos:

* Shadow copy ID = {bf92600c-7c79-48c1-9f2c-63f448e64bec} <No Alias>
 - Shadow copy set: {53513de7-1e9f-43a9-b630-13ac88d93e53} <No Alias>
 - Original count of shadow copies = 1
 - Original volume name: \\?\Volume{8363531a-4223-11e6-92ae-806e6f6e6963}\ [C:\]
 - Creation time: 05/07/2016 18:00:29
 - Shadow copy device name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
 - Originating machine: ************-PC
 - Service machine: ***********-PC
 - Not exposed
 - Provider ID: {b5946137-7b9f-4925-af80-51abd60b20d5}
 - Attributes: No_Auto_Release Persistent Client_accessible Differential

Localizamos el snapshot del cual queremos extraer la copia y copiamos su «Shadow copy device name», en el ejemplo anterior sería:

\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

El siguiente paso es crear un enlace simbólico a esta ruta para poder tener una ruta «más corta» a ese archivo, para ello volvemos a la consola y escribimos

C:\tmp>mklink /d c:\tmp\a \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\

Importante: Hay que poner una última barra «\» al final de la sentencia, sino no funciona.

  • mklink /d crea el enlace simbólico en la carpeta c:\tmp\a (o cualquier otro nombre) de la ruta \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\

archivos-con-nombres-largos-restaurarlos-5

Ya tenemos «montada» la ruta simbólica del volumen «\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1″ en el directorio «a» y podemos proceder al copiado de los archivos necesarios usando por ejemplo robocopy para evitar la limitación de 260 caracteres.

Una vez terminado el proceso, eliminamos el enlace simbólico escribiendo en la consola

c:\tmp> rmdir c:\temp\a

En próximas entradas veremos más a fondo los comandos de robocoy para hacer copias de seguridad.

versiones-anteriores-de-archivos

Versiones anteriores de archivos

Versiones anteriores de archivos

No todo el mundo conoce la característica de Versiones anteriores de archivos en Windows y creo que es muy útil en determinadas circunstancias. En esta entrada veremos cómo programar a nuestro criterio esta característica de Windows.

Desde la eliminación de un archivo mediante Mayus+supr (sin pasar por la papelera), a la modificación de un archivo erróneamente ( y te das cuenta unos días después) o a la más temida últimamente, que es la encriptación de archivos y carpetas por virus del estilo ransomware, la característica de Windows de Versiones anteriores nos puede ayudar a recuperar dichos archivos.

Vamos a ver como configurar de forma avanzada esta característica:

Lo primero que tenemos que activar es la restauración del sistema desde la pestaña Protección del sistema de las Propiedades del sitema. Activamos Restaurar configuración del sistema y versiones anteriores de archivos y le damos al menos un 20-25% del tamaño del disco para poder tener un buen histórico.

proteccion-disco-local

Si no te deja habilitarlo, revisa que en los servicios de Windows tengas iniciado y en Automático el servicio Proveedor de instantáneas de software de Microsoft

proteccion-disco-local

Bien, llegados a este punto ya tendríamos configurado que Windows guarde una copia de las carpetas cada vez que cree un punto de restauración, pero esto lo hace cuando hay algún cambio en el sistema, al instalar/ desinstalar programas, etc, o se cree manualmente dicho punto de restauración.

Vamos a ir un paso más allá, y vamos a programar la creación de un punto de restauración (diariamente, semanalmente, etc).

Paso 1: Decirle a Windows que no controle la frecuencia de la creación de puntos de restauración.

Para ello, abrimos el regedit y navegamos hasta la siguiente cadena:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore

Creamos un nuevo valor DWORD (32bits) llamado SystemRestorePointFrequency con valor hexadecimal 0

Y con esto, deshabilitamos que Windows controle la frecuencia de creación de puntos de restauración.

Paso 2: Programar la creación de puntos de restauración a nuestro antojo.

Abrimos el Programador de tareas y creamos una nueva tarea:

En la pestaña General, escribimos el nombre de la tarea y seleccionamos Ejecutar tanto si el usuario inició sesión como si no y Ejecutar con los privilegios más altos

En la pestaña Desencadenadores creamos uno nuevo, y en el desplegable Iniciar la tarea:  seleccionamos el que más nos convenga. A mi modo de ver las cosas, yo usaría Según una programación (diariamente a las 00:00h) ó Al inciar el sistema (en cuanto arranca Windows crea el punto)

Según una programación

Al iniciar el sistema

En la pestaña Acciones creamos una nueva acción:

Dejamos seleccionada la Acción Iniciar un programa y en programa o script escribimos

wmic.exe

y en argumentos

/Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "Startup Restore Point", 100, 7

En la pestaña Condiciones desmarcamos todos checks que hayan

Una vez revisadas todas las pestañas (la de configuración se deja como está por defecto) pulsamos en Aceptar y nos preguntará por la contraseña del usuario para poder ejecutar la tarea

Con esto ya tenemos creada la tarea. Si pinchamos en Biblioteca del Programador de tareas, veremos la tarea que acabamos de crear con todas sus opciones.

Aquí os pongo una captura de pantalla de la carpeta Descargas, habiendo configurado los puntos de restauración al inicio del sistema.

Importante: Esta característica de Windows no está pensada para hacer copias de seguridad, para ello usa herramientas específicas para ello.

Fuentes: www.microsoft.com y www.google.com