
Utilicé una utilidad de Windows 7 para eliminar archivos duplicados byte por byte exactos y reemplazarlos con un enlace simbólico antes de saber que el tipo de enlace simbólico no está permitido en nuestro dominio corporativo. Necesito una manera de deshacer todos los cambios realizados pero el programa no tiene una manera de hacerlo.
¿Es posible escribir un script de algún tipo que encuentre los enlaces, encuentre el archivo, elimine el enlace y copie el archivo nuevamente a la carpeta y le cambie el nombre para que coincida con el nombre del enlace? ¿O tal vez un software que haga esto?
Gracias por cualquier y toda la ayuda.
Respuesta1
Este es el tipo de situación en la que realmente vale la pena tener una estrategia de respaldo bien planificada y mantenida. Si ese es el caso en su empresa, utilícelo.
Lo que hiciste es una mala forma de ahorrar espacio. Considere el siguiente caso de uso:
- El usuario copia archivos del recurso compartido Deptx en preparación para trabajar en ellos
- Tiras sus copias y creas enlaces simbólicos a los orígenes.
- Modifica los originales que aún necesitaban otros para su trabajo.
- ...
Si tiene poco almacenamiento, lo mejor es redactar un plan de negocios para la compra de almacenamiento adicional. Idealmente, una solución que admita la deduplicación a nivel de bloque. Si su dispositivo existente ofrece deduplicación, podría haber enviado una solicitud de cambio para aprobación para implementarlo, pero ese tiempo ya pasó.
Una nota para el futuro. Como administrador de almacenamiento, debe informar a la empresa cuándo es el momento de ampliar el almacenamiento, que suele ser cuando está medio lleno. Cuando esté lleno al 70% podrás empezar a activar la alarma contra incendios diariamente hasta que te asignen presupuesto. Si eso no sucede, es hora de informarles en una reunión muy franca que están arriesgando el negocio. Los datos son el núcleo de los negocios modernos.
Puede identificar todos los enlaces simbólicos con:
C:\Users\user>dir /AL /S C:\ | find "SYMLINK"
07/14/2009 01:08 AM <SYMLINKD> All Users [C:\ProgramData]
# Only one result in on my Windows 7 host, and it's a system default.
# There are likely more in Windows Server OSs.
# Cmd Explained:
# /AL A Lists file with attribute:L (Symlinks and dir junctions)
# /S Do recursively
# C:\ Drive to scan
'Todos los usuarios' es el enlace simbólico 'C:\Users\All Users', que apunta a 'C:\ProgramData'. Tenga en cuenta que el resultado del comando anterior no proporciona la ruta completa al enlace simbólico que necesita.
<<< DETENER >>> Si el número de enlaces simbólicos es inferior a mil, puede valer la pena considerar reemplazarlos manualmente con sus archivos de destino.
Podrías usar NTFSLinksView. Parece poder exportar datos que incluyen el destino completo y las rutas de enlace simbólico.http://www.nirsoft.net/utils/ntfs_links_view.html
Una vez que tenga estos valores, puede recorrerlos con este bit de Powershell. Modifique la delimitación a lo que genere el programa. El ejemplo establece espacios como delimitador. Si usa comas, entonces use: ','. Asegúrese de que el cvs tenga solo los datos de Enlace y Destino. En ese orden.
Nota: Esto no conserva los enlaces simbólicos predeterminados...
Import-CVS -Delim ' ' -Path input.cvs -Header Link,Target | ForEach-Object {
cmd /c rmdir $Link
Copy-Item $Target $Link
}
ADVERTENCIA: Esto no está probado y tiene el potencial de causar aún más daño... Úselo bajo su propio riesgo. Si no existen copias de seguridad anteriores y ha llegado a este resultado, haga una copia de seguridad antes de continuar.
Respuesta2
Este problema no se debe a una política de dominio. Es por una actualización de Windows que rompió enlaces simbólicos.este hiloMe ayudó a comprender el problema real. Después de desinstalar la actualización y usar un símbolo del sistema para ejecutar este comando:
conjunto de comportamiento fsutil SymlinkEvaluación L2L:1 R2R:1 L2R:1 R2L:1
Pude copiar la carpeta superior a una unidad USB local y recuperar los archivos originales como archivos con el nombre original y deshacer la mayor parte del "daño" que hice.
Para aquellos que desinstalan la actualización y usan el comando anterior, deben hacer ambas cosas en ambas máquinas para que los enlaces funcionen correctamente. Solo pude hacerlo en la computadora que había usado originalmente para eliminar la duplicación de la carpeta. Ni siquiera estoy seguro de si tuve que realizar alguna de estas acciones para copiar los archivos a una unidad USB y que los enlaces se comportaran de manera que recuperara los archivos originales. En este punto, corregí el problema y no necesito continuar con la codificación que estaba haciendo.