¡Buenos días y bienvenidos al blog de Ncora de nuevo!

Esta vez voy a hablar sobre SharePoint y PowerShell, si hacemos un poco de memoria, hace unos meses publicamos un post sobre cómo mover documentos en SharePoint utilizando algunas opciones.

Como pudimos ver hay opciones muy útiles, pero siempre nos puede faltar un poco la «personalización» que deseamos. Esto lo podemos suplir mediante la PowerShell de SharePoint.

Vamos a ir poco a poco hasta llegar a poder mover documentos (y sus propiedades) de manera automática y rápida.

Lo primero que vamos a hacer es comprobar si podemos ejecutar scripts en la consola, para ello ejecutaremos la PowerShell de SharePoint y lanzamos el siguiente comando:

politica_scriptspowershell

Como podemos ver en la imagen superior, nuestra política nos permite ejecutar cualquier script. En nuestro caso, no hace falta que modifiquemos la política de ejecución. Os adjunto el siguiente enlace donde podemos ver las opciones disponibles de restricciones que tenemos.

Políticas 

A continuación, el primer paso es «abrir» el sitio SharePoint donde se encuentra la biblioteca de documentos que queremos mover.

web

Como podemos observar, definimos una variable que llamamos $web, la cual contendrá la información y propiedades del sitio. Algunas de estas propiedades son:

propiedades

Aquí podemos encontrar un listado completo.

Ahora vamos a ver que tenemos en la biblioteca de documentos…

contenido

Como podemos ver hay un campo Departamento, en el cual hay varios valores, nos vamos a centrar en RRHH, vamos a mover el documento de este Dpto a su biblioteca correspondiente. Para ello, vamos a utilizar las propiedades de SPFile.

Dentro de las propiedades que nos podemos encontrar, podemos consultar, la url, titulo, tamaño, versión, si está protegido, incluso podemos ver los valores de las columnas personalizadas que estamos utilizando en la biblioteca, aquí encontraremos más información.

Biblioteca Origen = Documentación

Biblioteca destino = RRHH

original

destino

Ahora cogemos cualquiera de los ficheros que hay en la colección y comprobamos a que departamento pertenece. (Para comprobar todos, podemos montarnos un bucle utilizando el número de ficheros totales).

dpto

Casualmente es el Dpto RRHH 🙂 así que vamos a moverlo a su biblioteca correspondiente. Para ello, preparamos la ruta destino…

url_dest

Y finalmente ejecutamos la función para mover el documento:

movemos

Ahora vamos a la biblioteca RRHH y comprobamos que se haya movido el documento y con sus propiedades.

comprobar_movimiento

Me gustaría añadir que se pueden hacer muchas más acciones desde la consola de PowerShell, borrar documento, modificar el valor de un campo, copiar el fichero etc… En este enlace podremos ver las funcionalidades ya implementadas y disponibles para su uso.

Espero que os haya gustado el post y hayáis conocido un poco más PowerShell, una herramienta que es muy potente y se pueden hacer multitud de cosas. En próximos posts iremos viendo alguno de los scripts que utilizo.

¡¡Saludos y hasta la próxima!!

PD: Os dejo el código tipo para que podáis utilizarlo y adaptarlo a vuestras necesidades. 

$web = get-spweb «https://portalsharepoint»;

$original = $web.getfolder(«Documentacion»);

$colfiles = $original.files;

$num = $colfiles.count;

$num;

$destino = $web.getfolder(«RRHH»);

$i = 0;

while ($i – lt $num) {

    $file = $colfiles[$i];

    $dpto = $file.properties.Departamento;

    if ($dpto – eq «RRHH») {

        $url_dest = $web.url + «/» + $destino.url + «/»;

        $file.MoveTo($url_dest + $file.Name);

        $num–;

    } 

telse {

        $i++;

    }

}

$web.Dispose();

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Post Relacionados: