SharePoint Online: PowerShell to Update List View

Requirement: Update List View in SharePoint Online using PowerShell

PowerShell to Update  SharePoint Online List View

SharePoint Online: PowerShell to Update List View

Let’s apply a filter to “Active Projects” view to get all projects with “Project Status” field value as “Active”

#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"

#Function to Update List View in SharePoint Online
Function Update-SPOListView($SiteURL, $ListName, $ViewName, $ViewQuery)
    Try { 
        #Get Credentials to connect
        $Cred= Get-Credential
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
        #Get the List

        #Get the view to update
        $View = $List.Views.GetByTitle($ViewName)
        If($View -ne $NULL)  
            #Update the View Query
            $View.ViewQuery = $ViewQuery
            Write-host "View Updated Successfully!" -f Green
            Write-host "View '$ViewName' doesn't exist in the List!"  -f Yellow
    Catch {
        write-host -f Red "Error:" $_.Exception.Message

#Set parameter values
$SiteURL = ""
$ListName ="Projects"
$ViewName="Active Projects"
$ViewQuery ="<Where><Eq><FieldRef Name = 'ProjectStatus' /><Value Type ='Choice'>Active</Value></Eq></Where>"

#Call the function
Update-SPOListView -SiteURL $SiteURL -ListName $ListName -ViewName $ViewName -ViewQuery $ViewQuery 

Update View in SharePoint Online using PnP PowerShell

#Config Variables
$SiteURL = ""
$ListName ="Projects"
$ViewName="Active Projects"
$ViewQuery ="<Where><Eq><FieldRef Name = 'ProjectStatus' /><Value Type ='Choice'>Active</Value></Eq></Where>"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get the Client Context
$Context = Get-PnPContext
#Get the List View
$View = Get-PnPView -Identity $ViewName -List $ListName
#Update the view Query
$View.ViewQuery = $ViewQuery

PnP PowerShell to Set View Type to “Tiles” in SharePoint Online

Here is another example of updating view settings in SharePoint Online.

$SiteURL = ""
$ListName = "Branding"
$ViewName= "All Documents" 

#Connect to the Site
Connect-PnPOnline -URL $SiteURL -UseWebLogin

#Set View Properties
Set-PnPView -List $ListName -Identity $ViewName -Values @{"ViewType2" = "TILES"} 

What other properties can be updated through PowerShell?

  1. Aggregations
  2. AggregationsStatus
  3. ColumnWidth
  4. ContentTypeId
  5. CustomFormatter
  6. DefaultView
  7. DefaultViewForContentType
  8. EditorModified
  9. Formats
  10. Hidden
  11. IncludeRootFolder
  12. JSLink
  13. ListViewXml
  14. Method
  15. MobileDefaultView
  16. MobileView
  17. NewDocumentTemplates
  18. ObjectVersion
  19. Paged
  20. RowLimit
  21. Scope
  22. TabularView
  23. Tag
  24. Title
  25. Toolbar
  26. ViewData
  27. ViewJoins
  28. ViewProjectedFields
  29. ViewQuery
  30. VisualizationInfo

Related posts:

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

Leave a Reply