Создание теневой копии с использованием контекста "Резервное копирование" в PowerShell
Я нахожусь в процессе написания сценария PowerShell для резервного копирования компьютера Windows с помощью rsync. С этой целью я пытаюсь использовать WMI из указанного сценария для создания непостоянной теневой копии с участием автора (как, очевидно, рекомендуется для резервного копирования).
Из другого вопроса я нашел (Доступ к снимкам теневого копирования томов (VSS) из powershell) способ создания теневой копии в целом, но в приведенном там примере в качестве параметра контекста используется ClientAccessible), в результате чего в создании постоянного теневого копирования без участия автора.
При поиске решения я обнаружил, что могу использовать следующую команду для получения списка контекстов, который, как я полагаю, понят WMI:
Get-WmiObject win32_shadowcontext | Out-GridView
Это список имеет контекст с именем "Резервное копирование", что удобно для меня. Я попытался создать непостоянную теневую копию, используя этот контекст:
$shadow = (Get-WmiObject -list win32_shadowcopy).Create("C:\", "Backup")
Однако, похоже, это не помогло, и для содержимого переменной $ shadow установлено значение
ReturnValue : 5
ShadowID : {00000000-0000-0000-0000-000000000000}
Согласно соответствующей документации (метод Create класса Win32_ShadowCopy) возвращаемое значение означает "Неподдерживаемый контекст теневого копирования".
Я не смог найти какой-либо соответствующей документации относительно того, почему этот контекст не поддерживается или можно ли вообще его использовать. Я также безуспешно пробовал контексты "FileShareBackup" и "AppRollback".
Я предполагаю, что я либо упускаю что-то очевидное, либо что по какой-то причине WMI действительно не поддерживает ничего, кроме "clientAccessible" при создании теневых копий, или что это зависит от ОС (я тестирую это в Windows 7, 64-битная версия)
Как я могу заставить это работать?
Ответы
Ответ 1
Ваш $shadow
имеет возвращаемое значение 5, глядя на сообщение об ошибке, у вашего теневого идентификатора есть все нули, вам нужно будет добавить 1 или 2 в конец теневой копии тома в реестре, используя двоичный код или двойное слово.
найдите папку в реестре с именем volsnap в вашем поиске regedit.volsnap.sys находится в каталоге C:\Windows\System32\drivers
. Размер файла составляет 52 352 байта. Файл volsnap содержит цифровую подпись Microsoft, убедитесь, что это правильные байты.
Это подтверждает его подлинность. volsnap.sys представляется файлом, сжатым с помощью EXE-упаковщика. Этот метод часто используется троянскими программами для сохранения небольшого размера файла, а также затрудняет отладку.
Однако это само по себе не является достаточным основанием для предположения злонамеренных действий, поскольку даже профессиональные производители программного обеспечения с благими намерениями используют сжатые файлы. По этой причине 2% всех экспертов считают этот файл возможной угрозой. Вероятность того, что это может причинить вред, высока. Пожалуйста, рассмотрите дополнительные комментарии от других пользователей.
shadow id default
00000000-0000-0000-0000-000000000000
00000000-0000-0000-0000-000000000005
если у него уже есть 5, которое, вероятно, не меняет его на 1
или создайте новый код
Shadow id $shadow 00000000-0000-0000-0000-0000000000001
не совсем так, как показано. Возможно, вам придется попробовать другую формулировку. Я не уверен, сработает ли $
, если нет, попробуйте автономную версию js.