我经常使用 Windows 文件服务器上的集成 VSS 功能,让用户可以自行恢复某些文件。当涉及的文件很少时(这是最常见的问题),这也让 IT 团队能够快速完成工作。
例如,我每个工作小时获取一个 VSS(每天 10 个),并保留 4 周(每周 5 个工作日)--> 总计 = 4 周 200 个 VSS
我想使用一些“灵活”的保留策略:
例如,在 3 个工作日内保留每小时一个 VSS,然后在接下来的 7 个工作日内每天保留 4 个 VSS,然后在接下来的 10 个工作日内每天保留 2 个 VSS --> 总共 = 4 周内保留 78 个 VSS
两种情况下 VSS 占用的空间应该差不多。
我的观点不是节省空间。而是延长 VSS 的保留周数。但由于 NTFS 最多可以有 512 个 VSS,因此每小时 VSS 无法持续超过 10 周。这是一个巨大的数字。
问题:您认为我应该编写 PowerShell 脚本来管理 VSS 保留策略吗?或者我可以使用已经完成的东西(脚本或软件)吗?
答案1
您可以根据您的需要调整这个简单的脚本:
#This script deletes all shadow copies older than 30 days
#By Wayne Johnson
Get-WmiObject Win32_Shadowcopy | ForEach-Object {
$WmiSnapShotDate = $_.InstallDate
$strShadowID = $_.ID
$dtmSnapShotDate = [management.managementDateTimeConverter]::ToDateTime($WmiSnapShotDate)
$strClientAccessible = $_.ClientAccessible
$dtmCurDate = Get-Date
$dtmTimeSpan = New-TimeSpan $dtmSnapShotDate $dtmCurDate
$intNumberDays = $dtmTimeSpan.Days
If ($intNumberDays -ge 31 -and $strClientAccessible -eq "True") {
$_.Delete()
}
}
答案2
您应该将实际的离线备份到其他媒体以满足长期数据恢复需求。影子副本非常适合短期、面向用户的恢复,但不会(也不应该)成为您的全部数据保护工具。