Как скопировать заблокированный файл

Обновлено: 03.07.2024

Как скопировать текст с защищенного сайта

Защита от копирования в Интернете всегда делается однотипно – пользователю запрещается при чтении пользоваться правой кнопкой мыши и контекстным меню, выделять и копировать. Запреты реализуются при помощи JavaScript или атрибутов тега <body>. Некоторые оригиналы используют специальные стили CSS, которые запрещают выделение (но не копирование) на странице.

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

Самое простое действие – вызвать HTML-код комбинацией клавиш «Ctrl + U» (в тексте приводятся только комбинации клавиш, т.к. они являются универсальными. Действия, описанные с применением hot key, могут быть выполнены и при помощи меню браузеров). Работает всегда и покажет текст страницы вместе с разметкой и кодом скриптов. После этого достаточно найти нужное место, выделить, скопировать в текстовый редактор и очистить текст.

Данный способ идеально подходит для копирования 1-2 предложений. Если вам нужно скопировать сразу несколько абзацев, то такой способ неудобен тем, что придется чистить элементы кода после вставки, например, в Word.

как скопировать защищенный текст с сайта

В данном случае получить защищенный текст можно, вызвав версию страницы для печати комбинацией клавиш «Ctrl + P». Работает в Chrome и ему подобных (Яндекс.Браузер, например) и в Opera. При этом будет показан упрощенный документ, в котором можно выделить и скопировать содержимое.

как скопировать защищенный текст с сайта

Получить чистую копию можно и в Firefox, и в Internet Explorer. При нажатии «Ctrl + S» браузер предложит разные варианты сохранения. Выбирая «текстовый документ» получим файл, в котором нет тегов форматирования. Пользователям Firefox будет удобнее, поскольку в этом браузере сохранение уберет лишние символы полностью, а в IE может остаться код JavaScript.

как скопировать защищенный текст с сайта

Популярный способ обхода защиты от копирования – отключить выполнение JavaScript в настройках браузера. Но при этом отключится все активное содержимое, а не только скрипт, защищающий текст, и все «красивости» сайта станут недоступны. А если копирование закрывается через тег <body>, то убрать ограничения не получится.

Предположим, что вы хотите скопировать файл, который намертво заблокирован другой программой. В результате 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

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

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

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

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

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

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

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

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

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

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

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

  • файлы 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",
в зависимости от настроек, расположенных в меню "Файл -> Настройка учетных записей", вкладка "Файлы данных".

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

(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.


Скачайте демо-версию 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 Backup: создание резервной копии, используя теневое копирование тома

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

Как можно скопировать монопольно открытые файлы, например pst и другие?
Вручную не дает копировать.
Смотрю разные программы для создания бэкапов.
Acronis не берет.
Cobian не хочу использовать, т.к. прога брошена разработчиком еще в 2012-м и новых версий много лет нет.
Exiland Backup Standard - не понятно, изучаю пока.

Для надежности можно продублировать резервную копию по FTP, SFTP на другой сервер или сетевой диск. Можно даже вместе с отчетом прислать на почту саму резервную копию (ZIP-файл, если размер до 10 МБ). Если вам не требуется сжатие, то копировать файлы можно в 10-12 потоков (что существенно ускоряет создание резервной копии).

Также, в Exiland Backup можно настроить ротацию бэкапов (чтобы старые копии удалялись автоматически и не занимали место на диске). Поддерживается Full (полная), Incremental (добавочная), Differential (разностная) и синхронизация папок между локальными, сетевыми, FTP/SSH серверами.

Для надежности можно продублировать резервную копию по FTP, SFTP на другой сервер или сетевой диск. Можно даже вместе с отчетом прислать на почту саму резервную копию (ZIP-файл, если размер до 10 МБ). Если вам не требуется сжатие, то копировать файлы можно в 10-12 потоков (что существенно ускоряет создание резервной копии).

Также, в Exiland Backup можно настроить ротацию бэкапов (чтобы старые копии удалялись автоматически и не занимали место на диске). Поддерживается Full (полная), Incremental (добавочная), Differential (разностная) и синхронизация папок между локальными, сетевыми, FTP/SSH серверами.

У wbadmin есть тоже преимущества - его ставить не надо.

ЗЫ. "то копировать файлы можно в 10-12 потоков (что существенно ускоряет создание резервной копии)" на обычном ПК это означает - висим и курим бамбук.

"можно настроить ротацию бэкапов (чтобы старые копии удалялись автоматически и не занимали место на диске)" дык следует сначала ознакомиться с возможностями wbadmin, а потом ужо петь осанну.

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

date

21.08.2020

directory

Windows 10, Windows Server 2016

comments

комментариев 6 Многие приложения открывают файлы в монопольном (эксклюзивном) режиме. При этом файл блокируется файловой системой от операций ввода вывода других приложений. Если вы закрываете приложение, блокировка с файла снимается.

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

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

Файл уже используется. Действие не может быть выполнено, так как этот файл открыт в System

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

Если вы не можете удалить папку в сетевом каталоге, эта проблема чаще все связана с наличием файла thumbs.db с кэшем миниатюр файлов в папке либо тем, что файл на файловом SMB сервере открыт(заблокирован) другим пользователем.

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

Чаще всего для поиска процесса, который заблокировал файл рекомендуют использовать утилиту Unlocker. Лично я Unlocker не использую, т.к. она не позволяет получить подробную информацию о процессе или цепочке процессов, которые заблокировали файл. Также нельзя освободить конкретный файл, занятый процессом – приходится завершать приложение целиком.

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

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

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

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

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

Если у вас в Process Explorer не отображается нижняя панель со списком открытых дескрипторов процесса, включите пункт меню View -> Lower Pane View -> Handles

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

Сброс дескриптора файла с помощью утилиты 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.

Для некоторых системных процессов handle.exe вернет следующий текст: wininit.exe pid: 732 \<unable to open process> . Это означает, что вы не может получить информацию об этих системных процессах (даже с правами администратора). Для получения дескрипторов файлов, открытых такими процессами, запустите командную строку с правами System и попробуйте получить список дескрипторов еще раз.

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

Читайте также: