Eu tenho dois drives - drive D: e drive F :. Ambas são unidades conectadas localmente à máquina do Server 2012. A unidade F é um repositório legado de dados migrando para uma nova unidade (D), como é maior.
A desduplicação de dados foi ativada na unidade D, antes de uma sincronização dos arquivos de F para D.
O Robocopy / MIR corrompeu o repositório de deduplicação na unidade F, exigindo que eu sincronizasse novamente os arquivos da unidade D antiga. (especificamente, qualquer um que tenha o atributo APL (Archive, ReparsePoint, SparseFile) neles).
O problema que eu tenho é que alguns dos arquivos em F foram escritos desde a transição - Eu tentei escrever um script para localizar esses arquivos e copiá-los, mas eu gostaria de uma maneira melhor de fazer isso!
Atualmente, tenho um script que procura arquivos com o atributo 'ReparsePoint' e grava isso em um arquivo de texto
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
Eu então copiava do repositório de origem com base nessa lista. Eu gostaria, idealmente, que fosse um roteiro único!
Algum gurus de script quer ajudar?
Felicidades