En la entrada de hoy voy a explicaros como podéis recuperar elementos eliminados de la papelera de reciclaje de SharePoint Online mediante PowerShell. Esto os será muy útil ya que, como sabréis, la papelera de reciclaje que incluye SharePoint Online, a día de hoy, ofrece muy pocas opciones para filtrar los resultados y cuando tratamos de recuperar una cantidad de información considerable muchas veces el proceso se convierte en una autentica pesadilla 🙁
Instalación de los prerequisitos
Lo primero que haremos será instalar el siguiente módulo para poder conectar con nuestra instancia de SharePoint Online. Para ello abriremos una consola de PowerShell con privilegios de administrador y ejecutaremos el siguiente comando:
Install-Module SharePointPnPPowerShellOnline
Seleccionar los elementos a recuperar
Recuperar elementos eliminados a partir de una fecha
En este ejemplo vamos a buscar los elementos eliminados desde el día de ayer, es decir, los eliminados ayer y hoy (si queréis ir más atrás debéis modificar el número que se encuentra dentro de la opción AddDays(-1)), de un sitio concreto de SharePoint (el que designemos a la hora de conectar con el comando Connect-PnPOnline) y de un usuario en concreto (modificar el parámetro [email protected]).
Modificados los datos para adaptarlos a vuestras necesidades, ejecutamos el script y nos aparecerá un listado con todos los elementos que se encuentran en la papelera de reciclaje y que cumplan con los parámetros definidos.
$hoy=(Get-Date) $fecharestauracion = $hoy.date.AddDays(-1) Connect-PnPOnline https://nombretenant.sharepoint.com/nombresitio Get-PnPRecycleBinItem -firststage | ? {($_.DeletedDate -gt $fecharestauracion) -and ($_.DeletedByEmail -eq '[email protected]')}
Recuperar elementos eliminados entre 2 fechas
Ahora os mostraré como obtener los elementos eliminados, con los mismos criterios aplicados del ejemplo anterior, pero en esa ocasión entre 2 fechas concretas. Vamos a recuperar los elementos eliminados en los últimos 3 días pero sin incluir los eliminados en el día de hoy.
$hoy=(Get-Date) $dia1 = $hoy.date.addDays(-1) $dia2 = $hoy.date.addDays(-3) Connect-PnPOnline https://nombretenant.sharepoint.com/nombresitio Get-PnPRecycleBinItem -firststage | ? {($_.DeletedDate -gt $dia2 -and $_.DeletedDate -lt $dia1) -and ($_.DeletedByEmail -eq '[email protected]')}
Exportar los elementos eliminados a un fichero CSV
Si queremos exportar los elementos eliminados a un fichero csv tendríamos que utilizar cualquiera de los scripts explicados anteriormente y añadir el comando Export-Csv tal y como os muestro en el siguiente ejemplo:
$hoy=(Get-Date) $fecharestauracion = $hoy.date.AddDays(-1) Connect-PnPOnline https://nombretenant.sharepoint.com/nombresitio Get-PnPRecycleBinItem -firststage | ? {($_.DeletedDate -gt $fecharestauracion) -and ($_.DeletedByEmail -eq '[email protected]')} | Export-Csv c:\temp\eliminados.csv
Recuperar los elementos eliminados
Por último, y una vez que tenemos claro como filtrar la información, para recuperar los elementos eliminados, simplemente utilizaremos cualquiera de los ejemplos explicados anteriormente, añadiremos el comando Restore-PnpRecycleBinItem, ejecutamos el script y podremos comprobar como empieza el proceso automático de recuperación el cual tardará más o menos en función del volumen del elementos a recuperar.
$hoy=(Get-Date) $fecharestauracion = $hoy.date.AddDays(-1) Connect-PnPOnline https://nombretenant.sharepoint.com/nombresitio Get-PnPRecycleBinItem -firststage | ? {($_.DeletedDate -gt $fecharestauracion) -and ($_.DeletedByEmail -eq '[email protected]')} | Restore-PnpRecycleBinItem -Force
Como siempre espero os haya sido de utilidad.
Entradas relacionadas
- Agregar información en el campo Teléfonos/Notas de un Usuario de Active Directory con PowerShell
- PowerShell: Como importar usuarios en Active Directory desde un fichero CSV
- Exchange: Mostrar y ocultar contactos, usuarios y grupos de la libreta de direcciones GAL en Office 365 mediante PowerShell
- PowerShell: Como obtener los miembros de los grupos de distribución existentes en Office 365
- PowerShell: Notificación por correo electrónico a los usuarios del tiempo restante hasta la caducidad de su contraseña de dominio
- PowerShell: Como exportar a Excel usuarios de Active Directory
- Obtener información de certificados en Windows conociendo sólo su huella digital (thumbprint) mediante Powershell
- Gestión de servicios de Windows con Powershell
- Como eliminar archivos con una antigüedad mayor a X días mediante PowerShell
- Obtener los grupos a los que pertenece un usuario de Active Directory mediante PowerShell
- Como copiar los miembros de un grupo de Active Directory a otro
- Importar Contactos a Active Directory desde un CSV
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.