Копирование заблокированных файлов windows

Содержание
  1. Файл заблокирован процессом Windows, как снять блокировку?
  2. Как разблокировать файл с помощью Process Explorer?
  3. Сброс дескриптора файла с помощью утилиты Handle
  4. VSS Backup: Резервное копирование открытых (заблокированных) файлов 1C, Outlook (*.pst) и других.
  5. Проблема резервного копирования открытых файлов
  6. Решение проблемы резервного копирования занятых (открытых) файлов
  7. Что такое горячее или теневое копирование (shadow copying)?
  8. Где хранятся теневые копии и сколько занимают места?
  9. Как Exiland Backup Professional копирует залоченные файлы
  10. Как настроить копирование файлов Outlook (PST, OST), не закрывая Outlook у пользователей
  11. Процесс копирование открытых файлов
  12. Энциклопедия Windows
  13. Копирование заблокированных файлов с HoboCopy
  14. Резервное копирование одного файла с помощью HoboCopy
  15. Резервное копирование каталога с помощью HoboCopy
  16. Инкрементное копирование файлов с помощью HoboCopy

Файл заблокирован процессом Windows, как снять блокировку?

Иногда при попытке удалить, переименовать или переместить какой-то файл в Windows вы можете получить сообщение, что файл занят/заблокирован/используется) другим процессом. Чаще всего имя программы, которая держит файл открытым указывается прямо в окне сообщения File Explorer. Чтобы снять блокировку файла достаточно просто закрыть эту программу. Но бывает ситуации, когда какой-то файл и библиотека используется неизвестным или системным процессом. В этом случае снять блокировку с файла немного сложнее.

Сообщение о блокировке файла может выглядеть по-разному. Например в следующем примере указан тип файла и с каким приложением он ассоциирован:

В этом случае вы можете легко понять какое приложение заблокировало файл и закрыть его.

Однако иногда можно увидеть более интересное сообщение, о том, что файл заблокирован неизвестным или системным процессом Windows. Это может быть, как процесс самой ОС Windows, так и другие процессе, работающий с правами System, например, антивирус, агент резервного копирования, база данных mssql и т.д.):

Попробуем разобраться, как понять какой программой, службой или системным процессом Windows занят файл, как разблокировать файл и можно ли разблокировать файл не закрывая родительский процесс.

Самый простой вариант разблокировать файл – завершить процесс, которые его заблокировал. Но это не всегда возможно, особенно на серверах.

Кроме того, это сторонняя утилита, при установке которой нужно быть внимательным, т.к. в процессе она предлагает установить пачку ненужные программы в нагрузку.

Когда процесс в Windows открывает файл, этому потоку ввода/вывода назначается файловый дескриптор (handler). Процесс и его дочерние процессы получают доступ к файлу по этому дескриптору. Через Window API вы можете послать сигнал файловой системе на освобождение данного дескриптора и снятие блокировки с файла.

Как разблокировать файл с помощью Process Explorer?

ProcessExplorer это бесплатная утилита из набора системных утилит Sysinternals, которую можно скачать на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer). Попробуем с помощью Process Explorer найти, какой процесс заблокировал определенный файл и освободить этот файл, сбросив файловый дескриптор процесса.

  1. ProcessExplorer не требует установки, просто скачайте распакуйте и запустите с правами администратора procexp.exe ;
  2. Выберите меню Find ->Find Handle or DLL (или нажмите Ctrl-F );
  3. Укажите имя файла, который нужно разблокировать и нажмите Search;
  4. Выберите нужный файл. Процесс, который открыл файлы будет выделен в дереве процессов. Можно завершить этот процесс, щелкнув по нему правой кнопкой и выбрав Kill Process Tree. Но можно попробовать закрыть дескриптор файла, не завершая процесс целиком. Дескриптор файла, который вы искали, автоматически выделяется в нижней панели Process Explorer. Щелкните по дескриптору правой кнопкой и выберите Close handle. Подтвердите закрытие файла.

Итак, вы закрыли дескриптор файла, не завершая родительский процесс. Теперь вы можете спокойно удалить или переименовать файл.

Сброс дескриптора файла с помощью утилиты Handle

Handle – это еще одна утилита командной строки из комплекта инструментов Sysinternals (доступна для скачивания на сайте Microsoft (https://docs.microsoft.com/en-us/sysinternals/downloads/handle. Она позволяет найти процесс, который заблокировал ваш файл и снять блокировку, освободив дескриптор.

  1. Скачайте и распакуйте архив с утилитой Handle;
  2. Запустите командную строку с правами администратора и выполните команду: handle64.exe > listproc.txt  Данная команда сохранит список открытых дескрипторов в файл. Можно вывести дескрипторы для каталога, в котором находится файл, который вы хотите изменить: Handle64.exe -a C:\Some\Path или конкретного процесса: handle64.exe -p winword.exe
  3. Откройте файл listproc.txt в любом текстовом редакторе и найдите строку, в которой указано имя заблокированного файла. Скопируйте ID дескриптора файла (значение в hex формате). Затем поднимитесь немного выше к разделу, в котором указан процесс, являющийся владельцем данного дескриптора и запишите его ID. Для процесса запущенного от имени системы скорее всего будет PID 4.

Если система отреагирует на закрытие файла корректно, вы разблокируете ваш файл без необходимости завершать процесс или перезагружать сервер/компьютер.

VSS Backup: Резервное копирование открытых (заблокированных) файлов 1C, Outlook (*.pst) и других.

Проблема резервного копирования открытых файлов

Если вы сталкивались с проблемой копирования занятых файлов, которые в данный момент используются другим приложением, то эта статья для вас. В файловой системе существуют так называемые монопольные блокировки файлов, которые недоступны даже для чтения другими приложениями.

Примеры открытых файлов:

  • файлы MS Outlook (*.pst, *.ost)
  • файлы MS Exchange Server
  • диски виртуальных машин — Virtual Hard Disk (файлы VHD, VHDX)
  • файлы MS SQL Server (*.mdf, *.ldf)
  • файлы MS Access (*.mdb, *.ldb)
  • файлы MS Word, MS Excel (*.docx, *.xlsx)
  • файлы NTUSER.dat в папке с профилями пользователей C:\Users
  • и другие

Например, в MS Outlook все ваши данные (почта, контакты, задачи, календарь) хранятся в файле вида:
«C:\Users\ \Documents\Файлы Outlook\yourname@domain.com.pst»
или
«C:\Users\ \AppData\Local\Microsoft\Outlook\yourname@domain.com.pst»,
в зависимости от настроек, расположенных в меню «Файл -> Настройка учетных записей», вкладка «Файлы данных».

Если Microsoft Outlook открыт, то к файлу PST нет доступа даже на чтение и при попытке резервного копирования PST-файла в другую папку вы получите сообщение об ошибке:

Процесс не может получить доступ к файлу, так как этот файл используется другим процессом.

(The process cannot access the file because it is being used by another process).

или текст ошибки может выглядеть немного иначе:

0x80070021: Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом (Отказано в доступе).

0x80070021: The process cannot access the file because another process has locked a portion of the file (Access denied).

Ошибка копирования файла, если файл занят другим процессом

Решение проблемы резервного копирования занятых (открытых) файлов

Существует 2 способа:

  1. Перед созданием дубликата файлов закрыть программу, которая использует эти файлы. Например, вы можете жестко закрыть MS Outlook («убить» процесс), используя команду: taskkill /im outlook.exe /f
  2. Использовать Volume Shadow Copy для «горячего» копирования открытых файлов (заблокированных файлов).

Первый способ — слишком жесткий и не всегда возможен, т.к. иногда для снятия задачи (kill process) в Диспетчере задач требуются повышенные привилегии. К тому же, целостность данных не гарантирована, поскольку во время жесткой выгрузки процесса из памяти этот процесс может производить запись на диск и тогда файл останется поврежденным (недописанным).

Второй способ — более гуманный, так как использует технологию теневого копирования тома Volume Shadow Copy от Microsoft и гарантирует целостность данных на диске.

Ниже будет рассмотрен способ создания копии файлов «на горячую», которые используются другим приложением, то есть 2 способ с помощью утилиты Exiland Backup Professional.

Что такое горячее или теневое копирование (shadow copying)?

Теневое копирование — это технология Microsoft, которая позволяет копировать файлы, занятые другим приложением. Это возможно благодаря созданию мгновенного снимка файловой системы (Shapshot), в то время как файловая система продолжает работать в штатном режиме без каких-либо блокировок. Таким образом, процесс создания дубликата возможен без прерывания работы текущих приложений. Служба теневого копирования VSS — Volume Shadow Service работает фоном и осуществляет доступ к данным на диске, даже если файл в этот момент используется другим приложением. Целостность данных при этом не нарушается.

ОБРАТИТЕ ВНИМАНИЕ!. Технология Volume Shadow Copy относится ко всему диску целиком, а не к отдельным файлам на диске, таким образом, вы не сможете создать теневую копию какого-либо отдельного файла. Тем не менее, вы можете сначала создать копию всего тома, затем подключить ее в системе как отдельный логический диск, например, Z:\ и после этого выборочно скопировать нужные вам файлы с этого диска (из shadow копии).

Где хранятся теневые копии и сколько занимают места?

Теневые копии тома, как правило, хранятся в скрытой системной папке «System Volume Information», расположенной в корне каждого диска. Размер одной теневой копии диска составляет около 100-300 МБ, что значительно меньше суммарного объема данных, хранящихся на диске. Место под хранение таких копий на диске отведено системой заранее и вам не нужно об этом беспокоиться.

Как Exiland Backup Professional копирует залоченные файлы

В программе Exiland Backup, начиная с версии 4.9, резервное копирование открытых файлов, таких как MS Outlook (pst, ost), MS Access (*.mdb), MS SQL Server (*.mdf) и других полностью автоматизировано. Если у вас нет глубоких знаний операционной системы или вы просто хотите сэкономить время, используйте Exiland Backup. Утилита взаимодействует со службой теневого копирования, встроенной в операционную систему Windows.

Алгоритм горячего бэкапа в Exiland Backup достаточно простой:

  1. сначала программа создает временную теневую копию тома (слепок файловой системы — snapshot), из которого необходимо скопировать файлы.
  2. затем созданная копия подключается как логический диск
  3. производится копирование выбранных файлов с подключенного диска (из теневой копии) в папку назначения
  4. удаление этой временной копии.

Как настроить копирование файлов Outlook (PST, OST), не закрывая Outlook у пользователей

При создании задания вы указываете исходные файлы и папки. Если вы знаете, что исходные файлы во время создания бэкапа могут использоваться другим приложением, то установите опцию «[x] Использовать теневое копирование VSS (Volume Shadow Copy) для диска», как показано на скриншоте ниже. Если исходные данные расположены на нескольких дисках, то программа предложит создание теневых копий для нескольких томов поочередно.

Процесс копирование открытых файлов

Во время выполнения задания в журнале будет видно, что программа сначала создает временную теневую копию диска C, затем копирует из нее данные, а после выполнения задания удаляет ранее созданную shadow копию, чтобы она не занимала место на диске. Пример журнала выполнения задания показан ниже.

Таким образом, нам удалось создать резервную копию нужных нам залоченных файлов «нагорячую» благодаря поддержки VSS в Exiland Backup Professional. Главное удобство в том, что не нужно никого «выгонять» из программ — копирование происходит незаметно для пользователя.

Энциклопедия Windows

Все об использовании и настройке Windows

  • Windata
  • »
  • Мир Windows
  • »
  • Утилиты
  • » Копирование заблокированных файлов с HoboCopy

Копирование заблокированных файлов с HoboCopy

Предположим, что вы хотите скопировать файл, который намертво заблокирован другой программой. В результате Windows нам радостно сообщит о том, что системный процесс не может получить доступа к файлу, поскольку последний заблокирован другим процессом. Как же тогда скопировать такой файл?

Что же мешает, собственно говоря, освободить файл, закрыв заблокировавшую его программу? Да ничего, но представьте, что вы настраиваете автоматическое резервное копирование файлов. Если файл заблокирован, то программа резервного копирования здесь не справится и нужный файл не будет скопирован. Вот тут-то и понадобится один рецепт, который представлен в этой статье.

Начиная с Windows XP операционная система от Microsoft поддерживает технологию теневого копирования (она же Volume Shadow Copy). Данная технология используется для резервного копирования данных и восстановления системы. В частности, теневая копия представляет собой временный “снимок” файла или раздела жесткого диска. При этом одна программа может получить доступ чтения именно к снимку, в то время как другие программы могут в это же время работать с файлом или изменять его.

Именно это нам и нужно – чтение занятого файла. И поможет нам в этом утилита для командной строки HoboCopy, предназначенная для резервного копирования файлов.

На следующей странице можно загрузить HoboCopy для Windows XP и Windows Vista/7 в версиях 32/64 бит:

Для работы HoboCopy (да и многих других программ для резервного копирования) нам надобятся две следующих службы Windows:

  • Теневое копирование тома
  • MS Software Shadow Copy Provider

Если вы забыли, где просмотреть службы, то в Windows 7 перейдите по пути Панель управления > Система и безопасность > Администрирование > Службы (а в Windows XP – Панель управления > Администрирование > Службы).

Убедитесь в том, что службы не отключены. Если для них указан режим запуска Вручную, то программа HoboCopy самостоятельно запустит эти службы, когда понадобится и отключит их по завершению своей работы.

Резервное копирование одного файла с помощью HoboCopy

Как вы помните, HoboCopy – утилита командной строки. К слову сказать, в Windows 7 и Windows Vista ее нужно запускать в режиме администратора, для чего щелкните на файле программы правой кнопкой мыши, выберите команду Свойства > Дополнительно и установите флажок Запуск от имени администратора. Также будет не лишним ознакомиться со статьей Запуск программ Windows 7 в режиме администратора.

Синтаксис команды выглядит следующим образом:

К примеру, мы решили скопировать файл c:\users\windata\mail\outlook.pst прямо вот сюда: d:\backups\outlook.pst.

Команда будет выглядеть следующим образом:

Резервное копирование каталога с помощью HoboCopy

Чем копировать по одному файлу, разумеется, куда лучше настроить резервное копирование целыми папками. Для этого нам понадобятся такие ключи:

  • /full – копирование всех файлов
  • /skipdenied – игнорировать любые сообщения ошибках, связанных с разрешением доступа
  • /r – рекурсивное копирование
  • /y – никаких запросов, копировать абсолютно все

Синтаксис команды следующий:

Например, используя предыдущий пример, скопируем всю пользовательскую папку в папку d:\backups\. Для этого нам понадобится такая команда:

На копирование понадобится какое-то время, так что можно передохнуть, перекусить и потрещать вконтактике (шутка). Результатом станет полная копия всего каталога. Если при копировании были сообщения об ошибках, связанных с разрешением доступа, программа укажет на проблемные файлы.

Инкрементное копирование файлов с помощью HoboCopy

Утилита HoboCopy поддерживает и инкрементный тип копирования. Что это такое? Весьма полезная функция, она позволяет копировать только те файлы, что изменились с момента предыдущего резервного копирования. При этом последняя дата копирования хранится в файле, который вам нужно указать непосредственно в команде утилиты.

Для инкрементного копирования потребуются два ключа:

  • /statefile=имя_файла – это имя файла, в котором будут записаны данные о последнем копировании
  • /incremental – а это, как понятно из названия, ключ для инкрементного копирования

Синтаксис команды выглядит так:

Важно . При первом запуске программы необходимо указать ключ /full вместо /incremental, иначе будет выдано сообщение об ошибке, так как файл с данными о предыдущем состоянии еще не будет создан. А вот уже все последующие команды нужно указывать с ключом /incremental.

Таким образом, утилита HoboCopy позволяет настроить автоматическое копирование папок, для чего нужно лишь запланировать процедуру копирования. В Windows 7/Vista для этого используйте системную программу Планировщик заданий (Панель управления > Система и безопасность > Администрирование > Расписание выполнения задач), а в Windows XP – окно Назначенные задания (Панель управления > Назначенные задания).

Читайте также:  Чем дефрагментировать диск mac os
Оцените статью