Ir al contenido principal

Get SharePoint List Inventory using PowerShell

FUENTE: http://mstechtalk.com/get-sharepoint-list-inventory-using-powershell/ 

PowerShell scripts are very useful to generate some amazing reports, recently I have written a PowerShell script which retrieves all lists and libraries for a SharePoint site collection under all sub sites with item count and versioning enabled.
This is a report which can be very useful when you are going to the delta/cutover migration and you can get the details for list and libraries recently modified and also item count.
Use this report to compare list count including item count in each list for different sites (useful in migrations).
You can download the script directly from GitHub repository.
Include the reference SharePoint PowerShell.
if ((Get-PSSnapin “Microsoft.SharePoint.PowerShell” -ErrorAction SilentlyContinue) -eq $null)
{
Add-PSSnapin “Microsoft.SharePoint.PowerShell”
}
I am going to create a function name “GetListInventory” which will take one site Url as parameter.
function GetListInventory($siteUrl)
{
$webApp = Get-SPWebApplication $siteUrl
$SiteDetail = @();
Foreach ($web in $webApp | Get-SPSite -Limit All | Get-SPWeb -Limit All)
{
Write-host “Processing site $web.Name…”
foreach($list in $web.lists)
{
$row = new-object PSObject
Add-member -inputObject $row -memberType NoteProperty -Name “Site Name” -value $web.Name
Add-member -inputObject $row -memberType NoteProperty -Name “URL” -value $web.Url
Add-member -inputObject $row -memberType NoteProperty -Name “List Title” -value $List.Title
Add-member -inputObject $row -memberType NoteProperty -Name “List Item Count” -value $list.Items.Count
Add-member -inputObject $row -memberType NoteProperty -Name “Last Modified Date” -value $List.LastItemModifiedDate
if ($list.EnableVersioning -eq $TRUE)
{
Add-member -inputObject $row -memberType NoteProperty -Name “Versioning” -value “Yes”
}else
{
Add-member -inputObject $row -memberType NoteProperty -Name “Versioning” -value “No”
}
$SiteDetail += $row;
}
}
$SiteDetail
}
I have used list.Items.Count property instead of Lites.ItemCount.
Now you have compiled the above script, call the function to generate the list inventory. You can either print output on Out-GridViewor in a CSV file using Out-File.
GetListInventory “http://SP2016Farm” | Out-GridView

In above report, you can see the Site title, site URL, List name, no. of items, Last Modified Date and versioning which will be yes if enabled
But it will be very useful if you copy the content from above report into excel or generate a csv report will using Out-file:
GetListInventory “http://SP2016Farm” |  Out-File “E:\Reports\ListInventory.csv”

Using excel you  can apply different sorting orders and filters in excel like to get the list with maximum no. of items, latest or lest modified list, lists with versioning enabled or for any specific site. These types of filters are quite easy in excel. Instead of applying these filters in PowerShell, generate lists inventory like this and then perform different actions on it.
Important: I have tested this script in SharePoint 2010, SharePoint 2013 and SharePoint 2016.

Comentarios

Entradas populares de este blog

Get SharePoint Online Site and SubSites permission using PowerShell

The below PowerShell script retrieves the following for the given SharePoint Online Site All the Sub-site's URL Security group attached with each Sub-site with their permission level Prerequisites: This PowerShell script uses the latest version of SharePoint Online PnP Module. Download the installer from https://github.com/SharePoint/PnP-PowerShell/releases  Install-Module SharePointPnPPowerShellOnline  Install-Module - Name ' SharePointPnP.PowerShell.Commands.Files.Recurse ' function  connect - site( $webs , $creds ){    Connect - PNPonline  - Url  $webs   - Credentials  $cred     }    function  get - sitepermission( $web , $cred ){    $rec =@()    connect - site  - webs  $web   - creds  $cred     if ( $web   - eq  $parentsitename )  {  #Write-Host "Parent site permission" $web   $Pgroups =Get - PNPGroup  foreach ( $Pgroup   in   $Pgroups )  {  $DLGP  =  ""   |   Select   "SiteUrl" , "GroupName" , "Permiss

Find and Delete Orphaned Users in SharePoint

Fuente: http://www.sharepointdiary.com/2012/09/find-and-delete-orphaned-users-in-sharepoint.html Orphaned User? Who are they? Orphaned users are those who have been disabled/removed from Active Directory, but still have permissions to sites, lists and items. Internally, SharePoint keeps them in " UserInfo " table of the content database for meta-data such as created/modified by fields. Its unavoidable in any organization where employees constantly on-boarding and off-boarding. Its really difficult to manage, when it comes to thousands of sub-sites, sites, libraries and lists with their own sets of permissions. Why we care about Orphaned users? It is a best practice to delete orphaned users to keep the farm clean & organized. Also this will solve the problem of deleted active directory users still appearing on the people picker which was discussed here  People Picker not showing users from Active Directory? . If you know the user base or criteria then you can use: Clea

Conexión desde casa a una VPN sin perder salida a internet

Solución, asumiendo que estas en Windows: Panel de Control, Conexiones de Red. Clic derecho en la VPN, dale a propiedades. Anda a la pestaña de "Funciones de Red" y selecciona Protocolo Internet TCP/IP y clic en el botón "Propiedades". Ahora hazle clic al botón "Opciones Avanzadas..."En la pestaña "General", desmarca la opción que dice "Usar la puerta de enlace predeterminada en la red remota". Dale a aceptar a todas las ventanitas de opción, y ahora conéctate a la VPN nuevamente. Con eso deberías entrar a la VPN sin perder la conexión local de tu red e internet.