viernes, 15 de julio de 2016

Como operar sobre un conjunto de items/ficheros filtrados con PowerShell

Últimamente estoy usando mucho más PowerShell que en el resto de mi vida profesional con SharePoint. Así que voy a empezar a escribir algunos de los scripts que siempre van bien tener a mano.

Uno de los usos que, personalmente más le suelo dar a PowerShell es la interacción sobre un grupo de elementos de una lista o biblioteca (por ejemplo, asignar un determinado permiso de seguridad a un grupo de ficheros que comparten una característica común (metadatos)).

Pero, ¿Cuál sería el script básico para obtener un grupo de elementos de una biblioteca/lista de SharePoint?

A continuación os dejo un código de ejemplo:

$webUrl = "La URL de tu site aquí"
$ListName = "El nombre de tu lista aquí"
$web = Get-SPWeb $webUrl
$list = $web.Lists[$ListName]
$items= $list.Items | where {($_['NombreCampo1'] -eq 'ValorDeseado1') -and ($_['NombreCampo2'] -eq 'ValorDeseado2') -and (($_['NombreCampo3'] -eq 'ValorDeseado3')-or ($_['NombreCampo3'] -eq 'ValorDeseado4'))}
foreach ($item in $items) {
    Write-Host ("-Realizando acciones para el ítem " + $item.ID) -ForegroundColor Yellow
}

A partir de aquí cada cual hará lo que tenga que hacer sobre cada uno de los elementos retornados. En el ejemplo tan solo escribe un mensaje con el ID del ítem en la consola, aunque en otros post compartiré cómo realizar algunas operaciones interesantes con esta base.

He puesto un ejemplo que utiliza un filtro donde contiene algún AND (-and), OR (-or) y EQUALS (-eq), para que se vea más o menos una sentencia con diversos valores, pero cada uno debería adecuar el filtro a sus propias necesidades, añadiendo o eliminando condicionantes.

Nada más por hoy, aunque en post posteriores voy a profundizar en el tema.

¡Un saludo!

No hay comentarios: