「以前のバージョン」というフォルダ等のプロパティからアクセスできる過去のスナップショットがあるが、NTFSのVSSを用いたものでかにゃり前からある。
I/O負荷が高すぎると自動的に全シャドーコピーが消えるだの、CoWでパフォーマンスが下がるだの、少数しか維持できにゃいだのといったしょーもにゃい仕様の数々のため、いまいち信用できにゃい==データの保管には使えにゃいという残念機能で有名。
vssadminやdiskshadowで何とかにゃる場合もあるが、機械的に扱いたい場面があったのでメモ。
・作成
$o = gwmi -list win32_shadowcopy
$o.Create("d:\","ClientAccessible")
・一覧
Get-WmiObject win32_shadowcopy
・もう少し有用にゃ一覧
$v = Get-Volume
$s = Get-WmiObject win32_shadowcopy | Sort-Object installdate
$s | %{
$G = [System.Management.ManagementDatetimeConverter]::ToDateTime($_.InstallDate).ToUniversalTime().ToString("yyyy.MM.dd-HH.mm.ss");
$J = [System.Management.ManagementDatetimeConverter]::ToDateTime($_.InstallDate);
$vn = $_.VolumeName
$v | %{ if($_.Path -eq $vn){ $dl = $_.DriveLetter } }
Write-Host $dl " " $J " " \\localhost\d$\@GMT-$G " " $_.DeviceObject;
}
・シャドーコピーをマウントする
上の一覧表示の文字列を用いて
cmd /c mklink /d c:\tmp\link \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy102
または
cmd /c mklink /d c:\tmp\link \\localhost\d$\@GMT-2016.06.11-22.33.44
・シャドーコピーに直接アクセスする
上の一覧表示の文字列を用いて
dir \\localhost\d$\@GMT-2016.06.11-22.33.44
とまぁ、zfsのsnapshot visibleのようにVSSもlink張らにゃくても常時ダイレクトアクセスできるようにゃので、多少利便があるのではにゃいか、という話。