При попытке создания простых резервных копий файлов в Windows часто возникает проблема с заблокированными файлами, что может привести к сбою в работе. Независимо от того, открыт ли файл в данный момент пользователем или заблокирован самой ОС, для копирования некоторые файлы должны быть полностью не использованы. К счастью, есть простое решение: теневые копии.
Используя наш простой инструмент, вы можете легко получить доступ к теневым копиям, которые позволяют получить доступ к точным копиям заблокированных в данный момент файлов, созданных в Windows Restore.
Изображение предоставлено: Best Backup Services
Что такое теневые копии?
Теневые копии – это концепция, впервые появившаяся в Windows Server 2003. Она работает в Windows, периодически сканируя систему и отыскивая изменения файлов, сделанные после последнего сканирования, и записывая изменения. Эти изменения индексируются и накладываются друг на друга, что создает историю файла/папки. Затем этот процесс был добавлен в ОС Windows Vista в функции восстановления системы, которая остается там и сегодня. Технология является основой функциональности предыдущих версий Windows.
Это выполняется в фоновом режиме как процесс системного уровня (создание точки восстановления), который не подвержен тем же ограничениям, что и инициируемые пользователем файловые операции. В результате система может регистрировать изменения в файлах, которые заблокированы для пользователя.
Таким образом, чтобы получить доступ к заблокированному файлу, нам просто необходим доступ к последней теневой копии. Это та же предпосылка, используемая Windows Backup и другими коммерческими продуктами для резервного копирования, которые могут получать доступ, например, к файлам Outlook PST, пока Outlook остается открытым.
Однако важно отметить, что, поскольку теневые копии создаются при создании точки восстановления системы, содержимое между действующим файлом и версией теневой копии может быть разным. По умолчанию Windows создает точку восстановления каждый день, поэтому в большинстве случаев это подходящее решение для резервного копирования.
Доступ к теневым копиям
С этого момента в статье предполагается, что вы используете наш инструмент, предоставленный по ссылке внизу статьи. Пакетный скрипт должен быть помещен в папку, заданную в переменной Windows PATH. Если вы не уверены, просто поместите его в каталог C: \ Windows, и этого должно быть достаточно.
Чтобы получить доступ к файлам, сохраненным в теневых копиях, мы используем инструмент командной строки VSSAdmin, который входит в состав Windows. Этот инструмент должен запускаться от имени администратора для правильной работы, поэтому при открытии командной строки обязательно щелкните правой кнопкой мыши и выберите параметр «Запуск от имени администратора».
После вскрытия наш инструмент делает тяжелую работу за вас. Чтобы просмотреть синтаксис и информацию заголовка для инструмента, просто введите:
MountLatestShadowCopy /?
В качестве примера команда:
MountLatestShadowCopy C: \ LatestShadow \ C:
выполнит следующие действия:
- Найдите последнюю теневую копию для диска C.
- Создайте символическую ссылку/псевдо-каталог «C: \ LatestShadow»
- Сделайте все содержимое теневой копии доступным в этом каталоге.
После завершения вы можете свободно просматривать содержимое либо через командную строку:
или через проводник Windows, как и любую другую папку.
Когда вы закончите, вы можете просто удалить псевдо-каталог через командную строку, используя:
RMDIR C: \ LatestShadow
или напрямую через проводник Windows. Действие удаления просто размонтирует папку и фактически не удаляет теневую копию.
Использование в скриптах/автоматизированных задачах
Вышеприведенная информация в порядке, но благодаря ручному управлению она более доступна через предыдущие версии Windows. Рычаг, который обеспечивает наш инструмент, – это автоматизированные процессы.
Например, приведенный ниже скрипт будет монтировать последнюю теневую копию в локальный каталог «C: \ MyShadow», а затем скопировать «outlook.pst», расположенный в папке документов пользователя JDoe, на резервный сервер. После завершения локальный каталог, в котором хранится местоположение теневой копии, удаляется, чтобы очиститься.
CALL MountLatestShadowCopy C: \ MyShadow \
XCOPY «C: \ MyShadow \ Users \ JDoe \ Documents \ Outlook \ outlook.pst» «\\ BackupServer \ MyFiles \»
RMDIR C: \ MyShadow
Если вы попытались скопировать действующую версию того же файла, и пользователь открыл ее в то время, операция копирования файла не удалась. Однако, поскольку мы получили доступ к файлу через теневую копию, блокировки отсутствуют, и процедура копирования практически всегда завершается успешно.Как указывалось ранее, эта процедура в значительной степени точно так же, как популярные продукты резервного копирования могут делать то же самое.
Важная часть информации, отмеченной выше, заключается в том, что для запуска вышеуказанного сценария или любого сценария, который использует инструмент MountLatestShadowCopy.bat (который снова использует инструмент VSSAdmin), командную строку необходимо запустить как учетную запись администратора. Чтобы использовать этот инструмент внутри запланированной задачи, соответствующая задача должна быть настроена на «Запуск с самыми высокими привилегиями», чтобы у автоматизированного процесса была возможность монтировать теневые копии с помощью инструмента VSSAdmin.
Короче говоря, резервное копирование файлов почти всегда наиболее безопасно при копировании из теневых копий. Хотя вы не всегда получаете самую последнюю версию файла, тот факт, что вы знаете, что файл не будет заблокирован и процедура копирования будет запущена, может оказаться весьма полезным в большинстве случаев.
Загрузите инструмент MountLatestShadowCopy с сайта HowToGeek.com