У меня два диска - диск D: и диск F:. Оба эти диска локально подключены к компьютеру с Server 2012. диск F - это устаревшее хранилище данных, мигрирующих на новый диск (D) по мере его увеличения.
Дедупликация данных была включена на диске D до синхронизации файлов из F в D.
Robocopy /MIR повредил хранилище дедупликации на диске F, что потребовало повторной синхронизации файлов со старого диска D. (в частности, любые, которые имеют атрибут APL (Archive, ReparsePoint, SparseFile) на них).
У меня проблема в том, что некоторые файлы на F были записаны с момента переключения - я попытался написать скрипт, чтобы найти эти файлы и скопировать их, но я хотел бы найти лучший способ сделать это!
В настоящее время у меня есть скрипт, который ищет файлы с атрибутом ReparsePoint и записывает их в текстовый файл.
function Recurse($path) {
$fc = new-object -com scripting.filesystemobject
$folder = $fc.getfolder($path)
foreach ($i in $folder.files) { $i | select Path }
foreach ($i in $folder.subfolders) {
$i | select Path
if ( (get-item $i.path).Attributes.ToString().Contains("ReparsePoint") -
eq $false) {
Recurse($i.path)
}
}
}
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
$outputlist = Recurse($scriptPath) | Out-File -Filepath .\filelist.txt
Затем я скопировал бы из исходного хранилища на основе этого списка. В идеале мне бы хотелось, чтобы это был единый сценарий!
Любые гуру сценариев хотят помочь?
ура