Ich habe zwei Laufwerke - Laufwerk D: und Laufwerk F :. Bei beiden handelt es sich um Laufwerke, die lokal an den Server 2012-Computer angeschlossen sind. Laufwerk F ist ein Legacy-Datenspeicher, der auf ein neues Laufwerk (D) migriert, wenn es größer ist.
Die Datendeduplizierung wurde auf Laufwerk D vor einer Synchronisierung der Dateien von F nach D aktiviert.
Robocopy / MIR hat den Deduplizierungsspeicher auf Laufwerk F beschädigt, sodass ich Dateien vom alten D-Laufwerk erneut synchronisieren muss. (insbesondere alle, die das APL-Attribut (Archive, ReparsePoint, SparseFile) haben).
Das Problem, das ich habe, ist, dass einige der Dateien auf F seit der Umstellung geschrieben wurden - ich habe versucht, ein Skript zu schreiben, um diese Dateien zu finden und sie zu kopieren, aber ich hätte gerne einen besseren Weg!
Zur Zeit habe ich ein Skript, das nach Dateien mit dem ReparsePoint-Attribut sucht und dieses in eine Textdatei schreibt
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
Ich würde dann basierend auf dieser Liste aus dem Quell-Repository kopieren. Ich würde es im Idealfall mögen, ein einziges Drehbuch zu sein!
Irgendwelche Scripting Gurus möchten helfen?
Prost