簡體   English   中英

如何以編程方式檢查驅動器是否受制於 Windows 中的系統還原功能?

[英]How can I check programmatically if a drive is subject to system restore feature in windows?

正如標題所說,我需要一種編程方式來確定特定磁盤驅動器是否受 Windows 中的系統還原影響。 您可能會在Control Panel/System/System protection選項卡中看到此信息。

我正在為 Windows 開發一個與安全相關的應用程序,它的一些內部文件嚴格存在於一個副本中是至關重要的。 我想防止這些文件被 Windows 無意中復制/備份。 或者至少警告用戶隨之而來的安全風險。

我知道HKLM\\SYSTEM\\CurrentControlSet\\Control\\BackupRestore\\FilesNotToBackup但它沒有解決問題,因為它僅在還原階段使用,並且文件內容仍然存在於備份存儲中。

還有HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\SystemRestore ,但它不包含有關主題磁盤的信息,至少我沒有看到。

任何線索都非常感謝。

系統還原由Volume Shadow Copy api 管理

您需要調用QueryVolumesSupportedForDiffAreas 方法,並且在返回的 IVssEnumMgmtObject 內部將是一個VSS_DIFF_VOLUME_PROP結構,它將告訴您是否在 m_llVolumeTotalSpace 參數中保留了任何存儲區域。

或者,您可以通過探索Get-CimClass -ClassName *shadow命令來解析vssadmin list shadowstorage命令或 Powershell/WMI 中的等效命令的輸出。 這些命令對應於 wmiobjects 和 wmi api,它們可能更易於使用且更易於訪問,具體取決於您的背景和編程環境。


還可以考慮使用FilesNotToSnapshot而不是FilesNotToBackup 它是用於 VSS/系統還原的一種。 您應該閱讀有關其用法的文檔以及允許您排除文件的 api,並特別注意它可能無法按您預期工作的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM