SharePoint Online: Get All Items Created or Modified by a Specific User
Requirement: Find All List Items Created or Modified by a Specific User
PowerShell to Get All Files Created or Modified by a Particular User
PnP PowerShell to Get All Files Created by a Particular user from a SharePoint Online Library
PowerShell to Get All Files Created or Modified by a Particular User
#Load SharePoint CSOM Assemblies Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" #Set Variables $SiteURL = "https://crescent.sharepoint.com/sites/marketing" $ListName = "Team Documents" $UserAccount = "[email protected]" $CSVPath = "C:\Temp\UserData.csv" #Get Credentials to connect $Cred= Get-Credential $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password) #Setup the context $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Ctx.Credentials = $Credentials #Resolve User account $User = $Ctx.web.EnsureUser($UserAccount) $Ctx.Load($User) $Ctx.ExecuteQuery() #Get the List $List=$Ctx.Web.Lists.GetByTitle($ListName) $Ctx.Load($List) $Ctx.ExecuteQuery() #Define CAML Query to filter items created or modified by a specific user $Query = New-Object Microsoft.SharePoint.Client.CamlQuery $Query.ViewXml ="@ <View Scope='RecursiveAll'> <Query> <OrderBy><FieldRef Name='Created' Ascending='FALSE'/></OrderBy> <Where> <Or> <Eq> <FieldRef Name='Author' LookupId='TRUE'/><Value Type='User'>$($user.Id)</Value> </Eq> <Eq> <FieldRef Name='Editor' LookupId='TRUE' /><Value Type='User'>$($user.Id)</Value> </Eq> </Or> </Where> </Query> </View>" #Get List Items matching CAML Query $ListItems = $List.GetItems($Query) $Ctx.Load($ListItems) $Ctx.ExecuteQuery() Write-host "Total Number of List Items Found:"$ListItems.count $DataCollection = @() #Iterate through each item ForEach($ListItem in $ListItems) { #Collect data $Data = New-Object PSObject -Property ([Ordered] @{ Name = $ListItem.FieldValues.FileLeafRef RelativeURL = $ListItem.FieldValues.FileRef CreatedBy = $ListItem.FieldValues.Author.Email CreatedOn = $ListItem.FieldValues.Created ModifiedBy = $ListItem.FieldValues.Editor.Email ModifiedOn = $ListItem.FieldValues.Modified FileSize = $ListItem.FieldValues.File_x0020_Size }) $DataCollection += $Data } $DataCollection #Export data to CSV File $DataCollection | Export-Csv -Path $CSVPath -NoTypeInformation
PnP PowerShell to Get All Files Created by a Particular user from a SharePoint Online Library
#Parameters $SiteURL = "https://crescent.sharepoint.com/sites/Marketing" $ListName = "Documents" $AuthorEmail = "[email protected]" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -UseWebLogin #Get all files created by a particular user from the Library $ListItems = Get-PnPListItem -List $Listname -PageSize 2000 | where {$_.FieldValues.Author.Email -eq $AuthorEmail -and $_.FileSystemObjectType -eq "File"} $Resultset = @() #Collect documents data $ListItems | ForEach-Object { $Resultset += New-Object PSObject -Property ([Ordered] @{ Name = $_.FieldValues.FileLeafRef RelativeURL = $_.FieldValues.FileRef CreatedBy = $_.FieldValues.Author.Email CreatedOn = $_.FieldValues.Created ModifiedBy = $_.FieldValues.Editor.Email ModifiedOn = $_.FieldValues.Modified FileSizeInKB = $_.FieldValues.File_x0020_Size }) } #Get Result set $Resultset
Could you please post the script to get all files created by a particular user from a document library?
ReplyDeleteUse: $ListItems = Get-PnPListItem -List $Listname -PageSize 2000 | where {$_.FieldValues.Author.Email -eq $AuthorEmail -and $_.FileSystemObjectType -eq "File"}
Delete