Как я могу программно проверить, подвержен ли диск функции восстановления системы в Windows?
Как видно из заголовка, мне нужен программный способ выяснить, подлежит ли конкретный диск восстановлению системы в Windows. Вы можете увидеть эту информацию в Control Panel/System/System protection
Вкладка.
Я разрабатываю связанное с безопасностью приложение для Windows, и очень важно, чтобы некоторые его внутренние файлы присутствовали строго в единственном экземпляре. Я хотел бы предотвратить непреднамеренное копирование / резервное копирование этих файлов Windows. Или, по крайней мере, предупредить пользователя о последующей угрозе безопасности.
Я знаю о HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToBackup
но это не решает проблему, поскольку используется только на этапе восстановления, а содержимое файла все еще присутствует в резервном хранилище.
Существует также HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore
, но он не содержит информацию о предметных дисках, по крайней мере, я не вижу ее.
Любые подсказки очень ценятся.
1 ответ
Восстановление системы осуществляется через API Volume Shadow Copy.
Вам необходимо вызвать метод QueryVolumesSupportedForDiffAreas, и внутри возвращенного объекта IVssEnumMgmtObject будет структура VSS_DIFF_VOLUME_PROP, которая сообщит вам, зарезервирована ли какая-либо область хранения в параметре m_llVolumeTotalSpace.
В качестве альтернативы вы можете проанализировать вывод vssadmin list shadowstorage
команда или ее эквивалент в Powershell/WMI, исследуя Get-CimClass -ClassName *shadow
команда. Эти команды соответствуют wmiobjects и wmi api, которые могут быть проще в использовании и более доступными в зависимости от вашего фона и среды программирования.
Также рассмотрите возможность использования FilesNotToSnapshot
вместо FilesNotToBackup
, Это тот, который используется для восстановления VSS / системы. Вам следует прочитать этот документ об его использовании, а также API, который позволяет исключать файлы, и обратить особое внимание на случаи, когда он может работать не так, как вы предполагали.