$sourcePath = "U:\1-PROYECTOS\593 Cacique Residences"
$destPath = "C:\CVT\Archivos\Proyectos\593 Cacique Residences"
# Verificar si la carpeta de destino existe
if (!(Test-Path $destPath)) {
Write-Host "❌ La carpeta de destino no existe: $destPath" -ForegroundColor Red
exit
}
# Obtener y aplicar permisos a la carpeta principal
try {
$sourceAcl = Get-Acl -Path $sourcePath -ErrorAction Stop
Set-Acl -Path $destPath -AclObject $sourceAcl -Verbose
Write-Host "✅ Permisos aplicados a la carpeta principal correctamente." -ForegroundColor Green
} catch {
Write-Host "❌ Error al aplicar permisos en la carpeta principal: $_" -ForegroundColor Red
}
# Aplicar permisos a todas las subcarpetas y archivos
Get-ChildItem -Path $sourcePath -Recurse | ForEach-Object {
try {
$itemAcl = Get-Acl -Path $_.FullName -ErrorAction Stop
$destItemPath = Join-Path -Path $destPath -ChildPath $_.FullName.Substring($sourcePath.Length).TrimStart("\")
if (Test-Path $destItemPath) {
Write-Host "? Aplicando permisos a: $destItemPath" -ForegroundColor Yellow
Set-Acl -Path $destItemPath -AclObject $itemAcl -Verbose
Write-Host "✅ Permisos aplicados a: $destItemPath" -ForegroundColor Green
} else {
Write-Warning "⚠️ No se encontró en destino: $destItemPath"
}
} catch {
Write-Error "❌ Error con: $_.FullName - $_"
}
}