From 5fb83b08a1d76dd1d7ea736074991625d7cd2cd2 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 23 Jan 2021 21:21:45 +0200 Subject: [PATCH 001/150] Update README.md --- .../Disable Flows in all lists on SharePoint site/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/README.md b/Power Automate/Disable Flows in all lists on SharePoint site/README.md index 20c7017b..6c4ae38a 100644 --- a/Power Automate/Disable Flows in all lists on SharePoint site/README.md +++ b/Power Automate/Disable Flows in all lists on SharePoint site/README.md @@ -2,7 +2,7 @@ Short Powershell script that disables flows for all lists and libraries in Share 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: From 067107a43ee15134e0f941bc89083fab3357a9a4 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 24 Jan 2021 11:43:58 +0200 Subject: [PATCH 002/150] Update description.md --- .../description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Versioning/Enable versions for selected sites and their subsites/description.md b/Versioning/Enable versions for selected sites and their subsites/description.md index 9c558e35..ea641af6 100644 --- a/Versioning/Enable versions for selected sites and their subsites/description.md +++ b/Versioning/Enable versions for selected sites and their subsites/description.md @@ -1 +1 @@ -. +This script enables versioning for all lists in all subsites of selected sites. From 699a1288e75a123c90e6314778c5f6b2aee255e3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 24 Jan 2021 11:44:07 +0200 Subject: [PATCH 003/150] Update description.md --- .../description.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Versioning/Enable versions for selected sites and their subsites/description.md b/Versioning/Enable versions for selected sites and their subsites/description.md index ea641af6..39a7a640 100644 --- a/Versioning/Enable versions for selected sites and their subsites/description.md +++ b/Versioning/Enable versions for selected sites and their subsites/description.md @@ -1 +1,2 @@ This script enables versioning for all lists in all subsites of selected sites. + From 7d622a1a8a8ae0ccd9adfc98ef18690d87b62f68 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 24 Jan 2021 11:44:17 +0200 Subject: [PATCH 004/150] Update README.md --- .../README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Versioning/Enable versions for selected sites and their subsites/README.md b/Versioning/Enable versions for selected sites and their subsites/README.md index 9c558e35..ea641af6 100644 --- a/Versioning/Enable versions for selected sites and their subsites/README.md +++ b/Versioning/Enable versions for selected sites and their subsites/README.md @@ -1 +1 @@ -. +This script enables versioning for all lists in all subsites of selected sites. From 8501edf787e6a789144baceb4334c6172ab8687e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 26 Jan 2021 20:37:00 +0200 Subject: [PATCH 005/150] Update GetUnusedLists.ps1 --- .../Get all lists not used since/GetUnusedLists.ps1 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Lists and Libraries Management/Get all lists not used since/GetUnusedLists.ps1 b/Lists and Libraries Management/Get all lists not used since/GetUnusedLists.ps1 index 8f93a4eb..75e512ce 100644 --- a/Lists and Libraries Management/Get all lists not used since/GetUnusedLists.ps1 +++ b/Lists and Libraries Management/Get all lists not used since/GetUnusedLists.ps1 @@ -49,9 +49,6 @@ param ( - - - #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" @@ -63,4 +60,4 @@ $olderThan = "2019-09-30" $AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString -Get-UnmodifiedLists -Username $username -Url $Url -password $AdminPassword -olderThan $olderThan \ No newline at end of file +Get-UnmodifiedLists -Username $username -Url $Url -password $AdminPassword -olderThan $olderThan From 1f4e9b8ab4de055e76be8e346fe4096257f2997e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 27 Jan 2021 20:11:58 +0200 Subject: [PATCH 006/150] Update getSPOobjectWithRestModuleLimited.psm1 --- .../getSPOobjectWithRestModuleLimited.psm1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/Getting SPO objects with REST/Module for getting SharePoint objects with Powershell (limited)/getSPOobjectWithRestModuleLimited.psm1 b/Getting SPO objects with REST/Module for getting SharePoint objects with Powershell (limited)/getSPOobjectWithRestModuleLimited.psm1 index 5b97530f..adf0f6b7 100644 --- a/Getting SPO objects with REST/Module for getting SharePoint objects with Powershell (limited)/getSPOobjectWithRestModuleLimited.psm1 +++ b/Getting SPO objects with REST/Module for getting SharePoint objects with Powershell (limited)/getSPOobjectWithRestModuleLimited.psm1 @@ -13,7 +13,6 @@ param ( ) - $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) $RestUrl=$url+"/_api/web/" if($object -ne "") @@ -22,7 +21,6 @@ param ( } - $request = [System.Net.WebRequest]::Create($RESTUrl) $request.Credentials = $Credentials $request.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f") From eff9c9e09113e979e55218910d286d76451bc46a Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 28 Jan 2021 20:56:21 +0200 Subject: [PATCH 007/150] Update AllowListDeletion.ps1 --- .../Allow list to be deleted/AllowListDeletion.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lists and Libraries Management/Allow list to be deleted/AllowListDeletion.ps1 b/Lists and Libraries Management/Allow list to be deleted/AllowListDeletion.ps1 index 973f7e0e..77302588 100644 --- a/Lists and Libraries Management/Allow list to be deleted/AllowListDeletion.ps1 +++ b/Lists and Libraries Management/Allow list to be deleted/AllowListDeletion.ps1 @@ -3,9 +3,9 @@ function Allow-SPOListDeletion { param ( - [Parameter(Mandatory=$true,Position=1)] + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $AdminPassword, [Parameter(Mandatory=$true,Position=3)] [string]$Url, From 8174ee0490b0e53ef77d41874d2ffe933deab70b Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 29 Jan 2021 18:20:58 +0200 Subject: [PATCH 008/150] Create README.md --- .../Audit folder structure to XML/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 File Management/Audit folder structure/Audit folder structure to XML/README.md diff --git a/File Management/Audit folder structure/Audit folder structure to XML/README.md b/File Management/Audit folder structure/Audit folder structure to XML/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/File Management/Audit folder structure/Audit folder structure to XML/README.md @@ -0,0 +1 @@ +. From 50d0fd20e1c202f40f89949a4099acf860e7e67b Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 29 Jan 2021 18:21:24 +0200 Subject: [PATCH 009/150] Update README.md --- .../Audit folder structure to XML/README.md | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/File Management/Audit folder structure/Audit folder structure to XML/README.md b/File Management/Audit folder structure/Audit folder structure to XML/README.md index 9c558e35..ef805f08 100644 --- a/File Management/Audit folder structure/Audit folder structure to XML/README.md +++ b/File Management/Audit folder structure/Audit folder structure to XML/README.md @@ -1 +1,37 @@ -. +SharePoint Online has a lot of options allowing you to organize your files. Some of them really amazing. Folders aren't necessarily one of them. + +But once you have used them and your users happily created unstructured, repeating, unrecoverable mess, you may want to audit them and find out if you can reorganize or save the day in some other way. + +This Powershell script allows you to investigate into your folder structure and creates an XML file as a report. + + + + + + + + + +In order to use the script you need to modify the following lines: + +```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 your data +$admin="ana@etr56.onmicrosoft.com" +$site="https://etr56.sharepoint.com" +$libraryTitle="test" +$script:XMLPath = "C:\Users\Public\foolders2.xml" +#Enter your data above! + + ``` + + + + + + From c3be7da2fcef7d04b5fae2140fb38edb1e5db37d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 30 Jan 2021 11:34:45 +0200 Subject: [PATCH 010/150] Update README.md --- File Management/Audit folder structure/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/File Management/Audit folder structure/README.md b/File Management/Audit folder structure/README.md index 9c558e35..b802014c 100644 --- a/File Management/Audit folder structure/README.md +++ b/File Management/Audit folder structure/README.md @@ -1 +1 @@ -. +Scripts showing folder structure in library From 2e5c4b8eb253399bd0da33431d0d62d0871274c2 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 31 Jan 2021 21:48:40 +0200 Subject: [PATCH 011/150] Update AuditFolderStructureToXMLServer.ps1 --- .../AuditFolderStructureToXMLServer.ps1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/File Management/Audit folder structure/Audit Sharepoint folder structure to XML/AuditFolderStructureToXMLServer.ps1 b/File Management/Audit folder structure/Audit Sharepoint folder structure to XML/AuditFolderStructureToXMLServer.ps1 index 8d156f14..159ee995 100644 --- a/File Management/Audit folder structure/Audit Sharepoint folder structure to XML/AuditFolderStructureToXMLServer.ps1 +++ b/File Management/Audit folder structure/Audit Sharepoint folder structure to XML/AuditFolderStructureToXMLServer.ps1 @@ -193,5 +193,3 @@ Write-Output $global:foldersCollection - - From ea625f62faacd44f1d8e02e94966b0359bc49400 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 1 Feb 2021 18:42:51 +0200 Subject: [PATCH 012/150] Update README.md --- Licensing/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Licensing/README.md b/Licensing/README.md index 3421a72c..966a10ea 100644 --- a/Licensing/README.md +++ b/Licensing/README.md @@ -1,3 +1 @@ -. - - +Scripts related to verifying and assigning licenses From e4ac0cf4a7917b2b5875f6b76b41bb9ce60f8b4a Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 5 Feb 2021 20:38:16 +0200 Subject: [PATCH 013/150] Update PullAllTerms.ps1 --- .../PullAllTerms.ps1 | 1 - 1 file changed, 1 deletion(-) diff --git a/Managed Metadata/Pull all groups, termsets, terms from your default SharePoint Online termstore/PullAllTerms.ps1 b/Managed Metadata/Pull all groups, termsets, terms from your default SharePoint Online termstore/PullAllTerms.ps1 index 0a05f9aa..d0f96c64 100644 --- a/Managed Metadata/Pull all groups, termsets, terms from your default SharePoint Online termstore/PullAllTerms.ps1 +++ b/Managed Metadata/Pull all groups, termsets, terms from your default SharePoint Online termstore/PullAllTerms.ps1 @@ -9,7 +9,6 @@ $password ) - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) $ctx.Load($ctx.Web) From ed0d228713000f06f891f5db8949ccf71ad7be3c Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 6 Feb 2021 22:03:17 +0200 Subject: [PATCH 014/150] Update CheckLicensesWithServiceName.ps1 --- .../CheckLicensesWithServiceName.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Licensing/Check user licenses using Service Name/CheckLicensesWithServiceName.ps1 b/Licensing/Check user licenses using Service Name/CheckLicensesWithServiceName.ps1 index f4a0ced0..a5efaf30 100644 --- a/Licensing/Check user licenses using Service Name/CheckLicensesWithServiceName.ps1 +++ b/Licensing/Check user licenses using Service Name/CheckLicensesWithServiceName.ps1 @@ -37,10 +37,10 @@ Connect-MsolService $Users = Get-MSolUser -All if($Users -ne $null){ - Write-Host "Loaded all users." + Write-Host "Loaded all users." } else{ - Write-Host "Couldn't get the users." + Write-Host "Couldn't get the users." } From b726d5180d3be55b15056c6055bca0e404e26d57 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 7 Feb 2021 12:03:35 +0200 Subject: [PATCH 015/150] Update NewTermSingle.ps1 --- .../NewTermSingle.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 index bde5cd37..13d8a982 100644 --- a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 +++ b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 @@ -58,3 +58,4 @@ $TermLanguage=1033 New-SPOTerm -Username $Username -Url $Url -password $AdminPassword -TermSetGuid $TermSetGuid -Term $Term -TermLanguage $TermLanguage + From 82e1e25367ba3373aa61f74fa98e8f745cdde9ff Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 10 Feb 2021 17:57:20 +0200 Subject: [PATCH 016/150] Update README.md --- .../README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pages/Remove comments on modern pages in entire SharePoint site/README.md b/Pages/Remove comments on modern pages in entire SharePoint site/README.md index 52c89ef3..bdad8be0 100644 --- a/Pages/Remove comments on modern pages in entire SharePoint site/README.md +++ b/Pages/Remove comments on modern pages in entire SharePoint site/README.md @@ -8,7 +8,7 @@ Its functionality is described also in an article on Social Technet: Powershell -How to use? +### How to use? 1. Download the script and open the file. 2. Modify the following lines with appropriate paths to SharePoint SDKs: From 800ff2b7512d1e58b40093e2cf1b6d0bae300ddc Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 12 Feb 2021 20:59:54 +0200 Subject: [PATCH 017/150] Create README.md --- .../Enable versioning for all lists in OneDrive sites/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md diff --git a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md @@ -0,0 +1 @@ +. From bd1d16cdd2b252c079909c74edde4052256b75c9 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Feb 2021 01:43:39 +0200 Subject: [PATCH 018/150] Update FolderCreationForAllLists.ps1 --- .../FolderCreationForAllLists.ps1 | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Lists and Libraries Management/Allow or disallow users to create folders/FolderCreationForAllLists.ps1 b/Lists and Libraries Management/Allow or disallow users to create folders/FolderCreationForAllLists.ps1 index a2ed4431..f8291ecf 100644 --- a/Lists and Libraries Management/Allow or disallow users to create folders/FolderCreationForAllLists.ps1 +++ b/Lists and Libraries Management/Allow or disallow users to create folders/FolderCreationForAllLists.ps1 @@ -15,7 +15,7 @@ function Set-SPOListsFolderCreation{ [bool]$EnableFolderCreation ) - $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() @@ -43,11 +43,6 @@ function Set-SPOListsFolderCreation{ - - - - - # 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" From 044cb73414c3740c75467d9f9c4ec026aaa622a3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 15 Feb 2021 17:46:26 +0200 Subject: [PATCH 019/150] Update GetSPOListEventReceivers.ps1 --- .../GetSPOListEventReceivers.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 158cfc2f..a946dd7d 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 @@ -18,7 +18,7 @@ Write-Host $Url " failed to connect to the site" $_.Exception.Message.ToString() -ForegroundColor Red } - $ctx.Load($ctx.Site) + $ctx.Load($ctx.Site) $ctx.Load($ctx.Web.Lists) $ctx.ExecuteQuery() Write-Host $ctx.Web.Lists.Count From 511f3927916624453f18258307a92fcc5664a571 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 17 Feb 2021 22:26:02 +0200 Subject: [PATCH 020/150] Update getSPOobjectWithRest.ps1 --- .../getSPOobjectWithRest.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Getting SPO objects with REST/Script to get SharePoint objects with REST/getSPOobjectWithRest.ps1 b/Getting SPO objects with REST/Script to get SharePoint objects with REST/getSPOobjectWithRest.ps1 index 2d545dc7..113237f3 100644 --- a/Getting SPO objects with REST/Script to get SharePoint objects with REST/getSPOobjectWithRest.ps1 +++ b/Getting SPO objects with REST/Script to get SharePoint objects with REST/getSPOobjectWithRest.ps1 @@ -8,7 +8,7 @@ param ( [Parameter(Mandatory=$true,Position=3)] [string] $url, [Parameter(Mandatory=$false,Position=4)] - [string] $object="" + [string] $object="" ) From c9c0e67a59ebc0a264d0bf93f5221b83b9e8bf99 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 23 Feb 2021 12:45:18 +0200 Subject: [PATCH 021/150] Update BulkUpdate.ps1 --- .../Bulk update all items in a list/BulkUpdate.ps1 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Items Management/Bulk update all items in a list/BulkUpdate.ps1 b/Items Management/Bulk update all items in a list/BulkUpdate.ps1 index 4e963d1c..90d67981 100644 --- a/Items Management/Bulk update all items in a list/BulkUpdate.ps1 +++ b/Items Management/Bulk update all items in a list/BulkUpdate.ps1 @@ -15,8 +15,7 @@ function Update-SPOListItem{ ) - - $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.Load($ctx.Web.Lists) @@ -29,8 +28,8 @@ function Update-SPOListItem{ $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery - $spqQuery.ViewXml =""; - $itemki=$ll.GetItems($spqQuery) + $spqQuery.ViewXml =""; + $itemki=$ll.GetItems($spqQuery) $ctx.Load($itemki) $ctx.ExecuteQuery() From 89f75473a907fbabff80aac85dd32bf88085ca97 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 24 Feb 2021 21:18:33 +0200 Subject: [PATCH 022/150] Update BulkUpdate.ps1 --- Items Management/Bulk update all items in a list/BulkUpdate.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Items Management/Bulk update all items in a list/BulkUpdate.ps1 b/Items Management/Bulk update all items in a list/BulkUpdate.ps1 index 90d67981..5105f4bc 100644 --- a/Items Management/Bulk update all items in a list/BulkUpdate.ps1 +++ b/Items Management/Bulk update all items in a list/BulkUpdate.ps1 @@ -30,7 +30,7 @@ function Update-SPOListItem{ $spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery $spqQuery.ViewXml =""; $itemki=$ll.GetItems($spqQuery) - $ctx.Load($itemki) + $ctx.Load($itemki) $ctx.ExecuteQuery() $count=$itemki.Count From e8472f2a62447834b9433f330a1eafc3fafbfe42 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 25 Feb 2021 22:06:22 +0200 Subject: [PATCH 023/150] Update NoSpoLicense.ps1 --- .../NoSpoLicense.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Licensing/Remove SharePoint Online licenses for all users/NoSpoLicense.ps1 b/Licensing/Remove SharePoint Online licenses for all users/NoSpoLicense.ps1 index 94770e1f..a7d0b95e 100644 --- a/Licensing/Remove SharePoint Online licenses for all users/NoSpoLicense.ps1 +++ b/Licensing/Remove SharePoint Online licenses for all users/NoSpoLicense.ps1 @@ -5,8 +5,7 @@ $disabledPlans +="SHAREPOINTENTERPRISE" $disabledPlans +="SHAREPOINTWAC" - -$Users = Get-MsolUser -All + $Users = Get-MsolUser -All $Plan=(Get-MsolAccountSku).AccountSkuID.Trim() From 1e275b196a680d38a5bdf3db7623ef7d3cb3eb9b Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 26 Feb 2021 20:47:25 +0200 Subject: [PATCH 024/150] Create README.md --- Site Management/Add-SPOWeb & Remove-SPOWeb/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/Add-SPOWeb & Remove-SPOWeb/README.md diff --git a/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md b/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md @@ -0,0 +1 @@ +. From 75efd49c894d127447af974b36f999fdeb543f6d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 1 Mar 2021 19:01:51 +0200 Subject: [PATCH 025/150] Create README.md --- .../README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md diff --git a/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md @@ -0,0 +1 @@ +. From 1c25bbd071052ad4352ba2ba5b6cef04d60c77d4 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 1 Mar 2021 19:02:11 +0200 Subject: [PATCH 026/150] Update description.md --- .../description.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 index f301226c..1acce137 100644 --- 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 @@ -18,7 +18,7 @@ Before you run it, you have to modify the last lines of the script! -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" @@ -28,7 +28,7 @@ $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 From 6a1419ecac04048cfaa27d59d7378d4ed4a3098f Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 1 Mar 2021 19:02:23 +0200 Subject: [PATCH 027/150] Update README.md --- .../README.md | 60 ++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md index 9c558e35..1acce137 100644 --- a/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md +++ b/Permissions/Powershell/Delete unique permissions in all items in a large list (5000+ items)/README.md @@ -1 +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 45796ea8031848c81e75c56f79270dbd626b47e2 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 3 Mar 2021 19:30:22 +0200 Subject: [PATCH 028/150] Update TaxonomyModule.psm1 --- .../TaxonomyModule.psm1 | 1 - 1 file changed, 1 deletion(-) diff --git a/Managed Metadata/Taxonomy cmdlets module to manage your term store in SharePoint Online/TaxonomyModule.psm1 b/Managed Metadata/Taxonomy cmdlets module to manage your term store in SharePoint Online/TaxonomyModule.psm1 index f25b0e44..b34ee003 100644 --- a/Managed Metadata/Taxonomy cmdlets module to manage your term store in SharePoint Online/TaxonomyModule.psm1 +++ b/Managed Metadata/Taxonomy cmdlets module to manage your term store in SharePoint Online/TaxonomyModule.psm1 @@ -381,4 +381,3 @@ $global:ctx 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.Taxonomy.dll" - From 304740498b449da0bb83c827cebccffae9949c91 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 4 Mar 2021 14:10:14 +0200 Subject: [PATCH 029/150] Update README.md --- .../README.md | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md index 9c558e35..f2978e30 100644 --- a/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md +++ b/OneDrive for Business/Enable versioning for all lists in OneDrive sites/README.md @@ -1 +1,26 @@ -. +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:** + +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. + +For some lists, enabling version may not be possible and you will receive a notification of that. + +At the end, a csv file is generated with the lists' urls and the status whether enabling was successful or not. + + + +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 efb36efda1bad0d9737e6b9542848522beed3842 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 8 Mar 2021 09:55:13 +0200 Subject: [PATCH 030/150] Create README.md --- .../README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md diff --git a/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md @@ -0,0 +1 @@ +. From 0bc8a5a51fc796cfb4416f08e9c391a0f3986dd9 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 8 Mar 2021 20:46:50 +0200 Subject: [PATCH 031/150] Update description.md --- .../description.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/description.md b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/description.md index 6f6b9918..654c63bb 100644 --- a/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/description.md +++ b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/description.md @@ -2,20 +2,22 @@ Powershell script that lists the 10 latest files or items a user has modified in -How to use? +### How to use? 1. Download the script and open the file. 2. Modify the following lines with appropriate paths to SharePoint SDKs: -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\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.Office.Client.Policy.dll" +``` + 3. Enter your data: -PowerShell +```PowerShell #Enter the data $username = "Domain\SPAdmin" $Url = "http://intranet.domain.com/sites/test" @@ -26,5 +28,5 @@ $UserDisplayName = "TestEditor" $url - the url of your site collection/subsite $listtitle - the titleof our list $UserdisplayName - the name of the user who modified the files/items - +``` The script will also create a report under "c:\users\public\TenItems.csv" with file names and last modified date: From 4fe830b4d6de61cdd4afbd9f3747d662a8a19a40 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 8 Mar 2021 20:47:01 +0200 Subject: [PATCH 032/150] Update README.md --- .../README.md | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md index 9c558e35..654c63bb 100644 --- a/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md +++ b/Items Management/Get/List 10 latest items a user has modified in SharePoint Server list/README.md @@ -1 +1,32 @@ -. +Powershell script that lists the 10 latest files or items a user has modified in a given SharePoint Server list or library. + + + +### How to use? +1. Download the script and open the file. + +2. Modify the following lines with appropriate paths to SharePoint SDKs: + + + +```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" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.Office.Client.Policy.dll" +``` + +3. Enter your data: +```PowerShell +#Enter the data +$username = "Domain\SPAdmin" +$Url = "http://intranet.domain.com/sites/test" +$ListTitle = "test" +$UserDisplayName = "TestEditor" + + $username - user who is running the script and has appropriate rights over the website and list + $url - the url of your site collection/subsite + $listtitle - the titleof our list + $UserdisplayName - the name of the user who modified the files/items +``` +The script will also create a report under "c:\users\public\TenItems.csv" with file names and last modified date: From 8bc056cbf1ba281ba6a1c7509b9ff05654e1ca0e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 9 Mar 2021 10:00:47 +0200 Subject: [PATCH 033/150] Delete testmarkdown.md --- .../testmarkdown.md | 169 ------------------ 1 file changed, 169 deletions(-) delete mode 100644 Lists and Libraries Management/testmarkdown.md diff --git a/Lists and Libraries Management/testmarkdown.md b/Lists and Libraries Management/testmarkdown.md deleted file mode 100644 index 8da9ad7b..00000000 --- a/Lists and Libraries Management/testmarkdown.md +++ /dev/null @@ -1,169 +0,0 @@ -New SharePoint Online Powershell cmdlet Get-SPOAllList which allows you to view and filter SPO list properties. - - - -There is no equivalent in Graphic User Interface (GUI) of this cmdlet - - - - - - - -Parameters - - - -The cmdlet is using the following parameters: - - [string]$Username -The string specifies admin of the site - -[string]$Url -Specifies the url of a site where you have the list - -[string]$AdminPassword, -Admin's password - -[bool]$IncludeSubsites=$false -Specifies whether the cmdlet should check for lists in the subsites as well, by default it is set to $false - -[bool]$IncludeAllProperties=$false -Specifies whether you should view all the available properties or just the Title, Url and Created Date. By the default it is set to $false. - - - - - - - - - -Requirements - - - -The following libraries (SharePoint Online SDK) are required. If those libraries are in different location on your computer, please edit the .psm1 file! - - - - - - - -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" - - - - - -Examples - - - -Get a list of all lists and libraries in a site -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com/sites/sitecollection/subsite -AdminPassword Pass - -Edit control - -
- -Get a list of all lists and libraries in a site collection and its subsites -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com/sites/sitecollection/subsite -AdminPassword Pass -IncludeSubsites $true - - - -Export to CSV a list of all lists and libraries in a site collection and its subsites -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com/sites/sitecollection/subsite -AdminPassword Pass -IncludeSubsites $true | export-CSV -path c:\csv.csv - - - - - -Get a list of all lists and libraries with all their properties -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass -IncludeAllProperties $true - - - - - - - - - -Get a specific list -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass -IncludeAllProperties $true | where {$_.Title -eq "ccc"} - - - - - - - - - -Get lists based on criteria -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass -IncludeAllProperties $true | where {$_.Hidden -eq $true} | select Title, Created - - - - - - - - - - - -Get all document libraries -The property that defines the type of list/library is called BaseTemplate. For all the ids check the MSDN List Template Types - -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass -IncludeAllProperties $true | where {$_.BaseTemplate -eq 101} | select Title, Created - - - -Get all lists and their corresponding types -The property that defines the type of list/library is called BaseTemplate. For all the ids check the MSDN List Template Types - -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass -IncludeAllProperties $true | where {$_.BaseTemplate -eq 101} | select Title, Created - - - - - - - - - - - - - - - - - -How not to use the cmdlet: - -Get-SPOList -Username user@domain.com -Url https://domain.sharepoint.com -AdminPassword Pass | where {$_.Hidden -eq $false} - - - -If you don't load the properties, you cannot search by them! - - - - - - - - - - - - - -Let me know about your experience in the Q&A section! From 9976a4d687892527be49d326685f4df92a03f31f Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 20 Mar 2021 19:02:10 +0200 Subject: [PATCH 034/150] Create README.md --- .../README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 File Management/Create sample folder and file structure for testing/README.md diff --git a/File Management/Create sample folder and file structure for testing/README.md b/File Management/Create sample folder and file structure for testing/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/File Management/Create sample folder and file structure for testing/README.md @@ -0,0 +1 @@ +. From f78d79f46c6e0acf71a067c630611a36eaf73051 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 20 Mar 2021 19:02:24 +0200 Subject: [PATCH 035/150] Update README.md --- .../README.md | 82 ++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/File Management/Create sample folder and file structure for testing/README.md b/File Management/Create sample folder and file structure for testing/README.md index 9c558e35..06bebe35 100644 --- a/File Management/Create sample folder and file structure for testing/README.md +++ b/File Management/Create sample folder and file structure for testing/README.md @@ -1 +1,81 @@ -. +A short script to create folder and file structure in a library. + + + +How to use? + +1. Download the script. + +2. Create a library. + +3. In the library create a sample file (.docx, .xlsx or .pptx) that will serve as a template for all other files. + +4. Open the script file (you can use Powershell ISE or e.g. NotePad). + +5. Edit the following lines, entering your values: + + + + + + + +```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" +$admin="t@trial890.onmicrosoft.com" +$pass=Read-Host "Enter Password: " -AsSecureString +$site="https://trial890.sharepoint.com/sites/teamsitewithlibraries" +$fileURL="/sites/TeamsiteWithLibraries/tescik2/Presentation.pptx" +$libraryTitle="tescik2" +``` + + +6. Save and run the script. During execution it will ask you for a password. + + + + + +End results + + + + + + + + + + + + + +Not enough? + +Of course you can modify or expand the script. E.g. adding more values to these arrays will create more folders: + + + +```PowerShell +$reports=@("Reports","Balance Sheets","Investments") + $report=@("Report","Balance Sheet","Investment") +``` +Feel free also to adjust the naming to fit your scenario, e.g. $reports=@("Beaches","Tropical Islands","Seas","Yachts") :) + + + + + + + +Technicalities - how did it work? + + I simply took the file and copied it under different names. All the file properties (managed metadata, lookup values, etc.) are copied as well. + + + + +

+Enjoy and please share feedback! From d536f35cfe4027884b5b8155b74626141d216935 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 21 Mar 2021 00:39:11 +0200 Subject: [PATCH 036/150] Update README.md --- .../Add-SPOWeb & Remove-SPOWeb/README.md | 121 +++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md b/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md index 9c558e35..32083f2d 100644 --- a/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md +++ b/Site Management/Add-SPOWeb & Remove-SPOWeb/README.md @@ -1 +1,120 @@ -. +2 new SharePoint Online Powershell cmdlets to help you manage sites and subsites in your SharePoint Online subscription: + +## Add-SPOWeb + +Adds a subsite to an exisiting site collection + + + +## *Parameters* + +The cmdlet is using the following parameters: + +- [string]$Username + +The string specifies admin of the site + +- [string]$ParentUrl + +Specifies the url of the parent site + +- [string]$AdminPassword, + +Admin's password + +- [string]$Title, + +Specifies the title of the site + +- [bool]$UseSamePermissionsAsParentSite=$true, + +Whether the site should use the same permissions as parent site. By default it is set to true + +- [string]$Description="", + +Site description, not mandatory + +- [Int]$Language, + +The language of the site. For English choose 1033. For other languages choose the correct [id](https://docs.microsoft.com/pl-pl/SharePoint/install/install-or-uninstall-language-packs?redirectedfrom=MSDN). + +- [string]$Url, + +Url of the new site, avoid spaces. + +- [string]$WebTemplate="STS#0" + +Template of the site, e.g. teamsite, publishing portal, enterprise wiki. By default set to Teamsite template. For other template types, check [here](https://docs.microsoft.com/pl-pl/archive/blogs/) + + + +## Remove-SPOWeb + +Removes a subsite from a site collection. + + + + + +### *Parameters* + +The cmdlet is using the following parameters: + +- [string]$Username + +The string specifies admin of the site + +- [string]$Url + +Specifies the url of the site + +- [string]$AdminPassword, + +Admin's password + +- [bool]$RemoveSubsites=$true + +If set to false, the cmdlet will ask for additional permissions if it encounters sub-sites of the site being removed. As long as one of the subsites exists, the site will never be removed. By default set to $true. + + + + + +*Examples* + + + +Add-SPOWeb -Username trial@trialtrial123.onmicrosoft.com -ParentSiteUrl https://trialtrial123.sharepoint.com -AdminPassword Passs -Title psweb -UseSamePermissionsAsParentSite $true -Description psweb1 -Language 1033 -Url psweb -WebTemplate "STS#0 + + + + + +Add-SPOWeb -Username trial@trialtrial123.onmicrosoft.com -ParentSiteUrl https://trialtrial123.sharepoint.com -AdminPassword Pass -Title psweb2 -UseSamePermissionsAsParentSite $true -Description psweb1 -Language1036 -Url psweb2 -WebTemplate "STS#0 + + + +Remove-SPOWeb -Username trial@trialtrial123.onmicrosoft.com -AdminPassword Pass -Url https://trialtrial123.sharepoint.com/psweb + + + +*Requirements* + + + +The following libraries (SharePoint Online SDK) are required. If those libraries are in different location on your computer, please edit the ```.psm1``` file! + + + + + +```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" + ``` + + + + +## Let me know about your experience in the Q&A section! From 65c6dba4304cb9c9312ebf662189f073e4ee4238 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 22 Mar 2021 18:11:22 +0200 Subject: [PATCH 037/150] Create README.md --- .../Set anonymous link access level for SPO tenant/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Tenant Settings/Set anonymous link access level for SPO tenant/README.md diff --git a/Tenant Settings/Set anonymous link access level for SPO tenant/README.md b/Tenant Settings/Set anonymous link access level for SPO tenant/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Tenant Settings/Set anonymous link access level for SPO tenant/README.md @@ -0,0 +1 @@ +. From a937bf4c270e88d18bc1af3e49f11f435d4bec76 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 25 Mar 2021 00:44:39 +0200 Subject: [PATCH 038/150] Update README.md --- .../README.md | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/OTHER/Uninstall unwanted app from your site using Powershell/README.md b/OTHER/Uninstall unwanted app from your site using Powershell/README.md index 9c558e35..89e6fb53 100644 --- a/OTHER/Uninstall unwanted app from your site using Powershell/README.md +++ b/OTHER/Uninstall unwanted app from your site using Powershell/README.md @@ -1 +1,37 @@ -. +A simple solution to uninstall an unwanted app from a Sharepoint Online site using Powershell and the app GUID. + + + +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 +# 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" + +# Insert the credentials and the name of the admin site +$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. + +6. Instead of https://tenant.sharepint.com/sites/teamsitewithlibraries enter name of the site where the unwanted app is located + +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!** From 1e11c525179873717db2c960f5a80d803cc7be00 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 26 Mar 2021 20:33:54 +0200 Subject: [PATCH 039/150] Update README.md --- Getting SPO objects with REST/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Getting SPO objects with REST/README.md b/Getting SPO objects with REST/README.md index 9c558e35..d486fe9b 100644 --- a/Getting SPO objects with REST/README.md +++ b/Getting SPO objects with REST/README.md @@ -1 +1,2 @@ -. +Module that allows you to get properties of any of SharePoint objects. + From 85189307299267a7458725488d5c9330c0037bc2 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 27 Mar 2021 15:08:57 +0200 Subject: [PATCH 040/150] Update README.md --- Getting SPO objects with REST/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Getting SPO objects with REST/README.md b/Getting SPO objects with REST/README.md index d486fe9b..5953f5be 100644 --- a/Getting SPO objects with REST/README.md +++ b/Getting SPO objects with REST/README.md @@ -1,2 +1,3 @@ Module that allows you to get properties of any of SharePoint objects. + From 6469e9bc5497838f49754a5044b561dc1c59ed91 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 1 Apr 2021 22:00:30 +0300 Subject: [PATCH 041/150] Update README.md From f38511e5e5204837c09b2bf12525fb8b9fe80fd2 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 3 Apr 2021 22:42:28 +0300 Subject: [PATCH 042/150] Update README.md --- Tenant Settings/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tenant Settings/README.md b/Tenant Settings/README.md index 9c558e35..2413d9c4 100644 --- a/Tenant Settings/README.md +++ b/Tenant Settings/README.md @@ -1 +1 @@ -. +Scripts related to tenant settings From 8c97631df9b336b77a0201309fc7c7f50a5b14c0 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 4 Apr 2021 15:43:59 +0300 Subject: [PATCH 043/150] Update README.md --- Items Management/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Items Management/README.md b/Items Management/README.md index 00ee058f..86082d1c 100644 --- a/Items Management/README.md +++ b/Items Management/README.md @@ -1,3 +1 @@ -. - - +Scripts related to updating, deleting, adding SharePoint list items From ab3a2a614375c8d61b1364aa045129adb9ef7893 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 7 Apr 2021 20:21:11 +0300 Subject: [PATCH 044/150] Create README.md --- .../Get/GetSpoListItems and GetSPOListFields/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Items Management/Get/GetSpoListItems and GetSPOListFields/README.md diff --git a/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md b/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md @@ -0,0 +1 @@ +. From 1d96be75f819a12527bb563b87c4ed30d8c3f8ae Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 10 Apr 2021 12:08:51 +0300 Subject: [PATCH 045/150] Create README.md --- Pages/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Pages/README.md diff --git a/Pages/README.md b/Pages/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Pages/README.md @@ -0,0 +1 @@ +. From de2a759194435f4fdce0a6815c76614a30e37b2f Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 12 Apr 2021 22:24:48 +0300 Subject: [PATCH 046/150] Update README.md --- .../README.md | 135 +++++++++++++++++- 1 file changed, 134 insertions(+), 1 deletion(-) diff --git a/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md b/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md index 9c558e35..18bec11b 100644 --- a/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md +++ b/Items Management/Get/GetSpoListItems and GetSPOListFields/README.md @@ -1 +1,134 @@ -. +2 new SharePoint Online Powershell cmdlets to help you view items in a SharePoint Online list: + + +

Get-SPOListItems

+ +Retrieves all items in a given list + +

Parameters

+ +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of a site where you have the list +```powershell +[string]$AdminPassword, +``` +Admin's password +```powershell +[string]$ListName +``` +ListName. To retrieve a table of list names, you can use [Get-SPOList](https://gallery.technet.microsoft.com/scriptcenter/GetSPOList-Module-to-view-cc4d3e9e) +```powershell +[bool]$IncludeAllProperties=$false +``` +Specifies whether you should view all the available properties or just the Id and Title. By the default it is set to $false. + +The equivalent in Graphic User Interface (GUI) of this cmdlet would be a list view. + +

Examples

+ ++ Get all items in an announcements list +```powershell +Get-SPOListItems -Username -Url -AdminPassword -ListName +``` + + ++ Get all items in a contacts list and their properties +```powershell +Get-SPOListItems -Username -Url -AdminPassword -ListName -IncludeAllProperties $true (example shows only one of multiple retrieved items) +``` + + +Get all items in a list and their properties and export to CSV +```powershell +Get-SPOListItems -Username -Url -AdminPassword -ListName -IncludeAllProperties $true | Export-CSV +``` + ++ Get all contacts from a contact list that belong to a specific company +```powershell +Get-SPOListItems -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Contacts list" -IncludeAllProperties $true | where {$_.Company -eq "Uogiavv"} | select Title, Company +``` + + + ++ Get all properties of a document as a list item* + + + +Get a list of all documents in a document library +```powershell +Get-SPOListItems -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Documents" -IncludeAllProperties $true | select FileLeafRef +``` + + ++ Get a list of all documents in a document library, including folders and subfolders +```powershell +Get-SPOListItems -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Documents" -IncludeAllProperties $true -Recursive | select FileLeafRef +``` + ++ Get a list of all Excel documents in a document library +```powershell +Get-SPOListItems -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Documents" -IncludeAllProperties $true | where {$_.File_x0020_Type -eq "xlsx"} |select FileLeafRef +``` + + ++ Get a list of all Excel documents in a document library and export to CSV +```powershell +Get-SPOListItems -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Documents" -IncludeAllProperties $true | where {$_.File_x0020_Type -eq "xlsx"} |select FileLeafRef | export-csv +``` +
+ +## **Get-SPOListFields** + +Retrieves all columns in a given list. This includes hidden columns and excluded from views. + +

Parameters

+ + + +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of a site where you have the list +```powershell +[string]$AdminPassword, +``` +Admin's password +```powershell +[string]$ListName +``` + +

Examples

+ ++ Get all fields of a links list +```powershell +Get-SPOListFields -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com/sites/teamsitewithlists -AdminPassword Pass -ListTitle "Links list" +``` + + +

Requirements

+ +The following libraries (SharePoint Online SDK) are required. If those libraries are in different location on your computer, please edit the ```.psm1``` file! + +```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" +``` + + + +### **Technicalities** +Get-SPOListItems is using InternalName for item properties
+18.01.15 Added recursion and -Recursive switch parameter From 147ef36787ed6f00ca973f7c729afeae952fcf67 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 18 Apr 2021 11:51:51 +0300 Subject: [PATCH 047/150] Create README.md --- Lists and Libraries Management/Views/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Lists and Libraries Management/Views/README.md diff --git a/Lists and Libraries Management/Views/README.md b/Lists and Libraries Management/Views/README.md new file mode 100644 index 00000000..c926e415 --- /dev/null +++ b/Lists and Libraries Management/Views/README.md @@ -0,0 +1 @@ +Scripts showcasing how to perform CRUD operations on list views using Powershell. From b91a677477c0051c481616f59ea4cd2812ef6bbc Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 29 Apr 2021 19:17:49 +0300 Subject: [PATCH 048/150] Update AuditFolderStructureToXML.ps1 --- .../Audit folder structure to XML/AuditFolderStructureToXML.ps1 | 1 - 1 file changed, 1 deletion(-) diff --git a/File Management/Audit folder structure/Audit folder structure to XML/AuditFolderStructureToXML.ps1 b/File Management/Audit folder structure/Audit folder structure to XML/AuditFolderStructureToXML.ps1 index 850576f4..6a00370f 100644 --- a/File Management/Audit folder structure/Audit folder structure to XML/AuditFolderStructureToXML.ps1 +++ b/File Management/Audit folder structure/Audit folder structure to XML/AuditFolderStructureToXML.ps1 @@ -2,7 +2,6 @@ { param ( - [Parameter(Mandatory=$true,Position=0)] $higherLevelFolder, [Parameter(Mandatory=$true,Position=1)] From 23ce0928bd0f21b473e6ed5891a8652ee8a801b6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 6 May 2021 23:20:32 +0300 Subject: [PATCH 049/150] Update NewSPOListItem.psm1 --- .../Create new list item using Powershell/NewSPOListItem.psm1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Items Management/Create new list item using Powershell/NewSPOListItem.psm1 b/Items Management/Create new list item using Powershell/NewSPOListItem.psm1 index b57130e4..4837bf4c 100644 --- a/Items Management/Create new list item using Powershell/NewSPOListItem.psm1 +++ b/Items Management/Create new list item using Powershell/NewSPOListItem.psm1 @@ -28,12 +28,11 @@ function New-SPOListItem{ $lici =New-Object Microsoft.SharePoint.Client.ListItemCreationInformation - $listItem = $ll.AddItem($lici) $listItem["Title"]=$ItemTitle if($AdditionalField -ne ""){ - $listItem[$AdditionalField]=$AdditionalValue + $listItem[$AdditionalField]=$AdditionalValue } $listItem.Update() From 25529b073b91641a3378d6ede49ac9cf9c56fff3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 9 May 2021 22:01:19 +0300 Subject: [PATCH 050/150] Update disableFlows.ps1 From 3fd21e8019745a100488df682c06fa079ea07612 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Jun 2021 22:43:59 +0300 Subject: [PATCH 051/150] Update RemoveComments.ps1 --- .../RemoveComments.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 b/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 index cd8a1665..0af9db09 100644 --- a/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 +++ b/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 @@ -2,9 +2,9 @@ function Remove-Comments { param ( - [Parameter(Mandatory=$true,Position=1)] + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $AdminPassword, [Parameter(Mandatory=$true,Position=3)] [string]$Url @@ -44,4 +44,4 @@ $AdminPassword=Read-Host -Prompt "Password" -AsSecureString $Url="https://etr56.sharepoint.com/sites/commsite" -Remove-Comments -Username $Username -AdminPassword $AdminPassword -Url $Url \ No newline at end of file +Remove-Comments -Username $Username -AdminPassword $AdminPassword -Url $Url From 66b81f05b1c1971321356383a9cce4c997ac04ba Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 5 Jun 2021 11:46:31 +0300 Subject: [PATCH 052/150] Create README.md --- .../Get/List 5 latest items a user has created in list/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Items Management/Get/List 5 latest items a user has created in list/README.md diff --git a/Items Management/Get/List 5 latest items a user has created in list/README.md b/Items Management/Get/List 5 latest items a user has created in list/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Items Management/Get/List 5 latest items a user has created in list/README.md @@ -0,0 +1 @@ +. From 7dade7128ea4dbae5d12a243b93e69fedb818356 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 5 Jun 2021 11:46:52 +0300 Subject: [PATCH 053/150] Update README.md --- .../README.md | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/Items Management/Get/List 5 latest items a user has created in list/README.md b/Items Management/Get/List 5 latest items a user has created in list/README.md index 9c558e35..0ec729bf 100644 --- a/Items Management/Get/List 5 latest items a user has created in list/README.md +++ b/Items Management/Get/List 5 latest items a user has created in list/README.md @@ -1 +1,33 @@ -. +Powershell script that lists 5 latest files or items a user has created in a given SharePoint Online list or library. + + + +How to use? + +1.Download the script and open the file. + +2. Modify the following lines with appropriate paths to SharePoint SDKs: + + + +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" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.Office.Client.Policy.dll" +3. Enter data about your tenant: +PowerShell +#Enter the data +$username = "ana@etr56.onmicrosoft.com" +$Url = "https://etr56.sharepoint.com/sites/testflow" +$ListTitle = "Customers" +$UserDisplayName = "FR" + $username - user who has administrative rights over the website/list + $url - url of the site collection + $listtitle - title of the list where you want to run the query + $userdisplayname - display name of the user who modified the items +The script will also create a report under "c:\users\public\FiveItems.csv" with file names and created date. + + + + From 647a62951df0f6edd94e72bbbca619818d936ac6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 5 Jun 2021 11:47:26 +0300 Subject: [PATCH 054/150] Update description.md --- .../description.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Items Management/Get/List 5 latest items a user has created in list/description.md b/Items Management/Get/List 5 latest items a user has created in list/description.md index 0ec729bf..6f14b7d3 100644 --- a/Items Management/Get/List 5 latest items a user has created in list/description.md +++ b/Items Management/Get/List 5 latest items a user has created in list/description.md @@ -2,7 +2,7 @@ Powershell script that lists 5 latest files or items a user has created in a giv -How to use? +### How to use? 1.Download the script and open the file. @@ -10,13 +10,14 @@ How to use? -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\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.Office.Client.Policy.dll" +Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.Office.Client.Policy.dll" +``` 3. Enter data about your tenant: -PowerShell +```PowerShell #Enter the data $username = "ana@etr56.onmicrosoft.com" $Url = "https://etr56.sharepoint.com/sites/testflow" @@ -26,6 +27,7 @@ $UserDisplayName = "FR" $url - url of the site collection $listtitle - title of the list where you want to run the query $userdisplayname - display name of the user who modified the items + ``` The script will also create a report under "c:\users\public\FiveItems.csv" with file names and created date. From 3e2e6e731d94b3740c39f68df4b3927b5d3f09bb Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 8 Jun 2021 18:23:59 +0300 Subject: [PATCH 055/150] Create README.md --- Items Management/Get/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Items Management/Get/README.md diff --git a/Items Management/Get/README.md b/Items Management/Get/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Items Management/Get/README.md @@ -0,0 +1 @@ +. From 7989349d2fcce4e5bb35b1347a11d9839fdaedf4 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 9 Jun 2021 18:10:00 +0300 Subject: [PATCH 056/150] Create README.md --- Items Management/Module for item management/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Items Management/Module for item management/README.md diff --git a/Items Management/Module for item management/README.md b/Items Management/Module for item management/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Items Management/Module for item management/README.md @@ -0,0 +1 @@ +. From e8313e9d9b13eb9a769cc620471a9682cd1c4d12 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 11 Jun 2021 19:49:47 +0300 Subject: [PATCH 057/150] Update README.md --- .../Module for item management/README.md | 232 +++++++++++++++++- 1 file changed, 231 insertions(+), 1 deletion(-) diff --git a/Items Management/Module for item management/README.md b/Items Management/Module for item management/README.md index 9c558e35..62713602 100644 --- a/Items Management/Module for item management/README.md +++ b/Items Management/Module for item management/README.md @@ -1 +1,231 @@ -. +5 cmdlets for item management: +
+Update-SPOListItem + +Remove-SPOListItem + +Remove-SPOListItemPermissions + +Remove-SPOListItemInheritance + +Restore-SPOListItemInheritance + + + +## **Update-SPOListItem** + +Updates a property of an item + +### *Parameters* + +The cmdlet is using the following parameters: +```powershell + [string]$Username +``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of the site +```powershell +[string]$AdminPassword, +``` +Admin's Password +```powershell +[string]$ListTitle +``` +Mandatory. Specifies list title where the item is located +```powershell +[Int]$ItemID +``` +Mandatory. Specifies item ID +```powershell +[string]$FieldToUpdate +``` +Mandatory. Specifies the name of the field to update. In order to get the internal names of the fields (more often than not they are different from column titles), you can use [Get-SPOListFields](https://gallery.technet.microsoft.com/scriptcenter/GetSpoListItems-and-a8ecd5fa) +```powershell +[string]$ValueToUpdate +``` +Mandatory. Specifies the value of the field for this item + +
+ +## *Example:* + + + ++ Change the name of an item (file in this example) + + + + ++ Update a column for all items using [Get-SPOListItems cmdlet](https://gallery.technet.microsoft.com/scriptcenter/GetSpoListItems-and-a8ecd5fa) + +(Here we will be updating Title column to be called "Title" + the item ID number + + + + +And the result: + + + +
+ +## **Remove-SPOListItem** + + Removes an item + +### *Parameters* + +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of the site +```powershell +[string]$AdminPassword, +``` +Admin's Password +```powershell +[string]$ListTitle +``` +Mandatory. Specifies list title where the item is located +```powershell +[Int]$ItemID +``` +Mandatory. Specifies item ID + +## *Example:* + + ++ Remove the item no 16 located in one of the subfolders + + + +## **Remove-SPOListItemPermissions** + + Removes all permissions for an item. Only the user running the cmdlet will have access + +### *Parameters* + +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of the site +```powershell +[string]$AdminPassword, +``` +Admin's Password +```powershell +[string]$ListTitle +``` +Mandatory. Specifies list title where the item is located +```powershell +[Int]$ItemID +``` +Mandatory. Specifies item ID + + + +## *Example:* + + + ++ Remove the permissions + +Remove-SPOListItemPermissions -Username trial@trialtrial123.onmicrosoft.com -Url https://trialtrial123.sharepoint.com -AdminPassword Pass -ListTitle chc1 -ItemID 4 + + + +
+ +## **Remove-SPOListItemInheritance** + +Stops inheriting permissions for an item + +### *Parameters* + +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of the site +```powershell +[string]$AdminPassword, +``` +Admin's Password +```powershell +[string]$ListTitle +``` +Mandatory. Specifies list title where the item is located +```powershell +[Int]$ItemID +``` +Mandatory. Specifies item ID + +
+ +## **Restore-SPOListItemInheritance** + +Deletes unique permissions for an item + +### *Parameters* + + + +The cmdlet is using the following parameters: +```powershell + [string]$Username + ``` +The string specifies admin of the site +```powershell +[string]$Url +``` +Specifies the url of the site +```powershell +[string]$AdminPassword, +``` +Admin's Password +```powershell +[string]$ListTitle +``` +Mandatory. Specifies list title where the item is located +```powershell +[Int]$ItemID +``` +Mandatory. Specifies item ID + +## *Requirements* + + + +The following libraries (SharePoint Online SDK) are required. If those libraries are in different location on your computer, please edit the .psm1 file! + + + +```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" +``` + + +

+Enjoy and please share feedback! + + + From 3c2ccc5ae7c2bc51c05e1e02c52533024aded5cb Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Nov 2021 18:20:15 +0200 Subject: [PATCH 058/150] Rename Script.ps1 to EnableVersions.ps1 --- .../{Script.ps1 => EnableVersions.ps1} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Versioning/Enable versions for selected sites and their subsites/{Script.ps1 => EnableVersions.ps1} (100%) diff --git a/Versioning/Enable versions for selected sites and their subsites/Script.ps1 b/Versioning/Enable versions for selected sites and their subsites/EnableVersions.ps1 similarity index 100% rename from Versioning/Enable versions for selected sites and their subsites/Script.ps1 rename to Versioning/Enable versions for selected sites and their subsites/EnableVersions.ps1 From 7bdb8dfa95785e0066b77a2d5a46e454a63f1c84 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Nov 2021 18:23:13 +0200 Subject: [PATCH 059/150] Update README.md --- .../README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md index f7154227..e13e67a2 100644 --- a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md +++ b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md @@ -22,8 +22,8 @@ From August 2016 and the CSOM version 16.1.5626.1200 there is an option to preve -How to use? -Download and open the .ps1 file. +

How to use?

+Download and open the .ps1 file.
Add correct SharePoint Online SDK libraries: From c1de4ade8e0b9a9607bced20ddab27b1947f2c54 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Nov 2021 18:23:52 +0200 Subject: [PATCH 060/150] remove markup --- .../README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md index e13e67a2..820d2088 100644 --- a/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md +++ b/Tenant Settings/Block download of all files for guests in SharePoint with Powershell and CSOM/README.md @@ -31,7 +31,8 @@ Add correct SharePoint Online SDK libraries: #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 From 65940b48bcdfb55f97255a4625708ac37d10723e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Nov 2021 18:49:47 +0200 Subject: [PATCH 061/150] Create Create empty node with CSOM.ps1 --- .../Create empty node (label)/Create empty node with CSOM.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 @@ -0,0 +1 @@ +. From 4b1ed10c3ff252805c228b979a62110f861e9931 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 13 Nov 2021 18:50:11 +0200 Subject: [PATCH 062/150] Update Create empty node with CSOM.ps1 --- .../Create empty node (label)/Create empty node with CSOM.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 index 9c558e35..227cbe9f 100644 --- a/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 @@ -1 +1 @@ -. +. it's coming :) From 480989b4a8299c091bc71d65826fdbed859cee17 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 21 Nov 2021 18:31:02 +0200 Subject: [PATCH 063/150] Update enableFlows.ps1 --- .../enableFlows.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 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 e2055749..d5a9a080 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,4 +1,4 @@ -function Set-SiteColl{ +function Set-SiteColl{ param ( [Parameter(Mandatory=$true,Position=1)] [string]$Username, @@ -30,7 +30,6 @@ - #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" From 65def55d24696770e9704ce3205ee570f19e84ed Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 21 Nov 2021 18:32:38 +0200 Subject: [PATCH 064/150] Update GetSPOListEventReceivers.ps1 --- .../GetSPOListEventReceivers.ps1 | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 a946dd7d..98813942 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 @@ -18,10 +18,10 @@ 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 + $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] From 8e041c529af3286c8b80ed7814a388a66f05455c Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 24 Nov 2021 19:51:08 +0200 Subject: [PATCH 065/150] Update declareAsRecordsLargeLibraries.ps1 --- .../declareAsRecordsLargeLibraries.ps1 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/File Management/Records Management/Declare files as records/declareAsRecordsLargeLibraries.ps1 b/File Management/Records Management/Declare files as records/declareAsRecordsLargeLibraries.ps1 index caaa592c..0ad10852 100644 --- a/File Management/Records Management/Declare files as records/declareAsRecordsLargeLibraries.ps1 +++ b/File Management/Records Management/Declare files as records/declareAsRecordsLargeLibraries.ps1 @@ -2,13 +2,13 @@ { param ( [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$Url, + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$Url, [Parameter(Mandatory=$true,Position=3)] - $password, + $password, [Parameter(Mandatory=$true,Position=4)] - [string]$ListTitle + [string]$ListTitle ) @@ -133,4 +133,4 @@ $ListTitle="Customers" -Declare-Record -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle \ No newline at end of file +Declare-Record -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle From 07fd14512b68f7a818dafc97b9035f6d808e3666 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 25 Nov 2021 23:38:11 +0200 Subject: [PATCH 066/150] Rename GetSPOListItems9.psm1 to GetSPOListItems.psm1 --- .../{GetSPOListItems9.psm1 => GetSPOListItems.psm1} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Items Management/Get/GetSpoListItems and GetSPOListFields/{GetSPOListItems9.psm1 => GetSPOListItems.psm1} (100%) diff --git a/Items Management/Get/GetSpoListItems and GetSPOListFields/GetSPOListItems9.psm1 b/Items Management/Get/GetSpoListItems and GetSPOListFields/GetSPOListItems.psm1 similarity index 100% rename from Items Management/Get/GetSpoListItems and GetSPOListFields/GetSPOListItems9.psm1 rename to Items Management/Get/GetSpoListItems and GetSPOListFields/GetSPOListItems.psm1 From c2f79753dae3e09f163875ec495848978e39df94 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 26 Nov 2021 19:18:33 +0200 Subject: [PATCH 067/150] Update SetUniquePermissions for all lists.ps1 --- .../SetUniquePermissions for all lists.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lists and Libraries Management/Break inheritance for all SPO lists in a site/SetUniquePermissions for all lists.ps1 b/Lists and Libraries Management/Break inheritance for all SPO lists in a site/SetUniquePermissions for all lists.ps1 index cdc14935..1c193011 100644 --- a/Lists and Libraries Management/Break inheritance for all SPO lists in a site/SetUniquePermissions for all lists.ps1 +++ b/Lists and Libraries Management/Break inheritance for all SPO lists in a site/SetUniquePermissions for all lists.ps1 @@ -12,7 +12,7 @@ function Set-SPOListBreakRoleInheritance{ - $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.Load($ctx.Web.Lists) From 95bd2c648c7664574909ae94880297172842cfe9 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 29 Nov 2021 23:01:13 +0200 Subject: [PATCH 068/150] Update NewTermSingle.ps1 --- .../NewTermSingle.ps1 | 3 --- 1 file changed, 3 deletions(-) diff --git a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 index 13d8a982..e50c1499 100644 --- a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 +++ b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 @@ -28,8 +28,6 @@ $ctx.ExecuteQuery() Write-Host "Termstore" -ForegroundColor Green - #Write-Output $termstore - Write-Host "Term1" $set=$termstore.GetTermSet($TermSetGuid) $ctx.Load($set) $ctx.Load($set.GetAllTerms()) @@ -39,7 +37,6 @@ $term=$set.CreateTerm($Term, $TermLanguage,$guid) $termstore.CommitAll() - $ctx.ExecuteQuery() } From 3c8417949dfe9d64fd85115cd13aaa04651720fa Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 1 Dec 2021 13:23:14 +0200 Subject: [PATCH 069/150] Rename desscription.md to description.md --- .../{desscription.md => description.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename OneDrive for Business/Create a report on all file versions in OneDrive for Business/{desscription.md => description.md} (100%) diff --git a/OneDrive for Business/Create a report on all file versions in OneDrive for Business/desscription.md b/OneDrive for Business/Create a report on all file versions in OneDrive for Business/description.md similarity index 100% rename from OneDrive for Business/Create a report on all file versions in OneDrive for Business/desscription.md rename to OneDrive for Business/Create a report on all file versions in OneDrive for Business/description.md From 74aa8a433f2928b5010852028b18e5802a285cec Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 3 Dec 2021 20:47:37 +0200 Subject: [PATCH 070/150] Update SetUniquePermissionsSingleList.ps1 --- .../SetUniquePermissionsSingleList.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Permissions/Powershell/Break role inheritance for a single list/SetUniquePermissionsSingleList.ps1 b/Permissions/Powershell/Break role inheritance for a single list/SetUniquePermissionsSingleList.ps1 index cc8d34a5..9285d759 100644 --- a/Permissions/Powershell/Break role inheritance for a single list/SetUniquePermissionsSingleList.ps1 +++ b/Permissions/Powershell/Break role inheritance for a single list/SetUniquePermissionsSingleList.ps1 @@ -4,7 +4,7 @@ param ( [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] [string]$Url, [Parameter(Mandatory=$true,Position=3)] $AdminPassword, @@ -48,4 +48,4 @@ $listTitle = "Customers" # do not modify the lines below $AdminPassword = Read-Host "Enter password" -AsSecureString -Set-SPOListBreakRoleInheritance -Username $username -Url $siteurl -AdminPassword $AdminPassword -ListTitle $listTitle \ No newline at end of file +Set-SPOListBreakRoleInheritance -Username $username -Url $siteurl -AdminPassword $AdminPassword -ListTitle $listTitle From b9c6546de69e54e80c20c3251b8c143c4fb01a2d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 4 Dec 2021 18:31:17 +0200 Subject: [PATCH 071/150] Update RemoveComments.ps1 --- .../RemoveComments.ps1 | 35 +++++++++---------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 b/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 index 0af9db09..161ab539 100644 --- a/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 +++ b/Pages/Remove comments on modern pages in entire SharePoint site/RemoveComments.ps1 @@ -10,26 +10,23 @@ param ( [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 - } - - $web = $ctx.Web - $ctx.Load($web) - $ctx.ExecuteQuery() - - $web.CommentsOnSitePagesDisabled = $true - $web.Update() - $ctx.ExecuteQuery() +$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 +} + +$web = $ctx.Web +$ctx.Load($web) +$ctx.ExecuteQuery() +$web.CommentsOnSitePagesDisabled = $true +$web.Update() +$ctx.ExecuteQuery() } From 313279c9253e1205d14fdb6f49941e0dffb1313f Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 4 Dec 2021 18:46:27 +0200 Subject: [PATCH 072/150] Create Create empty node with PnP.ps1 --- .../Create empty node (label)/Create empty node with PnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 new file mode 100644 index 00000000..f3229c5b --- /dev/null +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 @@ -0,0 +1 @@ +.. From 6f02721da7fa10bb68b91c48792f5518bdf2147d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 4 Dec 2021 19:00:08 +0200 Subject: [PATCH 073/150] Update Create empty node with CSOM.ps1 --- .../Create empty node with CSOM.ps1 | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 index 227cbe9f..930f52e7 100644 --- a/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with CSOM.ps1 @@ -1 +1,47 @@ -. it's coming :) +function New-SPONavigationNodeEmpty{ + 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]$NavNodeTitle + ) + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $AdminPassword) + # not necessary but I like to use it to check the connection and credentials + $ctx.ExecuteQuery() + + $ctx.Load($ctx.Web) + $ctx.ExecuteQuery() + + $quickLaunch = $Context.Web.Navigation.QuickLaunch + $Context.Load($Context.Web) + $Context.Load($quickLaunch) + $Context.ExecuteQuery() + + $NavigationNode = New-Object Microsoft.SharePoint.Client.NavigationNodeCreationInformation + $NavigationNode.Title = $NavNodeTitle + # The main trick :) For SharePoint Server use an empty string for url + $NavigationNode.Url = "http://linkless.header/" + + $Ctx.Load($quickLaunch.Add($NavigationNode)) + $Ctx.ExecuteQuery() + +} + + # 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" + +# Insert the credentials and the name of the admin site +$Username="admin@tenant.onmicrosoft.com" +$AdminPassword=Read-Host -Prompt "Password" -AsSecureString +$Url = "https://tenant.sharepoint.com/sites/mysite" +$NavNodeTitle = "Extra link to my site" + + +New-SPONavigationNodeEmpty -Username $Username -AdminPassword $AdminPassword -Url $Url -NavNodeTitle $NavNodeTitle From b4114b1129c26b3e0071f3a2f9377719873e0c74 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 4 Dec 2021 19:06:00 +0200 Subject: [PATCH 074/150] Update Create empty node with PnP.ps1 --- .../Create empty node with PnP.ps1 | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 index f3229c5b..aaa626c7 100644 --- a/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 @@ -1 +1,22 @@ -.. +$NavNodeTitle = "Header" + +Connect-PnPOnline + + +## SharePoint Online + +# add an empty link (header) to quick launch on SharePoint Online site +Add-PnPNavigationNode -Title $NavNodeTitle -Location QuickLaunch -Url "http://linkless.header/" + +# add an empty link (header) to top navigation on SharePoint Online site +Add-PnPNavigationNode -Title $NavNodeTitle -Location TopNavigationBar -Url "http://linkless.header/" + + + +## SharePoint Server 2016 + +# add an empty link (header) to quick launch on SharePoint Server 2016 site +Add-PnPNavigationNode -Title $NavNodeTitle -Location QuickLaunch -Url "" + +# add an empty link (header) to top navigation on SharePoint Server 2016 site +Add-PnPNavigationNode -Title $NavNodeTitle -Location TopNavigationBar -Url "" From 025e15640bc59449741674fb22c0bdc7c5071b08 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 4 Dec 2021 19:07:38 +0200 Subject: [PATCH 075/150] Update Create empty node with PnP.ps1 --- .../Create empty node (label)/Create empty node with PnP.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 index aaa626c7..aac4a2ff 100644 --- a/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 +++ b/Site Management/Navigation/Create empty node (label)/Create empty node with PnP.ps1 @@ -1,3 +1,4 @@ +# It's way easier than with CSOM :) $NavNodeTitle = "Header" Connect-PnPOnline From 0b41815025428923dbe65fb3c2a5fb04d9fba1a6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 5 Dec 2021 17:31:17 +0200 Subject: [PATCH 076/150] Update NoCrawlForAllLists.ps1 --- .../NoCrawlForAllLists.ps1 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawlForAllLists.ps1 b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawlForAllLists.ps1 index 403a7a96..bb22aaff 100644 --- a/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawlForAllLists.ps1 +++ b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawlForAllLists.ps1 @@ -42,11 +42,6 @@ function Set-SPOListsNoCrawl{ - - - - - # 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" From 4f8de340c66fbd77a55d58019dd50dfcbd9be6c3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 11 Dec 2021 22:11:55 +0200 Subject: [PATCH 077/150] Update ODBAccessRequests.ps1 --- .../ODBAccessRequests.ps1 | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 b/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 index 70a663da..bec2fa66 100644 --- a/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 +++ b/Tenant Settings/Globally set OneDrive for Business Access Requests and Members Can Share/ODBAccessRequests.ps1 @@ -3,7 +3,7 @@ param ( [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] [string]$Url, [Parameter(Mandatory=$true,Position=3)] $password, @@ -30,9 +30,6 @@ param ( } - - - #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" @@ -49,6 +46,4 @@ $ODBAccessRequests="Unspecified" #On, Off, Unspecified - - -Set-SiteColl -Username $username -Url $Url -password $AdminPassword -ODBMembersCanShare $ODBMembersCanShare -ODBAccessRequests $ODBAccessRequests \ No newline at end of file +Set-SiteColl -Username $username -Url $Url -password $AdminPassword -ODBMembersCanShare $ODBMembersCanShare -ODBAccessRequests $ODBAccessRequests From 8193a93a86e33fdee9c4737f7d42e9f83204a912 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 15 Dec 2021 16:18:07 +0200 Subject: [PATCH 078/150] Update README.md --- Pages/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pages/README.md b/Pages/README.md index 9c558e35..a0dbc24c 100644 --- a/Pages/README.md +++ b/Pages/README.md @@ -1 +1 @@ -. +Scripts related to SharePoint Online pages From c30191d6479a50735c8a6062b94674a5aafd4284 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 18 Dec 2021 13:29:15 +0200 Subject: [PATCH 079/150] Update NewColumnWithProperties.psm1 --- .../NewColumnWithProperties.psm1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Lists and Libraries Management/Column Management/Create new column with properties/NewColumnWithProperties.psm1 b/Lists and Libraries Management/Column Management/Create new column with properties/NewColumnWithProperties.psm1 index 12e702c0..ac0d8040 100644 --- a/Lists and Libraries Management/Column Management/Create new column with properties/NewColumnWithProperties.psm1 +++ b/Lists and Libraries Management/Column Management/Create new column with properties/NewColumnWithProperties.psm1 @@ -28,7 +28,7 @@ function New-SPOListColumnWithProperties [string]$Version="1" ) -$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.Load($ctx.Web) @@ -39,8 +39,8 @@ $password = ConvertTo-SecureString -string $AdminPassword -AsPlainText -Force $FieldOptions=[Microsoft.SharePoint.Client.AddFieldOptions]::AddToAllContentTypes $xml="" Write-Host $xml -$List.Fields.AddFieldAsXml($xml,$true,$FieldOptions) -$List.Update() + $List.Fields.AddFieldAsXml($xml,$true,$FieldOptions) + $List.Update() try{ $ctx.ExecuteQuery() @@ -51,8 +51,8 @@ $List.Update() } } -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-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 e831e72ba8b23ade1d235c5a0e7a6e74919750a4 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 21 Dec 2021 18:30:08 +0200 Subject: [PATCH 080/150] Update GetSPOObjects.psm1 --- .../Unrestricted Module/GetSPOObjects.psm1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Getting SPO objects with REST/Unrestricted Module/GetSPOObjects.psm1 b/Getting SPO objects with REST/Unrestricted Module/GetSPOObjects.psm1 index 199b322a..22e9bbe9 100644 --- a/Getting SPO objects with REST/Unrestricted Module/GetSPOObjects.psm1 +++ b/Getting SPO objects with REST/Unrestricted Module/GetSPOObjects.psm1 @@ -13,7 +13,7 @@ param ( $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) $RestUrl=$url+"/_api/" - + if($object -ne "") { $RestUrl+=$object @@ -29,6 +29,7 @@ param ( $requestStream = $response.GetResponseStream() $read = New-Object System.IO.StreamReader $requestStream $data=$read.ReadToEnd() + # Because the string contains duplicate 'ID' keys. $results = $data.ToString().Replace("ID", "_ID") | ConvertFrom-Json $objekty=$results.d.results @@ -43,7 +44,6 @@ param ( } - } From be5dc51d0318eaca9d13f454da1ae89741211052 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 26 Dec 2021 20:16:28 +0200 Subject: [PATCH 081/150] Create README.md --- .../Enable minor versions using Powershell and CSOM/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md diff --git a/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md b/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md @@ -0,0 +1 @@ +. From 1c991766c64389133bc16c933e85ccbd89a73486 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 26 Dec 2021 20:16:52 +0200 Subject: [PATCH 082/150] Update README.md --- .../README.md | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md b/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md index 9c558e35..29a817ef 100644 --- a/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md +++ b/Lists and Libraries Management/Versioning/Enable minor versions using Powershell and CSOM/README.md @@ -1 +1,51 @@ -. +Powershell script that enables major and minor versioning for SharePoint Online library. + + + + + +It requires installed [SharePoint Online SDK ](http://www.microsoft.com/en-us/download/details.aspx?id=42038) + +You have to enter the library data before running 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\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" + +# Insert the credentials and the name of the site and list +$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString +$username="trial@trialtrial125.onmicrosoft.com" +$Url="https://trialtrial125.sharepoint.com/sites/teamsitewithlibraries" +$ListTitle="Not-Empty-Document-Library" +$Versioning=$true +``` + + +Full description of the script is available in the article [Versioning and SharePoint: the Powershell perspective](https://social.technet.microsoft.com/wiki/contents/articles/30115.versioning-and-sharepoint-the-powershell-perspective-part-1.aspx) + + + + + +## Related scripts + + +[Enable minor versions for all SharePoint Online lists using Powershell](https://gallery.technet.microsoft.com/scriptcenter/Enable-minor-versions-for-431d4a7e) + +[Enable versioning for all SharePoint Online lists using Powershell](https://gallery.technet.microsoft.com/scriptcenter/Enable-versioning-for-all-ae5cfb5d) + +[Powershell Module for Managing SPO Lists](https://gallery.technet.microsoft.com/scriptcenter/Powershell-Module-for-b88bc2d9https://gallery.technet.microsoft.com/scriptcenter/Powershell-Module-for-b88bc2d9) + +[SharePoint Module for lists, items and files](https://gallery.technet.microsoft.com/scriptcenter/SharePoint-Module-for-5ecbbcf0) + +[Disable versioning for all lists in SharePoint Online tenant (C#)](https://gallery.technet.microsoft.com/scriptcenter/Disable-versioning-for-all-c8d11c71) + +[Enable versioning for all lists in SharePoint Online tenant (C#)](https://gallery.technet.microsoft.com/scriptcenter/Enable-versioning-for-all-e17ebcd0) + + + +

+Enjoy and please share feedback! From 397e64368af83f25d0d9aca8b497d15e07d7ab44 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 28 Dec 2021 09:42:03 +0200 Subject: [PATCH 083/150] Create README.md --- .../Versioning/Get versioning settings for all lists/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md diff --git a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md @@ -0,0 +1 @@ +. From 5d75ff2415f5b7cb0f1d74e86a48d6c8710d2e5b Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 7 Jan 2022 20:05:15 +0200 Subject: [PATCH 084/150] Create README.md --- .../Remove permission groups from personal files/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Permissions/Powershell/Remove permission groups from personal files/README.md diff --git a/Permissions/Powershell/Remove permission groups from personal files/README.md b/Permissions/Powershell/Remove permission groups from personal files/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Permissions/Powershell/Remove permission groups from personal files/README.md @@ -0,0 +1 @@ +. From 42cd3f5a6d131dbc96b33ceea99f1025005ee4d5 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 7 Jan 2022 20:05:46 +0200 Subject: [PATCH 085/150] Update README.md --- .../README.md | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/Permissions/Powershell/Remove permission groups from personal files/README.md b/Permissions/Powershell/Remove permission groups from personal files/README.md index 9c558e35..14965d95 100644 --- a/Permissions/Powershell/Remove permission groups from personal files/README.md +++ b/Permissions/Powershell/Remove permission groups from personal files/README.md @@ -1 +1,48 @@ -. +The script is still in testing phase. Please beware of the side effects + + + + +### Requirements + +The following script requires [SharePoint Online SDK.](https://www.microsoft.com/en-us/download/details.aspx?id=42038) + + + +### How to use? +**1.** Open the following location: + +```"c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\"``` + +If the location exists and you can see + +```Microsoft.SharePoint.Client.dll``` and + +```Microsoft.SharePoint.Client.Runtime.dll``` + +Skip the next step and go to Step 3. + + + +**2.** If the dlls are not in this location, find them, open the file with the script and correct the following paths to the locations on your computer: + +```PowerShell +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" +``` + +**3.** Run the script. You will be asked for credentials and the group name during the script execution. + +**4.** The script will display all visible groups for the site collection (every personal site) + +**5.** For the personal sites where the permission group does not exist you will receive an error: + + + + + + + + + + From 6c1600163ab94f79b21856ea71416a8c788cb732 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 7 Jan 2022 20:14:02 +0200 Subject: [PATCH 086/150] Update description.md --- .../Remove permission groups from personal files/description.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Permissions/Powershell/Remove permission groups from personal files/description.md b/Permissions/Powershell/Remove permission groups from personal files/description.md index 77bab2dc..c627f332 100644 --- a/Permissions/Powershell/Remove permission groups from personal files/description.md +++ b/Permissions/Powershell/Remove permission groups from personal files/description.md @@ -2,8 +2,6 @@ The script is still in testing phase. Please beware of the side effects - - ### Requirements The following script requires [SharePoint Online SDK.](https://www.microsoft.com/en-us/download/details.aspx?id=42038) From 91e1f5a966191941f1518dd736adf250e8d58406 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 18 Jan 2022 14:16:00 +0200 Subject: [PATCH 087/150] Update README.md --- .../README.md | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md index 9c558e35..8ac15997 100644 --- a/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md +++ b/Lists and Libraries Management/Versioning/Get versioning settings for all lists/README.md @@ -1 +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 1bfe1b212e6eea6051a1a3207186a7f3e65b8429 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 19 Jan 2022 12:08:56 +0200 Subject: [PATCH 088/150] Update GetVersioningSettings.ps1 --- .../GetVersioningSettings.ps1 | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) 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 index 9210a2d5..97c5acbb 100644 --- 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 @@ -1,33 +1,35 @@ -function getall($urelek) +function Get-All($Url) { - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($urelek) + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url) $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 + 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 + $Global:csv+= $VersioningDetails } catch @@ -37,14 +39,13 @@ } - } if($ctx.Web.Webs.Count -gt 0) { for($i=0; $i -lt $ctx.Web.Webs.Count ; $i++) { - getall($ctx.Web.Webs[$i].Url) + Get-All($ctx.Web.Webs[$i].Url) } } @@ -63,15 +64,15 @@ Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extens $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 +$credential= New-Object System.Management.Automation.PSCredential($username,$password) +Connect-SPOService -Credential $credential -Url $siteUrl $sitecollections=get-SPOSite $Global:csv=@() foreach($sitecoll in $sitecollections) { - getall($sitecoll.Url) + Get-All($sitecoll.Url) } # Specify the path where the log file will be published From 5007bcada5b0a64ad800a470d13fbf8a16e13c72 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 25 Jan 2022 18:09:41 +0200 Subject: [PATCH 089/150] Create README.md --- Content Types/Display Forms/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Content Types/Display Forms/README.md diff --git a/Content Types/Display Forms/README.md b/Content Types/Display Forms/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Content Types/Display Forms/README.md @@ -0,0 +1 @@ +. From 6b987a65c8f8224f0c8ca11286af4e76e95de409 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 26 Jan 2022 20:04:43 +0200 Subject: [PATCH 090/150] Update README.md --- Content Types/Display Forms/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content Types/Display Forms/README.md b/Content Types/Display Forms/README.md index 9c558e35..5ce829e1 100644 --- a/Content Types/Display Forms/README.md +++ b/Content Types/Display Forms/README.md @@ -1 +1 @@ -. +Scripts regarding SharePoint item display form From c7662b66b01babecb986890d12009eab8ac7bc3e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 27 Jan 2022 20:40:21 +0200 Subject: [PATCH 091/150] Create disableFlows_UsingPnP.ps1 --- .../disableFlows_UsingPnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 @@ -0,0 +1 @@ +. From a8e303ca7c07de255c62642bd47e77ce1c3da67e Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 27 Jan 2022 20:40:49 +0200 Subject: [PATCH 092/150] Create disableFlows_UsingSPOManagementShell.ps1 --- .../disableFlows_UsingSPOManagementShell.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 @@ -0,0 +1 @@ +. From 26bc7af906cd51dae28bbabadb9bba49d0bfe873 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 27 Jan 2022 20:41:23 +0200 Subject: [PATCH 093/150] Create enableFlows_usingPnP.ps1 --- .../enableFlows_usingPnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 @@ -0,0 +1 @@ +. From 3c783cc154beefbb23f3640fbef56ce2f3c80137 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 27 Jan 2022 20:41:52 +0200 Subject: [PATCH 094/150] Create enableFlows_usingSPOManagementShell.ps1 --- .../enableFlows_usingSPOManagementShell.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 @@ -0,0 +1 @@ +. From 70012be71fa1e816d6368c069dd30c1dc4989e7c Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 29 Jan 2022 22:30:20 +0200 Subject: [PATCH 095/150] Create GetFlowsPolicy_usingPnP.ps1 --- .../Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 diff --git a/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 b/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 @@ -0,0 +1 @@ +. From 52f5a1430d489aaebd5e4f61d0220f62e5aefb33 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 2 Feb 2022 18:37:50 +0200 Subject: [PATCH 096/150] Update RemovePermissionGroups.ps1 --- .../RemovePermissionGroups.ps1 | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Permissions/Powershell/Remove permission groups from personal files/RemovePermissionGroups.ps1 b/Permissions/Powershell/Remove permission groups from personal files/RemovePermissionGroups.ps1 index 1b69e1ea..7ed7d3ff 100644 --- a/Permissions/Powershell/Remove permission groups from personal files/RemovePermissionGroups.ps1 +++ b/Permissions/Powershell/Remove permission groups from personal files/RemovePermissionGroups.ps1 @@ -16,7 +16,7 @@ function Remove-SPOPermissionGroup{ $ctx.Load($ctx.Web) $ctx.ExecuteQuery() $Groups = $ctx.Web.SiteGroups - $ctx.Load($Groups) + $ctx.Load($Groups) $ctx.ExecuteQuery() foreach($group in $Groups){ @@ -28,10 +28,6 @@ function Remove-SPOPermissionGroup{ $ctx.ExecuteQuery() } - - - - # 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" From f5a0f352866d8740f2acb706c1852c69da617aab Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 4 Feb 2022 21:28:48 +0200 Subject: [PATCH 097/150] Create README.md --- Content Types/Content Types Management Setting/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Content Types/Content Types Management Setting/README.md diff --git a/Content Types/Content Types Management Setting/README.md b/Content Types/Content Types Management Setting/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Content Types/Content Types Management Setting/README.md @@ -0,0 +1 @@ +. From 3453941e34e68103cad68c4829e014244bbefb81 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 5 Feb 2022 19:13:01 +0200 Subject: [PATCH 098/150] Update README.md --- Content Types/Content Types Management Setting/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content Types/Content Types Management Setting/README.md b/Content Types/Content Types Management Setting/README.md index 9c558e35..a8613259 100644 --- a/Content Types/Content Types Management Setting/README.md +++ b/Content Types/Content Types Management Setting/README.md @@ -1 +1 @@ -. +Scripts allowing you to enable / disable content type management. From d56717c3d8153ec8a96865e6122514653ade2da4 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sun, 6 Feb 2022 21:33:43 +0200 Subject: [PATCH 099/150] Create NoCrawl_usingPnP.ps1 --- .../NoCrawl_usingPnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 diff --git a/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 @@ -0,0 +1 @@ +. From 12d0111cfa920c8fba8ca8f46e2cf49d53d8e6df Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 10 Feb 2022 20:47:22 +0200 Subject: [PATCH 100/150] Create README.md --- .../Records Management/Undeclare files as records/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 File Management/Records Management/Undeclare files as records/README.md diff --git a/File Management/Records Management/Undeclare files as records/README.md b/File Management/Records Management/Undeclare files as records/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/File Management/Records Management/Undeclare files as records/README.md @@ -0,0 +1 @@ +. From 0e613f5c64257e6584bb1b21c4178c886e2b05c3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Feb 2022 18:54:43 +0200 Subject: [PATCH 101/150] Update README.md --- .../README.md | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/README.md b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/README.md index 28d672ea..bcf24a4e 100644 --- a/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/README.md +++ b/Lists and Libraries Management/Delete unique permissions in all items in a large list (5000+ items)/README.md @@ -34,23 +34,3 @@ 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) - From e088e7fbe8686b7607b418ad7074a1e694ecf8e6 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Feb 2022 18:55:30 +0200 Subject: [PATCH 102/150] Update FindLargeLists.ps1 --- .../Get large SharePoint Online lists/FindLargeLists.ps1 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Lists and Libraries Management/Get large SharePoint Online lists/FindLargeLists.ps1 b/Lists and Libraries Management/Get large SharePoint Online lists/FindLargeLists.ps1 index 1ad2ff58..5ef32536 100644 --- a/Lists and Libraries Management/Get large SharePoint Online lists/FindLargeLists.ps1 +++ b/Lists and Libraries Management/Get large SharePoint Online lists/FindLargeLists.ps1 @@ -2,9 +2,9 @@ function Get-LargeLists { param ( - [Parameter(Mandatory=$true,Position=1)] + [Parameter(Mandatory=$true,Position=1)] [string]$Username, - [Parameter(Mandatory=$true,Position=2)] + [Parameter(Mandatory=$true,Position=2)] $AdminPassword, [Parameter(Mandatory=$true,Position=3)] [string]$Url, @@ -84,4 +84,3 @@ foreach($site in $sites) } - From 14dca804d9a3918e33ac7cd28346923d41eb5aeb Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Feb 2022 18:56:50 +0200 Subject: [PATCH 103/150] Update README.md --- .../README.md | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/User Profiles/Export all user profiles using Powershell/README.md b/User Profiles/Export all user profiles using Powershell/README.md index 9c558e35..34f308f6 100644 --- a/User Profiles/Export all user profiles using Powershell/README.md +++ b/User Profiles/Export all user profiles using Powershell/README.md @@ -1 +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=''``` + + +For more details, please consult: + +[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? + +Download, open the script and enter correct values in the following lines: + +```PowerShell +$SiteUrl="https://t321.sharepoint.com" +$AdminCenter="https://t321-admin.sharepoint.com" +$ExportTo="C:\Users\Arletka\Documents\SpUsers3.csv" + ``` + +## Expected results + + From f30eee476665cfc8fe7ec81c228d0ef3932c4a96 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Feb 2022 18:58:13 +0200 Subject: [PATCH 104/150] Update ExportSPOUserAllPropertiesWithREST.ps1 --- .../ExportSPOUserAllPropertiesWithREST.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 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 374e29b6..54db5977 100644 --- a/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 +++ b/User Profiles/Export all user profiles using Powershell/ExportSPOUserAllPropertiesWithREST.ps1 @@ -45,13 +45,13 @@ $users=Get-SPOUser -Site $SiteUrl 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 + $properties=Get-SPOUserProperty -Username $cred.UserName -Url $SiteUrl -password $cred.Password -userLogin $user.LoginName + $userObject=New-Object PSObject - foreach($prop in $props){ - $uss | Add-Member -MemberType NoteProperty -Name $prop.Key -Value $prop.Value + foreach($property in $properties){ + $userObject | Add-Member -MemberType NoteProperty -Name $prop.Key -Value $prop.Value } - $uss | Export-Csv -Path $ExportTo -Append -Force + $userObject | Export-Csv -Path $ExportTo -Append -Force } From ef2f35e91a836cab11aab381c36828a4bd5f0263 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Mar 2022 16:16:06 +0100 Subject: [PATCH 105/150] Create ListAllFlowsUsingPnP --- Power Automate/ListAllFlowsUsingPnP | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Power Automate/ListAllFlowsUsingPnP diff --git a/Power Automate/ListAllFlowsUsingPnP b/Power Automate/ListAllFlowsUsingPnP new file mode 100644 index 00000000..9c225507 --- /dev/null +++ b/Power Automate/ListAllFlowsUsingPnP @@ -0,0 +1,13 @@ + +Connect-PnPOnline + +$environment = Get-PnPPowerPlatformEnvironment + +# lists all the flows in environment +Get-PnPFlow -Environment $environment -AsAdmin + +#lists all the flows available to you as a user +Get-PnPFlow -Environment $environment + + +# I am afraid that's it :) PnP is really simple From 029351551983e30f2a789a9d51c4767bfab6dfd1 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Mar 2022 16:17:11 +0100 Subject: [PATCH 106/150] Create ListAllFlowsUsingPnP.ps1 --- Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 diff --git a/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 b/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 @@ -0,0 +1 @@ +. From c46d90fca53bc618ce8fd669983871a3d1c7ef32 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Mar 2022 16:17:42 +0100 Subject: [PATCH 107/150] Update ListAllFlowsUsingPnP.ps1 --- .../ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 b/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 index 9c558e35..9c225507 100644 --- a/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 +++ b/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 @@ -1 +1,13 @@ -. + +Connect-PnPOnline + +$environment = Get-PnPPowerPlatformEnvironment + +# lists all the flows in environment +Get-PnPFlow -Environment $environment -AsAdmin + +#lists all the flows available to you as a user +Get-PnPFlow -Environment $environment + + +# I am afraid that's it :) PnP is really simple From 0dd7e891a799fd21030f6f40698c064c8f812431 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Mar 2022 16:18:01 +0100 Subject: [PATCH 108/150] Delete ListAllFlowsUsingPnP --- Power Automate/ListAllFlowsUsingPnP | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 Power Automate/ListAllFlowsUsingPnP diff --git a/Power Automate/ListAllFlowsUsingPnP b/Power Automate/ListAllFlowsUsingPnP deleted file mode 100644 index 9c225507..00000000 --- a/Power Automate/ListAllFlowsUsingPnP +++ /dev/null @@ -1,13 +0,0 @@ - -Connect-PnPOnline - -$environment = Get-PnPPowerPlatformEnvironment - -# lists all the flows in environment -Get-PnPFlow -Environment $environment -AsAdmin - -#lists all the flows available to you as a user -Get-PnPFlow -Environment $environment - - -# I am afraid that's it :) PnP is really simple From b54a0ed9eacba8253bfb2c2c75681404a6507b6d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 1 Mar 2022 16:18:33 +0100 Subject: [PATCH 109/150] Rename Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 to Power Automate/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 --- .../ListAllFlowsUsingPnP.ps1 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Power Automate/{ListAllFlowsUsingPnP2 => ListAllFlowsUsingPnP}/ListAllFlowsUsingPnP.ps1 (100%) diff --git a/Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 b/Power Automate/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 similarity index 100% rename from Power Automate/ListAllFlowsUsingPnP2/ListAllFlowsUsingPnP.ps1 rename to Power Automate/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 From 44c88f0c6d3e47f96efcbb931481380659a1d38d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 5 Mar 2022 21:36:43 +0100 Subject: [PATCH 110/150] Update NewTermSingle.ps1 --- .../NewTermSingle.ps1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 index e50c1499..d2b91962 100644 --- a/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 +++ b/Managed Metadata/Create a new SharePoint Online taxonomy term/NewTermSingle.ps1 @@ -27,13 +27,12 @@ $ctx.Load($termstore) $ctx.ExecuteQuery() - Write-Host "Termstore" -ForegroundColor Green $set=$termstore.GetTermSet($TermSetGuid) $ctx.Load($set) $ctx.Load($set.GetAllTerms()) $ctx.ExecuteQuery() $guid = [guid]::NewGuid() - Write-Host $guid + Write-Host "Creating term with the following guid: $guid" $term=$set.CreateTerm($Term, $TermLanguage,$guid) $termstore.CommitAll() From b90fef0773b525b2759fe1b5b97b850e208df243 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Mar 2022 20:24:41 +0200 Subject: [PATCH 111/150] Update README.md --- User Profiles/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/User Profiles/README.md b/User Profiles/README.md index 9c558e35..3e9d7d9e 100644 --- a/User Profiles/README.md +++ b/User Profiles/README.md @@ -1 +1 @@ -. +Scripts related to SharePoint user profiles. From 4ebd47cf6c5da1a52be914e4d7f3a6b96b5622a3 Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Mar 2022 20:25:14 +0200 Subject: [PATCH 112/150] Create README.md --- .../Get MUI Languages for multiple users using REST/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 User Profiles/Get MUI Languages for multiple users using REST/README.md diff --git a/User Profiles/Get MUI Languages for multiple users using REST/README.md b/User Profiles/Get MUI Languages for multiple users using REST/README.md new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/User Profiles/Get MUI Languages for multiple users using REST/README.md @@ -0,0 +1 @@ +. From b88e2a372728813f0b861096d0ec1e92c338b02a Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 12 Mar 2022 20:25:52 +0200 Subject: [PATCH 113/150] Update README.md --- .../README.md | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/User Profiles/Get MUI Languages for multiple users using REST/README.md b/User Profiles/Get MUI Languages for multiple users using REST/README.md index 9c558e35..8cf1df11 100644 --- a/User Profiles/Get MUI Languages for multiple users using REST/README.md +++ b/User Profiles/Get MUI Languages for multiple users using REST/README.md @@ -1 +1,26 @@ -. +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=''``` + +For more details, please consult: + +[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? + +Download, open the script and enter correct values in the following lines: + +```PowerShell +#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") + ``` +## Expected results + + From 88054825a793cb9c082c882a89cb4be824ee1f9d Mon Sep 17 00:00:00 2001 From: PowershellScripts <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 16 Mar 2022 19:38:51 +0100 Subject: [PATCH 114/150] Update NoCrawl_usingPnP.ps1 --- .../NoCrawl_usingPnP.ps1 | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 index 9c558e35..e1f1d60e 100644 --- a/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 +++ b/Lists and Libraries Management/Change search setting for all lists in a site/NoCrawl_usingPnP.ps1 @@ -1 +1,31 @@ -. +# fill this bit out + +$ListTitle = "MyList" +$SiteUrl = "https://contoso.sharepoint.com" + + +# do not touch this bit below + +$credential = Get-Credential + +Connect-PNPOnline -Url $SiteUrl -Credentials $credential + +$list = Get-PnPList -Identity $ListTitle + +if(-not $list){ + Write-Host "List does not exist" + return; +} + + +$list.NoCrawl = $true +$list.Update() + +try{ + $list.context.ExecuteQuery() + Invoke-PnPQuery + Write-Host "Updated nicely" +} +catch{ + Write-Host "No luck this time" +} From 3668d7f93e7030beac2aa1b756dd2c90ed08e70d Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 16 Mar 2022 20:00:02 +0100 Subject: [PATCH 115/150] Update enableFlows_usingPnP.ps1 --- .../enableFlows_usingPnP.ps1 | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 index 9c558e35..3e822e96 100644 --- a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 +++ b/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 @@ -1 +1,12 @@ -. +# Get the environment. You can't do anything without it in Flow (Power Automate) cmdlets + +$environment = Get-PnPFlowEnvironment + + +# Find your flow if you don't know the id by heart +# $Flow = Get-PnPFlow -Environment $environment +# or +# $Flow = Get-PnPFlow -Environment $environment | Where {$_.properties.DisplayName -match "MyFlow"} + + +Enable-PnPFlow -Environment $environment -Identity $Flow.Id From a324782309384569b9e11c10857064ba32970a5c Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 16 Mar 2022 20:00:53 +0100 Subject: [PATCH 116/150] Create DisableFlowUsingPnP.ps1 --- .../Disable Single Flow/DisableFlowUsingPnP.ps1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 diff --git a/Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 b/Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 new file mode 100644 index 00000000..4def94af --- /dev/null +++ b/Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 @@ -0,0 +1,12 @@ +# Get the environment. You can't do anything without it in Flow (Power Automate) cmdlets + +$environment = Get-PnPFlowEnvironment + + +# Find your flow if you don't know the id by heart +# $Flow = Get-PnPFlow -Environment $environment +# or +# $Flow = Get-PnPFlow -Environment $environment | Where {$_.properties.DisplayName -match "MyFlow"} + + +Disable-PnPFlow -Environment $environment -Identity $Flow.Id From e7735bc33d2023e8486a770f4fad63857d36166d Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 16 Mar 2022 20:01:30 +0100 Subject: [PATCH 117/150] Create readme.md --- Power Automate/Disable Single Flow/readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/Disable Single Flow/readme.md diff --git a/Power Automate/Disable Single Flow/readme.md b/Power Automate/Disable Single Flow/readme.md new file mode 100644 index 00000000..1ef78e0a --- /dev/null +++ b/Power Automate/Disable Single Flow/readme.md @@ -0,0 +1 @@ +Disables single flow. From b64be6eabbbf69a558ccead9c702db6746d0e321 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 13 Apr 2022 21:12:21 +0200 Subject: [PATCH 118/150] Update README.md --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index bcb6872c..b3ac0cf1 100644 --- a/README.md +++ b/README.md @@ -22,18 +22,18 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Content Type Management Setting +     Content Type Management Setting
- * Allow content type management for all lists in a site - * Allow content type management for all lists in site collection - * Set content type management setting for a single list + *      Allow content type management for all lists in a site + *      Allow content type management for all lists in site collection + *      Set content type management setting for a single list
- +
-Create +    Create
@@ -49,7 +49,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Display Forms +    Display Forms
@@ -61,7 +61,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Get +    Get
@@ -91,7 +91,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Set +    Set
@@ -106,7 +106,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Modules +    Modules
@@ -115,7 +115,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Remove +    Remove
@@ -125,7 +125,7 @@ Their new home at GitHub is still relatively recent, so if you find any issues,
-Set +    Set
From 16295a75bca85032a614581046881977eed2fc63 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:12:18 +0200 Subject: [PATCH 119/150] Create FindSitesWithOutstandingAccessRequests.md --- .../FindSitesWithOutstandingAccessRequests.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/Access Requests/SitesWithOutstandingAccessRequests/FindSitesWithOutstandingAccessRequests.md diff --git a/Site Management/Access Requests/SitesWithOutstandingAccessRequests/FindSitesWithOutstandingAccessRequests.md b/Site Management/Access Requests/SitesWithOutstandingAccessRequests/FindSitesWithOutstandingAccessRequests.md new file mode 100644 index 00000000..d44e18fb --- /dev/null +++ b/Site Management/Access Requests/SitesWithOutstandingAccessRequests/FindSitesWithOutstandingAccessRequests.md @@ -0,0 +1 @@ +start From 82e0b9d80c611e0523f2ab5290912086570b7062 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:15:10 +0200 Subject: [PATCH 120/150] Create readme.md --- .../SitesWithOutstandingAccessRequests/readme.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Site Management/Access Requests/SitesWithOutstandingAccessRequests/readme.md diff --git a/Site Management/Access Requests/SitesWithOutstandingAccessRequests/readme.md b/Site Management/Access Requests/SitesWithOutstandingAccessRequests/readme.md new file mode 100644 index 00000000..cfe427d2 --- /dev/null +++ b/Site Management/Access Requests/SitesWithOutstandingAccessRequests/readme.md @@ -0,0 +1,10 @@ +Find sites with ignored access requests, older than XXX. + + + +How does the script work? + +The script loops through your sites, verifies access requests, and compares their dates. + + + From b59f387aec8ca60d276d5df752cabc3fdff17f20 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 09:18:13 +0200 Subject: [PATCH 121/150] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b3ac0cf1..c17360c2 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,13 @@ Over 200 SharePoint Online scripts * bulk updates * provide automation script samples to address IT Pros' frequently asked IT tasks. -The scripts use Powershell, C#, CSOM and REST. They include copies of existing scripts from Technet Gallery years 2013-2019 - the transfer is in progress and the documentation/description is still taking shape. +The scripts use Powershell, C#, CSOM and REST. They include copies of existing scripts from Technet Gallery years 2013-2019. Most of them were tested and verified by hundreds and thousands of users of [Technet Gallery, where you can still find these scripts](https://gallery.technet.microsoft.com/office/site/search?f%5B0%5D.Type=User&f%5B0%5D.Value=Arleta%20Wanat) Their new home at GitHub is still relatively recent, so if you find any issues, please do let me know. I appreciate every comment and every feedback. + +Have an idea for a useful script? Can't find it here? Open an issue and let's discuss it together! ## Full index From ac8bf31136196106c21adbf6540eb0ca1853abae Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 10:24:37 +0200 Subject: [PATCH 122/150] Create GetPoliciesAppliedToYourSitesUsingPnP.ps1 --- .../GetPoliciesAppliedToYourSitesUsingPnP.ps1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 diff --git a/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 b/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 new file mode 100644 index 00000000..b61b146b --- /dev/null +++ b/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 @@ -0,0 +1,10 @@ +# Site Policy is a special content type, inheriting from Content Type called "Project Policy" with Content Type ID 0x010085EC78BE64F9478AAE3ED069093B9963 + +#url of the site where you want to check your policies +$SiteUrl = "https://EXAMPLE.sharepoint.com/sites/EXAMPLE + +# Connect to your tenant +$creds = Get-Credential +Connect-PnPOnline -Url $SiteUrl -Credentials $creds + +$Sites From 21d42cf75863b71b6ff39e990332541fb5c94858 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:22:33 +0200 Subject: [PATCH 123/150] Update GetPoliciesAppliedToYourSitesUsingPnP.ps1 --- .../GetPoliciesAppliedToYourSitesUsingPnP.ps1 | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 b/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 index b61b146b..e108a8bd 100644 --- a/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 +++ b/Site Management/Site Policy/GetPoliciesAppliedToYourSitesUsingPnP.ps1 @@ -1,5 +1,8 @@ # Site Policy is a special content type, inheriting from Content Type called "Project Policy" with Content Type ID 0x010085EC78BE64F9478AAE3ED069093B9963 + + +### For a single site #url of the site where you want to check your policies $SiteUrl = "https://EXAMPLE.sharepoint.com/sites/EXAMPLE @@ -7,4 +10,23 @@ $SiteUrl = "https://EXAMPLE.sharepoint.com/sites/EXAMPLE $creds = Get-Credential Connect-PnPOnline -Url $SiteUrl -Credentials $creds -$Sites +Get-PnPContentType | where {($_.Id -match "0x010085EC78BE64F9478AAE3ED069093B9963") -and ($_.Id -notlike "0x010085EC78BE64F9478AAE3ED069093B9963")} | select name, id + + + + + + + + + +### For multiple sites with export to csv + +$ContentTypeID = "0x010085EC78BE64F9478AAE3ED069093B9963" +$Sites = Get-PnPTenantSite + +foreach($site in $sites){ + Connect-PnPOnline -Url $site.Url -Credentials $creds; + Get-PnPContentType ` + | where {($_.Id -match $ContentTypeID) -and ($_.Id -notlike $ContentTypeID)} ` + | Export-CSV -Path C:\Users\ArletaWanat\Exportedpolicies.csv -Append} From b03ccad40a286b0b3b4fa7516b71f92a399483fc Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:35:21 +0200 Subject: [PATCH 124/150] Create RemovePolicyFromSingleSiteUsingPnP.ps1 --- .../RemovePolicyFromSingleSiteUsingPnP.ps1 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Site Management/Site Policy/RemovePolicy/RemovePolicyFromSingleSiteUsingPnP.ps1 diff --git a/Site Management/Site Policy/RemovePolicy/RemovePolicyFromSingleSiteUsingPnP.ps1 b/Site Management/Site Policy/RemovePolicy/RemovePolicyFromSingleSiteUsingPnP.ps1 new file mode 100644 index 00000000..30cbe5b5 --- /dev/null +++ b/Site Management/Site Policy/RemovePolicy/RemovePolicyFromSingleSiteUsingPnP.ps1 @@ -0,0 +1,12 @@ +Connect-PnPOnline + +# First see the policies currently applied on the site + +$ContentTypeID = "0x010085EC78BE64F9478AAE3ED069093B9963" +Get-PnPContentType | where {($_.Id -match $ContentTypeID) -and ($_.Id -notlike $ContentTypeID)} | select name, id + +# Remove the policy you want + +Remove-PnPContentType -Identity NAMEOFYOURPOLICYFROMPREVIOUSCMDLET + +# That's it :) From eaee7e98c1dd922cfcd81913fae06069a618b320 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:40:37 +0200 Subject: [PATCH 125/150] Create readme.md --- Site Management/Site Policy/RemovePolicy/readme.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Site Management/Site Policy/RemovePolicy/readme.md diff --git a/Site Management/Site Policy/RemovePolicy/readme.md b/Site Management/Site Policy/RemovePolicy/readme.md new file mode 100644 index 00000000..603721d6 --- /dev/null +++ b/Site Management/Site Policy/RemovePolicy/readme.md @@ -0,0 +1,3 @@ +These scripts remove a policy from site policies. + +You should see the results under /_layouts/15/ProjectPolicies.aspx From b4e4200e4574b5d1e0852439c3f108aa68f0d928 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:40:54 +0200 Subject: [PATCH 126/150] Add files via upload --- .../Site Policy/RemovePolicy/sitepolicies2.PNG | Bin 0 -> 86845 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Site Management/Site Policy/RemovePolicy/sitepolicies2.PNG diff --git a/Site Management/Site Policy/RemovePolicy/sitepolicies2.PNG b/Site Management/Site Policy/RemovePolicy/sitepolicies2.PNG new file mode 100644 index 0000000000000000000000000000000000000000..73f56401b721283cfd25aa6b3575b66142820592 GIT binary patch literal 86845 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

fg|e5FJ` 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 Date: Mon, 18 Apr 2022 14:46:12 +0200 Subject: [PATCH 127/150] Update readme.md --- Site Management/Site Policy/RemovePolicy/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Site Management/Site Policy/RemovePolicy/readme.md b/Site Management/Site Policy/RemovePolicy/readme.md index 603721d6..9720dcd8 100644 --- a/Site Management/Site Policy/RemovePolicy/readme.md +++ b/Site Management/Site Policy/RemovePolicy/readme.md @@ -1,3 +1,4 @@ These scripts remove a policy from site policies. You should see the results under /_layouts/15/ProjectPolicies.aspx +![Image](./RemovePolicy/sitepolicies2.png) From ef88871e22621569525855d5b2d351c7f7fe79c9 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:47:35 +0200 Subject: [PATCH 128/150] Update readme.md --- Site Management/Site Policy/RemovePolicy/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Site Management/Site Policy/RemovePolicy/readme.md b/Site Management/Site Policy/RemovePolicy/readme.md index 9720dcd8..f191c250 100644 --- a/Site Management/Site Policy/RemovePolicy/readme.md +++ b/Site Management/Site Policy/RemovePolicy/readme.md @@ -1,4 +1,5 @@ These scripts remove a policy from site policies. You should see the results under /_layouts/15/ProjectPolicies.aspx -![Image](./RemovePolicy/sitepolicies2.png) +
+![Image](./sitepolicies2.PNG) From 167ac1af136381d35499021c2a7bf7f6709cff60 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:50:03 +0200 Subject: [PATCH 129/150] Add files via upload --- .../RemovePolicy/sitepolicies2-1.png | Bin 0 -> 42053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Site Management/Site Policy/RemovePolicy/sitepolicies2-1.png diff --git a/Site Management/Site Policy/RemovePolicy/sitepolicies2-1.png b/Site Management/Site Policy/RemovePolicy/sitepolicies2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b36dd2d2ecc824e06c2c8ad104641baafc261c9d GIT binary patch literal 42053 zcmcG#Ra9I-w>3&|C%8+32Mr-ObRbwDxO;%$?oEJ(pg|jgYvTlWmk#a@!L@_CYs269 z&OPTo+_!(6+hgp}yY@rvU8`!XHRoJa;i}4Vc-U0fNJvO{pX8<0k&s?oA}%9Lbi|XZ zUPu|@?}eMXoD@>U7|kA{fodhGB#DGn4aRviMMJc)oaOc0kdT;m|6MNv&CzI(kn$Ek zNlR)1jSn-?0yMSA`=8&5*4DP;aIUb+dxdBJ!u-X6j`?#c8v8W^b53vo*BeYs`AB&$ z#IM^^x&0(V)G5hyAyIbuAeb7%T+-%K`*}3!5ml zb9pIV)IYZ#j?D)nhfL1|O3jbWEj9L!j`nn32K$GJGNW<09TDyOPCOK=?U#)J?4I%Q zSD9XUlNTKCoD|WE>wR985bE&4*^K>M9M9J%)b;i;@?^b$!^4SQaVX-M&a{BY11>gZ zh#y8jJG%NF=hWsz;)nd_-=}I&2~dIZ(C=iHmv04mx+6qG+Q8r!1`S88AB$`G0M&k! zPm4{@;p`qLvxzt2Z>Sn%s$~fE)AqHM>04PvuY{ zPUGrN0DqA$rr!kfy2jUn!zA*GkX(^F&N?3Ac zoMRCA`O@hY*LKkXd>JxcEfBg`zwgj(n@K<@j zDmU=QASN?0!u>KfBs@rr#(Kgz+6STzplVmeh(e(5illBgvdr0inAu?IT@;99V zM}BX{$5ZsrCbi@ptE=oullIkL#`o`TeP*?303h5jd|GMEwxAMer%zx|Z0BYOq=O

Power Automate
-* Disable Flows in all lists on SharePoint site -* Enable Microsoft Flow in all lists on SharePoint modern site -* Get FlowsPolicy using REST API +* Enable or Disable + * Disable Flows in all lists on SharePoint site + * Enable Microsoft Flow in all lists on SharePoint modern site +* Get + * Get Flows Created By XX + * Get Flows Older Or Newer Than XX + * Get Most Prolific Flow Creators + * Get FlowsPolicy using REST API

}NVT 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 z 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 Yh{5FGMB#j&4RE(9$g0XzN*M+G2USn0>;M1& literal 0 HcmV?d00001 From 2947fe5af1c26f77929296076d335b916a70ddd1 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:50:52 +0200 Subject: [PATCH 130/150] Update readme.md --- Site Management/Site Policy/RemovePolicy/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Site Management/Site Policy/RemovePolicy/readme.md b/Site Management/Site Policy/RemovePolicy/readme.md index f191c250..053cd65c 100644 --- a/Site Management/Site Policy/RemovePolicy/readme.md +++ b/Site Management/Site Policy/RemovePolicy/readme.md @@ -2,4 +2,4 @@ These scripts remove a policy from site policies. You should see the results under /_layouts/15/ProjectPolicies.aspx
-![Image](./sitepolicies2.PNG) +![Image](./sitepolicies2-1.png) From 1a8cb5d39c4ced3f80cb3778b01685347f474c12 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 19 Apr 2022 20:03:26 +0200 Subject: [PATCH 131/150] Update GetFlowsPolicy_usingPnP.ps1 --- .../GetFlowsPolicy_usingPnP.ps1 | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 b/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 index 9c558e35..33b65928 100644 --- a/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 +++ b/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 @@ -1 +1,22 @@ -. +# PnP scripts are quite simple so you may find a few examples below + + + + +# Get all flows + +$environment = Get-PnPPowerPlatformEnvironment +Get-PnPFlow -Environment $environment + + + +# Get all flows and their properties + +Get-PnPFlow -Environment $environment | select -expandProperty Properties + + + +# Get flow actions + +$props = Get-PnPFlow -Identity 5e904726-e098-41f4-a96a-066652abc113 -Environment $environment | select -ExpandProperty Properties +$props.DefinitionSummary.Actions From 07a2123e0b852e858838244694a3e793b34569ea Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 19 Apr 2022 20:19:44 +0200 Subject: [PATCH 132/150] Create readme.md --- Power Automate/ListAllFlowsUsingPnP/readme.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Power Automate/ListAllFlowsUsingPnP/readme.md diff --git a/Power Automate/ListAllFlowsUsingPnP/readme.md b/Power Automate/ListAllFlowsUsingPnP/readme.md new file mode 100644 index 00000000..e2e58304 --- /dev/null +++ b/Power Automate/ListAllFlowsUsingPnP/readme.md @@ -0,0 +1,3 @@ +This script gets flows from an environment. + +One example shows flows available to a user. The other shows all flows. From 3eeb4bd2fbd377e3241c047c6fbb77f89045cf3e Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 19 Apr 2022 20:21:08 +0200 Subject: [PATCH 133/150] Create GetFlowsOlderOrNewerThan.ps1 --- Power Automate/GetFlowsOlderOrNewerThan.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/GetFlowsOlderOrNewerThan.ps1 diff --git a/Power Automate/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlowsOlderOrNewerThan.ps1 new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Power Automate/GetFlowsOlderOrNewerThan.ps1 @@ -0,0 +1 @@ + From 3ca7193b55afa1d3d46aa4f05b58525e14565665 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 19 Apr 2022 20:21:43 +0200 Subject: [PATCH 134/150] Create GetFlowsOlderOrNewerThan.ps1 --- Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 diff --git a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 @@ -0,0 +1 @@ + From e584718cda4d79f85194a595fb144c624ca4f203 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Tue, 19 Apr 2022 21:50:45 +0200 Subject: [PATCH 135/150] Update GetFlowsOlderOrNewerThan.ps1 --- Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 index 8b137891..f50100f0 100644 --- a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 +++ b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 @@ -1 +1,11 @@ +This file contains a few examples. Each of them can be executed separately + + +# Get flows older than a year + +Connect-PnPOnline +$environment = Get-PnPPowerPlatformEnvironment +$CompareDate = (Get-Date).AddYears(-1) + +Get-PnPFlow -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -gt $CompareDate} From 236f72748f9e24289380f01d5cf1198e3681e2da Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 20 Apr 2022 10:39:57 +0200 Subject: [PATCH 136/150] Delete GetFlowsOlderOrNewerThan.ps1 --- Power Automate/GetFlowsOlderOrNewerThan.ps1 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Power Automate/GetFlowsOlderOrNewerThan.ps1 diff --git a/Power Automate/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlowsOlderOrNewerThan.ps1 deleted file mode 100644 index 8b137891..00000000 --- a/Power Automate/GetFlowsOlderOrNewerThan.ps1 +++ /dev/null @@ -1 +0,0 @@ - From eeb2360b35fc2cbd573a2037c7725dc12ff84494 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 20 Apr 2022 10:52:02 +0200 Subject: [PATCH 137/150] Update GetFlowsOlderOrNewerThan.ps1 --- .../GetFlows/GetFlowsOlderOrNewerThan.ps1 | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 index f50100f0..734e0532 100644 --- a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 +++ b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 @@ -1,4 +1,5 @@ -This file contains a few examples. Each of them can be executed separately +# This file contains a few examples. Each of them can be executed separately. +# Mind that when talking about flows older or newer than, the created time is considered, not the last time they were in use. @@ -8,4 +9,36 @@ Connect-PnPOnline $environment = Get-PnPPowerPlatformEnvironment $CompareDate = (Get-Date).AddYears(-1) -Get-PnPFlow -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -gt $CompareDate} +Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -lt $CompareDate} + + + + + + +# Export flows older than a year to a CSV file + +$CSVPath = "D:\HereIStoreMyData\Flows.csv" + +Connect-PnPOnline +$environment = Get-PnPPowerPlatformEnvironment +$CompareDate = (Get-Date).AddYears(-1) + +Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -lt $CompareDate} | Export-CSV -Path $CSVPath -Append + + + + + + +# Export flows newer than a month to a CSV file + +$CSVPath = "D:\HereIStoreMyData\Flows.csv" + +Connect-PnPOnline +$environment = Get-PnPPowerPlatformEnvironment +$CompareDate = (Get-Date).AddMonths(-1) + +Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -gt $CompareDate} | Export-CSV -Path $CSVPath -Append + + From 897b2831b6963d681ad27801e52142011d36b9f6 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Wed, 27 Apr 2022 12:20:56 +0200 Subject: [PATCH 138/150] Create readme.md --- Site Management/readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Site Management/readme.md diff --git a/Site Management/readme.md b/Site Management/readme.md new file mode 100644 index 00000000..32a4f9b2 --- /dev/null +++ b/Site Management/readme.md @@ -0,0 +1 @@ +Scripts related to Site Management From b03b2f6f8d2eac4237588f03a90ca02d18f43d7e Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Fri, 29 Apr 2022 18:42:04 +0200 Subject: [PATCH 139/150] Create readme.md --- Power Automate/GetFlows/readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/GetFlows/readme.md diff --git a/Power Automate/GetFlows/readme.md b/Power Automate/GetFlows/readme.md new file mode 100644 index 00000000..dca6270e --- /dev/null +++ b/Power Automate/GetFlows/readme.md @@ -0,0 +1 @@ +Scripts helping you to list and search your flows. From fbbd5d2cc848afeb5cfe8956303ddc006017733c Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Sat, 30 Apr 2022 01:20:31 +0200 Subject: [PATCH 140/150] Create GetFlowsCreatedBy.ps1 --- Power Automate/GetFlows/GetFlowsCreatedBy.ps1 | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/GetFlows/GetFlowsCreatedBy.ps1 diff --git a/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 b/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 @@ -0,0 +1 @@ +. From de9e9907bb9f26ab887d334050553020dfd21e7a Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 2 May 2022 08:52:19 +0200 Subject: [PATCH 141/150] Update GetFlowsOlderOrNewerThan.ps1 --- .../GetFlows/GetFlowsOlderOrNewerThan.ps1 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 index 734e0532..4b6641ba 100644 --- a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 +++ b/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 @@ -42,3 +42,16 @@ $CompareDate = (Get-Date).AddMonths(-1) Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.CreatedTime -gt $CompareDate} | Export-CSV -Path $CSVPath -Append + + + + +# Get flows last modified more than a year ago + +Connect-PnPOnline +$environment = Get-PnPPowerPlatformEnvironment +$CompareDate = (Get-Date).AddYears(-1) + +Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties | Where-Object {$_.LastModifiedTime -lt $CompareDate} + + From 40e6bc589120e700dd64fd2a87d6e7e3d4086954 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Mon, 2 May 2022 09:38:08 +0200 Subject: [PATCH 142/150] Update GetFlowsCreatedBy.ps1 --- Power Automate/GetFlows/GetFlowsCreatedBy.ps1 | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 b/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 index 9c558e35..9bd340d9 100644 --- a/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 +++ b/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 @@ -1 +1,34 @@ -. +# This file contains a few examples. Each of them can be executed separately. + +## +# Get the id of the user who created your flows +## + +Connect-PnPOnline +$environment = Get-PnPPowerPlatformEnvironment + +$Flows = Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties +$Flows.Creator + + + + +## +# Get the name of the user who created your flows +## + +# enter credentials for your admin user +$creds = Get-Credential + +# connect to get your Power Platform Environment +Connect-PnPOnline -Credential $creds +$environment = Get-PnPPowerPlatformEnvironment +$Flows = Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties + +# Connect to get your user details +Connect-MsolService -Credential $creds + +foreach($flow in $flows){ + Get-MsolUser | where {$_.ObjectId -eq $flow.Creator.ObjectId} +} + From 3f8b11b7fbd12f53de5c80451adff63571d05758 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 15:15:49 +0200 Subject: [PATCH 143/150] Create GetMostProlificFlowCreators.ps1 --- .../GetFlows/GetMostProlificFlowCreators.ps1 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 diff --git a/Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 b/Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 new file mode 100644 index 00000000..6cb004ff --- /dev/null +++ b/Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 @@ -0,0 +1,19 @@ +$CSVPath = yourcsvpath.csv +$credentials = Get-Credential + +Connect-PnPOnline -Credential $Credentials +Connect-Msolservice -Credential $Credentials + +$environment = Get-PnPPowerPlatformEnvironment +$flowprops = Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties +$MostProlific = $flowprops.Creator | Group-Object -Property ObjectId | sort + +$MostProlific | Foreach-Object { + $FlowCreator = $_ + $user = Get-MsolUser | where { + $_.ObjectId -eq $FlowCreator.Name + } + $user | Add-Member -MemberType NoteProperty -Name NoOfFlow -Value $FlowCreator.Count + Write-Host $user.DisplayName $user.NoOfFlow + $user | Export-CSV -Path $CsvPath -Append +} From f72227333e4d9101314e2b6eba6393317f5703a4 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 15:20:42 +0200 Subject: [PATCH 144/150] Create ini.txt --- Power Automate/GetFlows/Images/ini.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Power Automate/GetFlows/Images/ini.txt diff --git a/Power Automate/GetFlows/Images/ini.txt b/Power Automate/GetFlows/Images/ini.txt new file mode 100644 index 00000000..9c558e35 --- /dev/null +++ b/Power Automate/GetFlows/Images/ini.txt @@ -0,0 +1 @@ +. From 92f72807511f36ca31b04dd2e5bdfd58fb3aacd5 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 15:21:01 +0200 Subject: [PATCH 145/150] Add files via upload --- Power Automate/GetFlows/Images/flow21.PNG | Bin 0 -> 29604 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Power Automate/GetFlows/Images/flow21.PNG diff --git a/Power Automate/GetFlows/Images/flow21.PNG b/Power Automate/GetFlows/Images/flow21.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b915717211016ddccfee00785bf1a7958674588f GIT binary patch literal 29604 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℞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 apL!%9ia)RJ4QJ`WJ*lZ^DHkf41^q8XEYbe} literal 0 HcmV?d00001 From ad11d28d103e4b09c64ec8bed170299f8411a283 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 15:34:06 +0200 Subject: [PATCH 146/150] Create GetMostProlificFlowCreators.md --- .../GetFlows/GetMostProlificFlowCreators.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Power Automate/GetFlows/GetMostProlificFlowCreators.md diff --git a/Power Automate/GetFlows/GetMostProlificFlowCreators.md b/Power Automate/GetFlows/GetMostProlificFlowCreators.md new file mode 100644 index 00000000..fd239df2 --- /dev/null +++ b/Power Automate/GetFlows/GetMostProlificFlowCreators.md @@ -0,0 +1,31 @@ + +Enter the path to CSV file, if you want to export your results. I recommend it, if you expect a lot of users +``` +$CSVPath = yourcsvpath.csv +$credentials = Get-Credential +``` + +Connect to services. PnP is needed for flow details. Msol for user details. +``` +Connect-PnPOnline -Credential $Credentials +Connect-Msolservice -Credential $Credentials + +$environment = Get-PnPPowerPlatformEnvironment +$flowprops = Get-PnPFlow -AsAdmin -Environment $environment | select -ExpandProperty Properties +$MostProlific = $flowprops.Creator | Group-Object -Property ObjectId | sort + +$MostProlific | Foreach-Object { + $FlowCreator = $_ + $user = Get-MsolUser | where { + $_.ObjectId -eq $FlowCreator.Name + } + $user | Add-Member -MemberType NoteProperty -Name NoOfFlow -Value $FlowCreator.Count + Write-Host $user.DisplayName $user.NoOfFlow + $user | Export-CSV -Path $CsvPath -Append +} +``` + +## Results +![flow21](https://user-images.githubusercontent.com/42035526/166932049-69a86296-d907-4913-b415-fd0e26fcb1d3.png) + + From 33546676b692c66def381fccd37c3682ff8a008e Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 16:13:35 +0200 Subject: [PATCH 147/150] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c17360c2..1fb812e1 100644 --- a/README.md +++ b/README.md @@ -408,9 +408,14 @@ Have an idea for a useful script? Can't find it here? Open an issue and let's di

From 16f5e273b6c4846f62f1c0897ee5fb7711693dc7 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 16:14:28 +0200 Subject: [PATCH 148/150] Update README.md --- Power Automate/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Power Automate/README.md b/Power Automate/README.md index a8de0c7c..0a1fb65f 100644 --- a/Power Automate/README.md +++ b/Power Automate/README.md @@ -1 +1,15 @@ Scripts to modify Power Automate settings + +In this section: + + + +* Enable or Disable + * Disable Flows in all lists on SharePoint site + * Enable Microsoft Flow in all lists on SharePoint modern site +* Get + * Get Flows Created By XX + * Get Flows Older Or Newer Than XX + * Get Most Prolific Flow Creators + * Get FlowsPolicy using REST API + From e593fb014d6f1243b2db3e8fab478b3341b7fde4 Mon Sep 17 00:00:00 2001 From: Arleta Wanat <42035526+PowershellScripts@users.noreply.github.com> Date: Thu, 5 May 2022 16:28:19 +0200 Subject: [PATCH 149/150] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1fb812e1..5c492bec 100644 --- a/README.md +++ b/README.md @@ -446,7 +446,6 @@ Have an idea for a useful script? Can't find it here? Open an issue and let's di * Add or Remove Site Features from all Personal Sites * Get all features from a site * Get all features from a site collection - * Get all quick launch nodes * Get all site collections and their subsites * Get all time zones from a site * Get SharePoint Online Site Properties @@ -454,6 +453,9 @@ Have an idea for a useful script? Can't find it here? Open an issue and let's di * Get unused SharePoint Online webs * Get-SPOWeb to retrieve subsites and their properties * Modify Web Inherited Permissions + * Navigation + * Create empty node (label) + * Get all quick launch nodes * Powershell cmdlet Set-SpoWeb to manage site properties * Recycle Bin * Detailed report on all recycle bin items across all site collections From 0d4f08d04a062e48eafa27afc47a3f840b686c7c Mon Sep 17 00:00:00 2001 From: Arleta Date: Thu, 5 May 2022 16:30:59 +0200 Subject: [PATCH 150/150] 0-01: updated structure --- .../NoFlows.PNG | Bin .../NoFlows3.PNG | Bin .../README.md | 0 .../disableFlows.ps1 | 94 +++--- .../disableFlows_UsingPnP.ps1 | 0 .../disableFlows_UsingSPOManagementShell.ps1 | 0 .../DisableFlowUsingPnP.ps1 | 0 .../Disable Single Flow/readme.md | 0 .../NoFlows.PNG | Bin .../NoFlows3.PNG | Bin .../README.md | 0 .../description.md | 0 .../enableFlows.ps1 | 96 +++--- .../enableFlows_usingPnP.ps1 | 0 .../enableFlows_usingSPOManagementShell.ps1 | 0 .../GetFlowsPolicy_usingPnP.ps1 | 0 .../Get FlowsPolicy using REST API/README.md | 0 .../description.md | 0 .../flowsWithRest.ps1 | 94 +++--- .../images/NoFlows.PNG | Bin .../images/NoFlows3.PNG | Bin .../images/NoFlows4.PNG | Bin .../images/txt.txt | 0 .../{ => Get}/GetFlows/GetFlowsCreatedBy.ps1 | 0 .../GetFlows/GetFlowsOlderOrNewerThan.ps1 | 0 .../GetFlows/GetMostProlificFlowCreators.md | 0 .../GetFlows/GetMostProlificFlowCreators.ps1 | 0 .../{ => Get}/GetFlows/Images/flow21.PNG | Bin .../{ => Get}/GetFlows/Images/ini.txt | 0 Power Automate/{ => Get}/GetFlows/readme.md | 0 .../ListAllFlowsUsingPnP.ps1 | 0 .../{ => Get}/ListAllFlowsUsingPnP/readme.md | 0 .../GetAllQuickLaunchNodesWithChildren.ps1 | 288 +++++++++--------- .../Przechwytywanie52.PNG | Bin .../Przechwytywanie53.PNG | Bin .../Get all quick launch nodes/description.md | 0 36 files changed, 286 insertions(+), 286 deletions(-) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/NoFlows.PNG (100%) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/NoFlows3.PNG (100%) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/README.md (100%) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/disableFlows.ps1 (97%) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 (100%) rename Power Automate/{ => Enable or Disable}/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 (100%) rename Power Automate/{ => Enable or Disable}/Disable Single Flow/DisableFlowUsingPnP.ps1 (100%) rename Power Automate/{ => Enable or Disable}/Disable Single Flow/readme.md (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows.PNG (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows3.PNG (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/README.md (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/description.md (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 (97%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 (100%) rename Power Automate/{ => Enable or Disable}/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/README.md (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/description.md (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/flowsWithRest.ps1 (97%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/images/NoFlows.PNG (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/images/NoFlows3.PNG (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/images/NoFlows4.PNG (100%) rename Power Automate/{ => Get}/Get FlowsPolicy using REST API/images/txt.txt (100%) rename Power Automate/{ => Get}/GetFlows/GetFlowsCreatedBy.ps1 (100%) rename Power Automate/{ => Get}/GetFlows/GetFlowsOlderOrNewerThan.ps1 (100%) rename Power Automate/{ => Get}/GetFlows/GetMostProlificFlowCreators.md (100%) rename Power Automate/{ => Get}/GetFlows/GetMostProlificFlowCreators.ps1 (100%) rename Power Automate/{ => Get}/GetFlows/Images/flow21.PNG (100%) rename Power Automate/{ => Get}/GetFlows/Images/ini.txt (100%) rename Power Automate/{ => Get}/GetFlows/readme.md (100%) rename Power Automate/{ => Get}/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 (100%) rename Power Automate/{ => Get}/ListAllFlowsUsingPnP/readme.md (100%) rename Site Management/{ => Navigation}/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 (96%) rename Site Management/{ => Navigation}/Get all quick launch nodes/Przechwytywanie52.PNG (100%) rename Site Management/{ => Navigation}/Get all quick launch nodes/Przechwytywanie53.PNG (100%) rename Site Management/{ => Navigation}/Get all quick launch nodes/description.md (100%) diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/NoFlows.PNG b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/NoFlows.PNG similarity index 100% rename from Power Automate/Disable Flows in all lists on SharePoint site/NoFlows.PNG rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/NoFlows.PNG diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/NoFlows3.PNG b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/NoFlows3.PNG similarity index 100% rename from Power Automate/Disable Flows in all lists on SharePoint site/NoFlows3.PNG rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/NoFlows3.PNG diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/README.md b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/README.md similarity index 100% rename from Power Automate/Disable Flows in all lists on SharePoint site/README.md rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/README.md diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows.ps1 similarity index 97% rename from Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows.ps1 index dd7dcfda..adc4cf29 100644 --- a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows.ps1 +++ b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows.ps1 @@ -1,47 +1,47 @@ -function Disable-Flows{ - param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$AdminUrl, - [Parameter(Mandatory=$true,Position=3)] - $Password, - [Parameter(Mandatory=$true,Position=4)] - $Url - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $siteColl=$spoTenant.GetSitePropertiesByUrl($Url, $true) - - $ctx.Load($siteColl) - $ctx.ExecuteQuery() - - $siteColl.DisableFlows= [Microsoft.Online.SharePoint.TenantAdministration.FlowsPolicy]::Disabled - $siteColl.Update() - $ctx.ExecuteQuery() - Write-Output $siteColl - -} - - -#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" -add-type -Path "C:\Program Files\SharePoint Client Components\16.0\Assemblies\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" -$AdminUrl="https://TENANT-admin.sharepoint.com" -$Url="https://TENANT.sharepoint.com" - - - -Disable-Flows -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url +function Disable-Flows{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$AdminUrl, + [Parameter(Mandatory=$true,Position=3)] + $Password, + [Parameter(Mandatory=$true,Position=4)] + $Url + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $siteColl=$spoTenant.GetSitePropertiesByUrl($Url, $true) + + $ctx.Load($siteColl) + $ctx.ExecuteQuery() + + $siteColl.DisableFlows= [Microsoft.Online.SharePoint.TenantAdministration.FlowsPolicy]::Disabled + $siteColl.Update() + $ctx.ExecuteQuery() + Write-Output $siteColl + +} + + +#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" +add-type -Path "C:\Program Files\SharePoint Client Components\16.0\Assemblies\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" +$AdminUrl="https://TENANT-admin.sharepoint.com" +$Url="https://TENANT.sharepoint.com" + + + +Disable-Flows -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 similarity index 100% rename from Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows_UsingPnP.ps1 diff --git a/Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 b/Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 similarity index 100% rename from Power Automate/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 rename to Power Automate/Enable or Disable/Disable Flows in all lists on SharePoint site/disableFlows_UsingSPOManagementShell.ps1 diff --git a/Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 b/Power Automate/Enable or Disable/Disable Single Flow/DisableFlowUsingPnP.ps1 similarity index 100% rename from Power Automate/Disable Single Flow/DisableFlowUsingPnP.ps1 rename to Power Automate/Enable or Disable/Disable Single Flow/DisableFlowUsingPnP.ps1 diff --git a/Power Automate/Disable Single Flow/readme.md b/Power Automate/Enable or Disable/Disable Single Flow/readme.md similarity index 100% rename from Power Automate/Disable Single Flow/readme.md rename to Power Automate/Enable or Disable/Disable Single Flow/readme.md diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows.PNG b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows.PNG similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows.PNG rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows.PNG diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows3.PNG b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows3.PNG similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows3.PNG rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/NoFlows3.PNG diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/README.md b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/README.md similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/README.md rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/README.md diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/description.md similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/description.md rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/description.md diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 similarity index 97% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 index d5a9a080..72965f66 100644 --- a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 +++ b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows.ps1 @@ -1,48 +1,48 @@ -function Set-SiteColl{ - param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - [string]$AdminUrl, - [Parameter(Mandatory=$true,Position=3)] - $Password, - [Parameter(Mandatory=$true,Position=4)] - $Url - ) - - - $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) - $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) - $ctx.ExecuteQuery() - - $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) - $siteColl=$spoTenant.GetSitePropertiesByUrl($Url, $true) - - $ctx.Load($siteColl) - $ctx.ExecuteQuery() - - $siteColl.DisableFlows= [Microsoft.Online.SharePoint.TenantAdministration.FlowsPolicy]::NotDisabled - $siteColl.Update() - $ctx.ExecuteQuery() - Write-Output $siteColl - -} - - - -#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" -add-type -Path "C:\Program Files\SharePoint Client Components\16.0\Assemblies\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" -$AdminUrl="https://TENANT-admin.sharepoint.com" -$Url="https://TENANT.sharepoint.com" - - - -Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url +function Set-SiteColl{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + [string]$AdminUrl, + [Parameter(Mandatory=$true,Position=3)] + $Password, + [Parameter(Mandatory=$true,Position=4)] + $Url + ) + + + $ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Adminurl) + $ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password) + $ctx.ExecuteQuery() + + $spoTenant= New-Object Microsoft.Online.SharePoint.TenantAdministration.Tenant($Ctx) + $siteColl=$spoTenant.GetSitePropertiesByUrl($Url, $true) + + $ctx.Load($siteColl) + $ctx.ExecuteQuery() + + $siteColl.DisableFlows= [Microsoft.Online.SharePoint.TenantAdministration.FlowsPolicy]::NotDisabled + $siteColl.Update() + $ctx.ExecuteQuery() + Write-Output $siteColl + +} + + + +#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" +add-type -Path "C:\Program Files\SharePoint Client Components\16.0\Assemblies\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" +$AdminUrl="https://TENANT-admin.sharepoint.com" +$Url="https://TENANT.sharepoint.com" + + + +Set-SiteColl -Username $username -AdminUrl $AdminUrl -password $AdminPassword -Url $Url diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingPnP.ps1 diff --git a/Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 b/Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 similarity index 100% rename from Power Automate/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 rename to Power Automate/Enable or Disable/Enable Microsoft Flow in all lists on SharePoint modern site/enableFlows_usingSPOManagementShell.ps1 diff --git a/Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 b/Power Automate/Get/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 rename to Power Automate/Get/Get FlowsPolicy using REST API/GetFlowsPolicy_usingPnP.ps1 diff --git a/Power Automate/Get FlowsPolicy using REST API/README.md b/Power Automate/Get/Get FlowsPolicy using REST API/README.md similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/README.md rename to Power Automate/Get/Get FlowsPolicy using REST API/README.md diff --git a/Power Automate/Get FlowsPolicy using REST API/description.md b/Power Automate/Get/Get FlowsPolicy using REST API/description.md similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/description.md rename to Power Automate/Get/Get FlowsPolicy using REST API/description.md diff --git a/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 b/Power Automate/Get/Get FlowsPolicy using REST API/flowsWithRest.ps1 similarity index 97% rename from Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 rename to Power Automate/Get/Get FlowsPolicy using REST API/flowsWithRest.ps1 index ff7c5f8a..a97059b2 100644 --- a/Power Automate/Get FlowsPolicy using REST API/flowsWithRest.ps1 +++ b/Power Automate/Get/Get FlowsPolicy using REST API/flowsWithRest.ps1 @@ -1,47 +1,47 @@ -function Get-SPOFlowSetting{ - param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$false,Position=2)] - [SecureString] $password = (Read-Host -AsSecureString), - [Parameter(Mandatory=$true,Position=3)] - [string] $url, - [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 - } - - $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 - Write-Output $results.d -} - - - -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="admin@TENANT.onmicrosoft.com" -$Url="https://TENANT.sharepoint.com" - - -Get-SPOFlowSetting -Username $username -url $Url - +function Get-SPOFlowSetting{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$false,Position=2)] + [SecureString] $password = (Read-Host -AsSecureString), + [Parameter(Mandatory=$true,Position=3)] + [string] $url, + [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 + } + + $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 + Write-Output $results.d +} + + + +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="admin@TENANT.onmicrosoft.com" +$Url="https://TENANT.sharepoint.com" + + +Get-SPOFlowSetting -Username $username -url $Url + diff --git a/Power Automate/Get FlowsPolicy using REST API/images/NoFlows.PNG b/Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows.PNG similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/images/NoFlows.PNG rename to Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows.PNG diff --git a/Power Automate/Get FlowsPolicy using REST API/images/NoFlows3.PNG b/Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows3.PNG similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/images/NoFlows3.PNG rename to Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows3.PNG diff --git a/Power Automate/Get FlowsPolicy using REST API/images/NoFlows4.PNG b/Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows4.PNG similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/images/NoFlows4.PNG rename to Power Automate/Get/Get FlowsPolicy using REST API/images/NoFlows4.PNG diff --git a/Power Automate/Get FlowsPolicy using REST API/images/txt.txt b/Power Automate/Get/Get FlowsPolicy using REST API/images/txt.txt similarity index 100% rename from Power Automate/Get FlowsPolicy using REST API/images/txt.txt rename to Power Automate/Get/Get FlowsPolicy using REST API/images/txt.txt diff --git a/Power Automate/GetFlows/GetFlowsCreatedBy.ps1 b/Power Automate/Get/GetFlows/GetFlowsCreatedBy.ps1 similarity index 100% rename from Power Automate/GetFlows/GetFlowsCreatedBy.ps1 rename to Power Automate/Get/GetFlows/GetFlowsCreatedBy.ps1 diff --git a/Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 b/Power Automate/Get/GetFlows/GetFlowsOlderOrNewerThan.ps1 similarity index 100% rename from Power Automate/GetFlows/GetFlowsOlderOrNewerThan.ps1 rename to Power Automate/Get/GetFlows/GetFlowsOlderOrNewerThan.ps1 diff --git a/Power Automate/GetFlows/GetMostProlificFlowCreators.md b/Power Automate/Get/GetFlows/GetMostProlificFlowCreators.md similarity index 100% rename from Power Automate/GetFlows/GetMostProlificFlowCreators.md rename to Power Automate/Get/GetFlows/GetMostProlificFlowCreators.md diff --git a/Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 b/Power Automate/Get/GetFlows/GetMostProlificFlowCreators.ps1 similarity index 100% rename from Power Automate/GetFlows/GetMostProlificFlowCreators.ps1 rename to Power Automate/Get/GetFlows/GetMostProlificFlowCreators.ps1 diff --git a/Power Automate/GetFlows/Images/flow21.PNG b/Power Automate/Get/GetFlows/Images/flow21.PNG similarity index 100% rename from Power Automate/GetFlows/Images/flow21.PNG rename to Power Automate/Get/GetFlows/Images/flow21.PNG diff --git a/Power Automate/GetFlows/Images/ini.txt b/Power Automate/Get/GetFlows/Images/ini.txt similarity index 100% rename from Power Automate/GetFlows/Images/ini.txt rename to Power Automate/Get/GetFlows/Images/ini.txt diff --git a/Power Automate/GetFlows/readme.md b/Power Automate/Get/GetFlows/readme.md similarity index 100% rename from Power Automate/GetFlows/readme.md rename to Power Automate/Get/GetFlows/readme.md diff --git a/Power Automate/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 b/Power Automate/Get/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 similarity index 100% rename from Power Automate/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 rename to Power Automate/Get/ListAllFlowsUsingPnP/ListAllFlowsUsingPnP.ps1 diff --git a/Power Automate/ListAllFlowsUsingPnP/readme.md b/Power Automate/Get/ListAllFlowsUsingPnP/readme.md similarity index 100% rename from Power Automate/ListAllFlowsUsingPnP/readme.md rename to Power Automate/Get/ListAllFlowsUsingPnP/readme.md diff --git a/Site Management/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 b/Site Management/Navigation/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 similarity index 96% rename from Site Management/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 rename to Site Management/Navigation/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 index 4ed9c2cd..e77e4326 100644 --- a/Site Management/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 +++ b/Site Management/Navigation/Get all quick launch nodes/GetAllQuickLaunchNodesWithChildren.ps1 @@ -1,145 +1,145 @@ -<# -.SYNOPSIS - -Gets all quick launch nodes. -#> - - - -function Get-SPOQuickLaunchNavigationNode -{ - - param ( - [Parameter(Mandatory=$true,Position=1)] - $Context - ) - - #test connection - $Context.ExecuteQuery() - - $quickLaunch = $Context.Web.Navigation.QuickLaunch - $Context.Load($Context.Web) - $Context.Load($quickLaunch) - $Context.ExecuteQuery() - - - Write-Host $quickLaunch.Count - -# Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen - $i=0 - foreach( $node in $quickLaunch) - { - $kiddies = $node.Children - $Context.Load($kiddies) - $Context.ExecuteQuery() - Show-Results -Title $node.Title -Url $node.Url -NoofChildren $kiddies.Count - <# [pscustomobject]@{ - Title = $node.Title - Url = $node.Url - NumberOfChildren = $node.Children.Count - } | Export-Csv -Path $CSVPath -Append #> - - if($kiddies.Count -gt 0) - { - - Get-SPOChildNode -ctx $Context -nodeChildrenCollection $kiddies - - - } - - } - - -} - -function Get-SPOChildNode ($ctx, $nodeChildrenCollection) -{ - $script:separator+= "---" - foreach($child in $nodeChildrenCollection) - { - - $children = $child.Children - $ctx.Load($children) - $ctx.ExecuteQuery() - Show-Results -Title $child.Title -Url $child.Url -NoofChildren $children.Count - - <# [pscustomobject]@{ - Title = $child.Title - Url = $child.Url - NumberOfChildren = $children.Count - } | Export-Csv -Path $CSVPath -Append #> - - - if($children.Count -gt 0) - { - - Get-SPOChildNode -ctx $ctx -nodeChildrenCollection $children - } - - - } - $script:separator = $script:separator.Remove(0,3) - -} - - -function Show-Results($Title, $Url, $NoofChildren) -{ - Write-host $script:separator -NoNewline - Write-Host $title " " -ForegroundColor Green -NoNewline - Write-Host $url " " -NoNewline - Write-Host $noofChildren -ForegroundColor DarkRed - -} - - -function Get-SPOContext -{ - param ( - [Parameter(Mandatory=$true,Position=1)] - [string]$Username, - [Parameter(Mandatory=$true,Position=2)] - $AdminPassword, - [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) - - #test connection - try - { - $ctx.ExecuteQuery() - } - catch - { - Write-Host "Couldn't connect" $_ - $PSCmdlet.ThrowTerminatingError() - } - - return $ctx -} - - - - - - - - - - - # 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" - -# Insert the credentials and the name of the admin site -$Username="ana@etr56.onmicrosoft.com" -$AdminPassword=Read-Host -Prompt "Password" -AsSecureString -$Url="https://etr56.sharepoint.com/sites/sitedesign47" - - -$script:separator="" -$ctx = Get-SPOContext -Username $Username -AdminPassword $AdminPassword -Url $Url +<# +.SYNOPSIS + +Gets all quick launch nodes. +#> + + + +function Get-SPOQuickLaunchNavigationNode +{ + + param ( + [Parameter(Mandatory=$true,Position=1)] + $Context + ) + + #test connection + $Context.ExecuteQuery() + + $quickLaunch = $Context.Web.Navigation.QuickLaunch + $Context.Load($Context.Web) + $Context.Load($quickLaunch) + $Context.ExecuteQuery() + + + Write-Host $quickLaunch.Count + +# Write-Host $ctx.Url -BackgroundColor White -ForegroundColor DarkGreen + $i=0 + foreach( $node in $quickLaunch) + { + $kiddies = $node.Children + $Context.Load($kiddies) + $Context.ExecuteQuery() + Show-Results -Title $node.Title -Url $node.Url -NoofChildren $kiddies.Count + <# [pscustomobject]@{ + Title = $node.Title + Url = $node.Url + NumberOfChildren = $node.Children.Count + } | Export-Csv -Path $CSVPath -Append #> + + if($kiddies.Count -gt 0) + { + + Get-SPOChildNode -ctx $Context -nodeChildrenCollection $kiddies + + + } + + } + + +} + +function Get-SPOChildNode ($ctx, $nodeChildrenCollection) +{ + $script:separator+= "---" + foreach($child in $nodeChildrenCollection) + { + + $children = $child.Children + $ctx.Load($children) + $ctx.ExecuteQuery() + Show-Results -Title $child.Title -Url $child.Url -NoofChildren $children.Count + + <# [pscustomobject]@{ + Title = $child.Title + Url = $child.Url + NumberOfChildren = $children.Count + } | Export-Csv -Path $CSVPath -Append #> + + + if($children.Count -gt 0) + { + + Get-SPOChildNode -ctx $ctx -nodeChildrenCollection $children + } + + + } + $script:separator = $script:separator.Remove(0,3) + +} + + +function Show-Results($Title, $Url, $NoofChildren) +{ + Write-host $script:separator -NoNewline + Write-Host $title " " -ForegroundColor Green -NoNewline + Write-Host $url " " -NoNewline + Write-Host $noofChildren -ForegroundColor DarkRed + +} + + +function Get-SPOContext +{ + param ( + [Parameter(Mandatory=$true,Position=1)] + [string]$Username, + [Parameter(Mandatory=$true,Position=2)] + $AdminPassword, + [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) + + #test connection + try + { + $ctx.ExecuteQuery() + } + catch + { + Write-Host "Couldn't connect" $_ + $PSCmdlet.ThrowTerminatingError() + } + + return $ctx +} + + + + + + + + + + + # 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" + +# Insert the credentials and the name of the admin site +$Username="ana@etr56.onmicrosoft.com" +$AdminPassword=Read-Host -Prompt "Password" -AsSecureString +$Url="https://etr56.sharepoint.com/sites/sitedesign47" + + +$script:separator="" +$ctx = Get-SPOContext -Username $Username -AdminPassword $AdminPassword -Url $Url Get-SPOQuickLaunchNavigationNode -Context $ctx \ No newline at end of file diff --git a/Site Management/Get all quick launch nodes/Przechwytywanie52.PNG b/Site Management/Navigation/Get all quick launch nodes/Przechwytywanie52.PNG similarity index 100% rename from Site Management/Get all quick launch nodes/Przechwytywanie52.PNG rename to Site Management/Navigation/Get all quick launch nodes/Przechwytywanie52.PNG diff --git a/Site Management/Get all quick launch nodes/Przechwytywanie53.PNG b/Site Management/Navigation/Get all quick launch nodes/Przechwytywanie53.PNG similarity index 100% rename from Site Management/Get all quick launch nodes/Przechwytywanie53.PNG rename to Site Management/Navigation/Get all quick launch nodes/Przechwytywanie53.PNG diff --git a/Site Management/Get all quick launch nodes/description.md b/Site Management/Navigation/Get all quick launch nodes/description.md similarity index 100% rename from Site Management/Get all quick launch nodes/description.md rename to Site Management/Navigation/Get all quick launch nodes/description.md