Get-PnPSearchCrawlLog Filter to a List or Library

How do you use the Get-PnpSearchCrawlLog cmdlet to check if the SharePoint crawler is indexing your site, list / library, folder, or item / file?

Before you begin, you’ll want to make sure you have access to the Crawl Log: https://yourSite-admin.sharepoint.com/_layouts/15/searchadmin/crawllogreadpermission.aspx

Connect-PnPOnline -Url "https://sharepointed.sharepoint.com/sites/food" -interactive

$logs = Get-PnPSearchCrawlLog  -filter "https://sharepointed.sharepoint.com/sites/food/Lists/tacos/" -RawFormat

foreach($l in $logs)
{
    Write-Host "    "
    Write-Host $l.Url
    Write-Host $l.ItemId
    Write-Host $l.LogLevel
    Write-Host $l.CrawlTime
}

Get-PnPSearchCrawlLog details: https://docs.microsoft.com/en-us/powershell/module/sharepoint-pnp/get-pnpsearchcrawllog

Other examples:

#get all items crawled in the Shared Documents library
Get-PnPSearchCrawlLog  -filter "https://sharepointed.sharepoint.com/sites/TestSite/Shared Documents/" -RawFormat

#get items in  Folder A
Get-PnPSearchCrawlLog  -filter "https://sharepointed.sharepoint.com/sites/TestSite/Shared Documents/Folder A/" -RawFormat

#check if a single file is indexed
Get-PnPSearchCrawlLog  -filter "https://sharepointed.sharepoint.com/sites/TestSite/Shared Documents/Folder A/test.txt" -RawFormat

#get everything crawled in the past 30 days for a target site
Get-PnPSearchCrawlLog  -filter "https://sharepointed.sharepoint.com/sites/TestSite/" -StartDate (Get-Date).AddDays(-30) -RawFormat

If you receive this error:
Get-PnPSearchCrawlLog: The current connection holds no SharePoint context. Please use one of the Connect-PnPOnline commands which uses the -Url argument to connect.
This means you did not READ the second thing I mentioned at the top of this post. The account running the Get-PnpSearchCrawlLog command will need permission to access the crawl log. You will need to access this site with an admin account or an account with enough permissions to get in trouble:

https://yourSITE-admin.sharepoint.com/_layouts/15/searchadmin/crawllogreadpermission.aspx

Replace yourSite with your tenant’s name.

System.MissingMethodException: Method not found Connect-PnPOnline

Using Visual Studio Code and SharePoint PNP I was trying to make some updates to a list but I wasn’t able to connect to a site.

Connect-PnPOnline -Url "https://taco.sharepoint.com/" -Credentials $creds

Error I was receiving:
System.MissingMethodException: Method not found: ‘System.Runtime.Remoting.ObjectHandle System.Activator.CreateInstance(System.String, System.String)’. at SharePointPnP.PowerShell.Commands.Base.ConnectOnline.ProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord()

I tried uninstalling VScode, removed all traces of SharePoint from my laptop, and cleared the GAC. Nothing worked.

Here is what did work:
In VScode:

  1. Open the Command Palette on Windows or Linux with Ctrl+Shift+P. On macOS, use Cmd+Shift+P.
  2. Search for Session.
  3. Click on PowerShell: Show Session Menu.
  4. Choose one of the ___ (x86) options

Not sure how, but I was using an x64 session and SharePoint PNP clearly didn’t like that.

Edit: Updated VScode to the latest version and it managed to reset my session settings. When this happened, it caused my CSOM scripts to report a The remote server returned an error: (400) Bad Request error. The fix above will resolve the error.