Я нахожусь в процессе написания сценария 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-битная версия)
Как я могу заставить это работать?