Виртуальная машина удалена, повреждена или заменена, но файл .vmdk сохранился — возможно, даже со Snapshot-ми. На этом диске находятся файлы, зашифрованные EFS, однако одного подключения диска недостаточно, чтобы прочитать их. В статье рассказывается, как восстановить файлы с виртуального диска VMware с помощью RS Partition Recovery и почему поиск нужного сертификата важнее самого процесса восстановления.

Содержание
- Восстановление файлов из подключенного VMDK
- Где на самом деле хранятся сертификат EFS и закрытый ключ
- Получение сертификата: ключевой этап, от которого зависит успех
- Виртуальные машины в домене: особенности восстановления EFS
- Типичные трудности при восстановлении файлов EFS из виртуальной машины
- Что делать, если сертификата нет
Начните с того, что удалось сохранить
Есть резервная копия PFX → Подключите VMDK с нужным Snapshot, затем укажите PFX-файл и пароль к нему в разделе Add Decryption Data. Резервная копия должна содержать соответствующий закрытый ключ.
Файла PFX нет, но виртуальная машина всё ещё загружается → Войдите в систему под учётной записью пользователя, который зашифровал файлы, и экспортируйте соответствующий сертификат вместе с закрытым ключом. Если учётная запись или ключ недоступны, рассмотрите варианты ниже.
Виртуальная машина не загружается, а у пользователя была доменная учётная запись → Узнайте у администратора домена о наличии соответствующего ключа агента восстановления данных (DRA), возможности восстановления резервного ключа DPAPI или использовании Credential Roaming. Это отдельные способы восстановления.
Виртуальная машина не загружается, а учётная запись была локальной → Проверьте резервные копии PFX и профиля пользователя. Сохраните исходный профиль и все известные пароли, которые использовались ранее, чтобы отдельно оценить возможность восстановления ключа. Если пригодного ключа не сохранилось, восстановленный файл останется зашифрованным.
Восстановление файлов из подключенного VMDK
После подключения файла .vmdk восстанавливать из него файлы можно так же, как с любого другого диска. Отличается лишь способ, которым нужно сначала подключить диск.
Восстановление и расшифровка — разные этапы. RS Partition Recovery подключает VMDK и извлекает доступные для восстановления данные файлов. Программа может расшифровать файлы EFS, если ей предоставить подходящий ключ. Однако подключение и сканирование диска не позволяют получить этот ключ Windows или обойти EFS.
Работайте с согласованной копией файлов виртуальной машины, а для попыток загрузки используйте еще одну рабочую копию. Не изменяйте оригиналы, пока восстанавливаете файлы и ищете ключи.
Запустите RS Partition Recovery и вместо физического диска выберите Mount Disk. В разделе Virtual machine images выберите VMware Workstation / vSphere (*.vmdk) и укажите папку виртуальной машины. Если у диска есть Snapshotы, программа покажет каждый из них отдельно — с пометками Active, Snapshot #1 и так далее, а также с указанием размера и даты создания. Это позволит выбрать нужное состояние, а не гадать, какому моменту времени соответствует тот или иной исходный файл. При необходимости можно выбрать сразу несколько состояний и сравнить их.
Файл Snapshotа не является самодостаточным: в нем записаны только изменения относительно родительского файла, который необходим для восстановления рабочего состояния диска. Скопируйте всю нужную цепочку: базовый файл .vmdk и его файлы данных, а также файлы описания и данных каждого снапшота. Сохраните исходную структуру каталогов, чтобы ссылки на родительские файлы оставались доступными. Отдельный файл снапшота без родительских файлов подключить не удастся. Сохраните весь набор файлов диска, даже если экспортируете зашифрованные файлы: метаданные EFS могут понадобиться для последующей расшифровки.
Далее сканирование и восстановление удаленных или зашифрованных файлов выполняется так же, как и на физическом диске. Полную инструкцию см. в статье Восстановление файлов, зашифрованных EFS: причины, сертификаты и практические рекомендации. В ней описано, как выглядит уведомление «Encrypted files found» и как работает диалоговое окно Add Decryption Data.
Где на самом деле хранятся сертификат EFS и закрытый ключ
Найти запись сертификата — несложно. Важно другое: можно ли по-прежнему использовать связанный с ним закрытый ключ. При работе с обычным программным ключом Windows должна разблокировать цепочку зависимых компонентов, а функция Import from Windows в RS Partition Recovery рассчитывает на то, что вошедшая в систему учётная запись имеет доступ к этому ключу.
Сам сертификат — его открытая часть и ссылка на закрытый ключ — хранится в личном хранилище сертификатов пользователя. Откройте certmgr.msc и перейдите в раздел Личное → Сертификаты. В PowerShell этому хранилищу текущего пользователя соответствует путь Cert:CurrentUserMy. Обычно оно размещается в реестре по адресу HKEY_CURRENT_USERSoftwareMicrosoftSystemCertificates, поэтому копии одной лишь папки с сертификатами из автономного профиля недостаточно для резервного копирования. Microsoft описывает расположение хранилищ.
Закрытый ключ RSA, созданный программным способом, обычно хранится отдельно — в виде защищённого DPAPI двоичного объекта в папке AppDataRoamingMicrosoftCryptoRSA<SID>. Сам по себе этот объект прочитать нельзя: для него необходим главный ключ из папки AppDataRoamingMicrosoftProtect<SID>, который обычно защищён с помощью учётных данных пользователя Windows. Другие поставщики ключей могут использовать иные места хранения. Важна сама цепочка зависимостей: сертификат → двоичный объект закрытого ключа → главный ключ DPAPI → учётные данные или механизм восстановления. Чтобы получить доступ к закрытому ключу, необходимо сохранить работоспособность всей этой цепочки. При экспорте в PFX сертификат и закрытый ключ объединяются в переносимую резервную копию, защищённую паролем; просто импортировать вместо неё исходные файлы профиля нельзя.
Получение сертификата: ключевой этап, от которого зависит успех
Восстановить структуру файлов с подключённого диска виртуальной машины — самая простая часть задачи. Для доступа к каждому восстановленному таким способом файлу, зашифрованному EFS, по-прежнему нужен соответствующий закрытый ключ. В отличие от отдельного физического компьютера, у виртуальной машины могут быть разные состояния сертификатов — в зависимости от того, какой снимок вы используете. Подходящий вариант зависит от того, загружается ли ещё какая-либо версия этой виртуальной машины и доступен ли ключ исходного пользователя.
Не сбрасывайте пароль исходной учётной записи только ради доступа к виртуальной машине. Принудительный сброс может сделать недоступными ключи, защищённые DPAPI. Загрузите рабочую копию и сохраните исходный профиль и учётные данные, прежде чем пытаться восстановить учётную запись.
Снимок по-прежнему загружается
Запустите в VMware Workstation рабочую копию состояния, из которого можно загрузиться. Это не обязательно должен быть именно тот снимок, где находится нужный файл, — достаточно, чтобы в нём сохранился соответствующий закрытый ключ. Войдите в учётную запись, с помощью которой изначально были зашифрованы файлы, и экспортируйте сертификат и закрытый ключ через certmgr.msc. Можно также импортировать их средствами Windows, если запустить RS Partition Recovery в загруженной виртуальной машине под той же учётной записью.
Виртуальная машина полностью утрачена
Если виртуальная машина не загружается и у вас нет заранее экспортированного файла PFX, RS Partition Recovery не сможет восстановить закрытый ключ через диалог импорта сертификата. Сохраните старый профиль — его можно отдельно оценить на возможность восстановления. Если виртуальная машина использовалась с доменной учётной записью, это не обязательно конец: прежде чем отказываться от восстановления, ознакомьтесь с разделом «Виртуальные машины в домене: в чём отличия» ниже.
Разные Snapshot — разные сертификаты
Принудительный сброс пароля может сделать закрытый ключ недоступным, а пересоздание профиля или переустановка Windows — полностью удалить прежний ключ. Это легко упустить из виду: виртуальная машина по-прежнему выглядит как «та же самая». Дата создания помогает определить, к какому периоду относится снимок, но не подтверждает, что сертификат подходит. Ключ из более раннего Snapshotа может расшифровать файл, созданный позже, если для него использовался тот же ключ. Сравнивайте отпечатки сертификатов, а не полагайтесь только на дату.
Экспорт PFX из загруженного Snapshot
В загруженной гостевой системе откройте certmgr.msc под учетной записью исходного пользователя и перейдите в раздел Личное → Сертификаты. Найдите сертификат, в назначение которого входит Шифрование файловой системы, проверьте его отпечаток и выберите Все задачи → Экспорт. Укажите Да, экспортировать закрытый ключ и Обмен личной информацией — PKCS #12 (.PFX). Защитите экспорт паролем и сохраните файл за пределами исходного виртуального диска. Не устанавливайте флажок, удаляющий закрытый ключ после экспорта.
В PowerShell можно выполнить тот же экспорт без мастера. Откройте Windows PowerShell под той же учетной записью пользователя и просмотрите личное хранилище:
class="language-powershell">Get-ChildItem -Path Cert:CurrentUserMy | Format-List Subject, Thumbprint, EnhancedKeyUsageList, HasPrivateKey
Найдите сертификат EFS и скопируйте его отпечаток. Если сертификатов EFS несколько, сопоставьте нужный сертификат с файлом, как описано ниже: первый в списке не обязательно будет подходящим. Затем экспортируйте выбранный сертификат. В примере предполагается, что каталог E:EFS-Backup уже создан на отдельном носителе назначения; перед запуском укажите нужный путь.
class="language-powershell">$thumbprint = (Read-Host 'Matching EFS certificate thumbprint') -replace 's', ''
$efsCert = Get-Item -LiteralPath "Cert:CurrentUserMy$thumbprint" -ErrorAction Stop
if (-not $efsCert.HasPrivateKey) {
throw 'This certificate has no associated private key.'
}
$pfxPassword = Read-Host 'Password to protect the PFX' -AsSecureString
$export = @{
Cert = $efsCert
FilePath = 'E:EFS-Backupefs-user.pfx'
Password = $pfxPassword
NoClobber = $true
ErrorAction = 'Stop'
}
Export-PfxCertificate @export
Свойство HasPrivateKey подтверждает, что с сертификатом связан ключ, однако экспорт всё равно может завершиться ошибкой, если ключ недоступен или не подлежит экспорту. Если в этой сеансной среде удаётся открыть файлы, сохраните их расшифрованные копии из гостевой системы в отдельное место. Пароль защищает файл PFX и понадобится при его импорте. В справке Microsoft по Export-PfxCertificate описаны параметры экспорта; параметр -NoClobber предотвращает перезапись существующей резервной копии.
Виртуальные машины в домене: особенности восстановления EFS
Зависимость от пароля — главный ключ разблокируется с помощью учётных данных пользователя — работает по-разному для локальных и доменных учётных записей. Это важно учитывать, прежде чем считать виртуальную машину безнадёжно потерянной.
Самостоятельная смена пароля с помощью Ctrl+Alt+Del обычно не лишает доступа: Windows обновляет защиту DPAPI, используя старый и новый пароли. Принудительный сброс пароля администратором — другая ситуация: для локальной учётной записи он может сделать существующие главные ключи недоступными с новым паролем. Поэтому исходный пароль или пригодная для использования резервная копия всё ещё могут понадобиться. Для доменной учётной записи предусмотрен отдельный механизм резервного копирования в Active Directory. Если доступна соответствующая резервная копия домена, Windows может восстановить доступ к защищённому главному ключу через исходный домен без старого пароля. Этот механизм описан в документации Microsoft по резервным ключам DPAPI.
Резервный ключ DPAPI домена — это не PFX-файл для Add Decryption Data. Он используется в отдельной процедуре восстановления, для которой нужны сохранившийся профиль и ключевые данные. Один из вариантов — восстановить вход в систему через исходный домен; также уполномоченный специалист может оценить возможность автономного восстановления. Попросите администратора домена выполнить этот шаг. Резервный ключ не может восстановить отсутствующий блок закрытого ключа.
Важно также различать резервный ключ AD и агента восстановления данных (DRA): это разные механизмы, и стоит проверить наличие обоих, а не считать, что один заменяет другой. Резервный ключ действует на уровне всего домена, создаётся при его создании и позволяет восстанавливать резервные копии главных ключей DPAPI пользователей домена — он не предназначен специально для EFS. DRA, напротив, предназначен именно для EFS и работает через политику восстановления EFS: файл должен содержать запись восстановления для этого DRA, а соответствующий закрытый ключ должен сохраниться. Создание нового DRA после инцидента не даст ему доступа к старым файлам. Отсутствие пригодного для использования DRA в домене не обязательно означает, что восстановить DPAPI невозможно.
Есть и ещё один вариант, связанный с доменом, о котором стоит спросить администратора: перемещение учётных данных. Если эта функция была включена с помощью групповой политики, сертификат EFS и закрытый ключ пользователя реплицируются в Active Directory и становятся доступными на компьютерах домена, поддерживающих эту функцию. Это значит, что сертификат может быть восстановлен независимо от конкретной виртуальной машины — через домен, а не с имеющегося у вас диска.
Типичные трудности при восстановлении файлов EFS из виртуальной машины
Чаще всего проблема связана не со сбоем RS Partition Recovery, а с одним из нескольких несоответствий между файлом, сертификатом и состоянием диска. В первую очередь стоит проверить именно их.
Сертификат не совпадает
Успешный импорт ключа не доказывает, что он соответствует этому файлу. Сравните разрешённые отпечатки сертификатов для файла со значением в поле Thumbprint импортированного сертификата, а затем проверьте этот сертификат в certmgr.msc на исходном компьютере или в исходном снимке системы. Совпадение импортированного PFX с исходным сертификатом подтверждает только корректность экспорта. Важно, чтобы сертификат совпадал с сертификатом, указанным для файла.
Экспорт без закрытого ключа
В экспортированном файле, содержащем только открытый ключ, например в файле .cer, нет ключа для расшифровки. Выберите Да, экспортировать закрытый ключ и сохраните файл PFX, как описано выше. Если этот параметр недоступен, закрытый ключ может отсутствовать, быть недоступным или не подлежать экспорту. Изменение расширения файла на .pfx не добавит в него закрытый ключ.
Файлы виртуальных дисков заблокированы или используются
Если подключить диск не удаётся из-за нарушения совместного доступа, проверьте, не открыт ли он в работающей виртуальной машине, задании резервного копирования или другом приложении. Выключите виртуальную машину и освободите диск, закрыв все обращения к нему, либо используйте согласованную автономную копию. Сам факт регистрации диска в Workstation или vCenter не объясняет, почему он заблокирован.
Выбрано неверное состояние Snapshotа
Файл, удалённый в одном Snapshot, может сохраниться в более раннем — возможно и обратное. Если поиск в Active не обнаружил файл, вернитесь в раздел Mount Disk и проверьте состояния более ранних снимков по отдельности, а не делайте вывод, что файл утерян.
Если зашифрованный файл доступен на томе Windows NTFS, проверьте его с помощью командной строки или PowerShell:
cipher /c "D:RecoveredBudget.xlsx"
Сверьте указанные отпечатки сертификатов пользователя и восстановления с данными предполагаемого ключа. Команда работает только с файлом, содержащим метаданные EFS; она не может проверить файл, который виден лишь в результатах сканирования RS Partition Recovery. Microsoft описывает параметр /c в справке по команде cipher. После подтверждения ключа, если это поддерживается, проверьте, отображается ли содержимое в предварительном просмотре, сохраните файл в другом месте и откройте его в обычном приложении. Даже при использовании правильного ключа восстановление может завершиться неудачей, если файл повреждён.
Что делать, если сертификата нет
Если ни один снимок не загружается и резервную копию PFX найти не удалось, сохраните исходный профиль, прежде чем делать вывод, что ключ утрачен. Для локальной учётной записи уцелевшие ключевые данные и исходные учётные данные пользователя могут позволить провести отдельную оценку возможностей восстановления. Для доменной учётной записи вместе с администратором проверьте наличие резервного ключа AD, подходящего DRA, а также перемещённого или архивного ключа.
Если все пригодные к использованию закрытые ключи и способы восстановления утрачены безвозвратно, расшифровать файлы невозможно. RS Partition Recovery всё ещё может восстановить зашифрованные данные файлов и сведения файловой системы, но содержимое останется зашифрованным.
Общее объяснение этого ограничения см. в основном руководстве по восстановлению EFS: Что делать, если сертификата нет. Пока поиск ключа продолжается, сохраняйте исходную цепочку VMDK.





