From 9105bedfaddad80ecab5538435440c1a007a20d9 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 29 Jan 2020 23:46:25 +0100 Subject: [PATCH 001/129] Update description.md --- .../description.md | 39 +++++-------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/description.md b/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/description.md index bc34af8c..eec2be23 100644 --- a/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/description.md +++ b/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/description.md @@ -1,29 +1,17 @@ A short Powershell script to allow management of content types for all SharePoint Online lists and libraries across all sites in a site collection - - -It is an equivalent of List>>List Settings>>Advanced>>Content types in Graphic User Interface (see screenshot) - - - - - - +It is an equivalent of **List**>>**List Settings**>>**Advanced**>>**Content types in Graphic User Interface** ([see screenshot](https://github.com/PowershellScripts/AllGalleryScriptsSamples/blob/develop/Content%20Types/Content%20Types%20Management%20Setting/Allow%20content%20type%20management%20for%20all%20lists%20in%20site%20collection/contentTypeManagement.png)) Applies to lists and libraries. - - -It requires installed SharePoint Online SDK +*It requires installed* [SharePoint Online SDK](www.microsoft.com/en-us/download/details.aspx?id=42038) You have to enter the list information before running the script: - - ```PowerShell # Paths to SDK. Please verify location on your computer. @@ -36,33 +24,26 @@ $AdminPassword="Pass" $Url="https://trialtrial123.sharepoint.com/sites/teamsitewithlists" $ContentTypesEnabled=$true ``` - - - - - -Please share your thoughts in the Q&A section! - - +### Please share your thoughts in the Q&A section! -Wiki article with detailed code description: +#### Wiki article with detailed code description: [SharePoint Online: Turn on support for multiple content types in a list or library using Powershell](http://social.technet.microsoft.com/wiki/contents/articles/30038.sharepoint-online-turn-on-support-for-multiple-content-types-in-a-list-or-library-using-powershell.aspx) -Related scripts -Set-SPOList properties (module) +#### Related scripts +[Set-SPOList properties (module)](https://gallery.technet.microsoft.com/office/Set-SPOList-properties-9d16f2ba) -Disable or enable attachments to list items using Powershell +[Disable or enable attachments to list items using Powershell](https://gallery.technet.microsoft.com/scriptcenter/Disable-or-enable-12cf3795) -Change search setting for all lists in a site using CSOM and Powershell +[Change search setting for all lists in a site using CSOM and Powershell](https://gallery.technet.microsoft.com/scriptcenter/Change-search-setting-for-8e842a48) -Allow content type management for all lists in a site using Powershell +[Allow content type management for all lists in a site using Powershell](https://gallery.technet.microsoft.com/scriptcenter/Allow-content-type-5bca5157) -Set content type management setting for SharePoint Online list using Powershell +[Set content type management setting for SharePoint Online list using Powershell](https://gallery.technet.microsoft.com/scriptcenter/Set-content-type-39ae4bce)

From 2539ee7de7ecef197c92ccd831bf88183bdc38aa Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 29 Jan 2020 23:47:12 +0100 Subject: [PATCH 002/129] Update description.md --- .../description.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content Types/Content Types Management Setting/Allow content type management for all lists in a site/description.md b/Content Types/Content Types Management Setting/Allow content type management for all lists in a site/description.md index a0d6f92d..fdc22124 100644 --- a/Content Types/Content Types Management Setting/Allow content type management for all lists in a site/description.md +++ b/Content Types/Content Types Management Setting/Allow content type management for all lists in a site/description.md @@ -22,9 +22,9 @@ $Url="https://trialtrial123.sharepoint.com/sites/teamsitewithlists" $ContentTypesEnabled=$true ``` -###Please share your thoughts in the Q&A section! +### Please share your thoughts in the Q&A section! -####Related scripts
+#### Related scripts
[Set direction of the reading order for a single list](https://gallery.technet.microsoft.com/office/Set-SPOList-properties-9d16f2ba) [Set-SPOList properties (module)](https://gallery.technet.microsoft.com/scriptcenter/Disable-or-enable-12cf3795) From 0f71c38dedec432b8b64503fddc0949bd0171f8e Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 29 Jan 2020 23:51:00 +0100 Subject: [PATCH 003/129] Update ContentTypeManagementSubsitesIncluded.ps1 --- .../ContentTypeManagementSubsitesIncluded.ps1 | 87 +++++++++---------- 1 file changed, 39 insertions(+), 48 deletions(-) diff --git a/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/ContentTypeManagementSubsitesIncluded.ps1 b/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/ContentTypeManagementSubsitesIncluded.ps1 index 9e762df4..71ad751b 100644 --- a/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/ContentTypeManagementSubsitesIncluded.ps1 +++ b/Content Types/Content Types Management Setting/Allow content type management for all lists in site collection/ContentTypeManagementSubsitesIncluded.ps1 @@ -3,61 +3,52 @@ # Created by Arleta Wanat, 2015 # -function Set-SPOListsContentTypesEnabled -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOListsContentTypesEnabled{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [bool]$ContentTypesEnabled -) - -$password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.ExecuteQuery() - -$Lists=$ctx.Web.Lists - $ctx.Load($ctx.Web) - $ctx.Load($ctx.Web.Webs) -$ctx.Load($Lists) -$ctx.ExecuteQuery() - -Foreach($ll in $Lists) -{ - $ll.ContentTypesEnabled = $ContentTypesEnabled - $ll.Update() - - - try - { - $ctx.ExecuteQuery() - Write-Host $ll.Title " Done" -ForegroundColor Green - } - - catch [Net.WebException] - { - - Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red - } + ) + + $password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.ExecuteQuery() + + $Lists=$ctx.Web.Lists + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.Load($Lists) + $ctx.ExecuteQuery() + + Foreach($ll in $Lists){ + $ll.ContentTypesEnabled = $ContentTypesEnabled + $ll.Update() + + try{ + $ctx.ExecuteQuery() + Write-Host $ll.Title " Done" -ForegroundColor Green + } + catch [Net.WebException]{ + Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red + } + } + + if($ctx.Web.Webs.Count -gt 0){ + Write-Host "--"-ForegroundColor DarkGreen + + for($i=0;$i -lt $ctx.Web.Webs.Count ;$i++){ + Set-SPOListsContentTypesEnabled -Username $Username -Url $ctx.Web.Webs[$i].Url -AdminPassword $AdminPassword -ContentTypesEnabled $ContentTypesEnabled + } + } } -if($ctx.Web.Webs.Count -gt 0) - { - Write-Host "--"-ForegroundColor DarkGreen - for($i=0;$i -lt $ctx.Web.Webs.Count ;$i++) - { - Set-SPOListsContentTypesEnabled -Username $Username -Url $ctx.Web.Webs[$i].Url -AdminPassword $AdminPassword -ContentTypesEnabled $ContentTypesEnabled - } - } - -} - @@ -80,4 +71,4 @@ $ContentTypesEnabled=$true -Set-SPOListsContentTypesEnabled -Username $Username -AdminPassword $AdminPassword -Url $Url -ContentTypesEnabled $ContentTypesEnabled \ No newline at end of file +Set-SPOListsContentTypesEnabled -Username $Username -AdminPassword $AdminPassword -Url $Url -ContentTypesEnabled $ContentTypesEnabled From 85cd2de4827115154e21c3bba4ca4d189f65ab04 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 00:11:52 +0100 Subject: [PATCH 004/129] Update ListContentTypes.ps1 --- .../ListContentTypes.ps1 | 65 ++++++++----------- 1 file changed, 26 insertions(+), 39 deletions(-) diff --git a/Content Types/Content Types Management Setting/Set content type management setting for a single list/ListContentTypes.ps1 b/Content Types/Content Types Management Setting/Set content type management setting for a single list/ListContentTypes.ps1 index db6603cf..a18ba4af 100644 --- a/Content Types/Content Types Management Setting/Set content type management setting for a single list/ListContentTypes.ps1 +++ b/Content Types/Content Types Management Setting/Set content type management setting for a single list/ListContentTypes.ps1 @@ -3,58 +3,45 @@ # Created by Arleta Wanat, 2015 # -function Set-SPOList -{ -param ( - [Parameter(Mandatory=$true,Position=0)] +function Set-SPOList{ + param( + [Parameter(Mandatory=$true,Position=0)] [string]$ListName, - [Parameter(Mandatory=$true,Position=1)] + [Parameter(Mandatory=$true,Position=1)] [bool]$ContentTypesEnabled - ) + ) -$ll=$ctx.Web.Lists.GetByTitle($ListName) + $ll=$ctx.Web.Lists.GetByTitle($ListName) -$ll.ContentTypesEnabled = $ContentTypesEnabled - $ll.Update() - - try - { - $ctx.ExecuteQuery() - Write-Host "Done" -ForegroundColor Green - } - - catch [Net.WebException] - { - - Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red - } - + $ll.ContentTypesEnabled = $ContentTypesEnabled + $ll.Update() + try{ + $ctx.ExecuteQuery() + Write-Host "Done" -ForegroundColor Green + } + catch [Net.WebException]{ + Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red + } } - - - -function Connect-SPOCSOM -{ - param ( - [Parameter(Mandatory=$true,Position=1)] +function Connect-SPOCSOM{ + param( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$AdminPassword, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] [string]$Url -) + ) - -$password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.ExecuteQuery() -$global:ctx=$ctx + $password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.ExecuteQuery() + $global:ctx=$ctx } - $global:ctx @@ -77,4 +64,4 @@ $ContentTypesEnabled =$false Connect-SPOCSOM -Username $Username -AdminPassword $AdminPassword -Url $Url -Set-SPOList -ListName $ListName -ContentTypesEnabled $ContentTypesEnabled \ No newline at end of file +Set-SPOList -ListName $ListName -ContentTypesEnabled $ContentTypesEnabled From 480c48a1415d16797276a4e6d9b0717dd7786618 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 00:48:17 +0100 Subject: [PATCH 005/129] Update description.md --- .../description.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Content Types/Create/Add Content Type to Lists with Workflows/description.md b/Content Types/Create/Add Content Type to Lists with Workflows/description.md index 29aee1dd..b97da707 100644 --- a/Content Types/Create/Add Content Type to Lists with Workflows/description.md +++ b/Content Types/Create/Add Content Type to Lists with Workflows/description.md @@ -9,11 +9,9 @@ http://social.technet.microsoft.com/wiki/contents/articles/31051.sharepoint-onli ### How to use? +1. Download and install [SharePoint Online SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42038). - -1. Download and install SharePoint Online SDK. - -2. Download the .ps1 file. +2. Download the *.ps1* file. 3. Open the file (you can do it also in NotePad) @@ -33,15 +31,14 @@ $Name="Name of the Content Type2" $ParentContentTypeID="0x01" $Group="List Content Types" ``` -a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths -b) Instead of "admin@tenant.onmicrosoft.com" enter you username -c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types -d) Fill in the properties of the content type. +a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths
+b) Instead of "admin@tenant.onmicrosoft.com" enter you username
+c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types
+d) Fill in the properties of the content type.
- 5. Run the script in Powershell (any module). -6. When the script has executed, Powershell will show a message Content Type Name of the Content Type2 has been added to Title of the List. +6. When the script has executed, Powershell will show a message *Content Type Name of the Content Type2 has been added to Title of the List*.

Enjoy and please share feedback! From 8de4cd4f1c9c3acf49e6485d00e7a33782e28ab9 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 00:51:33 +0100 Subject: [PATCH 006/129] Update AddContentTypetoListsWithWorkflows.ps1 --- .../AddContentTypetoListsWithWorkflows.ps1 | 80 ++++++++----------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/Content Types/Create/Add Content Type to Lists with Workflows/AddContentTypetoListsWithWorkflows.ps1 b/Content Types/Create/Add Content Type to Lists with Workflows/AddContentTypetoListsWithWorkflows.ps1 index 503a5f26..c3693164 100644 --- a/Content Types/Create/Add Content Type to Lists with Workflows/AddContentTypetoListsWithWorkflows.ps1 +++ b/Content Types/Create/Add Content Type to Lists with Workflows/AddContentTypetoListsWithWorkflows.ps1 @@ -1,61 +1,51 @@ -function New-SPOContentType -{ -param( -[Parameter(Mandatory=$true,Position=1)] +function New-SPOContentType{ + param( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url, -[Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$Description, -[Parameter(Mandatory=$true,Position=5)] + [Parameter(Mandatory=$true,Position=5)] [string]$Name, -[Parameter(Mandatory=$true,Position=6)] + [Parameter(Mandatory=$true,Position=6)] [string]$Group, -[Parameter(Mandatory=$true,Position=7)] + [Parameter(Mandatory=$true,Position=7)] [string]$ParentContentTypeID + ) - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.Load($ctx.Web.Lists) - $ctx.ExecuteQuery() + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.Load($ctx.Web.Lists) + $ctx.ExecuteQuery() - - $lci =New-Object Microsoft.SharePoint.Client.ContentTypeCreationInformation - $lci.Description=$Description - $lci.Name=$Name - #$lci.ID="0x0100aa862727aed04408b2599b25356e7000" - $lci.ParentContentType=$ctx.Web.ContentTypes.GetById($ParentContentTypeID) - $lci.Group=$Group - - foreach($ll in $ctx.Web.Lists) - { - $ctx.Load($ll.WorkflowAssociations) - $ctx.ExecuteQuery() + $lci =New-Object Microsoft.SharePoint.Client.ContentTypeCreationInformation + $lci.Description=$Description + $lci.Name=$Name + #$lci.ID="0x0100aa862727aed04408b2599b25356e7000" + $lci.ParentContentType=$ctx.Web.ContentTypes.GetById($ParentContentTypeID) + $lci.Group=$Group - if($ll.WorkflowAssociations.Count -gt 0) - { - $ContentType = $ll.ContentTypes.Add($lci) - $ctx.Load($contentType) - try - { - - $ctx.ExecuteQuery() - Write-Host "Adding content type " $Name " to " $ll.Title - } - catch [Net.WebException] - { - Write-Host $_.Exception.ToString() - } + foreach($ll in $ctx.Web.Lists){ + $ctx.Load($ll.WorkflowAssociations) + $ctx.ExecuteQuery() - - } - } + if($ll.WorkflowAssociations.Count -gt 0){ + $ContentType = $ll.ContentTypes.Add($lci) + $ctx.Load($contentType) + try{ + $ctx.ExecuteQuery() + Write-Host "Adding content type " $Name " to " $ll.Title + } + catch [Net.WebException]{ + Write-Host $_.Exception.ToString() + } + } + } } @@ -75,4 +65,4 @@ $Group="List Content Types" -New-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl -Description $Description -Name $Name -Group $Group -ParentContentTypeID $ParentContentTypeID \ No newline at end of file +New-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl -Description $Description -Name $Name -Group $Group -ParentContentTypeID $ParentContentTypeID From 9cff9b180eeb0241cddae98227c89bdb6da1faa6 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 00:55:16 +0100 Subject: [PATCH 007/129] Update description.md --- .../Add Content Type to Task Lists/description.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Content Types/Create/Add Content Type to Task Lists/description.md b/Content Types/Create/Add Content Type to Task Lists/description.md index 5b9a24e8..23db2c0a 100644 --- a/Content Types/Create/Add Content Type to Task Lists/description.md +++ b/Content Types/Create/Add Content Type to Task Lists/description.md @@ -11,9 +11,9 @@ http://social.technet.microsoft.com/wiki/contents/articles/31051.sharepoint-onli -1. Download and install SharePoint Online SDK. +1. Download and install [SharePoint Online SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42038). -2. Download the .ps1 file. +2. Download the *.ps1* file. 3. Open the file (you can do it also in NotePad) @@ -33,15 +33,14 @@ $Name="Name of the Content Type2" $ParentContentTypeID="0x01" $Group="List Content Types" ``` -a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths -b) Instead of "admin@tenant.onmicrosoft.com" enter you username -c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types -d) Fill in the properties of the content type. +a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths
+b) Instead of "admin@tenant.onmicrosoft.com" enter you username
+c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types
+d) Fill in the properties of the content type.
- 5. Run the script in Powershell (any module). -6. When the script has executed, Powershell will show a message Content Type Name of the Content Type2 has been added to Title of the List. +6. When the script has executed, Powershell will show a message *Content Type Name of the Content Type2 has been added to Title of the List*. From 673c8b664c891875aa708b2301b35299d32c4c84 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 18:08:19 +0100 Subject: [PATCH 008/129] Update description.md --- .../Create a content type/description.md | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/Content Types/Create/Create a content type/description.md b/Content Types/Create/Create a content type/description.md index b80d4a22..d07b7ff8 100644 --- a/Content Types/Create/Create a content type/description.md +++ b/Content Types/Create/Create a content type/description.md @@ -1,26 +1,14 @@ A short script to create a content type. -The script is fully described in an article here: - -http://social.technet.microsoft.com/wiki/contents/articles/31051.sharepoint-online-content-types-in-powershell.aspx - - - - - - - - - - +The script is fully described in an article [here](http://social.technet.microsoft.com/wiki/contents/articles/31051.sharepoint-online-content-types-in-powershell.aspx). ### How to use? -1. Download and install SharePoint Online SDK. +1. Download and install [SharePoint Online SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42038). -2. Download the .ps1 file. +2. Download the *.ps1* file. 3. Open the file (you can do it also in NotePad) @@ -40,14 +28,14 @@ $ParentContentTypeID="0x01" $Group="List Content Types" ``` -a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths -b) Instead of "admin@tenant.onmicrosoft.com" enter you username -c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types -d) Fill in the properties of the content type. +a) Find on your computer where SharePoint.Clitent.dll and SharePoint.Client.Runtime.dll libraries are located and insert the correct paths
+b) Instead of "admin@tenant.onmicrosoft.com" enter you username
+c) Instead of "https://tenant.sharepoint.com/sites/teamsitewithlibraries" enter the name of the site collection where you want to find the content types
+d) Fill in the properties of the content type.
5. Run the script in Powershell (any module). -6. When the script has executed, Powershell will show a message Content Type Name of the Content Type2 has been added to Url of the Site. +6. When the script has executed, Powershell will show a message *Content Type Name of the Content Type2 has been added to Url of the Site*. From c826a0dfc21b2789e84cd26494cab2ce25a0527d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 18:41:43 +0100 Subject: [PATCH 009/129] Update ModifyDisplayFormTemplateName.ps1 --- .../ModifyDisplayFormTemplateName.ps1 | 51 +++++++++---------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/Content Types/Display Forms/Modify the Display Form Template Name/ModifyDisplayFormTemplateName.ps1 b/Content Types/Display Forms/Modify the Display Form Template Name/ModifyDisplayFormTemplateName.ps1 index f8f61ca4..083555b7 100644 --- a/Content Types/Display Forms/Modify the Display Form Template Name/ModifyDisplayFormTemplateName.ps1 +++ b/Content Types/Display Forms/Modify the Display Form Template Name/ModifyDisplayFormTemplateName.ps1 @@ -1,34 +1,31 @@ -function Set-SPOContentType -{ - param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOContentType{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$ListTitle - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ll=$ctx.Web.Lists.GetByTitle($ListTitle) - $ctx.Load($ll) - $ctx.Load($ll.ContentTypes) - $ctx.ExecuteQuery() - - - foreach($cc in $ll.ContentTypes) - { - Write-Host $cc.DisplayFormTemplateName - $cc.DisplayFormTemplateName="DocumentLibraryForm" - $cc.Update($false) - $ctx.ExecuteQuery() - } - - $ctx.Dispose() - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.Load($ll.ContentTypes) + $ctx.ExecuteQuery() + + + foreach($cc in $ll.ContentTypes){ + Write-Host $cc.DisplayFormTemplateName + $cc.DisplayFormTemplateName="DocumentLibraryForm" + $cc.Update($false) + $ctx.ExecuteQuery() + } + + $ctx.Dispose() } From 4ffc545ddc13be5ca3ff27a7a88c3289023ad1e1 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 22:32:46 +0100 Subject: [PATCH 010/129] Update checkallcontenttypes.ps1 --- .../checkallcontenttypes.ps1 | 93 +++++++------------ 1 file changed, 34 insertions(+), 59 deletions(-) diff --git a/Content Types/Get/Find content types added to your lists/checkallcontenttypes.ps1 b/Content Types/Get/Find content types added to your lists/checkallcontenttypes.ps1 index ff953eda..d2803259 100644 --- a/Content Types/Get/Find content types added to your lists/checkallcontenttypes.ps1 +++ b/Content Types/Get/Find content types added to your lists/checkallcontenttypes.ps1 @@ -1,68 +1,43 @@  -function Get-SPOList -{ - - param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOList{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.ExecuteQuery() - - $ctx.Load($ctx.Web.Lists) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { - - $ctx.Load($ll.RootFolder) - $ctx.Load($ll.DefaultView) - $ctx.Load($ll.Views) - $ctx.Load($ll.WorkflowAssociations) - $ctx.Load($ll.ContentTypes) - - try - { - $ctx.ExecuteQuery() - } - catch - { - } - - - - - Write-Host $ll.Title -ForegroundColor Green - - foreach($cc in $ll.ContentTypes) - { - Write-Host $cc.Name - } - - - - - - - } - - - - } - - - - - - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.ExecuteQuery() + + $ctx.Load($ctx.Web.Lists) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + + foreach( $ll in $ctx.Web.Lists){ + $ctx.Load($ll.RootFolder) + $ctx.Load($ll.DefaultView) + $ctx.Load($ll.Views) + $ctx.Load($ll.WorkflowAssociations) + $ctx.Load($ll.ContentTypes) + + try{ + $ctx.ExecuteQuery() + } + catch{} + + Write-Host $ll.Title -ForegroundColor Green + + foreach($cc in $ll.ContentTypes){ + Write-Host $cc.Name + } + } +} # Paths to SDK. Please verify location on your computer. From 6ce02039c29a4faa7a54a2ad65b5d3f4b4d1143c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 22:43:42 +0100 Subject: [PATCH 011/129] Update ContentTypesWithoutPSObject.ps1 --- .../ContentTypesWithoutPSObject.ps1 | 109 +++++++----------- 1 file changed, 43 insertions(+), 66 deletions(-) diff --git a/Content Types/Get/Get All Detailed Properties of All Content Types/ContentTypesWithoutPSObject.ps1 b/Content Types/Get/Get All Detailed Properties of All Content Types/ContentTypesWithoutPSObject.ps1 index a21b170e..d8eea6bc 100644 --- a/Content Types/Get/Get All Detailed Properties of All Content Types/ContentTypesWithoutPSObject.ps1 +++ b/Content Types/Get/Get All Detailed Properties of All Content Types/ContentTypesWithoutPSObject.ps1 @@ -1,74 +1,51 @@  -function Get-SPOContentType -{ - - param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOContentType{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.ExecuteQuery() - - $ctx.Load($ctx.Web) - $ctx.Load($ctx.Web.ContentTypes) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $cc in $ctx.Web.ContentTypes) - { - - - $ctx.Load($cc) - $ctx.Load($cc.FieldLinks) - $ctx.Load($cc.Fields) - $ctx.Load($cc.WorkflowAssociations) - $ctx.ExecuteQuery() - $cc | Add-Member NoteProperty Web($url) - foreach($field in $cc.Fields) - { - $PropertyName="Field"+$field.ID - $cc | Add-Member NoteProperty $PropertyName($field.Title) - } - foreach($fieldlink in $cc.FieldLinks) - { - $PropertyName="Fieldlink"+$fieldlink.ID - $cc | Add-Member NoteProperty $PropertyName($fieldlink.Name) - } - foreach($workflow in $cc.WorkflowAssociations) - { - $PropertyName="Workflow"+$workflow.ID - $cc | Add-Member NoteProperty $PropertyName($workflow.Name) - } - Write-Output $cc - } - - - - - - - } - - - - - - - - - - - - - - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.ExecuteQuery() + + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.ContentTypes) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + + foreach( $cc in $ctx.Web.ContentTypes){ + $ctx.Load($cc) + $ctx.Load($cc.FieldLinks) + $ctx.Load($cc.Fields) + $ctx.Load($cc.WorkflowAssociations) + $ctx.ExecuteQuery() + $cc | Add-Member NoteProperty Web($url) + + foreach($field in $cc.Fields){ + $PropertyName="Field"+$field.ID + $cc | Add-Member NoteProperty $PropertyName($field.Title) + } + + foreach($fieldlink in $cc.FieldLinks){ + $PropertyName="Fieldlink"+$fieldlink.ID + $cc | Add-Member NoteProperty $PropertyName($fieldlink.Name) + } + + foreach($workflow in $cc.WorkflowAssociations){ + $PropertyName="Workflow"+$workflow.ID + $cc | Add-Member NoteProperty $PropertyName($workflow.Name) + } + + Write-Output $cc + } +} # Paths to SDK. Please verify location on your computer. @@ -82,4 +59,4 @@ $AdminUrl="https://tenant.sharepoint.com/sites/teamsitewithlibraries" -Get-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl \ No newline at end of file +Get-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl From 58b038b83926a864b45023753a9679ff14ac2c16 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 30 Jan 2020 22:59:43 +0100 Subject: [PATCH 012/129] Update GetContentTypeProperties.ps1 --- .../GetContentTypeProperties.ps1 | 204 ++++++++---------- 1 file changed, 86 insertions(+), 118 deletions(-) diff --git a/Content Types/Get/Get All Properties of All Content Types in All Lists (Detailed) across one site/GetContentTypeProperties.ps1 b/Content Types/Get/Get All Properties of All Content Types in All Lists (Detailed) across one site/GetContentTypeProperties.ps1 index 3cd8768f..33b0ee07 100644 --- a/Content Types/Get/Get All Properties of All Content Types in All Lists (Detailed) across one site/GetContentTypeProperties.ps1 +++ b/Content Types/Get/Get All Properties of All Content Types in All Lists (Detailed) across one site/GetContentTypeProperties.ps1 @@ -1,126 +1,94 @@  -function Get-SPOContentType -{ - - param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOContentType{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.ExecuteQuery() - - $ctx.Load($ctx.Web.Lists) - $ctx.Load($ctx.Web.Webs) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { - - $ctx.Load($ll.ContentTypes) - - try - { - $ctx.ExecuteQuery() - } - catch - { - } - - Write-Host $ll.Title - - - - - foreach($cc in $ll.ContentTypes) - { - $ctx.Load($cc) - $ctx.Load($cc.FieldLinks) - $ctx.Load($cc.Fields) - $ctx.Load($cc.WorkflowAssociations) - $ctx.ExecuteQuery() - $obj = New-Object PSObject - $obj | Add-Member NoteProperty Title($cc.Name) - $obj | Add-Member NoteProperty List($ll.Title) - $obj | Add-Member NoteProperty Web($url) - $obj | Add-Member NoteProperty Description($cc.Description) - $obj | Add-Member NoteProperty DisplayFormTemplateName($cc.DisplayFormTemplateName) - $obj | Add-Member NoteProperty DisplayFormUrl($cc.DisplayFormUrl) - $obj | Add-Member NoteProperty DocumentTemplate($cc.DocumentTemplate) - $obj | Add-Member NoteProperty DocumentTemplateUrl($cc.DocumentTemplateUrl) - $obj | Add-Member NoteProperty EditFormTemplateName($cc.EditFormTemplateName) - $obj | Add-Member NoteProperty EditFormUrl($cc.EditFormUrl) - - foreach($field in $cc.Fields) - { - $PropertyName="Field"+$field.ID - $obj | Add-Member NoteProperty $PropertyName($field.Title) - } - foreach($fieldlink in $cc.FieldLinks) - { - $PropertyName="Fieldlink"+$fieldlink.ID - $obj | Add-Member NoteProperty $PropertyName($fieldlink.Name) - } - - $obj | Add-Member NoteProperty Group($cc.Group) - $obj | Add-Member NoteProperty Hidden($cc.Hidden) - $obj | Add-Member NoteProperty ID($cc.ID) - $obj | Add-Member NoteProperty JSLink($cc.JSLink) - $obj | Add-Member NoteProperty NewFormTemplateName($cc.NewFormTemplateName) - $obj | Add-Member NoteProperty NewFormUrl($cc.NewFormUrl) - $obj | Add-Member NoteProperty Parent($cc.Parent) - $obj | Add-Member NoteProperty ReadOnly($cc.ReadOnly) - $obj | Add-Member NoteProperty SchemaXML($cc.SchemaXML) - $obj | Add-Member NoteProperty SchemaXmlWithResourceTokens($cc.SchemaXmlWithResourceTokens) - $obj | Add-Member NoteProperty Scope($cc.Scope) - $obj | Add-Member NoteProperty Sealed($cc.Sealed) - $obj | Add-Member NoteProperty ServerObjectIsNull($cc.ServerObjectIsNull) - $obj | Add-Member NoteProperty StringID($cc.StringID) - $obj | Add-Member NoteProperty Tag($cc.Tag) - $obj | Add-Member NoteProperty TypedObject($cc.TypedObject) - - foreach($workflow in $cc.WorkflowAssociations) - { - $PropertyName="Workflow"+$workflow.ID - $obj | Add-Member NoteProperty $PropertyName($workflow.Name) - } - - Write-Output $obj - } - - - - - - - } - - - - if($ctx.Web.Webs.Count -gt 0) - { - foreach ($web in $ctx.Web.Webs) - { - Get-SPOContentType -Username $Username -Url $web.Url -AdminPassword $AdminPassword - } - } - - - - } - - - - - - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.ExecuteQuery() + + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + foreach( $ll in $ctx.Web.Lists){ + $ctx.Load($ll.ContentTypes) + + try{ + $ctx.ExecuteQuery() + } + catch{} + + Write-Host $ll.Title + + foreach($cc in $ll.ContentTypes){ + $ctx.Load($cc) + $ctx.Load($cc.FieldLinks) + $ctx.Load($cc.Fields) + $ctx.Load($cc.WorkflowAssociations) + $ctx.ExecuteQuery() + $obj = New-Object PSObject + $obj | Add-Member NoteProperty Title($cc.Name) + $obj | Add-Member NoteProperty List($ll.Title) + $obj | Add-Member NoteProperty Web($url) + $obj | Add-Member NoteProperty Description($cc.Description) + $obj | Add-Member NoteProperty DisplayFormTemplateName($cc.DisplayFormTemplateName) + $obj | Add-Member NoteProperty DisplayFormUrl($cc.DisplayFormUrl) + $obj | Add-Member NoteProperty DocumentTemplate($cc.DocumentTemplate) + $obj | Add-Member NoteProperty DocumentTemplateUrl($cc.DocumentTemplateUrl) + $obj | Add-Member NoteProperty EditFormTemplateName($cc.EditFormTemplateName) + $obj | Add-Member NoteProperty EditFormUrl($cc.EditFormUrl) + + foreach($field in $cc.Fields){ + $PropertyName="Field"+$field.ID + $obj | Add-Member NoteProperty $PropertyName($field.Title) + } + + foreach($fieldlink in $cc.FieldLinks){ + $PropertyName="Fieldlink"+$fieldlink.ID + $obj | Add-Member NoteProperty $PropertyName($fieldlink.Name) + } + + $obj | Add-Member NoteProperty Group($cc.Group) + $obj | Add-Member NoteProperty Hidden($cc.Hidden) + $obj | Add-Member NoteProperty ID($cc.ID) + $obj | Add-Member NoteProperty JSLink($cc.JSLink) + $obj | Add-Member NoteProperty NewFormTemplateName($cc.NewFormTemplateName) + $obj | Add-Member NoteProperty NewFormUrl($cc.NewFormUrl) + $obj | Add-Member NoteProperty Parent($cc.Parent) + $obj | Add-Member NoteProperty ReadOnly($cc.ReadOnly) + $obj | Add-Member NoteProperty SchemaXML($cc.SchemaXML) + $obj | Add-Member NoteProperty SchemaXmlWithResourceTokens($cc.SchemaXmlWithResourceTokens) + $obj | Add-Member NoteProperty Scope($cc.Scope) + $obj | Add-Member NoteProperty Sealed($cc.Sealed) + $obj | Add-Member NoteProperty ServerObjectIsNull($cc.ServerObjectIsNull) + $obj | Add-Member NoteProperty StringID($cc.StringID) + $obj | Add-Member NoteProperty Tag($cc.Tag) + $obj | Add-Member NoteProperty TypedObject($cc.TypedObject) + + foreach($workflow in $cc.WorkflowAssociations){ + $PropertyName="Workflow"+$workflow.ID + $obj | Add-Member NoteProperty $PropertyName($workflow.Name) + } + + Write-Output $obj + } + } + + if($ctx.Web.Webs.Count -gt 0){ + foreach ($web in $ctx.Web.Webs){ + Get-SPOContentType -Username $Username -Url $web.Url -AdminPassword $AdminPassword + } + } +} # Paths to SDK. Please verify location on your computer. @@ -134,4 +102,4 @@ $AdminUrl="https://tenant.sharepoint.com/sites/teamsitewithlibraries" -Get-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl \ No newline at end of file +Get-SPOContentType -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl From b3bc53f7b9c36b4d3de5113e16e15a007d47da6c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 31 Jan 2020 00:30:13 +0100 Subject: [PATCH 013/129] Update GetCTNamesinAllLists.ps1 --- .../GetCTNamesinAllLists.ps1 | 74 +++++++------------ 1 file changed, 26 insertions(+), 48 deletions(-) diff --git a/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 b/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 index d5c99a27..8eef5e5a 100644 --- a/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 +++ b/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 @@ -1,64 +1,42 @@  -function Get-SPOList -{ - - param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOList{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url - ) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.ExecuteQuery() - - $ctx.Load($ctx.Web.Lists) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { + ) - $ctx.Load($ll.ContentTypes) + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.ExecuteQuery() - try - { - $ctx.ExecuteQuery() - } - catch - { - } + $ctx.Load($ctx.Web.Lists) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + foreach( $ll in $ctx.Web.Lists){ + $ctx.Load($ll.ContentTypes) - - - Write-Host $ll.Title -ForegroundColor Green - - foreach($cc in $ll.ContentTypes) - { - Write-Output $cc.Name - } + try{ + $ctx.ExecuteQuery() + } + catch{} - - + Write-Host $ll.Title -ForegroundColor Green - - - } - - - - } - - + foreach($cc in $ll.ContentTypes){ + Write-Output $cc.Name + } + } +} - - + # Paths to SDK. Please verify location on your computer. @@ -71,4 +49,4 @@ $AdminPassword=Read-Host -Prompt "Password" -AsSecureString $AdminUrl="https://tenant.sharepoint.com/sites/teamsitewithlibraries" -Get-SPOList -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl \ No newline at end of file +Get-SPOList -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl From 48c51aa69736a9ecb39e902d441490763c78d427 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 11 Feb 2020 13:24:38 +0200 Subject: [PATCH 014/129] Update GetCTNamesinAllLists.ps1 --- .../GetCTNamesinAllLists.ps1 | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 b/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 index 8eef5e5a..45c10140 100644 --- a/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 +++ b/Content Types/Get/Get Names of all content types added to your lists/GetCTNamesinAllLists.ps1 @@ -1,5 +1,3 @@ - - function Get-SPOList{ param ( [Parameter(Mandatory=$true,Position=1)] @@ -22,16 +20,17 @@ function Get-SPOList{ foreach( $ll in $ctx.Web.Lists){ $ctx.Load($ll.ContentTypes) - try{ - $ctx.ExecuteQuery() - } - catch{} + try{ + $ctx.ExecuteQuery() + } + catch{ + } Write-Host $ll.Title -ForegroundColor Green - foreach($cc in $ll.ContentTypes){ - Write-Output $cc.Name - } + foreach($cc in $ll.ContentTypes){ + Write-Output $cc.Name + } } } From 8288c04e8a0cd58945a14c0d5dde571c919125fe Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 17 Feb 2020 20:36:53 +0200 Subject: [PATCH 015/129] Create description.md --- .../description.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md diff --git a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md new file mode 100644 index 00000000..7433eab2 --- /dev/null +++ b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md @@ -0,0 +1,31 @@ +Short Powershell script that enables or disables a setting to send emails to OneDrive for Business owners when someone further shares the ODB owner's content with external users. + +It uses CSOM and requires SharePoint Online SDK. The script is part of and more explained in a Technet Wiki article: + +OneDrive for Business notification settings with Powershell + + + + + +### How to use? +Download and open the .ps1 file. +Add correct libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` Enter the correct url and admin login: + + +```PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$NotifyOwnersWhenItemsReshare=$true #Whether ODB owner should be notified the content is reshared with external users +``` + + Run the script From 9dbe9c3628e9921117705efbee17ebc10280df8d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 17 Feb 2020 20:37:14 +0200 Subject: [PATCH 016/129] Add files via upload --- .../NotifyOwnersWhenItemsReshared.ps1 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 diff --git a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 new file mode 100644 index 00000000..7db9720c --- /dev/null +++ b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 @@ -0,0 +1,48 @@ +function Set-SPOTenant +{ +param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password, + [Parameter(Mandatory=$true,Position=4)] + [Bool]$NotifyOwnersWhenItemsReshared + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.NotifyOwnersWhenItemsReshared=$NotifyOwnersWhenItemsReshared + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant + +} + + + + +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" + + + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$NotifyOwnersWhenItemsReshared=$true #Whether ODB owner should be notified the content is reshared with external users + + + + +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -NotifyOwnersWhenItemsReshared $NotifyOwnersWhenItemsReshared \ No newline at end of file From 29ee9e6b12bb1ece3f02edbeca91924c4cbfeb90 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 17 Feb 2020 20:38:16 +0200 Subject: [PATCH 017/129] Create description.md --- .../description.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md diff --git a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md new file mode 100644 index 00000000..92bd29fa --- /dev/null +++ b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md @@ -0,0 +1,39 @@ +Short Powershell script that hides Sync button in OneDrive for Business for all users. + + + +The script uses CSOM and requires SharePoint Online SDK. + + + +This button will be removed with the script: + + + + + + + +### How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` Enter the correct url, the setting for the sync button, and admin login. You will be additionally prompted for the password. Do not enter it in the file: + + +```PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$HideSyncButtonOnODB=$true #Whether the sync button should be hidden +``` + + + Run the script + From 4f47b88187968eb544ea4e0cfa83938e7943ac27 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 17 Feb 2020 20:40:04 +0200 Subject: [PATCH 018/129] Add files via upload --- .../HideSyncButtonOnODB.ps1 | 48 ++++++++++++++++++ .../ODBAccessRequests.222ENG.PNG | Bin 0 -> 30630 bytes 2 files changed, 48 insertions(+) create mode 100644 Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 create mode 100644 Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/ODBAccessRequests.222ENG.PNG diff --git a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 new file mode 100644 index 00000000..9a4926cd --- /dev/null +++ b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 @@ -0,0 +1,48 @@ +function Set-SPOTenant +{ +param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password, + [Parameter(Mandatory=$true,Position=4)] + [Bool]$HideSyncButtonOnODB + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.HideSyncButtonOnODB=$HideSyncButtonOnODB + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant + +} + + + + +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" + + + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$HideSyncButtonOnODB=$true #Whether the sync button should be hidden + + + + +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -HideSyncButtonOnODB $HideSyncButtonOnODB \ No newline at end of file diff --git a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/ODBAccessRequests.222ENG.PNG b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/ODBAccessRequests.222ENG.PNG new file mode 100644 index 0000000000000000000000000000000000000000..db2067de9d3415d7d3dc3f701ed7745550ac3937 GIT binary patch literal 30630 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 Date: Mon, 17 Feb 2020 20:40:49 +0200 Subject: [PATCH 019/129] Create description.md --- .../description.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md diff --git a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md new file mode 100644 index 00000000..1cc60d1b --- /dev/null +++ b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md @@ -0,0 +1,42 @@ +Short Powershell script to send bcc copies to all sharing invitations send from users' OneDrives for Business. The script uses CSOM with December 2015 update. + + + + + +How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" + Enter the correct url, and admin login. Under InvitationsList, enter the email addresses that you want to add in BCC to every sharing invitation in your users' OneDrive for Business. You will be additionally prompted for the password. Do not enter it in the file: +PowerShell + $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} + + + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" + + Run the script + + + + + + +After the setting takes place, the BCC emails will start receiving copies of the sharing invitations with Invited person's email in the "TO" field and inviter's in "CC": + + + + + + + + From 0e03b68a734d78ce96198dfb6edc0340d44eb1b6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 17 Feb 2020 20:41:16 +0200 Subject: [PATCH 020/129] Add files via upload --- .../BccExternalSharingInvitations.ps1 | 48 ++++++++++++++++++ .../Untitled099.png | Bin 0 -> 14132 bytes 2 files changed, 48 insertions(+) create mode 100644 Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 create mode 100644 Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png diff --git a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 new file mode 100644 index 00000000..d7993850 --- /dev/null +++ b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 @@ -0,0 +1,48 @@ +function Set-SPOTenant +{ +param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.BccExternalSharingInvitations=$true + $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant + +} + + + + +#Paths to SDK +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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" + + + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" + + + + + + +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword \ No newline at end of file diff --git a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png new file mode 100644 index 0000000000000000000000000000000000000000..3df79a6feeb174c784008bd25df0e4d884371c2b GIT binary patch literal 14132 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

q-Js*r=(nTnVC`^ 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�tmW-dboPxqhIY|sb@{R9XQfqxVH{cKMn~$I+ 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 literal 0 HcmV?d00001 From f288f8c58695ddd9d07282286754a7a6f18f91e6 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 26 Feb 2020 21:58:19 +0100 Subject: [PATCH 021/129] Update description.md --- .../description.md | 37 ++++++++----------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/Items Management/Attachments/Copy list attachments to a separate library/description.md b/Items Management/Attachments/Copy list attachments to a separate library/description.md index fcd367e9..96826d5b 100644 --- a/Items Management/Attachments/Copy list attachments to a separate library/description.md +++ b/Items Management/Attachments/Copy list attachments to a separate library/description.md @@ -1,49 +1,44 @@ -Description +# Description The following script copies list attachments to another library within the same site. - - -Scenario: +# Scenario: - List with attachments: - - - + sometimes several attachments per item: - - - + The attachments are to be copied to another library: + - - - -Requirements +# Requirements The script requires SharePoint Online SDK. - - -How to use? +# How to use? 1. Download and open the file. 2. Enter correct paths to the SDK: -PowerShell +```PowerShell # Paths to SDK. Please verify location on your computer. 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" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" +``` 3. Enter credentials and list data and save the file: -PowerShell +```PowerShell Connect-SPOCSOM -Username "user@tenant.onmicrosoft.com" -Url "https://tenant.sharepoint.com/sites/powie4" Get-SPOListItems -ListTitle withatt -IncludeAllProperties $true -Recursive -DestinationLibrary "/sites/powie4/Destiny2/" -Overwrite $true +``` 4. Run it in Powershell. + + +

+Enjoy and please share feedback! From 182366eca104269723b25253e9c270f313c0a8ab Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 26 Feb 2020 22:02:52 +0100 Subject: [PATCH 022/129] Update CopyAttachments.ps1 --- .../CopyAttachments.ps1 | 178 ++++++++---------- 1 file changed, 80 insertions(+), 98 deletions(-) diff --git a/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 b/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 index b0d2db7d..b39b4b09 100644 --- a/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 +++ b/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 @@ -1,19 +1,16 @@ -function Get-SPOListFields -{ - -<# - .link - http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx - - #> +function Get-SPOListFields{ + <# + .link + http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx + #> - param ( - [Parameter(Mandatory=$true,Position=3)] + param ( + [Parameter(Mandatory=$true,Position=3)] [string]$ListTitle, - [Parameter(Mandatory=$false,Position=4)] + [Parameter(Mandatory=$false,Position=4)] [bool]$IncludeSubsites=$false - ) + ) $ll=$ctx.Web.Lists.GetByTitle($ListTitle) $ctx.Load($ll) @@ -23,51 +20,48 @@ function Get-SPOListFields $fieldsArray=@() $fieldslist=@() - foreach ($fiel in $ll.Fields) - { - #Write-Host $fiel.Description `t $fiel.EntityPropertyName `t $fiel.Id `t $fiel.InternalName `t $fiel.StaticName `t $fiel.Tag `t $fiel.Title `t $fiel.TypeDisplayName + + foreach ($fiel in $ll.Fields){ + #Write-Host $fiel.Description `t $fiel.EntityPropertyName `t $fiel.Id `t $fiel.InternalName `t $fiel.StaticName `t $fiel.Tag `t $fiel.Title `t $fiel.TypeDisplayName - $array=@() - $array+="InternalName" + $array=@() + $array+="InternalName" $array+="StaticName" - $array+="Title" + $array+="Title" - $obj = New-Object PSObject - $obj | Add-Member NoteProperty $array[0]($fiel.InternalName) - $obj | Add-Member NoteProperty $array[1]($fiel.StaticName) - $obj | Add-Member NoteProperty $array[2]($fiel.Title) + $obj = New-Object PSObject + $obj | Add-Member NoteProperty $array[0]($fiel.InternalName) + $obj | Add-Member NoteProperty $array[1]($fiel.StaticName) + $obj | Add-Member NoteProperty $array[2]($fiel.Title) - $fieldsArray+=$obj - $fieldslist+=$fiel.InternalName - Write-Output $obj - } + $fieldsArray+=$obj + $fieldslist+=$fiel.InternalName + Write-Output $obj + } - - $ctx.Dispose() + $ctx.Dispose() + return $fieldsArray - } -function Get-SPOListItems -{ +function Get-SPOListItems{ <# .link http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx - #> - param ( - [Parameter(Mandatory=$true,Position=1)] + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$ListTitle, - [Parameter(Mandatory=$false,Position=2)] + [Parameter(Mandatory=$false,Position=2)] [bool]$IncludeAllProperties=$false, - [switch]$Recursive, - [Parameter(Mandatory=$false,Position=4)] + [switch]$Recursive, + [Parameter(Mandatory=$false,Position=4)] $DestinationLibrary, - [Parameter(Mandatory=$false,Position=5)] + [Parameter(Mandatory=$false,Position=5)] [bool]$Overwrite - ) + ) $ll=$ctx.Web.Lists.GetByTitle($ListTitle) @@ -78,88 +72,76 @@ function Get-SPOListItems - $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery -# $spqQuery.ViewAttributes = "Scope='Recursive'" -$spqQuery.ViewXml = "1"; -if($Recursive) -{ -$spqQuery.ViewXml +=""; -} - $bobo=Get-SPOListFields -ListTitle $ListTitle + $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + # $spqQuery.ViewAttributes = "Scope='Recursive'" + $spqQuery.ViewXml = "1"; + + if($Recursive){ + $spqQuery.ViewXml +=""; + } + + $bobo=Get-SPOListFields -ListTitle $ListTitle $itemki=$ll.GetItems($spqQuery) $ctx.Load($itemki) $ctx.ExecuteQuery() - - $objArray=@() - for($j=0;$j -lt $itemki.Count ;$j++) - { + for($j=0;$j -lt $itemki.Count ;$j++){ $attache=$itemki[$j].AttachmentFiles $ctx.Load($attache) $ctx.ExecuteQuery() Write-Host $itemki[$j]["Title"] -BackgroundColor DarkCyan - foreach($att in $attache) - { + foreach($att in $attache){ #Write-Output $att $file = - $ctx.Web.GetFileByServerRelativeUrl($att.ServerRelativeUrl); - $ctx.Load($file) - $ctx.ExecuteQuery() + $ctx.Web.GetFileByServerRelativeUrl($att.ServerRelativeUrl); + $ctx.Load($file) + $ctx.ExecuteQuery() $NewName=$file.Name - - if($DestinationLibrary.EndsWith("/")){} - else {$DestinationLibrary=$DestinationLibrary+"/"} - Write-Host "Processing " $file.Name -$file.CopyTo($DestinationLibrary+$NewName, $Overwrite) - try - { - $ctx.ExecuteQuery() + if($DestinationLibrary.EndsWith("/")){} + else {$DestinationLibrary=$DestinationLibrary+"/"} + + Write-Host "Processing " $file.Name + $file.CopyTo($DestinationLibrary+$NewName, $Overwrite) + + try{ + $ctx.ExecuteQuery() - Write-Host $file.Name " has been copied to" $DestinationLibrary -ForegroundColor DarkGreen - } - catch [Net.WebException] - { - Write-Host $_.Exception.ToString() - } + Write-Host $file.Name " has been copied to" $DestinationLibrary -ForegroundColor DarkGreen + } + catch [Net.WebException]{ + Write-Host $_.Exception.ToString() + } } - - } +} - } - - - function Connect-SPOCSOM -{ - -<# - .link - http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx - - #> - - param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=3)] - [string]$Url - - -) - - $password = Read-Host "Password" -AsSecureString - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.ExecuteQuery() -$global:ctx=$ctx +function Connect-SPOCSOM{ + <# + .link + http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx + + #> + + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=3)] + [string]$Url + ) + + $password = Read-Host "Password" -AsSecureString + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.ExecuteQuery() + $global:ctx=$ctx } From 03c8daf593d997f236b8d2fceb94d78ec474e1a1 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 26 Feb 2020 22:07:06 +0100 Subject: [PATCH 023/129] Update CopyAttachments.ps1 --- .../CopyAttachments.ps1 | 44 +++++++++---------- 1 file changed, 20 insertions(+), 24 deletions(-) diff --git a/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 b/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 index b39b4b09..d1ebfc5d 100644 --- a/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 +++ b/Items Management/Attachments/Copy list attachments to a separate library/CopyAttachments.ps1 @@ -1,16 +1,15 @@ function Get-SPOListFields{ - <# + <# .link http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx - - #> + #> param ( - [Parameter(Mandatory=$true,Position=3)] - [string]$ListTitle, - [Parameter(Mandatory=$false,Position=4)] - [bool]$IncludeSubsites=$false - ) + [Parameter(Mandatory=$true,Position=3)] + [string]$ListTitle, + [Parameter(Mandatory=$false,Position=4)] + [bool]$IncludeSubsites=$false + ) $ll=$ctx.Web.Lists.GetByTitle($ListTitle) $ctx.Load($ll) @@ -52,16 +51,16 @@ function Get-SPOListItems{ #> param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$ListTitle, - [Parameter(Mandatory=$false,Position=2)] - [bool]$IncludeAllProperties=$false, - [switch]$Recursive, - [Parameter(Mandatory=$false,Position=4)] - $DestinationLibrary, - [Parameter(Mandatory=$false,Position=5)] - [bool]$Overwrite - ) + [Parameter(Mandatory=$true,Position=1)] + [string]$ListTitle, + [Parameter(Mandatory=$false,Position=2)] + [bool]$IncludeAllProperties=$false, + [switch]$Recursive, + [Parameter(Mandatory=$false,Position=4)] + $DestinationLibrary, + [Parameter(Mandatory=$false,Position=5)] + [bool]$Overwrite + ) $ll=$ctx.Web.Lists.GetByTitle($ListTitle) @@ -70,8 +69,6 @@ function Get-SPOListItems{ $ctx.ExecuteQuery() $i=0 - - $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery # $spqQuery.ViewAttributes = "Scope='Recursive'" $spqQuery.ViewXml = "1"; @@ -95,7 +92,8 @@ function Get-SPOListItems{ $ctx.Load($attache) $ctx.ExecuteQuery() Write-Host $itemki[$j]["Title"] -BackgroundColor DarkCyan - foreach($att in $attache){ + + foreach($att in $attache){ #Write-Output $att $file = $ctx.Web.GetFileByServerRelativeUrl($att.ServerRelativeUrl); @@ -112,7 +110,6 @@ function Get-SPOListItems{ try{ $ctx.ExecuteQuery() - Write-Host $file.Name " has been copied to" $DestinationLibrary -ForegroundColor DarkGreen } catch [Net.WebException]{ @@ -127,8 +124,7 @@ function Connect-SPOCSOM{ <# .link http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx - - #> + #> param ( [Parameter(Mandatory=$true,Position=1)] From 16340f271532b23d42f41d894ecfd621f8eb6f85 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 26 Feb 2020 22:10:34 +0100 Subject: [PATCH 024/129] Update description.md --- .../description.md | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/Items Management/Attachments/Disable or enable attachments to list items/description.md b/Items Management/Attachments/Disable or enable attachments to list items/description.md index ab9eb158..cf0579b7 100644 --- a/Items Management/Attachments/Disable or enable attachments to list items/description.md +++ b/Items Management/Attachments/Disable or enable attachments to list items/description.md @@ -1,17 +1,13 @@ -Want to keep your lists tidy? Saving space?? This is a solution for you! Looking for a quick way to restore the option for all lists? This is also a solution for you! :) +Want to keep your lists tidy? Saving space?? This is a solution for you! Looking for a quick way to restore the option for all lists? +
**This is also a solution for you! :)** Want to keep your lists tidy? Saving space? Do you want to prevent users from adding unnecessary attachments to the list because their place belongs elsewhere? This is a solution for you! Or maybe you already disabled the feature? For some of the lists - for some not, and now you are looking for a quick way to restore the option for all lists? -This is also a solution for you! :) - - - - - - +
**This is also a solution for you! :)** +```Powershell # Paths to SDK. Please verify location on your computer. Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" @@ -21,23 +17,24 @@ $Username="trial@trialtrial123.onmicrosoft.com" $AdminPassword="Pass" $Url="https://trialtrial123.sharepoint.com/sites/teamsitewithlists" $Attachments=$false - + Set-SPOListsAttachments -Username $Username -AdminPassword $AdminPassword -Url $Url -Attachments $Attachments - +``` -For full description please refer here to the Wiki Article +For full description please refer here to the [Wiki Article](https://social.technet.microsoft.com/wiki/contents/articles/30024.sharepoint-online-disable-or-enable-attachments-to-list-items-using-powershell.aspx) - +

+Enjoy and please share feedback! -Related scripts -Set direction of the reading order for a single list +**Related scripts**
+[Set direction of the reading order for a single list](https://gallery.technet.microsoft.com/office/Set-the-direction-of-the-f17ca66a) -Set-SPOList properties (module) +[Set-SPOList properties (module)](https://gallery.technet.microsoft.com/office/Set-SPOList-properties-9d16f2ba) -Allow or disallow your users to create folders in SPO lists +[Allow or disallow your users to create folders in SPO lists](https://gallery.technet.microsoft.com/scriptcenter/Allow-or-disallow-your-20f7b44a) From faa1ace595dfe71a9d80ab2bc2109447b1fa76cc Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Wed, 26 Feb 2020 22:15:48 +0100 Subject: [PATCH 025/129] Update AttachmentsForAllLists.ps1 --- .../AttachmentsForAllLists.ps1 | 62 ++++++++----------- 1 file changed, 27 insertions(+), 35 deletions(-) diff --git a/Items Management/Attachments/Disable or enable attachments to list items/AttachmentsForAllLists.ps1 b/Items Management/Attachments/Disable or enable attachments to list items/AttachmentsForAllLists.ps1 index a08647c4..007c6cc6 100644 --- a/Items Management/Attachments/Disable or enable attachments to list items/AttachmentsForAllLists.ps1 +++ b/Items Management/Attachments/Disable or enable attachments to list items/AttachmentsForAllLists.ps1 @@ -1,49 +1,41 @@ - + # # Created by Arleta Wanat, 2015 # -function Set-SPOListsAttachments -{ -param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$AdminPassword, +function Set-SPOListsAttachments{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$AdminPassword, [Parameter(Mandatory=$true,Position=3)] - [string]$Url, + [string]$Url, [Parameter(Mandatory=$true,Position=4)] - [bool]$Attachments -) + [bool]$Attachments + ) -$password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force + $password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) $ctx.ExecuteQuery() -$Lists=$ctx.Web.Lists -$ctx.Load($Lists) -$ctx.ExecuteQuery() - -Foreach($ll in $Lists) -{ - $ll.EnableAttachments = $Attachments - $ll.Update() - - - try - { - $ctx.ExecuteQuery() - Write-Host $ll.Title " Done" -ForegroundColor Green - } - - catch [Net.WebException] - { - - Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red + $Lists=$ctx.Web.Lists + $ctx.Load($Lists) + $ctx.ExecuteQuery() + + Foreach($ll in $Lists){ + $ll.EnableAttachments = $Attachments + $ll.Update() + + try{ + $ctx.ExecuteQuery() + Write-Host $ll.Title " Done" -ForegroundColor Green } - -} + catch [Net.WebException] { + Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red + } + } } @@ -68,4 +60,4 @@ $Attachments=$false -Set-SPOListsAttachments -Username $Username -AdminPassword $AdminPassword -Url $Url -Attachments $Attachments \ No newline at end of file +Set-SPOListsAttachments -Username $Username -AdminPassword $AdminPassword -Url $Url -Attachments $Attachments From 9f37fd0fbbb6e7cff94c715e6f1ee7d49c88bf0b Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 27 Feb 2020 23:36:07 +0100 Subject: [PATCH 026/129] Update description.md --- .../description.md | 34 +++++-------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/Items Management/Attachments/Enable or disable attachments to items of a chosen list/description.md b/Items Management/Attachments/Enable or disable attachments to items of a chosen list/description.md index e17f799d..ae4331ff 100644 --- a/Items Management/Attachments/Enable or disable attachments to items of a chosen list/description.md +++ b/Items Management/Attachments/Enable or disable attachments to items of a chosen list/description.md @@ -1,22 +1,10 @@ -A short Powershell script to set the EnableAttachments property for a SharePoint Online list. The property is responsible for the Attach File icon under new item tab. If you disable the button, you and your users will not be able to add the attachments to list items. +A short Powershell script to set the EnableAttachments property for a SharePoint Online list. The property is responsible for the **Attach File** icon under **new item** tab. If you disable the button, you and your users will not be able to add the attachments to list items. -A short Powershell script to set the EnableAttachments property for a SharePoint Online list. The property is responsible for the Attach File icon under new item tab (see screenshot). The button allows you to add attachments to the list item. - - - - - - - - + If you disable the button, you and your users will not be able to add the attachments to list items: - - - - - + Applies to lists. @@ -24,7 +12,7 @@ Applies to lists. -It requires installed SharePoint Online SDK +It requires installed [SharePoint Online SDK](https://www.microsoft.com/en-us/download/details.aspx?id=42038) You have to enter the list information before running the script: @@ -45,18 +33,14 @@ $ListName="Tasks list" $Attachments =$false ``` -### Related scripts -Set direction of the reading order for a single list +## **Related scripts** +[Set direction of the reading order for a single list](https://gallery.technet.microsoft.com/office/Set-the-direction-of-the-f17ca66a) -Set-SPOList properties (module) - - - - +[Set-SPOList properties (module)](https://gallery.technet.microsoft.com/office/Set-SPOList-properties-9d16f2ba) -### Related article +## **Related article** -SharePoint Online: Disable or enable attachments to list items using Powershell +[SharePoint Online: Disable or enable attachments to list items using Powershell](https://social.technet.microsoft.com/wiki/contents/articles/30024.sharepoint-online-disable-or-enable-attachments-to-list-items-using-powershell.aspx)

From a37898138e7ee68cf6c16318ad913e8920686564 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Thu, 27 Feb 2020 23:36:41 +0100 Subject: [PATCH 027/129] Update ListAttachments.ps1 --- .../ListAttachments.ps1 | 50 ++++++++----------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/Items Management/Attachments/Enable or disable attachments to items of a chosen list/ListAttachments.ps1 b/Items Management/Attachments/Enable or disable attachments to items of a chosen list/ListAttachments.ps1 index 275e2759..874aabc2 100644 --- a/Items Management/Attachments/Enable or disable attachments to items of a chosen list/ListAttachments.ps1 +++ b/Items Management/Attachments/Enable or disable attachments to items of a chosen list/ListAttachments.ps1 @@ -1,57 +1,49 @@ - + # # Created by Arleta Wanat, 2015 # -function Set-SPOList -{ -param ( +function Set-SPOList{ + param ( [Parameter(Mandatory=$true,Position=0)] - [string]$ListName, + [string]$ListName, [Parameter(Mandatory=$true,Position=1)] - [bool]$Attachments - ) + [bool]$Attachments + ) -$ll=$ctx.Web.Lists.GetByTitle($ListName) + $ll=$ctx.Web.Lists.GetByTitle($ListName) -$ll.EnableAttachments = $Attachments - $ll.Update() + $ll.EnableAttachments = $Attachments + $ll.Update() - try - { + try{ $ctx.ExecuteQuery() Write-Host "Done" -ForegroundColor Green - } - - catch [Net.WebException] - { - - Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red - } - - + } + catch [Net.WebException] { + Write-Host "Failed" $_.Exception.ToString() -ForegroundColor Red + } } -function Connect-SPOCSOM -{ - param ( - [Parameter(Mandatory=$true,Position=1)] +function Connect-SPOCSOM{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$AdminPassword, [Parameter(Mandatory=$true,Position=2)] [string]$Url -) + ) -$password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force + $password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) $ctx.ExecuteQuery() -$global:ctx=$ctx + $global:ctx=$ctx } @@ -78,4 +70,4 @@ $Attachments =$true Connect-SPOCSOM -Username $Username -AdminPassword $AdminPassword -Url $Url -Set-SPOList -ListName $ListName -Attachments $Attachments \ No newline at end of file +Set-SPOList -ListName $ListName -Attachments $Attachments From 653a5742869cb260a5c83d8ba77244852da1ae29 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:17:53 +0100 Subject: [PATCH 028/129] Update and rename description.txt to description.md --- .../{description.txt => description.md} | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) rename OTHER/C# Create a contact list with internal user data/{description.txt => description.md} (87%) diff --git a/OTHER/C# Create a contact list with internal user data/description.txt b/OTHER/C# Create a contact list with internal user data/description.md similarity index 87% rename from OTHER/C# Create a contact list with internal user data/description.txt rename to OTHER/C# Create a contact list with internal user data/description.md index b3b12309..f5e04f36 100644 --- a/OTHER/C# Create a contact list with internal user data/description.txt +++ b/OTHER/C# Create a contact list with internal user data/description.md @@ -12,14 +12,9 @@ It retrieves all the users and creates a contact list with "CellPhone" - - - - Screenshot with test data - - + Technicalities: From d3112a64aedb66f4a5b0237b0661438f879261e6 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:28:07 +0100 Subject: [PATCH 029/129] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OTHER/C# Create a contact list with internal user data/description.md b/OTHER/C# Create a contact list with internal user data/description.md index f5e04f36..866d6e39 100644 --- a/OTHER/C# Create a contact list with internal user data/description.md +++ b/OTHER/C# Create a contact list with internal user data/description.md @@ -14,7 +14,7 @@ It retrieves all the users and creates a contact list with Screenshot with test data - + Technicalities: From 9e9091d7b3848ef17f0591f914a9637de43d5232 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:28:43 +0100 Subject: [PATCH 030/129] Update description.md --- .../description.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OTHER/C# Create a contact list with internal user data/description.md b/OTHER/C# Create a contact list with internal user data/description.md index 866d6e39..e9565fb0 100644 --- a/OTHER/C# Create a contact list with internal user data/description.md +++ b/OTHER/C# Create a contact list with internal user data/description.md @@ -2,15 +2,15 @@ Short C# application. It retrieves all the users and creates a contact list with -"LastName" +**"LastName" -"FirstName" +**"FirstName" -"WorkEmail" +**"WorkEmail" -"WorkPhone" +**"WorkPhone" -"CellPhone" +**"CellPhone" Screenshot with test data From 706a62c409b40c11e57eda1e936b5ec85dddfd6c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:29:02 +0100 Subject: [PATCH 031/129] Update description.md --- .../description.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/OTHER/C# Create a contact list with internal user data/description.md b/OTHER/C# Create a contact list with internal user data/description.md index e9565fb0..014a230f 100644 --- a/OTHER/C# Create a contact list with internal user data/description.md +++ b/OTHER/C# Create a contact list with internal user data/description.md @@ -2,15 +2,15 @@ Short C# application. It retrieves all the users and creates a contact list with -**"LastName" +**"LastName"** -**"FirstName" +**"FirstName"** -**"WorkEmail" +**"WorkEmail"** -**"WorkPhone" +**"WorkPhone"** -**"CellPhone" +**"CellPhone"** Screenshot with test data From 06634fc3570cb5b58a75355e984dd0ee22406d61 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:30:18 +0100 Subject: [PATCH 032/129] Update sample.cs --- .../sample.cs | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/OTHER/C# Create a contact list with internal user data/sample.cs b/OTHER/C# Create a contact list with internal user data/sample.cs index 56239ea5..debba6c1 100644 --- a/OTHER/C# Create a contact list with internal user data/sample.cs +++ b/OTHER/C# Create a contact list with internal user data/sample.cs @@ -1,5 +1,4 @@ -static void PopulateProperties() - { +static void PopulateProperties() { ClientContext ctx = new ClientContext(adminsite); ctx.Credentials = new SharePointOnlineCredentials(userName, ss); @@ -7,35 +6,29 @@ static void PopulateProperties() string[] userProfileProperties = { "LastName", "FirstName", "WorkEmail", "WorkPhone","CellPhone", "AboutMe" }; propertiesforList=new string [userzy.Count, userProfileProperties.Length]; - for (int i = 0; i < userzy.Count;i++ ) - { - try - { + for (int i = 0; i < userzy.Count;i++ ) { + try{ Console.WriteLine("Retrieving properties for " + userzy[i].LoginName); UserProfilePropertiesForUser userProfilePropertiesForUser = new UserProfilePropertiesForUser(ctx, userzy[i].LoginName, userProfileProperties); IEnumerable profileProperties = peopleManager.GetUserProfilePropertiesFor(userProfilePropertiesForUser); ctx.Load(userProfilePropertiesForUser); ctx.ExecuteQuery(); int j = 0; - foreach (string property in profileProperties) - { + + foreach (string property in profileProperties) { propertiesforList[i, j] = property; j++; } } - catch (Exception ex) - { + catch (Exception ex) { } - } + + ctx.Dispose(); +} - - ctx.Dispose(); - } - - static void CreateList() - { +static void CreateList() { ClientContext ctx = new ClientContext(webUri); ctx.Credentials = new SharePointOnlineCredentials(userName,ss); ctx.ExecuteQuery(); From 5297837ff4d396f45d8e107b1a56f1adf26f676c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:35:03 +0100 Subject: [PATCH 033/129] Update description.md --- .../description.md | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/OTHER/Change the default language for all the SharePoint Online users/description.md b/OTHER/Change the default language for all the SharePoint Online users/description.md index 185ca3ab..352582db 100644 --- a/OTHER/Change the default language for all the SharePoint Online users/description.md +++ b/OTHER/Change the default language for all the SharePoint Online users/description.md @@ -6,9 +6,9 @@ Have you ever created your tenant in the wrong language? Need to change it for t You know that the steps are: -Newsfeed>About me>Edit my profile> ... (three dots)>Language and region>Add the display language +**Newsfeed** > **About me** > **Edit my profile** > **... (three dots)** > **Language and region>Add the display language** -OneDrive>Gear icon>Site settings>Language settings>Mark alternate language +**OneDrive** > **Gear icon** > **Site settings** > **Language settings** > **Mark alternate language**

@@ -18,23 +18,19 @@ It's cool and awesome and flexible. But what if you have a thousand users? Are y Here it is: - - - - - + The red errors for system accounts are by design. I am expecting to get it better in the next version. The green users indicate for which users the language has been changed and into what. At the end the report will contain all users who did not get their language changed. -List of language ids +[List of language ids](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c?redirectedfrom=MSDN)

-Instructions +## *Instructions* 1. Download the .zip file @@ -52,11 +48,11 @@ Instructions Acknowledgements: -The app is using the new updates and nuggets. +The app is using the [new updates and nuggets.](https://docs.microsoft.com/pl-pl/archive/blogs/) -The app is prone to the known bug, which means it will not add desired alternate language for personal site unless there is one (any) added there already. +The app is prone to the [known bug](https://docs.microsoft.com/pl-pl/archive/blogs/), which means it will not add desired alternate language for personal site unless there is one (any) added there already. -Update on 20th of Dec - Adding additional language to web has unfortunately a bug and it does not work unless site has already one or more additional languages set, which means that this API does not really usable until this bug is fixed. This will be fixed for future releases and to redistributable version of the CSOM package. +**Update on 20th of Dec - Adding additional language to web has unfortunately a bug and it does not work unless site has already one or more additional languages set, which means that this API does not really usable until this bug is fixed. This will be fixed for future releases and to redistributable version of the CSOM package.** From c580028e67ade0febcbef32ef375617de2c31295 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:42:07 +0100 Subject: [PATCH 034/129] Update description.md --- .../description.md | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/OTHER/Get all event receivers on your lists in a site/description.md b/OTHER/Get all event receivers on your lists in a site/description.md index 3c098dc4..c5611511 100644 --- a/OTHER/Get all event receivers on your lists in a site/description.md +++ b/OTHER/Get all event receivers on your lists in a site/description.md @@ -2,7 +2,7 @@ A short solution to find event receivers on your SPO lists. -1. Install SharePoint Online SDK +1. Install [SharePoint Online SDK](http://www.microsoft.com/en-us/download/details.aspx?id=42038) 2. Download the file and open (e.g. in NotePad) @@ -31,19 +31,16 @@ Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url It should ask you for your admin password - - If you want to export the event-receivers' data to a .csv file, use PathToTheScript | export-csv c:\users\MyUsers\Desktop\CSVReport.csv + +**Sample Report** - - -Sample Report - -ReceiverAssembly ReceiverClass ReceiverId ReceiverName SequenceNumber Synchronization EventType ReceiverUrl Context Tag Path ObjectVersion ServerObjectIsNull TypedObject -Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c Microsoft.SharePoint.Portal.CommunityEventReceiver f13fb801-b306-42ea-bb1e-2f4c1e4a8e81 10000 Synchronous ItemAdding Microsoft.SharePoint.Client.ClientContext Microsoft.SharePoint.Client.ObjectPathIdentity False Microsoft.SharePoint.Client.EventReceiverDefinition -Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c Microsoft.SharePoint.Portal.CommunityEventReceiver cebe300c-50ac-4d88-8a4b-a63b9d6da400 10000 Synchronous ItemUpdating Microsoft.SharePoint.Client.ClientContext Microsoft.SharePoint.Client.ObjectPathIdentity False Microsoft.SharePoint.Client.EventReceiverDefinition -Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c Microsoft.SharePoint.Portal.CommunityEventReceiver bfc4ca11-32d6-4248-923c-fe16bcf8145d 10000 Synchronous ItemDeleting Microsoft.SharePoint.Client.ClientContext Microsoft.SharePoint.Client.ObjectPathIdentity False Microsoft.SharePoint.Client.EventReceiverDefinition -Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c Microsoft.SharePoint.Portal.CommunityEventReceiver 6f2b105a-4834-40df-a450-c480c5c94ef0 10000 Asynchronous ItemAdded Microsoft.SharePoint.Client.ClientContext Microsoft.SharePoint.Client.ObjectPathIdentity False Microsoft.SharePoint.Client.EventReceiverDefinition +ReceiverAssembly | ReceiverClass | ReceiverId | ReceiverName | SequenceNumber | Synchronization | EventType | ReceiverUrl | Context | Tag | Path | ObjectVersion | ServerObjectIsNull | TypedObject +--|--|--|--|--|--|--|--|--|--|--|--|--|-- +Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c | Microsoft.SharePoint.Portal.CommunityEventReceiver | f13fb801-b306-42ea-bb1e-2f4c1e4a8e81 | | 10000 | Synchronous | ItemAdding | Microsoft.SharePoint.Client.ClientContext | Microsoft.SharePoint.Client.ObjectPathIdentity | False | Microsoft.SharePoint.Client.EventReceiverDefinition +Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c | Microsoft.SharePoint.Portal.CommunityEventReceiver | cebe300c-50ac-4d88-8a4b-a63b9d6da400 | | 10000 | Synchronous | ItemUpdating | Microsoft.SharePoint.Client.ClientContext | Microsoft.SharePoint.Client.ObjectPathIdentity | False | Microsoft.SharePoint.Client.EventReceiverDefinition +Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c | Microsoft.SharePoint.Portal.CommunityEventReceiver | bfc4ca11-32d6-4248-923c-fe16bcf8145d | | 10000 | Synchronous | ItemDeleting | Microsoft.SharePoint.Client.ClientContext | Microsoft.SharePoint.Client.ObjectPathIdentity | False | Microsoft.SharePoint.Client.EventReceiverDefinition +Microsoft.SharePoint.Portal, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c | Microsoft.SharePoint.Portal.CommunityEventReceiver | 6f2b105a-4834-40df-a450-c480c5c94ef0 | | 10000 | Asynchronous | ItemAdded | Microsoft.SharePoint.Client.ClientContext | Microsoft.SharePoint.Client.ObjectPathIdentity | False | Microsoft.SharePoint.Client.EventReceiverDefinition From 295ee82d477d9e872ba9fe746e27260a6419c564 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:43:32 +0100 Subject: [PATCH 035/129] Update GetSPOListEventReceivers.ps1 --- .../GetSPOListEventReceivers.ps1 | 79 +++++++++---------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/OTHER/Get all event receivers on your lists in a site/GetSPOListEventReceivers.ps1 b/OTHER/Get all event receivers on your lists in a site/GetSPOListEventReceivers.ps1 index b6870fdb..158cfc2f 100644 --- a/OTHER/Get all event receivers on your lists in a site/GetSPOListEventReceivers.ps1 +++ b/OTHER/Get all event receivers on your lists in a site/GetSPOListEventReceivers.ps1 @@ -1,48 +1,43 @@ -function Get-SPOListEventreceivers -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOListEventreceivers{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url -) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - -try -{ -$ctx.ExecuteQuery() -} catch [Net.WebException] - { - - Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red -} - - $ctx.Load($ctx.Site) - $ctx.Load($ctx.Web.Lists) - $ctx.ExecuteQuery() - Write-Host $ctx.Web.Lists.Count - for($j=0;$j -lt $ctx.Web.Lists.Count;$j++) - { - $lista=$ctx.Web.Lists[$j] - $ctx.Load($lista) - $ctx.ExecuteQuery() - $recevery=$lista.EventReceivers - $ctx.Load($recevery) - $ctx.ExecuteQuery() - Write-Host $recevery.Count $lista.Title - - for($i=0;$i -lt $recevery.Count ; $i++) - { - $ctx.Load($recevery[$i]) - $ctx.ExecuteQuery() - Write-Output $recevery[$i] - } - - } + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + + try{ + $ctx.ExecuteQuery() + } + catch [Net.WebException] { + Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red + } + + $ctx.Load($ctx.Site) + $ctx.Load($ctx.Web.Lists) + $ctx.ExecuteQuery() + Write-Host $ctx.Web.Lists.Count + + for($j=0;$j -lt $ctx.Web.Lists.Count;$j++){ + $lista=$ctx.Web.Lists[$j] + $ctx.Load($lista) + $ctx.ExecuteQuery() + $recevery=$lista.EventReceivers + $ctx.Load($recevery) + $ctx.ExecuteQuery() + Write-Host $recevery.Count $lista.Title + + for($i=0;$i -lt $recevery.Count ; $i++){ + $ctx.Load($recevery[$i]) + $ctx.ExecuteQuery() + Write-Output $recevery[$i] + } + } } @@ -57,4 +52,4 @@ $AdminPassword=Read-Host -Prompt "Password" -AsSecureString $Url="https://tenant.sharepoint.com/sites/teamsitewithlibraries" -Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url $Url \ No newline at end of file +Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url $Url From f5847dd97b3dd4ced284db708a074e9d20e8b55c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:46:13 +0100 Subject: [PATCH 036/129] Update description.md --- .../Remove a single event receiver/description.md | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/OTHER/Remove a single event receiver/description.md b/OTHER/Remove a single event receiver/description.md index d5f18710..21ed399b 100644 --- a/OTHER/Remove a single event receiver/description.md +++ b/OTHER/Remove a single event receiver/description.md @@ -2,7 +2,7 @@ A short solution to remove a single event receiver from your SPO lists. -1. Install SharePoint Online SDK +1. Install [SharePoint Online SDK](http://www.microsoft.com/en-us/download/details.aspx?id=42038) 2. Download the file and open (e.g. in NotePad) @@ -28,7 +28,7 @@ Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url 6. Instead of https://tenant.sharepint.com/sites/teamsitewithlibraries enter name of the site where the list with unwanted event receiver -7. Under $EventReceiverGUID, enter the guid of the receiver. If you need to find it, you can use Get all event receivers on your lists in a SharePoint Online site +7. Under $EventReceiverGUID, enter the guid of the receiver. If you need to find it, you can use [Get all event receivers on your lists in a SharePoint Online site](https://gallery.technet.microsoft.com/Get-all-event-receivers-on-479a1e8d) @@ -36,16 +36,10 @@ Run the script in any Powershell module. It should ask you for your admin password. - + The script will inform you how many receivers it found on the list and if it encountered any issues. - - - - -Please share your feedback in the Q&A section! - - +**Please share your feedback in the Q&A section!** Should you need any assistance or a different script, please let me know - I will be happy to help From 40465ebb78180dae3f260322c6ba0a0a635e5ee8 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:47:19 +0100 Subject: [PATCH 037/129] Update DeleteSingleReceiver.ps1 --- .../DeleteSingleReceiver.ps1 | 75 +++++++++---------- 1 file changed, 34 insertions(+), 41 deletions(-) diff --git a/OTHER/Remove a single event receiver/DeleteSingleReceiver.ps1 b/OTHER/Remove a single event receiver/DeleteSingleReceiver.ps1 index 7136c1c6..f70564d6 100644 --- a/OTHER/Remove a single event receiver/DeleteSingleReceiver.ps1 +++ b/OTHER/Remove a single event receiver/DeleteSingleReceiver.ps1 @@ -1,53 +1,46 @@ -function Get-SPOListEventreceivers -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOListEventreceivers{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$ListTitle, - [Parameter(Mandatory=$true,Position=5)] + [Parameter(Mandatory=$true,Position=5)] [GUID]$EventReceiverGUID -) + ) $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) -try -{ -$ctx.ExecuteQuery() -} catch [Net.WebException] - { - - Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red -} - - $ctx.Load($ctx.Site) - - $lista=$ctx.Web.Lists.GetByTitle($ListTitle) - $ctx.Load($lista) - $ctx.ExecuteQuery() - $recevery=$lista.EventReceivers - $ctx.Load($recevery) - $ctx.ExecuteQuery() - Write-Host "Found " $recevery.Count " receivers in " $lista.Title - -$recevery.GetById($EventReceiverGUID).DeleteObject() - -try -{ -$ctx.ExecuteQuery() -Write-Host "receiver removed" -} - - catch [Net.WebException] - { - Write-Host "Failed to delete the receiver" $_.Exception.Message.ToString() -ForegroundColor Red - } - + try{ + $ctx.ExecuteQuery() + } + catch [Net.WebException] { + Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red + } + + $ctx.Load($ctx.Site) + + $lista=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($lista) + $ctx.ExecuteQuery() + $recevery=$lista.EventReceivers + $ctx.Load($recevery) + $ctx.ExecuteQuery() + Write-Host "Found " $recevery.Count " receivers in " $lista.Title + + $recevery.GetById($EventReceiverGUID).DeleteObject() + + try{ + $ctx.ExecuteQuery() + Write-Host "receiver removed" + } + catch [Net.WebException] { + Write-Host "Failed to delete the receiver" $_.Exception.Message.ToString() -ForegroundColor Red + } } @@ -62,4 +55,4 @@ $Url="https://tenant.sharepoint.com/sites/teamsitewithlibraries" $ListTitle="kriiv" $EventReceiverGUID="154d2ca2-8335-464c-9059-214cdcc1c2c1" -Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url $Url -ListTitle $ListTitle -EventReceiverGUID $EventreceiverGUID \ No newline at end of file +Get-SPOListEventreceivers -Username $Username -AdminPassword $AdminPassword -Url $Url -ListTitle $ListTitle -EventReceiverGUID $EventreceiverGUID From e807828e0abc037133b5dbbf52fce7492579526a Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:49:03 +0100 Subject: [PATCH 038/129] Update description.md --- .../description.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/OTHER/Unified Groups Storage Report/description.md b/OTHER/Unified Groups Storage Report/description.md index 69c03926..0b565251 100644 --- a/OTHER/Unified Groups Storage Report/description.md +++ b/OTHER/Unified Groups Storage Report/description.md @@ -1,4 +1,5 @@ -Short description +## Short description + The script retrieves all unified groups in your tenant and the storage quotas for their associated site collections. Whaaat? (explanation for those whose life doesn't evolve around O365 and who not only believe in but have actually seen the life beyond the firewall) @@ -13,7 +14,8 @@ Whaaat? (explanation for those whose life doesn't evolve around O365 and who not -Prerequisites +## Prerequisites + - SharePoint Online SDK @@ -22,14 +24,14 @@ Make sure the script refers to the library paths on your computer: -PowerShell +```PowerShell # Paths to SDK. Please verify location on your computer. 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" - + ``` -How to use? +## How to use? 1. Download the file. 2. Open in Powershell ISE or even notepad. @@ -42,8 +44,9 @@ How to use? -Expected results +##Expected results + @@ -51,6 +54,4 @@ Expected results - - -I am waiting for your comments in the Q&A section! +**I am waiting for your comments in the Q&A section!** From 850b757b42367d60d86251b6228c851796190163 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:51:30 +0100 Subject: [PATCH 039/129] Update UnifiedGroupStorageWithCSOM.ps1 --- .../UnifiedGroupStorageWithCSOM.ps1 | 110 ++++++++---------- 1 file changed, 51 insertions(+), 59 deletions(-) diff --git a/OTHER/Unified Groups Storage Report/UnifiedGroupStorageWithCSOM.ps1 b/OTHER/Unified Groups Storage Report/UnifiedGroupStorageWithCSOM.ps1 index 2bb3f63f..03dbed40 100644 --- a/OTHER/Unified Groups Storage Report/UnifiedGroupStorageWithCSOM.ps1 +++ b/OTHER/Unified Groups Storage Report/UnifiedGroupStorageWithCSOM.ps1 @@ -2,72 +2,66 @@ # Vadim Gremyachev's method. It is briliant Function Invoke-LoadMethod() { -param( - [Microsoft.SharePoint.Client.ClientObject]$Object = $(throw "Please provide a Client Object"), - [string]$PropertyName -) - $ctx = $Object.Context - $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load") - $type = $Object.GetType() - $clientLoad = $load.MakeGenericMethod($type) - - - $Parameter = [System.Linq.Expressions.Expression]::Parameter(($type), $type.Name) - $Expression = [System.Linq.Expressions.Expression]::Lambda( - [System.Linq.Expressions.Expression]::Convert( - [System.Linq.Expressions.Expression]::PropertyOrField($Parameter,$PropertyName), - [System.Object] - ), - $($Parameter) - ) + param( + [Microsoft.SharePoint.Client.ClientObject]$Object = $(throw "Please provide a Client Object"), + [string]$PropertyName + ) + + $ctx = $Object.Context + $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load") + $type = $Object.GetType() + $clientLoad = $load.MakeGenericMethod($type) + + + $Parameter = [System.Linq.Expressions.Expression]::Parameter(($type), $type.Name) + $Expression = [System.Linq.Expressions.Expression]::Lambda( + [System.Linq.Expressions.Expression]::Convert( + [System.Linq.Expressions.Expression]::PropertyOrField($Parameter,$PropertyName), + [System.Object] + ), + $($Parameter) + ) + $ExpressionArray = [System.Array]::CreateInstance($Expression.GetType(), 1) $ExpressionArray.SetValue($Expression, 0) $clientLoad.Invoke($ctx,@($Object,$ExpressionArray)) } -function Get-SPOWeb -{ +function Get-SPOWeb{ + <# + .link + http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx -<# - .link - http://social.technet.microsoft.com/wiki/contents/articles/32334.sharepoint-online-spomod-cmdlets-resources.aspx + #> - #> -param ( - [Parameter(Mandatory=$true,Position=1)] + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $AdminPassword - - ) - - # Connecting to particular personal site - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - $ctx.Load($ctx.Web) - $ctx.Load($ctx.Site) - $ctx.ExecuteQuery() + ) - # loading usage data for the site - Invoke-LoadMethod -Object $ctx.Site -PropertyName "Usage" - $ctx.ExecuteQuery() - $outputty=1099511627776-$ctx.Site.Usage.StoragePercentageUsed - - # User output, feel free to modify the message content - Write-Host "Storage: " $ctx.Site.Usage.Storage - Write-Host "Percentage used: " $ctx.Site.Usage.StoragePercentageUsed - Write-Host "Storage free: " $outputty - - - - - $ctx.Dispose() - - - + # Connecting to particular personal site + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Site) + $ctx.ExecuteQuery() + + # loading usage data for the site + Invoke-LoadMethod -Object $ctx.Site -PropertyName "Usage" + $ctx.ExecuteQuery() + $outputty=1099511627776-$ctx.Site.Usage.StoragePercentageUsed + + # User output, feel free to modify the message content + Write-Host "Storage: " $ctx.Site.Usage.Storage + Write-Host "Percentage used: " $ctx.Site.Usage.StoragePercentageUsed + Write-Host "Storage free: " $outputty + + $ctx.Dispose() } @@ -99,9 +93,7 @@ $grupki=(get-unifiedgroup).sharepointsiteurl -foreach($group in $grupki) -{ - -Write-Host "Processing "$group -Get-SPOWeb -Username $admin -Url $group -AdminPassword $pass -} \ No newline at end of file +foreach($group in $grupki){ + Write-Host "Processing "$group + Get-SPOWeb -Username $admin -Url $group -AdminPassword $pass +} From 7f30138d1a0313f0e6588915792f155a71854ba1 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:54:27 +0100 Subject: [PATCH 040/129] Update description.md --- .../description.md | 21 +++++-------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/OTHER/Uninstall unwanted app from your site using Powershell/description.md b/OTHER/Uninstall unwanted app from your site using Powershell/description.md index 3d34a026..89e6fb53 100644 --- a/OTHER/Uninstall unwanted app from your site using Powershell/description.md +++ b/OTHER/Uninstall unwanted app from your site using Powershell/description.md @@ -2,13 +2,13 @@ A simple solution to uninstall an unwanted app from a Sharepoint Online site usi -1. Install SharePoint Online SDK +1. Install [SharePoint Online SDK](http://www.microsoft.com/en-us/download/details.aspx?id=42038) 2. Download the file and open (e.g. in NotePad) 3. Scroll down to these lines -PowerShell +```PowerShell # Paths to SDK. Please verify location on your computer. Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" @@ -18,7 +18,7 @@ $Username="admin@tenant.onmicrosoft.com" $AdminPassword=Read-Host -Prompt "Password" -AsSecureString $Url="https://tenant.sharepoint.com/sites/teamsitewithlibraries" $GUID="126d911b-b274-4b69-a52e-2a9e5bbae91b" - + ``` 4. Check if the 2 libraries are in the same location on your computer. If yes, proceed on. If no, change the paths in the file. Usually you will be required to change folder name "15" into "16". 5. Instead of admin@tenant.onmicrosoft.com, enter the name of your site collection admin. @@ -27,22 +27,11 @@ $GUID="126d911b-b274-4b69-a52e-2a9e5bbae91b" 7. Under GUID enter the app's guid. - - - Run the script in any Powershell module. It should ask you for your admin password and report success or detailed error: - - - - - - - - - + -Please share your feedback in the Q&A section! +**Please share your feedback in the Q&A section!** From 747361ed5586310c324c0411c67a5a1690734b92 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 04:55:57 +0100 Subject: [PATCH 041/129] Update RemoveSPOApp.ps1 --- .../RemoveSPOApp.ps1 | 64 +++++++++---------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/OTHER/Uninstall unwanted app from your site using Powershell/RemoveSPOApp.ps1 b/OTHER/Uninstall unwanted app from your site using Powershell/RemoveSPOApp.ps1 index be5824ab..869551fe 100644 --- a/OTHER/Uninstall unwanted app from your site using Powershell/RemoveSPOApp.ps1 +++ b/OTHER/Uninstall unwanted app from your site using Powershell/RemoveSPOApp.ps1 @@ -1,42 +1,36 @@ -function Uninstall-SPOApp -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Uninstall-SPOApp{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] $AdminPassword, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string]$Url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [GUID]$SPOAppGUID -) - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) - -try -{ -$ctx.ExecuteQuery() -} catch [Net.WebException] - { - - Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red -} - - $ctx.Load($ctx.Site) - $ctx.Load($ctx.Web.Webs) - $ctx.Web.GetAppInstanceById($SPOAppGUID).Uninstall() - - try - { - $ctx.ExecuteQuery() - Write-Host "Success" -ForegroundColor Green - } - catch [Net.WebException] - { - Write-Host "Failed to uninstall the app" $_.Exception.Message.ToString() -ForegroundColor Red - } - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + + try{ + $ctx.ExecuteQuery() + } + catch [Net.WebException] { + Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red + } + + $ctx.Load($ctx.Site) + $ctx.Load($ctx.Web.Webs) + $ctx.Web.GetAppInstanceById($SPOAppGUID).Uninstall() + + try{ + $ctx.ExecuteQuery() + Write-Host "Success" -ForegroundColor Green + } + catch [Net.WebException] { + Write-Host "Failed to uninstall the app" $_.Exception.Message.ToString() -ForegroundColor Red + } } @@ -50,4 +44,4 @@ $AdminPassword=Read-Host -Prompt "Password" -AsSecureString $Url="https://tenant.sharepoint.com/sites/teamsitewithlibraries" $GUID="126d911b-b274-4b69-a52e-2a9e5bbae91b" -Uninstall-SPOApp -Username $Username -AdminPassword $AdminPassword -Url $Url -SPOAppGUID $GUID \ No newline at end of file +Uninstall-SPOApp -Username $Username -AdminPassword $AdminPassword -Url $Url -SPOAppGUID $GUID From f1f72dab2d673323ccee3ccba454f4695b680b7a Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 22:10:30 +0100 Subject: [PATCH 042/129] Update description.md --- .../description.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/OneDrive for Business/Create OneDrive for Business usage report for all users/description.md b/OneDrive for Business/Create OneDrive for Business usage report for all users/description.md index cd6acad0..963a78d9 100644 --- a/OneDrive for Business/Create OneDrive for Business usage report for all users/description.md +++ b/OneDrive for Business/Create OneDrive for Business usage report for all users/description.md @@ -32,11 +32,8 @@ $mysiteHost="https://tenant-my.sharepoint.com" 4. Expected results: - - - - +

### Acknowledgement: -The script is using Invoke-LoadMethod published here, without which it could not proceed. The method was created and belongs to a brilliant SharePointer and Guru, Vadim Gremyachev. +The script is using Invoke-LoadMethod published here, without which it could not proceed. The method was created and belongs to a brilliant SharePointer and Guru, [Vadim Gremyachev.](https://sharepoint.stackexchange.com/users/10610/vadim-gremyachev) From e155bce6526ef86648a333d3b7e6ba6abf2ce6cf Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 22:11:56 +0100 Subject: [PATCH 043/129] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/description.md b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/description.md index 59cc0a80..f2978e30 100644 --- a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/description.md +++ b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/description.md @@ -1,6 +1,6 @@ Powershell script that enables versioning for all the libraries and lists in all personal sites (OneDrive for Business). -It requires SharePoint Online Management Shell and SharePoint SDK installed: +**It requires SharePoint Online Management Shell and SharePoint SDK installed:** http://technet.microsoft.com/en-us/library/fp161372(v=office.15).aspx From d5a667e846a17dc23ff41bea7552a88cd459b589 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 22:13:43 +0100 Subject: [PATCH 044/129] Update Enable versioning in ODB lists.ps1 --- .../Enable versioning in ODB lists.ps1 | 85 ++++++++----------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 index eb9532c5..6068a58a 100644 --- a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 +++ b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 @@ -1,54 +1,45 @@ -function Set-SPOListVersioning($EnableVersioning, $Urelek) -{ - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $Adminpassword) - $ctx.Load($ctx.Web.Lists) - $ctx.Load($ctx.Web) - $ctx.Load($ctx.Web.Webs) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { - $ll.EnableVersioning = $EnableVersioning - $ll.Update() - $csvvalue= new-object PSObject +function Set-SPOListVersioning($EnableVersioning, $Urelek){ + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $Adminpassword) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + + foreach( $ll in $ctx.Web.Lists){ + $ll.EnableVersioning = $EnableVersioning + $ll.Update() + $csvvalue= new-object PSObject $listurl=$null + if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url+$ll.Title} else {$listurl=$ctx.Url+"/"+$ll.Title} + $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" - try - { - $ErrorActionPreference="Stop" - $ctx.ExecuteQuery() - Write-Host $listurl -ForegroundColor DarkGreen - $csvvalue.Status="Success" - $Global:csv+= $csvvalue + + try{ + $ErrorActionPreference="Stop" + $ctx.ExecuteQuery() + Write-Host $listurl -ForegroundColor DarkGreen + $csvvalue.Status="Success" + $Global:csv+= $csvvalue } - - catch - { + catch{ $Global:csv+= $csvvalue Write-Host $listurl -ForegroundColor Red } finally {$ErrorActionPreference="Continue"} - - } - if($ctx.Web.Webs.Count -gt 0) - { - for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) - { + if($ctx.Web.Webs.Count -gt 0){ + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++){ Set-SPOListVersioning -EnableVersioning $EnableVersioning -Urelek ($ctx.Web.Webs[$i].Url) } - } - - - } @@ -71,23 +62,19 @@ $users=get-SPOUser -Site $myhost $EnableVersioning=$true $Global:csv=@() -foreach($user in $users) -{ - - - if($user.LoginName.Contains('@')) - { - $persweb=$user.LoginName.Replace(".","_").Replace("@","_") - $persweb=$myhost+"/personal/"+$persweb - Write-Host $persweb +foreach($user in $users){ + if($user.LoginName.Contains('@')){ + $persweb=$user.LoginName.Replace(".","_").Replace("@","_") + $persweb=$myhost+"/personal/"+$persweb + Write-Host $persweb - $AdminUrl=$persweb + $AdminUrl=$persweb - #Add the following line if you want to assign yourself, administrator or another user access to other users' personal sites - #Set-SPOUser -Site $AdminUrl -IsSiteCollectionAdmin $true -LoginName t@trial765.onmicrosoft.com - Set-SPOListVersioning -EnableVersioning $EnableVersioning -Urelek $AdminUrl + #Add the following line if you want to assign yourself, administrator or another user access to other users' personal sites + #Set-SPOUser -Site $AdminUrl -IsSiteCollectionAdmin $true -LoginName t@trial765.onmicrosoft.com + Set-SPOListVersioning -EnableVersioning $EnableVersioning -Urelek $AdminUrl } } # Specify the path where the log file will be published -$Global:csv | Export-Csv -Path C:\Users\Public\Versioning.csv \ No newline at end of file +$Global:csv | Export-Csv -Path C:\Users\Public\Versioning.csv From 3f9dd21a8f4abea8c85e32e35f5bc253efedd794 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 22:15:37 +0100 Subject: [PATCH 045/129] Update description.md --- .../description.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OneDrive for Business/Update locale id for all personal sites/description.md b/OneDrive for Business/Update locale id for all personal sites/description.md index 08bac44b..e4c321ed 100644 --- a/OneDrive for Business/Update locale id for all personal sites/description.md +++ b/OneDrive for Business/Update locale id for all personal sites/description.md @@ -1,11 +1,11 @@ -Acknowledegement -The script uses Vadim Gremyachev's Invoke-LoadMethod published here +## Acknowledegement +The script uses [Vadim Gremyachev's](https://sharepoint.stackexchange.com/users/10610/vadim-gremyachev) Invoke-LoadMethod published [here](https://sharepoint.stackexchange.com/questions/126221/spo-retrieve-hasuniqueroleassignements-property-using-powershell) -Description +## Description The script updates locale id in regional settings of all personal sites to which you have access. The locale id can later be verified by going to Site Settings>Regional Settings. @@ -50,7 +50,7 @@ Set-SPOUser -Site $urelek -LoginName $username -IsSiteCollectionAdmin $true ``` -In order to use the cmdlet, you can either modify the.ps1 file or write a separate script. +In order to use the cmdlet, you can either modify the ```.ps1``` file or write a separate script. From f1270ed5c3eb9e50de588494e9935847970b4d1f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Fri, 28 Feb 2020 22:17:31 +0100 Subject: [PATCH 046/129] Update LocaleID.ps1 --- .../LocaleID.ps1 | 77 +++++++++---------- 1 file changed, 35 insertions(+), 42 deletions(-) diff --git a/OneDrive for Business/Update locale id for all personal sites/LocaleID.ps1 b/OneDrive for Business/Update locale id for all personal sites/LocaleID.ps1 index 6de5c803..12f20701 100644 --- a/OneDrive for Business/Update locale id for all personal sites/LocaleID.ps1 +++ b/OneDrive for Business/Update locale id for all personal sites/LocaleID.ps1 @@ -1,41 +1,41 @@  # Vadim Gremyachev's function - Function Invoke-LoadMethod() { -param( - [Microsoft.SharePoint.Client.ClientObject]$Object = $(throw "Please provide a Client Object"), - [string]$PropertyName -) - $ctx = $Object.Context - $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load") - $type = $Object.GetType() - $clientLoad = $load.MakeGenericMethod($type) - - - $Parameter = [System.Linq.Expressions.Expression]::Parameter(($type), $type.Name) - $Expression = [System.Linq.Expressions.Expression]::Lambda( - [System.Linq.Expressions.Expression]::Convert( - [System.Linq.Expressions.Expression]::PropertyOrField($Parameter,$PropertyName), - [System.Object] - ), - $($Parameter) - ) +Function Invoke-LoadMethod() { + param( + [Microsoft.SharePoint.Client.ClientObject]$Object = $(throw "Please provide a Client Object"), + [string]$PropertyName + ) + + $ctx = $Object.Context + $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load") + $type = $Object.GetType() + $clientLoad = $load.MakeGenericMethod($type) + + + $Parameter = [System.Linq.Expressions.Expression]::Parameter(($type), $type.Name) + $Expression = [System.Linq.Expressions.Expression]::Lambda( + [System.Linq.Expressions.Expression]::Convert( + [System.Linq.Expressions.Expression]::PropertyOrField($Parameter,$PropertyName), + [System.Object] + ), + $($Parameter) + ) + $ExpressionArray = [System.Array]::CreateInstance($Expression.GetType(), 1) $ExpressionArray.SetValue($Expression, 0) $clientLoad.Invoke($ctx,@($Object,$ExpressionArray)) } -function Set-SPOUserRegionalSettings -{ - +function Set-SPOUserRegionalSettings{ param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - $AdminPassword, + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + $AdminPassword, [Parameter(Mandatory=$true,Position=3)] - [string]$Url, + [string]$Url, [Parameter(Mandatory=$true,Position=3)] - [string]$LocaleID - ) + [string]$LocaleID + ) $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) @@ -49,12 +49,10 @@ function Set-SPOUserRegionalSettings Write-Host "Old locale id: " $ctx.Web.RegionalSettings.LocaleId.ToString() - $ctx.Web.RegionalSettings.LocaleId=$LocaleID -$ctx.Web.Update() -$ctx.ExecuteQuery() - - - } + $ctx.Web.RegionalSettings.LocaleId=$LocaleID + $ctx.Web.Update() + $ctx.ExecuteQuery() +} @@ -72,19 +70,14 @@ $LocaleID=1033 $users=get-SPOUser -Site $myhost -foreach($user in $users) -{ - - - if($user.LoginName.Contains('@')) - { +foreach($user in $users){ + if($user.LoginName.Contains('@')){ $persweb=$user.LoginName.Replace(".","_").Replace("@","_") $persweb=$myhost+"/personal/"+$persweb Write-Host $persweb $AdminUrl=$persweb - Set-SPOUserRegionalSettings -Username $Username -AdminPassword $AdminPassword -Url $AdminUrl -LocaleID $LocaleID } } From 78df7989824200c7440bd319de8f4a6f92ed29a2 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:40:57 +0100 Subject: [PATCH 047/129] Update description.md --- .../description.md | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/description.md b/Power Automate/Disable Flows in all lists on SharePoint site/description.md index 5ed30198..20c7017b 100644 --- a/Power Automate/Disable Flows in all lists on SharePoint site/description.md +++ b/Power Automate/Disable Flows in all lists on SharePoint site/description.md @@ -1,35 +1,25 @@ Short Powershell script that disables flows for all lists and libraries in SharePoint Online modern site. -It modifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article Verifying and modifying Flows Policy in SharePoint Online site using Powershell on the TechNet Wiki. +It modifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article [Verifying and modifying Flows Policy in SharePoint Online site using Powershell](https://social.technet.microsoft.com/wiki/contents/articles/39331.sharepoint-online-verifying-and-modifying-flows-policy-in-site-using-powershell.aspx) on the TechNet Wiki. If the setting is set to disabled, the flows button will be missing on all lists and libraries in the site: - - - - - - - - - - - - - + + ### How to use? -Download and open the .ps1 file. -Add correct libraries: -PowerShell +- Download and open the .ps1 file. +- Add correct libraries: + +```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" - -Enter the correct url and admin login: +``` +- Enter the correct url and admin login: ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -37,7 +27,7 @@ $username="admin@TENANT.onmicrosoft.com" $AdminUrl="https://TENANT-admin.sharepoint.com" $Url="https://TENANT.sharepoint.com" ``` - Run the script +- Run the script From ab914a67cad114efd420acdf40a7cbe771db3647 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:42:02 +0100 Subject: [PATCH 048/129] Update disableFlows.ps1 --- .../disableFlows.ps1 | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 index 917f43ec..426e46ba 100644 --- a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 +++ b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 @@ -1,15 +1,14 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$AdminUrl, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $Password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] $Url - ) + ) $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) @@ -47,4 +46,4 @@ $Url="https://TENANT.sharepoint.com" -Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url \ No newline at end of file +Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url From 49e50d81bd05cf54b44fcb6896932ae5887378a7 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:45:23 +0100 Subject: [PATCH 049/129] Update description.md --- .../description.md | 39 ++++++------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md index dd6d4147..7b991c5e 100644 --- a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md +++ b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md @@ -1,48 +1,33 @@ Short Powershell script that enables flows for all lists and libraries in SharePoint Online modern site. -It modifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article Verifying and modifying Flows Policy in SharePoint Online site using Powershell on the TechNet Wiki. +It modifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article [Verifying and modifying Flows Policy in SharePoint Online site using Powershell](https://social.technet.microsoft.com/wiki/contents/articles/39331.sharepoint-online-verifying-and-modifying-flows-policy-in-site-using-powershell.aspx) on the TechNet Wiki. If the setting is set to disabled, the flows button will be missing on all lists and libraries in the site: + + - - - - - +## How to use? +- Download and open the .ps1 file. +- Add correct libraries: - - - - - - -How to use? -Download and open the .ps1 file. -Add correct libraries: - - -PowerShell +```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" + ``` +- Enter the correct url and admin login: - -Enter the correct url and admin login: - - -PowerShell +```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $AdminUrl="https://TENANT-admin.sharepoint.com" $Url="https://TENANT.sharepoint.com" - - - - Run the script + ``` + - Run the script From 1be55f62b079a037cba69faf121a645b7daf7089 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:46:35 +0100 Subject: [PATCH 050/129] Update enableFlows.ps1 --- .../enableFlows.ps1 | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 index 20d0f830..e2055749 100644 --- a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 +++ b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 @@ -1,15 +1,14 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$AdminUrl, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $Password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] $Url - ) + ) $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) @@ -47,4 +46,4 @@ $Url="https://TENANT.sharepoint.com" -Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url \ No newline at end of file +Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url From 33589ede08a622662c67e7c405275db96df7fc08 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:49:22 +0100 Subject: [PATCH 051/129] Update description.md --- .../description.md | 36 ++++++------------- 1 file changed, 10 insertions(+), 26 deletions(-) diff --git a/Power Automate/Get FlowsPolicy using REST API/description.md b/Power Automate/Get FlowsPolicy using REST API/description.md index 0f0474e2..d8706e41 100644 --- a/Power Automate/Get FlowsPolicy using REST API/description.md +++ b/Power Automate/Get FlowsPolicy using REST API/description.md @@ -1,40 +1,24 @@ -Powershell script that verifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article Verifying and modifying Flows Policy in SharePoint Online site using Powershell on the TechNet Wiki. +Powershell script that verifies DisableFlows property of a SharePoint Online site. The script is related to and more described in an article [Verifying and modifying Flows Policy in SharePoint Online site using Powershell](https://social.technet.microsoft.com/wiki/contents/articles/39331.sharepoint-online-verifying-and-modifying-flows-policy-in-site-using-powershell.aspx) on the TechNet Wiki. If the setting is set to disabled, the flows button will be missing on all lists and libraries in the site: - - - - - - - + + The property can also be verified using REST API in the browser: + - - - - - - - - - - - - - -How to use? -Download and open the .ps1 file. -Enter the correct url and admin login: -PowerShell +## How to use? +- Download and open the .ps1 file. +- Enter the correct url and admin login: +```PowerShell $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT.sharepoint.com" - Run the script +``` +- Run the script From b6a5cf8f0f876c1a2d830cfff285e9a5c798311f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 13:50:19 +0100 Subject: [PATCH 052/129] Update flowsWithRest.ps1 --- .../flowsWithRest.ps1 | 41 +++++++------------ 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 b/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 index df21b879..ff7c5f8a 100644 --- a/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 +++ b/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 @@ -1,26 +1,21 @@ -function Get-SPOFlowSetting -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOFlowSetting{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$false,Position=2)] + [Parameter(Mandatory=$false,Position=2)] [SecureString] $password = (Read-Host -AsSecureString), - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string] $url, - [Parameter(Mandatory=$false,Position=4)] - [string] $object="" - ) - - + [Parameter(Mandatory=$false,Position=4)] + [string] $object="" + ) - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $RestUrl=$url+"/_api/site/" - if($object -ne "") - { - $RestUrl+=$object - } - - + $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $RestUrl=$url+"/_api/site/" + + if($object -ne ""){ + $RestUrl+=$object + } $request = [System.Net.WebRequest]::Create($RESTUrl) $request.Credentials = $Credentials @@ -34,13 +29,7 @@ param ( $data=$read.ReadToEnd() $results = $data | ConvertFrom-Json Write-Output $results.d - - - - - - - } +} From 6308f88c6983af95088a0d0dc393bb3ff984ff48 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:09:33 +0100 Subject: [PATCH 053/129] Update mailb.ps1 --- SiteMailboxes/mailb.ps1 | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/SiteMailboxes/mailb.ps1 b/SiteMailboxes/mailb.ps1 index b2dc6dac..fbbf65f3 100644 --- a/SiteMailboxes/mailb.ps1 +++ b/SiteMailboxes/mailb.ps1 @@ -69,15 +69,11 @@ import-pssession $sesja $sitecollections=Get-SPOSite Write-Host "Found site collections:" -foreach($sitecoll in $sitecollections) -{ +foreach($sitecoll in $sitecollections){ Write-Host $sitecoll.Url } - - -function Add-MailboxToSite($urelek) -{ +function Add-MailboxToSite($urelek){ $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($urelek) $ctx.Credentials= New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) $rootWeb = $ctx.Web @@ -94,36 +90,30 @@ function Add-MailboxToSite($urelek) new-sitemailbox -displayName $rootWeb.Title -SharePointUrl $rootWeb.Url - foreach($site in $sites) - { + foreach($site in $sites){ $site.Features.Add($featureguid, $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) | Out-Null $ctx.ExecuteQuery() Write-Host "Feature enabled for" $site.Url - } - Write-Host "Finished enabling site mailbox feature on" $rootWeb.Title " : " $rootWeb.Url - + } + + Write-Host "Finished enabling site mailbox feature on" $rootWeb.Title " : " $rootWeb.Url - foreach($site in $sites) - { - Write-Host "Trying to add mailbox for" $site.Url - new-sitemailbox -displayName $site.Title -SharePointUrl $site.Url -ErrorAction SilentlyContinue | Out-Null } + foreach($site in $sites){ + Write-Host "Trying to add mailbox for" $site.Url + new-sitemailbox -displayName $site.Title -SharePointUrl $site.Url -ErrorAction SilentlyContinue | Out-Null } Write-Host "Finished adding mailboxes on" $rootWeb.Title " : " $rootWeb.Url - - if($ctx.Web.Webs.Count -gt 0) - { - for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) - { + if($ctx.Web.Webs.Count -gt 0){ + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++){ Add-MailboxToSite($ctx.Web.Webs[$i].Url) } } } - foreach($sitecoll in $sitecollections) -{ - Add-MailboxToSite($sitecoll.Url) -} + foreach($sitecoll in $sitecollections){ + Add-MailboxToSite($sitecoll.Url) + } #Finishes by saving a transcript of the whole run to a local folder Stop-Transcript From 19f17dbb6268e9abb62973e987056e115f0f198f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:10:20 +0100 Subject: [PATCH 054/129] Update mailbox1.ps1 --- SiteMailboxes/mailbox1.ps1 | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/SiteMailboxes/mailbox1.ps1 b/SiteMailboxes/mailbox1.ps1 index 65730096..adb4809c 100644 --- a/SiteMailboxes/mailbox1.ps1 +++ b/SiteMailboxes/mailbox1.ps1 @@ -78,22 +78,20 @@ new-sitemailbox -displayName $rootWeb.Title -SharePointUrl $rootWeb.Url #adding the feature and the mailbox for all the subsites. It checks for first-level subsites. If your structure is more complex, you need to add more loops - foreach($site in $sites) - { +foreach($site in $sites){ $site.Features.Add($featureguid, $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) $ctx.ExecuteQuery() Write-Host "Feature enabled for" $site.Url - } - Write-Host "Finished enabling site mailbox feature." +} + +Write-Host "Finished enabling site mailbox feature." - - foreach($site in $sites) - { +foreach($site in $sites){ new-sitemailbox -displayName $site.Title -SharePointUrl $site.Url - } +} - Write-Host "Finished adding mailboxes." +Write-Host "Finished adding mailboxes." #Finishes by saving a transcript of the whole run to a local folder - Stop-Transcript \ No newline at end of file + Stop-Transcript From 68dcb40122364510f3d354b3abb55605acd524f4 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:12:51 +0100 Subject: [PATCH 055/129] Update description.md --- .../description.md | 33 ++++++------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md index 1cc60d1b..a4152221 100644 --- a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md +++ b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/description.md @@ -1,20 +1,18 @@ Short Powershell script to send bcc copies to all sharing invitations send from users' OneDrives for Business. The script uses CSOM with December 2015 update. - - - +## How to use? -How to use? -Download and open the .ps1 file. -Add correct SharePoint Online SDK libraries: +- Download and open the .ps1 file. +- Add correct SharePoint Online SDK libraries: -PowerShell +```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" - Enter the correct url, and admin login. Under InvitationsList, enter the email addresses that you want to add in BCC to every sharing invitation in your users' OneDrive for Business. You will be additionally prompted for the password. Do not enter it in the file: -PowerShell +``` +- Enter the correct url, and admin login. Under InvitationsList, enter the email addresses that you want to add in BCC to every sharing invitation in your users' OneDrive for Business. You will be additionally prompted for the password. Do not enter it in the file: +```PowerShell $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} @@ -23,20 +21,9 @@ PowerShell $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" + ``` +- Run the script - Run the script - - - - - - After the setting takes place, the BCC emails will start receiving copies of the sharing invitations with Invited person's email in the "TO" field and inviter's in "CC": - - - - - - - + From 6a56a889445abc699aa62d6d14a53b99bc8c7a9f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:13:42 +0100 Subject: [PATCH 056/129] Update BccExternalSharingInvitations.ps1 --- .../BccExternalSharingInvitations.ps1 | 53 +++++++------------ 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 index d7993850..c143e6dd 100644 --- a/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 +++ b/Tenant Settings/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 @@ -1,48 +1,35 @@ -function Set-SPOTenant -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOTenant{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.BccExternalSharingInvitations=$true - $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.BccExternalSharingInvitations=$true + $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" - - - - - -Set-SPOTenant -Username $username -Url $Url -password $AdminPassword \ No newline at end of file +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword From d1f6863df1da0da284c6249669316a5e2f6c4cd6 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:14:59 +0100 Subject: [PATCH 057/129] Update description.md --- .../description.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Tenant Settings/Allow external sharing only with specific domains/description.md b/Tenant Settings/Allow external sharing only with specific domains/description.md index 707c197e..c0257d59 100644 --- a/Tenant Settings/Allow external sharing only with specific domains/description.md +++ b/Tenant Settings/Allow external sharing only with specific domains/description.md @@ -2,22 +2,23 @@ Short Powershell script that limits external sharing in SharePoint Online to onl -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). -### How to use? -Download and open the .ps1 file. -Add correct libraries: +## How to use? + +- Download and open the .ps1 file. +- Add correct libraries: ``` PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` -Enter the correct url and admin login: +- Enter the correct url and admin login: ```PowerShell @@ -27,5 +28,5 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $AllowDomainList="test.com madeup.com" ``` -Run the script +- Run the script From d0ce9a4500d2def533d9163aff7d7ee91ae3c2e0 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:16:05 +0100 Subject: [PATCH 058/129] Update SharingAllowedDomainList.ps1 --- .../SharingAllowedDomainList.ps1 | 54 ++++++++----------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/Tenant Settings/Allow external sharing only with specific domains/SharingAllowedDomainList.ps1 b/Tenant Settings/Allow external sharing only with specific domains/SharingAllowedDomainList.ps1 index 8a5388a3..6d2520cc 100644 --- a/Tenant Settings/Allow external sharing only with specific domains/SharingAllowedDomainList.ps1 +++ b/Tenant Settings/Allow external sharing only with specific domains/SharingAllowedDomainList.ps1 @@ -1,50 +1,38 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] $AllowDomainList - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.SharingDomainRestrictionMode=[Microsoft.Online.SharePoint.TenantManagement.SharingDomainRestrictionModes]::AllowList - $spoTenant.SharingAllowedDomainList=$AllowDomainList - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.SharingDomainRestrictionMode=[Microsoft.Online.SharePoint.TenantManagement.SharingDomainRestrictionModes]::AllowList + $spoTenant.SharingAllowedDomainList=$AllowDomainList + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $AllowDomainList="test.com madeup.com" - - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -AllowDomainList $AllowDomainList \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -AllowDomainList $AllowDomainList From b5d9ea6c955cfe1d7b3003713275647947dbbe5d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:17:55 +0100 Subject: [PATCH 059/129] Update description.md --- .../description.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md b/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md index 18904912..9be5637b 100644 --- a/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md +++ b/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md @@ -2,28 +2,29 @@ Short PowerShell script to force external users to accept sharing invitations wi It is one of the 3 additional settings: -Limit external sharing using domains -Prevent external users from sharing files, folders, and sites that they don’t own -External users must accept sharing invitations using the same account that the invitations were sent to +- Limit external sharing using domains +- Prevent external users from sharing files, folders, and sites that they don’t own +- External users must accept sharing invitations using the same account that the invitations were sent to The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. - + ### How to use? -Download and open the .ps1 file. -Add correct libraries: + +- Download and open the .ps1 file. +- Add correct libraries: ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" -```Enter the correct url and admin login: - +``` +- Enter the correct url and admin login: ```PowerShell #Enter the data @@ -31,4 +32,5 @@ $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $RequireAcceptingAccountMatchInvitedAccount=$true -``` Run the script +``` +- Run the script From bf6aea4fc1581480ea1ea7a53ad82fd9e627df0d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:18:22 +0100 Subject: [PATCH 060/129] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md b/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md index 9be5637b..b960b28e 100644 --- a/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md +++ b/Tenant Settings/Force external users to accept sharing invitations with the same account/description.md @@ -9,7 +9,7 @@ It is one of the 3 additional settings: -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). From 58edb6a18dfaa51856f78dab05dcc427eeedbe41 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:18:57 +0100 Subject: [PATCH 061/129] Update RequireAcceptingAccountMatchInvitedAccount.ps1 --- ...ireAcceptingAccountMatchInvitedAccount.ps1 | 54 ++++++++----------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/Tenant Settings/Force external users to accept sharing invitations with the same account/RequireAcceptingAccountMatchInvitedAccount.ps1 b/Tenant Settings/Force external users to accept sharing invitations with the same account/RequireAcceptingAccountMatchInvitedAccount.ps1 index 49b50751..1b8470c6 100644 --- a/Tenant Settings/Force external users to accept sharing invitations with the same account/RequireAcceptingAccountMatchInvitedAccount.ps1 +++ b/Tenant Settings/Force external users to accept sharing invitations with the same account/RequireAcceptingAccountMatchInvitedAccount.ps1 @@ -1,49 +1,37 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] - $RequireAcceptingAccountMatchInvitedAccount - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.RequireAcceptingAccountMatchInvitedAccount=$RequireAcceptingAccountMatchInvitedAccount - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + [Parameter(Mandatory=$true,Position=4)] + $RequireAcceptingAccountMatchInvitedAccount + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.RequireAcceptingAccountMatchInvitedAccount=$RequireAcceptingAccountMatchInvitedAccount + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $RequireAcceptingAccountMatchInvitedAccount=$true - - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -RequireAcceptingAccountMatchInvitedAccount $RequireAcceptingAccountMatchInvitedAccount \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -RequireAcceptingAccountMatchInvitedAccount $RequireAcceptingAccountMatchInvitedAccount From f778652597ffa2ee6f232b84a34bc9f957468311 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:21:11 +0100 Subject: [PATCH 062/129] Update README.md --- .../README.md | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/README.md b/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/README.md index 2bc03c88..bd1e3b59 100644 --- a/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/README.md +++ b/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/README.md @@ -152,22 +152,15 @@ ServerObjectIsNull : False TypedObject - - - - - Expected results +## Expected results - - - + - +## How to use? -### How to use? -Download and open the .ps1 file. -Add correct libraries: +- Download and open the .ps1 file. +- Add correct libraries: ```PowerShell @@ -175,7 +168,7 @@ Add correct libraries: 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` -Enter the correct url and admin login: +- Enter the correct url and admin login: ```PowerShell @@ -185,5 +178,5 @@ $Url="https://TENANT-admin.sharepoint.com" ``` - Run the script +- Run the script From 458afeab21e1faad4fb1505d904f10abf423e0f0 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:21:47 +0100 Subject: [PATCH 063/129] Update tenantProps.ps1 --- .../tenantProps.ps1 | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/tenantProps.ps1 b/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/tenantProps.ps1 index 91bf582e..5288f776 100644 --- a/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/tenantProps.ps1 +++ b/Tenant Settings/Get SharePoint Online tenant properties using Powershell and CSOM/tenantProps.ps1 @@ -1,43 +1,33 @@ -function Get-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password - ) + ) + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - - Write-Output $spoTenant + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" #Microsoft.Online.SharePoint.TenantAdministration.SiteProperties.AllowLimitedAccess - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" - - - -Get-SiteColl -Username $username -Url $Url -password $AdminPassword \ No newline at end of file +Get-SiteColl -Username $username -Url $Url -password $AdminPassword From fd85618adcebf7e49632c5f8c330eb175d05548b Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:23:24 +0100 Subject: [PATCH 064/129] Update description.md --- .../description.md | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md index 92bd29fa..d2189e8a 100644 --- a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md +++ b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/description.md @@ -8,23 +8,19 @@ The script uses CSOM and requires SharePoint Online SDK. This button will be removed with the script: - - - - - + ### How to use? -Download and open the .ps1 file. -Add correct SharePoint Online SDK libraries: - +- Download and open the ```.ps1``` file. +- Add correct SharePoint Online SDK libraries: ```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" -``` Enter the correct url, the setting for the sync button, and admin login. You will be additionally prompted for the password. Do not enter it in the file: - +``` + +- Enter the correct url, the setting for the sync button, and admin login. You will be additionally prompted for the password. Do not enter it in the file: ```PowerShell #Enter the data @@ -34,6 +30,5 @@ $Url="https://TENANT-admin.sharepoint.com" $HideSyncButtonOnODB=$true #Whether the sync button should be hidden ``` - - Run the script +- Run the script From a9a19b9b3568ec4a45f6b6495beb81293f22e09c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:24:01 +0100 Subject: [PATCH 065/129] Update HideSyncButtonOnODB.ps1 --- .../HideSyncButtonOnODB.ps1 | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 index 9a4926cd..6e40036d 100644 --- a/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 +++ b/Tenant Settings/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 @@ -1,48 +1,37 @@ -function Set-SPOTenant -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOTenant{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [Bool]$HideSyncButtonOnODB - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.HideSyncButtonOnODB=$HideSyncButtonOnODB - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.HideSyncButtonOnODB=$HideSyncButtonOnODB + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="arleta@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $HideSyncButtonOnODB=$true #Whether the sync button should be hidden - - - -Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -HideSyncButtonOnODB $HideSyncButtonOnODB \ No newline at end of file +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -HideSyncButtonOnODB $HideSyncButtonOnODB From 352cf48b2141fdb0f4d0a72c5a5d5481bfb55ab1 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:25:25 +0100 Subject: [PATCH 066/129] Update description.md --- .../description.md | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/Tenant Settings/Modify external sharing setting/description.md b/Tenant Settings/Modify external sharing setting/description.md index 03e80910..6c4018ca 100644 --- a/Tenant Settings/Modify external sharing setting/description.md +++ b/Tenant Settings/Modify external sharing setting/description.md @@ -5,27 +5,22 @@ It requires SharePoint Online SDK. The script is part of and more described in a TechNet Wiki [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom.aspx?Sort=MostRecent&PageIndex=1) article. +## How to use? +- Download and open the .ps1 file. +- Add correct libraries: - - - - - -###How to use? -Download and open the .ps1 file. -Add correct libraries: - - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" -```Enter the correct url and admin login: +``` +- Enter the correct url and admin login: ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $SharingCapability="Disabled" # Disabled, ExternalUserSharingOnly, ExternalUserAndGuestSharing, ExistingExternalUserSharingOnly -```Run the script +``` +- Run the script From 732228c77f560af7c63f42f604a6fb9fedabeb3c Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:26:38 +0100 Subject: [PATCH 067/129] Update SharingCapability.ps1 --- .../SharingCapability.ps1 | 56 ++++++++----------- 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/Tenant Settings/Modify external sharing setting/SharingCapability.ps1 b/Tenant Settings/Modify external sharing setting/SharingCapability.ps1 index 51542efa..f59c6674 100644 --- a/Tenant Settings/Modify external sharing setting/SharingCapability.ps1 +++ b/Tenant Settings/Modify external sharing setting/SharingCapability.ps1 @@ -1,50 +1,38 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] - $SharingCapability - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - - $spoTenant.SharingCapability=[Microsoft.Online.SharePoint.TenantManagement.SharingCapabilities]::$SharingCapability - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + [Parameter(Mandatory=$true,Position=4)] + $SharingCapability + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + + $spoTenant.SharingCapability=[Microsoft.Online.SharePoint.TenantManagement.SharingCapabilities]::$SharingCapability + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $SharingCapability="Disabled" # Disabled, ExternalUserSharingOnly, ExternalUserAndGuestSharing, ExistingExternalUserSharingOnly - - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -SharingCapability $SharingCapability \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -SharingCapability $SharingCapability From dc7a58ec49544070db3cbb4d0ff442685a9c240d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:28:10 +0100 Subject: [PATCH 068/129] Update description.md --- .../description.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/description.md b/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/description.md index 626a5826..09e4549a 100644 --- a/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/description.md +++ b/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/description.md @@ -1,22 +1,22 @@ Short Powershell script that enables or disables a setting to send emails to OneDrive for Business owners when someone creates an anonymous link to the ODB owner's content. It uses CSOm and requires SharePoint Online SDK. The script is part of and more explained in a Technet Wiki article: -OneDrive for Business notification settings with Powershell +[OneDrive for Business notification settings with Powershell](https://social.technet.microsoft.com/wiki/contents/articles/39385.onedrive-for-business-notifications-with-powershell.aspx) -###How to use? -Download and open the .ps1 file. -Add correct libraries: - +## How to use? +- Download and open the .ps1 file. +- Add correct libraries: + ```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` +- Enter the correct url and admin login: -Enter the correct url and admin login: ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -25,5 +25,4 @@ $Url="https://TENANT-admin.sharepoint.com" $OwnerAnonymousNotification=$true #Whether ODB owner should be notified when anonymous link is created or changed ``` - - Run the script +- Run the script From 8fa7ffc7c80d33b39e7a8a8768fae5a9bb695341 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:28:44 +0100 Subject: [PATCH 069/129] Update OwnerAnonymousNotification.ps1 --- .../OwnerAnonymousNotification.ps1 | 53 ++++++++----------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/OwnerAnonymousNotification.ps1 b/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/OwnerAnonymousNotification.ps1 index 6afcce9e..23282e52 100644 --- a/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/OwnerAnonymousNotification.ps1 +++ b/Tenant Settings/Notify OneDrive for Business owner if anonymous link to their content is created/OwnerAnonymousNotification.ps1 @@ -1,41 +1,33 @@ -function Set-SPOTenant -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOTenant{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [Bool]$OwnerAnonymousNotification - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.NotificationsInOneDriveForBusinessEnabled =$true - $spoTenant.OwnerAnonymousNotification=$OwnerAnonymousNotification - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.NotificationsInOneDriveForBusinessEnabled =$true + $spoTenant.OwnerAnonymousNotification=$OwnerAnonymousNotification + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -43,7 +35,4 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $OwnerAnonymousNotification=$true #Whether ODB owner should be notified when anonymous link is created or changed - - - -Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -OwnerAnonymousNotification $OwnerAnonymousNotification \ No newline at end of file +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -OwnerAnonymousNotification $OwnerAnonymousNotification From 4cca8fa4dd09d2a0138f36ea65da53ca36ef5543 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:30:18 +0100 Subject: [PATCH 070/129] Update description.md --- .../description.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md index 7433eab2..a7c3e28e 100644 --- a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md +++ b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/description.md @@ -2,23 +2,20 @@ Short Powershell script that enables or disables a setting to send emails to One It uses CSOM and requires SharePoint Online SDK. The script is part of and more explained in a Technet Wiki article: -OneDrive for Business notification settings with Powershell +[OneDrive for Business notification settings with Powershell](https://social.technet.microsoft.com/wiki/contents/articles/39385.onedrive-for-business-notifications-with-powershell.aspx) - +## How to use? - - -### How to use? -Download and open the .ps1 file. -Add correct libraries: - +- Download and open the .ps1 file. +- Add correct libraries: ```PowerShell #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" -``` Enter the correct url and admin login: - +``` + +- ter the correct url and admin login: ```PowerShell #Enter the data @@ -28,4 +25,4 @@ $Url="https://TENANT-admin.sharepoint.com" $NotifyOwnersWhenItemsReshare=$true #Whether ODB owner should be notified the content is reshared with external users ``` - Run the script +- Run the script From fda0cd0b204cd5b95bb483a955b96bc1d8f9669f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:31:04 +0100 Subject: [PATCH 071/129] Update NotifyOwnersWhenItemsReshared.ps1 --- .../NotifyOwnersWhenItemsReshared.ps1 | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 index 7db9720c..7bf757ae 100644 --- a/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 +++ b/Tenant Settings/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 @@ -1,48 +1,37 @@ -function Set-SPOTenant -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SPOTenant{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [Bool]$NotifyOwnersWhenItemsReshared - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.NotifyOwnersWhenItemsReshared=$NotifyOwnersWhenItemsReshared - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.NotifyOwnersWhenItemsReshared=$NotifyOwnersWhenItemsReshared + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $NotifyOwnersWhenItemsReshared=$true #Whether ODB owner should be notified the content is reshared with external users - - - -Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -NotifyOwnersWhenItemsReshared $NotifyOwnersWhenItemsReshared \ No newline at end of file +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword -NotifyOwnersWhenItemsReshared $NotifyOwnersWhenItemsReshared From e2242a5f52f2002b2da3f84dd0e0f80334d465a7 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:33:05 +0100 Subject: [PATCH 072/129] Update description.md --- .../description.md | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/Tenant Settings/Prevent external users from resharing/description.md b/Tenant Settings/Prevent external users from resharing/description.md index ee55c795..abd5f1a8 100644 --- a/Tenant Settings/Prevent external users from resharing/description.md +++ b/Tenant Settings/Prevent external users from resharing/description.md @@ -2,31 +2,26 @@ Short PowerShell script to prevent external users from sharing files, folders, a It is one of the 3 additional settings: -Limit external sharing using domains -Prevent external users from sharing files, folders, and sites that they don’t own -External users must accept sharing invitations using the same account that the invitations were sent to +- Limit external sharing using domains +- Prevent external users from sharing files, folders, and sites that they don’t own +- External users must accept sharing invitations using the same account that the invitations were sent to + - - -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). - +## How to use? -How to use? -Download and open the .ps1 file. -Add correct libraries: +- Download and open the .ps1 file. +- Add correct libraries: - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` - -Enter the correct url and admin login: - +- Enter the correct url and admin login: ```PowerShell #Enter the data @@ -35,8 +30,7 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $PreventExternalUsersFromResharing=$true ``` - - Run the script +- Run the script From 51d00666245a89381865b21a0328c7c0260543b0 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:33:50 +0100 Subject: [PATCH 073/129] Update PreventExternalUsersFromResharing.ps1 --- .../PreventExternalUsersFromResharing.ps1 | 54 ++++++++----------- 1 file changed, 21 insertions(+), 33 deletions(-) diff --git a/Tenant Settings/Prevent external users from resharing/PreventExternalUsersFromResharing.ps1 b/Tenant Settings/Prevent external users from resharing/PreventExternalUsersFromResharing.ps1 index 763cc092..13ea638e 100644 --- a/Tenant Settings/Prevent external users from resharing/PreventExternalUsersFromResharing.ps1 +++ b/Tenant Settings/Prevent external users from resharing/PreventExternalUsersFromResharing.ps1 @@ -1,40 +1,32 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] - $PreventExternalUsersFromResharing - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.PreventExternalUsersFromResharing=$PreventExternalUsersFromResharing - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + [Parameter(Mandatory=$true,Position=4)] + $PreventExternalUsersFromResharing + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.PreventExternalUsersFromResharing=$PreventExternalUsersFromResharing + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -42,8 +34,4 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $PreventExternalUsersFromResharing=$true - - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -PreventExternalUsersFromResharing $PreventExternalUsersFromResharing \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -PreventExternalUsersFromResharing $PreventExternalUsersFromResharing From 05e03cbf35f9cba7de1b47f67539a09187a39192 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:35:57 +0100 Subject: [PATCH 074/129] Update description.md --- .../description.md | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/description.md b/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/description.md index 98555208..b7536e6e 100644 --- a/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/description.md +++ b/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/description.md @@ -6,39 +6,33 @@ For folders you can choose between View and Edit. For files you can choose between -Edit - anonymous links will allow to edit documents +**Edit** - anonymous links will allow to edit documents -View - anonymous links will allow only to view documents +**View** - anonymous links will allow only to view documents -None - users can decide about the access level on per-document basis (no global setting) +**None** - users can decide about the access level on per-document basis (no global setting) -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). It requires SharePoint Online SDK. - - - +## How to use? -### How to use? -Download and open the .ps1 file. -Add correct libraries: +- Download and open the .ps1 file. +- Add correct libraries: - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` - -Enter the correct url and admin login: +- Enter the correct url and admin login: - ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -47,5 +41,5 @@ $Url="https://TENANT-admin.sharepoint.com" $LinkType="View" #Edit, View or None $FolderLinkType="Edit" # View or Edit ``` -Run the script +- Run the script From c3733cefcae94561f636401bfa43e734b5f69d0d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:36:38 +0100 Subject: [PATCH 075/129] Update SetAnonymousAccess.ps1 --- .../SetAnonymousAccess.ps1 | 56 ++++++++----------- 1 file changed, 23 insertions(+), 33 deletions(-) diff --git a/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/SetAnonymousAccess.ps1 b/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/SetAnonymousAccess.ps1 index 7e563b89..c296d84d 100644 --- a/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/SetAnonymousAccess.ps1 +++ b/Tenant Settings/Set Anonymous access for SPO tenant using PS and CSOM/SetAnonymousAccess.ps1 @@ -1,45 +1,37 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$LinkType, - [Parameter(Mandatory=$true,Position=5)] + [Parameter(Mandatory=$true,Position=5)] [string]$FolderLinkType - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.SharingCapability=[Microsoft.Online.SharePoint.TenantManagement.SharingCapabilities]::ExternalUserAndGuestSharing - $spoTenant.FileAnonymousLinkType=[Microsoft.SharePoint.Client.AnonymousLinkType]::$LinkType - $spoTenant.FolderAnonymousLinkType=$FolderLinkType - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.SharingCapability=[Microsoft.Online.SharePoint.TenantManagement.SharingCapabilities]::ExternalUserAndGuestSharing + $spoTenant.FileAnonymousLinkType=[Microsoft.SharePoint.Client.AnonymousLinkType]::$LinkType + $spoTenant.FolderAnonymousLinkType=$FolderLinkType + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" @@ -47,6 +39,4 @@ $Url="https://TENANT-admin.sharepoint.com" $LinkType="View" #Edit, View or None $FolderLinkType="Edit" # View or Edit - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -LinkType $LinkType -FolderLinkType $FolderLinkType \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -LinkType $LinkType -FolderLinkType $FolderLinkType From 4bfd513da1ffee66d873024fe9a4cad4adb64e38 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:38:17 +0100 Subject: [PATCH 076/129] Update description.md --- .../description.md | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/Tenant Settings/Set anonymous link access level for SPO tenant/description.md b/Tenant Settings/Set anonymous link access level for SPO tenant/description.md index f7779f59..05a6237f 100644 --- a/Tenant Settings/Set anonymous link access level for SPO tenant/description.md +++ b/Tenant Settings/Set anonymous link access level for SPO tenant/description.md @@ -1,36 +1,27 @@ After you have enabled anonymous links for SharePoint Online tenant, you can set what access level the links can give: edit or only view. The setting is global for the entire tenant. You can choose between -Edit - anonymous links will allow to edit documents +**Edit** - anonymous links will allow to edit documents -View - anonymous links will allow only to view documents +**View** - anonymous links will allow only to view documents -None - users can decide about the access level on per-document basis (no global setting) +**None** - users can decide about the access level on per-document basis (no global setting) - - - - -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). It requires SharePoint Online SDK. +## How to use? +- Download and open the ```.ps1``` file. +- Add correct libraries: - - - -### How to use? -Download and open the .ps1 file. -Add correct libraries: - - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` +- Enter the correct url and admin login: -Enter the correct url and admin login: ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -38,4 +29,4 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $LinkType="View" #Edit, View or None ``` -Run the script +- Run the script From 299e4f182b6efd8fbabd5a0f4f00abbb78c24c5d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:38:50 +0100 Subject: [PATCH 077/129] Update AnonymousLinkType.ps1 --- .../AnonymousLinkType.ps1 | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/Tenant Settings/Set anonymous link access level for SPO tenant/AnonymousLinkType.ps1 b/Tenant Settings/Set anonymous link access level for SPO tenant/AnonymousLinkType.ps1 index 1f8d950a..27bfbc11 100644 --- a/Tenant Settings/Set anonymous link access level for SPO tenant/AnonymousLinkType.ps1 +++ b/Tenant Settings/Set anonymous link access level for SPO tenant/AnonymousLinkType.ps1 @@ -1,48 +1,37 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$LinkType - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.FileAnonymousLinkType=[Microsoft.SharePoint.Client.AnonymousLinkType]::$LinkType - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.FileAnonymousLinkType=[Microsoft.SharePoint.Client.AnonymousLinkType]::$LinkType + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $LinkType="View" #Edit, View or None - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -LinkType $LinkType \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -LinkType $LinkType From 0a62794055c36b7751f0a511b6981630f8497f23 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:40:41 +0100 Subject: [PATCH 078/129] Update description.md --- .../description.md | 28 +++++-------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md index bb6c5269..d412abb3 100644 --- a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md +++ b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md @@ -1,37 +1,24 @@ Short Powershell script to modify the Sharing Link Type setting in SharePoint Admin Center via DefaultSharingLinkType property of Tenant object - - The setting can be changed also via SharePoint Admin Center: + +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). - - -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. - - - - +## How to use? -How to use? -Download and open the .ps1 file. -Add correct libraries: +- Download and open the .ps1 file. +- Add correct libraries: - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` +- Enter the correct url and admin login: - - - -Enter the correct url and admin login: - - ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -39,6 +26,5 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $SharingLinkType="None" #None, Direct, Internal, AnonymousAccess ``` - - Run the script +- Run the script From 06e4d6f22e2ab83d8052bba99eb7d4f381f3cb88 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:41:14 +0100 Subject: [PATCH 079/129] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md index d412abb3..3b09c653 100644 --- a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md +++ b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/description.md @@ -8,7 +8,7 @@ The script is related to and more described in a Wiki article [SharePoint Online ## How to use? -- Download and open the .ps1 file. +- Download and open the ```.ps1``` file. - Add correct libraries: ```PowerShell From cd3e518f1c4f675cfb0f2877031b029ef7a4976d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:41:59 +0100 Subject: [PATCH 080/129] Update SharingLinkType.ps1 --- .../SharingLinkType.ps1 | 52 +++++++------------ 1 file changed, 20 insertions(+), 32 deletions(-) diff --git a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/SharingLinkType.ps1 b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/SharingLinkType.ps1 index 1647645a..52d54c73 100644 --- a/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/SharingLinkType.ps1 +++ b/Tenant Settings/Set default link type for SharePoint Online tenant sharing settings/SharingLinkType.ps1 @@ -1,49 +1,37 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] $SharingLinkType - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.DefaultSharingLinkType= [Microsoft.Online.SharePoint.TenantManagement.SharingLinkType]::$SharingLinkType - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.DefaultSharingLinkType= [Microsoft.Online.SharePoint.TenantManagement.SharingLinkType]::$SharingLinkType + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $SharingLinkType="None" #None, Direct, Internal, AnonymousAccess - - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -SharingLinkType $SharingLinkType \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -SharingLinkType $SharingLinkType From 2b2266b4561976bd49604d622d360a7df0a47e50 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:43:13 +0100 Subject: [PATCH 081/129] Update description.md --- .../description.md | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/Tenant Settings/Set expiration for anonymous links in SPO/description.md b/Tenant Settings/Set expiration for anonymous links in SPO/description.md index 45ac040e..563e99b8 100644 --- a/Tenant Settings/Set expiration for anonymous links in SPO/description.md +++ b/Tenant Settings/Set expiration for anonymous links in SPO/description.md @@ -2,27 +2,21 @@ After you have enabled anonymous links for SharePoint Online tenant, you can set It requires SharePoint Online SDK. - - -The script is related to and more described in a Wiki article SharePoint Online Sharing settings with CSOM. +The script is related to and more described in a Wiki article [SharePoint Online Sharing settings with CSOM](https://social.technet.microsoft.com/wiki/contents/articles/39365.sharepoint-online-sharing-settings-with-csom). - +## How to use? -How to use? -Download and open the .ps1 file. -Add correct libraries: +- Download and open the .ps1 file. +- Add correct libraries: - ```PowerShell #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" ``` - -Enter the correct url and admin login: +- Enter the correct url and admin login: - ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -30,7 +24,6 @@ $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $HowManyDaysToExpire=17 #Choose 0 if the links should not expire ``` - -Run the script +- Run the script From 6dfaf4c93a2f1c0f8657b815ead62383cbd842c4 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:43:50 +0100 Subject: [PATCH 082/129] Update SetExpirationForAnonymousLinks (1).ps1 --- .../SetExpirationForAnonymousLinks (1).ps1 | 51 ++++++++----------- 1 file changed, 20 insertions(+), 31 deletions(-) diff --git a/Tenant Settings/Set expiration for anonymous links in SPO/SetExpirationForAnonymousLinks (1).ps1 b/Tenant Settings/Set expiration for anonymous links in SPO/SetExpirationForAnonymousLinks (1).ps1 index fc87dbfd..8213264c 100644 --- a/Tenant Settings/Set expiration for anonymous links in SPO/SetExpirationForAnonymousLinks (1).ps1 +++ b/Tenant Settings/Set expiration for anonymous links in SPO/SetExpirationForAnonymousLinks (1).ps1 @@ -1,48 +1,37 @@ -function Set-SiteColl -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [int]$HowManyDaysToExpire - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - $spoTenant.RequireAnonymousLinksExpireInDays=$HowManyDaysToExpire - $ctx.Load($spoTenant) - $ctx.ExecuteQuery() - Write-Output $spoTenant - + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.RequireAnonymousLinksExpireInDays=$HowManyDaysToExpire + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant } - - - #Paths to SDK 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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" - - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="admin@TENANT.onmicrosoft.com" $Url="https://TENANT-admin.sharepoint.com" $HowManyDaysToExpire=17 #Choose 0 if the links should not expire - - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -HowManyDaysToExpire $HowManyDaysToExpire \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -HowManyDaysToExpire $HowManyDaysToExpire From 00d8e31143a0fafb4fec61ae0a8d53a5695ccea5 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:47:09 +0100 Subject: [PATCH 083/129] Update description.md --- .../description.md | 33 ++++--------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/User Profiles/Export all user profiles using Powershell/description.md b/User Profiles/Export all user profiles using Powershell/description.md index 06ca6781..34f308f6 100644 --- a/User Profiles/Export all user profiles using Powershell/description.md +++ b/User Profiles/Export all user profiles using Powershell/description.md @@ -1,43 +1,24 @@ The script retrieves all user profile properties for SharePoint Online users within one site. - - The script uses the following endpoint to retrieve a user property: -/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='' +```/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v=''``` - For more details, please consult: -User profiles REST API reference +[User profiles REST API reference](https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-rest-reference/dn790354(v=office.15)?redirectedfrom=MSDN) - - - - -How to use? - +## How to use? Download, open the script and enter correct values in the following lines: -PowerShell +```PowerShell $SiteUrl="https://t321.sharepoint.com" $AdminCenter="https://t321-admin.sharepoint.com" $ExportTo="C:\Users\Arletka\Documents\SpUsers3.csv" + ``` - -Expected results +## Expected results - - - - - - - - - - - - + From 7a07a455cd2e0edaa2b06e9fd022bbee4673f378 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:48:10 +0100 Subject: [PATCH 084/129] Update ExportSPOUserAllPropertiesWithREST.ps1 --- .../ExportSPOUserAllPropertiesWithREST.ps1 | 81 +++++++------------ 1 file changed, 28 insertions(+), 53 deletions(-) diff --git a/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 b/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 index 17b1c888..374e29b6 100644 --- a/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 +++ b/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 @@ -1,58 +1,36 @@ -function Get-SPOUserProperty -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOUserProperty{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $password, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string] $url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string] $userLogin - ) - - - - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $RestUrl=$url+"/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='i:0%23.f|membership|"+$userLogin+"'" - - $request = [System.Net.WebRequest]::Create($RESTUrl) - $request.Credentials = $Credentials - $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") - $request.Accept = "application/json;odata=verbose" - [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get - $request.Method=$Method - $response = $request.GetResponse() - $requestStream = $response.GetResponseStream() - $read = New-Object System.IO.StreamReader $requestStream - $data=$read.ReadToEnd() - $results = $data | ConvertFrom-Json - - - - return ($results.d.userprofileproperties.results) - - - - - - - - - } - - - - - - - - + ) + + $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $RestUrl=$url+"/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='i:0%23.f|membership|"+$userLogin+"'" + + $request = [System.Net.WebRequest]::Create($RESTUrl) + $request.Credentials = $Credentials + $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") + $request.Accept = "application/json;odata=verbose" + [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get + $request.Method=$Method + $response = $request.GetResponse() + $requestStream = $response.GetResponseStream() + $read = New-Object System.IO.StreamReader $requestStream + $data=$read.ReadToEnd() + $results = $data | ConvertFrom-Json + + return ($results.d.userprofileproperties.results) +} #Paths to SDK Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.dll" Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.Runtime.dll" - #Enter the data @@ -65,16 +43,13 @@ $cred=Get-Credential Connect-SPOService $AdminCenter -Credential $cred $users=Get-SPOUser -Site $SiteUrl - -foreach($user in $users) -{ +foreach($user in $users){ Write-Verbose $user.LoginName $props=Get-SPOUserProperty -Username $cred.UserName -Url $SiteUrl -password $cred.Password -userLogin $user.LoginName $uss=New-Object PSObject - foreach($prop in $props) - { + + foreach($prop in $props){ $uss | Add-Member -MemberType NoteProperty -Name $prop.Key -Value $prop.Value - } $uss | Export-Csv -Path $ExportTo -Append -Force From eb76ad512557f99861a654464b484b4c763591ca Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:49:39 +0100 Subject: [PATCH 085/129] Update description.md --- .../description.md | 26 +++++-------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/User Profiles/Get MUI Languages for multiple users using REST/description.md b/User Profiles/Get MUI Languages for multiple users using REST/description.md index 150e60d4..8cf1df11 100644 --- a/User Profiles/Get MUI Languages for multiple users using REST/description.md +++ b/User Profiles/Get MUI Languages for multiple users using REST/description.md @@ -1,27 +1,18 @@ The script retrieves a SPS-MUILanguages property for specified SharePoint Online users. - - The script uses the following endpoint to retrieve a user property: -/getuserprofilepropertyfor(accountname=@v, propertyname='')?@v='' - - +```/getuserprofilepropertyfor(accountname=@v, propertyname='')?@v=''``` For more details, please consult: -User profiles REST API reference - - - - +[User profiles REST API reference](https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-rest-reference/dn790354(v=office.15)?redirectedfrom=MSDN) -### How to use? +## How to use? - Download, open the script and enter correct values in the following lines: -PowerShell +```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="t@t321.onmicrosoft.com" @@ -29,10 +20,7 @@ $Url="https://t321.sharepoint.com" $userLogins=("t@t321.onmicrosoft.com","user1@t321.onmicrosoft.com","user2@t321.onmicrosoft.com","user5@t321.onmicrosoft.com","yasen@t321.onmicrosoft.com") + ``` +## Expected results -Expected results - - - - - + From 5378f04931fc17baa796c9f03992f13489a88307 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:50:33 +0100 Subject: [PATCH 086/129] Update GetSPOUserLanguagesWithREST.ps1 --- .../GetSPOUserLanguagesWithREST.ps1 | 76 ++++++------------- 1 file changed, 25 insertions(+), 51 deletions(-) diff --git a/User Profiles/Get MUI Languages for multiple users using REST/GetSPOUserLanguagesWithREST.ps1 b/User Profiles/Get MUI Languages for multiple users using REST/GetSPOUserLanguagesWithREST.ps1 index 1bd38dae..0c10a640 100644 --- a/User Profiles/Get MUI Languages for multiple users using REST/GetSPOUserLanguagesWithREST.ps1 +++ b/User Profiles/Get MUI Languages for multiple users using REST/GetSPOUserLanguagesWithREST.ps1 @@ -1,71 +1,45 @@ -function Get-SPOUserProperty -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOUserProperty{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $password, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string] $url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string] $userLogin - ) + ) + $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $RestUrl=$url+"/_api/sp.userprofiles.peoplemanager/getuserprofilepropertyfor(accountname=@v, propertyname='SPS-MUILanguages')?@v='i%3A0%23.f%7Cmembership%7C"+$userLogin+"'" - - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $RestUrl=$url+"/_api/sp.userprofiles.peoplemanager/getuserprofilepropertyfor(accountname=@v, propertyname='SPS-MUILanguages')?@v='i%3A0%23.f%7Cmembership%7C"+$userLogin+"'" - - $request = [System.Net.WebRequest]::Create($RESTUrl) - $request.Credentials = $Credentials - $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") - $request.Accept = "application/json;odata=verbose" - [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get - $request.Method=$Method - $response = $request.GetResponse() - $requestStream = $response.GetResponseStream() - $read = New-Object System.IO.StreamReader $requestStream - $data=$read.ReadToEnd() - - $results = $data | ConvertFrom-Json - - - - return (New-Object PSObject -Prop @{'Languages'=$results.d.GetUserProfilePropertyFor; 'User'=$userLogin}) - - - - - - - - - } - - - - - - + $request = [System.Net.WebRequest]::Create($RESTUrl) + $request.Credentials = $Credentials + $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") + $request.Accept = "application/json;odata=verbose" + [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get + $request.Method=$Method + $response = $request.GetResponse() + $requestStream = $response.GetResponseStream() + $read = New-Object System.IO.StreamReader $requestStream + $data=$read.ReadToEnd() + $results = $data | ConvertFrom-Json + return (New-Object PSObject -Prop @{'Languages'=$results.d.GetUserProfilePropertyFor; 'User'=$userLogin}) +} #Paths to SDK Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.dll" Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.Runtime.dll" - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="t@t321.onmicrosoft.com" $Url="https://t321.sharepoint.com" - $userLogins=("t@t321.onmicrosoft.com","user1@t321.onmicrosoft.com","user2@t321.onmicrosoft.com","user5@t321.onmicrosoft.com","yasen@t321.onmicrosoft.com") - - -foreach($userLogin in $userLogins) -{ -Get-SPOUserProperty -Username $username -Url $Url -password $AdminPassword -userLogin $userLogin -} \ No newline at end of file +foreach($userLogin in $userLogins){ + Get-SPOUserProperty -Username $username -Url $Url -password $AdminPassword -userLogin $userLogin +} From 60a11cdbfe05745760da7e850cf03d128dd17579 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:52:04 +0100 Subject: [PATCH 087/129] Update description.md --- .../description.md | 31 ++++--------------- 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/User Profiles/Get all user profile properties using Powershell and REST/description.md b/User Profiles/Get all user profile properties using Powershell and REST/description.md index d4fc507d..e3a6bd1a 100644 --- a/User Profiles/Get all user profile properties using Powershell and REST/description.md +++ b/User Profiles/Get all user profile properties using Powershell and REST/description.md @@ -1,24 +1,15 @@ -The script retrieves all user profile properties for the specified SharePoint Online user. - - +The script retrieves all user profile properties for the specified SharePoint Online user. The script uses the following endpoint to retrieve a user property: -/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='' - - +```/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v=''``` For more details, please consult: -User profiles REST API reference - - - - +[User profiles REST API reference](https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-rest-reference/dn790354(v=office.15)?redirectedfrom=MSDN) -### How to use? +## How to use? - Download, open the script and enter correct values in the following lines: ```PowerShell @@ -28,17 +19,7 @@ $username="Admin@t321.onmicrosoft.com" $Url="https://t321.sharepoint.com" $userLogin="user2@t321.onmicrosoft.com" ``` -Expected result - - - - - - - - - - - +## Expected result + From ce159b81ceccbac3c067d6d8010790bf02e98a24 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:52:47 +0100 Subject: [PATCH 088/129] Update GetSPOUserAllPropertiesWithREST.ps1 --- .../GetSPOUserAllPropertiesWithREST.ps1 | 75 +++++++------------ 1 file changed, 25 insertions(+), 50 deletions(-) diff --git a/User Profiles/Get all user profile properties using Powershell and REST/GetSPOUserAllPropertiesWithREST.ps1 b/User Profiles/Get all user profile properties using Powershell and REST/GetSPOUserAllPropertiesWithREST.ps1 index 4f0beaed..ebb4c2ee 100644 --- a/User Profiles/Get all user profile properties using Powershell and REST/GetSPOUserAllPropertiesWithREST.ps1 +++ b/User Profiles/Get all user profile properties using Powershell and REST/GetSPOUserAllPropertiesWithREST.ps1 @@ -1,66 +1,41 @@ -function Get-SPOUserProperty -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOUserProperty{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $password, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string] $url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string] $userLogin - ) - - - - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $RestUrl=$url+"/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='i:0%23.f|membership|"+$userLogin+"'" - - $request = [System.Net.WebRequest]::Create($RESTUrl) - $request.Credentials = $Credentials - $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") - $request.Accept = "application/json;odata=verbose" - [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get - $request.Method=$Method - $response = $request.GetResponse() - $requestStream = $response.GetResponseStream() - $read = New-Object System.IO.StreamReader $requestStream - $data=$read.ReadToEnd() - $results = $data | ConvertFrom-Json - - - - return ($results.d.userprofileproperties.results) - - - - - - - - - } - - - - - - - - + ) + + $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $RestUrl=$url+"/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='i:0%23.f|membership|"+$userLogin+"'" + + $request = [System.Net.WebRequest]::Create($RESTUrl) + $request.Credentials = $Credentials + $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") + $request.Accept = "application/json;odata=verbose" + [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get + $request.Method=$Method + $response = $request.GetResponse() + $requestStream = $response.GetResponseStream() + $read = New-Object System.IO.StreamReader $requestStream + $data=$read.ReadToEnd() + $results = $data | ConvertFrom-Json + + return ($results.d.userprofileproperties.results) +} #Paths to SDK Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.dll" Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.Runtime.dll" - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="Admin@t321.onmicrosoft.com" $Url="https://t321.sharepoint.com" $userLogin="user2@t321.onmicrosoft.com" - - - Get-SPOUserProperty -Username $username -Url $Url -password $AdminPassword -userLogin $userLogin | select key, value From 0159f7ba446468edcda0b4a9df56f41673ef0552 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:54:21 +0100 Subject: [PATCH 089/129] Update description.md --- .../description.md | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/User Profiles/Get user work email using Powershell and REST/description.md b/User Profiles/Get user work email using Powershell and REST/description.md index e3f5f0a9..5f4c1d34 100644 --- a/User Profiles/Get user work email using Powershell and REST/description.md +++ b/User Profiles/Get user work email using Powershell and REST/description.md @@ -1,24 +1,15 @@ The script retrieves a WorkEmail property for a single SharePoint Online user. - - The script uses the following endpoint to retrieve a user property: -/getuserprofilepropertyfor(accountname=@v, propertyname='')?@v='' - - +```/getuserprofilepropertyfor(accountname=@v, propertyname='')?@v=''``` For more details, please consult: -User profiles REST API reference - - +[User profiles REST API reference](https://docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-rest-reference/dn790354(v=office.15)?redirectedfrom=MSDN) +## How to use? - -### How to use? - - Download, open the script and enter correct values in the following lines: ```PowerShell @@ -28,8 +19,7 @@ $username="t@t321.onmicrosoft.com" $Url="https://t321.sharepoint.com/polski" $userLogin="t@t321.onmicrosoft.com" ``` -Expected result +## Expected result - - + From 957d0ff8c6d998aeff2113eaf193d005b5cf408d Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:54:58 +0100 Subject: [PATCH 090/129] Update GetSPOUserEmailWithREST.ps1 --- .../GetSPOUserEmailWithREST.ps1 | 77 +++++++------------ 1 file changed, 26 insertions(+), 51 deletions(-) diff --git a/User Profiles/Get user work email using Powershell and REST/GetSPOUserEmailWithREST.ps1 b/User Profiles/Get user work email using Powershell and REST/GetSPOUserEmailWithREST.ps1 index 2ea7506d..ae023415 100644 --- a/User Profiles/Get user work email using Powershell and REST/GetSPOUserEmailWithREST.ps1 +++ b/User Profiles/Get user work email using Powershell and REST/GetSPOUserEmailWithREST.ps1 @@ -1,67 +1,42 @@ -function Get-SPOUserProperty -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOUserProperty{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $password, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] [string] $url, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string] $userLogin - ) - - - - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $RestUrl=$url+"/_api/sp.userprofiles.peoplemanager/getuserprofilepropertyfor(accountname=@v, propertyname='WorkEmail')?@v='i%3A0%23.f%7Cmembership%7C"+$userLogin+"'" - - $request = [System.Net.WebRequest]::Create($RESTUrl) - $request.Credentials = $Credentials - $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") - $request.Accept = "application/json;odata=verbose" - [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get - $request.Method=$Method - $response = $request.GetResponse() - $requestStream = $response.GetResponseStream() - $read = New-Object System.IO.StreamReader $requestStream - $data=$read.ReadToEnd() - # Because the string contains duplicate 'ID' keys. - $results = $data | ConvertFrom-Json - - - - return ($results.d) - - - - - - - - - } - - - - - - - - + ) + + $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $RestUrl=$url+"/_api/sp.userprofiles.peoplemanager/getuserprofilepropertyfor(accountname=@v, propertyname='WorkEmail')?@v='i%3A0%23.f%7Cmembership%7C"+$userLogin+"'" + + $request = [System.Net.WebRequest]::Create($RESTUrl) + $request.Credentials = $Credentials + $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") + $request.Accept = "application/json;odata=verbose" + [Microsoft.PowerShell.Commands.WebRequestMethod]$Method = [Microsoft.PowerShell.Commands.WebRequestMethod]::Get + $request.Method=$Method + $response = $request.GetResponse() + $requestStream = $response.GetResponseStream() + $read = New-Object System.IO.StreamReader $requestStream + $data=$read.ReadToEnd() + # Because the string contains duplicate 'ID' keys. + $results = $data | ConvertFrom-Json + + return ($results.d) +} #Paths to SDK Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.dll" Add-Type -Path "H:\Libraries\Microsoft.SharePoint.Client.Runtime.dll" - #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString $username="t@t321.onmicrosoft.com" $Url="https://t321.sharepoint.com/polski" $userLogin="t@t321.onmicrosoft.com" - - - Get-SPOUserProperty -Username $username -Url $Url -password $AdminPassword -userLogin $userLogin From c4b855bc0f36f5d5cab6b8db841e20507fc68922 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 18:59:38 +0100 Subject: [PATCH 091/129] Update description.md --- .../description.md | 36 +++---------------- 1 file changed, 5 insertions(+), 31 deletions(-) diff --git a/Versioning/Enable minor versions for all lists/description.md b/Versioning/Enable minor versions for all lists/description.md index e6a01b6e..f502d868 100644 --- a/Versioning/Enable minor versions for all lists/description.md +++ b/Versioning/Enable minor versions for all lists/description.md @@ -6,15 +6,7 @@ http://technet.microsoft.com/en-us/library/fp161372(v=office.15).aspx http://www.microsoft.com/en-us/download/details.aspx?id=30722 - - - - - - - - - + It uses recurrence to find all sites in all site collections and then goes through all the lists. @@ -28,29 +20,11 @@ As the script runs you will see green lists' titles for which the enabling succe Versioning will always fail for public site. - - - - - - - - - - - - - - - + If you need to enable versioning in general and minor versioning for those lists that support it, first run this script for enabling versioning in general and then the one here for minor versions. - - - - -PowerShell +```PowerShell function getall($urelek) { $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) @@ -132,7 +106,7 @@ foreach($sitecoll in $sitecollections) # Specify the path where the log file will be published $Global:csv | Export-Csv -Path C:\Users\Public\Versioning.csv - + ``` -If you think, I could have improved on anything, please let me know in the Q&A section! +### If you think, I could have improved on anything, please let me know in the Q&A section! From 434a30ce11106255f1851b5b460718af9515da94 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:02:09 +0100 Subject: [PATCH 092/129] Update MinorVersioning.ps1 --- .../MinorVersioning.ps1 | 62 +++++++------------ 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/Versioning/Enable minor versions for all lists/MinorVersioning.ps1 b/Versioning/Enable minor versions for all lists/MinorVersioning.ps1 index 08424c8f..19e1d9c6 100644 --- a/Versioning/Enable minor versions for all lists/MinorVersioning.ps1 +++ b/Versioning/Enable minor versions for all lists/MinorVersioning.ps1 @@ -1,5 +1,4 @@ -function getall($urelek) -{ +function getall($urelek){ $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) $ctx.Load($ctx.Web.Lists) @@ -8,52 +7,40 @@ $ctx.ExecuteQuery() Write-Host Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - - foreach( $ll in $ctx.Web.Lists) - { - $ctx.Load($ll.RootFolder) - $ctx.ExecuteQuery() - $ll.EnableMinorVersions = $versioning - $ll.Update() - $csvvalue= new-object PSObject - $listurl=$null - if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url.Remove(($ctx.Url.Length-1),1)+$ll.RootFolder.ServerRelativeUrl} - else { + + foreach( $ll in $ctx.Web.Lists){ + $ctx.Load($ll.RootFolder) + $ctx.ExecuteQuery() + $ll.EnableMinorVersions = $versioning + $ll.Update() + $csvvalue= new-object PSObject + $listurl=$null + + if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url.Remove(($ctx.Url.Length-1),1)+$ll.RootFolder.ServerRelativeUrl} + else { $index=$ctx.Url.LastIndexOf(".com") $listurl=$ctx.Url.Remove($index+4)+$ll.RootFolder.ServerRelativeUrl} $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" - try - { + try{ $ErrorActionPreference="Stop" $ctx.ExecuteQuery() Write-Host $listurl -ForegroundColor DarkGreen $csvvalue.Status="Success" $Global:csv+= $csvvalue - } - - catch - { - $Global:csv+= $csvvalue - Write-Host $listurl -ForegroundColor Red - } - finally - {$ErrorActionPreference="Continue"} - - - } + } + catch{ + $Global:csv+= $csvvalue + Write-Host $listurl -ForegroundColor Red + } + finally{$ErrorActionPreference="Continue"} + } - if($ctx.Web.Webs.Count -gt 0) - { - for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) - { + if($ctx.Web.Webs.Count -gt 0){ + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++){ getall($ctx.Web.Webs[$i].Url) + } } - - } - - - } # Paths to SDK. Please verify location on your computer. @@ -73,8 +60,7 @@ Connect-SPOService -Credential $credy -Url $siteUrl $sitecollections=get-SPOSite $Global:csv=@() -foreach($sitecoll in $sitecollections) -{ +foreach($sitecoll in $sitecollections){ getall($sitecoll.Url) } From 3c890323e283ffa01b01bef75b98046cffe9829a Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:04:26 +0100 Subject: [PATCH 093/129] Update description.md --- .../description.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Versioning/Enable versioning for all SharePoint Online lists/description.md b/Versioning/Enable versioning for all SharePoint Online lists/description.md index 72534dac..f57a20af 100644 --- a/Versioning/Enable versioning for all SharePoint Online lists/description.md +++ b/Versioning/Enable versioning for all SharePoint Online lists/description.md @@ -19,11 +19,11 @@ At the end, a csv file is generated with the lists' urls and the status whether As the script runs you will see green lists' titles for which the enabling succeeded and red for those which failed (not all lists support versioning). - + - + - + You can customize the script by using the commented out tips. From 9ec876f532cdad9489763f5aac456142c951053f Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:06:14 +0100 Subject: [PATCH 094/129] Update Versioning.ps1 --- .../Versioning.ps1 | 81 ++++++++----------- 1 file changed, 35 insertions(+), 46 deletions(-) diff --git a/Versioning/Enable versioning for all SharePoint Online lists/Versioning.ps1 b/Versioning/Enable versioning for all SharePoint Online lists/Versioning.ps1 index d2b4fcf1..68f646e4 100644 --- a/Versioning/Enable versioning for all SharePoint Online lists/Versioning.ps1 +++ b/Versioning/Enable versioning for all SharePoint Online lists/Versioning.ps1 @@ -1,54 +1,44 @@ -function getall($urelek) -{ - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) - $ctx.Load($ctx.Web.Lists) - $ctx.Load($ctx.Web) - $ctx.Load($ctx.Web.Webs) - $ctx.ExecuteQuery() - Write-Host - Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { - $ll.EnableVersioning = $versioning - $ll.Update() - $csvvalue= new-object PSObject - $listurl=$null - if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url+$ll.Title} - else {$listurl=$ctx.Url+"/"+$ll.Title} - $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) - $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" - try - { +function getall($urelek){ + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + + foreach( $ll in $ctx.Web.Lists){ + $ll.EnableVersioning = $versioning + $ll.Update() + $csvvalue= new-object PSObject + $listurl=$null + + if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url+$ll.Title} + else {$listurl=$ctx.Url+"/"+$ll.Title} + + $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) + $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" + + try{ $ErrorActionPreference="Stop" $ctx.ExecuteQuery() Write-Host $listurl -ForegroundColor DarkGreen $csvvalue.Status="Success" $Global:csv+= $csvvalue - } - - catch - { - $Global:csv+= $csvvalue - Write-Host $listurl -ForegroundColor Red - } - finally - {$ErrorActionPreference="Continue"} - - - } + } + catch{ + $Global:csv+= $csvvalue + Write-Host $listurl -ForegroundColor Red + } + finally{$ErrorActionPreference="Continue"} + } - if($ctx.Web.Webs.Count -gt 0) - { - for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) - { + if($ctx.Web.Webs.Count -gt 0){ + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++){ getall($ctx.Web.Webs[$i].Url) + } } - - } - - - } # Paths to SDK. Please verify location on your computer. @@ -68,9 +58,8 @@ Connect-SPOService -Credential $credy -Url $siteUrl $sitecollections=get-SPOSite $Global:csv=@() -foreach($sitecoll in $sitecollections) -{ - getall($sitecoll.Url) +foreach($sitecoll in $sitecollections){ + getall($sitecoll.Url) } # Specify the path where the log file will be published From 68f1aba7a9f55dda1ef63a3eb99271e2fb0b6291 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:08:55 +0100 Subject: [PATCH 095/129] Update Enable versioning in ODB lists.ps1 --- .../Enable versioning in ODB lists.ps1 | 65 +++++++------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/Versioning/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 b/Versioning/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 index eb9532c5..74a111e8 100644 --- a/Versioning/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 +++ b/Versioning/Enable versioning for all lists in OneDrive sites/Enable versioning in ODB lists.ps1 @@ -1,5 +1,4 @@ -function Set-SPOListVersioning($EnableVersioning, $Urelek) -{ +function Set-SPOListVersioning($EnableVersioning, $Urelek){ $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $Adminpassword) $ctx.Load($ctx.Web.Lists) @@ -8,54 +7,40 @@ $ctx.ExecuteQuery() Write-Host Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - foreach( $ll in $ctx.Web.Lists) - { + + foreach( $ll in $ctx.Web.Lists){ $ll.EnableVersioning = $EnableVersioning $ll.Update() $csvvalue= new-object PSObject - $listurl=$null - if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url+$ll.Title} - else {$listurl=$ctx.Url+"/"+$ll.Title} - $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) - $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" - try - { + $listurl=$null + + if($ctx.Url.EndsWith("/")) {$listurl= $ctx.Url+$ll.Title} + else {$listurl=$ctx.Url+"/"+$ll.Title} + + $csvvalue | Add-Member -MemberType NoteProperty -Name "Url" -Value ($listurl) + $csvvalue | Add-Member -MemberType NoteProperty -Name "Status" -Value "Failed" + + try{ $ErrorActionPreference="Stop" $ctx.ExecuteQuery() Write-Host $listurl -ForegroundColor DarkGreen $csvvalue.Status="Success" $Global:csv+= $csvvalue - } - - catch - { - $Global:csv+= $csvvalue - Write-Host $listurl -ForegroundColor Red - } - finally - {$ErrorActionPreference="Continue"} - - + } + catch{ + $Global:csv+= $csvvalue + Write-Host $listurl -ForegroundColor Red + } + finally{$ErrorActionPreference="Continue"} } - if($ctx.Web.Webs.Count -gt 0) - { - for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) - { + if($ctx.Web.Webs.Count -gt 0){ + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++){ Set-SPOListVersioning -EnableVersioning $EnableVersioning -Urelek ($ctx.Web.Webs[$i].Url) } - } - - - } - - - - - # Paths to SDK. Please verify location on your computer. Add-Type -Path "c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SharePoint.Client\v4.0_16.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SharePoint.Client.Runtime\v4.0_16.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.Client.Runtime.dll" @@ -71,12 +56,8 @@ $users=get-SPOUser -Site $myhost $EnableVersioning=$true $Global:csv=@() -foreach($user in $users) -{ - - - if($user.LoginName.Contains('@')) - { +foreach($user in $users){ + if($user.LoginName.Contains('@')){ $persweb=$user.LoginName.Replace(".","_").Replace("@","_") $persweb=$myhost+"/personal/"+$persweb Write-Host $persweb @@ -90,4 +71,4 @@ foreach($user in $users) } # Specify the path where the log file will be published -$Global:csv | Export-Csv -Path C:\Users\Public\Versioning.csv \ No newline at end of file +$Global:csv | Export-Csv -Path C:\Users\Public\Versioning.csv From f8525f77e1e76d4d3b585e6494f87aee54245d5e Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:10:46 +0100 Subject: [PATCH 096/129] Update description.md --- .../description.md | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/Versioning/Restore previous versions in selected files the entire library/description.md b/Versioning/Restore previous versions in selected files the entire library/description.md index b3d3567b..b9d7d1e2 100644 --- a/Versioning/Restore previous versions in selected files the entire library/description.md +++ b/Versioning/Restore previous versions in selected files the entire library/description.md @@ -4,7 +4,7 @@ Please test the script in test environment before using it in production. -The script is a modification of the existing Restore Previous Versions script created to show 2 ways on filtering the file results. The filters are only examples that need to be adjusted to your specific needs. +The script is a modification of the existing [Restore Previous Versions](https://gallery.technet.microsoft.com/Restore-previous-versions-bbcb0796) script created to show 2 ways on filtering the file results. The filters are only examples that need to be adjusted to your specific needs. The first filter uses CamlQuery to retrieve only files coming from a specific folder. @@ -20,21 +20,14 @@ When dealing with large number of files CamlQuery is the preferred and more effi -PowerShell +```PowerShell #Paths to SDK Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" + ``` - - - - - - The script needs to be edited before running. Enter the necessary data: - - ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -43,13 +36,14 @@ $Url="https://testova365.sharepoint.com/sites/STS" $ListTitle="VersionTest" ``` The CamlQuery below chooses only files whose ServerRelativeUrl includes a certain path. In this way you can restore versions only from a specific folder. -PowerShell + +```PowerShell $spqQuery.ViewXml ="/VersionTest/Folder2/FolderWithinFolder"; - + ``` The following lines allow us to narrow the files only to those modified after 12/2/2017. -PowerShell +```PowerShell $date=Get-Date ("2/12/2017") if($file.TimeLastModified -gt $date) { - + ``` From 65a3e33db19ed9a5b13756b9c3572b97fe81f191 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:13:31 +0100 Subject: [PATCH 097/129] Update RestorePreviousVersionsInSelectedFiles.ps1 --- ...RestorePreviousVersionsInSelectedFiles.ps1 | 175 ++++++++---------- 1 file changed, 76 insertions(+), 99 deletions(-) diff --git a/Versioning/Restore previous versions in selected files the entire library/RestorePreviousVersionsInSelectedFiles.ps1 b/Versioning/Restore previous versions in selected files the entire library/RestorePreviousVersionsInSelectedFiles.ps1 index 67a8430b..7742d5ba 100644 --- a/Versioning/Restore previous versions in selected files the entire library/RestorePreviousVersionsInSelectedFiles.ps1 +++ b/Versioning/Restore previous versions in selected files the entire library/RestorePreviousVersionsInSelectedFiles.ps1 @@ -1,104 +1,83 @@ -function Get-SPOFolderFiles -{ -param ( - [Parameter(Mandatory=$true,Position=1)] +function Get-SPOFolderFiles{ + param ( + [Parameter(Mandatory=$true,Position=1)] [string]$Username, [Parameter(Mandatory=$true,Position=2)] [string]$Url, - [Parameter(Mandatory=$true,Position=3)] + [Parameter(Mandatory=$true,Position=3)] $password, - [Parameter(Mandatory=$true,Position=4)] + [Parameter(Mandatory=$true,Position=4)] [string]$ListTitle - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - $ll=$ctx.Web.Lists.GetByTitle($ListTitle) - $ctx.Load($ll) - $ctx.ExecuteQuery() - $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery - $spqQuery.ViewXml ="/VersionTest/Folder2/FolderWithinFolder"; - $itemki=$ll.GetItems($spqQuery) - $ctx.Load($itemki) - $ctx.ExecuteQuery() - - foreach($item in $itemki) - { - - - # Write-Host $item["FileRef"] -ForegroundColor DarkGreen - $file = - $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); - $ctx.Load($file) - $ctx.Load($file.Versions) - try{ - $ctx.ExecuteQuery() } - catch - { - continue; - } - - #$file.TimeLastModified - $date=Get-Date ("2/12/2017") - - if($file.TimeLastModified -gt $date) - { - - Write-host $file.Name -ForegroundColor Green - if ($file.Versions.Count -eq 0) - { - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions("No Versions Available") - - #$obj | export-csv -Path $CSVPath -Append - - Write-Output $obj - } - elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File") - { - - foreach ($vv in $file.Versions){ - Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count - - # Write-Output $vv - - } - if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion) - { - $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel - Write-Host "Version to be restored: " $vLabel - } - else{ $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel - Write-Host "Version to be restored: " $vLabel } - $file.Versions.RestoreByLabel($vLabel) - $ctx.ExecuteQuery() - } - - else - { -$obj = New-Object PSObject -$obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions("No Versions Available") - Write-Output $obj - } - - - } - - - } - - - - - - - + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.ExecuteQuery() + $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + $spqQuery.ViewXml ="/VersionTest/Folder2/FolderWithinFolder"; + $itemki=$ll.GetItems($spqQuery) + $ctx.Load($itemki) + $ctx.ExecuteQuery() + + foreach($item in $itemki){ + # Write-Host $item["FileRef"] -ForegroundColor DarkGreen + $file = + $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); + $ctx.Load($file) + $ctx.Load($file.Versions) + + try{ + $ctx.ExecuteQuery() + } + catch{ + continue; + } + + #$file.TimeLastModified + $date=Get-Date ("2/12/2017") + + if($file.TimeLastModified -gt $date){ + Write-host $file.Name -ForegroundColor Green + if ($file.Versions.Count -eq 0){ + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions("No Versions Available") + + #$obj | export-csv -Path $CSVPath -Append + + Write-Output $obj + } + elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File"){ + foreach ($vv in $file.Versions){ + Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count + + # Write-Output $vv + } + + if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion){ + $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel + Write-Host "Version to be restored: " $vLabel + } + else{ $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel + Write-Host "Version to be restored: " $vLabel + } + $file.Versions.RestoreByLabel($vLabel) + $ctx.ExecuteQuery() + } + else{ + $obj = New-Object PSObject + $obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions("No Versions Available") + Write-Output $obj + } + } + } } #Paths to SDK @@ -111,6 +90,4 @@ $username="t@testova365.onmicrosoft.com" $Url="https://testova365.sharepoint.com/sites/STS" $ListTitle="VersionTest" - - -Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle \ No newline at end of file +Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle From 8c2f0eb5bfab62aad25b32b86dcfa2fe41802a5e Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:14:35 +0100 Subject: [PATCH 098/129] Update description.md --- .../description.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Versioning/Restore previous versions in the entire library/description.md b/Versioning/Restore previous versions in the entire library/description.md index d177fd80..602e5d33 100644 --- a/Versioning/Restore previous versions in the entire library/description.md +++ b/Versioning/Restore previous versions in the entire library/description.md @@ -1,22 +1,17 @@ The script retrieves all files and restores the LAST NOT CURRENT version of the file. Please test the script in test environment before using it in production. - - The script requires SharePoint Online SDK. Make sure that the paths below point to locations on your computer: + ```PowerShell #Paths to SDK Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" ``` - - The script needs to be edited before running. Enter the necessary data: - - ```PowerShell #Enter the data $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString @@ -26,7 +21,7 @@ $ListTitle="uyyu" ``` - +

Enjoy and please share feedback! From 5cf3c71728acfa7fcabb656ea71aaf8419e69142 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:17:17 +0100 Subject: [PATCH 099/129] Update Restore previous versions.ps1 --- .../Restore previous versions.ps1 | 196 ++++++++---------- 1 file changed, 88 insertions(+), 108 deletions(-) diff --git a/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 b/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 index b4efa5b5..eb28e14c 100644 --- a/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 +++ b/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 @@ -1,113 +1,93 @@ -function Get-SPOFolderFiles -{ +function Get-SPOFolderFiles{ param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$Url, + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, [Parameter(Mandatory=$true,Position=3)] - $password, + $password, [Parameter(Mandatory=$true,Position=4)] - [string]$ListTitle - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.Load($ctx.Web) - $ctx.ExecuteQuery() - $ll=$ctx.Web.Lists.GetByTitle($ListTitle) - $ctx.Load($ll) - $ctx.ExecuteQuery() - $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery - $spqQuery.ViewXml =""; - $itemki=$ll.GetItems($spqQuery) - $ctx.Load($itemki) - $ctx.ExecuteQuery() - - foreach($item in $itemki) - { - - Write-Host $item["FileRef"] -ForegroundColor DarkGreen - $file = - $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); - $ctx.Load($file) - $ctx.Load($file.Versions) - try{ - $ctx.ExecuteQuery() } - catch - { - continue; - } - if ($file.Versions.Count -eq 0) - { - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions("No Versions Available") - - #$obj | export-csv -Path $CSVPath -Append - - Write-Output $obj - } - elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File") - { - - foreach ($vv in $file.Versions){ - Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count - - # Write-Output $vv - - } - if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion) - { - $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel - Write-Host "Version to be restored: " $vLabel - } - else{ - $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel - Write-Host "Version to be restored: " $vLabel } - $file.Versions.RestoreByLabel($vLabel) - $ctx.ExecuteQuery() - } - -else -{ -$obj = New-Object PSObject -$obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions("No Versions Available") - Write-Output $obj - } - <# - try { $ctx.ExecuteQuery() - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions were deleted") - - $obj | export-csv -Path $CSVPath -Append - } - catch { - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions. Failed to delete") - - $obj | export-csv -Path $CSVPath -Append - - }#> - - - - - } - - - - - - - + [string]$ListTitle +) + +$ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) +$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) +$ctx.Load($ctx.Web) +$ctx.ExecuteQuery() +$ll=$ctx.Web.Lists.GetByTitle($ListTitle) +$ctx.Load($ll) +$ctx.ExecuteQuery() +$spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery +$spqQuery.ViewXml =""; +$itemki=$ll.GetItems($spqQuery) +$ctx.Load($itemki) +$ctx.ExecuteQuery() + +foreach($item in $itemki){ + Write-Host $item["FileRef"] -ForegroundColor DarkGreen + $file = + $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); + $ctx.Load($file) + $ctx.Load($file.Versions) + + try{ + $ctx.ExecuteQuery() } + catch{ + continue; + } + + if ($file.Versions.Count -eq 0){ + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions("No Versions Available") + + #$obj | export-csv -Path $CSVPath -Append + + Write-Output $obj + } + elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File"){ + foreach ($vv in $file.Versions){ + Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count + + # Write-Output $vv + } + + if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion){ + $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel + Write-Host "Version to be restored: " $vLabel + } + else{ + $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel + Write-Host "Version to be restored: " $vLabel } + $file.Versions.RestoreByLabel($vLabel) + $ctx.ExecuteQuery() + } + else{ + $obj = New-Object PSObject + $obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions("No Versions Available") + Write-Output $obj + } + <# + try { $ctx.ExecuteQuery() + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions were deleted") + + $obj | export-csv -Path $CSVPath -Append + } + catch { + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions. Failed to delete") + + $obj | export-csv -Path $CSVPath -Append + + }#> + } } #Paths to SDK @@ -122,4 +102,4 @@ $ListTitle="uyyu" -Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle \ No newline at end of file +Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle From eaec6344021552f801a579316fd211fe33181264 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:19:42 +0100 Subject: [PATCH 100/129] Update Restore previous versions.ps1 --- .../Restore previous versions.ps1 | 157 +++++++++--------- 1 file changed, 79 insertions(+), 78 deletions(-) diff --git a/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 b/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 index eb28e14c..376d8c6f 100644 --- a/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 +++ b/Versioning/Restore previous versions in the entire library/Restore previous versions.ps1 @@ -1,95 +1,96 @@ function Get-SPOFolderFiles{ -param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$Url, - [Parameter(Mandatory=$true,Position=3)] - $password, - [Parameter(Mandatory=$true,Position=4)] - [string]$ListTitle -) + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password, + [Parameter(Mandatory=$true,Position=4)] + [string]$ListTitle + ) -$ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) -$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) -$ctx.Load($ctx.Web) -$ctx.ExecuteQuery() -$ll=$ctx.Web.Lists.GetByTitle($ListTitle) -$ctx.Load($ll) -$ctx.ExecuteQuery() -$spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery -$spqQuery.ViewXml =""; -$itemki=$ll.GetItems($spqQuery) -$ctx.Load($itemki) -$ctx.ExecuteQuery() + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.ExecuteQuery() + $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + $spqQuery.ViewXml =""; + $itemki=$ll.GetItems($spqQuery) + $ctx.Load($itemki) + $ctx.ExecuteQuery() -foreach($item in $itemki){ - Write-Host $item["FileRef"] -ForegroundColor DarkGreen - $file = - $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); - $ctx.Load($file) - $ctx.Load($file.Versions) + foreach($item in $itemki){ + Write-Host $item["FileRef"] -ForegroundColor DarkGreen + $file = + $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); + $ctx.Load($file) + $ctx.Load($file.Versions) - try{ - $ctx.ExecuteQuery() } - catch{ - continue; - } - - if ($file.Versions.Count -eq 0){ - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions("No Versions Available") - - #$obj | export-csv -Path $CSVPath -Append - - Write-Output $obj - } - elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File"){ - foreach ($vv in $file.Versions){ - Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count - - # Write-Output $vv - } - - if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion){ - $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel - Write-Host "Version to be restored: " $vLabel - } - else{ - $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel - Write-Host "Version to be restored: " $vLabel } - $file.Versions.RestoreByLabel($vLabel) + try{ $ctx.ExecuteQuery() } - else{ - $obj = New-Object PSObject - $obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + catch{ + continue; + } + + if ($file.Versions.Count -eq 0){ + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) $obj | Add-Member NoteProperty Versions("No Versions Available") + + #$obj | export-csv -Path $CSVPath -Append + Write-Output $obj } - <# - try { $ctx.ExecuteQuery() - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions were deleted") + elseif($file.TypedObject.ToString() -eq "Microsoft.SharePoint.Client.File"){ + foreach ($vv in $file.Versions){ + Write-Host $vv.Created $vv.Size $vv.VersionLabel $vv.IsCurrentVersion $file.Versions.Count - $obj | export-csv -Path $CSVPath -Append - } - catch { - $obj=New-Object PSObject - $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) - $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) - $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions. Failed to delete") + # Write-Output $vv + } - $obj | export-csv -Path $CSVPath -Append + if($file.Versions[($file.Versions.Count-1)].IsCurrentVersion){ + $vLabel=$file.Versions[($file.Versions.Count-2)].VersionLabel + Write-Host "Version to be restored: " $vLabel + } + else{ + $vLabel=$file.Versions[($file.Versions.Count-1)].VersionLabel + Write-Host "Version to be restored: " $vLabel } + $file.Versions.RestoreByLabel($vLabel) + $ctx.ExecuteQuery() + } + else{ + $obj = New-Object PSObject + $obj| Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions("No Versions Available") + Write-Output $obj + } + <# + try { $ctx.ExecuteQuery() + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions were deleted") - }#> + $obj | export-csv -Path $CSVPath -Append + } + catch { + $obj=New-Object PSObject + $obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl) + $obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"]) + $obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions. Failed to delete") + + $obj | export-csv -Path $CSVPath -Append + + }#> + } } } - #Paths to SDK Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" From 3881065f3ec3daaef29e148ffd6f4474039ae95e Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:49:03 +0100 Subject: [PATCH 101/129] Update and rename Description.txt to Description.md --- .../{Description.txt => Description.md} | 87 ++++++++----------- 1 file changed, 34 insertions(+), 53 deletions(-) rename OTHER/CreativeDestruction/{Description.txt => Description.md} (81%) diff --git a/OTHER/CreativeDestruction/Description.txt b/OTHER/CreativeDestruction/Description.md similarity index 81% rename from OTHER/CreativeDestruction/Description.txt rename to OTHER/CreativeDestruction/Description.md index 2389df3d..cbec2c89 100644 --- a/OTHER/CreativeDestruction/Description.txt +++ b/OTHER/CreativeDestruction/Description.md @@ -1,21 +1,19 @@ -What does it do? - - +### *What does it do?* The program has 2 basic functions: creation and destruction. -Godly Creation: +**Godly Creation:** -- it creates the following site collections, all named after the templates they have been created from: +- it creates the following site collections, all named after the templates they have been created from: -TeamsiteWithLibraries -TeamsiteWithLists -Empty Teamsite -"WikiSite" -"BlogSite" -"CommunitySite" -"PublishingPortal" -- it creates 2 subsites : subsite1 and subsite2 to the TeamsiteWithLibraries +- TeamsiteWithLibraries +- TeamsiteWithLists +- Empty Teamsite +- "WikiSite" +- "BlogSite" +- "CommunitySite" +- "PublishingPortal" +- it creates 2 subsites : subsite1 and subsite2 to the TeamsiteWithLibraries - it creates 2 document libraries, 2 picture libraries, Wiki Page library, XML Form library and Data Connection library to the TeamsiteWithLibraries @@ -27,51 +25,44 @@ Empty Teamsite - it populates Custom, Anouncements list, Contacts list, Events list, and Tasks list with sample data (ca. 50 items - if you need more please look https://gallery.technet.microsoft.com/scriptcenter/Create-various-lists-with-0e714f70 and https://gallery.technet.microsoft.com/scriptcenter/Create-a-list-with-3f19ba11 ) -- it adds all the available lists and libraries to the Quick Launch Menu. Also added are the lists that were previously accessible only via direct links, like Workflow History. - - +- it adds all the available lists and libraries to the Quick Launch Menu. Also added are the lists that were previously accessible only via direct links, like Workflow History. Watch out! The process of creating 5000 items in a list takes time. You will be informed on the progress as the application runs. - - -Total Destruction: - +### Total Destruction: + - it retrieves all your site collections and deletes them, apart from the search, mysite (which cannot be recreated in SharePoint Online) and rootsite - it checks the recycle bin for the deleted sites and removes them from the recycle bin + Watch out! Deleting a site collection takes a while and depends on SharePoint Online backend processes. The application waits for the site collections to be deleted and informs you about its attempts with status updates "Trying to delete site XYZ". However, after 6 unsuccessful attempts it may mean that SharePoint is not going to be very cooperative at the moment and the application will ask you whether it should close or keep trying. - - -Only Recycle Bin: - +### Only Recycle Bin: + - as the name suggests, permanently removes the content of the recycle bin - cannot be reversed - can be used instead of Powershell Get-SpoDeletedSite | Remove-SpoDeletedSite + - - -Only Created - +### Only Created + - removes only the site collections created by the program + +- TeamsiteWithLibraries +- TeamsiteWithLists +- Empty Teamsite +- "WikiSite" +- "BlogSite" +- "CommunitySite" +- "PublishingPortal" -TeamsiteWithLibraries -TeamsiteWithLists -Empty Teamsite -"WikiSite" -"BlogSite" -"CommunitySite" -"PublishingPortal" Watch out! If you added some of your own data to those site collections (other libraries, site mailbox or items) it will also be deleted! - - -What doesn't it do? - +### *What doesn't it do?* + -Despite the name Non-Empty libraries are still empty -The list with Geolocation column doesn't contain Geolocation column @@ -79,26 +70,19 @@ What doesn't it do? -It doesn't verify your credentials. Change the examples in the fields into your own credentials, following the same pattern (don't put in a teamsite domain.sharepoint.com where it asks you to type admin site url preceded by https://). If you make a mistake, you will get an error at an early stage of the application. - It's not perfect. I have made it as failsafe as the time allowed with a lot of try and catches and bugs handled. However, if it still stops at some point, just run it again. The program will detect the work already done and simply continue. + - - - - -How do I use it? +### *How do I use it?* The zip file contains an .exe which installs the program. You can open it like any other program from Start Menu or a Desktop shortcut. Type in your user credentials in the three available fields following the given example. After that, choose one of the buttons to create or delete data in your tenant. You can perform multiple operations during one run, so if you find it to your liking, you can alternate between creating and destroying content just to test SharePoint Online's behaviour. -When you have finished working with the program, a log will be created at C:\Users\Public\ where you can analyze what has been done. +When you have finished working with the program, a **log will be created at C:\Users\Public\** where you can analyze what has been done. If you need to uninstall the program you can find it in Control Panel>Programs and Features. - - - - -Technicalities +### *Technicalities* The program relies on static classes. @@ -110,6 +94,3 @@ CheckForIllegalCrossThreadCalls is set to false, which may generate some random Updating the status window may slow down or even temporarily hang the execution. Just let it run its course and it should fix itself. This part also forced me to set CheckForIllegalCrossThreadCalls = false; so if anyone knows how to fix it, please post a comment. That part of the code is available in the snippet. - - - From 5c9ae6d5f0c5cbbd5457a1c5547952d255256c48 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:55:08 +0100 Subject: [PATCH 102/129] Update Description.md --- OTHER/CreativeDestruction/Description.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/OTHER/CreativeDestruction/Description.md b/OTHER/CreativeDestruction/Description.md index cbec2c89..264269e6 100644 --- a/OTHER/CreativeDestruction/Description.md +++ b/OTHER/CreativeDestruction/Description.md @@ -4,8 +4,9 @@ The program has 2 basic functions: creation and destruction. **Godly Creation:** -- it creates the following site collections, all named after the templates they have been created from: - + + - it creates the following site collections, all named after the templates they have been created from: + - TeamsiteWithLibraries - TeamsiteWithLists - Empty Teamsite @@ -13,19 +14,34 @@ The program has 2 basic functions: creation and destruction. - "BlogSite" - "CommunitySite" - "PublishingPortal" -- it creates 2 subsites : subsite1 and subsite2 to the TeamsiteWithLibraries + +- it creates 2 subsites : subsite1 and subsite2 to the TeamsiteWithLibraries + +
+ - it creates 2 document libraries, 2 picture libraries, Wiki Page library, XML Form library and Data Connection library to the TeamsiteWithLibraries + + - it creates 3 Custom lists in the TeamsiteWithLists: one empty, one with sample data, one with over 5000 items + + - it creates a default view limited to 70 items for 5000 items list. You can switch between the views using GUI + + - it creates Links list, Anouncements list, Contacts list, Events list, Tasks list to the TeamsiteWithLists + + - it populates Custom, Anouncements list, Contacts list, Events list, and Tasks list with sample data (ca. 50 items - if you need more please look https://gallery.technet.microsoft.com/scriptcenter/Create-various-lists-with-0e714f70 and https://gallery.technet.microsoft.com/scriptcenter/Create-a-list-with-3f19ba11 ) + -- it adds all the available lists and libraries to the Quick Launch Menu. Also added are the lists that were previously accessible only via direct links, like Workflow History.
+ +- it adds all the available lists and libraries to the Quick Launch Menu. Also added are the lists that were previously accessible only via direct links, like Workflow History. + Watch out! The process of creating 5000 items in a list takes time. You will be informed on the progress as the application runs. From 6b0582577444be380d7c7c4fb50a15dd99775886 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:56:05 +0100 Subject: [PATCH 103/129] Update Description.md --- OTHER/CreativeDestruction/Description.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/OTHER/CreativeDestruction/Description.md b/OTHER/CreativeDestruction/Description.md index 264269e6..a388582d 100644 --- a/OTHER/CreativeDestruction/Description.md +++ b/OTHER/CreativeDestruction/Description.md @@ -7,6 +7,7 @@ The program has 2 basic functions: creation and destruction. - it creates the following site collections, all named after the templates they have been created from: + - TeamsiteWithLibraries - TeamsiteWithLists - Empty Teamsite @@ -22,27 +23,27 @@ The program has 2 basic functions: creation and destruction. - it creates 2 document libraries, 2 picture libraries, Wiki Page library, XML Form library and Data Connection library to the TeamsiteWithLibraries - +
- it creates 3 Custom lists in the TeamsiteWithLists: one empty, one with sample data, one with over 5000 items - +
- it creates a default view limited to 70 items for 5000 items list. You can switch between the views using GUI - +
- it creates Links list, Anouncements list, Contacts list, Events list, Tasks list to the TeamsiteWithLists - +
-- it populates Custom, Anouncements list, Contacts list, Events list, and Tasks list with sample data (ca. 50 items - if you need more please look https://gallery.technet.microsoft.com/scriptcenter/Create-various-lists-with-0e714f70 and https://gallery.technet.microsoft.com/scriptcenter/Create-a-list-with-3f19ba11 ) +- it populates Custom, Anouncements list, Contacts list, Events list, and Tasks list with sample data (ca. 50 items - if you need more please look https://gallery.technet.microsoft.com/scriptcenter/Create-various-lists-with-0e714f70
and
https://gallery.technet.microsoft.com/scriptcenter/Create-a-list-with-3f19ba11 )
- +
- it adds all the available lists and libraries to the Quick Launch Menu. Also added are the lists that were previously accessible only via direct links, like Workflow History. - +
Watch out! The process of creating 5000 items in a list takes time. You will be informed on the progress as the application runs. ### Total Destruction: From 270f28bb15ed3ac1e13fbe090c0b4c3e2a03d7bc Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 19:59:56 +0100 Subject: [PATCH 104/129] Update Description.md --- OTHER/CreativeDestruction/Description.md | 28 ++++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/OTHER/CreativeDestruction/Description.md b/OTHER/CreativeDestruction/Description.md index a388582d..05a4dc2b 100644 --- a/OTHER/CreativeDestruction/Description.md +++ b/OTHER/CreativeDestruction/Description.md @@ -49,25 +49,33 @@ Watch out! The process of creating 5000 items in a list takes time. You will be ### Total Destruction: - it retrieves all your site collections and deletes them, apart from the search, mysite (which cannot be recreated in SharePoint Online) and rootsite - + +
+ - it checks the recycle bin for the deleted sites and removes them from the recycle bin +
Watch out! Deleting a site collection takes a while and depends on SharePoint Online backend processes. The application waits for the site collections to be deleted and informs you about its attempts with status updates "Trying to delete site XYZ". However, after 6 unsuccessful attempts it may mean that SharePoint is not going to be very cooperative at the moment and the application will ask you whether it should close or keep trying. ### Only Recycle Bin: - as the name suggests, permanently removes the content of the recycle bin - + +
+ - cannot be reversed - + +
+ - can be used instead of Powershell Get-SpoDeletedSite | Remove-SpoDeletedSite ### Only Created -
+ - removes only the site collections created by the program + - TeamsiteWithLibraries - TeamsiteWithLists - Empty Teamsite @@ -81,11 +89,17 @@ Watch out! If you added some of your own data to those site collections (other l ### *What doesn't it do?* -Despite the name Non-Empty libraries are still empty - + +
+ -The list with Geolocation column doesn't contain Geolocation column - + +
+ -It doesn't verify your credentials. Change the examples in the fields into your own credentials, following the same pattern (don't put in a teamsite domain.sharepoint.com where it asks you to type admin site url preceded by https://). If you make a mistake, you will get an error at an early stage of the application. - + +
+ - It's not perfect. I have made it as failsafe as the time allowed with a lot of try and catches and bugs handled. However, if it still stops at some point, just run it again. The program will detect the work already done and simply continue. From a9c10f43c4ad86d74c4f8e211b927f9496ba9e2e Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 20:03:22 +0100 Subject: [PATCH 105/129] Update excerpt.cs --- OTHER/CreativeDestruction/excerpt.cs | 144 ++++++++++++--------------- 1 file changed, 61 insertions(+), 83 deletions(-) diff --git a/OTHER/CreativeDestruction/excerpt.cs b/OTHER/CreativeDestruction/excerpt.cs index f1c358a0..02954a46 100644 --- a/OTHER/CreativeDestruction/excerpt.cs +++ b/OTHER/CreativeDestruction/excerpt.cs @@ -1,104 +1,82 @@ -public Form1() - { - InitializeComponent(); - CheckForIllegalCrossThreadCalls = false; - - label4.Text = Status.StatusText; - RefreshStatusThread = new Thread(RefreshStupidStatus); - RefreshStatusThread.Start(); - } - -private void RefreshStupidStatus() - { - label4.Text = Status.StatusText; - Thread.Sleep(1000); - RefreshStupidStatus(); - } +public Form1() { + InitializeComponent(); + CheckForIllegalCrossThreadCalls = false; + + label4.Text = Status.StatusText; + RefreshStatusThread = new Thread(RefreshStupidStatus); + RefreshStatusThread.Start(); +} -private void button1_Click(object sender, EventArgs e) - { +private void RefreshStupidStatus() { + label4.Text = Status.StatusText; + Thread.Sleep(1000); + RefreshStupidStatus(); +} - if (CredentialVerificationForAllButtons()) - { - +private void button1_Click(object sender, EventArgs e) { + if (CredentialVerificationForAllButtons()) { TotalDestructionFunction.TotalThem(); TotalDestructionFunction.RemoveRecycleBinContent(); - - } - - } +} - private void myshitbtn_Click(object sender, EventArgs e) - { - if (CredentialVerificationForAllButtons()) - { - - +private void myshitbtn_Click(object sender, EventArgs e) { + if (CredentialVerificationForAllButtons()) { TotalDestructionFunction.JustMyShit(); TotalDestructionFunction.RemoveRecycleBinContent(); - - } } +} - -public static void CreateSiteColls(string siteurll, string root, string credUsername, SecureString password) - { - ClientContext tenantContext = new ClientContext(siteurll); - tenantContext.Credentials = new SharePointOnlineCredentials(credUsername, password); - var tenant = new Tenant(tenantContext); - tenantContext.Load(tenant); - Status.StatusText = DateTime.Now.ToString() + " Sending request to create site collections. This may take a while...\r\n" + Status.StatusText; - string[] TeamSiteColls = { "TeamsiteWithLibraries", "TeamsiteWithLists", "Empty Teamsite" }; - foreach (string tsc in TeamSiteColls) - { +public static void CreateSiteColls(string siteurll, string root, string credUsername, SecureString password) { + ClientContext tenantContext = new ClientContext(siteurll); + tenantContext.Credentials = new SharePointOnlineCredentials(credUsername, password); + var tenant = new Tenant(tenantContext); + tenantContext.Load(tenant); + Status.StatusText = DateTime.Now.ToString() + " Sending request to create site collections. This may take a while...\r\n" + Status.StatusText; + string[] TeamSiteColls = { "TeamsiteWithLibraries", "TeamsiteWithLists", "Empty Teamsite" }; + + foreach (string tsc in TeamSiteColls) { var siteCreationProperties = CreateSite(tsc, tsc, credUsername, root); SpoOperation spo = tenant.CreateSite(siteCreationProperties); tenantContext.Load(spo, i => i.IsComplete); - try - { - tenantContext.ExecuteQuery(); + + try{ + tenantContext.ExecuteQuery(); } - catch (Exception e) - { - Status.StatusText = DateTime.Now.ToString() + " " + e.Message + "\r\n" + Status.StatusText; - + catch (Exception e){ + Status.StatusText = DateTime.Now.ToString() + " " + e.Message + "\r\n" + Status.StatusText; } - - - } + } } -public static void CreateLis(string rootsite, string credUsername, SecureString password) - { - string strona = rootsite + "Sites/TeamsiteWithLists"; - var context = new ClientContext(strona); - context.Credentials = new SharePointOnlineCredentials(credUsername, password); - context.Load(context.Web.Webs, wc => wc.Include(w => w.Url, w => w.Lists)); - SiteProperties collprops = new SiteProperties(context, strona); - collprops.StorageMaximumLevel = 700; - context.Web.Lists.Add(CreateList("Generic List", 100)); - context.Web.Lists.Add(CreateList("Empty Generic List", 100)); - context.Web.Lists.Add(CreateList("Custom List With 5005items", 100)); - context.Web.Lists.Add(CreateList("Generic List With GeolocationColumn", 100)); - context.Web.Lists.Add(CreateList("Links list", 103)); - context.Web.Lists.Add(CreateList("Announcements list", 104)); - context.Web.Lists.Add(CreateList("Contacts list", 105)); - context.Web.Lists.Add(CreateList("Events list", 106)); - context.Web.Lists.Add(CreateList("Tasks list", 107)); - //context.Web.Lists.Add(CreateList("User Information list", 112)); - context.Web.QuickLaunchEnabled = true; - try - { +public static void CreateLis(string rootsite, string credUsername, SecureString password) { + string strona = rootsite + "Sites/TeamsiteWithLists"; + var context = new ClientContext(strona); + context.Credentials = new SharePointOnlineCredentials(credUsername, password); + context.Load(context.Web.Webs, wc => wc.Include(w => w.Url, w => w.Lists)); + SiteProperties collprops = new SiteProperties(context, strona); + collprops.StorageMaximumLevel = 700; + context.Web.Lists.Add(CreateList("Generic List", 100)); + context.Web.Lists.Add(CreateList("Empty Generic List", 100)); + context.Web.Lists.Add(CreateList("Custom List With 5005items", 100)); + context.Web.Lists.Add(CreateList("Generic List With GeolocationColumn", 100)); + context.Web.Lists.Add(CreateList("Links list", 103)); + context.Web.Lists.Add(CreateList("Announcements list", 104)); + context.Web.Lists.Add(CreateList("Contacts list", 105)); + context.Web.Lists.Add(CreateList("Events list", 106)); + context.Web.Lists.Add(CreateList("Tasks list", 107)); + //context.Web.Lists.Add(CreateList("User Information list", 112)); + context.Web.QuickLaunchEnabled = true; + + try { context.ExecuteQuery(); - } - catch(Exception e) - { + } + catch(Exception e) { Status.StatusText = DateTime.Now + " Couldn't create list. " + e.Message + Environment.NewLine + Status.StatusText; - } - context.Dispose(); - - Status.StatusText = DateTime.Now + " Lists are created. Proceeding to fill them with content" + Environment.NewLine + Status.StatusText; - + } + + context.Dispose(); + + Status.StatusText = DateTime.Now + " Lists are created. Proceeding to fill them with content" + Environment.NewLine + Status.StatusText; } } From 01fb2a253d77d2ddce7bfa2c7d5b72cade046ed4 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 20:15:40 +0100 Subject: [PATCH 106/129] Update description.md --- .../description.md | 265 +----------------- 1 file changed, 4 insertions(+), 261 deletions(-) diff --git a/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md b/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md index 221ec711..9991cf47 100644 --- a/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md +++ b/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md @@ -6,9 +6,9 @@ That means that users having access to more than one site will appear more than -The .zip contains: +The ```.zip``` contains: -.exe file with a console application. Install to run. Enter global administrator credentials, the the admin Center url, and the report's path. +```.exe``` file with a console application. Install to run. Enter global administrator credentials, the the admin Center url, and the report's path. sample report @@ -25,354 +25,97 @@ The following properties are retrieved: - +``` "SPS-UserPrincipalName","UserProfile_GUID","SID","ADGuid","AccountName","FirstName","SPS-PhoneticFirstName", "LastName", - - - "SPS-PhoneticLastName", - - - "PreferredName", - - - "SPS-PhoneticDisplayName", - - - "WorkPhone", - - - "Department", - - - "Title", - - - "SPS-JobTitle", - - - "SPS-Department", - - - "Manager", - - - "AboutMe", - - - "PersonalSpace", - - - "PictureURL", - - - "UserName", - - - "QuickLinks", - - - "WebSite", - - - "SPS-DataSource", - - - "SPS-MemberOf", - - - "SPS-Dotted-line", - - - "SPS-Peers", - - - "SPS-Responsibility", - - - "SPS-SipAddress", - - - "SPS-MySiteUpgrade", - - - "SPS-DontSuggestList", - - - "SPS-ProxyAddresses", - - - "SPS-HireDate", - - - "SPS-DisplayOrder", - - - "SPS-ClaimID", - - - "SPS-ClaimProviderID", - - - "SPS-ClaimProviderType", - - - "SPS-LastColleagueAdded", - - - "SPS-OWAUrl", - - - "SPS-SavedAccountName", - - - "SPS-SavedSID", - - - "SPS-ResourceSID", - - - "SPS-ResourceAccountName", - - - "SPS-ObjectExists", - - - "SPS-MasterAccountName", - - - "SPS-UserPrincipalName", - - - "SPS-PersonalSiteCapabilities", - - - "SPS-O15FirstRunExperience", - - - "SPS-PersonalSiteFirstCreationTime", - - - "SPS-PersonalSiteLastCreationTime", - - - "SPS-PersonalSiteNumberOfRetries", - - - "SPS-PersonalSiteFirstCreationError", - - - "SPS-LastKeywordAdded", - - - "SPS-FeedIdentifier", - - - "SPS-PersonalSiteInstantiationState", - - - "WorkEmail", - - - "CellPhone", - - - "Fax", - - - "HomePhone", - - - "Office", - - - "SPS-Location", - - - "Assistant", - - - "SPS-PastProjects", - - - "SPS-Skills", - - - "SPS-School", - - - "SPS-Birthday", - - - "SPS-StatusNotes", - - - "SPS-Interests", - - - "SPS-HashTags", - - - "SPS-PictureTimestamp", - - - "SPS-EmailOptin", - - - "SPS-PicturePlaceholderState", - - - "SPS-PrivacyPeople", - - - "SPS-PrivacyActivity", - - - "SPS-PictureExchangeSyncState", - - - "SPS-MUILanguages", - - - "SPS-ContentLanguages", - - - "SPS-TimeZone", - - - "SPS-RegionalSettings-FollowWeb", - - - "SPS-Locale", - - - "SPS-CalendarType", - - - "SPS-AltCalendarType", - - - "SPS-AdjustHijriDays", - - - "SPS-ShowWeeks", - - - "SPS-WorkDays", - - - "SPS-WorkDayStartHour", - - - "SPS-WorkDayEndHour", - - - "SPS-Time24", - - - "SPS-FirstDayOfWeek", - - - "SPS-FirstWeekOfYear", - - - "SPS-RegionalSettings-Initialized", - - - "OfficeGraphEnabled" - - - - - - +``` ```C# static void Main(string[] args) From fc9891ed80487eedac8e32785bb8bdcfb5b799f5 Mon Sep 17 00:00:00 2001 From: JakubPiegza <45433779+JakubPiegza@users.noreply.github.com> Date: Sun, 1 Mar 2020 20:16:06 +0100 Subject: [PATCH 107/129] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md b/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md index 9991cf47..4a2b7fe9 100644 --- a/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md +++ b/User Profiles/Retrieve all user profiles and their properties using C# and CSOM/description.md @@ -138,7 +138,7 @@ static void Main(string[] args) Console.ReadKey(); } ``` -It would not exist without Geetanjali's inspiring article: http://social.technet.microsoft.com/wiki/contents/articles/24627.sharepoint-online-export-user-profile-properties-using-csom.aspx +It would not exist without Geetanjali's inspiring [article](http://social.technet.microsoft.com/wiki/contents/articles/24627.sharepoint-online-export-user-profile-properties-using-csom.aspx).

From d8ff8a12cd7766624c75b2f5345146e8954bea6f Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 19:55:38 +0200 Subject: [PATCH 108/129] Create description.md --- .../description.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/description.md diff --git a/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/description.md b/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/description.md new file mode 100644 index 00000000..7a13599f --- /dev/null +++ b/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/description.md @@ -0,0 +1,44 @@ +Short Powershell script that modifies the following settings on every user's OneDrive for Business: + + + + + +On- Users with edit permissions can re-share. + +Off- Only OneDrive for Business owner can share. The value of ODBAccessRequestsdefines whether a request to share gets sent to the owner. + +Unspecified- Let each OneDrive for Business owner enable or disable re-sharing behavior on their OneDrive. + + + + + +The script is part of Technet Wiki article OneDrive for Business sharing settings with Powershell. + +## How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` Enter the correct url, the setting for the sync button, and admin login. You will be additionally prompted for the password. Do not enter it in the file: +```PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$ODBMembersCanShare="On" # On, Off, Unspecified +$ODBAccessRequests="Unspecified" #On, Off, Unspecified +``` + + + Run the script + + + + + From 55b585362e38fe1b1d2f8bc9d571fb6b01ba5b6a Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 19:56:04 +0200 Subject: [PATCH 109/129] Add files via upload --- .../ODBAccessRequests.PNG | Bin 0 -> 40859 bytes .../ODBAccessRequests.ps1 | 54 ++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG create mode 100644 Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 diff --git a/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG b/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7f7ba5260700576e891de2dae8cd1a5acb4d9ddd GIT binary patch literal 40859 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

))dcveQAi-W_yuEq4Pzm+Idt2yn? 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 Date: Fri, 6 Mar 2020 19:57:28 +0200 Subject: [PATCH 110/129] Create description.md --- .../description.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/description.md diff --git a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/description.md b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/description.md new file mode 100644 index 00000000..f7154227 --- /dev/null +++ b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/description.md @@ -0,0 +1,49 @@ +Short Powershell script that prevents external users from downloading the files that have been shared with them using guest link. The script uses CSOM and requires SharePoint Online SDK. The script is described in and is part of Wiki Technet article OneDrive for Business sharing settings with PowerShell . + +Modifying these settings is currently not possible with SharePoint Online Management Shell. + + + + + + +From August 2016 and the CSOM version 16.1.5626.1200 there is an option to prevent external users from downloading the files that have been shared with them using guest link: + + + + + + + + + + + + + + +How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` Enter the correct url, the setting for the sync button, and admin login. You will be additionally prompted for the password. Do not enter it in the file: + + +```PowerShell + #Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" +$BlockDownloadOfAllFilesForGuests=$false #Whether the download should be allowed +``` + Run the script + + + + + From a43e4742d468d7e758805ac1d1ae5a7797661749 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 19:58:25 +0200 Subject: [PATCH 111/129] Add files via upload --- .../0882BlockDownload.png | Bin 0 -> 39577 bytes .../1462BlockDownload2.png | Bin 0 -> 49282 bytes .../BlockDownloadOfAllFilesForGuests.ps1 | 48 ++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/0882BlockDownload.png create mode 100644 Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/1462BlockDownload2.png create mode 100644 Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/BlockDownloadOfAllFilesForGuests.ps1 diff --git a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/0882BlockDownload.png b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/0882BlockDownload.png new file mode 100644 index 0000000000000000000000000000000000000000..68c46b097d4d71c1d7e660df7f8717de54e75b89 GIT binary patch literal 39577 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 VOz2GC85ss3@O1TaS?83{1OP%P>^=Yh literal 0 HcmV?d00001 diff --git a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/1462BlockDownload2.png b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/1462BlockDownload2.png new file mode 100644 index 0000000000000000000000000000000000000000..2be6bac5b162a621fe31551a187c735cd5530d03 GIT binary patch literal 49282 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 Date: Fri, 6 Mar 2020 20:02:50 +0200 Subject: [PATCH 112/129] Create description.md --- .../description.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/description.md diff --git a/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/description.md b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/description.md new file mode 100644 index 00000000..f301226c --- /dev/null +++ b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/description.md @@ -0,0 +1,59 @@ +Powershell script to restore inherited permissions for all items in a SharePoint Online list. + + + +The script works with large (5000+) lists. + +In order to make it possible script uses a solution published here: http://www.sptrenches.com/2016/06/get-all-items-in-5000-large-list-with.html and commented by Sharath Aluri here: https://gallery.technet.microsoft.com/office/Delete-unique-permissions-c6ea2b57/view/Discussions#content. + + + +The script is a variation of Delete unique permissions in all items in one single list using Powershell script available on the Technet Gallery. + + + +Before you run it, you have to modify the last lines of the script! + + + + + +PowerShell +# Paths to SDK. Please verify location on your computer. +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT.sharepoint.com/sites/testID1de" +$ListTitle="testitems" + + +Enter your credentials and the site where you want to modify the inheritance. +Verify if the SharePoint Online SDK is installed in the same location on your computer + + + + + + + + + + +Related scripts: + +Delete unique permissions in all items in one single list using Powershell + +Delete unique permissions for all lists + +Break inheritance for all lists + +Modify inherited permissions for a SharePoint Online site (module) + +Modify list permissions with Powershell cmdlets (module) + +Delete unique permissions (C# program) + +Get lists with unique permissions (C# program) From a8a06627b8c6e44328868faf651473d03f39cd93 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 20:03:04 +0200 Subject: [PATCH 113/129] Add files via upload --- .../ResetPermissionInheritanceLargeLists.ps1 | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 diff --git a/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 new file mode 100644 index 00000000..da8f3d5b --- /dev/null +++ b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 @@ -0,0 +1,93 @@ +function Restore-SPOListAllItemsInheritance +{ + + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + [SecureString]$AdminPassword, + [Parameter(Mandatory=$true,Position=4)] + [string]$ListTitle + ) + + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.ExecuteQuery() + + ## View XML +$qCommand = @" + + + + + 5000 + +"@ +## Page Position +$position = $null + +## All Items +$allItems = @() +Do{ + $camlQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + $camlQuery.ListItemCollectionPosition = $position + $camlQuery.ViewXml = $qCommand + ## Executing the query + $currentCollection = $ll.GetItems($camlQuery) + $ctx.Load($currentCollection) + $ctx.ExecuteQuery() + + ## Getting the position of the previous page + $position = $currentCollection.ListItemCollectionPosition + + # Adding current collection to the allItems collection + $allItems += $currentCollection + + Write-Host "Collecting items. Current number of items: " $allItems.Count + + +} + while($position -ne $null) + + + Write-Host "Total number of items: " $allItems.Count + + for($j=0;$j -lt $allItems.Count ;$j++) + { + + Write-Host "Resetting permissions for " $allItems[$j]["Title"] ".." $allItems[$j]["FileRef"] + $allItems[$j].ResetRoleInheritance() + $ctx.ExecuteQuery() + + } + + + + + + + } + + +# Paths to SDK. Please verify location on your computer. +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT.sharepoint.com/sites/testID1de" +$ListTitle="testitems" + + +Restore-SPOListAllItemsInheritance -Username $username -Url $Url -AdminPassword $AdminPassword -ListTitle $ListTitle From fa8c13551cdfe2db4a288afa1ec84968a348fe1e Mon Sep 17 00:00:00 2001 From: LocalGitty <42035526+lgitty@users.noreply.github.com> Date: Fri, 6 Mar 2020 20:05:06 +0200 Subject: [PATCH 114/129] copied unique permissions in large lists --- .../ResetPermissionInheritanceLargeLists.ps1 | 93 +++++++++++++++++++ .../description.md | 59 ++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 create mode 100644 Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/description.md diff --git a/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 new file mode 100644 index 00000000..da8f3d5b --- /dev/null +++ b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/ResetPermissionInheritanceLargeLists.ps1 @@ -0,0 +1,93 @@ +function Restore-SPOListAllItemsInheritance +{ + + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + [SecureString]$AdminPassword, + [Parameter(Mandatory=$true,Position=4)] + [string]$ListTitle + ) + + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.ExecuteQuery() + + ## View XML +$qCommand = @" + + + + + 5000 + +"@ +## Page Position +$position = $null + +## All Items +$allItems = @() +Do{ + $camlQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + $camlQuery.ListItemCollectionPosition = $position + $camlQuery.ViewXml = $qCommand + ## Executing the query + $currentCollection = $ll.GetItems($camlQuery) + $ctx.Load($currentCollection) + $ctx.ExecuteQuery() + + ## Getting the position of the previous page + $position = $currentCollection.ListItemCollectionPosition + + # Adding current collection to the allItems collection + $allItems += $currentCollection + + Write-Host "Collecting items. Current number of items: " $allItems.Count + + +} + while($position -ne $null) + + + Write-Host "Total number of items: " $allItems.Count + + for($j=0;$j -lt $allItems.Count ;$j++) + { + + Write-Host "Resetting permissions for " $allItems[$j]["Title"] ".." $allItems[$j]["FileRef"] + $allItems[$j].ResetRoleInheritance() + $ctx.ExecuteQuery() + + } + + + + + + + } + + +# Paths to SDK. Please verify location on your computer. +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT.sharepoint.com/sites/testID1de" +$ListTitle="testitems" + + +Restore-SPOListAllItemsInheritance -Username $username -Url $Url -AdminPassword $AdminPassword -ListTitle $ListTitle diff --git a/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/description.md b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/description.md new file mode 100644 index 00000000..f301226c --- /dev/null +++ b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/description.md @@ -0,0 +1,59 @@ +Powershell script to restore inherited permissions for all items in a SharePoint Online list. + + + +The script works with large (5000+) lists. + +In order to make it possible script uses a solution published here: http://www.sptrenches.com/2016/06/get-all-items-in-5000-large-list-with.html and commented by Sharath Aluri here: https://gallery.technet.microsoft.com/office/Delete-unique-permissions-c6ea2b57/view/Discussions#content. + + + +The script is a variation of Delete unique permissions in all items in one single list using Powershell script available on the Technet Gallery. + + + +Before you run it, you have to modify the last lines of the script! + + + + + +PowerShell +# Paths to SDK. Please verify location on your computer. +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://TENANT.sharepoint.com/sites/testID1de" +$ListTitle="testitems" + + +Enter your credentials and the site where you want to modify the inheritance. +Verify if the SharePoint Online SDK is installed in the same location on your computer + + + + + + + + + + +Related scripts: + +Delete unique permissions in all items in one single list using Powershell + +Delete unique permissions for all lists + +Break inheritance for all lists + +Modify inherited permissions for a SharePoint Online site (module) + +Modify list permissions with Powershell cmdlets (module) + +Delete unique permissions (C# program) + +Get lists with unique permissions (C# program) From 9fad48394b278da99b4494301e873d61ddec56a8 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 20:10:36 +0200 Subject: [PATCH 115/129] Create description.md --- .../description.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Versioning/Get versioning settings for all lists/description.md diff --git a/Versioning/Get versioning settings for all lists/description.md b/Versioning/Get versioning settings for all lists/description.md new file mode 100644 index 00000000..8ac15997 --- /dev/null +++ b/Versioning/Get versioning settings for all lists/description.md @@ -0,0 +1,32 @@ +A short script that checks versioning settings for all the libraries and lists in the whole tenant. + + + +It requires SharePoint Online Management Shell and SharePoint SDK installed. + + + +It uses recurrence to find all sites in all site collections and then goes through all the lists. + +At the end, a csv file is generated with the lists' urls and settings: + + + + + +As the script runs you will see green lists' titles for which the setting was successfully retrieved and red for those which failed. + + + + + +### How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +```PowerShell +# Paths to SDK. Please verify location on your computer. +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" + From 7189d9095d65bd319256cc0a420e3c89826cbcef Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 6 Mar 2020 20:11:01 +0200 Subject: [PATCH 116/129] Add files via upload --- .../Capture431.PNG | Bin 0 -> 69289 bytes .../GetVersioningSettings.ps1 | 78 ++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 Versioning/Get versioning settings for all lists/Capture431.PNG create mode 100644 Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 diff --git a/Versioning/Get versioning settings for all lists/Capture431.PNG b/Versioning/Get versioning settings for all lists/Capture431.PNG new file mode 100644 index 0000000000000000000000000000000000000000..41f0400d96ec5eb043b374b22a90b4576138c153 GIT binary patch literal 69289 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 &2B#HRm>w>qjQEzR@aLH%9RiD#cF$AD_87ScOwc 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 Day!`# literal 0 HcmV?d00001 diff --git a/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 b/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 new file mode 100644 index 00000000..9210a2d5 --- /dev/null +++ b/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 @@ -0,0 +1,78 @@ +function getall($urelek) +{ + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + foreach( $list in $ctx.Web.Lists) + { + $ctx.Load($list) + + try + { + $ctx.ExecuteQuery() + $VersioningDetails = New-Object PSObject -Property @{ + 'List' = $list.Title + 'Url'= $list.ParentWebUrl + 'Require Content Approval' = $list.EnableModeration + 'Versioning Enabled' = $list.EnableVersioning + 'Major Version limit' = $list.MajorVersionLimit + 'Draft Version limit' = $list.MajorWithMinorVersionsLimit + 'Drafts visible to' = $list.DraftVersionVisibility + 'Checkout required' = $list.ForceCheckout + } + Write-Host $list.Title -ForegroundColor DarkGreen + + $Global:csv+= $VersioningDetails + } + + catch + { + #$Global:csv+= $csvvalue + Write-Host $list.Title -ForegroundColor Red + } + + + + } + + if($ctx.Web.Webs.Count -gt 0) + { + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) + { + getall($ctx.Web.Webs[$i].Url) + } + + } + + + +} + +# Paths to SDK. Please verify location on your computer. +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" + + + +# You can also enter credentials directly: $siteUrl="https://tenant-admin.sharepoint.com" +$siteUrl = Read-Host -Prompt "Enter https://tenant-admin.sharepoint.com” +$username = Read-Host -Prompt "Enter admin's login, e.g. admin@domain.onmicrosoft.com" +$password = Read-Host -Prompt "Enter password" -AsSecureString +$credy= New-Object System.Management.Automation.PSCredential($username,$password) +Connect-SPOService -Credential $credy -Url $siteUrl + +$sitecollections=get-SPOSite +$Global:csv=@() + +foreach($sitecoll in $sitecollections) +{ + getall($sitecoll.Url) +} + +# Specify the path where the log file will be published +$Global:csv | Export-Csv -Path C:\Users\Public\Versioning5.csv From ea12685cfdbd87db3ce0d60a81638ad48759cd3c Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:31:06 +0200 Subject: [PATCH 117/129] Create description.md --- .../description.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Site Management/Get site groups from root and subsites/description.md diff --git a/Site Management/Get site groups from root and subsites/description.md b/Site Management/Get site groups from root and subsites/description.md new file mode 100644 index 00000000..33a59aaa --- /dev/null +++ b/Site Management/Get site groups from root and subsites/description.md @@ -0,0 +1,49 @@ +A short Powershell script that retrieves all site groups from the root site and all subsites in a site collection. blaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + + + + + + + +How to use? +1. Download and open the .ps1 file. + +2. Adjust paths to SharePoint Online SDK: + + + +PowerShell +# Paths to SDK. Please verify location on your computer. +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" + + + +3. Enter your tenant data. DO NOT enter password. You will be asked for it during script's execution: + + + +```PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@Tenant.onmicrosoft.com" +$Url="https://Tenant.sharepoint.com" +$csvPath="C:\Users\Public\AllSiteGroups2.csv" + + + + + + + +Expected results: + + + + + + + + + From 9d63c4379e1ce551fb01c2666186745d93492b90 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:31:40 +0200 Subject: [PATCH 118/129] Add files via upload --- .../Capture432.PNG | Bin 0 -> 163058 bytes .../Get-SPOAllSiteGroups.ps1 | 57 ++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 Site Management/Get site groups from root and subsites/Capture432.PNG create mode 100644 Site Management/Get site groups from root and subsites/Get-SPOAllSiteGroups.ps1 diff --git a/Site Management/Get site groups from root and subsites/Capture432.PNG b/Site Management/Get site groups from root and subsites/Capture432.PNG new file mode 100644 index 0000000000000000000000000000000000000000..e4b16f3e6c07ff91e89168461f752f865bfcc138 GIT binary patch literal 163058 zcmeFZc~p{X|LMdrI?w)moOG(K#uKcWO_4{yBN(#t1cgpO_eYY8rYwVHct(DJ-SMa-u zS7m-gzbk?N=D9{EqSj~cfyck^?GC%wdyizXaqr%yttU^O4ZGuCKF8G_eGEKFOGyJx zdEB%+GaxvN4Zigl7=U^BsyLc`X$1IC09NZE0EB=Thg~H#5?LYbRsIbnW}%l8t=@w8 z8s!+|a&IM4Dt67Z!jkhkeirq3mz*f+A#$>6(~>#v)|?{%aBw2OUKAjp=7^Yp08n9G z=xvldigCSh5V5|90PrB;2n2#P3-C~45LLYLqD1Qft?CcQujggTlF58EAll~ zi-x8nAwCT0A7|fYn&ED(%*Sd`m!HC9P*f2?$ z)%L0BG2kPX6~l8OnvUGvS40alj$ueMk-fQ8dQV|-7CwD0h_9rFh7Gi@kO6O0YzjIb(>u#FHX48nXOnnI;n zf32i^9eEXUshG{eh(ju8S(BI_iUQN~xA{>f!9?&Y&chC1&LHF{w1~*u5V8;Uh+sCF z<{Li83vh?R$WIr6leNgr%VL(>RZ(4;zavl?7zqBrE4}Skri<07Ol?gV>xwPxW7doY z4-~_fdw9fgV9Ve>VB4)DC6{fgZXN>YEiiv5$qwPj??c(S2V|CR6ipf3yc4WYCnK3* z0TjWh8LO{fr&Qk*o{^d9mP`;o(d1EJGhqJ)7D$c8tZ;n1KRt1xG0hr$?X_UFT#IR! zz3gVGsuL#J;a`yH)@lu#+l06g0u%)<2|mGCp~bB zkr^S5Zz1f<^PK6Jy4zVpSi`UCC(zZoes54q3N+E(RKj3HEu&B`pC0d>XB(-?k>Ml=0na$$I1Nr_h3tG44!)ex-|3T|>8T9z;zxP8Si2PG z)`O1&bql6%z;+DoD?!sw_}v)4P%LGDlvj{ zlG_+UxD`0rr+>&_W0Xk%SU3=8z%UY=!F(x%{N_wUDMSfA|mcyK5@+`8PrgJI&rI zfrU3TgEx-3%%6N8e);p)Tv={=*%P#5Koi^TwHKR>aM-Qbrt8?D1dBxYX1Z+SyhRh6n=6;gib)9=KEk^9xVTq=-xzvf z?nYuoj`0bWi2?IMD|70iHT;NfUx^;+9#`cFa$4|v24ARENKc7D zXl;4M%6>M5R=03U8>ejV^vniY;&t3>EW!%N?*xxYhpIBu)Fvlb=bb-^_6Pc&#YOP; zEEUpap>-aSPHGKt)ez-?*eyO&a}62Sf0`2vu5vN^-S9rNw}B(StbQFd4^eVX z0}kwka!I2|V#V2^^Y}pmy|u`L6pHp~E@2DO!S3m-lXzz$zeIdh&}J5h=cdQBFOP2o z_I?Zy2bA{dg#KZAo^hL>5-xlFJr=60F~rs<(raa0aEXRPX39TA7Bg^8`Tg0nOr(kF zUi>HPWo(mPVfY|BP#tGGM`UcOQd}SVDaDDnT zuy>VnW9MP-ExntGuNJshyw4E#hF>D~UugAXMkfKrr4e!w2O6Fh$M|XZP8c75>dw;t zuHSLUe}bP+R4l$1?MH!^Vo*fFzt}q?U6S%xF>5AsNsrkn=9PJ<%Bc znJtazH(p$@3K=9_?VGlXHToS#3{$*u0A5&6bRrCz3>lG*<>HdK8{Of#h`bk8gE$7w zl1@rmP#6Yu0Ge^Ih{4Da*Af-vfe(lf&Y)YcM~v%iJtcJ(I*K*T0FtYh4e$;sJEdq+kR}nXzPy!H%2?Qbcna3rPKucbP>|2L2?Tl zyVJ?|-teJ#sJvHTHsfl_tUtIAGZ%Fe%1_7Sh>wd^Fdnah&S%J4Ssr^jAR4*NBP^!! z_R+Ejwz;^2vDamj=-r@(kb35A{M9iq{ly{wTl_+S$rhiN3r7}$miI$DStAF60 zGqTS8c(gU+XZoA;rrqz?m2BF@b!UnQh=Fqkj;yl z$T_3hJc>%X0FSU99=jL!$^21=1(%_qb6t+#3+WznGCk@M8mi;$5PsQhG>DySIu36+ zR$)$3(`pEG6mGyUOsJ=nFQ9x%6ffAff`@Am$efVGizPDC*6wdn&Z02L6WAR>=(AxH zgeW{8k?UPZQzK;%k2I6+b*9{qBSiNZ#2^EU(lSX{iC41)%^KIySd*u*^V~q_ZABAudXu#k>X_B__dR)@b%0|u zY_evD#5kP~h+Ou1D7kT#*sz7e+_s))es;WoNu)Z?5Ydi0z-bbj^GXNLkdnC4#M!}= z=~$2w^D4JGV(?Y&d8E!bXG8hO<8cQl8%e+(n!9z!$BlWWvz9rG|Z%TKIy zUdd+kf~fSiqx@tMskdP2-LZy8bIVyir0IG}Qm5M}ACRAWfr<(6Znkt8y+eDT>ab60 zQEv5*beUD8hp(=_K6qANjjXo#~C?P@l@dO3>Tjh0OJ+AgeWf$v4SXM6RDf`*+ z`$mId`KUkdnST7f3G&-H?R6`02lsOI8Qjv^XTz?D5Rl!*ih6s|cr9TpIqF4ebM-&& z8S0SLy`z-S&zASGbDczb7GVFjpiA!K+C9>u~6@@XY3~O zGU5~Zcn4{iJ+*s2kdyOCzMlrcyC=yi5B-r|g>ED>+~pm2yvIJZ9KeWQG#G&iSEnk-~H#^)QR#|e{T8WN&FFE&-2n}Iypvh z4mcH*f&HoH>b<2j1G5I3*%^9Jg4TP3QBsolBF(uiRah#hYXF!jfjsKsL;0u`lXC&3 zI=4!3>`Oxmqyk?5Gtmjz%h2?gIWjkwf2S}NNZ8EK_h?RkRloBw0iVMBeZjE-5UmLi z<3mk~om_Ja{MQaIm{Ut$ht#O1)i(u#??Q}GSD0)k-c}Otz#UyK;E3AvH4T1fLw4{- z^(Rh85+`Q2q< za(Q3hOh3*$L}Pe=Rav5An(3Ktv!-m45XWFgn)XG8SyvV5f37uEa3B?Dc@?{YI@Xp@ z2d@wXYis14-_w)v6wes@zYP!>`5mEll0HSY+{-!VEPqd?-s3QqGZqljqjJ(>n(`5n zB5D|j!YF%*zQ!K4FHh>A)IO!>S3w$IIIzPkG51KYrmpuCF8m;LGx{_iEB~3aB^2ry z<;?IAj(rP8e_%G8!fz zwmw<7B;ZL{pbtH+x>P6%naf$gl50(jQv8NRA^4rOtz(#5iXQGYXJ%cJ7r4tcnuUd# zz8xbV4d9lW=aM4k5A1Q@$8*L=(XM0<;e^W;)e;v}-nznt1G?-A!gd3#SNr{Al6!)k zWJ|8=1I}U&gdi@N0T3Qn#lZn3(WfDxk+h#ePqGmL{*?DFd90`Ou{RQI@SVh7BC;yi z3HpW5J%;ujZD+^Em&<8|ML+emOdAE%OT9hLrFmED2%I)f?O0@`D}8+8sf&0kcZ{`k zy&1LIUUyd2cYVkER4FlZ$Cvc2r8`qzt>>~JHJg>yjPK^WZxMzOVSYlS-6M61nT&XLQcaV}Sclf%MZ&V$PejOVO^0e9~eY%>?`v8{~GHAbgqzEyAWp@8rNuK&}Jp~r5Jbf{@vv@3%f zw87c)zS}9QeR8(wxscp(6oEK_B%?9u8gpD)-d&s>+?9Q4m-BQSt1Gl;5mJ7=LyvDP zTSB)xD>4q|FHnqpM6ZxVw`5CLx0pyU?v+qMA6y}VewQQVL*Lj{SsUCob50JlpBXnC zD4YbJ%Zgw7^dI1 zNz3CK_eSH=CGPF&G#B>Fbk6Cc9{Ch)!l0{HQ((k5c!^meLJ4=pRl?c1b5Q2vt2}C3 zjnf@x-uy`PIO?19bn=@>Ohbw(_$$J|t#kuh7z;0;nza()v`Zpi4c(SjBd^`)MDv-O zdW1AT#_}d6$|g0~_eByv)ZHmraLML6^J(o^USLoS!C%vWsZ%Xfonu^HFAoFd(&NrU zbMnFd?=NRBZ+^>PcTM+*`*4GSgBX0jSLAYWo7Y_5{m)A=?@XnnKAPW7D52|6r9VLp zH0Q?pUfnndx=Y)L1w&0|m|+@o!Q}k=lT-a`uq`S}RWMsi<^{v~ur$&(v7rTu?~;~S z(k5GdtAlbD_!*cYA8?ISq8Gkx&P(p_;)O$ZVn`sUn}@)5Q#)nxSPnA9tFtrwfankR zA6+E|{Mz1KlTe$)X3}By zS3Cu6v>bXNB7IVfbKZ^vA1Jtr`+?P zF_5h1IAqDM%~Y5oaTcvIHTg)OOB1(AO6oj*h@}sD3luz~cOzCWNKoUQEGls0%FMz@ zdpu&*0?uAU63CjH3CjQtxQ1w={ga@{TX;Flj$w~dgQqz)tVOh0O1q8zCN&>_!wTXy zdS-qrX_drsQ6nL73tLIRWr9)2k99x7zgSY>55($>R!d5q1ndH~-{}>1<$tQ;MQ|M7 zk99+8p;cVffms?;6^AE|mfPXPMkzym(;5SoZie$)cS=2o+z#U}Y}MPUawHz;!l?@8 z>1>q(zdYPR>9*gb*8lY}eyGm5N~kHy;O9&haQB5JSdWPi_fE@^Uz4X7k{A@lvh<% zH5Ca$zQF=w!Bia+n}!u}hNjZ|uqjwEpD|TficQ4|7u%_DSgAWGkWd}e4JumVF*YjNy=CO#a@>Pu z(2j9nJu?xIgrMQ!FJkY`HnNs3OVGwOu`UdHmD8FFE`; zzUYH5tLyZ_ZQ>>AB4S(dYWcRgB@pyr}8R(?x1fiiaIk_6|NM3ibQ~+KRw+%-j(&!=S zftyrc3r>F>yJt96Yu}keHvB%D$RSepRn0xrkj>|;>i#}>UZojK6&`a?MmT1(KCVX$weYv zmr6>WhS0e0lR8^}<3ATG(T3Lt_$@Rv$QX+`)4-!I14f&H^`j{H9{fw9qwNBtE(7=m zI4_5-p);(+Taz)QJQ=sq+Q-&@wY`n^sx7DwAlUlDBo|K-DW;dU;c=(i2;BN`BKXe7 z06Du7!HIUptW>0x3OnA~+csyM#dx(A*6&hKtXhk6T6ocvZR5^b><$K(%cH)`G12Z#TJD8W>IT$>A2ThTB#8g)qWJSq87dvM*F=@lk(JQsLn$VPwZy&_^ZB zVozZWqJ?XT*+22r&9f)8hS)_O&n@WB;_I7w_~z~GPNvs85ef)uK8V0sSv`EGo)c-q zRp;LZfgat0a(C{@$vjhLO?9h(GuJ8ry!qZ!&FgsQ%uBEnV$h6no*?I2`*!NGKh0JY zDMa>R1_$ki2n_-T_heb?4Qd%bw=|ivVQHJlJjA|NXRI|3p>08e1-(M37iG|A;|R#! zS^7d=xV8^VC|w9_T<6ZrwGi%q1~|S7`aLL6d>P`kkTGi^ZVk}}#&tef;(O2>=;3ymP2CI(3X#4 zcSmH`cv?C+Bk=}bG0CR&nJq?OSJ%Ubu=p2I;kDpJF^9ZA8f6Om57yi2Y%tNU~(N8z+nl zCdgAx3Q4=%1Hr_W^vGOP6OFIs$rLLf9yayupWaT5@SnLRdLaHJ#w^B;j4|+x_y!{8 zdah4!H6e^}FE~uMkxrT=E!FJ}@PPzZUmExpc9hXE_R>aMq%1fWtsg$zbEfqM>U9r9 zVL14Lo+F_Y6NaS@)Cr!U-Ys3qox?3p?OA}@T+iD>mD8Qa{!~oZa(K40uO(f25z@`& z6|+!j$<=eEehsS_Za->s0aah&n*T&j7`r?LW#1HRWHBlq2~9UX$9q-ODoI{eSASoC+H5>j-` z=G@noi{61}IIl65ZMYGAAYo|o(Ddz7#hzs3C2qV!^4FOoT-&;m$)2dtM@aWz`CF`lsa?3_H^8@0}+QKID2fr1)jPh@|<@zSmi;x+d}IwBd#((YPan-e38)@r_~nskFn zGZz|Ej^Q$AO8cI>rzVvE-S4%q|52Pm%2JhaAS?l3$Wt2hvqN8tAvY1@`t6=us zqcqq8Zz<%!$WWW|!()#UX4hBN5^SBzzP!eqp)Xe4yBG$UD*bZ5 z**}Z@GKpiQF-Uq|=(Kxzm)(Ukv-FJt-f0yu%bK9FB*WIgfzkNyAz!BGMe?MV@s`Cd z`k;SqOKtn+kk_2GB3?ASizyTOFhiN_wm0Y==`!A1T0xDAWrvYfPrC*^rZ|o|8z)|w zKH5olTCtl2p5ieVHQV2wArx}(+j+FjyzKt01pgPxr8SBZjSm<`=8bKJ+G)p|55}Ea{z}{c ze`Pk|-b#D%p|bL=c)Cfwq>jRYv0vKx8lP7ynZBi`D zvk9xvaqaL|NvLZ!E>{S`R$hnA>H-4he1^jPTtfW9{;|g~vF~Ef^o8cmCcA08COZNF z=n6*YM$?@v;KDIKg74F>UUJZ>F(2vXbP;O z`!PpC*IBx2NpMJx+IDu_2RwHd&RBnkQmP|pJeHj2@GW~E2l&5BUrQ0b8hUL zR=J($S0^_8_U{m6246qJ8XnbdfP5w*DH4<#2Gd-D=@`bb3e7}yx1JE$upFWr7;(#yA)5i# z2XdP*c_By>dub-sQF&z%BSY*2=_Nk}zGy&6s9GXuclNw+M_uBbDmkjY*1PtVR436k z#BQj3zQ(zP5OZWwIgQ9-z4U)hW7tLc1%SAb&QWw+kq0-A#Z})pjXCC}gSgqt4I|Fq5BHq;9gMNcsv@=I{FM*6_ z%NyBfE?&tbZ@i|*DQ>R+85+HGOE1BuE_>m~H->kLoGEbDbY6VkcSrbV6S$X&dgkgr zPmdh@{jY4*;M*B@h*>TA7MI|je-H%TCYQNU=54`KQMY9H8E5(Z8prqHW~r-}-SaG(OWilso0Jos9B5j`Hj&KWkvO(01I-F>ZX*QZgG%xJ+|BCRf%g z0LL~6gCAYT2Dw#*w~XZvl}-`D--X|c&rKPjI*O9Tjx_Df2)%U+HmvXW9io9y?;!b* zvJ;}L<f-dZFPrK--T>r#xoRfprq_0+S#=yF+;6h|!JrvV)Xe(tJjLKd)($ z&5`}flFjG&h@^IJ=+o-cYTpA$f^!C&i?lBy`(gBAfd2`%{pW58k0 z2Ojw$fIXC?+bfAKPW6BNe3y^=HjWKs>$Mgk+YYLSdR z;z~1-xtOYc|M^C#&wJO37Sz%tYCXRVLN8~Cl*MoCP3(^2-%$UM9~LpHWJmp!`XJ*# z!=sfUcH4G=P@gs|nFC3m|F;aGe&5LCf?QtJ^5M&MvY*{n-r9Yhc25-&h1brG(HgMs(Sj?GUK8`Ag2=!1J z$IVLSYO<=MTI?>io`16dDh1qkYjI?oP-~ii4|@QM`)DC`S%SHjw2j86uGZyMVSefF zj(EBNjZSQXX{}O_@r_bfp&b#D(qoX>kvOgP+od>~fpk z8$8r-{LwEDOSf|xa>ddV-P$y`r|IW0ij+)2fv3`!0PTy25qrkqX=;XUF0bfHzyddQ zIck&c>544T?rNKO00AKkbLEoL{F+1L=Mut;W*C-i5JPaO1680#jMzUHE-gvG^*ZXd zjE^kp+?i-kSMe6g^aE=n%7XWZw=@AqvNKeTjDZ9|i-`t?8h!~vmgkL4AU+cMt9mcA zH$x@2vEi;p#nK6UX$`)lR4K1>+xoPIdV0F;LFmA>36&xj?!zR~&??z9v&40v@*jI%M9q)PR9P@<}3N3fwL0xQ&AeI=~ z?dxwx%FNnLWO*fjVC#;rEu1}Kf7zEOmy%$5P0z)Nungx$Gn2h7zRNV=v)KW~S(rAf ztA*xl|F8~1loyCEE%r*L(tUe6D!5&OPa}2_J#`$Bn&U zrj5JpncU?1HNDFCJ@J7M@;yW)>}!Bt^AV)W=!sgF0>FV9w;g2oLgY$-SZMe~HH^}& zL^oL6#1;l=)1(?da|0Q|Rb9qujJ2I?2hD>NhhS-UPYCKXjQ372bjZKU8%8n9%qf{H&9%9p*`sm2>H{LQ2=YdM!Ur z>v1zGvfpz%3FiRM{gp%8`OK+*Y~Fjd-A93R+!Isnu}BGt)y|cq^Z&G52|^E@jCAQG z$`*m@-8M-A2M+PAB*Gz43&;!M1g90eMKg2sAIcsU7UmIxV_y6GhO5qG>htCb{ zI$wG6dCWH-&}xr}PkQV5 znR4z0u#!{lKu_cW)RWxLCr0oe8}_l@Ocago48?h_#^_xt+sJPh`c1g@AKcJuU!Iq< zcfid3=j;vB_z-9;GsE0T7!Jyd83fUHqz)?H*_4xuyN*(I+b_W&u}-37hZhZLatri< zSRnKh&USy$h75!O&|q>T`MKX|N(y>#*Le+T#bZm{9n?)tZsf@UcQI5VVPJcO-Vb#( zrE)D@0yNf9*S-tewf{qGdcJG$2d*Ud*4#B1d#zA#1hYfQ#SwN-)5cP|nVTq9jJDss z(+TY5MeTbTo>5)U{4nl%^UXdac28dAxw^_%u${1cxJ#r2VWsa(N8-KxH8#}reSgCG zXR>DjznX6E1?@r;^rb~3Z+8wzR&d7+i(r$9qM&&H0H(8K0d4zkS$xY-#Wri5%aQF3 zD`Bsy`}vDs1@2RQP@Q~f`a*)AY=VuGvZ6xXz@@(KXHJ9)QBQG>zf4f6Ti#G$gDlD} zpph2%&A7RKbrASN;J%+XzL8{(rIgmODGp3{KBf;p+KcfMDPY!(1DEiuAFDGrQkVfu zea(JU5z``7PPr*=SoB@cRdc^M08Tq5%zT$XyGL4g3umys?kz487_Q$IcyK9?lWmwY zp!LIoxh*tqF6W`4{^(^5ah60N{zam>4sdx$(LqHXpO0E#{*q?39mXO47}5V zGV#q=tY3d0eX*`#uILiRGD~SC!(&j)#n9!gBoXWt=JXZ4}@K3JT}lq^_IEAPhW9%zK9AO-9d8o6<|Wosq3laY_ktEjx$m}Xd>`T z^$$85^Snf3g52zcsVV);md#H{?;kBN6U4+Sto|G7g9!as=!2PAbi4xnnqa1jbDl}b zKIEzMzTVFS9rT>Ans;PZfCX`yPk%sYoiI4x4*96|3r&U5@>ccJopSJ-jC(!5EhqSY zJ!5gnV!yXZFUPVp>HKUFs>X&K*svBI#Y5%3sq)k_e}4HSIXTQ2Kz)<(OlGB|MU>?A zJ<}$ND45dgiFv^|nML3bJ>;3PNolBL)}XtgEuiROjaX{n8gZ#_0DP}GaB=S$Vqq^w2_U&FSs*jEQGL? z>}xvcsSZ4xpux4Dv7Krf{Vg8QF*MDCogG%1047k+)ya~=i#^=9PM((KSA_9jh0V38 z%t7CX%L_6Y%>XABndDN&&qZ7i9}j8J-8z$1vsK2KeKXf^yH!j!8|$O$lWqeJip_p6 zPwMei2=;3Xz_|k#bgGif%q%KH#4`f!ox>y!cWUiV94r81?tRGfwSGsn=^bm`WK){U zKkeLeNrYBnBq_xN*J$9^1wul;Q@DcXZu5vIOmMASIPjBQQJ!i`c9$&AxiQC&MU4i* zAsWHo!Va@m&qTFPrwH^HJBs>KKH7;4Qcun*?ozvR?-e{Uq%Tyr7JBFg^FHpGp%oi} zm|T0z^e6wdM0edH0@1JDBNC)yL10X)@eg?Q8&m7NUdreqKB?EMGH%+o0wEI>VQeL=TeH&fY@=9)S~_R|FLwe_%RZo z9oIZiCw_){BfS8LE6C_TDfrPxm6}UZ`pc@N#!+uPF@z~aER(~-)g@OOTz^(Q>XfRc z--4@uwV~1lt>oBcq+3j|avzKeIXkAw=C*XjQX-b_MG>e|do#RQ8Eros1 zwQ+}cOQ?_+CC~Tq#F1h7l`&%Y;qow{P_TX{vk#)y{r?Bz#*d%JR!6f89*)x&> zVP@!sTDQS-Fe<}^TOg3BcHe!!)-s;de;gDhP6+!UdQJI*{{TVj3AHnp{y^wBpRw?m zVL8`jI9OyJ;~)EuhQE@@?GMeJ+Zp+i*|W1t##G(F0)JUXH-NtO@ zRp^0+CYpY1Yfayrpp5OzDTb_sjZ{I1X4n^PL;Fe6w&dwxR=a`nX}2R?E*BR^=+X7o zT(s_)s_Sbs03L-rV$aVBgN+w2J&(4+4<3csgrxM!C{>8;B(BSu-(C+JJjHeq8+|zn zH7ac$@f1Jj9EqBiL?LkWZIE)dS1vc$4#+_z8OSt^#FzyN9*OA?>d49R#GQHM=g^(?urZi`wW^T1qFzL z`E)cYSAs_nd`2lQ7Xk?3{INJlu7s0>^ChGs7m5-E@+E*HR{~5z_)~f4To6j=ABsSv zNjerIrzElxw4^(+ZfeL6mx1Nc(xxPr$;9%f3#Zz_xOD9DXw;O1yP!=4Gg^KREH`Wa z7e@u~V@2z+tmgBVx%#`?@c*pVL!wyuZ^}vR=YvAus95_gT+R(re$epWpjF>9BpIr9 zgR$uaF3)ty$I#?P|H8bu6NDjjFOjw3!G8Y^(eCNdMxki-=fW-V6=`;d z?l;tsL>I#>1R8*gzws^DAXf0BRtoTMBq9< z9a^K}Mmr8UGOJBh-C#~0vwYJH$xa|VPp#~OCJv(uJsF1t>f{kUb=?`O0ETRJ#o4^{ z_g1yVndLFY0Rqd6@&+{VpCv{x-CL_wFC@P2_DrezbrUqF(ST6Aq)_(KxgB2SKD45T z$YFP&MfQb$o};tl)L?Id;Iv7hX>xiiBAoC6k~j=v@?1CZP%|tFBNpK(Q2r*-g|J1F z9C{5mX8J)&46JP3Qk0N6KCE-+!=<_60HAVy%m`B>kGkr)*!l3kl8HE@0jsolz`m6i zSpKW}-rzRW{udm9G+c<2`;X#~=Ar*u9KxeyljsIX5!Z$&5&uH2`_XORBZ`KM@_L2W z?qeb;KHTr?SJHazOlL2jU|uThzG@X^XNG#e_g%zXVW!WT_U;q2A?PW;l}QkU5pJ9O zJqhEibS4yuU8~v8q#5J6?}yNIrwhjRADR`rY?i1;nP=h=?WB*d!SK-A3sqNuotswF zK^B{V^7x>n4kTre7bgs^M~VFwB|-bt^|9n?&8$Y}xyXs+^FLL>SBsYyb6wyWu24Pe zG_}pTh!BE7&IRnpFW*fZYUWmJlvb_YtsBy3ZkT`W^-DtOW%;73@chc8NwIgc`qo6# zn9g?@_vjB|_$Cv#Y0T7g~U^w{#7nhdv7&`j0^)L2b+ zmx9k(`0L8^N>jBO!*iKRkkEC9w9#!IeY>oOL_!~3KMeWb{B`Vi-HRJ{3Hw{4R(-vJJ8sc{UwB5N^!nE z%L*$TDs6?3oo}bnAr2zw(On2VlTnbFknpbJ^2c@-q^0N?^A2PYf`89bD@||>$PA*B zBrPbk)0w&UIX3^-t3Yz0;hO&N9-YZd@4gE@!#;!uFL&1+O={_G&EE2UF_b|4X`1+< zZ~gS;tB|xGL3@DWboz1Khrb9%1@{JC&pNuyF0#NK|2_#&G>trKbuFZX7TyIN_YMRu zI+;#(7S2?i7d;i*N+bc(fyS_)d$TDD3o=9Cr4B33w}qQBrZ``ehWMAv5!_Z({!iuV)ZgfgShB6 zDL3zOOJHHfHVYoPriM;}T9!Q!9|xR6T4`6NJ04XXa zm1JV!AoYEM9)e0Gjblt^)UnuAD@vV71=wMZuW1w7-AK%66Q7S6P`x)dA>?vC zx*Wvr@b^S|xF5pozTMPCwGY$UjPQEz9``Fi1jK)#$4hngm69$(Rnm=l*FDSNoHYge zJ-tcF(+6mz23rYGML@hW!=w&{^FsJLp%*JD2EMcr%>d zC5jc)$v4OT zIjsvWR)Lwb3ZZl9{<4(>S)bA+yw!^UJFV}(CUn_2p73aI@Xg{9l0O!863>0OUUFyccZ@tkx7F~wNx$jpL)Y)HQi^md zgBloqIqQxB+&Oi=@A^e*mt;CyMTmT4l2Y`;hC_?Rva@=I9?^E<xEg9;%oK30}`Dl*4oCVwA~XZy?hXjm@P`KP8}P> z9F+@qFOJzbuM_@BL$n=XjA3kHhNaw`JvMRBM)BriavKAaa80iB_3eQIHLd=v+ujF? zxjyP%V_~6X@B_-2>ZG9dYJ^gfKw02fP=nd@yWyu!mM0bGX<1W=vjMLMToVhGZOtXg z>-84)b@->6rDODehJrTZ1rYeK!5Qzmb{~J;4}!MKG%VF-=@C^u4AmVzDUd78%jkdA zqp~9UR3tpQrHrp>ht-(VEK@+&pe}X^f66 zeXE7b5btr+-iyu*hHvn?&A%g7BZWOUWr;KCqs;5IKYXRtF0ze_wwZcA^iT+y51AWP z6CL1m{t6~Pm;~bkQzB-`S$wsxTpN!jX?6%kM0++y!O0qoJQf$B0!L~D`MJy35Wf)D z(T<;-XkIQ75}k)-A)@;9=bVSd9zvPE{{~*@v~&S|9Ye3>)>kFVBd2QwQY$dw?WkP+cTy1!!;`IbZ!f% zOE%yyEb6xU$AQ7+8O7OwhmcM*MpM5zv%757Tq9N#MWvmANAVJtey**#C0Qx(o~1`z z#D0SAxKm`G1OAU=T;wZKz8~gTt<3&EzY}KV%Puz7q*j@AxYmNlYu--;`^)m>GC6}k z`2++#CiC*5i&wD)*Sm>e!~c}_Ezh;*zWjI~rb8NyIsm$lQmuMn`XjTZB69~})%1!A z)c7a=rBQ{oF5{wm`uh(xTCeHhR={z;GEa*3b;w<~Vx>HTA2oq>oOylh8LVd`vSCrs zIG{CnVHROED~SbW#CLYGQ2BY!;-=pZNh(x}Au3~4%LNp|ukz^o7K$n8T;~Gs)Jy?U z_7hdh5f{@NFe%K=P#|4Mhvd)y`S^tW7V#%?aedyFQiA)eqGy#gmQxKQ({5X)exX z53WPH?%y>uRGs&ctv?$E`A?-5<$-(#@YrNv|G$#~T(j6y@}F@D*b+(H?{Ka3m(JsV zmQDOWp~e3bTKq?$h1i6F6Y_RShyqny*P@|M6aS}ji@BAq!n;plD_rhDteoaPd@Ho9mJkMyu`7uXz;VU zGmth;RKDw#U~OQLcF)MelWgdTfE2I&yTSm)_j|F$jk?X_ha@#4u3QGzLO;KqJEm01% z*$>3|XClI#GCwu2^xKC1v?)ic(%S_bO*r-^&g?C89Hqw8bcAV4j5r0$#xaiZ@HSGxz}4(l4LLAsvh#(q7G^Pyl)NI(7r%Y zwxrmb46RRk|B%eWIuSJaa}~!rJ#$`0;Ydx;n;#FqlbNM|4u7=5ap$n8YD$;SCacb*gNmACewA@ zk9`~zR8&-isEF7A0YPdq4k{`F3Mx{gB1XCpIwY|(N)r$wEkWthg#e*NMVgc#E%YcY zKnMW>g!JApt-OdhYlr*H4&-{TpiA!_Y8jbXsy!87{9_K+%P3h#**WKpWhitUlm{GQhc#Q zgLSN)*!`68tN0TQzc3jw>_4VGJCnbI7Wh6tu~(0Ka6BtDuDu<0=ax`uG@gICHa;$2 z2_0p*8hdJd`6aL^`&M7BlTLXMDLk0Q{M?v|Zk<){DL(jm5vU6D7pQ(Y zf^z|T&Qfr-G5Xh4F`yxnFS50)2iCaF_cYEOHbQmDY)70HpfQDXE zhV!mFc?jwPc>kP)o!avb6(>TP-^onK-G9d2tN0LrD9&_ew$t~XN zcQ=8~IwVw+6mTi-oU22uuD44@c|iB^ZSX`&%lvnxC;Nb<=-4#n8**>mRJ@Zwy#~JJz6dx}fRn zOYb$6#|iqSqw3!l?V4;L0_u&ZWx-q6oJTGzuPQpZPbdkBd>$U)`xWOHiM0k$Ld&4Z zU#uxRL8Dv$r%o{zPtx7N&hl=%9djGqU0X=tbgSX@aiznNT(h-Vrv7*80^!;i@sF9FhLr?vM;3xJVHQzFvtM3@+x5XEmFzE*DxTB z!CaT$x>4wQ0&=C5bvM!<1J>3y$TWvFzd1j@r8&q(|Vs-1eL z^79<$Iq-2N0}r5ZpOT}?t&OrS+WQ@^cIHpe&iS7kLXIZ#LmXGK^ZD&QdL;9#bV|`7 zJsz^{_#UZ;5e0yyNZO6d#*XA|@gsqz#TYyIlykTUmf|4I(m%0NHD7bH#4WBEBXeHE zs*>3U798<@NR8ppKWN^yloZfEeq~DW{M(fBe>0`jF;^aGz!C^; z*ol^zY+Q%EL6t9DoPlF#He>{QOsS9kn}Uq@`n?QE)WgzEk5q^W3rnTatyYn)#}?lS z*B47K{{$EY9I9XY9fDT#_!4i%&@Z-+>hYJA{>CR^k*v1LdUpkAiii7RB=|i9LWE64 zZCb$tmgT=eGklO$=v@CZ^6bi@I2Wgu`VgV%lHE7i<}fi0@sZ_5U7{}*jfD9 z6ZyolB??Es4T}EdU-@?lfQaM+w%~Iy_B#>GBDJGq&SKTCE+9*Q&AspUK$6drm#<|f zo63a0;_)5+C!TiE@~?F^|4)8})$5+IE57RGRYrgT_q+L}|6Efe9CH4H&Bkkf1G9B@ zX5mmDh0|O#Hk;6OvDEptUx>t|WnW&U7Y%Vi8CnqKz6*J)#Du2>iZPf)0X1lriBy|P z&klhT1u{!W$rk+z`vu-+N4ekEZQ#WJi;rDjZrezyO1uKdl88WnYSlTO&6 ztX2cFbx@O!b29Pg$X;_ypj1x>AUXhe3j7IzIYLX^MNUv*;@3}P7qKVZSG*veP8J+t zSu@6LeRoswo^3k8T(ZDt5*KEftZc#D4z#C3Oc`52hML-z9*MQQHC7Ds*ux3XQ9z8b z*&)PuGRuQ9b#hHHe*$)avV{7_fgOCnuLCv$NdvoZ8m47_W&=q>zvsJg55Y~Q`gFaM z6B1KnR&&-E58bV8m>QAoC&W@D_JZwP8s*)n(tvZ?9<(kiE^Fu}HevZpx<%ZW z(`=>dnKO3*Po|eCLl7LN9hm5PbWYwCYMgjAzNBE!QOJ8#WtrsBNqHxM^$($_+5Bg0 z!sSDNc?oi70ein7|C$j6G9%aw2EAtaGSG{ad}{{M$l=T2e(M(UF~3AIc3RR>6jgyA{QTa|l4eNW1%rW?<&Jl@^G*(;t8qI4O4ots)U;U0@N{j)UzD5H{uZM;rQSZHwzdeDnlWgzG^V>OVf@NCv4i*n^_TVMH*VIKHqR11|RCfr(JTXP{ zfo^nTUJV<0j45A3xj^lOI6!~)@t1n<9)P@$4J;974_l&{y}f0kz&Svkc=>BnGwj`q zmEhz^p=?7L%$wF&S;Eui7lfubVFa1#*i^yhKW$;*EJFQ03IRN&rgq)>misMNlC_}M zuKQ%g$t{=H+#wr7sGO#T4KaScXPIVYx-5R_cE}G=1`5^ozUT^9!)Ql`krt;-=Xvdc zq`0SVAxPdZ{Pe8yzVu-KGjiEu6^phE=0xaV9VI+Lre=rTWLJ1c6c!FZe@MgK0p}|~ z?lTo1&BsQD#N{ClfCb|>bJGiWqbNo)qq&}Vr$F%pF~kitou5{Oal2@WUA=VCYb0EU zx;0f>n!CyR?@1TG%(5I?=2=-dmpR{%*%n=V@m#Diw%;qFTRmWg=adIc=*WNPmFg@n z>oDW@ex#~;7JrenFFj{I^L*Z^QO6#Gv{BLGE!BRz)Ueiut%Ht(FPE1>yA^3;Y>(kZ z#r*3gcxri+%!mk^xuqmnYMP>~%c-8%VdR+13P-PE6mC>q)0^c9BR1}^vWdArg`ZrKBEKrgc_pYg4d1+HBGKHCl}8sDt9OG*iS0S6-khtYpy*(LPeK)MC3at~bh69)2;=b%@Arv&Nev5aU}@MruF3^Z{Y0D_4|^Uu!+ISbc!%mdmHX$GnixOH1w9|<-) z+ZQ1o>StGdDE;w?n9lO{FclnCbPjXfqY;xh%y9XSCn}+Si5*Cmx(7V%* z27jW;%F|-aUjkBZocfef=F^~VqQp>}n%!daF7FXS1x!hij61DFK&v3T6K#&a3I4nr zWUy{zKVs~siLe;}BA6^WyHrc7p!}za(QIJSDXMHZi4d;FAC*jekI#Qw`o?Me(0 zC$s|!p%Qq*q~+_F%BSP^%{1<8@Q~=*uf;*i3da|ABUYbq%NIdP_ zStcqZvb>sHfiv7~xrSA;a}UF#2qQ^FDBz;H&445PBv zKwk31+7%U)n(Cl8vl8>`J9Vla04Mh}fbJFCoHMJ^WqK`Vs$(YB8?bQ`5@Nl6G95J{ z8G4*fM_Kvx%??PJ z?vz?*r)FP}9SZ(8BRw?Umv}8oNFM78jVok*FlsYszgiqlaYox8d1};jA-bt2OD2Xq zq<@CWmUTa)m)}-9agN)KBN>?WSg0)XcwCim6+$9%l49y65@L8YVd|mdl=;sVn-=A- z9W6``J_A6jtOZUxX)<^Q1*l^up~+m~N#OFW2kb*&q&M2L!8kRASESjx!da7v>9%aW zGKOt9uI5Rsw%y}8=$;(Xi90%nO`l)Mz%-l>c%B|s&|j356wDZ_Y6^328!+#dADnc$ zH0d>gO&{q{-aA^WM#Lfn7{Cd^2bb^QdKqMUo?JVexglUHDWI`#q@^ZK2kBv=ahl>CFCcm*X;#aG{1vy!L!sux6HJlg6H;`EbE)Y_7qRjk)pC{ux6tc7 z#e%`IM@{Ulucil+=bx_f7nNwO8FP=Zu&4j(U!kyhk%L1 z=%EgCQ^+EV4S1u~?*=Nn=2mg;^&t@zd+Ip_Mn7X~=2x_Duu1+wg!$CyQB2b8mA9;i zYN?wRXDXCQxyA|?8aIPPC@H@Zk}a*A9%`k!SgJe^z5QnDnKJMLzX|yrZ@ib#Li=u>M!g)_u#yo*g3!eG)Uh?`KK@bKfc>&csa~ zrJQksxX&lMpd-;wb$}v==rR}*?m9(gO3X*@5+UJYWrT2xFz#sjH^4(mtS-J}5 zCZbNtTrSolO{wWzTW|C`;rg?UH*j{wihb4WE>bQW>7gHllzZ&pR%*^Ca&n!#ZqJsF z2PUCAx7SRoqq`B1LS%i#+#-EU3qnlB8pHYaeSwR|szrZPb}0d$FjP+5>JvW+aSC#- z{5}ThGeS8*6>ogaVw-Vx-Kgt(6PFwngB_r)NG4x3F%Rrn%d_Rx57w6@hI9GhF@v4; zD7h^o4iwe)H#M5xYuq`iJiJjssHoY7A>@xGc}hW}V=0 zPEbG<;JLjH3zHCO13eNeBXjaT*!WhwxXU$S%p;l%ijjPmd2}&FjlaR`z(yG6==2Ir z<5JP=Mm5(JvS?{zzg3?r!>?(X(HGc*iWiwIzim9PGygdCnA-3!btzvEBA&C0AP+*w zSCr0)@88au1H*vD^r+txErO(Y-VX!O#j?MhIB1Lt(XrcZp8OO*^#=wBe`8Sp|Hh!Y zToUxGW(Rz-xdeT4%%b*bh!7{^?-yf@14ja6qsdfs%|MPd&LLI>Qk!<$Iy(T3f4%DE zUs9C9L}C1#cAF+QxI^ndF2XOu)R<~GmjZ?0$y9^!-U*vg2>=yds*kqR1-PhHSKp$A zG>`}v(ersep;*c#(K}9XvCmfv z7+QM)wda7?OJ{nVA>;1Hc4@bwz5_Bsc4UjUb20$xa>)J|+3N;%&pw~=nugEuEnI(4 zZyAn)z+tRr`|NCDh^J*GP&p3?wU6( zN5;RroE4*w!yRLq94Q5Z;b_~#ErIee_Lm}C;>DNcPR>^aQwf7Zme6fvW z@5&qlN*P~E-eda_$49!{r#D8f+crf1s>RgDZzF2Q5bYov#hzSgP=l?qf|k;6WJ%CA z!#rqP-vPEN&xhtNy4JbfO>U~gQG&-?g*|)nToA;IxPVOeOzLf>o-tP>Z8MMUJ&)5o z52~qYpv~@L&%~Kh&E{B1PC40qAFJ`K6I9J-_WCdhd9Im0` zQu|nQny81I+5POc*ng@_nYiMZ;{9V_TXx26!zCf074>^0Y*fqj$?BrNW)(i3rLDed*>BwlgaDQk%kOL$4MV5jpRO&vu*|%pAp+N3q=C$7Vw~VpIK6^*N*|GhUe%l z(Ux5e=s4Q9cA0i4$O?Q1xq8lD7U{?Pbgx?dke}bHPb;y04mnUoy@t8kuj-jmVbHv# z1sh-J)8L4D0qR|u9MTM^7ZM$gbGNwC&O8?AX%cn0@5p^^+0bkVy}s?6B9v6P3U;;5 z?b~tj`xr)D;wm3kd!020Gl{D39=@{MjoexAW<_0&dQTxmV5%xJ?mw_#9tH$UerLW9xjQ z|5`ScMQ+r(0u|0vsQb)U`Hvxv($7I}_}&X{Kz~xGsEwo6isX60ckwmV1_{zdqFIcM zbaDG4QoQO5&wcJTu1jiB@qV=eV5o-l=O03N^J}xq!C|O!x770gp^ltIbS`E*fZm&)8d$u>sPF0ElQw-sE6z4GA73W0wga@k z9QE%Tqt}`GL}@6r6W#8v@8~5lWya*DS$E8hN3bvDu2;`TC_{;AG(PZNDw@HLY~yMC zL=7s4%u2l>HD!x%X-r$xswhJ*E^1YFgH*KAt_xguTPL#dysgT}YeI_X2sHF-%g!{{ z2reU#{LBkEfqJMfn3?zReU6Imv4fSrZQoAJzV9EL8}D`zaiX)LvKFx@KDn^M2q zA#~pnpOzgFgfrGT!OQ(_WFM=%s1uzodfY_DuH41qlq97!FkWUXtqNCQQQg;*+e`0+ zm^5bDo^1|u!az8D9RLx{L--zDpvPF!9&dYRCM&9vEfyQmm>jAh@$2qzmnkor+N5OM zW91x}f3(jCqs-(XpG$D9KXL*mb;&4i9a?6}llf1@+~$MSn@v{M^-{{vciitd1226? zz#-Zy4jy|lFQ7tF&X%sMUM(p#+%0J7C z`W{iR{h#4fkJk&_oSbuB6y54E8^KoO)XYby0q3b?+S}8Noy%#`@`7}|;tqkEG^2mWtgEZPG&1XXfKqG*IH_={>0j=)AFPzA8xbAUK;X4*+ z#Eb?nc|b2k@BtnY2>|VPZGoM=k%+oa6|Q%`fJF9m%5HGPgO9vS@NzUK67{QP?SYJ( zir%M6TSrUa`rFzJFz&}W3nvn$mT!r6cxLN>dE8Up@IDk>q!Hrh?-NaPl+DteZdC>h zhSI*FA!~1f=4nu_+L0KGhR`H2#aembR1r&_NtBT#eF}GyG?S{`E1of1hC=*uhpwKs^VANhNt@>N**Kh^B~ z{}3#r3??fP&wc@_;+S86sy5{qi&ZQaj&=aDXAbDu1>Qj;!69q#+xF5uue6xbNE)O%#np33tRosyVux-DqcAuAe9ZlpQp&rk*+Z*<6WBX z_>T&ijgQv)Mf3vNdij=plp7Jw85BpE&|bbV#gU$h``qthDUyB)XW^(C;A4e%vk86x zaUyd_(a*ZS5YT*AGT|XGM#COr7k>ge-HQ+}i|29-X+DHBSUe@%qJuHh<jJScu?UFr zMFB8|R`GF3|G!RBMgYUD3HCIW`M~8NLrAI=0_eqB88r(m0Eh>`MiB?uV@`^SuJQQ= zYZI)Q(9Iw@BtEN=$WW(lIlZ45SOjbkT0C-qVS&e!9ywYT{sTFe*v%0xW7F(RU0fglc7^TTWxCzIWp-lIkdP@-Nvf3*W%2GPfB=r z3soxqkW}vy-<>nE@$`fIkE~k=<`mDZ{QIH-|BMRp;`9y@E$Ce(R7jVF ziLACoL0<^Yl0zSKw2$i@Yedxeuuy?)z~+U0_U#mzd3V0bH&SGL@1u(a@zz-BlvLA} z)b|DG;`7C8D!eLc8)nQkjJ`K_|MB!;RKOrfrjD|HHU4aA_Dana>d1`;V=aT)XB7~G zamrmC4aq&io?0SDL+K%k%dV$98MQSwmSjCOv}{EzdQ<3KpqdDx>`}dtqbvI~`khL-OIzeAT?Fl}<}8n6<|q z2$5rE3EgT#uxyfY$48abh+8_6LgUUW;kz76T2`TOPcpM(iha)SdPjwLt$(0H61bec z2j?m}%;~vG__3AjtB_7&B&oilrlmkb&^B)n^V(JOu4FNPK8EM2&5Em@f|Yc-#GKW5U7FUAZLEK*djWh=))?-?n!D>9CS(;eoA{RiJ}$-rAl z!lgT?pjlnio>^Djp>E{l&BWX=)@9fn#Dp!E$O#$SLuKKjh)hX8FVM8n6Y#q>o&-c{ zH=nw1V&f3!^~(MumNLq_lFOq3N7IjdIX0N!A*>OZi5&XJN2vH2#|BwN*J!c(iK=pF z(i5Mui05#`2R(7^h6~QGy63iDJh@@ttAgQM?;AfXlTelDe%q^@7V;6l{YBQD7XATn^NI5!IudZ3|cj z8i(+V?RLUAmCx61PLtgH(I4v&zAMvhhN4p^;``Mf6bgp6=}0d0=L7bEW5IAC3e_dq zGoO;?@Hc%XwRK3A15^1RKf1M9ZQ}0V9pKpqtxp;%$^! z%E|44zd%v>{nd$N!g*BoCLj@J;nHyN#4zWagVptnaG1zJBL|id#cN92)6=qa@wPho zHRSZykp_;fn77gI2xx$qCncD>hDts$u|bnA0B-Xl|E32A91b3mbm$)Aie|s=as@6m z(m;eRE1_q3OE$@*mFYHMM1HwfV&uY?TOd)XQy0 zM0Gz}o1LkuiB3(vJHR=GT3dY}L?jDcP~c);S7B(`KJcn0_o}iz1p3&dC+SnnNSj7> zC18?j5;24Tu-d45miEJMSic^P=}@_DosDmbJMmaQtn04K;O2tzV@>V-mhUudKYbXW z%l2Qj0-zuPLMX@wPIR@2HY)XL{z7Rey!;a!gueWEg~ldPyao6lu( zEO!Aw4?8IXPYffz)PuD2w5?h+I=qDB2$-g30{%@>5a3GANtE1 zN9MbHw~YIbn`I0s>D(=W?YbYAo>6V*m+qCl;mINt zd*5M}yoDe3o6H82!r75$9mG&6#MyDI5QhmEjCWCW5r*%N&m@oN5h6%r7duc3b{pQWM+1wJxE_z3i&ZRO|qEtjK_TmVq+`{C+yDEDMR2BcCq>r2? zlDb3J<}ldfDC!t;&e8L5wNm)n*|Knop^E~t!%VoRt2MGVwWEnHz$7-H`k{64&&7&i z3rNGcUC1-j$*Z3s#6GM})K)?JZ2Ew^-yVM*xcK24Jv>up%5uh_BNs6G#akZ%g8&7d z;l>dMdU7Gi+mSs_^55;W7qzqHC2;2p5NR~@(&z)nvs!s{?%hu?(W9!Heb!4(4=1x7 z{0ctVS1>~RO1M?cafdLI<*)zJ#ObU;B1A3Xn!IPkAxtzx2b&5B@*u z2}iKRg@j9wo8SbD*>2v7CEv^k{hbNrAAYWDcUU*;%goRkg31>PLQtAgn* z-$+FvOnpj4`B2Hwn=A2Zstg!o$&}aheA9xmHpW(~(d*Qk$MXvtuFs+x^}%xX-Nq;b zPgFK0D{&&{h95bzGxtbcmez-sUGZ)qYGZ}IO=>f>G)0f5d8GLlwVqE!9%ZR2(<=y2 zAB#}{Fa_-GY5q&f@Gm7K#aoT&I1@)B@;4Ftj=cVb))DC2;iG`J)ltNjclZZbfMQ$p zj^?uw49rzNU`Dxy+?I2+RCvzlKlT89fbx3L)g0Gp$%Sn}ttEI~Jxa$HHUezSRB$AizLva!LdyTN z9})46!B7MgKuKaq1Oa^&3Fz(Xn0{81jNh_60{L}hHRKbq?_33S##cym#E zPLo$P{Izu+P-iEFVG9aN&9ML$6xH_&7IXm_qVci9W-qkC3K?g3nD6z&FN{#&^Sz_{bm;<)2zV)9oml=(qtB;*m7aG$7mv!Y^3(Y3PP5->>(GG>J`5!W#p>+we^ zgts26943qT$t71*0v8a@GjIHmWayC}dt77fUVisaB_Zlu9 z!CK7>)YNWSHLlYd-n;FNLu|kGA0Tq9&zuZ2e+-Z*u${op?cm zk-0yN6DDx|4X49d0MvBDwAKSu2D@NVR$-IEU3$Eta(>yxCh?ei)pbCPZ2_3{Ic&w}=PFSX48slAqT2>-2&W$`8tovoW5>3Sgc`Tgy33QoQ9SP{w zr+9IL(Zso1IU*ldW~i1S+W<8#eYrAuVB0?^A)054F#6+j+IDNFG+&IN2Zx{D#OfI3 zA$pn1uml)tyAe25i5smjZ!s~^71j}nh4(ePOEAJXBKB7LfOW?&Mo@|Pl*u3wow0Rm z?5kw9E#~A5qOl^*C2ot2Y7yWtsr*#e-2(%nh907n^F}pgQ0}$}|L0@$PE;ZryN?&~ z9#P{SF~>Epr*MMHOG6jrPJ?X6`GHu`4T8Cioq8xmJ940}C* zi`CI{vRJIZqu<8qB!&a?3j1*Pvj*v;aj4BAZ3F0jaK0VB3Rg@3 zVZ?T8@X~M!`4{T)S45@a06>72x3rd4w$3KmI0pvm2{gE?&+C*lq#>`%;rc7FgK9b)*lEyxrN(W|xW#c5+xeB^ z)~cMVv?^mbnm|TEt>6I=L}AQ4!6NYVEd?!6++n9_V|3A9za+bY~Cdy%fhcZ8r&$>-aNKOFuO(2M1#4lgVz8{t4^OG}ESr1~} zKcYT4J#1T;A6Xz;WmNAUU+g=oqp9`^(OHC=?&-bZtON-Mm+dGLro61UXFY{<8R~jq zNqxMn-b{9+KXgWOE^9GX!nclI+Dx#)P zy9Vq!sQa_}mIx+(8Xy9@d=p@ozlKaqw|*PCuj25|0{Rl|D^Fk}$~jBR3Uf>Ygd5#8ykm(|JShj098_Ygi0IXz(&h_Za&vbG9;-`3JS7lxv@060iO!)W+!#l*tL=8-%N~|`FlaH!`GYzIZXXsiu3hz0_1EcS3 zMg*3ks^pIyH7T>_nlq8)vec(2fV>%vt#(*9BiKU0lSn`Nb?eXYliBq;<|BsVCMAS( zCYl~U_rqzuDx^=v`A~WC_?Zfgv;PXX84F0pjS%}0{gM^3O*t@OGCB9k=BdLvM1dl- zt#GpLe`LcRlOatHZ7oCB3zJ~mm@;>T8V!i}Ve?N|#~-;eKMTxGYUy8xOpY)UYXuey z{>v#;5diF0mYY?c=G3SE_ZI$-Y~iCs_N52|G(qE>_su2dyr0wXbah36%cnZ+6Aj|> zS0ISjm?qSSoP0$-uU4QQI)W`b;aTU?9S^0?{N0)ViOyWrwA`5oy!{tDb0^--tTp;U zc`-eJSK!L03I9)^U-%6_NJfi!Ui^15I^y}V&fL*;Asum+)+QsSY zIFMkMcAiT5t~F}ei6eK#EZZz^h{Nj>G#^mh(iWW~HGv-~r($$lUgo`!-|gJ(d)#vP zLCRpfPd+4SHG4h-oLJ1Sic$Hr%(aI@Zv(lN=FauSQ5qRlsu7eXc#=}Ps_AEb3PBUw zxoU|lb8Kr;NEi(B(#v;nOE*8lVb<}39}(agZ%}Poq+LdKH)0YCvjBSU6z|N{Cd|20 z2A8M37MYjnU{cBSF7%V`HyzVVhq)Z3Ce#psJRow+0bV9Lci$6_%}?W1d2U8-Qca>I za^+SN+#8(RRo7qfTlBj5Ax@nkZhcp!Vva0Bnw=#Xp2fCeWn2&b5|^k|`84MVM+H4j z#O+euAW1-m)LU18a2>XV`+W*u`9tebnuNQQy!^rL#rsH?t?tyoSI=o~=(udNS7=$~ zA(X0>5&*|)T081ta%U-P9V&#jkR!)Apn4VE>>~geH-urhnx&b|?XF9$h7_-xYnw!E z6kY3ZfA`1zl7-CEZ4Q)4QLYVn~{k&)t{-n(0C&qhe+)d*jeV8 zq{k{A?dnd7b4?fSxRHTB-|!R2cji`t?NdbMdiawl=w+iRUc+EC#-dB*mUqZ?Vjqz5 zX-wE)Py0xmjke~A3;p-q3}h+h9BMD#kQCM(9iPb7n1kg+FM;HC&Q4$fF<HD|TJ}n;9oZ<&1=!${6JJX^@p=iplA4QYAep4a zsl^}Jo6{Mx*(2Vb@(sG=OAdoe{SB~=`j9GVBbx79E$ALIzccu{h?UV?+ZkV{-JQB{ z*=>d6b!R;G#%w!9Mf9BRR>xXTY(J$ZpPk&NJlX$X7zs44_RjKm?}RuqxLr(omvJ_Y z-YW72MH;dXXgk}q-}R|0qBG7>0nvc}Rqb(vZTVrwGERKFe}4iz3#7+PCu1ws-cBF8 zC!Ep+a{-|}QsE=6cPEziX1j$jH*5j9d3x4oaC}wWl8cp#K^f6ULS7b5bsu}?xi&~# zP4gYTQu{oCYBCv64PR}g2QUuM!*DB9Mu;i4TpIzI>U0M{46KvguQ+oPdr5OZrs#+k zqH!Bi!K~+M|A@v$L8&T5q*jm^M>%TbLJ%g?=S-f%w$3yJyRO4GF?P-V68G_o;^P=- z*`E;2(HJ2w)4&YnVrf2n%7*QL7iIJ1N!#5WGjK zbe!vB^kDG!`6sf>EG)_^n{v@g;3oHX9yQxTKBBucr;ZRV>1>e57Ggx~GPbVN>eyh9#52ILQz< zPExsQQEir=P_2sivB0e`TyGkEjK$Wjaa-pY>nD_H+~zyYFE&TdTsa?m(@oFio%=2#3%$SA1 zHEPETp7FL98+{hRqhnpFd{SN$i|d6g;knd~%q;m9(%@UfC4^d+DDaR7PW{0I0SWj;G z%o!N^@8t|+488FFIa4PhX_|%Ug@|^^(P|1jc@0CbtM#IH@)2X=u~?Zn>LMm^PHjjm zgLcqG&#hFrQ7^~bFK-eG=AReVZ38fi-RqsJSQim;H%+o~V*ML>4Hcg&5`A!(3s|G> z`SETk=eSsU5PkUti=|zH7PS}oHq4(!Q^9l=d}j~?oT4PhTzV8Xx?#i-iFWKxr8G60 zseQNDn@l~7DP3)=XtgMqe?ficFA@{jE1{IuM`WBt?OxE9&ZGOngD0g%LGS6`55{-^ z6m~dljM7eUbGeUWl<}s!1SLFwK`S^0$WOo9E?99l&#P62zy7V@;AyQDewu=4Y{5d) zyo_K_I|engtxJ|-=Y=fi>-UmUflfyMe*FhON?^mmoJhvKgyXA{jxoH{kvjA14x4Ci zIsPBb#4xS9z~-LSv8n9e*A(^+58NEX(&3Ce;#w``>DwwzHKa9^XToAp7>t3n%&`H> zPfOR*%t5)5_H$=29DVs4$cH&PDgjik*6oI(;uGVo9A{%m%GnA+&Tz`PRAh!4~5!rcRCKjWL4Bd-(+rN5BCD<5a z`mTE*h`~AFk=Au|8c}O)!_epfc2ejx{KXD4euLKIo_E{PZ9pUNVlD{S*O#=tP;y)& z+a?;N|FXloRukvjE=hs70e*honzXqyJ&NPf8>q%l1kZ|#jG=jK z{5)fr{~&WtO2edd@+{p>&DQeJOR3ivnP&C})QVqrj9Ox%L?6-Rc&b}+)D;S>TUsj8 zWjR3hWZ*JT<)gYZp8ruprwGqQqJ%M}SQPMVX(+1mfNT@<4Q}a?B9t%ua%@g`#>_-> zQ|DxK?X=%L`J_zwj$zn9(DhZ7@pvBu7#vq4yiJ9%o-?qzy93eJb{7>1$31P-Xm7ru zl1uv*SH(nsxxJr|j;2DS<2&}&vqGff%5e|xkY~*B_+jwAiE|#2Q!v>hj@AJ{zKPal z<{fjn4Z~gQt|~*lsQA2oim^j_d{wFgHe3tfNJ8qXf8>LPwSjHs@EualTOiv6U^{Mf z*v!%IlKjD+7#h4aIT@QH2?@Ng`jDJXZIMA^{5HzGWn*lH@nNZtD)14fD*<6H4SuqqkdYh{qneozN;Xa91?pyxAh$lloiE zQ7)QgP_fIjiz2r#Fa0S4whxm&k_)?aF&G%V?Vr2;AsXD85qnkW?e8GoGA9=Bo@eVn z?lu#+VK>g7N5}!nylv1wnU!(dH^lM805|~L(-GXXqf z_E#@u@V6WMG6S)nGs%J_a_;Y%4`J5NM0bOx=9@*X`oEdW0Pa7J81O`={L~-BJ1$xV z%%$(gDKMi3jd==u`^iU$m=A@`#n&xCYI3pqAh^PLlwaQszc8#4s1LmU#B}+&P@{(} zq@Fjt!t2?WPZUG~nJ0*CLWCwh=_nvcbt2hUdNX8?B)cE)5x~(BWAYG0; z<37SkXlWWWdrZ1uUb?KYHw50yu?47(Q@n!?r-Kv?e!dv&nnrA}wO;XNPS)!N&7mWs zT0J25y-7OOUdMzPs9WbX7HGSc9e8c)jCv9 z0)MA~9(lI{h>6Ht0%-IBN%S9)0z{7J_o4(mFE-#_NFfOLer&+BkOC2K;cURGkU~ZY z5NuizIR%R1d9a7k&=f3+@52THHBvw*uB)$~Uo3LrW55_-dB9e1CQHY9TnOKBN*<(S@=`+nV0OCYl_2Fa! z=D(LPAo1NT-5=P4Mt>X&X*%WU`&8P{W!fagQ|eZ^@W+LtlaZG|6sbt@Nsq=Hx+-ePPUNV?Kipsz?jc(cQV#T5Y^_xT63E4S&9iDF}tWP za|lrFk#Vp`B72D$)%}k$b;R{@F-Cq@=pK^2E3+`u#T$$#P8r}&1mm~-lCwch!OS^K z`@|{HQ_*8#6Of75YPA9$mSWu#P9LUgv>==SsXmHMnQ$E^v&*Tskk1GaUOf((CX-oi zE=60?8!ZLCpvm%o!`9G5vPKj6_a{yG2Yalo2Q*=Jl0TMD5_Uigxo*G4liu$dbk`g! zF>Orl)_g~cnD6M_RWx~9Uu@qA8Nryft4|EVqE6QI5PASr?%y-;*ctRVOUL55M3IzHH3*yW|CtV+Fr&6O6fZgHC<6+UaoaVV{cxXC7d(`yO34n&g zX}k;Ph8ixLMz706_2$#eFG~yw`iXGgmG`&U#!m*p@q*0*FD7p5&kb_I2BpWzK7JDH zhkPx+iU_}YQf{Oo+;?gLOQ|fiIsR2RX)2%=`Gs5X5jyYyjh|8cKkU7EJk!-Xv(hlcgN<}6lko4i6m1iJneye`7a>`9tu#wuT2*uA#Q z%A~**iT9wIz!$e~@wXWT@?2jxOAQSqWDL5D)w%)Js>}c+`9<=2?-Fa~D~#S4O6K&5 zJl`2R!;ca!W4-e&BerZIkU zPh)vUgh#gz?Val9?{3LqbJkOpUJG^#l`H3GYI`V89p`}X-W$^{$-;Gjvw^s&u1F6w zJ{22>7}Mx+2&a$k5-HGux_BU9&Kr1JSHUsp15sf}FXaW{m4!W`Yw@TW?-)B%W-e&o zJlv)2I?>x`l&02}`%3f>r8bKv#h=Q@Rboq|I1Z5X;)$kX%xh^!EIC33Km-N0j$| zyX&9MJ^GYuAWM=*{T8h%@3H|;cX@2}Td(PxS5@UF4>1~a>r^A$YV8We@p=D=nB@`E zm06?!iy#MOCH%ecp)&2x$lj{8pUVU6mR;^!y|LEFwxMkjS+_J(SZL?JUvn)NC)_Ap zZY-U70rjH6X>KNZKaJlY6&8~@sOXJ#r!N|$ZiRe*p7Kb?k%3BM)1Kz!+G6tEW20>6H)|S3 zn&6KgW?91=7Q-wXWbZ!;J?^&Nv#~|3=U3hBa*Uc-VYYdFKAg3toTbqcH`I1C)BeTr zSpGusDQw#Dh)d>#t!iJhD%>k9Ly%Lx-X3o@o!F7Ha`c{|E^8={_?u`66C1b_%HweZ z9tx82wTz`n;WlR6=zXeWwexPC71>(Z7bMC#>rtV#G}ltIj*^$0!X@q|_=IfGh!AO` zeJk|IjkY(F2U^xjok}^8^|=f31@6aWQeJYNLhIT#%$jND^^&K`szmxQ~7$RD4r?*6?#9fk>Ke1 zm{bFu=xTObIn7O7a@N%jNB`6Y(idd^qA1}uM)gEV&K){@$OO9g;tk+kh(Y)Kvv(YK z=I4Gmk`661%l2ii7swq&VN=&h#PCmyx9d|bbWnj8er^encm@?-!fT`N zc?QcF>(uqellTdgk1P^f`ASYfy+wg@_iG zQkISB{*3tlG-DK;gC_&W>SLL&IC`JZugXk2+dORHJE2=#lF4JN ztuTOiH+{5i-}=87Rc6mY{qU*aGiiF8!8MW$x^0_cuR8I}v)qF{-|jO#1)IzA-{*E> z<{XHAdz40 z<5lu~IPM*$_0;!ReW%J39IXtq7Zyiqm*T@bhf#=qa%6O=3$h%OiA|Ccn!dU<_2%t! zk&SEB^gZz}kRhVzVMgMGx3Npay>Fd$F9(Q!DpmkPHi$u*i&nlL6AfU4()AMT7cuK~ zTiObKfH$hNH&|v@S{2Dp)I}a>k+*W6e6~v&8(r)mvw&T17j!Gbf18zDaPqzee`?-+ zow^ih1Ji~hAqeOEJ4N|t2vks45Mx{Y__1QUA(kyf0qhT-KXq-Ks!f=>dv?25aQTTr zCNJ6{TJd19PLE4qE~T|Sr%;`eGG!fu`1X8w5ixFw^&OJ1bd=efti(8LSGoM~{R$Z6 zqrakRLMcmd3kt!4(V-R9IY0j@NN1Qp#k!PVY^X8X$pG`zT=w#WP%mcp=-QcTi(#jd z1W)+Z_$rO+fDg*AvMO?2^*oAII6iR^lsVGjVh)B(cJJl;EL{8W8R8NS9l(5igSSDU zyF?6up|9qB;%TyD*yH2Xjb^N(>2xmR>^e@*;{5P$LK%7%!sVEuvCevhS%fH!iDue3 zP$mfuP*cfrPh=CrlzR6-l1G$>8k;#CVr;MQUYl(VH5#sRWbhP4XXMKu!!)05(D~x{ z5RVl_7fw`)uaYwf&7fOzn%GW*R*LH|`ZKiD^C}kEQCf&)wF^wjR#F-a-)O#Bb?dv{T^7@_KqAj+}8y#ck!!X6g zwVoZl)zz*}YR+=OxJO)lPgXtZvg>dBmmW}0KH)>hS^pOFjv^-sLR$ zd>(1%qvv)>lsOe+r;G@2wq7_wuE7y?qOo6~l4XVa_8kHqn{}#vEqS9$W(d;liI+q6 zP_CA~_r2=ZP<~K!MWN^LWbYthqBW*X520`hq%6Vs1C@zD6!vn||Ce&ZHI4 zBP^4#S8BN*<1@MkV(`QxqkUYF4b$ZvzE!^VhCaOQo#RI4nOh%exAk^Y?8ekQJ$OCr z8Ino0Ad#ysSRrE+F?*BS!P1ykvXm3_rA|w!#gv zQW?`HC8*c`qpF8P8rZV^*Hn-1#QIO9)?SqkVn_sFf3HmJdneiq4Sl$z-U~7wl|Rwu z4o9EA`xohuH(@*NzA0#wZO3)XCPTr}+^ium(R_}VJlgfWc*y?|IsOX@#E(CK@C{7# z-`Ujo|5lMB(MyAh^=}@#`3I^6)2Cr>iJg=N61{uH=ys~o0+Y60v#1Y{wgxxuxwDy2 z`=gNHpBMIu^mG)RbGEc=WB%B0W+9i~>$N>=AJ%Jsr&v7yLF^ z>@t#Zn;I$84qyZ9w_S9df+aRay`D>|$Tx z0*M#UVn;DG^(Q8H2s=9sr8K2X!ArB^Pu8O{-H;&0n`)UvMwRB5aakkcu5nn+oP=Z= z7eZ)wn&2G20xV$bjQ*fwD2;qi#{f=k_KzRle>^B(uCewX`AjrMO5CrvKL+Gatg|8DitsmX|u@Q7rd{e~`V#5Nx zLbRb$AaQYr;>0eJ#@Ml`t#V^G5l@VW#j5{L)-V{um8{E6&W-+$ktnPJf;%iGLKU3U zo3XhJQ~x?u#4GgOF$%p5KTvyvhyZmd%Y`O>l$U!m(2}|r#)`fXDQvv?egbC&P|^Sk z3Ac0H$9m((W5szkRZeIk=}mufkEp_ripr|5p0gH2tq$HRxU&8o^zJUXT5#&Hw?SRw zn7}^?d{t9uGp+cbr;&W+ulywU1LW`BUG$%pF8FufbFN!}K0>w5xPYhqPN1sb%hG^M zOYi#?jd`AseTK1uw!hyFD41SSRoqtEExG9F*K26Kh+E8hVC=qGLUFq!c90B^k1mRV z_aMkM-TIKlFUX*cci@VwA+&C4C~^~(3U<_|c?O7A-L9b*BVNQ`x2a2r?4i`Nldd;; zpQ%oXY@FKfcA8Vo@++<;cM;1mN@K_2#Zoi0$PUO*TJDYS_RPrPNWTqLoN9a{e%ofv zieXG`bu|Ll z8p<;^GoHCDl6&}n0-%C;5Yw1bA(kUr4SvKVA9>F_c*-`;6N62X)Hc{el=_HpHFlD5 z=oy^HUvhaI3c6 zVkAWx@ruG-NMZ-MgxVWzvi%V)hW;L#k4zPn;Bs2Pl@!UPzAq}wm~%nOUaN;;CTADh zk=~V=n~;_-OEsu2z%*1kJF+YNZeGZn4?r119<2;Uh-TQ2pm!ULUS^xiyJ`cck*=Vg z=Oa9IY0-_kA{dlvv^g@!V{b<^?&Io%TO`(MPH|RJ7neD-4YoRpW>=p6SN!dbsT4Ci zuPyVb^RBJBI_G}}tn*jG7u7+QWZJs>ecM@kjB?#YpRFCyu@qWwsh{iDM6k2SkEgArD|ByBSf@(^IuG?# z@U;8=<@mRiyBch^*qTsnLJL=d?xT2GxA{VmY8_!vB?dV&`yxPI3Tp%v`Kb(>4=QZG z^=SCPS*-~Pj}8l;@E84*v8G)oV%5aZO{whY;T6DM)8nx31MD;@MoVlf32=@2(QR{C zS8dQVz4Z>{-=R-PKo(m*?{x5OdES;(A6h9@51CgrN5Owx?VTn}IHbrBqI!{b;RIOYmqi$%p#%~QAfb09XX5Mx|EE>+TDDEk&b|an8aPF^2yxfx( zM)Pzke+Ie{wdy2OH9z2!?21mN>u^>UbgkFEpJQXEeUbD*)A9Ek)FQ&KoWLwj&-!gU z>neboMy$f&Zfk|%f>!k3@wpN^=#b35sR_(9U!Ki5D@u0cVx4Yh~TAnxdu{-(2Xh!r^{dY6c0*;e?7^2I<*mamP z(k(Hh&)w-H5>A8RWVqCEJ$sYku1!!rWM=mv6QELJdOzZ~N}(MyLKlr|qhD$ z=}Q>_(dR}r`;{%%o|}xUqT}zKma2Vtu{BLatNF=AmyH=5H#O(p0RL>{MmbOz>Qh~S zl6l0J<2$7h@QWAfzp73+48rmn&%2ZxDFBfGJ-Qg88DTIL}Jd!wO> zb&xM6p=k91_~waa7+=g8vP&dPp-`+CPzoVr3kU;?UQk2f4}Ej%ZkP0XH?yCp)TE5X z-;Pbhz<9UJe?^xD*k$xD?td z)q|BkZV(M^>#8f)4Yt=x7xPh|tz;JfJ`JFbGO@lIp2)Yqc$VY0TVA?@^;2E`KZ4%y zj|>!_U(y3$)iKK)4>Ez|DLbsCRlDV20kLmU2D;Y2c{S}99sgfh5km?NNQ{pYqJVHA z!{eBNACc5jyw+<=o~hQ8x=5YL)l~seXV`jY!|Jso`3E~&k6ba+b^rRSXW^f+7Gyu-`e8&_RK&HEHJ zQ}?*|AJ#QG^0nehr{EJCAZ??WhQ6!JA6Yfq{!eRTCRP77$?Y(77vco7m+5MQL;L#Y zudNz$ux%|;ukYK(Hx7aHF-zoe$T2v2!~0%BaM%Eh*x|h%T?|?c5gfXLiw$d1MZzaMy?uqfXqFR z-;B(=XX=hkMdooDZNB(fXw2i2MQn4=AN&29TWyz;G<5SyzfK0Z{uR9k_h+kU_pj9+ zIQtpRfQ|KU$ttILRuqd#46mS<5`eojgSRvzsuf0}&f96stWGwuG|Eo#<)m>YW7dPx zJOjV{k_!F)u7;`Rdp6nyqR02>%Cay2OJ0XBF_bp5juh)IQVV->8AZ>m{fA+1Xdc(I zC$hawU>Keg_T-tD#u*S0`CGK*Q`PUFEtRZ0OFvae<@NjFM~&B%e{&oLNRFFW)%{IF zxoEd`*(6a*0w+J!iSl0fkXZrW{Ziyf&O=mrB|c$pg&|y&ZxnAh{i^C)5|DI zm;D>#9k$*A6^+xq)v;c+-ahEg9c~FbTSxkhXb-k=-_BR#obE4_$}R4aywuuvL~7`n z^6`VlB#TooPXNb<%~O8*%B=n7yzM#~3TVzY#02NQbaG+s2z;a9>a3q55Xj6o_ zFsYS&UgFJ1;#5#Ad1;;Z*LRJ2`l(j><~mi&J#G=&%2U;N#g1TR2G8PCvJG698%2nB z*aIhOoHIgT6(;TH)JQdXc)5PEVP4n`_a^gWzo!3ca6VL-HD zj8)Jj-v?#aA+vC0fluP#AZOjiQ3S_A+qxwcQER5k?zvN}44Va4F0pNDqg`?wAga-E zIS&~bGl&OcMDr+ZB4q~8u-P~X=B*Hy0w=FAMazQXNQ*z=EbmS#^;;Ip?)NDV4|;O4 zEL{4UAbc^mxCS@xcz&||aFtdRcIJ`!NZQ&VqtnTJy z@voe_ap7q9)_Xxxah}G+3p=E~ZXceUAfFR$#y{pN5!p4enM}q{nvwh8P6NJ5mv2Pd zj=)J_#?0<+e^$o8I&O5kFPT5;wU1etYS>0Drwh;Z5^>NOri&BEiV0?TB@c z1FM`5TD=*G z_{p#?H5Y|cy{@|coD)#r6+Pt+Cw@6!GecqYp4i@j>BJl&$!wsok%2NdLu({nh&JLb z@(kF%Udc(IwBY1O*3tiUxI@2^x|;}IBe zP|98c`7?`D5h32(=pBh4-&}HXcff^9(Xv6BYY{4|{gcjYHiX-druk}Y%O>gqJ8GR) ziA~nN3RRy6EUm*$TKIjx5^7uOz2Fy#EyY1+rK~zuJ5a7KVS4M{lc7@{(7i_#W3HGX z@UBbH2<_n$AgSe@5U7oV~jsO z!UP*7w6Sjc63t(+qr4(imTcoz_p#dczYH8WxZSlmB6|4ncJ2Eu{Je*`p2j7udiTR@ z?97VJca$ut7KRD6nmcUf&y)K&z|CP$bCT@Z0bSt+lv&j*nffH|c+b|ag^S{eTYW+D)HH!IrB& zG#aR&-wOZ9zJ)ooNmjh2dCkeW{REQKZ24DvLyRV1NIY*Q`y2HVPwPj(lete1orBjl zzM>URBy_ZUS~x7SGfcQuecrV!ta@(?);&FttJ9H%J7d$K`d*+rpNk!5c9ieu?T&LS zw47`EySd@^1qE_QePC_XKttt=esh+_FBOJHL&9myO-vfrv+IL?FMmLPh!Sl~p~HnE zKYz716rAY9$YVdKl=qhXp*@3g1RufG=pBs+)}$-cDd`)1v>T$GN=g-_7|iifYvsfk8BouN${)qbW;`lIDO(tTk%#97ptJg2dZYK$dV6LbI##Eq6YsMxMe>lrHq7Et-CAijo)w_K z&{TYLo6UHr)<(`|Jhta=>gGN8vx$Kn)0<;pTUx8_f=+3xVhZsC&36&mMllP#iMjVG z_Yai*oI_rUypgHbY2DK`RW3HG3JoKrMf5)rFB-oMY#8a~z^WnC=fH;E z?}3f)h#z*B*8M_3T>WC{SD~?;b_5QI#funuv2^lx|GVChncWYsmwiDSaDEcyW+?oo zb=CjY=YYt+{D02GG9e&M1Y$*8r)iM32qcMkh-nb12!x5I9jC#c1yV75w`mpy9tg*9 z&rfq{xIi3+=R7@8sSwEFaJmB(Fsq4>h~HhrAj%K{o}xR}gSdt$;?cX)vxsYnfK$;O zqCs4345${}Ib>tz{DPl$nf%QUUjefmL?WQZnP0Y^l!cjY%)|Up_tWs2zcGG%HYCg- zCs4D>MfBe&7hjPRu$e9n%TJc=ydQTgf9~|$>HF@Gl|UPr?Y2~j1=2TTfxy`o_Jh+L z*5bcXl0bH6(G`;6VyQ^Zw5nB+c~al{27$7tii{xbp*dwfbClXl(zf=nMQ!D%x{guud)BJ=UM2^<`vd3NC> z6h+9L0`kI1tRzku(gjVGG6|*m%@`V6alBGptA3#){!n zJ1r@t)g1@45Rnt=2Ua&EIF#NI<@;69_8hVu&Z-(CH|Kb(SE{vj=`PY4Ipjr`Y;|}> z>4Vkc52|OQDP1PEt!c1P;A42iOK=-eOo7KE;qaX>`G(Co`QlS6O1v}$?74G6UFEIX z)(Dy_&SX(Sk;k>KB^s!i5)C739yXGp4V6e*o-?A<6^7q~RE){x#Hua)3+bZ7*&SDi zfYH}^Emaq!FwT44C4TtC8*Rqk%5F9I1$&J`{DD;jZz)%!XRAX6DX8*(XSSPCq}`jiV2Cy87H(3A z-kHaC-D@pae~M^a=cxo-nqge*&c|4|P<$#)y9dQ_6e7-KvCwyMe+Z#Ewfd%Uey8fl z$8Cpasxguo76y$SNTpa3rA*=6OVy`KM*Y12hCZ(jDQz+wn8CB;3f~Ncb_ z&(vRtjSF{IjD67kWSPZyuTA;L^6t&`n{y^7k`rh3zHgDti;n9L>BjYw{synlM3@>q zi-qPMe&7sED;()16`tx$Cnf|%BR3gT%z4yAuD=8axwck;9 z)nnS~%{^m{0A$T-ow4wf1KtH+EYN5~p1{c!@YZ(%=eK=r2_Z}4F}6|wTle{f@cXw$ z_146igbKa>1t|ALeidR~#E_nDe`yRzQv50`vO|EmKd(A{u$ptzhMeZtm1j*EyVTne zphjH2og>R4<%SNAv>GktrFxf^8-=M6J%A|jSnKivqz=hUXS5NSk|0yPQzWBLepr%w z98x7I9H)5D5UV2@PBNW4bQLmwbl)7G^)!EIQ6coqjX5lKEY#xP%I5QXMx&T&0}s3z-~7O?5BSisgg3F9B&sRXFo)v`|}ktOZ;ck4Jw z3bNYvA54cu9Tboraug|m^pG_S+zz25JN#!%t29}YXjmiDi)j`x8hwgC<3U)A3LE=k zK~Uz;b1_N}@a?hbjce3DfcTAS#=lVOd#%a39l0|0MqOU#jRD_%(xq1{%LYi4>hbMu zJGQ(Ti)5Rj3NbSc7X9m>(Ky;RvaBtu+VEZ~|CAmKc-VNy*eD_YjsCqfUnQ z$}LrbAg_f6^SGFoS2;^4x9{wC_DI&bAomX1L#5@{K|**>1$L1xslXd@AL|{Tyl2cz zhLr!M#S$0$=}e~A+?LGnm%H!p|1o)s#2xqf3I)#z^~wW}c6rw%R6l7GgFO{AZsAm% zB@a|rq~+Z$aHg;Hd?*tW<~tB7ic%hI&*I(b;YlOHF3(gOq}8J5<;fpitQ~e<#4JfH z_qkD?80V+~jdOSuKu@8H5G-mXK!1C)gYG8g%(|qy8m9R!klGvc} z>+h8lUav?;6@3=O8_%zC3bwy-Vsjco{U&Dh5RqMh2GFt!5b|FXacRnvm4bQ;c*4@RA07 z8Hlt(pMY`+?%Ra+-3f=tdB6t1wK#03qQ6J-9%BiMW)`?QrL`ORaLq5EXM!DP=K6tD zTBhAva?XjMyAXBEUMYY~IMb_tF5zs~8XwDxg(`N7xrOVMd%g1$Wawyh{G+y00flT; zLhrg>7jJjTcUT!v^PE-o`va81#APM*0Y$-Ecu*MIZJ8Ac`Xik8$@LLG%t#4;ghhtg z(hO%|k*Q291T0hr%6Nh{7%P9uWuGfwl8CXk?=Ktk4-SE~B;bH&%&*heF1nL67lDKsT zrzM^+jTq@Hb5z}Niqihk7g&OB3s&V5QWFYa!DNqI*yMR|KmUGsC3LIfl8+vapf~7$ z(0;#TC$5OC?K(L%mJhzzHxFqHCWM0cGiDQlJ`XWsN1ltH-J{gyQp;WnJo+M8-0 zeuY-O5fQEm7zgVjNahY%p+BKo{$0|c5F{O*#n?8^Bpon+NIHO_NOP@T`B}9oKcRV6 z%~B-?15dn38)9Vilzk-Kiltd?b?=C zP@L26wPrN2aK)%Y={ZNT@fP1r?*)r?ig1vjl%DLDd2Pa!|i~O0%KPTok-&g zTg0~>C*dgm;1UtWCOwtp0Huj!#Yu+1i7lfYx`jeR(VrO<^yh6=g2)LU3*wQHwWnl5 zmaKzH4MWftlyNkN45AE`cKKj|7T3yXCVX2ItQq zhDJL5;%tZ^`41t6zWnU(h8W~NpCaa~njaZ+d$hV>yo3%7{)=9lz^P)R^dT=%1SQpy z!*icB21jX`oz~O+nQo}N3~XZ6!k+%ma$eO`TEsM==ah*S$m;- z&&4~)cTQ;2em{7I(=amAq{?$B#Q95=1IOU1T||5HB(@9XR-Y<_J?ld6k| zyz;rnW>}Nxo`na&ZQN9X_XIE|{^1Zh%cijWHofo|Sw$W&VBjB*Dk$EgE*b{!i7oeTy5GYKmNRSZS~Fy5Df1_nKVnN%nR z2ufoCyWOKSizLzqY5=o# z9Q-pc(v+fG>I3z5Pp&`}F z$q!7SOjyY^X@SlCgrVaaz<~0LV>(@<-GKx=SU6K;xOxINw+DOTE`*%k&LvGKjkS*( z>VKN(SA?Tbk`_xtS?k5xB;|pci2|< ztV1WhVS(xP_e_GtpE3!fOy-e37%O$k&tp1a2PqQ+=BmjZ3$MsKR6s2b^*lD1vciO2 zxhO}2_hxpq&2Dp_Q-qQ2DOcg{2qx1oRR4m~L)6`Xwd&ILoTs2ffcAR}X87+dn1P@L zb4TUnUq-&PV9tJl6>cVqUD?wZNzEy$<^zoZ^%V8UiI7Y$M&>1W#m!JW4UJE5 zxUH*E5me>r$cQZPAWM}pV=-iH;pYYgqm5!FD%l3>*2A`yh9$}4$K5cyUMBs1XLNvj7(5fXbAu< zl|$5io8IZDYSX_js?|QX2__IdD=~& zBRUrS6#v95Du-+T${Ckn!0I?Te-f&p`2{-(p1=G$#-}InC3Wj+O%cDzn9_fSZK|oE0p=>1L&TZXKW8Mow~BWEv0~*q=dq9XTOQ$%VV6cJ{cVBAhzge{iQP6s z1AWW4z`$hudCB&_e_96@aY~0-M$Kr(3`|0JdJ!X*85%Lt!anO(qc84&*Pz4I7=uQ} z9%iHyP@9il2RaXa((dUWV*?Rz%RfRUcmbqrU(Ql!&rqUyCw8LoKo2SIt;H^)g6k)A zsrClNqiwONp{FD!VIMf$3?`JO;o0fYtpla?XAhBrWMKL?617z#DG&ULBc3ABpJ>Wg zqS8Bl!_yUC+}(KeH|Odf6Jy^0r}y3O1pxKW1>ZCKnFuo;e+?{K+tjQMXmz7p@KY(u1=M$Sc__!Yr(6EpK`L3aDQCh>ex=Pz!2u7u*=}{b z*BPVl-i(qpSCFZy@G_((YAn-8tC6s*lXj7#iS>x`@~hiXE{RL8`3;l`1`D_D{=Yqc zo6-E%0NoZWy==s9y<{x$(S6^ibxkZa7EnVS0`}Bir|QA=-b}G$Y1t^lr?h}xx?fe$z*ic6LKZ|BFNv&f?U}55RDC`-eE4WCYDq+>5kI%%$tI@84_s^) zQ-H2H6m!D(#9IxpN7rlaSjpeMlxSh}bqs^Rcju<|cR+_Bb}IKyR2+ zI{nB;EPH^>dF4)_CG+H+5_RvwLv*fRRl%N7|F-t zpI0ROfE!KZ@di?LaKa z>zvmBdV%gcoJGo3_S(5{gsr?S{Mimf>8k?Rgr7Qk6MEaL_nit7`=w})^ zsY7mnr(?Z~WZgljVLp8wClsjMFisHr!>*VM{}o>%F)tpS5=G2@ZfA5XjV^7 zBQPcwiq>(LXP=52AmGqHJzV<$ zg*YYq%wu~22F1di+02$K!<{x3RjZC}7CzuT5Fw`V%NO~R@o0>3upq_wp)q3#bvcdF ztlAPYYMXyJi?5L{FxzPv zi=#O=X{x1mT<>eVL>MfT7WWZGwyTV05caxv&PB-{9i991Va`LtVA#g@luEti>!+z5 zfT0PLkw0xfkiZfa_9Q^lSI?Vp2Y&e>%J(LJo4V@@u~P5a=$jJnJVv-*OGWfZZEIce z;g*k)p7J{g35pqg6&-9@xJmxKC*t`HTEcXf^z!g?TLd4N`ZSSm4XJ=CyQ|_RyW@b$ zxDO^jATSkC-_nqmh+WgM1>NV>u|af93t zG+43@__aIO7nO!0nHkd-^&QBj&q#+ogDEXbq&Yh>r-=u~=3T3+SE~6aQ2&@~Nsjk- z-#k~WJ=g^$o=z88VPI*Q)H-V;ju;FP-tvR)qdMyk?NjqQu?=~C;JF_p8n8JN)-E(Z z+-`fuZ43kt>|(z}^LId1!_bX4twlpip`Uw5!3`E~p44H70huxJ8#1H5*k^wwC|#gD z#*`tDW7*3h7e>C})JaF5a!{i!*cBqVKWKn)N#MVcYq(*(%2$?yb3{mXOjoK$oRxC> zeZpnidB?G=9&KgiiEucU7q_g${Gf}XLSqo3P@^(Jds<+`@4Yff*f{u3bAJpf?-{_s7Fxu!GQe6bN_&fRDcK+@6CdExaaur$~ioO!5}NyOlB#-Fq{!tK9|1-)H{+cv^;n z$VdgL9_jKFTNVu+y*4Nmu93xXeBJYOWXUxmtu$&lW|0_NPHLjQH_*rDpK6L;kW9@` zsi+%I$+<3)ZD}vBTQZd86~MkZ3sAUnSDdlmr+w=yjnPD0_t&>~-tTpP7PEDKjg`M~ z&9g)5gZFyZg04-yEx4TS_iLBeRK)lI$|K^E&xpA3?EIC0E3yv8gR~@Uycb|-TGYqc zIW*pP*rED0aj%G{OR^F!SXInZY+vf?jZ4ZqdtD7t8(-bnuxmp2jC7$wEo@OnWNxm9 zOBK<=uDR!R<;%0%C>Y|pl)M8)pzBN;k&3hn1VTofbQ}guf?F04n%>`JefL6%t~hLn zO$k^^E*~Kjv1`m}2QT9iJ1YexXWsYgiR0{<+vd)3F;Zif{+zuRl3Y$XEhZ&&ZJHq^ z7}0Kp((eKx!>QHi$xy;2%|80As5_KSfA<$0LX(Y))5K6)N?+LZJL$~?y>*afK!P-J zA?7Lf)p6*<>?<*yOQsy1v}lSh#3YGo$5SZ#7#~WW@j}|)%?yQqMj*)M*ZI|9^>rs9 zD;hMW;fbf#pi#=$l2;dTeY&1&f|)<#AGc(pf)5SWyS`r$YpC3Fw;wTgph=TIIzJu=s;_XuE7R5A;4&Nk#=pRI8UY>FEEz2A~?Hzr~>Ku>TS_^ue| zBwsq!@!sozp=lASF~^NX@EP-+BQnRWpWP7yL%WL+6Y;Y_llOw726XsXC=0B!?P?&! z@?xW+H3#FCH4yuHCrImcLf4l&%N$mJ=_Q@HE5!UwZkP{<4?v1!36| zTh_T`{S}8opRtH;N^WtM8a`pq5?4_g+}HSelwKw|Li@GzlXvYh&GQqC@Hwuk6gD6v zc9RfZcoUZsfa19N3&rtsPLe+??)`>+^)#OyB$*V@ye3}^pLIZs1s@7&c@r*CwJCFr z`15&_sw(5}|jML0MjA@(eutyrb0-x59e&~au$;`)|!GWy?VHrGoL379P7Oxw^<5`O& zDW4tbc2~-(Sx)Mx#I#XgY4I_pW@j{duh6P%wKUbZ7U1txlOik23sryK}ai!W_B=c8m?NymNCN z=1P`ZHU`8O_zxQC>%2y{=3^(@TQ9n6!tNUvuge#ojd?d5#xWj!AH(eEcVi-R4%UBxKpF}o1$_Uq7DybVK2I+dP=bxA(d@C@oJ z%PKi%1^A_<@1O`AZL|FO#d*WN6R=6WnSKs{2O(`^3?A(oIK>0hUiZk-T1p+=XU6+N znW7ngFxKDSXwJy-j}TZlQeRSOa|xA8Jcb|X_y-r?Z9BIaC`!8XCoGxoubjLCdAazk z^3&WUd@}u-U!t(cIGL8N{|?&jL8W!vpwpm%$O2m#Y*3MOu$J{i14B_%Hm8 z?eHEE@RXN=+J7wp*cO+9wtsB_SP7Scl7CGB__IzMkC#is7lYk3cl@Ih z&Tp>WwZ~8X=0_++3IbbW$oVq|Xhwejw?6J4egNTi1!$)2?#lx9Z_mo-N`IUyQ29xp zecFGsoL>k6^gjUCK2{KM2%P+XAZ)xb>zG#zm%kNQjS@UawU_v`>C@e7m}>Am{s+!< zFDDI8NX7vte~TZWz%#a!-`?&**>Z_IF~{tyMLmK)K}(s1066u;%|HMq00f|sKAkE# z91R{Mc}xYd62@fVeqS~t#S<18ARE=*L3#l(0xGEfce^4lH$FZ2CJS4*|AyAImnJ(v0I?Zp20S{RN$0=ot>JgKf&CC;)`t^>ulba;QO4Sl3?2ZZs-Qv zoWEF0gW{R7a%0WdO|1+>3Hjy1hPlYs8r0z18zA z+iZ~`9fcCJCd9^)p2_X}y!&REr!C4Me{Npo`cC6@wy3WarwS4@W`6dhXC!=K01!st?LIRM0Q4y`Ti|fGrnv*Al|&aMu|yfN>l9)^fAeTRV}|=95fBnPfBf>7iE98c8^u{ZJ-E*aJ+3`ZHhC>2k805=2qPaZ%Xa@=fAL5ICFF3y*cK#lB+ux8(%ttd~&E} z%k|+Xqkn@1kP&Jg`icdR{T&M+zSdl1s|7TaX~^i$A*Onj4x*2}cQf0R1V_LX$KIb1 z%exFBMPI`-pdJC!*ft=J(`O_J%oD{Zxx5{{tnb&01)F@FXi_rhr}EZcgH)`)CsMk)h$C4LI-8Zu5& zU{E|mE4vC@S-`y&p76=+y29`L%7bu-lz|crsA*jUpR6KlqVr`n%`}l;A3qr z^@b$~EznBhfQ}G;JS-&q$DCd5x@$@-ZfG`ZON$BZ*k~xD*wO2OzE-zeGi7Qjx4<${ z?y?4|sKMV=v`5dFZwXexD(EPUo8dth@@|b|lfQ5nFAP2ck!QlD>=h_og&uOY9Mpdf zo3w9anLc`P6nRC_&lx9=QS5%61Za3YnamfOZ(LtEr!Wl)<~vo2G(7D?G~Cf30OpVo zDe`_lk!Z4G7t+h`kePq?v(*7ki2+eg&%?R}qfw#RN$U;Q!cbUJ@Cex;1vDa6=U zD5I8xr`^SpXGv%)Gq!h6+A0a-TPq_7Z00;Y{Gqm)B0018Uj5mdC(bLSKDq4e8-eXm z4iJbN{NR^(D4&GPmytFou$ljwEcq7Hs9N`nn_IRzY`N)ngVkd-wRGl0w;^Clf4(OD zjh2fy_cq%5T1po58(gKg`z2e`o8xA?{NDMWn2NPZQS-*!Bxq1lr!T&xrfA>p8R)?*L;~euj{A%Jy=@<|QL=#o7};;k@y%r9;iq+g5nNKFz1}hO7a7srqDL%$!j@p1+-CKIxJ=83CA9%B zM$t5AL38rpiXCJu$HP8)a0v_wbFa~Uo+jM-7StFb2Y=5zznGad8j|6=dG zG{No)fu0xAkfi-jsBA_NF6 zIy9+4TIi7)A&>weg!Hq5Iy!x3KYP#no^u}l_45H_CBLloUH5%mQg>gred1i^PXQCt zoO99n>{v`6X)Y2_*sqS*G~QP8jbG|50I8T?r&09+9W zbh_L4XO-R6s&bsp%Wx_!q$J-vaW2MkcFy=ZlH_{Xd#gKbYmO)EdpoEcL2{CNlb~ky z?0kAc-I?HLY4>w`^D`4e86y=9_dQ$sEjkqkXfDw-pE23A;kJD{KD<>A#~_6XAh05U zmTcnr9G~07oyczg7HI=(RzMuSO*#QW0y7%|0!&Fm;0nh8@%0M98%S7}H8EX%zXuD{ z6Tt#M?K9?JfiQZg+Re6nyU;WpRVOu-3~+Cse6q-H4xRv%j1&WcpI1z$dBYHt#0sAt z(zN8Q8*w6>xYJj7ZcmqqjS*|W_gPY|&Ku<6rFkKpYe@Yu@j+lSy52Ibs>26=SF@wM z#$vYy_$ZSVXom|Ld6iSBt(6g#=hIP=XfGHCM;FH7!0;4Cb?d6a`E~Oz%378oH{#B; zEuY4nVMWT{bz_HcPyg+yhlsEMHi*wvm2zj?M!?NZta#8Zg{&mM>$cYwx4cQF+R82S zuS#a}iZ5C{^VaF3*M_c-xR#}rmw2#eP~R*!+->2v##bSTZt-ADg+4E^-rThqT9U9fH9MiT+24LNrCo!)uSV*!*lY~67*ZFBq^PTfm^fL z!QOMUF;{M&su9&3cph%~`RoGvvagcMqniR9TGs`0>a3t*i$znCpD7oQ=qPa5A(vcJ z*p}X=ZFT$+f%|D@B{#&&a`o=TPlqNIF7!QRRne8|s@^24k!zP-g!er^yg#KzZMLO4 zYxdonF(9fJXh)$86gdim`mTPm3&FgEQ45hiVq?^3b&GvuY#Brj+pO~>^qouejgO$g z+JTzl=fi&E7hMWTc|xN-by4GOmqGc(7=V4yH1YB0H}=&}Lm9{^I7o~MOl`b84W)E& zR&m3RviGCMde)W0>J9qY)1~bfl1Vd4JU8YRRjJ>wq2TtX0Jq1pQtp{pTTt!EV8F${xOg z%^^gafp#rUt4K2!Mqtz7^AX8FbVe_?+0?^OQ(%UOQBEE*M~+UXCS ze`R|E9;53LxQ;;3(Jl$Yj6O-|Sj=|Q5_Qq zNevyn#)cn}G4wfs+E-&06rAQ9{1YkUGV^ZLqk9*O9c$Da>+C*-7~pL=It0m7#95Z{ zNNsB#kEN-7Uu{s+C-eeW&FPyd;Vh^k9-X@MVCRg5Ylns2myZq?dKhRK!jhm#!VReL^6R|_7YxY28zXlid!U(y z26GhDF~>zWg(AWO1}U!Wb)*@%`fi?ZD{Nj?c}3Z3+4%qAj014FS*;bjkF$TU4@!>U zR&C}c@}t|bFpqgg&K(D@` zZ&nU^=B8Rp%n&j0`*2L~hC{SPsbUX$yo$hmnHJG9zzCoJ-y4z8M7F&=7tV1j4yC;} zA?kO%iTcp+V{dPFdZ{(;d_DR6`_91&8Oc7QQj~|)c^8#>Ob@ogOMF9b>+=Rk7--62 z<%kEJZ>v1}V`#Oa(mR?c*q;!nv{ch$`GesEMF$r)gz^muWew&bL)?S%bg8UIt|y@H zrgA{R{c|c>^lCQ1$o{D$@jo{aIS*Cx%AQ0t$dL6|hA$z#;s`#=e|B(HGXYN>|Q8_cqH}G8+mi>gTvqM zae;jAsXF`mNc|7$D*4M_*v?q3Y!xjY-&cjFt&ccnp>B%%q5QZd_Evg#qi3Oxa^S+)6Wt;>4SUVB`D-Bh<<*gjEs|MT6Ehy@#)poR+H zfh_M`I-weBl3-TT*?*V8Rq#sfI5>%XYh%lRbWN;geXO3J%(MqUfR-fF(DSxCo_fCw ze1NOeZA)uS@7*uF-}M0~_ztw?Jj1jrTwCuQ*3#C(GA=&BQO-LuOAcpI3y#|2_efai zd=G6Kt3J!miBZ^jr9H(iWmX1>s z4;1dtse&96R^+9Yu0KyAl^^Qps;jC&;!jlQi3^~a2iIswvQ9_a7SklI*p?_Zg@yGD z>>m{RH6Ub{wF*xWJlxU+aUt6(Vvd9L?$3e)Ej$iE?DCVg`;$a5hkq(xfl>aeM8ThKg?>&Htn*DKPLC$f8TUljLkb+l7tL1oF7?Y<`5B~I zms7m4@7+&vJdrQPT!w93=poTYXPh%^WbgYuYLgL4O*LiG+dL2_rKOAXdO%h&jsjhI z2yt{0eQ|DZanF$TvHd}=5uN}5IyooVoU_?ZL2zn-(_v|PTQ!JafDeUkMKWGsHk+T!I3B zxYfbY9umd1BEy=ZsLqqNiCDho&LHZAH_nEBDm~!?wv^&#|JvKX{cA>nSIbOi(O8OITkMhYQ-z_c@_M$F5-YPXI-k$;fvdV5cVRz4!z!u zGALD%b-yCJeclwTE~g!E9>_jI9-OtBR1(cR_&k)CHy+IO@n{B^&ml)qOZN*waO}JP zFA@Za&l1-1c@=x}n|X>_3QofUPhmlt{{X+DP;sfmjmD|jwb>Jm+yNiS;eqd)W9UPR zUSTIrZHYTQv>|X5*quIn?=2@3LnnX}fjV1Zb{7R^FPb#D&;SGQvQjzknKw7?K50az zv9g89d?`xpWuX169{aRtW8*W%$1!bP993XQ%(IlMOAqzB0;aW290caFtaPG7GV3ut zLMT%7=1;wN4p78tL;V0RP{FpPS8ftG*sK==R?D=S}flXOo1xOmkiC0!O6Z($`J{l7~{Sv;n1I~QhU^I%2U7zh*%mi-| z?EeNs{x=x%H-jNyJHQ$kQn|$%_w!ZY6t5r-lvG8DxyR>&beb>#xeG--Ta>3om(*!& zW=`zY;NHxu^^MxP+`$-o{;064co6X{S&>P)$fAsPXhsdJb)m;DlA76$_gdnt*tC;! zIl?ua;w%^5Eij=t(^HZ@r&L8-E?-SaS1kf#1|dS=EtakhCYwc?Ig$k@!~7~%)Ym0I)7fksEosb0!B4)k0ILe z3V&u4R(1}IZeVW$LGrrOoU@a;lTVs(l9!lHaN+{u7JBsb2%~pG#~o$O7R6>zs8}dh zvT%w~#+cYEVD0{DP%#y9!1AZYg<<<|r9Wo&Cw4A5tYEL;w}x17%$} zp@aiFzX$YDVAp4{hdRys9qFeU(1Sw7K_K;4Lcc60PvFNAb!> zk77xw!r$^JzO#Cfxvh|3F?pvv(b$$T_09+TTmr2;a?d@P!*O>B7b~rXUhYt)=;M=4 zwicWTDKf4)=0X}64L+l4e|lqo)nQc)1zXe4n--YpMzVkNs~MvQm6QMv;r@%5T-oMM zrfLM{wxZTI4Kr!R&Zw{}SwD^HZ`crjw6S+T;kU&xHbdnpJWIOIG|ugv&%ZQUrwXg9 z?v79G;!Gj$GixCZgd}g%VMm(mXe}=9X3mq6C8Y8#-L{NZ+E-ZdSuauRh+Z?qgqJ}U zIlRYf#wHmjb>EiEV;+1}#_WUKv;PwtDaqXTg8;6`!)7p6t}Ona9)mK#^cM5>)ipWaI*9S zRWD%B_tjzy9O#+oL2q#>=Wcb@kiOAm6byoso)I4JR{Xz) zg8<%Dn3r6N?)Pd!XDj|FL>0rU z)Hc-qkli>spOI~i&c@s!P|X?qPnEPkdO zJ{#@~o}50R<&}S9YEfac9am(wR?mXvQJU6`=m zba~Z|lhP2ABHBs1gZd?_J+GwSn6k_r71Rq}wRPjQ6@fg$nB!zu++Wb>uW!grjvS+w zpH*BLxLjd7Vw|$f!!b5@ZlDyYS>@F}aIePi%?Kq!g7n~?VW!nNvCl<+k#D3XM_0=h z;P|WPtMcx>$~zZ@xh)qXz1(Mbn8}{KBJ=H9sn}uvC4+3Rew?yCF)`jK;3=Mjqe&P;~d-9YsA8xUY}iyy37r z!X5Slq>}17U!$#S%lLDIYN^{@yMtrjZjAKI z--LyFAMAE6)?s-}L(w*Zn5fhIx z#fNv?sHtj*Re09fd7YCkjxC^hc41o$E%1{&;tO63_;s7BjC8=7?&jz^8hs&nX89be zuQpfA+K@}`R$*NI)P}?mB|Xm4#Nc$G>b)8l+M{~^G#K4MSJ`g_5dE6<;}h!dN{q&r z*?xVsurnxa_@$L&YxF20)5Oj0X9fh(yFjAVAuA`(E{JQ{MjguAf%1M?umf2LJv*b$ z$j)OOG1|UM-4q-Cw%EWaT)4t-q|L_(4@m`+q2~ZD0RfYtB~S4OZWB%UyEWErj-q|M zm?1m@iPz^|M`?<7=@&@L32h?GVQ*#x=$@y5rW297Rj8_!YA3v(u^G8X#SE4Y)2$?~ zmv{D@Mx6Q+&>=V|%{`w4E37)QW>%Xaw2LH$pSoq>+~=1j8|S5AE`+Ce>-5JfM`Y+E zcMs~{FcR$bD^XuPW{%jlA#b$W$ZJQ;27M~B%b;^V#%64zzMf)MQqNvmZ_o&;N^sxN z_4tkJVa|-%4i>$`Bx{`ByzECbY0xpaB}1e~=;yqIbXbA2{pWq7GG%~GYiuAatRJ7S z_j21g>-CUvCv#wC)kqofu)(Ep{A6LD+`*`yuD<{%UsNi&`wu27PV$f5&tCdvM6tPw zPWi7SD+n~e4`UP*s9w#h>KnSjDysb1P(u8FhZ27@lo;l1n>pCK;IXLvgYye1j(&pw zjuFzn&f};}O2C0RGsDM%XH*rSI@B{dt2=uI4kei|@#Tz5MQWXMqd@odg!T8Cq4Yr} zd|uqrII&dwE(ndKF*tXi06l;ZO*6L#Ss6I&+#OoEUXKY&8(3UmpV zL{kM@Yl7Ez=&mP%%|f~exBv5kiiayY2oWtyMP=8=gYDcJDs%c1&IiJfa7aZcnueGs`V;lW=a29c+_+i941O_xyNaW|oV(|$Ge_|4*>0JO^X;8<81}-}(Jq5u zkRYH6j|AkQfcm*|3K5q>a~Kp(5)s(Y!50!m)6z$VCr$Ydy=|N{V+XULyIyBlyi$9b zP8*D_+`4m{g^hAYM5D4OC#hQB`9rRohowX?1oby%33K)c3^|!7NE)BUdtsgbt|tM& z%5h@1OdCw6b_nk6fXh;%S6)XV#6I(Npzyb6(c2ZoUb)h(lm>3}waR#~dK3^Z6O4ls zC%X-tifTz#WeWJA(hpW?rZ>6}aHg~Txv<4^71^%o9tZmvqQTdu1j=jM>pa-3AI&4; zGE;L%EU*NoG*G$|;X4O8;FL4NVZpf_7W5~W4}|l*^#^H+UT$tTf0e6%G_k{Zgdd2M z_kkrG4R>?yN5Efr600(qQ0}!fzSlD)IPpq&>3p<5(ku(#kcE{>sTcnywxpO6XR;mM z{{4_lh862tB&lou%2@5u&G9XX2GtbO&Sh;PyriKg8rQ$}wmznEc<4FZMo&>-)3kZO zh{+u2l#vaLKsLUDH$-?CK7HYyCgFn#yWg2r)hd=|*O0uw9OS`WO)E1Ne)$8|wE7Oe z3p~Mn>icB5?F>Zg1E&+I=Tveze}B3Y@#IPn1wGc{FEw?&)jKkMXFe~uE)M#Bk8`H| zM*<^GZYapczR4fo*4R0i{G#I1*I6M6o~RJ0bb)GexgQxmiUXjg|EJF7?HgQ z_wa!`^w>e0O&^w9{}`9A{X7!*0z3R{#-i3VPrx5{ePneMqP7LM2KsE(qH;?k$&8sZ z(Xeo$`;JOUBw{022s1Bvj{j(B>TK5esOQ~)FEKLEHaoVY2LPphXK0biz;N_K=$Bzr zu!iSsdF*}bS0{=XRH(8$Ie|)W=_=Ithdl}&*)sI4) zrA3Scj%ZI$BNQe=T^x6%{?uMy{*!5{Ay@K%hH#DS<~}_ z&y)R41MEykjjYmBkEa>ai}YRMblC#+4&{?n^P!^C`H>IQ*d>=47i~FK>C}fUW&x%z z+P8Y0DkrF?(zKasy^6ZCYom9$Tj%R^(08q?qseqJ+^x1>)fHM@9N(#kW`cGEbrc%8rFe;oS9>W3{*@o zw$^WU=s4FZv0B5WWJ{KZZu4YA@jKb(g-GsM%qc73h5Gv+DS|jW_O(p#8O8idR<&`h z{V~-D3ZzMdfcU&s!VvYQVp}~uWEv5AV^Oaob9B4lQ{B#)6v6IFt_oAfNe8p?cFdAX z@k7L73)j%bK-1xNlk_*^9cPHVDwW}#`t9osG8^8OzVhD5CP`6X9#Yarq(f7gMqSFI zGOMX3(eXnzjwI%4zWGiYdBz%sQnn@2<$C2kL5G7>)!msC&KsALqu+!Ylc0sB<>9MH zrr?>^>?hN&5pP=uw4E0}LLajysg#1*b>I~E1^Z}6f?;gqby8+ynaVRIP)vry^1LAK zxnVUaWzLc*)HQ(#T7mw;f2*@~g^!?gcp$L8;~*?^HULkmvy8TkoFqh7t_m~P^47TZX{zQVjCpNbHpNM5V$M0%L&sF|_ zF^ju_a%)^RHr6=vZT9n`1P@cKxBKxd;8oqcbM%$mV8a@6|KmiHUJCPj2G1olMlT=EwC_ZXv^5nhE;7S5j~Chm!xX*}HKclN>AUcj zv_fS)wg{kV>4-F3OGAG%&W%0yjud4xLiFP`Je41Bd zK#PyG^-7xF+$<#fl+fwit&&*rNmBND;ZT8B147V@zc0jS3eCW0nlk9jLnX)&;}N{= zO1kbcPbFG9y^OP$O2-_3d?BK0Yv3j7O-Rj?scgpZoz%R%CxX#(g)FU}87JlgQ&(*R z`K(c286Q(4|C#W817r6#h<_oYQl(809;PAbi^ny5>a@RPmnN-_dnJso_orp-U(#hC zoM+}w*?t6)zJ3TPdLjnOycInYUzw6%O9G)Mh^H(B*W|KAfB%8Un8l*HiKeJ-@@d?# z#%tfRHdPnGv}0OJ1Hk1aT9Yg%@X^YRhD~$YL2P>Z`mKXKWv!^V}+zPpCRN2 z+k7`5o(0G2<+yYU-EEH8^OwJ$oiqukTL29X83CBFyNXJ5XS~%>ZmQCeBGR6Y_8j9{ z={tLc|GFpCgAt#@&Ja!=f<3mMvp?b$W*oMRVg0SI{G@>ZpJNZodb8MSL>7J6Cr%!H zIb&7eHp*bY-a6|pWsvGnZV;`TeTg6~K)!!CmF!0KxQx07R8Aq##iQt$staS*=yF)y zjalq-M|lRkvJ1jKn(cJaeYg5mo)}~I48*#O)dLff=FqH?K8qV?_7?|w(sm*gkzW^5 zR{Vp7ltGK&mg2ax7ijz)*wbW3TTiLsdHhDV^&*86$VoZ&E>`gwDZNJtizHV-KEQlC z?SrW>TD*_{iE2a=PNpY)6$~~~>$(NAQh&hw9;tP&Y@pzN;Cud~?p>U#0d`J03JD8Z z?Cp{od_ft-=W@Jr+tbSZdZ!S2yF}!g)2tBPYM89~QGj1r&aYsDM(&v-!nQpDLHXHcSmgp-v; zMu{}c1D~@x0$Z8d@fNT(*HBl1YhkH{8@t6oLsrl&->J96A!Y=*I$W*=J%VvKvEZ*e zBtXEb$o40Zq;lhLizG!9*FQVIXPU$=P+kp_p5Wttf-(I0_yVX6-dsCi^|yGM@<@Qf z`05n>=YE2EfI$QkjtMXpSq`WitO+m;Spm=+lnF2dSq_vE+=(tX!V2J!q)yZ-6P5$; z2V9Fse7q#i~AAJeS+yFac0^Rv}SSu2m{272$Y2G|AfvEbgx*z}cRK;gLJu0}b zZ%PJs$&oa_Kq7#$@jsxBz^dk;8~Q%8L8_5##tbEw8ThaFa|VgR**#E0*#Dq#;z1vW zSj%<|)J`0vRRd5j4UILfaNFca@}}^gE%7guvB|iEY5W?Kne*WHFqx5CJlw^k@+C$d zB69U3Mj>5qClvH7zOqPu8I1fu zn`Q%gW;Khq%(}@e?+d{Lz1ere>`O zb#Fkd_j#z;mjO0E;Bw4I*B_dmM;=hM%NYyd?Ow$B^7iU4kcj$X>l5eT! zVitriof5vM;A@XRYo*4ap#7z>_llYLdKS}^PvN0jUa_qXz}}(DieqndTL!w(7yK&A z(WGg(3&p?q>+VSgzjC~bap!ZEV~_Mdrk0GA@s>|DDrd{S) z$=y@3dl902KQ3XCLR&>vZVh`VhT9Lp2Bu*$Mcf1v+)xBSX z++BDgwR81bK~&zUcy@J^>jel!aBBkuu19IAg zN2JruHvJ}jduMyuTU2YEhO{?dem8&TJDzkHJbWugZ|mUU@xl!s*1VrRwa3Ln#k5(A z8H%X6Xt_7aHT}sb)~2|!e5+uRYK%GkEJ|PBWzbgB{Wxn#lxrZ^qc<8uqZUd-7V9I3 zk-2%iIK)k-@Es6Rel`&&mKF&6Fo-O}nH>7E-( zP9ewWJJEpfFj8VUJ_4aW-1JbPPgOsDUMKL9)uHP#aWLB$}!DzaU!dd6lnqA)Fy9yU51x+U00@K#0K8IX)i|c^T z5jEqW+O2$VQt_~mNt6+iXhBTTeKvg1+@8${ zj}Dk5A^zNJ#P{k+@v4gP%_rlZ(^5UL(-V!u5)Ic9}o z(G6)&tbb87Es}Ua=x|DO5T8DeiCg_AYLN9F9#&~xSBl7i8 zmiu=xwZ0F3LXn;$hqrYaF|a&89#lM$z$%s@{(9S<=gO!l9P&GF>mo74UlNY-92B=vM0WGUj>2EBv&I(|L|$yAgM?d$b2$ zBzXvvk}|0&wGnIhTt1h%7tB~v zc(M6-QQ@6d%B{EbC}EHkm47x}`Nwb{EfiAfpw;;Sk1Vfa^|j{PhI_-OG?|&|i#bn) z%^zTzB8eop(`+qXae>x^+)R{KB!nOu(G&ZKE6M0?E&6oa1ABcZokBA?6sjqz=dfr8 zpR);@ehE6ulViW;D&Wsf&u7)O`I~AlNhQ`9#82L&o~AWwc4X*=x`#a*4qHQPIv8s~ zY~lBxoU-Ozu(*Mee}M8b%pKJ{l2twK$cE9&e%mne@wo_!<|5Ju+b~qmPE?v1FIJek zaDDjt16J=*zxd8f(THV1E1`UtLv-|KjaaSeL_6ow&ZgP2ZM@3S!vA6yQueUyo( zhpkn_vYWZeVLbv-n??)U1s#}d8UKo*Dw`oN6dEBm+$xc}F$*Fq+Pf>!5H&4PAVzQ! zjFWo97s)m=&PorWWAf<;*B_Y-bdO=T^iRapz-z$Ne8VZn*ed)j4&nNT&{Xp*0xKuR zmcM%m=f3a@Y6CDgP1EY#GlH>*^Q|lrDOC4cjv@eu{06SGmdQfdxo2R84#1{l+ZTO_ zx%{cOvzBRzzU^Qw#J|iUYyL0fLxf)azg^gwRnZFx{{7d2sHK(t^P-a$cE z16p*XuOrQcQ&a^Es!+ROJs3E^mXr%KHVG*c4pV5RVRv{`)uvwH;W$15gxf52?Qj-` zoEz{I43xQK>gh?TTb;NbKf;G=30c9CP95^O)?fKMGq(PozccBURd-qCCrL@7e}nqe zTZgm1sLp_ouDVHUnXPIYxKsl`P#t(VjDG}`GxZ43c|K+-y1}#{@;cBsPTuN|QqRbS zPf|~!L6XpiZNnf_Cl0qE#xnvo%<;RZ%~NN_r2Ww80t6D)L@^z=e4|5K`$1Bq_bdri z2?o3mtzgP*kp%iIWhwO!$}<5N;qlmeLbEEi*N|a%ejl6d!Wn~qct9NE?3h~qQ*8$B zidl@pXVw!L`$nT5ouMsR3M|sks5bke9H~~WnB4qf2|RAiV?;oELDl9~=q3w@W%ct} z-Dm&M%;f_G&lU7}FiQ3lf7E#u{s>ueR){Z^t>C5jU(ne<(ChPM>{1#e5`gN45}y9N zMdR@rpif{^;HANI>whH@n?g&M%huqcC~AQ3cPK@pXXLzQ_cGEUL$N{Le;txqzlxvN zQn_-@X(HwMw#AuZcd5?c%YG-xDha3cU`BWH!1~I;&J(P=MU>&k0p5*F95<}Z|DCJ5 zDJkLU#x};ty;P?9;G*>L-Dam<*X4N9I#p_3^Xm zy3Eh|6QUn3;Vj0ub7r(tWG-=YwU$5Qvh*>$6DBSyNWHS?r)}G zduu6|1V*Wa(js0efPt{a&4CG}YGP^@+!pc36M6mHl-4TUpvNok%_%l*5Wg-VeQ$L= zxo?(vY|8KOp%X1x>DNxo50hQgyj{{(t>iR$e~MAwHpEEYw=V>v6;4J*{jvnXG-R9q zPTPxzcEBw(g$auA{4c;EKkK9;k-Q!NpqS1@zy0Rkz-wc_5ZVcj?ZD4+`4 zwqh=`&4GF3%g7O8HUxd_=tFrLg<0ePuhY@0K@QT*h({nc|4wSf_DxRioH(Tr_b{WH zek4|2s+nS8oswAEnPc)vobpWT{e^Y(+wD9N4dkd)%C>fX6UxDugk45V-3D%GJrb4> z8lxeBfyHjqTuWxH_WeO_C#TP1eI!7GD7RH+=++8NjNg)Tw-ed!YkIJuCFZn88Q~QB zGd8{rZtk)uy)ZXgTM6S2*x5htFwNsh|qn^BsO>4JP70 zP`z0r+@2NS&Yhi7;rlfMW6*yeq*^Ck`8JN)x&OwTjdTfoaNR>ldWBj9r2&yBVvl}_ zC58`bq>l`0KcR%RD_>Itx9@~OJb1YC&F`{oM+4fxfqk`_SdC^a2A12s;VC<#E;|Y2 z?{eny4|S&>yi|E;5q}?fY20KA`%ziyNNjS{X`Trw3@)EDmPU1Yl^jN!-XT?MR}>qL znIdDKs3fAjJ1bS5^V3jQq#kM>8feCaXRV#IEyq2YTi)RIYI~q$8y9)>8s@*6!$7QfQdmurN8QKtL{jgbsZ*o7v6v z|1^1dC}z9xKN4Z7hV057{kWEKk{jLNs^F|2dDF^q=tuuA57>8BYbj?tC8voB4F?Gt z9~OCo^ZpO*@2o+#O!{J6H&^s%UE|fU%ESJS+oaX$w6c8|C(*N2ltjutk+|?X)?S17 zom2Ijr}Wcx5tTc=KPM?XogA!g^rVwUysfcim`B|&-KF;$tI(Gh$+u|U|4m~{K5uSN zx|`xRF`u}I=7aYE6kH6Idw*DW$)v3hVG8Q0WRu<<=eL}Yayb#wgFD#awi2uvmV(y! zh#b*LJF#=7ZsIv>X^9@I>8|GfsuT;JuIvTX)}8xu)XGclK0^obEsE_zPmfJxpI@At z{at{Dd_UG!RZ#0reMmX-ntQWz+{-@nh4r^R=bY!Uu?R6yuO}r$QWHg{i{M+9@R z>4xKXJWN$<=9Xqw`yTQ7W}l0hS?HCsfpH1Xb9oE&E}Yh3$X2PsR-^)6rK`IS8p3uuze=E$1qipt`E}n{cEL#J$Wae~#e-jtR@dTyine18;H2(-tiHzFI(80A(#p?X{N*!l3%FLJ zHe^2($|>bnbUdNS8$afvVDFZpuoL_vtfzEXfX;YE^1~Uh6V`3=mDo+a(qL^$9 z!<$!i!BPhyOVI`^wEb(MY7M?j+fgUB2)^S2-Is7n^Efjg;KL#nXdmZMz`m|ZzAWXe zXB%-|*k4t%f}P5Tovd$fTi=xrEi>gS2^?v6kTKtI(`_U-W*Mi+)hC6UheQgU$1l(o zkT0%ScG$Sbyx6iPbazUCdL4HC$ApVx1U;4&L()WMkqD8p>2uVQ(M=4W3b1|gd&{Q& zt(=P&`qC@04KCqjwR#;s^r!;J`CA437BTYsx3|l$b}odfzk1^1Y(XR%R&H}7i3>`* zqgB>_D6}=)&~iM%^9XnL=#z+~l%4b=HJQP0B--a&Ae+7o9yCg4ljFwQ;WPPsa1_ST~ZJ;KSCn z+h5poi3`gD$BQKbFl_lwRmB%w*byS~8PfA!^5b6EIewJj@$f$Ito*CunxFNBX8$Gq zsV^jR--*)whaOl)+B6pva7#9~4YdgcEGO)*2qN#diIlM3@U1BS42}S}8;%{Es|5X8 zgfe`3L>YBMUa-5o#?Xk$p)aCxGH-kakpRNy{_k#4{~$N>*f<5os|yx*UC&2d8@Y-a zguPtW?>63v^engIVM zM&QqMO;E9fl?2{Y?F54e6NB-mniFsSybJMP(Y~K-EC- zZOY8xNVPyvG%AyX2dV^uj7^z6206Uq%F^pWfABQ}0};)6^MolYK6iH~Qe60;vDKp5 zqFTF22%1{IoM8Mr@)=M|0@;*s^sA-Qy28Jv?)}@7AIS-n-#Qs3`sC?kZ|SQ}**;%l zEK7L~mVYem`CY}0rYiTVT+MG3hjONW!7_nm3XJ(7s~cfvA1SPS7(qZBh|BibBtRVC z5x<>6uf%K@qfmLrP80NT zZ**2dCIVvfZl=`y<$1RUmWHeF1;L?~A)Ymm&P4q=b8PdAUocps5V*$!McT(4_sx(V zfs5~|^YsV?SI|(71 zg+ydRK##k!6Kui9ldOuIs={I2|Co1z0lcvY-t^y}MX$%V4FaW1S|=ytb3$ zQU$7aD}eDwysiojNs3Rxm|&XFD+t~f4$|>?EH*iJDI4t-2REAw#8iiv3!6*>QK;v9 z>KE#&5U6bZf02bL*7@@+OrUGiubC#xKrZ#-(80Fx_}WW>dx|@CX{7;|R*JT{`w}c2 zTzuFuPQKgnyCvflTEQhTEj?j;VePvExsiqK@yTrq@eau;oLN3J7p=(5 z->iJj#U3ByQHy?CH?m-5S(|?)rbsW4a7N3-^@G>;%qXW7na5pUSV+GJAF!?T_FIee zYf$BfQXU+#&)r;qwsV(DA~nymD8QB1t$N@o+erOcWvY9L6E=0eV`yW;4u~7Yobl}@ z;dmUSS7WO;P~{Q9K2#+?SDzn;*iC%bF!?I$Xbkj9?yw@OE6IfL6!XC?>v7=o*2!b7 zOQ@r8QTBxznBIl0f^}M61|14>K4#Cl01cgf*@HZ@Q=L2a53*%#P0N25Yyz$tigyUp zBQO2`Ap7FPX{D^zkhi`;OFLTM($>RTzN0#OnXSV{q|pYIU04=Rnx=Z&AoL0JEHh`R z>yjyQjh~XO_?(+Iu|#rCOpDVzBb^gw0d&$Ex2Rnk!pE=#NVkTBpe+XFB3Fp2T=&o_yD@)(1>_C`?IBh4!Q;ylba8mlx%#*ElGi|Q+J3y4qhX2bF zL?Y1D2=J)p=B%SvwXiZo!FflShhC8|^kux-A%^*5TSHMBbnfsMow5}mT5+0k+?vj$ zLAV=0M}a9tLK4nD85VVAg>&iA`rU13SzB;~Zl7`01Dl3fwrR?awoarXf$8W%2AYn_ zz3){ZJ*Pl~Zg+>l4~pi@%;A-ORy?l|T(Kl)fwozP;M7TEW4uOtb;=OQWcL$7ozS#5 z8v=?IeJ)1OQ)7=uq&P;S;|A1hw)oKOn5AggSt=H?^RZ}v(lYfroHVU5#$r{hs}coR zs=8I%{;e5GiDd3m40-3b;8=3Q7+BjjN*wx#Yu zkLz(IiYsRRMsk#6Q~*KZc^fmCuonIj@6UQ(pHVh`K+pvtmWbV?=Z(Thtmo?yT%I`6 z(T|+z^#+ZYfie#I*zob{*hgN6&^p2*KY7n!K}$j|X-&W|C#d&1bjDreU$E>E`14#^ ze&LxxBnaOMjpK#s00u5u04T(^wyt&diPqbYHgEffyet+c%^iqGHse_LiI+<&q@;q8t&*51^4aZq)lv}eZ<7YDiZ(yC%#4%^yhr%UVtf)cb88s5xwJRN`3i`PHZ;CR$elnz>r zSu$n5XD}?Il}VhB32#O`j6}ab=KR85FyK3!G9Lu`G8;sM)_aqP%B51$IQtQA9dUMi zn`_(IEZn(#NZTn|+RXX`OKoF`7jfA*sx?|c?JAq#1AphEdruhDfS_y9$eA2-*FAP) zNAA0M%~g8d)d(L%+Y87(a*%ViT-VHHg4lf4ZI>RuNBrSq18;plxDCO8nnKFLK2dCL z1cH1nN~8qdHQx9mGQEp@hwuXjPT^(y%*YAUM3>uMT4gbMP~m;y3QV(FA}xMObfFy{ z)ps9cQHo1e5C;>4Eu+u)7nzk=#9Ot9f86znyi8S}_ z{6c>HtkmDbu>ww^RrmS>mK=qM9=F~H)Odoc-_K~Q&a3_*@X2#1;pjHXw^C7vOkGEt zhFvNw)I(C58%_lr>o7-!@2&}uOa}W<*09TWh$z}JKiXxsb=(cXjTArcS;0WBUkc@+ zwxI>}UCD+?Mnvh@_9@Zkc#)sABI6B3wt7h~ygKulSb=?BTTVaZ01_08@5)G0K?A*t1F0M#$Z@$TYUGLET0$QfPwR>e&xhYFud6rp2U(QIVKH9QQ zEsMpgr-gf~2&4S(%%(yMR{)|GFx;aeur>VRx$8}};TiTZ$1tM&1v8xY4n*Dz@o?>u zu(o0xf4FWC>>DgOhSJU_G9@aryU^R$4Lec1idK4%e}-jk)lMC8Yo{|py9a_aynsxm zJnQ}GwBwci;N55Yoe(fugDU_H&CVV)hFWCrh!vB$+3#)rOJCgJ88c>(4aW;mB0loh z^__}O^&RReymy0(PGZ=~U!JCOe&F!MB;SfL-aI|{JNyz*Zf@=jf%Yb+mw6lT*U$nD|@8I0@?AND$^XEQ_C@o(!Z};B;Yz!NA zgD#KHESOsafeKH+EErb=f#wbZa8F=CfQf>f9nU8R0qL&S>`)Xu2)K6rW=B#mK|tc` z?u!Ool-a)EJ}~T%E#=aR`al6lx|BT}+XudlOetqHy$>{jHkQuzhxCE*hb)vkrs{Up z@Vk9~@Rcj<(*XFES(wY`%M6jR`_D|s|A2G%?~gr-uCi*&Ca(B}WA@^x^Q=Nj5G(%! z>=V-C4j2XafX9>E{ zq=H41ZsDIMOlJH78d$RMATd8!-e)Z9f>U2OC>Ioej%AH~^m|xV+?x9#AXV`Zh7xl| zq?3VUj>e7ibJu*?13=7TA*Ho95|7%Vt(SsNm5puM`Azoa2Cmum50Or41v-}0$1pC| zlx*5RK1lWfcZ%jh8*+Ts0j7D{v`~rcGzVw(&x-dlmJ?NW1CSO8uSyvE-ik;QRPL#0 z%Z4FjKoo>LK{k3aCzZ*|z&-pJGAY*&fsu~yKmSKs86pFN)jJ>{FQ<^ehcr2eLdhS= zK|eJFjMjos$^2aDp>0`+$h`S2R6%VfZ%gABk<5*ozXr5g+^NIsICl@+bCmrqGcI%R z6mRpXQfPyU^g`~i%;$$qVClVdfsv`q#hzZgRppYhbe%z3k=gL~a{*BNqc-m-EI!E0 zqZauNZvu`7l+w|T6E8Qe0B3<#|Gbf+<^~XmH&930--5mU{`6s~PU5vHz^t8SbR&gV z@NAnn`^{0+&>0Myc;e&6GFo^joETqJ#~v@eih3pt^3zy?&kx)vQCc_hw2};nd*Bqk zWbP2Xd3-nIJ(zIFvZui<+9wK1N>rZ6xi%GxfAocfLKTrvjQ=-p@+Wx{M@H%QM4L-i z`Ext`rr?z$Ra+Y zk#kzaE?Eo{WE3Xz&-_x&>no5GZfj9?kg13Hg^oS&>Wqi8{BBcG40S%pnE=c#Z*Q^o z@DCXBVRTb&RKb~o<)uEQZ|kNkAjaQVcpfm=hYlVf$yHNUErpya%37?sXg_L=QLNS7 z*69<-fw;XLk#$L3yHYvnl2{d$+h`uAney<%B@+`VcJv9WW+Wsb;|+!0AzKwe+;&he z>|j%O&bCZN7-eH$r<_3p(`5|t1(5RaUf{DKdr(sO{M@H7hO8cOFTUuB54J%`BqCK< zV>?*)32+_BA>W~lEU5Uxxl$HpkuGg8E)>6S$Y9pUME>;@zG=zEASBfsMAp+(-7}x5 zCqYZ-+i~t;i$qa`^gy4{Hj`J|36d@e&PEs~ulNTXN20;n*qaS`JvZ;ru7;d1mcIb< zYL|RBxWq+%&obmD=~xq#J~C`-{bYEDY=`-;1K0H*=z00E?t^WY#D1y!f7mQCgfqMF)Wa1gVLNii&`O zigXo~5{eKyBpE9TLPQj#B`VUS3jsolN*73w7CKTR1c(rlkc1@n4OnJo&o1Yjea_wY zp3Q%J{Crq(t*o`)-}64t_X*Q5ECJhclJJd)5LGp5i6-eB#^8B$&nrpo6_-dZo=qbJ zhK%!ZpQf8%w#4N*O)fgx67LD}ETeM`U=&mda4+mYpf?TkA91mGQM9Y+`U}!5RYIxg zuoF}f;hNt5j|K;2X;8E9>*mXf~Feub4c%sw($BXWHi;E`Srf713_ z>BKNgV6?lszbRxM;R;mtF8lPgr8h`P3BrE4=!UAIpQanh;6EL`JbW{k7wU1j%C7sp z)&+q_;2oM!$%f-G@Uu`3@ER*W%+E&h?)mn_6pvV~u2^*=`0+of&X;uZ&S^@`7Qpfv zEqmwBivyk_{I(G@Mahm&C5$i}X6(6EPD{mOw4J9ow|u`!E`Z`FRz*w)zOkIzIy|zN zJ$aVa5OGh}JUEORcT6^gV?zVFa!TMBEW+of?Y|bsoSZlw=^-9zY9$+|ZjzUjmb4a+ zb><~o8x2cM+LfCW(E?=!nIpHtY4-v`0~|Z`pLE>05%#0~-l~gb(;Wzha&mHqnQoXV zrDD{vZQVVgqc-`vL^t6CC?Z{SpCWhq@(g0 zLv?vhaV0k+9ILfEp}Ga-ExLPmy|HZCNeA#=gCWK~=&D=2k@ymU_B)1WU_{HTgv=dd zW+PgLys+mnOB5~HLY~{Ah9YU5PfB9#&ib!GRlKmk)5QpVQUw}1Kz;8ya$W^w96CoZ zZ{TR~ENZScsU`_;46TagIZuZsHV?c(>!2O8l0}!mT$7c*1ey&q7r7MDF@L7D=m}fF zX}?7tmoj6Ua75Tr(4^uqOuTAcAR(j=ny9$h+H)yNVTJ$B|NP_mA4?MBacYd=tU%;8 znTWf9+wofPobqkRr(U0@qr^6OLH2QY zksrp00MeW}+2ec!m!B4PTt~sAbvrH zd^sjZ<7aJ)&f)~PtQiB;91++_WhTgsaDW68?%`s@=R|Fpl3p4f*B_O7+t(os8|Xta za}d3z{7N>2P14m*9kFb&!c4c{#^L5J?Tr-i4R_bkTw*1l!XwZRf@AI*kuUYZ_P|E+ zvI+HkGe^Ba?gQNd6HVF)hlHdwf_!zpcXLXIx(`w7L2yjPqmIV|cb?hzt;;GgiG+KV zS_#O!TsOa~bLA6Z&tf`dYG<@!x{TUJh2R63#>I^#fAT5agP0C(9I?)&Y{SAO(paM9+8#(G)Ddf zVCDFGHtYuz*r~sW?uZDrlNCo6=FT$tOrPOTfQ-Lz7To=o&m0K7h8iKd@jLb}xLxOl zED$X|tdo@au8L{(*Uci0941AeQ~A}Lyzr{+C#vng)ft>C@EQL}#OnW!Ddk^9oe}P0 zqPaNr{X!c)uD=6*h4lA5CN1Sfj$ZmjwK13r;*{u$Dn6Z=KELMRRQGh5{oFoNN@bXa zF|V@nQkl`ZTLr0_nRf<5wmZA4N7r1)_Pq1!uFz0^*0rGsa|Xrvk}L) z$na2{@tvjXf^C>gbPnCb;xRY#6c-&s*ASMAn_kqXkV;Y`g|#qpx#s+|DIx#oQ`>Vp)$v69H7{bZP4;tgu0|@}DzqFmdO1gWee2IjEpv z*VJzQ1MUN`@r+-;Dv*pvf(jWJGkq?=V;-wT%m(f(O+6UV7{^~_I~$7^ZMIa5Z2aOq zVN3Y^zVY`T6Kd{1$iX0vi@mBKh<#pKfrdd?)I%}LB0uGrnO7fNBnZ6ehuTZtQ1@hf z-zYqL@L{i)y?6F0kdz|i1QxE}ZMYoo=#0m@ai<+Fl7VWugYUq?ru*C+@z5VkDn~f?XBF(kx0MdnR%M>8!btBI z7+&U-HR4vDE^WFp}CN zxK9NvK(?c5KPH`SxkxeA+ezDv7BqXoZ;a)u)kce8REzVys_D_!AVA}DnDr2ER8L&0 z8~&7L_%9)E6^Mpnb3r1$N37JH@H#ih@=cOo;zHlG+BXfXO*xbo)LwC$QRW4E_&!fs zfy6sDud|PRa|}LX5KQCBXO+R7FZ&1GzkI>*DcmFXx(mxUnc2B;$19jFGX!|Io7C0l z&$WJMcKLI~rW7Vj*WVp;$Kz0MEUs(wF(ol6)j9UYfyUeA1#dm876#_lQH0jT?E?i! zX{g{*rP!3d-nrbv`lvLuH7rqnJgpjEU|rMK^GhGS6K2+w<$R(!(oGJ=6X;vN!Sj)US2?D6 z8fM+a2^q3xpvRapwpbA4gU(#`8LWc?T?Jz$h~1;Y+YN4>nrXax^RbEn)46K{ioxi& z01QC3Gu6%5m8`$yM*g-zCjk*d@d{~-QG>nA>pVm5t<@$sS|zT8x8ss_wPkM^z7Zbb zHT?_5iaa(g8QQ7aukzHyoZl}Oxc{zcF=|w&VycM5uk# zD6(6jip*er+rG{r`TJGuN2Z~1&*sioaqeiQZsg_*sspIg3QZLrQwtdsVoCY=h-^8v zbd0UW;;QB;<|-FAmbW>G0-2FuY!%Sby6YEWW_(R5PEJZ$%7m@iDy-BCLz+-NAlYQ0 zkBVoXM;G_;TM-@i8FV_wEComVL)Y>DRISjzhPwvft)?YI?$cW&Tczf7Bj+-#pPr`d z@-lX}Xb=WK3a6CsRahV+=hnp!Yspc~O6j#79$g<3mVn$iXYN9>UmO@f#}FgCE^KAo zs$>0&y~l#qn)jNG`&(7W3%yRrr`lR}VBvZ#x>u>u(j}dxUYpj`!FYXi3a`h@2 zb$_m>tE6jx=D4J9f_A)ec>F0s)V%cO^P@Ef^?pckcTP$*6DFfmwAWPihwoo#EmM=* zG)zp0OFU$E`~-R@^aF}sdkr(rc`iN+YwBTZ?;YeW>ar2x#Hzkk)v<~@EA|<>P+sA? z6tWFRy0wdb+lpL?D`YOevf~8#1bO%M1%S%f-2y@91~%dVTE_v%GrtM)T#G3_?Skk; zM$V7tP4H;68h{*$24dX6Ut)B1xlA0W`T7r1U3}+;w=3HXMW3a3$o{)=2>6YF3?`UY zhzHwv^uG|$R*P1NnY1GDPdO`adH%y}-2b?@=l6|6lneBP%D?_K5DlHbyO<=qA;I1< zsQzj;2Rer=)^jRs&$fPt9rn4*B5QxPWD!)*{epx-Q6ttJ#5DDUB&5c1JS3GeV=mjK z4#4rE+9Bx%EnC3mo?2M(6l8~L#I|UNnvnmMEjJjD8FJfZk=*EQ-!Qmn)I1U&gzMg0 zq}yk+O>KJp}?NklK$m$_W-U zOD5-;TTXW0U=4vY*5PxYJ$fIDSP(uj*{Q#ln@$c=p7ykvK}Pki`X=#-(IZCm;*PL_ zF1ek*ZXtP8#5v}op3NT}37Uvvq{rmHK*!k+tmpGj#gqNqyKAW5!wq0>VT$yGzKi1B zMY$SwIZjhu*3((JzStrdlxJ3CA4W|6W0$gs%%k!Ib(G;GsE1#S$!wioC?Ol!uzL!# z2CB9b@rv=Rzt*KZdEWJz|Guz)V_t-&zF6IKy@vCQS(iHUP>Z~{!S`E zHr{TCi(X|>@r-{(#Rn1+Bf$+Aw@;OU>D*YqMAy!s9<2Ut9FQS)U_qQBf%IgatZ=mZETFfv7i z3$zc=?iM`EN_9#cY~c1wovbbO@shn*kts4kF^@to`<`eL3@7+EwUehlMX@dkm|Ez` zME-5`ny?vrlRi@J*jlo1&)!+$Afn_}Te-O?cfkXgx(-32wI7B*Hr4atI9lDJ;Pn6J zDJa7%M+AG-p-EY~gER@9E@^WT4ne|94SX{CdxW~6x z+w^yN5$>{1+J^e(oPUw$h>OX8`+wRZX8mdspc;*0wyV9JU<0bZS{2=r>HFZ(Y;IFGNu+ukucZBE$JCCgfvg~{X zk1C@1c#wyONMCi=g;{wLS=Pnbzpp!z{hz8k`u_vS+r%@P-=!G{UA(r5en3lUwmC7| zPrX}a!p3PHE;=tRa-LqC{+X6)10QvbM0@qWEaO+@I0i`q(wVxI)l`PM?zSEO$ywoJrcx+h$WIQ@PE2Zcr%ZDYASP$KQ{cksM_;vM;G z*{LU3%M~0za22&R-u3y7p~r-~PV%eVZ$6LqSO0F{C{D!_fLjIzK^$s}0F)vP<`4x^ z0ziTp#J~ibQQ+SOLBEkS3b0%TL9Nji6hOEPrs7aiD8PmpzA#kO1_=ewsX8J{2~KIaTtk=)xc8zQN0QJqTbM$y*hR19;)_S zPc|BSy{HcVIo+mTCGc@7ZLr#kwbCtSM)~OG7OY+6UBO<(dg?)A>xrEDX>xnMk8-VI zcmLj1nv=#}@LfMivU5G*ktW)P@q5x2Yoo2&wR?EZyF}k|QMi-J8Pk_cBcRWL`fY#N;e%B95x zGDK%1wyfw>V*Or)=fc$vA_~qo4DfPyb{tP_OP#Z?%t<`k9F#qU0HKp~(`0f`CA;eP zTwW7gZIFbB5H<+}FFid#sLlIbcl3+-Js%p}+)¨eL-8ykP!8Qp%FHY*9Hf)raootYn0t5PKS{m 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 ShHG=cm*GL<0~!0zUi*LN+E>H? literal 0 HcmV?d00001 diff --git a/Site Management/Get site groups from root and subsites/Get-SPOAllSiteGroups.ps1 b/Site Management/Get site groups from root and subsites/Get-SPOAllSiteGroups.ps1 new file mode 100644 index 00000000..532e9ad6 --- /dev/null +++ b/Site Management/Get site groups from root and subsites/Get-SPOAllSiteGroups.ps1 @@ -0,0 +1,57 @@ +function Get-SPOAllSiteGroups +{ + + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + [SecureString]$AdminPassword, + [Parameter(Mandatory=$false,Position=4)] + [string]$csvPath + ) + + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.Load($ctx.Web.SiteGroups) + $ctx.ExecuteQuery() + #Write-Host $csvPath -ForegroundColor Green + foreach($sg in $ctx.Web.SiteGroups) + { + $sg | Add-Member NoteProperty WebUrl($ctx.Web.Url) + Export-Csv -InputObject $sg -Path $csvPath -Append + + # Write-Host $ctx.Web.Url " " $sg.Title + + } + + foreach($web in $ctx.Web.Webs) + { + Get-SPOAllSiteGroups -Username $Username -Url $web.Url -AdminPassword $AdminPassword -csvPath $csvPath + + } + + + + } + + +# Paths to SDK. Please verify location on your computer. +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@Tenant.onmicrosoft.com" +$Url="https://Tenant.sharepoint.com" +$csvPath="C:\Users\Public\AllSiteGroups2.csv" + + + +Get-SPOAllSiteGroups -Username $username -Url $Url -AdminPassword $AdminPassword -csvPath $csvPath From 8e6e3ae742f02b12eb2de9ee54c8ae90bbc604c6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:32:33 +0200 Subject: [PATCH 119/129] Create description.md --- .../description.md | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 Tenant Settings/Report on SharePoint Online tenant properties/description.md diff --git a/Tenant Settings/Report on SharePoint Online tenant properties/description.md b/Tenant Settings/Report on SharePoint Online tenant properties/description.md new file mode 100644 index 00000000..a16bcb65 --- /dev/null +++ b/Tenant Settings/Report on SharePoint Online tenant properties/description.md @@ -0,0 +1,189 @@ +Short Powershell script to export SharePoint Online tenant properties. It will display values for the following properties: + + + +AllowedDomainListForSyncClient : {} + +BccExternalSharingInvitations : False + +BccExternalSharingInvitationsList : + +BlockDownloadOfAllFilesForGuests : False + +BlockDownloadOfAllFilesOnUnmanagedDevices : False + +BlockDownloadOfViewableFilesForGuests : False + +BlockDownloadOfViewableFilesOnUnmanagedDevices : False + +BlockMacSync : False + +CommentsOnSitePagesDisabled : False + +CompatibilityRange : 15,15 + +DefaultSharingLinkType : AnonymousAccess + +DisableReportProblemDialog : False + +DisallowInfectedFileDownload : False + +DisplayStartASiteOption : True + +EnableGuestSignInAcceleration : False + +ExcludedFileExtensionsForSyncClient : {} + +ExternalServicesEnabled : True + +FileAnonymousLinkType : Edit + +FolderAnonymousLinkType : Edit + +HideSyncButtonOnODB : False + +IPAddressAllowList : + +IPAddressEnforcement : False + +IPAddressWACTokenLifetime : 15 + +IsUnmanagedSyncClientForTenantRestricted : False + +IsUnmanagedSyncClientRestrictionFlightEnabled : True + +LegacyAuthProtocolsEnabled : True + +NoAccessRedirectUrl : + +NotificationsInOneDriveForBusinessEnabled : True + +NotificationsInSharePointEnabled : True + +NotifyOwnersWhenInvitationsAccepted : True + +NotifyOwnersWhenItemsReshared : True + +ODBAccessRequests : Unspecified + +ODBMembersCanShare : Unspecified + +OfficeClientADALDisabled : False + +OneDriveForGuestsEnabled : False + +OneDriveStorageQuota : 1048576 + +OptOutOfGrooveBlock : False + +OptOutOfGrooveSoftBlock : False + +OrphanedPersonalSitesRetentionPeriod : 30 + +OwnerAnonymousNotification : True + +PermissiveBrowserFileHandlingOverride : False + +PreventExternalUsersFromResharing : False + +ProvisionSharedWithEveryoneFolder : False + +PublicCdnAllowedFileTypes : CSS,EOT,GIF,ICO,JPEG,JPG,JS,MAP,PNG,SVG,TTF,WOFF + +PublicCdnEnabled : False + +PublicCdnOrigins : {} + +RequireAcceptingAccountMatchInvitedAccount : False + +RequireAnonymousLinksExpireInDays : 0 + +ResourceQuota : 5300 + +ResourceQuotaAllocated : 1700 + +RootSiteUrl : https://cfschulung.sharepoint.com + +SearchResolveExactEmailOrUPN : False + +SharingAllowedDomainList : + +SharingBlockedDomainList : + +SharingCapability : ExternalUserAndGuestSharing + +SharingDomainRestrictionMode : None + +ShowAllUsersClaim : True + +ShowEveryoneClaim : True + +ShowEveryoneExceptExternalUsersClaim : True + +ShowNGSCDialogForSyncOnODB : True + +ShowPeoplePickerSuggestionsForGuestUsers : False + +SignInAccelerationDomain : + +SpecialCharactersStateInFileFolderNames : Allowed + +StartASiteFormUrl : + +StorageQuota : 1061376 + +StorageQuotaAllocated : 576716800 + +UseFindPeopleInPeoplePicker : False + +UsePersistentCookiesForExplorerView : False + +UserVoiceForFeedbackEnabled : True + +Context : Microsoft.SharePoint.Client.ClientContext + +Tag : + +Path : Microsoft.SharePoint.Client.ObjectPathIdentity + +ObjectVersion : + +ServerObjectIsNull : False + +TypedObject + + + + + + Expected results + + + + + + + + +### How to use? +Download and open the .ps1 file. +Add correct libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` +Enter the correct url and admin login: +```PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="arleta@TENANT.onmicrosoft.com" +$Url="https://Tenant-admin.sharepoint.com" +$CSVPath="C:\Users\Public\testTenantSettings.csv" +``` + Run the script + + + From 822675c176dac429003c505da588c61e0476433e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:33:01 +0200 Subject: [PATCH 120/129] Add files via upload --- .../Untitled103.png | Bin 0 -> 58556 bytes .../tenantProps (1).ps1 | 45 ++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 Tenant Settings/Report on SharePoint Online tenant properties/Untitled103.png create mode 100644 Tenant Settings/Report on SharePoint Online tenant properties/tenantProps (1).ps1 diff --git a/Tenant Settings/Report on SharePoint Online tenant properties/Untitled103.png b/Tenant Settings/Report on SharePoint Online tenant properties/Untitled103.png new file mode 100644 index 0000000000000000000000000000000000000000..c22bf757e1b7daf9aa0070d1d1d6de5122cdb3f1 GIT binary patch literal 58556 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

    &~qb@cgF@7hyZz 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 Date: Sat, 7 Mar 2020 15:33:28 +0200 Subject: [PATCH 121/129] Update and rename tenantProps (1).ps1 to tenantProps.ps1 --- .../{tenantProps (1).ps1 => tenantProps.ps1} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename Tenant Settings/Report on SharePoint Online tenant properties/{tenantProps (1).ps1 => tenantProps.ps1} (93%) diff --git a/Tenant Settings/Report on SharePoint Online tenant properties/tenantProps (1).ps1 b/Tenant Settings/Report on SharePoint Online tenant properties/tenantProps.ps1 similarity index 93% rename from Tenant Settings/Report on SharePoint Online tenant properties/tenantProps (1).ps1 rename to Tenant Settings/Report on SharePoint Online tenant properties/tenantProps.ps1 index a94c1a5f..c6b032bb 100644 --- a/Tenant Settings/Report on SharePoint Online tenant properties/tenantProps (1).ps1 +++ b/Tenant Settings/Report on SharePoint Online tenant properties/tenantProps.ps1 @@ -1,4 +1,4 @@ -function Get-SiteColl +function Get-SiteColl { param ( [Parameter(Mandatory=$true,Position=1)] @@ -42,4 +42,4 @@ $CSVPath="C:\Users\Public\testTenantSettings.csv" -Get-SiteColl -Username $username -Url $Url -password $AdminPassword -CSVPath $CSVPath \ No newline at end of file +Get-SiteColl -Username $username -Url $Url -password $AdminPassword -CSVPath $CSVPath From 8b791b9030a917b298b6ae23f5f93d8db4aacb32 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:35:18 +0200 Subject: [PATCH 122/129] Create description.md --- .../description.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/description.md diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/description.md b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/description.md new file mode 100644 index 00000000..3663361e --- /dev/null +++ b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/description.md @@ -0,0 +1,67 @@ +Imagine that your employee wreaked havoc in all the Sharepoint sites he had access to, randomly deleting files, items, lists. Now you, as an admin, need to restore them. Of course you can do it one by one searching through all the recycle bins, but... there is the Powershell :) + + If you need a variation of the script, just leave a comment, how you think it could be more useful. + + + + + + + + + +The script loops across all site collections' recycle bins and finds all items one user deleted and restores them all. + + + + + + + + Atfer each site the script will ask you if it should proceed to restore the items: + + + + + +If the item is DELETED BY a specified user, it is registered in a csv file (regardless of whether you decide to restore it or not): + + + +If you decide to restore the items from a given site collection (all or none, you can't select), enter "y" and the script will restore them and print out their names in green. + +If it runs into any troubles (e.g. it cannot access site) it will notify you about it in red + + + + + + + + + + + + + + + + + +Before running the script you need to open the file and enter the correct the data: + + + +PowerShell +# Paths to SDK. Please verify location on your computer. +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" +Add-PSSnapin Microsoft.SharePoint.PowerShell + +# Insert the credentials and the name of the admin site +$Username="CORPO\Administrator" +$AdminPassword=Read-Host -Prompt "Password" -AsSecureString + +$csvPath="C:\Users\Public\expo3.csv" +$userupn="i:0#.w|corpo\administrator" + From 78674ccd3fd5b1d86129ebe466850200fd0580ff Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:35:31 +0200 Subject: [PATCH 123/129] Create readme.md --- .../readme.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/readme.md diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/readme.md b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/readme.md new file mode 100644 index 00000000..3663361e --- /dev/null +++ b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/readme.md @@ -0,0 +1,67 @@ +Imagine that your employee wreaked havoc in all the Sharepoint sites he had access to, randomly deleting files, items, lists. Now you, as an admin, need to restore them. Of course you can do it one by one searching through all the recycle bins, but... there is the Powershell :) + + If you need a variation of the script, just leave a comment, how you think it could be more useful. + + + + + + + + + +The script loops across all site collections' recycle bins and finds all items one user deleted and restores them all. + + + + + + + + Atfer each site the script will ask you if it should proceed to restore the items: + + + + + +If the item is DELETED BY a specified user, it is registered in a csv file (regardless of whether you decide to restore it or not): + + + +If you decide to restore the items from a given site collection (all or none, you can't select), enter "y" and the script will restore them and print out their names in green. + +If it runs into any troubles (e.g. it cannot access site) it will notify you about it in red + + + + + + + + + + + + + + + + + +Before running the script you need to open the file and enter the correct the data: + + + +PowerShell +# Paths to SDK. Please verify location on your computer. +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" +Add-PSSnapin Microsoft.SharePoint.PowerShell + +# Insert the credentials and the name of the admin site +$Username="CORPO\Administrator" +$AdminPassword=Read-Host -Prompt "Password" -AsSecureString + +$csvPath="C:\Users\Public\expo3.csv" +$userupn="i:0#.w|corpo\administrator" + From dc5b302bf381ac34fd57b9a2b84dd2e61bea2ce5 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:36:24 +0200 Subject: [PATCH 124/129] Create tobedeleted.txt --- .../images/tobedeleted.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/tobedeleted.txt diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/tobedeleted.txt b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/tobedeleted.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/tobedeleted.txt @@ -0,0 +1 @@ + From 5adf02a347602c36ce77d79e64b366bf2350b863 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:36:44 +0200 Subject: [PATCH 125/129] Add files via upload --- .../images/Capture5.PNG | Bin 0 -> 16680 bytes .../images/Capture6.PNG | Bin 0 -> 93372 bytes .../images/RestoreBasedAllSiteCollections1.PNG | Bin 0 -> 19213 bytes .../images/RestoreBasedAllSiteCollections21.PNG | Bin 0 -> 4462 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/Capture5.PNG create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/Capture6.PNG create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/RestoreBasedAllSiteCollections1.PNG create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/RestoreBasedAllSiteCollections21.PNG diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/Capture5.PNG b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/Capture5.PNG new file mode 100644 index 0000000000000000000000000000000000000000..fd96c5f05a6ab74830b25123cf2f250eec717f9e GIT binary patch literal 16680 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 literal 0 HcmV?d00001 diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/RestoreBasedAllSiteCollections1.PNG b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/images/RestoreBasedAllSiteCollections1.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7e235dd8d6450472bceca273a59c7f88fada5cde GIT binary patch literal 19213 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 r<-a4NMh41$;YaR$K_K03r Date: Sat, 7 Mar 2020 15:37:07 +0200 Subject: [PATCH 126/129] Add files via upload --- .../GetDeletedItemsSPServer.ps1 | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/GetDeletedItemsSPServer.ps1 diff --git a/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/GetDeletedItemsSPServer.ps1 b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/GetDeletedItemsSPServer.ps1 new file mode 100644 index 00000000..74aa0aaa --- /dev/null +++ b/Site Management/Recycle Bin/SPServer/Restore all files items lists deleted by a single employee/GetDeletedItemsSPServer.ps1 @@ -0,0 +1,121 @@ +function Get-DeletedItems +{ +param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + $AdminPassword, + [Parameter(Mandatory=$true,Position=3)] + [string]$Url, + [Parameter(Mandatory=$true,Position=4)] + [string]$UserUpn, + [Parameter(Mandatory=$true)] + [string]$CSVPath +) +#$password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force + #$ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + #$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + $ctx = New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object System.Net.NetworkCredential($Username, $AdminPassword) +try +{ +$ctx.ExecuteQuery() +} catch [Net.WebException] + { + + Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red +} + + $ctx.Load($ctx.Site) + $ctx.Load($ctx.Web.Webs) + $rb=$ctx.Site.RecycleBin +$ctx.Load($rb) +try +{ +$ctx.ExecuteQuery() +Write-Host $ctx.Site.Url " Items in the recycle bin: " $rb.Count.ToString() +} catch [Net.WebException] + { + + Write-Host $ctx.Site.Url " failed" $_.Exception.Message.ToString() -ForegroundColor Red + +} + +$myarray=@() +for($i=0;$i -lt $rb.Count ;$i++) +{ + + $ctx.Load($rb[$i].Author) + $ctx.Load($rb[$i].DeletedBy) + $ctx.ExecuteQuery() + $obj = $rb[$i] + $obj | Add-Member NoteProperty AuthorLoginName($rb[$i].Author.LoginName) + $obj | Add-Member NoteProperty DeletedByLoginName($rb[$i].DeletedBy.LoginName) + $myarray+=$obj +Export-CSV -InputObject $obj -LiteralPath $csvPath -Append +} + +Write-Host "Items to process: " $myarray.Count +#Export-CSV -InputObject $myarray -LiteralPath $csvPath -Append +$ProceedToRestore=Read-Host "Proceed to restore? y/n" + + if($ProceedToRestore -eq "y") + { + for($i=0;$i -lt $myarray.Count ; $i++) + { + + if($myarray[$i].DeletedByLoginName -eq $UserUpn ) + { + $myarray[$i].Restore() + try + { + $ctx.ExecuteQuery() + Write-Host $myarray[$i].LeafName " restored" -ForegroundColor Green + } + catch [Net.WebException] + { + Write-Host $myarray[$i].LeafName " failed" $_.Message.ToString() -ForegroundColor Red + } + } + } + + } + elseif($ProceedToRestore -match "n") + { + Write-Host "Not restoring" + + } + else + { + Write-Host "Not recognized" + } + + +} + + + + +# Paths to SDK. Please verify location on your computer. +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll" +Add-PSSnapin Microsoft.SharePoint.PowerShell + +# Insert the credentials and the name of the admin site +$Username="CORPO\Administrator" +$AdminPassword=Read-Host -Prompt "Password" -AsSecureString + +$csvPath="C:\Users\Public\expo3.csv" +$userupn="i:0#.w|corpo\administrator" +#Connect-SPOService -Url $adminUrl +$sites=(Get-SPSite -Limit All).Url + +foreach($site in $sites) +{ + + Get-DeletedItems -Username $Username -AdminPassword $AdminPassword -Url $site -UserUpn $userupn -CSVPath $csvPath + +} + + + From 95139ad17a238415c6e9c85810a83ac02b9be4db Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:38:13 +0200 Subject: [PATCH 127/129] Create description.md --- .../description.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/description.md diff --git a/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/description.md b/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/description.md new file mode 100644 index 00000000..c6d6dd02 --- /dev/null +++ b/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/description.md @@ -0,0 +1,46 @@ +The script requires SharePoint Online SDK. + + + +What does it do? + +The script finds all the checked out files in a single library and checks them in. + + + +How to use? + +1. Download and open the file. + +2. Refer the paths to the SDK: + + + +PowerShell +#Paths to SDK +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" + + +3. Enter your credentials, the url of the site and the name of the list + +PowerShell +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="AwesomeMachine\administrator" +$Url="http://ThisIsSharePoint/sites/site1" +$ListTitle="Documents" + +4. Save the file, close, and run the script in Powershell. + + + +The files will have the following check-in in their version history: + + + +If you want to change the comment's content, modify the following line in the script: + +PowerShell +$file.CheckIn('Checked in automatically', 'MajorCheckIn') + From 166ed592c6de1e44df6a734ec759e978436824f7 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:38:41 +0200 Subject: [PATCH 128/129] Add files via upload --- .../Capture7.PNG | Bin 0 -> 7337 bytes ...dCheckedOutFilesandCheckThemInSPServer.ps1 | 100 ++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/Capture7.PNG create mode 100644 Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/FindCheckedOutFilesandCheckThemInSPServer.ps1 diff --git a/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/Capture7.PNG b/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/Capture7.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4e9807f596543be531f2ec974120c46e417a11bb GIT binary patch literal 7337 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 WeI;G2Y=nImV0_2yHu{#!^Zx_6{S*%X literal 0 HcmV?d00001 diff --git a/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/FindCheckedOutFilesandCheckThemInSPServer.ps1 b/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/FindCheckedOutFilesandCheckThemInSPServer.ps1 new file mode 100644 index 00000000..25eb11de --- /dev/null +++ b/Lists and Libraries Management/Checkout/Powershell/Find all checked out files in SharePoint library and check them in/FindCheckedOutFilesandCheckThemInSPServer.ps1 @@ -0,0 +1,100 @@ +function Get-SPOFolderFiles +{ +param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password, + [Parameter(Mandatory=$true,Position=4)] + [string]$ListTitle + ) + +# Create context and test the connection + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object System.Net.NetworkCredential($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + + $ll=$ctx.Web.Lists.GetByTitle($ListTitle) + $ctx.Load($ll) + $ctx.ExecuteQuery() + $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery + $spqQuery.ViewXml =""; + $itemki=$ll.GetItems($spqQuery) + $ctx.Load($itemki) + $ctx.ExecuteQuery() + + foreach($item in $itemki) + { + + Write-Host $item["FileRef"] $item.ElementType + + $file = + $ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]); + $ctx.Load($file) + $ctx.Load($file.Versions) + + $ctx.Load($file.ListItemAllFields) + $Author=$file.Author + $CheckedOutByUser=$file.CheckedOutByUser + $LockedByUser=$file.LockedByUser + $ModifiedBy=$file.ModifiedBy + $ctx.Load($Author) + $ctx.Load($CheckedOutByUser) + $ctx.Load($LockedByUser) + $ctx.Load($ModifiedBy) + $ctx.Load($file.EffectiveInformationRightsManagementSettings) + $ctx.Load($file.Properties) + try + { + $ctx.ExecuteQuery() + } + catch + {} + + if($CheckedOutByUser.LoginName -ne $null){ + Write-Host $file.Name + Write-Host $CheckedOutByUser.LoginName + $file.CheckIn('Checked in automatically', 'MajorCheckIn') + $ctx.Load($file) + try + { + $ctx.ExecuteQuery() + Write-Host $file.Name " has been checked in" -ForegroundColor DarkGreen + } + catch [Net.WebException] + { + Write-Host $_.Exception.ToString() + } + + } + + + + } + } + + + + + + + + + +#Paths to SDK +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" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="AwesomeMachine\administrator" +$Url="http://ThisIsSharePoint/sites/site1" +$ListTitle="Documents" + + + +Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle \ No newline at end of file From 4cea6e05e4945ddcdd8aa6ee9b34994dc9d1169d Mon Sep 17 00:00:00 2001 From: LocalGitty <42035526+lgitty@users.noreply.github.com> Date: Sat, 7 Mar 2020 15:39:04 +0200 Subject: [PATCH 129/129] added ODB copies --- .../Capture431.PNG | Bin 0 -> 69289 bytes .../GetVersioningSettings.ps1 | 78 ++++++++++++++++++ .../description.md | 32 +++++++ .../BccExternalSharingInvitations.ps1 | 35 ++++++++ .../Untitled099.png | Bin 0 -> 14132 bytes .../description.md | 29 +++++++ .../ODBAccessRequests.PNG | Bin 0 -> 40859 bytes .../ODBAccessRequests.ps1 | 54 ++++++++++++ .../description.md | 44 ++++++++++ .../HideSyncButtonOnODB.ps1 | 37 +++++++++ .../ODBAccessRequests.222ENG.PNG | Bin 0 -> 30630 bytes .../description.md | 34 ++++++++ .../OwnerAnonymousNotification.ps1 | 38 +++++++++ .../description.md | 28 +++++++ .../NotifyOwnersWhenItemsReshared.ps1 | 37 +++++++++ .../description.md | 28 +++++++ 16 files changed, 474 insertions(+) create mode 100644 Lists and Libraries Management/Versioning/Get versioning settings for all lists/Capture431.PNG create mode 100644 Lists and Libraries Management/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 create mode 100644 Lists and Libraries Management/Versioning/Get versioning settings for all lists/description.md create mode 100644 OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 create mode 100644 OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png create mode 100644 OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/description.md create mode 100644 OneDrive for Business/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG create mode 100644 OneDrive for Business/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 create mode 100644 OneDrive for Business/Globally set OneDrive for Business Access Requests and Members Can Share/description.md create mode 100644 OneDrive for Business/Hide OneDrive for Business Sync button using PS and CSOM/HideSyncButtonOnODB.ps1 create mode 100644 OneDrive for Business/Hide OneDrive for Business Sync button using PS and CSOM/ODBAccessRequests.222ENG.PNG create mode 100644 OneDrive for Business/Hide OneDrive for Business Sync button using PS and CSOM/description.md create mode 100644 OneDrive for Business/Notify OneDrive for Business owner if anonymous link to their content is created/OwnerAnonymousNotification.ps1 create mode 100644 OneDrive for Business/Notify OneDrive for Business owner if anonymous link to their content is created/description.md create mode 100644 OneDrive for Business/Notify OneDrive for Business owner if their content is reshared/NotifyOwnersWhenItemsReshared.ps1 create mode 100644 OneDrive for Business/Notify OneDrive for Business owner if their content is reshared/description.md diff --git a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/Capture431.PNG b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/Capture431.PNG new file mode 100644 index 0000000000000000000000000000000000000000..41f0400d96ec5eb043b374b22a90b4576138c153 GIT binary patch literal 69289 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 &2B#HRm>w>qjQEzR@aLH%9RiD#cF$AD_87ScOwc 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 Day!`# literal 0 HcmV?d00001 diff --git a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 new file mode 100644 index 00000000..9210a2d5 --- /dev/null +++ b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/GetVersioningSettings.ps1 @@ -0,0 +1,78 @@ +function getall($urelek) +{ + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password) + $ctx.Load($ctx.Web.Lists) + $ctx.Load($ctx.Web) + $ctx.Load($ctx.Web.Webs) + $ctx.ExecuteQuery() + Write-Host + Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + foreach( $list in $ctx.Web.Lists) + { + $ctx.Load($list) + + try + { + $ctx.ExecuteQuery() + $VersioningDetails = New-Object PSObject -Property @{ + 'List' = $list.Title + 'Url'= $list.ParentWebUrl + 'Require Content Approval' = $list.EnableModeration + 'Versioning Enabled' = $list.EnableVersioning + 'Major Version limit' = $list.MajorVersionLimit + 'Draft Version limit' = $list.MajorWithMinorVersionsLimit + 'Drafts visible to' = $list.DraftVersionVisibility + 'Checkout required' = $list.ForceCheckout + } + Write-Host $list.Title -ForegroundColor DarkGreen + + $Global:csv+= $VersioningDetails + } + + catch + { + #$Global:csv+= $csvvalue + Write-Host $list.Title -ForegroundColor Red + } + + + + } + + if($ctx.Web.Webs.Count -gt 0) + { + for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) + { + getall($ctx.Web.Webs[$i].Url) + } + + } + + + +} + +# Paths to SDK. Please verify location on your computer. +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" + + + +# You can also enter credentials directly: $siteUrl="https://tenant-admin.sharepoint.com" +$siteUrl = Read-Host -Prompt "Enter https://tenant-admin.sharepoint.com” +$username = Read-Host -Prompt "Enter admin's login, e.g. admin@domain.onmicrosoft.com" +$password = Read-Host -Prompt "Enter password" -AsSecureString +$credy= New-Object System.Management.Automation.PSCredential($username,$password) +Connect-SPOService -Credential $credy -Url $siteUrl + +$sitecollections=get-SPOSite +$Global:csv=@() + +foreach($sitecoll in $sitecollections) +{ + getall($sitecoll.Url) +} + +# Specify the path where the log file will be published +$Global:csv | Export-Csv -Path C:\Users\Public\Versioning5.csv diff --git a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/description.md b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/description.md new file mode 100644 index 00000000..8ac15997 --- /dev/null +++ b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/description.md @@ -0,0 +1,32 @@ +A short script that checks versioning settings for all the libraries and lists in the whole tenant. + + + +It requires SharePoint Online Management Shell and SharePoint SDK installed. + + + +It uses recurrence to find all sites in all site collections and then goes through all the lists. + +At the end, a csv file is generated with the lists' urls and settings: + + + + + +As the script runs you will see green lists' titles for which the setting was successfully retrieved and red for those which failed. + + + + + +### How to use? +Download and open the .ps1 file. +Add correct SharePoint Online SDK libraries: + + +```PowerShell +# Paths to SDK. Please verify location on your computer. +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" + diff --git a/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 b/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 new file mode 100644 index 00000000..c143e6dd --- /dev/null +++ b/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/BccExternalSharingInvitations.ps1 @@ -0,0 +1,35 @@ +function Set-SPOTenant{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, + [Parameter(Mandatory=$true,Position=3)] + $password + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + $spoTenant.BccExternalSharingInvitations=$true + $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} + $ctx.Load($spoTenant) + $ctx.ExecuteQuery() + Write-Output $spoTenant +} + +#Paths to SDK +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\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" + +Set-SPOTenant -Username $username -Url $Url -password $AdminPassword diff --git a/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png b/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/Untitled099.png new file mode 100644 index 0000000000000000000000000000000000000000..3df79a6feeb174c784008bd25df0e4d884371c2b GIT binary patch literal 14132 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

    q-Js*r=(nTnVC`^ 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�tmW-dboPxqhIY|sb@{R9XQfqxVH{cKMn~$I+ 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 literal 0 HcmV?d00001 diff --git a/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/description.md b/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/description.md new file mode 100644 index 00000000..a4152221 --- /dev/null +++ b/OneDrive for Business/Add BCC to all sharing invitations in OneDrive for Business/description.md @@ -0,0 +1,29 @@ +Short Powershell script to send bcc copies to all sharing invitations send from users' OneDrives for Business. The script uses CSOM with December 2015 update. + +## How to use? + +- Download and open the .ps1 file. +- Add correct SharePoint Online SDK libraries: + + +```PowerShell +#Paths to SDK +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\SharePoint Client Components\16.0\Assemblies\Microsoft.Online.SharePoint.Client.Tenant.dll" +``` +- Enter the correct url, and admin login. Under InvitationsList, enter the email addresses that you want to add in BCC to every sharing invitation in your users' OneDrive for Business. You will be additionally prompted for the password. Do not enter it in the file: +```PowerShell + $spoTenant.BccExternalSharingInvitationsList={arleta.wanat@SomeFakeAdresse.com} + + + +#Enter the data +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT-admin.sharepoint.com" + ``` +- Run the script + +After the setting takes place, the BCC emails will start receiving copies of the sharing invitations with Invited person's email in the "TO" field and inviter's in "CC": + + diff --git a/OneDrive for Business/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG b/OneDrive for Business/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7f7ba5260700576e891de2dae8cd1a5acb4d9ddd GIT binary patch literal 40859 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

    ))dcveQAi-W_yuEq4Pzm+Idt2yn? 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