En estos día me tocó migrar un servidor que funcionaba como fileserver, albergando gran cantidad de archivos y carpetas a las que un buen número de usuarios accedía mediante unidades de red. El viejo servidor era un Windows 2000 y el nuevo un 2003 Server.
Los archivos y las carpetas tenían permisos de seguridad de Windows de acuerdo a grupos de usuarios (dentro de un dominio construido con SAMBA + OpenLdap) y a usuarios particulares. A su vez también existían "permisos de compartir". No era viable copiar los archivos y ambos tipos de permisos para tal volumen de información.
Luego de investigar un buen rato, y probar un tiempo aún más largo, me han servido el comando XCOPY para copiar los archivos y sus permisos de seguridad de forma masiva, y la utilidad de línea de comandos PERMCOPY para copiar los "permisos de compartir".
Comando XCOPY
XCOPY es un comando de copia avanzada de archivos, con una buena cantidad de opciones. Lo he utilizado de la siguiente manera, ejecutándolo en el servidor origen:
XCOPY d: \\192.168.0.2\d$ /d /s /e /k /r /h /y /c /x
Donde
d: es la ubicación de los archivos en el servidor origen y \\192.168.0.2\d$ es la del servidor destino. Los parámetros usados son:
/d: copia los archivos que han cambiado desde una fecha. Si no se especifica fecha, copia los archivos del origen que son más nuevos que los del destino.
/s y /e: indican copiar todos los directorios y subdirectorios, aún los que están vacíos.
/k: mantiene el atributos de sólo lectura.
/r: incluye los archivos de sólo lectura en la copia.
/h: copia archivos con atributos oculto y archivo del sistema.
/y: evita preguntar para sobreescribir.
/c: pasa por alto errores.
/x: copia permisos de los archivos y configuraciones de auditoría.
Una cuestión a tener en cuenta es que xcopy no copia los permisos heredados, sólo permisos específicos de los archivos, por lo tanto puede haber diferencias si se está copiando un subdirectorio (ya que en el origen puede estar heredando y esos permisos no serán incluídos), por este motivo preferí copiar desde el raíz d: Además xcopy no agrega permisos, reemplaza directamente los permisos que tenga la carpeta en el destino, por los que corresponden en el origen.
Utilidad PERMCOPY
PERMCOPY es una herramienta del Kit de Recursos de Windows 2003 que copia los permisos de compartir. Para ello es necesario compartir el directorio manualmente en el destino antes de usar PERMCOPY. El siguiente es un ejemplo de utilización:
PERMCOPY \\192.168.0.1 UnidadCompartida \\192.168.0.2 UnidadCompartida
192.168.0.1 es la ip del origen, el segundo parámetro es la carpeta compartida en el origen, 192.168.0.2 es la ip del destino, y el último es la carpeta compartida en el destino.
Luego utilicé la dirección la dirección ip del servidor viejo para el nuevo servidor. A pesar de esto, se hace necesario remapear las unidades de red en los puestos de los usuarios. Para ello distribuí el siguiente script:
net use u: /delete
net use u: \\192.168.0.1\UnidadCompartida /PERSISTENT:YES
La primera línea libera la unidad de red "vieja" y la segunda conecta la nueva unidad con el parámetro PERSISTENT:YES para que la mantenga al reiniciar.
Tanto XCOPY como el comando NET incluyen otros parámetros. Algunos links interesantes son:
Herramientas del kit de recursos de Windows Server 2003
Comando XCOPY
Ejemplo de PERMCOPY (aquí se utiliza SCOPY en lugar de XCOPY. SCOPY ha sido reemplazado por XCOPY).
No hay comentarios:
Publicar un comentario