Forum Discussion
elaheh
May 19, 2020Brass Contributor
How to add column to view in all SharePoint sites
Hi, Is there any way or PowerShell script to add column synchronicity to view in SharePoint on all existing SharePoint sites? I have implemented AIP, and I would like to add ‘Sensitivity’ column in ...
Christophe Humbert
May 28, 2020Iron Contributor
With a bit of help from Veronique Lengelle
#Connect to site
Connect-PnPOnline -Url https://TENANTNAME.sharepoint.com/sites/SITENAME -UseWebLogin
$docLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false}
foreach($docLib in $docLibraries){
$defaultViewInDocLib = Get-PnPView -List $docLib | Where-Object { $_.DefaultView -eq $true}
if ($defaultViewInDocLib){
#Should Get existing Fieds
$Fields= $defaultViewInDocLib.ViewFields
#Add Sensitivity Field in the list
$Fields += "Sensitivity"
#Set View
Set-PnPView -List $docLib -Identity $defaultViewInDocLib.Title -Fields $Fields
}
}
elaheh
May 29, 2020Brass Contributor
Thanks a lot Christophe Humbert
btw, it seems it apply for only one site, while i need to do for all sites.
https://TENANTNAME.sharepoint.com/sites/SITENAME
- Christophe HumbertMay 29, 2020Iron Contributor
Yeap but you can do for all sites ...
You just have to enumerate all sites and do an ForEach...
- Christophe HumbertJun 11, 2020Iron Contributor
Hello
As I am very genereous
Function AddSensivityToDefaultView($URL) { Try { Connect-PnPOnline -Url $URL -UseWebLogin -ErrorAction Stop } Catch { write-host "Error: $($_.Exception.Message) $($defaultViewInDocLib.Title )" -foregroundcolor Red } Write-Host "I am in site $($URL)" $docLibraries = Get-PnPList | Where-Object {$_.BaseTemplate -eq 101 -and $_.Hidden -eq $false} foreach($docLib in $docLibraries){ $defaultViewInDocLib = Get-PnPView -List $docLib | Where-Object { $_.DefaultView -eq $true} if ($defaultViewInDocLib){ #Should Get existing Fields $Fields= $defaultViewInDocLib.ViewFields #Add Sensitivity Field in the list only if not already exists If ($Fields -notcontains "_DisplayName") { $Fields += "Sensitivity" #Set View Try { Set-PnPView -List $docLib -Identity $defaultViewInDocLib.Title -Fields $Fields -ErrorAction Stop } Catch { write-host "Error: $($_.Exception.Message) $($defaultViewInDocLib.Title )" -foregroundcolor Red } } else { Write-Host "Already there in $($defaultViewInDocLib.Title)" } } } } $OrgName = "YOURORG" Connect-PnPOnline -Url https://$OrgName-admin.sharepoint.com/ -UseWebLogin $Sites = Get-PnPTenantSite Foreach ($Site in $Sites){ if($Site.Url -ne "https://$OrgName-my.sharepoint.com/") { Try{ AddSensivityToDefaultView($Site.Url) -ErrorAction Stop } Catch { write-host "Error: $($_.Exception.Message)" -foregroundcolor Red } } }- BugdayOct 28, 2021Copper ContributorHi,
how to run this when not "site collection admin" on every site?
Thanks,
Daniel