├── .gitignore ├── CompleteResourceMapping.ps1 ├── ConvertPackage.ps1 ├── GenerateInitialMapping.ps1 ├── LICENSE ├── MISC ├── Convert-Packages.bat ├── Convert-Packages.ps1 ├── IMG │ ├── 2018-07-25-20-57-29.png │ ├── 2018-07-25-21-00-48.png │ ├── 2018-07-25-21-11-04.png │ ├── CSV.png │ ├── CustomizeWithPowerApps.png │ ├── DataSourcesConverted_2.0.png │ ├── Export.png │ ├── ExportApp.png │ ├── ExportPackage.png │ ├── ExportPackageProperties.png │ ├── FlowsConverted_2.0.png │ ├── Migrator.png │ ├── SeeAllVersions.png │ ├── UI.png │ ├── UnzippedPackage.png │ └── Video_Thumbnail.jpg ├── Move-Lists.ps1 ├── PS-Forms.ps1 ├── SharePointPnPPowerShellOnline │ └── 3.29.2101.0 │ │ ├── AngleSharp.Css.dll │ │ ├── AngleSharp.dll │ │ ├── Microsoft.ApplicationInsights.dll │ │ ├── Microsoft.Azure.ActiveDirectory.GraphClient.dll │ │ ├── Microsoft.Bcl.AsyncInterfaces.dll │ │ ├── Microsoft.Data.Edm.dll │ │ ├── Microsoft.Data.OData.dll │ │ ├── Microsoft.Data.Services.Client.dll │ │ ├── Microsoft.Extensions.Caching.Abstractions.dll │ │ ├── Microsoft.Extensions.Caching.Memory.dll │ │ ├── Microsoft.Extensions.DependencyInjection.Abstractions.dll │ │ ├── Microsoft.Extensions.Options.dll │ │ ├── Microsoft.Extensions.Primitives.dll │ │ ├── Microsoft.Extensions.WebEncoders.dll │ │ ├── Microsoft.Graph.Core.dll │ │ ├── Microsoft.Graph.dll │ │ ├── Microsoft.Identity.Client.dll │ │ ├── Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll │ │ ├── Microsoft.IdentityModel.Clients.ActiveDirectory.dll │ │ ├── Microsoft.IdentityModel.JsonWebTokens.dll │ │ ├── Microsoft.IdentityModel.Logging.dll │ │ ├── Microsoft.IdentityModel.Tokens.dll │ │ ├── Microsoft.IdentityModel.dll │ │ ├── Microsoft.Office.Client.Policy.dll │ │ ├── Microsoft.Office.Client.TranslationServices.dll │ │ ├── Microsoft.Online.SharePoint.Client.Tenant.dll │ │ ├── Microsoft.SharePoint.Client.DocumentManagement.dll │ │ ├── Microsoft.SharePoint.Client.Publishing.dll │ │ ├── Microsoft.SharePoint.Client.Runtime.dll │ │ ├── Microsoft.SharePoint.Client.Search.Applications.dll │ │ ├── Microsoft.SharePoint.Client.Search.dll │ │ ├── Microsoft.SharePoint.Client.Taxonomy.dll │ │ ├── Microsoft.SharePoint.Client.UserProfiles.dll │ │ ├── Microsoft.SharePoint.Client.WorkflowServices.dll │ │ ├── Microsoft.SharePoint.Client.dll │ │ ├── Microsoft.Win32.Primitives.dll │ │ ├── Microsoft.WindowsAzure.Configuration.dll │ │ ├── Microsoft.WindowsAzure.Storage.dll │ │ ├── Newtonsoft.Json.dll │ │ ├── OfficeDevPnP.Core.dll │ │ ├── PSGetModuleInfo.xml │ │ ├── PnP.PowerShell.CmdletHelpAttributes.dll │ │ ├── PnP.PowerShell.Online.Commands.Format.ps1xml │ │ ├── PnP.PowerShell.Online.Commands.dll │ │ ├── PnP.PowerShell.Online.Commands.dll-help.xml │ │ ├── SharePointPnP.IdentityModel.Extensions.dll │ │ ├── SharePointPnP.Modernization.Framework.dll │ │ ├── SharePointPnPPowerShellOnline.psd1 │ │ ├── System.AppContext.dll │ │ ├── System.Buffers.dll │ │ ├── System.Collections.Concurrent.dll │ │ ├── System.Collections.NonGeneric.dll │ │ ├── System.Collections.Specialized.dll │ │ ├── System.Collections.dll │ │ ├── System.ComponentModel.Annotations.dll │ │ ├── System.ComponentModel.EventBasedAsync.dll │ │ ├── System.ComponentModel.Primitives.dll │ │ ├── System.ComponentModel.TypeConverter.dll │ │ ├── System.ComponentModel.dll │ │ ├── System.Console.dll │ │ ├── System.Data.Common.dll │ │ ├── System.Diagnostics.Contracts.dll │ │ ├── System.Diagnostics.Debug.dll │ │ ├── System.Diagnostics.DiagnosticSource.dll │ │ ├── System.Diagnostics.FileVersionInfo.dll │ │ ├── System.Diagnostics.Process.dll │ │ ├── System.Diagnostics.StackTrace.dll │ │ ├── System.Diagnostics.TextWriterTraceListener.dll │ │ ├── System.Diagnostics.Tools.dll │ │ ├── System.Diagnostics.TraceSource.dll │ │ ├── System.Diagnostics.Tracing.dll │ │ ├── System.Drawing.Primitives.dll │ │ ├── System.Dynamic.Runtime.dll │ │ ├── System.Globalization.Calendars.dll │ │ ├── System.Globalization.Extensions.dll │ │ ├── System.Globalization.dll │ │ ├── System.IO.Compression.ZipFile.dll │ │ ├── System.IO.Compression.dll │ │ ├── System.IO.FileSystem.DriveInfo.dll │ │ ├── System.IO.FileSystem.Primitives.dll │ │ ├── System.IO.FileSystem.Watcher.dll │ │ ├── System.IO.FileSystem.dll │ │ ├── System.IO.IsolatedStorage.dll │ │ ├── System.IO.MemoryMappedFiles.dll │ │ ├── System.IO.Pipes.dll │ │ ├── System.IO.UnmanagedMemoryStream.dll │ │ ├── System.IO.dll │ │ ├── System.IdentityModel.Tokens.Jwt.dll │ │ ├── System.Linq.Expressions.dll │ │ ├── System.Linq.Parallel.dll │ │ ├── System.Linq.Queryable.dll │ │ ├── System.Linq.dll │ │ ├── System.Management.Automation.dll │ │ ├── System.Memory.dll │ │ ├── System.Net.Http.Formatting.dll │ │ ├── System.Net.Http.dll │ │ ├── System.Net.NameResolution.dll │ │ ├── System.Net.NetworkInformation.dll │ │ ├── System.Net.Ping.dll │ │ ├── System.Net.Primitives.dll │ │ ├── System.Net.Requests.dll │ │ ├── System.Net.Security.dll │ │ ├── System.Net.Sockets.dll │ │ ├── System.Net.WebHeaderCollection.dll │ │ ├── System.Net.WebSockets.Client.dll │ │ ├── System.Net.WebSockets.dll │ │ ├── System.Numerics.Vectors.dll │ │ ├── System.ObjectModel.dll │ │ ├── System.Reflection.Extensions.dll │ │ ├── System.Reflection.Primitives.dll │ │ ├── System.Reflection.dll │ │ ├── System.Resources.Reader.dll │ │ ├── System.Resources.ResourceManager.dll │ │ ├── System.Resources.Writer.dll │ │ ├── System.Runtime.CompilerServices.Unsafe.dll │ │ ├── System.Runtime.CompilerServices.VisualC.dll │ │ ├── System.Runtime.Extensions.dll │ │ ├── System.Runtime.Handles.dll │ │ ├── System.Runtime.InteropServices.RuntimeInformation.dll │ │ ├── System.Runtime.InteropServices.dll │ │ ├── System.Runtime.Numerics.dll │ │ ├── System.Runtime.Serialization.Formatters.dll │ │ ├── System.Runtime.Serialization.Json.dll │ │ ├── System.Runtime.Serialization.Primitives.dll │ │ ├── System.Runtime.Serialization.Xml.dll │ │ ├── System.Runtime.dll │ │ ├── System.Security.Claims.dll │ │ ├── System.Security.Cryptography.Algorithms.dll │ │ ├── System.Security.Cryptography.Csp.dll │ │ ├── System.Security.Cryptography.Encoding.dll │ │ ├── System.Security.Cryptography.Primitives.dll │ │ ├── System.Security.Cryptography.X509Certificates.dll │ │ ├── System.Security.Principal.dll │ │ ├── System.Security.SecureString.dll │ │ ├── System.Spatial.dll │ │ ├── System.Text.Encoding.CodePages.dll │ │ ├── System.Text.Encoding.Extensions.dll │ │ ├── System.Text.Encoding.dll │ │ ├── System.Text.Encodings.Web.dll │ │ ├── System.Text.Json.dll │ │ ├── System.Text.RegularExpressions.dll │ │ ├── System.Threading.Overlapped.dll │ │ ├── System.Threading.Tasks.Extensions.dll │ │ ├── System.Threading.Tasks.Parallel.dll │ │ ├── System.Threading.Tasks.dll │ │ ├── System.Threading.Thread.dll │ │ ├── System.Threading.ThreadPool.dll │ │ ├── System.Threading.Timer.dll │ │ ├── System.Threading.dll │ │ ├── System.ValueTuple.dll │ │ ├── System.Web.Http.dll │ │ ├── System.Xml.ReaderWriter.dll │ │ ├── System.Xml.XDocument.dll │ │ ├── System.Xml.XPath.XDocument.dll │ │ ├── System.Xml.XPath.dll │ │ ├── System.Xml.XmlDocument.dll │ │ ├── System.Xml.XmlSerializer.dll │ │ ├── TextCopy.dll │ │ └── netstandard.dll └── migrator-config.json ├── Migrate-Packages.bat ├── Prepare-Deployment-Package-for-Client.bat ├── Prepare-Deployment-Package-for-Client.ps1 ├── README.md ├── RunAllScripts.ps1 ├── config ├── .gitignore └── migrator-config.json └── src └── .gitignore /.gitignore: -------------------------------------------------------------------------------- 1 | resourceMapping.csv 2 | settings.json 3 | /temp 4 | /dist 5 | /samples 6 | /package 7 | /FlowPowerAppsMigrator 8 | Lists.xml 9 | traceoutput.txt 10 | /*.json 11 | config/migrator-config.json 12 | -------------------------------------------------------------------------------- /CompleteResourceMapping.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param ( 3 | [Parameter(Mandatory = $false)] 4 | [switch]$DoNotReconnect 5 | ) 6 | if ($null -eq $TARGET_SITE_URL) { 7 | $TARGET_SITE_URL = Read-Host "Enter the URL of the destination SharePoint site" 8 | } 9 | if($DoNotReconnect.IsPresent -eq $false){ 10 | if($USE_APP_ONLY_AUTHENTICATION){ 11 | Connect-PnPOnline -Url $TARGET_SITE_URL -ClientId $TARGET_SITE_APP_ID -ClientSecret $TARGET_SITE_APP_SECRET -WarningAction Ignore 12 | }else{ 13 | Connect-PnPOnline -Url $TARGET_SITE_URL -UseWebLogin -WarningAction Ignore 14 | } 15 | } 16 | 17 | $lists = Get-PnPList -Includes Views, Fields, DefaultView 18 | $lists = $lists | Where-Object hidden -eq $false 19 | 20 | $resources = Import-Csv -Path .\resourceMapping.csv 21 | $resources[0].newId = $TARGET_SITE_URL 22 | 23 | $lists | ForEach-Object { 24 | $line = "" | Select-Object resource, oldId, newId 25 | $line.resource = $_.RootFolder.ServerRelativeUrl.Replace($_.ParentWebUrl, "") 26 | $line.newId = $_.ID 27 | # There could be more than one resource: 28 | $resource = $resources | Where-Object resource -eq $line.resource 29 | if ($resource -ne $null) { 30 | if(@($resource).Count -gt 1){ 31 | Write-Host "More than one resource found for $line.resource" -ForegroundColor Yellow 32 | foreach($r in $resource){ 33 | $r.newId = $line.newId 34 | } 35 | 36 | }else{ 37 | $resource.newId = $line.newId 38 | } 39 | } 40 | foreach ($view in $_.Views) { 41 | $line = "" | Select-Object resource, oldId, newId 42 | $line.resource = $view.ServerRelativeUrl.Replace($_.ParentWebUrl, "") 43 | $line.newId = $view.ID 44 | 45 | $resource = $resources | Where-Object resource -eq $line.resource 46 | if ($resource -ne $null) { 47 | if(@($resource).Count -gt 1){ 48 | Write-Host "More than one resource found for $line.resource" -ForegroundColor Yellow 49 | foreach($r in $resource){ 50 | $r.newId = $line.newId 51 | } 52 | 53 | }else{ 54 | $resource.newId = $line.newId 55 | } 56 | } 57 | 58 | } 59 | 60 | $resource = $resources | Where-Object resource -eq $line.resource 61 | if ($resource -ne $null) { 62 | if(@($resource).Count -gt 1){ 63 | Write-Host "More than one resource found for $line.resource" -ForegroundColor Yellow 64 | foreach($r in $resource){ 65 | $r.newId = $line.newId 66 | } 67 | 68 | }else{ 69 | $resource.newId = $line.newId 70 | } 71 | } 72 | } 73 | 74 | $resources | Export-Csv -Path "resourceMapping.csv" -NoTypeInformation 75 | Write-Host Mapping file resourceMapping.csv fully complete -ForegroundColor Green -------------------------------------------------------------------------------- /ConvertPackage.ps1: -------------------------------------------------------------------------------- 1 | # This code is used to convert packages in the \src folder and save them to the \dist folder. 2 | # It first cleans any previously generated packages. It then gets a list of packages 3 | # from the \src folder with the .zip extension. It imports a CSV file containing 4 | # resource mapping information, and creates a dist folder if it does not exist. 5 | 6 | # It then iterates through each package, extracting it to a destination folder 7 | # and replacing any old IDs with new ones from the resource mapping file. 8 | # If an MSAPP package is found, it extracts that too and replaces any old IDs 9 | # with new ones from the resource mapping file. It then creates a new zip file 10 | # for each package, either using tar or System.IO.Compression.ZipFile depending 11 | # on whether or not it is a solution package, and saves it to the \dist folder. 12 | 13 | # Finally, it prints out a message that all packages have been converted and 14 | # saved to the \dist folder, and invokes 15 | # this directory in Windows Explorer so that its contents can be viewed. 16 | 17 | 18 | Add-Type -AssemblyName System.IO.Compression.FileSystem 19 | $CurrentPath = (Get-Location).Path + "\" 20 | 21 | # Clean previously generated packages 22 | Get-ChildItem $CurrentPath -Filter "Converted*" -Recurse | Remove-Item 23 | 24 | $packages = Get-ChildItem -Path .\src -Filter "*.zip" 25 | 26 | $resources = Import-Csv -Path .\resourceMapping.csv 27 | 28 | # Create dist folder if it does not exist 29 | if (-not (Test-Path .\dist)) { 30 | New-Item -ItemType Directory -Path .\dist | Out-Null 31 | } 32 | 33 | for ($k = 0; $k -lt $packages.count; $k++) { 34 | $package = $packages[$k] 35 | $DestinationFolder = $CurrentPath + "dist\" + $package.BaseName 36 | Remove-Item $DestinationFolder -Force -Recurse -ErrorAction SilentlyContinue 37 | 38 | [System.IO.Compression.ZipFile]::ExtractToDirectory($package.FullName, $DestinationFolder) 39 | 40 | $files = Get-ChildItem $DestinationFolder -Recurse -File -Include ('*.json', '*.xml') 41 | $files | ForEach-Object { 42 | for ($i = 0; $i -lt $resources.Count; $i++) { 43 | Write-Host Converting $resources[$i].resource "... " 44 | if ($resources[$i].newId) { 45 | (Get-Content -LiteralPath $_.FullName) -replace $resources[$i].oldId, $resources[$i].newId | Set-Content -LiteralPath $_.FullName 46 | Write-host " [Success] " -ForegroundColor Green -NoNewline 47 | Write-host $($resources[$i].resource) converted 48 | } 49 | else { 50 | if ($resources[$i].resource -match ".aspx" -eq $false) { 51 | Write-host "` [Warning] " -ForegroundColor Yellow -NoNewline 52 | Write-host SharePoint List or a Library is missing in the destination site collection. Make sure it exists if used: $($resources[$i].resource) 53 | } 54 | } 55 | } 56 | } 57 | 58 | $solutionManifest = Get-ChildItem -Path $DestinationFolder -Filter "solution.xml" 59 | if ($solutionManifest) { 60 | Write-host $package.Name is a Solution Package -ForegroundColor Cyan 61 | } 62 | 63 | # Searching for an MSAPP file. These are zip-archives that need to be converted too: 64 | $msappPackages = Get-ChildItem $DestinationFolder -Recurse -File -Filter "*.msapp*" 65 | 66 | if ($null -ne $msappPackages -and $msappPackages.Count -ne 0) { 67 | for ($y = 0; $y -lt $msappPackages.count; $y++) { 68 | $msAppPackage = $msappPackages[$y]; 69 | $msAppPackageDestinationFolder = $msappPackage.Directory.FullName + "\" + $msAppPackage.BaseName 70 | [System.IO.Compression.ZipFile]::ExtractToDirectory($msAppPackage.FullName , $msAppPackageDestinationFolder) 71 | 72 | $files = Get-ChildItem $msAppPackageDestinationFolder -Recurse -File -Filter "*.json*" 73 | $files | ForEach-Object { 74 | for ($i = 0; $i -lt $resources.Count; $i++) { 75 | if ([System.String]::IsNullOrEmpty($resources[$i].newId) -eq $false) { 76 | (Get-Content -LiteralPath $_.FullName) -replace $resources[$i].oldId, $resources[$i].newId | Set-Content -LiteralPath $_.FullName 77 | } 78 | else { 79 | if ($resources[$i].resource -match ".aspx" -eq $false) { 80 | Write-host "` [Warning] " -ForegroundColor Yellow -NoNewline 81 | Write-host SharePoint List or a Library is missing in the destination site collection. Make sure it exists if used: $($resources[$i].resource) 82 | } 83 | } 84 | } 85 | } 86 | Write-host "App sub-package found:" $msAppPackage 87 | Remove-Item $msAppPackage.FullName -Force 88 | Push-Location $msAppPackageDestinationFolder 89 | 90 | [System.IO.Compression.ZipFile]::CreateFromDirectory($msAppPackageDestinationFolder, $msAppPackage.FullName, [System.IO.Compression.CompressionLevel]::Optimal, $false) 91 | 92 | Pop-Location 93 | Remove-Item $msAppPackageDestinationFolder -Force -Recurse -ErrorAction SilentlyContinue 94 | } 95 | } 96 | 97 | Remove-Item $($CurrentPath + "dist\Converted_" + $package.BaseName + ".zip") -Force -Recurse -ErrorAction SilentlyContinue 98 | Push-Location $($DestinationFolder) 99 | if ($solutionManifest) { 100 | tar -a -c -f $("..\Converted_" + $package.BaseName + ".zip") * 101 | } 102 | else { 103 | [System.IO.Compression.ZipFile]::CreateFromDirectory($DestinationFolder, $CurrentPath + "dist\Converted_" + $package.BaseName + ".zip", [System.IO.Compression.CompressionLevel]::Optimal, $false) 104 | } 105 | Pop-Location 106 | 107 | Remove-Item $DestinationFolder -Force -Recurse -ErrorAction SilentlyContinue 108 | } 109 | 110 | Write-Host \src packages were converted and saved to the \dist folder -ForegroundColor Green 111 | 112 | 113 | Invoke-Item .\dist -------------------------------------------------------------------------------- /GenerateInitialMapping.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param ( 3 | [Parameter(Mandatory = $false)] 4 | [string]$DestinationFolder = $null 5 | ) 6 | if ($null -eq $SOURCE_SITE_URL) { 7 | $SOURCE_SITE_URL = Read-Host "Enter the URL of the original (old) SharePoint site" 8 | } 9 | 10 | Write-Host "[Attention] Look for a login popup in a separate window. Please, log in to the source site site $SOURCE_SITE_URL" -ForegroundColor Cyan 11 | 12 | if($USE_APP_ONLY_AUTHENTICATION){ 13 | Connect-PnPOnline -Url $SOURCE_SITE_URL -ClientId $SOURCE_SITE_APP_ID -ClientSecret $SOURCE_SITE_APP_SECRET -WarningAction Ignore 14 | }elseIf ($CLEAR_CREDENTIALS_CACHE) { 15 | Connect-PnPOnline -Url $SOURCE_SITE_URL -SPOManagementShell -ClearTokenCache -WarningAction Ignore 16 | } 17 | else { 18 | Connect-PnPOnline -Url $SOURCE_SITE_URL -UseWebLogin -WarningAction Ignore 19 | } 20 | 21 | try { 22 | Write-Host 23 | Write-Host Connected to the source site -ForegroundColor Green 24 | Write-Host "`tSite: $SOURCE_SITE_URL" -ForegroundColor Yellow 25 | 26 | $lists = Get-PnPList -Includes Views, Fields, DefaultView 27 | } 28 | catch { 29 | if ($error[0].Exception.Message -match "(403)" -or $error[0].Exception.Message -match "unauthorized") { 30 | 31 | Write-Host "[Error] make sure you have FULL CONTROL at the source site: $SOURCE_SITE_URL" -ForegroundColor Yellow 32 | $errorSuggestion = "If you already have enough permissions, try running the script with CLEAR_CREDENTIALS_CACHE set to True" 33 | Write-Host $errorSuggestion -ForegroundColor Yellow 34 | } 35 | else { 36 | Write-Host Write-Host $error[0].Exception.Message 37 | } 38 | throw 39 | } 40 | 41 | $lists = $lists | Where-Object hidden -EQ $false 42 | 43 | $resources = @() 44 | $line = "" | Select-Object resource, oldId, newId 45 | $line.resource = "SiteUrl" 46 | $line.oldId = $SOURCE_SITE_URL 47 | $resources += $line 48 | 49 | $lists | ForEach-Object { 50 | $line = "" | Select-Object resource, oldId, newId 51 | $line.resource = $_.RootFolder.ServerRelativeUrl.Replace($_.ParentWebUrl, "") 52 | $line.oldId = $_.ID 53 | $resources += $line 54 | 55 | foreach ($view in $_.Views) { 56 | $line = "" | Select-Object resource, oldId, newId 57 | $line.resource = $view.ServerRelativeUrl.Replace($_.ParentWebUrl, "") 58 | $line.oldId = $view.ID 59 | $resources += $line 60 | } 61 | } 62 | 63 | if ($DestinationFolder) { 64 | $destinationCsvPath = Join-Path $DestinationFolder "resourceMapping.csv" 65 | } 66 | else { 67 | $destinationCsvPath = "resourceMapping.csv" 68 | } 69 | 70 | $resources | Export-Csv -Path $destinationCsvPath -NoTypeInformation 71 | Write-Host Mapping file resourceMapping.csv is generated -ForegroundColor Green 72 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Denis Molodtsov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MISC/Convert-Packages.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | PowerShell.exe -Command "& '.\Convert-Packages.ps1' -path '%~dp0'" 3 | PAUSE -------------------------------------------------------------------------------- /MISC/Convert-Packages.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [string]$Path 3 | ) 4 | # Created by Denis Molodtsov (@Zerg00s) in 2018 5 | 6 | $ErrorActionPreference = "Stop" 7 | 8 | $host.UI.RawUI.WindowTitle = "Flow & Power Apps Migrator" 9 | 10 | Write-host 11 | Write-host 12 | Write-Host " ______ _ _____ " -ForegroundColor Yellow 13 | Write-Host " | ____| | ___ | __ \ " -ForegroundColor Yellow 14 | Write-Host " | |__ | | _____ __ ( _ ) | |__) |____ _____ _ __ " -ForegroundColor Yellow 15 | Write-Host " | __| | |/ _ \ \ /\ / / / _ \/\ | ___/ _ \ \ /\ / / _ \ `'__| " -ForegroundColor Yellow 16 | Write-Host " | | | | (_) \ V V / | (_> < | | | (_) \ V V / __/ | " -ForegroundColor Yellow 17 | Write-Host " |_| |_|\___/ \_/\_/ \___/\/_|_| \___/ \_/\_/ \___|_| " -ForegroundColor Yellow 18 | Write-Host " /\ | \/ (_) | | " -ForegroundColor Cyan 19 | Write-Host " / \ _ __ _ __ ___ | \ / |_ __ _ _ __ __ _| |_ ___ _ __ " -ForegroundColor Cyan 20 | Write-Host " / /\ \ | `'_ \| `'_ \/ __| | |\/| | |/ _`` | `'__/ _`` | __/ _ \| `'__|" -ForegroundColor Cyan 21 | Write-Host " / ____ \| |_) | |_) \__ \ | | | | | (_| | | | (_| | || (_) | | " -ForegroundColor Cyan 22 | Write-Host " /_/ \_\ .__/| .__/|___/ |_| |_|_|\__, |_| \__,_|\__\___/|_| " -ForegroundColor Cyan 23 | Write-Host " | | | | __/ | " -ForegroundColor Cyan 24 | Write-Host " |_| |_| |___/ " -ForegroundColor Cyan 25 | Write-host 26 | Write-host "-----------------------------------------------------------------------------" 27 | Write-host 28 | 29 | 30 | Set-Location $Path 31 | . .\MISC\PS-Forms.ps1 32 | 33 | Get-ChildItem -Recurse | Unblock-File 34 | # Legacy PowerShell PnP Module is used because the new one has a critical bug 35 | Import-Module (Get-ChildItem -Recurse -Filter "*.psd1").FullName -DisableNameChecking 36 | 37 | $Migration = @{ 38 | TARGET_SITE_URL = "https://contoso.sharepoint.com/sites/Site_b" 39 | } 40 | 41 | $Migration = Get-FormItemProperties -item $Migration -dialogTitle "Enter target site" -propertiesOrder @("TARGET_SITE_URL") 42 | $TARGET_SITE_URL = $Migration.TARGET_SITE_URL 43 | 44 | if($USE_APP_ONLY_AUTHENTICATION){ 45 | Connect-PnPOnline -Url $TARGET_SITE_URL -ClientId $TARGET_SITE_APP_ID -ClientSecret $TARGET_SITE_APP_SECRET -WarningAction Ignore 46 | }else{ 47 | Connect-PnPOnline -Url $TARGET_SITE_URL -UseWebLogin -WarningAction Ignore 48 | } 49 | 50 | $xmlFiles = Get-ChildItem *.xml 51 | if ($xmlFiles.Count -ne 0) { 52 | Write-Host Convert-Packages 1: $TARGET_SITE_URL Import of XML -ForegroundColor Yellow 53 | . .\MISC\Move-Lists.ps1 -Path $Path -MigrationType Import -TargetSite $TARGET_SITE_URL 54 | } 55 | . .\CompleteResourceMapping.ps1 -DoNotReconnect 56 | . .\ConvertPackage.ps1 -------------------------------------------------------------------------------- /MISC/IMG/2018-07-25-20-57-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/2018-07-25-20-57-29.png -------------------------------------------------------------------------------- /MISC/IMG/2018-07-25-21-00-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/2018-07-25-21-00-48.png -------------------------------------------------------------------------------- /MISC/IMG/2018-07-25-21-11-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/2018-07-25-21-11-04.png -------------------------------------------------------------------------------- /MISC/IMG/CSV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/CSV.png -------------------------------------------------------------------------------- /MISC/IMG/CustomizeWithPowerApps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/CustomizeWithPowerApps.png -------------------------------------------------------------------------------- /MISC/IMG/DataSourcesConverted_2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/DataSourcesConverted_2.0.png -------------------------------------------------------------------------------- /MISC/IMG/Export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/Export.png -------------------------------------------------------------------------------- /MISC/IMG/ExportApp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/ExportApp.png -------------------------------------------------------------------------------- /MISC/IMG/ExportPackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/ExportPackage.png -------------------------------------------------------------------------------- /MISC/IMG/ExportPackageProperties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/ExportPackageProperties.png -------------------------------------------------------------------------------- /MISC/IMG/FlowsConverted_2.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/FlowsConverted_2.0.png -------------------------------------------------------------------------------- /MISC/IMG/Migrator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/Migrator.png -------------------------------------------------------------------------------- /MISC/IMG/SeeAllVersions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/SeeAllVersions.png -------------------------------------------------------------------------------- /MISC/IMG/UI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/UI.png -------------------------------------------------------------------------------- /MISC/IMG/UnzippedPackage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/UnzippedPackage.png -------------------------------------------------------------------------------- /MISC/IMG/Video_Thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/IMG/Video_Thumbnail.jpg -------------------------------------------------------------------------------- /MISC/Move-Lists.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param ( 3 | [Parameter()] 4 | [string]$Path, 5 | 6 | [Parameter(Mandatory = $true)] 7 | [ValidateSet('Export', 'Import')] 8 | [string]$MigrationType, 9 | 10 | [Parameter(Mandatory = $false)] 11 | [string]$SourceSite, 12 | 13 | [Parameter(Mandatory = $false)] 14 | [string]$TargetSite 15 | ) 16 | 17 | 18 | #----------------------------------------------------------------------- 19 | # Script lets you migrate one or more SharePoint lists from source site 20 | # To destination site 21 | # Denis Molodtsov, 2021 22 | #----------------------------------------------------------------------- 23 | 24 | $ErrorActionPreference = "Stop" 25 | 26 | Write-Host $Path -ForegroundColor Green 27 | 28 | Set-Location $Path 29 | . .\MISC\PS-Forms.ps1 30 | 31 | Get-ChildItem -Recurse | Unblock-File 32 | # Legacy PowerShell PnP Module is used because the new one has a critical bug 33 | Import-Module (Get-ChildItem -Recurse -Filter "*.psd1").FullName -DisableNameChecking 34 | 35 | try { 36 | $lists = Get-PnPList 37 | } 38 | catch { 39 | $errorSuggestion = "If you already have enough permissions, try running the script with CLEAR_CREDENTIALS_CACHE set to True" 40 | if ($error[0].Exception.Message -match "(403)" -or $error[0].Exception.Message -match "unauthorized") { 41 | if ($MigrationType -eq "Export") { 42 | Write-Host "[Error] make sure you have FULL CONTROL at the source site $SourceSite" -ForegroundColor Yellow 43 | } 44 | elseif ($MigrationType -eq "Import") { 45 | Write-Host "[Error] make sure you have FULL CONTROL at the target site $TargetSite" -ForegroundColor Yellow 46 | } 47 | else { 48 | Write-Host "[Error] make sure you have FULL CONTROL at the source site $SourceSite and target site $TargetSite" -ForegroundColor Yellow 49 | } 50 | Write-Host $errorSuggestion -ForegroundColor Yellow 51 | 52 | } 53 | else { 54 | Write-Host $error[0].Exception.Message 55 | } 56 | throw 57 | } 58 | 59 | 60 | if ($MigrationType -eq "Export") { 61 | Write-Host "Exporting lists and libraries..." -ForegroundColor Yellow 62 | Get-ChildItem *.xml | ForEach-Object { Remove-Item -Path $_.FullName } 63 | Get-ChildItem *.json | ForEach-Object { Remove-Item -Path $_.FullName } 64 | $lists = Get-PnPList 65 | $lists = $lists | Where-Object { $_.Hidden -eq $false } 66 | 67 | $selectedLists = Get-FormArrayItems ($lists) -dialogTitle "Select lists and libraries to migrate" -key Title 68 | $titles = $selectedLists.Title 69 | 70 | # If a list contains custom content types, we will have to move them all. 71 | $exportContentTypes = $false 72 | foreach ($list in $selectedLists) { 73 | $listContentTypes = Get-PnPContentType -List $list 74 | $context = $list.Context 75 | foreach ($contentType in $listContentTypes) { 76 | $context.Load($contentType) 77 | $context.ExecuteQuery() 78 | [xml]$xml = $contentType.SchemaXml 79 | if ($null -eq $xml.ContentType.FeatureId) { 80 | $exportContentTypes = $true; 81 | } 82 | } 83 | } 84 | 85 | if ($exportContentTypes) { 86 | Get-PnPProvisioningTemplate -ListsToExtract $titles -Out "Lists.xml" -Handlers Lists, ContentTypes, Fields -Force -WarningAction Ignore 87 | } 88 | else { 89 | Get-PnPProvisioningTemplate -ListsToExtract $titles -Out "Lists.xml" -Handlers Lists -Force -WarningAction Ignore 90 | } 91 | 92 | # Remove all Property Bag entries from the lists. Begin 93 | ((Get-Content -Path Lists.xml -Raw -Encoding UTF8) -replace '<\?xml version="1.0"\?>', '' -replace 'RootSite', 'Web' -replace '(?<=\{[^}]*)\&(?=[^}]*\})', '&') | Set-Content -Path Lists.xml -Encoding UTF8 94 | 95 | # Removing Site fields that cause the Exception from HRESULT: 0x80070005 (E_ACCESSDENIED) 96 | 97 | 98 | # Load the XML from file 99 | $xml = [xml](Get-Content Lists.xml) 100 | 101 | # Select all hidden nodes based on the Group attribute 102 | $hiddenNodes = $xml.SelectNodes("//*[@Group='_Hidden']") 103 | 104 | # Remove each hidden node 105 | foreach ($node in $hiddenNodes) { 106 | $node.ParentNode.RemoveChild($node) | Out-Null 107 | } 108 | 109 | $nodesToRemove = @( 110 | "0x0100415C46DF0F4B45939BDEC96C5014A10E", # Microblog Properties Content Type 111 | "0x0101009148F5A04DDD49CBA7127AADA5FB792B", # Rich Media Asset Content Type 112 | "0x0101009148F5A04DDD49CBA7127AADA5FB792B00291D173ECE694D56B19D111489C4369D" # Video Rendition Content Type 113 | "0x0101009D1CB255DA76424F860D91F20E6C41180043153F945E98468297E67C3EEE43AB70" # Space Content Type 114 | ) 115 | 116 | foreach ($nodeId in $nodesToRemove) { 117 | $nodes = $xml.SelectNodes("//*[@ID='$nodeId']") 118 | foreach ($node in $nodes) { 119 | $node.ParentNode.RemoveChild($node) | Out-Null 120 | } 121 | } 122 | 123 | # Find all nodes with CustomFormatter attribute and remove this attribute along with its value 124 | # 125 | 126 | $nodes = $xml.SelectNodes("//*[@CustomFormatter]") 127 | foreach ($node in $nodes) { 128 | $node.RemoveAttribute("CustomFormatter") | Out-Null 129 | } 130 | 131 | # Select all extended columns nodes based on the Group attribute 132 | # We don't want to migrate extended columns 133 | $extendedColumnNodes = $xml.SelectNodes("//*[@Group='Extended Columns']") 134 | if ($extendedColumnNodes -ne $null) { 135 | Write-Host "Extended columns count: " $extendedColumnNodes.Count 136 | # Remove each node 137 | foreach ($extendedColumnNode in $extendedColumnNodes) { 138 | $extendedColumnNode.ParentNode.RemoveChild($extendedColumnNode) | Out-Null 139 | } 140 | } 141 | 142 | # Get all 'Field' nodes with attribute Hidden='TRUE' 143 | $hiddenFields = $xml.SelectNodes("//Field[@Hidden='TRUE']") 144 | if ($null -ne $hiddenFields) { 145 | Write-Host "Hidden fields count: " $hiddenFields 146 | # Remove all 'Field' nodes with attribute Hidden='TRUE' 147 | foreach ($field in $hiddenFields) { 148 | $field.ParentNode.RemoveChild($field) | Out-Null 149 | } 150 | 151 | } 152 | 153 | $siteFields = $xml.GetElementsByTagName("pnp:SiteFields") 154 | 155 | # Check if 'SiteFields' node is empty 156 | if ($null -ne $siteFields) { 157 | if ($siteFields.GetType().Name -eq "XmlElementList") { 158 | $siteFields = $siteFields[0] 159 | } 160 | 161 | if ($null -ne $siteFields.ChildNodes) { 162 | if ($siteFields.ChildNodes.Count -eq 0) { 163 | # Remove the 'SiteFields' node completely 164 | $siteFields.ParentNode.RemoveChild($siteFields) | Out-Null 165 | } 166 | } 167 | } 168 | 169 | 170 | $propertyBagEntries = $xml.GetElementsByTagName('pnp:PropertyBagEntries') 171 | if ($propertyBagEntries -ne $null -and $propertyBagEntries.Count -gt 0) { 172 | for ($i = $propertyBagEntries.Count - 1; $i -gt -1 ; $i--) { 173 | $propertyBagEntries[$i].ParentNode.RemoveChild($propertyBagEntries[$i]) | Out-Null 174 | } 175 | } 176 | 177 | $xml.Save('Lists.xml') 178 | "`n" + (Get-Content "Lists.xml" -Raw -Encoding UTF8) | Set-Content "Lists.xml" -Encoding UTF8 179 | 180 | # Remove all Property Bag entries from the lists. End 181 | foreach ($title in $titles) { 182 | # Get the latest list item form layout. Footer, Header and the Body: 183 | $list = Get-PnPList $title -Includes ContentTypes 184 | if ($list -is [array]) { 185 | $list = $list[0] 186 | } 187 | $contentType = $list.ContentTypes | Where-Object { $_.Name -eq "Item" } 188 | if ($null -eq $contentType) { 189 | continue 190 | } 191 | $contentType.ClientFormCustomFormatter | Set-Content .\$title.json 192 | } 193 | } 194 | 195 | if ($MigrationType -eq "Import") { 196 | Write-Host "Importing lists and libraries..." -ForegroundColor Yellow 197 | 198 | try { 199 | Apply-PnPProvisioningTemplate -Path Lists.xml 200 | } 201 | catch { 202 | Write-Host "[Error] " -NoNewline -ForegroundColor Red 203 | if ($error[0].Exception.Message -match "(403)" -or $error[0].Exception.Message -match "unauthorized") { 204 | Write-Host "Make sure you have full control at the target site. However, This error is not always related to the permissions. $TargetSite" -ForegroundColor Yellow 205 | } 206 | elseif ($error[0].Exception.Message -match "E_ACCESSDENIED") { 207 | Write-Host "Tips: 1) Make sure that both target site and the source sites created with the same language. Cross-language list migration is not supported." -ForegroundColor Cyan 208 | Write-Host "Tips: 2) Read https://github.com/Zerg00s/FlowPowerAppsMigrator/wiki -> Create a SharePoint-only application and use it for authenticaiton" -ForegroundColor Cyan 209 | Write-Host "Tips: 3) Create an issue on https://github.com/Zerg00s/FlowPowerAppsMigrator/issues. And Share the Lists.xml file in the root folder." -ForegroundColor Cyan 210 | } 211 | else { 212 | Write-Host $error[0].Exception.Message 213 | } 214 | throw 215 | } 216 | 217 | $jsonFiles = Get-ChildItem *.json 218 | if ($jsonFiles) { 219 | $titles = $jsonFiles | ForEach-Object { "$($_.BaseName)" } 220 | 221 | foreach ($title in $titles) { 222 | $list = Get-PnPList $title -Includes ContentTypes 223 | $contentType = $list.ContentTypes | Where-Object { $_.Name -eq "Item" } 224 | if ($contentType) { 225 | $json = Get-Content .\$title.json 226 | $contentType.ClientFormCustomFormatter = $json 227 | $contentType.Update($false) 228 | $contentType.Context.ExecuteQuery(); 229 | } 230 | } 231 | } 232 | } 233 | -------------------------------------------------------------------------------- /MISC/PS-Forms.ps1: -------------------------------------------------------------------------------- 1 | enum ControlType { 2 | RadioButtons = 1 3 | ComboBox = 2 4 | } 5 | 6 | <# 7 | .DESCRIPTION 8 | Capture user's input by presenting the choices as a group of radio buttons. 9 | .EXAMPLE 10 | PS C:\> Get-FormArrayItem -items $(get-childitem) -key name -dialogTitle "Select file" -ControlType RadioButtons 11 | .EXAMPLE 12 | PS C:\> Get-FormArrayItem -items $(get-childitem) -key name -dialogTitle "Select file" -ControlType ComboBox 13 | .EXAMPLE 14 | PS C:\> $subscription = Get-FormArrayItem -items $accounts -key "name" -dialogTitle "Choose subscription" 15 | Display the list items. In this case it's an array of of Azure subscriptions. 16 | .EXAMPLE 17 | PS C:\> $location = Get-FormArrayItem -items $locations -key "displayName" -dialogTitle "Choose location" -defaultValue "Canada Central" 18 | Display a form with the list of Azure Locations where "Canada Central" is selected by default. 19 | .PARAMETER items 20 | An array of objects 21 | .PARAMETER key 22 | Name of the property that will serve as a unique key for the radio buttons. This property will also be used to render text beside each radio button. 23 | .PARAMETER dialogTitle 24 | Descriptive Title of the dialog box. 25 | .OUTPUTS 26 | Returns an array item (proper object) that was selected via the form by clicking a radio button. 27 | #> 28 | function Get-FormArrayItem { 29 | Param( 30 | [Parameter(Mandatory = $true)] $items, 31 | [Parameter(Mandatory = $false)] $key, 32 | [Parameter(Mandatory = $false)] $dialogTitle, 33 | [Parameter()] $defaultValue , 34 | [ControlType] 35 | [Parameter(Mandatory = $false)] $ControlType = [ControlType]::RadioButtons 36 | ) 37 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 38 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 39 | 40 | if ($items.Count -eq 0) { 41 | Write-Host "'$dialogTitle' dialog did not contain any items. Returning `$null" 42 | return $null 43 | } 44 | 45 | if($key -eq $null){ 46 | $key = "Name" 47 | } 48 | 49 | if($dialogTitle -eq $null){ 50 | $dialogTitle = "Choose one:" 51 | } 52 | 53 | #----------------------------------------------------------------------- 54 | # Create a group that will contain your radio buttons 55 | #----------------------------------------------------------------------- 56 | $TitleLabel = New-Object System.Windows.Forms.Label 57 | $TitleLabel.Location = '40,5' 58 | $TitleLabel.Text = $dialogTitle 59 | $Font = New-Object System.Drawing.Font("Times New Roman", 13) 60 | $TitleLabel.Font = $Font 61 | $TitleLabel.Width = 550 62 | 63 | $Panel = New-Object System.Windows.Forms.Panel 64 | $Panel.Location = '40,30' 65 | $Panel.size = '600,1' 66 | $Panel.text = $dialogTitle 67 | 68 | $inputControlY = 10 69 | $radioButtonHeight = 20 70 | $spaceBetweenControls = $radioButtonHeight + 10 71 | $Panel.Height = $spaceBetweenControls + 20 72 | $MaximumPanelHeight = 290 73 | $RadioFont = New-Object System.Drawing.Font("Times New Roman", 12) 74 | 75 | $OKButton = New-Object System.Windows.Forms.Button 76 | 77 | 78 | if($ControlType -eq [ControlType]::RadioButtons){ 79 | #----------------------------------------------------------------------- 80 | # Create the collection of radio buttons 81 | #----------------------------------------------------------------------- 82 | foreach ($item in $items) { 83 | $RadioButton = New-Object System.Windows.Forms.RadioButton 84 | $RadioButton.Location = "20,$inputControlY" 85 | $RadioButton.size = "550,$radioButtonHeight" 86 | $RadioButton.Font = $RadioFont 87 | 88 | $props = Get-Member -InputObject $item -MemberType NoteProperty 89 | 90 | $prop = $props | Where-Object { $_.name -eq $key } 91 | $propValue = $item | Select-Object -ExpandProperty $prop.Name 92 | $RadioButton.Text = $propValue 93 | if ($RadioButton.Text -eq $defaultValue) { 94 | $RadioButton.Checked = $true 95 | } 96 | else { 97 | $RadioButton.Checked = $false 98 | } 99 | $Panel.Controls.AddRange($RadioButton) 100 | $inputControlY += $spaceBetweenControls 101 | 102 | if ($Panel.Height -lt $MaximumPanelHeight) { 103 | $Panel.Height += $spaceBetweenControls 104 | }else{ 105 | $Panel.BorderStyle = 1 106 | $Panel.VerticalScroll.Enabled = $true; 107 | $Panel.VerticalScroll.Visible = $true; 108 | $Panel.AutoScroll = $true; 109 | } 110 | } 111 | 112 | } 113 | 114 | if($ControlType -eq [ControlType]::ComboBox){ 115 | #----------------------------------------------------------------------- 116 | # Add Combobox with autocomplete 117 | #----------------------------------------------------------------------- 118 | $ComboBox = New-Object system.Windows.Forms.ComboBox 119 | $ComboBox.text = "comboBox" 120 | $ComboBox.width = 580 121 | $ComboBox.height = 50 122 | $ComboBox.Location = New-Object System.Drawing.Point(10,20) 123 | $ComboBox.Font = 'Times New Roman,12' 124 | 125 | ############## DropDown ################# 126 | 127 | $ComboBox.DropDownStyle = [System.Windows.Forms.ComboBoxStyle]::DropDown; 128 | foreach($item in $items){ 129 | $ComboBox.Items.add($item) | Out-Null 130 | } 131 | $ComboBox.SelectedIndex = 1 132 | 133 | ############## AutoComplite ################# 134 | 135 | $ComboBox.AutoCompleteSource ='CustomSource' 136 | $ComboBox.AutoCompleteMode ='SuggestAppend' 137 | foreach($item in $items){$ComboBox.AutoCompleteCustomSource.AddRange($item)} 138 | $choice = $ComboBox.Text 139 | 140 | ######## If Combobox text is different from list or null ############### 141 | 142 | $ComboBox.add_TextChanged({Combobox}) 143 | $Panel.Controls.Add($ComboBox) 144 | $Panel.Height += $spaceBetweenControls 145 | 146 | function Combobox{ 147 | if ($null -eq $ComboBox.SelectedItem){ 148 | $OKButton.Enabled = $false 149 | }else{ 150 | $OKButton.Enabled = $true 151 | } 152 | } 153 | } 154 | 155 | 156 | #----------------------------------------------------------------------- 157 | # Add an OK button 158 | #----------------------------------------------------------------------- 159 | $ActionButtonHeight = 40 160 | $ActionButtonY = $Panel.size.Height + $Panel.Location.Y + 10 161 | # $OKButton = New-Object System.Windows.Forms.Button 162 | $OKButton.Location = "130,$ActionButtonY" 163 | $OKButton.Size = "100,$ActionButtonHeight" 164 | $OKButton.Text = 'OK' 165 | $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 166 | 167 | #----------------------------------------------------------------------- 168 | #Add a cancel button 169 | #----------------------------------------------------------------------- 170 | $CancelButton = New-Object System.Windows.Forms.Button 171 | $CancelButton.Location = "255,$ActionButtonY" 172 | $CancelButton.Size = "100,$ActionButtonHeight" 173 | $CancelButton.Text = "Cancel" 174 | $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel 175 | 176 | $Form = New-Object System.Windows.Forms.Form 177 | $Form.width = $Panel.size.Width + 80 178 | $Form.height = $OKButton.Location.Y + $OKButton.Height + 60 179 | $Form.Text = $dialogTitle 180 | $Form.Topmost = $true 181 | $Form.StartPosition = "CenterScreen" 182 | 183 | #----------------------------------------------------------------------- 184 | # Set the font of the text to be used within the form 185 | #----------------------------------------------------------------------- 186 | $Font = New-Object System.Drawing.Font("Times New Roman", 10) 187 | $Form.Font = $Font 188 | 189 | $form.Controls.AddRange(@($TitleLabel, $Panel, $OKButton, $CancelButton)) 190 | 191 | #----------------------------------------------------------------------- 192 | # Assign the Accept and Cancel options in the form to the corresponding buttons 193 | #----------------------------------------------------------------------- 194 | $form.AcceptButton = $OKButton 195 | $form.CancelButton = $CancelButton 196 | 197 | #----------------------------------------------------------------------- 198 | # Activate the form 199 | #----------------------------------------------------------------------- 200 | $form.Add_Shown( { $form.Activate() }) 201 | 202 | $dialogResult = $form.ShowDialog() 203 | 204 | 205 | #----------------------------------------------------------------------- 206 | # Get the results of the dialog 207 | #----------------------------------------------------------------------- 208 | if ($dialogResult -eq "OK") { 209 | 210 | if($ControlType -eq [ControlType]::RadioButtons){ 211 | $checkedControl = $Panel.Controls | Where-Object { ([System.Windows.Forms.RadioButton]$_).Checked -eq $true } 212 | $selectedValue = $checkedControl.Text 213 | } 214 | 215 | if($ControlType -eq [ControlType]::ComboBox){ 216 | $selectedValue = $ComboBox.Text 217 | } 218 | 219 | 220 | return $items | Where-Object { 221 | $propValue = $_ | Select-Object -ExpandProperty $prop.Name 222 | $propValue.ToString() -eq $selectedValue 223 | } 224 | Write-Host $selectedValue 225 | } 226 | else { 227 | throw "Execution was cancelled by the user" 228 | } 229 | } 230 | 231 | 232 | <# 233 | .DESCRIPTION 234 | Capture user's input by presenting the choices as a group of radio buttons. 235 | .EXAMPLE 236 | PS C:\> Get-FormArrayItems -items $(get-childitem) -key name -dialogTitle "Select files" 237 | .PARAMETER items 238 | An array of objects 239 | .PARAMETER key 240 | Name of the property that will serve as a unique key for the radio buttons. This property will also be used to render text beside each radio button. 241 | .PARAMETER dialogTitle 242 | Descriptive Title of the dialog box. 243 | .OUTPUTS 244 | Returns an array item (proper object) that was selected via the form by clicking a radio button. 245 | #> 246 | function Get-FormArrayItems { 247 | Param( 248 | [Parameter(Mandatory = $true)] $items, 249 | [Parameter(Mandatory = $false)] $key, 250 | [Parameter(Mandatory = $false)] $dialogTitle 251 | ) 252 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 253 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 254 | 255 | if ($items.Count -eq 0) { 256 | Write-Host "'$dialogTitle' dialog did not contain any items. Returning `$null" 257 | return $null 258 | } 259 | 260 | if($key -eq $null){ 261 | $key = "Name" 262 | } 263 | 264 | if($dialogTitle -eq $null){ 265 | $dialogTitle = "Choose one:" 266 | } 267 | 268 | #----------------------------------------------------------------------- 269 | # Create a group that will contain your radio buttons 270 | #----------------------------------------------------------------------- 271 | $TitleLabel = New-Object System.Windows.Forms.Label 272 | $TitleLabel.Location = '40,5' 273 | $TitleLabel.Text = $dialogTitle 274 | $Font = New-Object System.Drawing.Font("Times New Roman", 13) 275 | $TitleLabel.Font = $Font 276 | $TitleLabel.Width = 550 277 | 278 | $Panel = New-Object System.Windows.Forms.Panel 279 | $Panel.Location = '40,30' 280 | $Panel.size = '600,1' 281 | $Panel.text = $dialogTitle 282 | 283 | $inputControlY = 10 284 | $radioButtonHeight = 20 285 | $spaceBetweenControls = $radioButtonHeight + 10 286 | $Panel.Height = $spaceBetweenControls + 20 287 | $MaximumPanelHeight = 290 288 | $RadioFont = New-Object System.Drawing.Font("Times New Roman", 12) 289 | 290 | $OKButton = New-Object System.Windows.Forms.Button 291 | 292 | 293 | #----------------------------------------------------------------------- 294 | # Create the collection of radio buttons 295 | #----------------------------------------------------------------------- 296 | foreach ($item in $items) { 297 | $CheckBox = New-Object System.Windows.Forms.CheckBox 298 | $CheckBox.Location = "20,$inputControlY" 299 | $CheckBox.size = "370,$radioButtonHeight" 300 | $CheckBox.Font = $RadioFont 301 | 302 | $props = Get-Member -InputObject $item -MemberType Property 303 | 304 | $prop = $props | Where-Object { $_.name -eq $key } 305 | $propValue = $item | Select-Object -ExpandProperty $prop.Name 306 | $CheckBox.Text = $propValue 307 | if ($CheckBox.Text -eq $defaultValue) { 308 | $CheckBox.Checked = $true 309 | } 310 | else { 311 | $CheckBox.Checked = $false 312 | } 313 | $Panel.Controls.AddRange($CheckBox) 314 | $inputControlY += $spaceBetweenControls 315 | 316 | if ($Panel.Height -lt $MaximumPanelHeight) { 317 | $Panel.Height += $spaceBetweenControls 318 | }else{ 319 | $Panel.BorderStyle = 1 320 | $Panel.VerticalScroll.Enabled = $true; 321 | $Panel.VerticalScroll.Visible = $true; 322 | $Panel.AutoScroll = $true; 323 | } 324 | } 325 | 326 | 327 | #----------------------------------------------------------------------- 328 | # Add an OK button 329 | #----------------------------------------------------------------------- 330 | $ActionButtonHeight = 40 331 | $ActionButtonY = $Panel.size.Height + $Panel.Location.Y + 10 332 | # $OKButton = New-Object System.Windows.Forms.Button 333 | $OKButton.Location = "130,$ActionButtonY" 334 | $OKButton.Size = "100,$ActionButtonHeight" 335 | $OKButton.Text = 'OK' 336 | $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 337 | 338 | #----------------------------------------------------------------------- 339 | #Add a cancel button 340 | #----------------------------------------------------------------------- 341 | $CancelButton = New-Object System.Windows.Forms.Button 342 | $CancelButton.Location = "255,$ActionButtonY" 343 | $CancelButton.Size = "100,$ActionButtonHeight" 344 | $CancelButton.Text = "Cancel" 345 | $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel 346 | 347 | $Form = New-Object System.Windows.Forms.Form 348 | $Form.width = $Panel.size.Width + 80 349 | $Form.height = $OKButton.Location.Y + $OKButton.Height + 60 350 | $Form.Text = $dialogTitle 351 | $Form.Topmost = $true 352 | $Form.StartPosition = "CenterScreen" 353 | 354 | #----------------------------------------------------------------------- 355 | # Set the font of the text to be used within the form 356 | #----------------------------------------------------------------------- 357 | $Font = New-Object System.Drawing.Font("Times New Roman", 10) 358 | $Form.Font = $Font 359 | 360 | $form.Controls.AddRange(@($TitleLabel, $Panel, $OKButton, $CancelButton)) 361 | 362 | #----------------------------------------------------------------------- 363 | # Assign the Accept and Cancel options in the form to the corresponding buttons 364 | #----------------------------------------------------------------------- 365 | $form.AcceptButton = $OKButton 366 | $form.CancelButton = $CancelButton 367 | 368 | #----------------------------------------------------------------------- 369 | # Activate the form 370 | #----------------------------------------------------------------------- 371 | $form.Add_Shown( { $form.Activate() }) 372 | 373 | $dialogResult = $form.ShowDialog() 374 | 375 | 376 | #----------------------------------------------------------------------- 377 | # Get the results of the dialog 378 | #----------------------------------------------------------------------- 379 | if ($dialogResult -eq "OK") { 380 | 381 | $checkedControls = $Panel.Controls | Where-Object { ([System.Windows.Forms.CheckBox]$_).Checked -eq $true } 382 | $checkedKeys = $checkedControls | % {$_.Text } 383 | 384 | return $items | Where-Object { 385 | $propValue = $_ | Select-Object -ExpandProperty $prop.Name 386 | $checkedKeys.contains($propValue.ToString()) 387 | } 388 | Write-Host $selectedValue 389 | } 390 | else { 391 | throw "Execution was cancelled by the user" 392 | } 393 | } 394 | 395 | 396 | <# 397 | .DESCRIPTION 398 | Simple Dialog box that returns $true if user clicks "Yes" and $false if "No" is clicked. 399 | Useful if you want to make your script interactive and user-friendly. 400 | .EXAMPLE 401 | PS C:\> $createNewResourceGroup = Get-FormBinaryAnswer "Do you want to create a new Resource Group?" 402 | Displays a dialog box with Yes and No buttons. 403 | .INPUTS 404 | dialogTitle 405 | .OUTPUTS 406 | $true or $false 407 | #> 408 | function Get-FormBinaryAnswer { 409 | Param( 410 | [Parameter(Position = 0)] $dialogTitle 411 | ) 412 | 413 | $options = @([pscustomobject]@{Value = $true; Name = "Yes" }, [pscustomobject]@{Value = $false; Name = "No" }) 414 | $answer = Get-FormArrayItem -items $options -key "Name" -dialogTitle $dialogTitle 415 | return $answer.Value 416 | } 417 | 418 | <# 419 | .DESCRIPTION 420 | Long description 421 | .EXAMPLE 422 | PS C:\> $UserName = Get-FormStringInput "Enter your name" 423 | Shows a dialog with an input box with OK and Cancel buttons. 424 | .EXAMPLE 425 | PS C:\> $resourceGroupName = Get-FormStringInput "Enter new resource group name" -defaultValue "Comments-Notification" 426 | Shows a dialog with an input where "Comments-Notification" is pre-populated. 427 | .OUTPUTS 428 | returns a string that user typed in an input box. 429 | #> 430 | function Get-FormStringInput { 431 | Param( 432 | [Parameter(Mandatory = $true, Position = 0)] $dialogTitle, 433 | [Parameter(Position = 1)] $defaultValue 434 | ) 435 | 436 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 437 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 438 | 439 | $label = New-Object System.Windows.Forms.Label 440 | $label.size = "600,50" 441 | $label.Location = New-Object System.Drawing.Point(10, 10) 442 | $label.Text = $dialogTitle 443 | $Font = New-Object System.Drawing.Font("Times New Roman", 12) 444 | $label.Font = $Font 445 | 446 | $textBox = New-Object System.Windows.Forms.TextBox 447 | $textBox.size = "600,50" 448 | $textBox.Location = New-Object System.Drawing.Point(10, 60) 449 | $Font = New-Object System.Drawing.Font("Times New Roman", 15) 450 | $textBox.Font = $Font 451 | $textBox.Text = $defaultValue 452 | 453 | #----------------------------------------------------------------------- 454 | # Add an OK button 455 | #----------------------------------------------------------------------- 456 | $ActionButtonHeight = 40 457 | $ActionButtonY = 140 458 | $OKButton = New-Object System.Windows.Forms.Button 459 | $OKButton.Location = "130,$ActionButtonY" 460 | $OKButton.Size = "100,$ActionButtonHeight" 461 | $OKButton.Text = 'OK' 462 | $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 463 | 464 | #----------------------------------------------------------------------- 465 | # Add an cancel button 466 | #---------------------------------------------------------------------- 467 | $CancelButton = New-Object System.Windows.Forms.Button 468 | $CancelButton.Location = "255,$ActionButtonY" 469 | $CancelButton.Size = "100,$ActionButtonHeight" 470 | $CancelButton.Text = "Cancel" 471 | $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel 472 | 473 | $Form = New-Object System.Windows.Forms.Form 474 | $Form.width = $textBox.size.Width + 50 475 | $Form.height = $OKButton.Location.Y + $OKButton.Height + 80 476 | $Form.Text = $dialogTitle 477 | $Form.Topmost = $true 478 | $Form.StartPosition = "CenterScreen" 479 | 480 | #----------------------------------------------------------------------- 481 | # Set the font of the text to be used within the form 482 | #----------------------------------------------------------------------- 483 | $Font = New-Object System.Drawing.Font("Times New Roman", 10) 484 | $Form.Font = $Font 485 | 486 | #----------------------------------------------------------------------- 487 | # Add all the Form controls on one line 488 | #----------------------------------------------------------------------- 489 | $form.Controls.AddRange(@($label, $textBox, $OKButton, $CancelButton)) 490 | 491 | # Assign the Accept and Cancel options in the form to the corresponding buttons 492 | $form.AcceptButton = $OKButton 493 | $form.CancelButton = $CancelButton 494 | 495 | #----------------------------------------------------------------------- 496 | # Activate the form 497 | #----------------------------------------------------------------------- 498 | $form.Add_Shown( { $form.Activate() }) 499 | 500 | #----------------------------------------------------------------------- 501 | # Get the results from the button click 502 | #----------------------------------------------------------------------- 503 | $dialogResult = $form.ShowDialog() 504 | 505 | #----------------------------------------------------------------------- 506 | # If the OK button is selected 507 | #----------------------------------------------------------------------- 508 | if ($dialogResult -eq "OK") { 509 | return $textBox.Text 510 | 511 | } 512 | else { 513 | throw "Execution was cencelled by the user" 514 | } 515 | } 516 | 517 | 518 | <# 519 | .DESCRIPTION 520 | Displays the dynamic form that renders one text box for every object's property. 521 | When user populates the form and clicks OK - returned object contains property values from the form's inputs 522 | .EXAMPLE 523 | PS C:\> $preDeployInputs = @{ 524 | suffix = "" 525 | TimeZone = "Central Standard Time" 526 | sendGridRegistrationEmail = "ENTER_VALID_EMAIL_ADDRESS" 527 | fromEmail = "no-reply@DOMAIN.COM" 528 | } 529 | PS C:\> $preDeployInputs = Get-FormItemProperties -item $preDeployInputs -dialogTitle "Fill these required fields" 530 | Displays the form that has 4 text inputs. When user populates them and clicks OK - returned object contains property values from the form's inputs 531 | .INPUTS 532 | PSCustomObject or a Hashtable 533 | .OUTPUTS 534 | Returns the same object that was passed in, but with properties populated via the Form that was displayed 535 | #> 536 | function Get-FormItemProperties { 537 | Param( 538 | [Parameter(Mandatory = $true)] $item, 539 | [Parameter(Mandatory = $false)] $dialogTitle, 540 | [Parameter(Mandatory = $false)] $propertiesOrder, 541 | [Parameter(Mandatory = $false)] $base64FormIcon, 542 | [Parameter(Mandatory = $false)] $note 543 | ) 544 | 545 | if ($item -eq $null) { 546 | exit 547 | } 548 | 549 | #----------------------------------------------------------------------- 550 | # Convert the object to hashtable 551 | #----------------------------------------------------------------------- 552 | if ($item.GetType().Name -eq "PSCustomObject") { 553 | $hashTable = @{ } 554 | $item.psobject.properties | ForEach-Object { $hashTable[$_.Name] = $_.Value } 555 | $item = $hashTable 556 | } 557 | 558 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 559 | [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 560 | 561 | if ($dialogTitle -eq $null) { 562 | $dialogTitle = "Fill out values:" 563 | } 564 | 565 | #----------------------------------------------------------------------- 566 | # Create a group that will contain textboxes 567 | #----------------------------------------------------------------------- 568 | $Panel = New-Object System.Windows.Forms.Panel 569 | $Panel.DockPadding.Bottom = 40 570 | $Panel.Dock = [System.Windows.Forms.DockStyle]::Fill 571 | 572 | $Font = New-Object System.Drawing.Font("Times New Roman", 12) 573 | 574 | $textboxY = 40 575 | $textboxHeight = 20 576 | $spaceBetweenTextboxes = $textboxHeight + 22 577 | 578 | $textboxes = @() 579 | foreach ($key in $propertiesOrder) { 580 | 581 | $Label = New-Object System.Windows.Forms.Label 582 | $Label.Location = "20,$textboxY" 583 | $Label.size = "450,$textboxHeight" 584 | $Label.Text = $key 585 | 586 | $textboxY += $spaceBetweenTextboxes / 2 587 | 588 | $TextBox = New-Object System.Windows.Forms.TextBox 589 | $TextBox.Location = "20,$textboxY" 590 | $TextBox.size = "450,$textboxHeight" 591 | 592 | $TextBox.Text = $item[$key] 593 | $Panel.Controls.AddRange(@($Label, $TextBox)) 594 | $textboxes += $TextBox 595 | $textboxY += $spaceBetweenTextboxes 596 | $TextBox.Font = $Font 597 | } 598 | 599 | $Panel.BorderStyle = 1 600 | $Panel.VerticalScroll.Enabled = $true; 601 | $Panel.VerticalScroll.Visible = $true; 602 | $Panel.AutoScroll = $true; 603 | 604 | 605 | $Form = New-Object System.Windows.Forms.Form 606 | $Form.Height = 450 607 | $Form.Width = 530 608 | $Form.Text = $dialogTitle 609 | $Form.Topmost = $true 610 | $Form.StartPosition = "CenterScreen" 611 | 612 | # Base 64 encoded image 613 | if ($base64FormIcon) { 614 | $iconBase64 = $base64FormIcon 615 | $iconBytes = [Convert]::FromBase64String($iconBase64) 616 | $stream = New-Object IO.MemoryStream($iconBytes, 0, $iconBytes.Length) 617 | $stream.Write($iconBytes, 0, $iconBytes.Length); 618 | $iconImage = [System.Drawing.Image]::FromStream($stream, $true) 619 | $Form.Icon = [System.Drawing.Icon]::FromHandle((New-Object System.Drawing.Bitmap -Argument $stream).GetHIcon()) 620 | } 621 | 622 | #----------------------------------------------------------------------- 623 | # Add a note 624 | #----------------------------------------------------------------------- 625 | if ($note){ 626 | $NoteLabel = New-Object System.Windows.Forms.Label 627 | $NoteLabel.Location = "20,$textboxY" 628 | $NoteLabel.size = "450,$textboxHeight" 629 | $NoteLabel.Font = 'Times New Roman,13' 630 | $NoteLabel.Text = $note 631 | $textboxY += $spaceBetweenTextboxes/2 632 | $Panel.Controls.AddRange(@($NoteLabel)) 633 | } 634 | 635 | 636 | #----------------------------------------------------------------------- 637 | # Add an OK button 638 | #----------------------------------------------------------------------- 639 | $ActionButtonHeight = 40 640 | $ActionButtonY = $GroupBox.size.Height + $GroupBox.Location.Y + 10 641 | $OKButton = New-Object System.Windows.Forms.Button 642 | $OKButton.Size = "100,$ActionButtonHeight" 643 | $textboxY+= 30 644 | $OKButton.Location = "20,$textboxY" 645 | $OKButton.Text = 'OK' 646 | $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK 647 | 648 | #----------------------------------------------------------------------- 649 | # Add an Cancel button 650 | #----------------------------------------------------------------------- 651 | $CancelButton = New-Object System.Windows.Forms.Button 652 | $CancelButton.Location = "370,$textboxY" 653 | $CancelButton.Size = "100,$ActionButtonHeight" 654 | $CancelButton.Text = "Cancel" 655 | $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel 656 | 657 | 658 | 659 | #----------------------------------------------------------------------- 660 | # Set the font of the text to be used within the form 661 | #----------------------------------------------------------------------- 662 | $Font = New-Object System.Drawing.Font("Times New Roman", 10) 663 | $Form.Font = $Font 664 | 665 | $form.Controls.AddRange(@($Panel)) 666 | 667 | $Panel.Controls.AddRange(@($OKButton, $CancelButton)) 668 | 669 | #----------------------------------------------------------------------- 670 | # Assign the Accept and Cancel options in the form to the corresponding buttons 671 | #----------------------------------------------------------------------- 672 | $form.AcceptButton = $OKButton 673 | $form.CancelButton = $CancelButton 674 | 675 | 676 | #----------------------------------------------------------------------- 677 | # Activate the form 678 | #----------------------------------------------------------------------- 679 | $form.Add_Shown( { $form.Activate() }) 680 | #----------------------------------------------------------------------- 681 | # Get the results from the button click 682 | #----------------------------------------------------------------------- 683 | $dialogResult = $form.ShowDialog() 684 | 685 | #----------------------------------------------------------------------- 686 | # If the OK button is selected 687 | #----------------------------------------------------------------------- 688 | if ($dialogResult -eq "OK") { 689 | 690 | $hashTable = @{ } 691 | $i = 0; 692 | foreach ($key in $propertiesOrder) { 693 | $hashTable[$key] = $textboxes[$i].Text 694 | $i++; 695 | } 696 | return $hashTable 697 | } 698 | else { 699 | throw "Execution was cancelled by the user" 700 | } 701 | 702 | } -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/AngleSharp.Css.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/AngleSharp.Css.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/AngleSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/AngleSharp.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.ApplicationInsights.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.ApplicationInsights.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Azure.ActiveDirectory.GraphClient.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Azure.ActiveDirectory.GraphClient.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Bcl.AsyncInterfaces.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Bcl.AsyncInterfaces.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.Edm.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.Edm.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.OData.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.OData.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.Services.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Data.Services.Client.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Caching.Abstractions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Caching.Abstractions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Caching.Memory.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Caching.Memory.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Options.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Options.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.WebEncoders.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Extensions.WebEncoders.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Graph.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Graph.Core.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Graph.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Graph.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Identity.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Identity.Client.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Clients.ActiveDirectory.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Clients.ActiveDirectory.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.JsonWebTokens.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.JsonWebTokens.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Logging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Logging.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Tokens.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.Tokens.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.IdentityModel.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Office.Client.Policy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Office.Client.Policy.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Office.Client.TranslationServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Office.Client.TranslationServices.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Online.SharePoint.Client.Tenant.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Online.SharePoint.Client.Tenant.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.DocumentManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.DocumentManagement.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Publishing.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Publishing.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Runtime.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Search.Applications.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Search.Applications.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Search.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Search.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Taxonomy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.Taxonomy.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.UserProfiles.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.UserProfiles.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.WorkflowServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.WorkflowServices.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.SharePoint.Client.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Win32.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.Win32.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.WindowsAzure.Configuration.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.WindowsAzure.Configuration.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.WindowsAzure.Storage.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Microsoft.WindowsAzure.Storage.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/OfficeDevPnP.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/OfficeDevPnP.Core.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PSGetModuleInfo.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PSGetModuleInfo.xml -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PnP.PowerShell.CmdletHelpAttributes.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PnP.PowerShell.CmdletHelpAttributes.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PnP.PowerShell.Online.Commands.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/PnP.PowerShell.Online.Commands.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/SharePointPnP.IdentityModel.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/SharePointPnP.IdentityModel.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/SharePointPnP.Modernization.Framework.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/SharePointPnP.Modernization.Framework.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/SharePointPnPPowerShellOnline.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | RootModule = 'PnP.PowerShell.Online.Commands.dll' 3 | ModuleVersion = '3.29.2101.0' 4 | Description = 'Microsoft 365 Patterns and Practices PowerShell Cmdlets for SharePoint Online' 5 | GUID = '8f1147be-a8e4-4bd2-a705-841d5334edc0' 6 | Author = 'Microsoft 365 Patterns and Practices' 7 | CompanyName = 'Microsoft 365 Patterns and Practices' 8 | DotNetFrameworkVersion = '4.6.1' 9 | ProcessorArchitecture = 'None' 10 | FunctionsToExport = '*' 11 | CmdletsToExport = 'Add-PnPAlert','Add-PnPApp','Add-PnPApplicationCustomizer','Add-PnPClientSidePage','Add-PnPClientSidePageSection','Add-PnPClientSideText','Add-PnPClientSideWebPart','Add-PnPContentType','Add-PnPContentTypeToDocumentSet','Add-PnPContentTypeToList','Add-PnPCustomAction','Add-PnPDataRowsToProvisioningTemplate','Add-PnPDocumentSet','Add-PnPEventReceiver','Add-PnPField','Add-PnPFieldFromXml','Add-PnPFieldToContentType','Add-PnPFile','Add-PnPFileToProvisioningTemplate','Add-PnPFolder','Add-PnPHtmlPublishingPageLayout','Add-PnPHubSiteAssociation','Add-PnPIndexedProperty','Add-PnPJavaScriptBlock','Add-PnPJavaScriptLink','Add-PnPListFoldersToProvisioningTemplate','Add-PnPListItem','Add-PnPMasterPage','Add-PnPMicrosoft365GroupMember','Add-PnPMicrosoft365GroupOwner','Add-PnPMicrosoft365GroupToSite','Add-PnPNavigationNode','Test-PnPOffice365GroupAliasIsUsed','Add-PnPOrgAssetsLibrary','Add-PnPOrgNewsSite','Add-PnPProvisioningTemplate','Add-PnPPublishingImageRendition','Add-PnPPublishingPage','Add-PnPPublishingPageLayout','Add-PnPRoleDefinition','Add-PnPSiteClassification','Add-PnPSiteCollectionAdmin','Add-PnPSiteCollectionAppCatalog','Add-PnPSiteDesign','Add-PnPSiteDesignTask','Add-PnPSiteScript','Add-PnPStoredCredential','Add-PnPTaxonomyField','Add-PnPTeamsChannel','Add-PnPTeamsTab','Add-PnPTeamsTeam','Add-PnPTeamsUser','Add-PnPTenantCdnOrigin','Add-PnPTenantSequence','Add-PnPTenantSequenceSite','Add-PnPTenantSequenceSubSite','Add-PnPTenantTheme','Add-PnPUserToGroup','Add-PnPView','Add-PnPWebhookSubscription','Add-PnPWebPartToWebPartPage','Add-PnPWebPartToWikiPage','Add-PnPWikiPage','Add-PnPWorkflowDefinition','Add-PnPWorkflowSubscription','Apply-PnPProvisioningTemplate','Set-PnPSitePolicy','Apply-PnPTenantTemplate','Approve-PnPTenantServicePrincipalPermissionRequest','Clear-PnPDefaultColumnValues','Clear-PnPListItemAsRecord','Clear-PnPMicrosoft365GroupMember','Clear-PnPMicrosoft365GroupOwner','Clear-PnPRecycleBinItem','Clear-PnPTenantAppCatalogUrl','Clear-PnPTenantRecycleBinItem','Connect-PnPOnline','Convert-PnPFolderToProvisioningTemplate','Convert-PnPProvisioningTemplate','ConvertTo-PnPClientSidePage','Copy-PnPFile','Deny-PnPTenantServicePrincipalPermissionRequest','Disable-PnPFeature','Disable-PnPInPlaceRecordsManagementForSite','Disable-PnPPowerShellTelemetry','Disable-PnPResponsiveUI','Disable-PnPSharingForNonOwnersOfSite','Disable-PnPSiteClassification','Disable-PnPTenantServicePrincipal','Disconnect-PnPOnline','Enable-PnPCommSite','Enable-PnPFeature','Enable-PnPInPlaceRecordsManagementForSite','Enable-PnPPowerShellTelemetry','Enable-PnPResponsiveUI','Enable-PnPSiteClassification','Enable-PnPTenantServicePrincipal','Get-PnPProperty','Export-PnPClientSidePage','Export-PnPClientSidePageMapping','Export-PnPListToProvisioningTemplate','Export-PnPTaxonomy','Export-PnPTermGroupToXml','Find-PnPFile','Get-PnPAADUser','Get-PnPAlert','Get-PnPApp','Get-PnPAppInstance','Get-PnPApplicationCustomizer','Get-PnPAuditing','Get-PnPAuthenticationRealm','Get-PnPAvailableClientSideComponents','Get-PnPAvailableLanguage','Get-PnPClientSideComponent','Get-PnPClientSidePage','Get-PnPContentType','Get-PnPContentTypePublishingHubUrl','Get-PnPCustomAction','Get-PnPDefaultColumnValues','Get-PnPDeletedMicrosoft365Group','Get-PnPDocumentSetTemplate','Get-PnPEventReceiver','Get-PnPException','Get-PnPFeature','Get-PnPField','Get-PnPFile','Get-PnPFileVersion','Get-PnPFolder','Get-PnPFolderItem','Get-PnPGraphAccessToken','Get-PnPGraphSubscription','Get-PnPGroup','Get-PnPGroupMembers','Get-PnPGroupPermissions','Get-PnPHealthScore','Get-PnPHideDefaultThemes','Get-PnPHomePage','Get-PnPHomeSite','Get-PnPHubSite','Get-PnPHubSiteChild','Get-PnPIndexedPropertyKeys','Get-PnPInPlaceRecordsManagement','Get-PnPIsSiteAliasAvailable','Get-PnPJavaScriptLink','Get-PnPKnowledgeHubSite','Get-PnPLabel','Get-PnPList','Get-PnPListInformationRightsManagement','Get-PnPListItem','Get-PnPListRecordDeclaration','Get-PnPManagementApiAccessToken','Get-PnPMasterPage','Get-PnPMicrosoft365Group','Get-PnPMicrosoft365GroupMembers','Get-PnPMicrosoft365GroupOwners','Get-PnPNavigationNode','Get-PnPOffice365CurrentServiceStatus','Get-PnPOffice365HistoricalServiceStatus','Get-PnPOffice365ServiceMessage','Get-PnPOffice365Services','Get-PnPOfficeManagementApiAccessToken','Get-PnPOrgAssetsLibrary','Get-PnPOrgNewsSite','Get-PnPAccessToken','Get-PnPAzureCertificate','Get-PnPAppAuthAccessToken','Get-PnPConnection','Get-PnPSiteCollectionTermStore','Get-PnPStorageEntity','Get-PnPTenantSyncClientRestriction','Get-PnPPowerShellTelemetryEnabled','Get-PnPPropertyBag','Get-PnPProvisioningTemplate','Get-PnPPublishingImageRendition','Get-PnPRecycleBinItem','Get-PnPRequestAccessEmails','Get-PnPRoleDefinition','Get-PnPSearchConfiguration','Get-PnPSearchCrawlLog','Get-PnPSearchSettings','Get-PnPSharingForNonOwnersOfSite','Get-PnPSite','Get-PnPSiteClassification','Get-PnPSiteClosure','Get-PnPSiteCollectionAdmin','Get-PnPSiteDesign','Get-PnPSiteDesignRights','Get-PnPSiteDesignRun','Get-PnPSiteDesignRunStatus','Get-PnPSiteDesignTask','Get-PnPSitePolicy','Get-PnPSiteScript','Get-PnPSiteScriptFromList','Get-PnPSiteScriptFromWeb','Get-PnPSiteSearchQueryResults','Get-PnPContext','Get-PnPStoredCredential','Get-PnPSubWebs','Get-PnPTaxonomyItem','Get-PnPTaxonomySession','Get-PnPTeamsApp','Get-PnPTeamsChannel','Get-PnPTeamsChannelMessage','Get-PnPTeamsTab','Get-PnPTeamsTeam','Get-PnPTeamsUser','Get-PnPTenant','Get-PnPTenantAppCatalogUrl','Get-PnPTenantCdnEnabled','Get-PnPTenantCdnOrigin','Get-PnPTenantCdnPolicies','Get-PnPTenantId','Get-PnPTenantRecycleBinItem','Get-PnPTenantSequence','Get-PnPTenantSequenceSite','Get-PnPTenantServicePrincipal','Get-PnPTenantServicePrincipalPermissionGrants','Get-PnPTenantServicePrincipalPermissionRequests','Get-PnPTenantSite','Get-PnPTenantTemplate','Get-PnPTenantTheme','Get-PnPTerm','Get-PnPTermGroup','Get-PnPTermSet','Get-PnPFooter','Get-PnPTheme','Get-PnPTimeZoneId','Get-PnPUnifiedAuditLog','Get-PnPUPABulkImportStatus','Get-PnPUser','Get-PnPUserOneDriveQuota','Get-PnPUserProfileProperty','Get-PnPView','Get-PnPWeb','Get-PnPWebhookSubscriptions','Get-PnPWebPart','Get-PnPWebPartProperty','Get-PnPWebPartXml','Get-PnPWebTemplates','Get-PnPWikiPageContent','Get-PnPWorkflowDefinition','Get-PnPWorkflowInstance','Get-PnPWorkflowSubscription','Grant-PnPHubSiteRights','Grant-PnPSiteDesignRights','Grant-PnPTenantServicePrincipalPermission','Import-PnPAppPackage','Import-PnPTaxonomy','Import-PnPTermGroupFromXml','Import-PnPTermSet','Initialize-PnPPowerShellAuthentication','Install-PnPApp','Install-PnPSolution','Invoke-PnPQuery','Invoke-PnPSiteDesign','Invoke-PnPSPRestMethod','Invoke-PnPWebAction','Measure-PnPList','Measure-PnPWeb','Measure-PnPResponseTime','Move-PnPClientSideComponent','Move-PnPFile','Move-PnPFolder','Move-PnPListItemToRecycleBin','Move-PnPRecycleBinItem','New-PnPExtensibilityHandlerObject','New-PnPGraphSubscription','New-PnPGroup','New-PnPList','New-PnPPersonalSite','New-PnPAzureCertificate','New-PnPMicrosoft365Group','New-PnPProvisioningTemplate','New-PnPProvisioningTemplateFromFolder','New-PnPSite','New-PnPTeamsApp','New-PnPTeamsTeam','New-PnPTenantSequence','New-PnPTenantSequenceCommunicationSite','New-PnPTenantSequenceTeamNoGroupSite','New-PnPTenantSequenceTeamNoGroupSubSite','New-PnPTenantSequenceTeamSite','New-PnPTenantSite','New-PnPTenantTemplate','New-PnPTerm','New-PnPTermGroup','New-PnPTermLabel','New-PnPTermSet','New-PnPUPABulkImportJob','New-PnPUser','New-PnPWeb','Publish-PnPApp','Read-PnPProvisioningTemplate','Read-PnPTenantTemplate','Register-PnPAppCatalogSite','Register-PnPHubSite','Register-PnPManagementShellAccess','Remove-PnPAlert','Remove-PnPApp','Remove-PnPApplicationCustomizer','Remove-PnPClientSideComponent','Remove-PnPClientSidePage','Remove-PnPContentType','Remove-PnPContentTypeFromDocumentSet','Remove-PnPContentTypeFromList','Remove-PnPCustomAction','Remove-PnPDeletedMicrosoft365Group','Remove-PnPIndexedProperty','Remove-PnPEventReceiver','Remove-PnPField','Remove-PnPFieldFromContentType','Remove-PnPFile','Remove-PnPFileFromProvisioningTemplate','Remove-PnPFileVersion','Remove-PnPFolder','Remove-PnPGraphSubscription','Remove-PnPGroup','Remove-PnPHomeSite','Remove-PnPHubSiteAssociation','Remove-PnPJavaScriptLink','Remove-PnPKnowledgeHubSite','Remove-PnPList','Remove-PnPListItem','Remove-PnPMicrosoft365Group','Remove-PnPMicrosoft365GroupMember','Remove-PnPMicrosoft365GroupOwner','Remove-PnPNavigationNode','Remove-PnPOrgAssetsLibrary','Remove-PnPOrgNewsSite','Remove-PnPStorageEntity','Remove-PnPPropertyBagValue','Remove-PnPPublishingImageRendition','Remove-PnPRoleDefinition','Remove-PnPSearchConfiguration','Remove-PnPTenantSite','Remove-PnPSiteClassification','Remove-PnPSiteCollectionAdmin','Remove-PnPSiteCollectionAppCatalog','Remove-PnPSiteDesign','Remove-PnPSiteDesignTask','Remove-PnPSiteScript','Remove-PnPStoredCredential','Remove-PnPTaxonomyItem','Remove-PnPTeamsApp','Remove-PnPTeamsChannel','Remove-PnPTeamsTab','Remove-PnPTeamsTeam','Remove-PnPTeamsUser','Remove-PnPTenantCdnOrigin','Remove-PnPTenantTheme','Remove-PnPTermGroup','Remove-PnPUser','Remove-PnPUserFromGroup','Remove-PnPView','Remove-PnPWeb','Remove-PnPWebhookSubscription','Remove-PnPWebPart','Remove-PnPWikiPage','Remove-PnPWorkflowDefinition','Remove-PnPWorkflowSubscription','Rename-PnPFile','Rename-PnPFolder','Request-PnPAccessToken','Request-PnPReIndexList','Request-PnPReIndexWeb','Reset-PnPFileVersion','Reset-PnPLabel','Reset-PnPMicrosoft365GroupExpiration','Reset-PnPUserOneDriveQuotaToDefault','Resolve-PnPFolder','Restore-PnPDeletedMicrosoft365Group','Restore-PnPFileVersion','Restore-PnPRecycleBinItem','Restore-PnPTenantRecycleBinItem','Resume-PnPWorkflowInstance','Revoke-PnPHubSiteRights','Revoke-PnPSiteDesignRights','Revoke-PnPTenantServicePrincipalPermission','Save-PnPClientSidePageConversionLog','Save-PnPProvisioningTemplate','Save-PnPTenantTemplate','Send-PnPMail','Set-PnPApplicationCustomizer','Set-PnPAppSideLoading','Set-PnPAuditing','Set-PnPAvailablePageLayouts','Set-PnPClientSidePage','Set-PnPClientSideText','Set-PnPClientSideWebPart','Set-PnPContext','Set-PnPDefaultColumnValues','Set-PnPDefaultContentTypeToList','Set-PnPDefaultPageLayout','Set-PnPField','Set-PnPDocumentSetField','Set-PnPFileCheckedIn','Set-PnPFileCheckedOut','Set-PnPFolderPermission','Set-PnPFooter','Set-PnPGraphSubscription','Set-PnPGroup','Set-PnPGroupPermissions','Set-PnPHideDefaultThemes','Set-PnPHomePage','Set-PnPHomeSite','Set-PnPHubSite','Set-PnPIndexedProperties','Set-PnPInPlaceRecordsManagement','Set-PnPKnowledgeHubSite','Set-PnPLabel','Set-PnPList','Set-PnPListInformationRightsManagement','Set-PnPListItem','Set-PnPListItemAsRecord','Set-PnPListItemPermission','Set-PnPListPermission','Set-PnPListRecordDeclaration','Set-PnPMasterPage','Set-PnPMicrosoft365Group','Set-PnPMinimalDownloadStrategy','Set-PnPStorageEntity','Set-PnPPropertyBagValue','Set-PnPProvisioningTemplateMetadata','Set-PnPRequestAccessEmails','Set-PnPSearchConfiguration','Set-PnPSearchSettings','Set-PnPSite','Set-PnPSiteClosure','Set-PnPSiteDesign','Set-PnPSiteScript','Set-PnPTaxonomyFieldValue','Set-PnPTeamifyPromptHidden','Set-PnPTeamsChannel','Set-PnPTeamsTab','Set-PnPTeamsTeam','Set-PnPTeamsTeamArchivedState','Set-PnPTeamsTeamPicture','Set-PnPTenant','Set-PnPTenantAppCatalogUrl','Set-PnPTenantCdnEnabled','Set-PnPTenantCdnPolicy','Set-PnPTenantSite','Set-PnPTenantSyncClientRestriction','Set-PnPTermGroup','Set-PnPTermSet','Set-PnPTheme','Set-PnPTraceLog','Set-PnPUserOneDriveQuota','Set-PnPUserProfileProperty','Set-PnPView','Set-PnPWeb','Set-PnPWebhookSubscription','Set-PnPWebPartProperty','Set-PnPWebPermission','Set-PnPWebTheme','Set-PnPWikiPageContent','Copy-PnPItemProxy','Move-PnPItemProxy','Start-PnPWorkflowInstance','Stop-PnPWorkflowInstance','Submit-PnPSearchQuery','Submit-PnPTeamsChannelMessage','Sync-PnPAppToTeams','Test-PnPListItemIsRecord','Test-PnPTenantTemplate','Uninstall-PnPApp','Uninstall-PnPAppInstance','Uninstall-PnPSolution','Unpublish-PnPApp','Unregister-PnPHubSite','Update-PnPApp','Update-PnPSiteClassification','Update-PnPTeamsApp' 12 | VariablesToExport = '*' 13 | AliasesToExport = '*' 14 | FormatsToProcess = 'PnP.PowerShell.Online.Commands.Format.ps1xml' 15 | PrivateData = @{ 16 | PSData = @{ 17 | ProjectUri = 'https://aka.ms/sppnp' 18 | IconUri = 'https://github.com/pnp/media/blob/19f8d40f400f9f0d766a8efd69496d8f536b853f/parker/ms/300w/parker-ms-300.png' 19 | } 20 | } 21 | } 22 | # SIG # Begin signature block 23 | # MIIjigYJKoZIhvcNAQcCoIIjezCCI3cCAQExDzANBglghkgBZQMEAgEFADB5Bgor 24 | # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG 25 | # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDQPpzuC9TiW82S 26 | # A66ZYWaT4orpsm+qD4DV9czVh0UfTaCCDYUwggYDMIID66ADAgECAhMzAAABiK9S 27 | # 1rmSbej5AAAAAAGIMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD 28 | # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy 29 | # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p 30 | # bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ4WhcNMjEwMzAzMTgzOTQ4WjB0MQsw 31 | # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u 32 | # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy 33 | # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB 34 | # AQCSCNryE+Cewy2m4t/a74wZ7C9YTwv1PyC4BvM/kSWPNs8n0RTe+FvYfU+E9uf0 35 | # t7nYlAzHjK+plif2BhD+NgdhIUQ8sVwWO39tjvQRHjP2//vSvIfmmkRoML1Ihnjs 36 | # 9kQiZQzYRDYYRp9xSQYmRwQjk5hl8/U7RgOiQDitVHaU7BT1MI92lfZRuIIDDYBd 37 | # vXtbclYJMVOwqZtv0O9zQCret6R+fRSGaDNfEEpcILL+D7RV3M4uaJE4Ta6KAOdv 38 | # V+MVaJp1YXFTZPKtpjHO6d9pHQPZiG7NdC6QbnRGmsa48uNQrb6AfmLKDI1Lp31W 39 | # MogTaX5tZf+CZT9PSuvjOCLNAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE 40 | # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUj9RJL9zNrPcL10RZdMQIXZN7MG8w 41 | # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh 42 | # dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ1ODM4NjAfBgNVHSMEGDAW 43 | # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v 44 | # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw 45 | # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov 46 | # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx 47 | # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB 48 | # ACnXo8hjp7FeT+H6iQlV3CcGnkSbFvIpKYafgzYCFo3UHY1VHYJVb5jHEO8oG26Q 49 | # qBELmak6MTI+ra3WKMTGhE1sEIlowTcp4IAs8a5wpCh6Vf4Z/bAtIppP3p3gXk2X 50 | # 8UXTc+WxjQYsDkFiSzo/OBa5hkdW1g4EpO43l9mjToBdqEPtIXsZ7Hi1/6y4gK0P 51 | # mMiwG8LMpSn0n/oSHGjrUNBgHJPxgs63Slf58QGBznuXiRaXmfTUDdrvhRocdxIM 52 | # i8nXQwWACMiQzJSRzBP5S2wUq7nMAqjaTbeXhJqD2SFVHdUYlKruvtPSwbnqSRWT 53 | # GI8s4FEXt+TL3w5JnwVZmZkUFoioQDMMjFyaKurdJ6pnzbr1h6QW0R97fWc8xEIz 54 | # LIOiU2rjwWAtlQqFO8KNiykjYGyEf5LyAJKAO+rJd9fsYR+VBauIEQoYmjnUbTXM 55 | # SY2Lf5KMluWlDOGVh8q6XjmBccpaT+8tCfxpaVYPi1ncnwTwaPQvVq8RjWDRB7Pa 56 | # 8ruHgj2HJFi69+hcq7mWx5nTUtzzFa7RSZfE5a1a5AuBmGNRr7f8cNfa01+tiWjV 57 | # Kk1a+gJUBSP0sIxecFbVSXTZ7bqeal45XSDIisZBkWb+83TbXdTGMDSUFKTAdtC+ 58 | # r35GfsN8QVy59Hb5ZYzAXczhgRmk7NyE6jD0Ym5TKiW5MIIHejCCBWKgAwIBAgIK 59 | # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV 60 | # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv 61 | # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm 62 | # aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw 63 | # OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE 64 | # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD 65 | # VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG 66 | # 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la 67 | # UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc 68 | # 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D 69 | # dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ 70 | # lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk 71 | # kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 72 | # A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd 73 | # X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL 74 | # 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd 75 | # sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 76 | # T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS 77 | # 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI 78 | # bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL 79 | # BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD 80 | # uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv 81 | # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf 82 | # MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 83 | # dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf 84 | # MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF 85 | # BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h 86 | # cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA 87 | # YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn 88 | # 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 89 | # v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b 90 | # pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ 91 | # KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy 92 | # CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp 93 | # mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi 94 | # hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb 95 | # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS 96 | # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL 97 | # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX 98 | # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFVswghVXAgEBMIGVMH4x 99 | # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt 100 | # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p 101 | # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAGIr1LWuZJt6PkAAAAA 102 | # AYgwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw 103 | # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIPri 104 | # VnxY10H2CcqP3dP9GwEnQ/t2ryXrUrxu2hh8oNmjMEIGCisGAQQBgjcCAQwxNDAy 105 | # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j 106 | # b20wDQYJKoZIhvcNAQEBBQAEggEAhPPKxTpY3YC/uzQmBJa7zqH8iZbzeGx2Xr1y 107 | # K8JTYhICSN3LFk5U3Pn4KZQuU9OUuu7ewnDNaA4te5GI78tm4m0oG5+XeKOkqcWW 108 | # OBgZtFGx/dt9vcjea6doIIgu6W5lfTvQHe1d8DEcHbPwdklzgSe0fnMu2B3ITuXe 109 | # Ke/j/DZip8dygnfJ10zmtOTrWBqB9Um9jzz0sf0bBzzBnPK+wW2w2DeGchx4waLh 110 | # OP6lRu41C9lbR9Efc+JwFXSxd093sgxPNq4x3Kuo0RfOiKTSBM43emgaNWZcZLjC 111 | # KXg1059OcBrJl3nho2gn09Y0E1Yec2xluAJrGH0Jnx2YM5hgE6GCEuUwghLhBgor 112 | # BgEEAYI3AwMBMYIS0TCCEs0GCSqGSIb3DQEHAqCCEr4wghK6AgEDMQ8wDQYJYIZI 113 | # AWUDBAIBBQAwggFRBgsqhkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGE 114 | # WQoDATAxMA0GCWCGSAFlAwQCAQUABCAUut3BBkBFh5qXRIkea0mamX2tov226fD9 115 | # p3tp+12WVgIGYAXj5TV6GBMyMDIxMDExOTA4MTEyNC43MjRaMASAAgH0oIHQpIHN 116 | # MIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH 117 | # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL 118 | # ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMg 119 | # VFNTIEVTTjoxMkJDLUUzQUUtNzRFQjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt 120 | # U3RhbXAgU2VydmljZaCCDjwwggTxMIID2aADAgECAhMzAAABU9KCckVsV+OLAAAA 121 | # AAFTMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo 122 | # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y 123 | # cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw 124 | # MB4XDTIwMTExMjE4MjYwNVoXDTIyMDIxMTE4MjYwNVowgcoxCzAJBgNVBAYTAlVT 125 | # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK 126 | # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy 127 | # aWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjEyQkMtRTNB 128 | # RS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIB 129 | # IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAteu2dAezG/mzQgLlwuhBibBb 130 | # 4FQeot9P45eIJrVMKEBuc91qcUBzSY/rdiOH6RE0EC6MYqB0okfp2yRUZ091go3O 131 | # lMGxgTJ0CYM4M1V6H1TxyAopomDRIh8vOj7whKVk/L2+o3xXGjlaDHvuMDdjam5T 132 | # lgOKOsJhEFBZq26SmQfnEVSRe1hNS+jQ30YjxPV0X0ZPs82XfjCYbN3lka+41XRt 133 | # dL1RJVd4atGBc34aO4Lj9y9GzMYpEct6T3uFuoO0MH+THMQ6TNAGrc/QjZLHAD8o 134 | # eI2ThdH+3Yi9QRhE/3OL6fIkE5XyqhIQm7dxYvx6ueHMF4xNWlMc0L2uW/3m7QID 135 | # AQABo4IBGzCCARcwHQYDVR0OBBYEFMaii3NIKqmzMBlAt+BwbawxVkR1MB8GA1Ud 136 | # IwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0 137 | # dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0 138 | # YVBDQV8yMDEwLTA3LTAxLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKG 139 | # Pmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3RhUENB 140 | # XzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUH 141 | # AwgwDQYJKoZIhvcNAQELBQADggEBAJRovXl8+iBEPscBc0miUdycR7GonoMpvQ7E 142 | # V3KX3e365U1Gf+YlZMhavGF8iqBCPu21TsyZU39zxfFHWAsuMrFmnurMyPm7M9vW 143 | # 6GKEZcEmsXUDoPYcJV9TJH3TJ4SfiIsN+RFWKe6zFY3TfYummR5XSj/zw0Dbvrsx 144 | # B6GyjS6WbMXviyP4HcbiIhSQztzvXk7p9O8Vh34ZyMSdsEu8uTxB6XcWU0F9p71k 145 | # dG43Zrea+ocuV9LDQ9V2YmlNmqZdVm/R2tm5zuAPJa3u8GY0vovFwVVSWhOC15nE 146 | # xXkJZWZXb6vMgZrw6OML4xThVXJKsgUqQjDCaUas5KHRg8SdOjQwggZxMIIEWaAD 147 | # AgECAgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzET 148 | # MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV 149 | # TWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBD 150 | # ZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVaFw0yNTA3 151 | # MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw 152 | # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x 153 | # JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIBIjANBgkq 154 | # hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mUa3RUENWl 155 | # CgCChfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZsTBED/Fg 156 | # iIRUQwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4YyhB50YWeR 157 | # X4FUsc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQYrFd/Xcf 158 | # PfBXday9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDaTgaRtogI 159 | # Neh4HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQIDAQABo4IB 160 | # 5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDzQ3t8RhvF 161 | # M2hahW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAP 162 | # BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjE 163 | # MFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kv 164 | # Y3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEF 165 | # BQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w 166 | # a2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNVHSABAf8E 167 | # gZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5t 168 | # aWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcC 169 | # AjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUA 170 | # bgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2do6Ehb7Pr 171 | # psz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GCRBL7uVOM 172 | # zPRgEop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZeUqRUgCv 173 | # OA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8ySif9Va8v 174 | # /rbljjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOco6I8+n99 175 | # lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz39L9+Y1kl 176 | # D3ouOVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSYIghh2rBQ 177 | # Hm+98eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvYgrRyzR30 178 | # uIUBHoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98isTtoouLGp 179 | # 25ayp0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8l1Bx16HS 180 | # xVXjad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzVs341Hgi6 181 | # 2jbb01+P3nSISRKhggLOMIICNwIBATCB+KGB0KSBzTCByjELMAkGA1UEBhMCVVMx 182 | # EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT 183 | # FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJp 184 | # Y2EgT3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FF 185 | # LTc0RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB 186 | # ATAHBgUrDgMCGgMVAIpKTe3HDtZPTyghgr2kFisiedGboIGDMIGApH4wfDELMAkG 187 | # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx 188 | # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z 189 | # b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDjsQslMCIY 190 | # DzIwMjEwMTE5MTUzOTE3WhgPMjAyMTAxMjAxNTM5MTdaMHcwPQYKKwYBBAGEWQoE 191 | # ATEvMC0wCgIFAOOxCyUCAQAwCgIBAAICC7gCAf8wBwIBAAICEZIwCgIFAOOyXKUC 192 | # AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK 193 | # MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQC+ZtL4ZePnxxd1qrjwSJrBBQNJ 194 | # JboC0yfaEXBOmnDyJzjgLQSzGgpVoIAN6f0kNG5Szv7ODtFwz5VeFfzInyGYKJUl 195 | # zL1kV6sfx1ZO5xdwaB7Lim9IDNl7WdDnMu64Ee8NdVjs+TunFKlIpP0tfIom1dtk 196 | # MHiPCV4sfxvuXgpRxTGCAw0wggMJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD 197 | # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy 198 | # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w 199 | # IFBDQSAyMDEwAhMzAAABU9KCckVsV+OLAAAAAAFTMA0GCWCGSAFlAwQCAQUAoIIB 200 | # SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIBIa 201 | # xHGuxaAqFl5yX/q7PFw/9zbvPW2pPW6gkaWHq7pjMIH6BgsqhkiG9w0BCRACLzGB 202 | # 6jCB5zCB5DCBvQQgUMEKjzm0IAgJ/JehkEOmmh0sgxxvbA4fasQFaI21jwAwgZgw 203 | # gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE 204 | # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD 205 | # VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAVPSgnJFbFfj 206 | # iwAAAAABUzAiBCAtWziF/9jtiQZTkKy7hIBEvYbqJwWZGQ3xhyQyA9Ou0zANBgkq 207 | # hkiG9w0BAQsFAASCAQCZ3x33lvnjjgV+CsKRCsh43XBObLFPZ/9XT+bCIVN4FYL2 208 | # +NkBu/xQFUh49yP6AahxMsXZ26m8YK+Tk7ENMVV7Grv49AqTNG68VtMSD5pb3Ka/ 209 | # pR8t9uiAzqeX1iZOwlY1Yj7qjId8qx/jgj4AKgCWnQy621dzVBQ63T+CIY5syaTb 210 | # EpUwJpUp8YwnamdDxvtfacKlNNEZMbryevLBB03N0HrMg5jOrYHr2NzAokO7O0Hs 211 | # seDxUlCUH08cu0f1ocFciIbVJaAWWbUXhSihqaEQydcwgMA77nJC5ZUKSND2CNIi 212 | # aORGrvPykFVG13O/u8DEo+SOrmjWMfHh8BAZxC+w 213 | # SIG # End signature block 214 | -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.AppContext.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.AppContext.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Buffers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Buffers.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.Concurrent.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.Concurrent.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.NonGeneric.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.NonGeneric.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.Specialized.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.Specialized.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Collections.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.Annotations.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.Annotations.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.EventBasedAsync.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.EventBasedAsync.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.TypeConverter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.TypeConverter.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ComponentModel.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Console.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Console.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Data.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Data.Common.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Contracts.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Contracts.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Debug.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Debug.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.DiagnosticSource.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.DiagnosticSource.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.FileVersionInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.FileVersionInfo.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Process.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Process.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.StackTrace.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.StackTrace.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.TextWriterTraceListener.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.TextWriterTraceListener.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Tools.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Tools.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.TraceSource.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.TraceSource.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Tracing.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Diagnostics.Tracing.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Drawing.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Drawing.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Dynamic.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Dynamic.Runtime.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.Calendars.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.Calendars.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Globalization.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Compression.ZipFile.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Compression.ZipFile.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Compression.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Compression.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.DriveInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.DriveInfo.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.Watcher.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.Watcher.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.FileSystem.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.IsolatedStorage.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.IsolatedStorage.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.MemoryMappedFiles.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.MemoryMappedFiles.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Pipes.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.Pipes.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.UnmanagedMemoryStream.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.UnmanagedMemoryStream.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IO.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IdentityModel.Tokens.Jwt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.IdentityModel.Tokens.Jwt.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Expressions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Expressions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Parallel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Parallel.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Queryable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.Queryable.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Linq.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Management.Automation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Management.Automation.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Memory.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Memory.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Http.Formatting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Http.Formatting.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Http.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.NameResolution.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.NameResolution.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.NetworkInformation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.NetworkInformation.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Ping.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Ping.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Requests.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Requests.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Security.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Security.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Sockets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.Sockets.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebHeaderCollection.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebHeaderCollection.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebSockets.Client.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebSockets.Client.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebSockets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Net.WebSockets.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Numerics.Vectors.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Numerics.Vectors.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ObjectModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ObjectModel.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Reflection.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.Reader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.Reader.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.ResourceManager.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.ResourceManager.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.Writer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Resources.Writer.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.CompilerServices.Unsafe.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.CompilerServices.Unsafe.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.CompilerServices.VisualC.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.CompilerServices.VisualC.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Handles.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Handles.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.InteropServices.RuntimeInformation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.InteropServices.RuntimeInformation.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.InteropServices.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.InteropServices.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Numerics.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Numerics.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Formatters.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Formatters.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Json.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Xml.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.Serialization.Xml.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Runtime.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Claims.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Claims.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Algorithms.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Algorithms.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Csp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Csp.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Encoding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Encoding.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.Primitives.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.X509Certificates.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Cryptography.X509Certificates.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Principal.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.Principal.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.SecureString.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Security.SecureString.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Spatial.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Spatial.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.CodePages.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.CodePages.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encoding.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encodings.Web.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Encodings.Web.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.Json.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.RegularExpressions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Text.RegularExpressions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Overlapped.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Overlapped.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.Parallel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.Parallel.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Tasks.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Thread.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Thread.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.ThreadPool.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.ThreadPool.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Timer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.Timer.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Threading.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.ValueTuple.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Web.Http.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Web.Http.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.ReaderWriter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.ReaderWriter.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XDocument.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XPath.XDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XPath.XDocument.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XPath.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XPath.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XmlDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XmlDocument.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XmlSerializer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/System.Xml.XmlSerializer.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/TextCopy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/TextCopy.dll -------------------------------------------------------------------------------- /MISC/SharePointPnPPowerShellOnline/3.29.2101.0/netstandard.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zerg00s/FlowPowerAppsMigrator/c0cde3fac525f6a0d6adf0e2850f617a960fa177/MISC/SharePointPnPPowerShellOnline/3.29.2101.0/netstandard.dll -------------------------------------------------------------------------------- /MISC/migrator-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "target-site-url": "", 3 | "target-site-app-id":"", 4 | "target-site-app-secret":"" 5 | } -------------------------------------------------------------------------------- /Migrate-Packages.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | PowerShell.exe -Command "& '.\RunAllScripts.ps1' -path '%~dp0'" 3 | PAUSE -------------------------------------------------------------------------------- /Prepare-Deployment-Package-for-Client.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | PowerShell.exe -Command "& '.\Prepare-Deployment-Package-for-Client.ps1' -path '%~dp0'" 3 | PAUSE -------------------------------------------------------------------------------- /Prepare-Deployment-Package-for-Client.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [string]$Path 3 | ) 4 | # Created by Denis Molodtsov (@Zerg00s) in 2018 5 | 6 | $ErrorActionPreference = "Stop" 7 | 8 | $host.UI.RawUI.WindowTitle = "Flow & Power Apps Migrator" 9 | 10 | Write-host 11 | Write-host 12 | Write-Host " ______ _ _____ " -ForegroundColor Yellow 13 | Write-Host " | ____| | ___ | __ \ " -ForegroundColor Yellow 14 | Write-Host " | |__ | | _____ __ ( _ ) | |__) |____ _____ _ __ " -ForegroundColor Yellow 15 | Write-Host " | __| | |/ _ \ \ /\ / / / _ \/\ | ___/ _ \ \ /\ / / _ \ `'__| " -ForegroundColor Yellow 16 | Write-Host " | | | | (_) \ V V / | (_> < | | | (_) \ V V / __/ | " -ForegroundColor Yellow 17 | Write-Host " |_| |_|\___/ \_/\_/ \___/\/_|_| \___/ \_/\_/ \___|_| " -ForegroundColor Yellow 18 | Write-Host " /\ | \/ (_) | | " -ForegroundColor Cyan 19 | Write-Host " / \ _ __ _ __ ___ | \ / |_ __ _ _ __ __ _| |_ ___ _ __ " -ForegroundColor Cyan 20 | Write-Host " / /\ \ | `'_ \| `'_ \/ __| | |\/| | |/ _`` | `'__/ _`` | __/ _ \| `'__|" -ForegroundColor Cyan 21 | Write-Host " / ____ \| |_) | |_) \__ \ | | | | | (_| | | | (_| | || (_) | | " -ForegroundColor Cyan 22 | Write-Host " /_/ \_\ .__/| .__/|___/ |_| |_|_|\__, |_| \__,_|\__\___/|_| " -ForegroundColor Cyan 23 | Write-Host " | | | | __/ | " -ForegroundColor Cyan 24 | Write-Host " |_| |_| |___/ " -ForegroundColor Cyan 25 | Write-host 26 | Write-host "-----------------------------------------------------------------------------" 27 | Write-host 28 | 29 | Write-Host "This script will produce a sharable package that your Client or Partner can use for deployments" -ForegroundColor Yellow 30 | 31 | Set-Location $Path 32 | . .\MISC\PS-Forms.ps1 33 | 34 | Get-ChildItem -Recurse | Unblock-File 35 | # Legacy PowerShell PnP Module is used because the new one has a critical bug 36 | Import-Module (Get-ChildItem -Recurse -Filter "*.psd1").FullName -DisableNameChecking 37 | 38 | # Read migrator-config.json 39 | $MigratorConfig = Get-Content -Raw -Path "$Path\config\migrator-config.json" | ConvertFrom-Json 40 | 41 | $Migration = @{ 42 | SOURCE_SITE_URL = $MigratorConfig.'source-site-url' 43 | MIGRATE_LISTS = $true 44 | } 45 | 46 | $Migration = Get-FormItemProperties ` 47 | -item $Migration ` 48 | -dialogTitle "Enter source site URL" ` 49 | -propertiesOrder @("SOURCE_SITE_URL", "MIGRATE_LISTS") 50 | 51 | $SOURCE_SITE_URL = $Migration.SOURCE_SITE_URL.TrimEnd('/') 52 | $SOURCE_SITE_URL = $Migration.SOURCE_SITE_URL 53 | $SOURCE_SITE_APP_ID = $MigratorConfig.'source-site-app-id' 54 | $SOURCE_SITE_APP_SECRET = $MigratorConfig.'source-site-app-secret' 55 | 56 | $areAllEmpty = [string]::IsNullOrEmpty($SOURCE_SITE_APP_ID) -and 57 | [string]::IsNullOrEmpty($SOURCE_SITE_APP_SECRET) 58 | 59 | $areAllFilled = (![string]::IsNullOrEmpty($SOURCE_SITE_APP_ID)) -and 60 | (![string]::IsNullOrEmpty($SOURCE_SITE_APP_SECRET)) 61 | 62 | if ($areAllEmpty -or $areAllFilled) { 63 | Write-Host "\config\migrator-config.json file validation passed" -ForegroundColor Green 64 | } else { 65 | Write-Host "Validation failed: Please verify and ensure that either all properties are set or all variables are empty in \config\migrator-config.json" -ForegroundColor Red 66 | } 67 | 68 | if($areAllFilled){ 69 | $USE_APP_ONLY_AUTHENTICATION = $true 70 | } 71 | 72 | $SOURCE_SITE_URL = $Migration.SOURCE_SITE_URL 73 | if ($Migration.MIGRATE_LISTS -like "true" -or 74 | $Migration.MIGRATE_LISTS -like "yes" -or 75 | $Migration.MIGRATE_LISTS -like "1" 76 | ) { 77 | $Migration.MIGRATE_LISTS = $true 78 | } 79 | else { 80 | $Migration.MIGRATE_LISTS = $false 81 | } 82 | $MIGRATE_LISTS = $Migration.MIGRATE_LISTS 83 | 84 | 85 | # Preparing package for the client 86 | New-Item -ItemType Directory -Force -Path "package" | Out-Null 87 | . .\GenerateInitialMapping.ps1 -DestinationFolder ".\package" 88 | if ($MIGRATE_LISTS) { 89 | . .\MISC\Move-Lists.ps1 -Path $Path -MigrationType Export -SourceSite $SOURCE_SITE_URL 90 | } 91 | 92 | if ((Test-Path -Path "package\MISC") -eq $false) { 93 | New-Item -ItemType Directory -Force -Path "package\src" | Out-Null 94 | New-Item -ItemType Directory -Force -Path "package\MISC" | Out-Null 95 | New-Item -ItemType Directory -Force -Path "package\config" | Out-Null 96 | Copy-Item -Path "MISC\migrator-config.json" -Destination "package\config" -Recurse 97 | Copy-Item -Path "MISC\SharePointPnPPowerShellOnline" -Destination "package\MISC" -Recurse 98 | Copy-Item -Path "MISC\PS-Forms.ps1" -Destination "package\MISC" 99 | Copy-Item -Path "MISC\Move-Lists.ps1" -Destination "package\MISC" 100 | Copy-Item -Path "MISC\Convert-Packages.ps1" -Destination "package" 101 | Copy-Item -Path "MISC\Convert-Packages.bat" -Destination "package" 102 | Copy-Item -Path "Lists.xml" -Destination "package" 103 | 104 | Get-ChildItem *.json | ForEach-Object { 105 | Copy-Item -Path $_.Name -Destination "package" 106 | } 107 | 108 | Copy-Item -Path "ConvertPackage.ps1" -Destination "package" 109 | Copy-Item -Path "CompleteResourceMapping.ps1" -Destination "package" 110 | } 111 | 112 | Write-host '[Important] Next steps' -ForegroundColor Yellow 113 | Write-host "1) Export your Power Apps And Flows" -ForegroundColor Yellow 114 | Write-host "2) Place all of these exported ZIP files to the package\src folder" -ForegroundColor Yellow 115 | Write-host "3) Share the package directory with your Client or Partner" -ForegroundColor Yellow 116 | Write-host "4) Instruct your Client or Partner to run Convert-Packages.bat on their end" -ForegroundColor Yellow 117 | Write-host "5) Instruct your Client or Partner deploy all converted Apps and Flows from \dist directory" -ForegroundColor Yellow 118 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![SharePoint Online](https://img.shields.io/badge/SharePoint-Online-yellow.svg) 2 | ![Windows](https://img.shields.io/static/v1?label=OS&message=Windows&color=green) 3 | ![Version](https://img.shields.io/static/v1?label=Version&message=3.10.0&color=white) 4 | 5 | 6 | # Flow & Power Apps Migrator 7 | 8 | Have you ever tried moving canvas apps or cloud flows across Microsoft 365 tenants or sites? This is a common task when deploying apps and flows to production. Apps and flows must be exported, and imported, and SharePoint actions must be manually updated. These manual updates are error-prone and labor-intensive. **Flow & Power Apps Migrator** automatically converts exported flows and apps to be compatible with the target environment. 9 | 10 | Flow & Power Apps Migrator also helps you migrate **SharePoint lists** that are used as a dependency for your Apps and Flows. There is an interactive UI form that lets you do just that. 11 | 12 | Finally, the Flow & Power Apps Migrator converts **SharePoint List Forms customized with Power Apps**. 13 | 14 | ## Download the latest version 15 | 16 |

17 | 18 | 19 |    20 |

21 | 22 | ## Watch a Demo 23 | [![](MISC/IMG/Video_Thumbnail.jpg)](https://youtu.be/06io-y3pMKU) 24 | # Prerequisites 25 | 26 | - [PowerShell 5.0 or later](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/install/installing-windows-powershell?view=powershell-7.2). 27 | - Make sure that the SharePoint site exists in the target environment. You don't have to create Lists and Libraries because this tool will do it for you. 28 | - [Download the latest version of the Flow & Power Apps Migrator](https://github.com/Zerg00s/FlowPowerAppsMigrator/releases). 29 | - Extract the ZIP package. 30 | - Open a regular Windows PowerShell command prompt. 31 | - Navigate to the extracted folder. 32 | - Unblock the script files using the following command: `Get-ChildItem -Recurse | Unblock-File` 33 | 34 | 35 | 36 | ## Migrate-able artifacts 37 | 38 | | Artifact | Support | 39 | | ----------- | ----------- | 40 | | Standalone Canvas Power Apps | ✔ | 41 | | Customized SharePoint List Forms Canvas apps | ✔ This works again since September 2022 | 42 | | Canvas Power Apps that trigger Flows | ✔ (flows are also migrated) | 43 | | Standalone Cloud Flows | ✔ | 44 | | Standalone Desktop Flows | ❌ | 45 | | Standalone Model-driven apps | N/A (not tested) | 46 | | Solutions containing multiple canvas apps and flows | ✔ | 47 | | SharePoint Connectors | ✔ | 48 | | Non-SharePoint Connectors such as Word for Business | ❌ | 49 | | SharePoint Lists | ✔ | 50 | | SharePoint Libraries | ✔ | 51 | | Cross-Language Lists migration | ❌ Both source and target sites must be created with the same language. Otherwise, you'll get the `0x80070005 (E_ACCESSDENIED)` error | 52 | | JSON List customizations | ✔ | 53 | | JSON Column formatting | ❌ | 54 | | SharePoint data | ❌ | 55 | | Content Types | ✔ (migrated automatically) | 56 | | Lookup fields | ⚠️ (migrated only if you migrate the lookup list, too) | 57 | | Data Sources located in a single site | ✔ | 58 | | Data Sources located in multiple sites and sub-sites | ❌ | 59 | 60 | # Convert flows, apps and solutions 61 | 62 | ## Export flows, apps and solutions 63 | Export all of your flows: 64 | 65 | ![](MISC/IMG/Export.png) 66 | 67 | Export all of your apps: 68 | 69 | ![](MISC/IMG/ExportApp.png) 70 | 71 | ## 2. Place exported flows, apps and solutions in the src folder 72 | ![](MISC/IMG/2018-07-25-20-57-29.png) 73 | 74 | ## 3. Run Migrate-Packages.bat 75 | The scripts will iterate through all ZIP files inside the `\src` directory and convert them to be compatible with the new Microsoft 365 tenant or site. 76 | - Run `Migrate-Packages.bat` script 77 | 78 | 79 | 80 | - Enter source site URL and target site URL: 81 | - Keep `MIGRATE_LISTS` property set to `True` if you want to migrate SharePoint lists and libraries. 82 | 83 | ![image](https://user-images.githubusercontent.com/2797648/138607676-dd256f1c-bb9f-4604-9a6e-d3080ae00686.png) 84 | 85 | - Select lists and libraries to migrate 86 | 87 | ![image](https://user-images.githubusercontent.com/2797648/138607789-1471e92e-c8d8-4813-8b1d-2f2deef962eb.png) 88 | 89 | 90 | - Sit back and wait for the lists and libraries to be migrated and the conversion process to finish. 91 | 92 | 93 | ## 4. Navigate to the \dist folder and collect converted flows, apps and solutions 94 | 95 | ![](MISC/IMG/2018-07-25-21-11-04.png) 96 | 97 | ## 5. Import converted flows, apps and solutions 98 | Now you can import your flows and apps to the destination tenant. All SharePoint actions will now be converted and point to the new location. 99 | 100 | 101 | ### Power Apps data sources are all converted 102 | 103 | ![](MISC/IMG/DataSourcesConverted_2.0.png) 104 | 105 | ### Flow actions are also converted 106 | 107 | ![](MISC/IMG/FlowsConverted_2.0.png) 108 | 109 | ## How it works 110 | 111 | **Flow & Power Apps Migrator** finds all unique IDs pointing to the source SharePoint site and replaces them with the destination IDs. `resourceMapping.csv` contains the mapping of these IDs. 112 | 113 | ![](MISC/IMG/CSV.png) 114 | 115 | ## Limitations 116 | 117 | - Does not support macOS and Linux. 118 | - Only SharePoint data sources are updated. 119 | - ZIP packages might not be converted if placed in a long path name on disk. For this reason, try placing the migrator as close to the root drive as possible. 120 | 121 | # Preparing a deployment package for your Clients and Partners 122 | 123 | What if you created an app or flow you want your Client or Partner to have? You can package your SharePoint Lists and the apps and flows in a single package. Then you would like to hand over this package and simple installation instructions. Guess what? There is a script that prepares this package automatically for you. 124 | 125 | `Prepare-Deployment-Package-for-Client.bat` script prepares a deployment package you can share with your Clients or Partners. 126 | 127 | ## On your end 128 | 129 | - Run `Prepare-Deployment-Package-for-Client.bat` 130 | 131 | ![image](https://user-images.githubusercontent.com/2797648/138600042-dc80f7ea-cc7a-4240-9c26-3dc2ed617e4b.png) 132 | 133 | - Export your Solutions, Power Apps and Flows and save them to the `package\src` directory 134 | 135 | ![image](https://user-images.githubusercontent.com/2797648/138600112-69dbe03d-3f66-4c4d-858a-d1473358280b.png) 136 | 137 | - Send the `package` directory to your Client or Partner. 138 | 139 | ![image](https://user-images.githubusercontent.com/2797648/138608613-3ede0cf6-a331-4058-9feb-bf55030c7f55.png) 140 | 141 | 142 | ## On the Client's side 143 | 144 | - If it does not already exists, create a SharePoint Online site. It will contain SharePoint Lists and Libraries that Power Apps/Flows require. 145 | - Open the `package` directory. 146 | - Run `Convert-Packages.bat` script. 147 | - Provide target site URL. 148 | - Import all solutions, flows and apps from the `dist` directory. 149 | 150 | **Note:** `Convert-Packages.bat` will: 151 | 152 | - Deploy SharePoint lists and libraries (if you want to package them) 153 | - Convert Apps and Flows from `src` and saves them to 'dist'. 154 | 155 | ![image](https://user-images.githubusercontent.com/2797648/138599549-cef7b847-582e-4e91-8c75-a37a8e82a00d.png) 156 | 157 | # Migrating Power Apps SharePoint List Form 158 | 159 | SharePoint List forms customized with Power Apps can be migrated if you follow these steps: 160 | 161 | - Navigate to your SharePoint List 162 | - Click on one of the SharePoint list items 163 | - Click on the ellipsis (3 dots) > Customize with Power Apps: 164 | ![](MISC/IMG/CustomizeWithPowerApps.png) 165 | 166 | - Power apps Editor will open. 167 | - Click on File > See all versions 168 | ![](MISC/IMG/SeeAllVersions.png) 169 | 170 | - Click Export package: 171 | ![](MISC/IMG/ExportPackage.png) 172 | 173 | - Type your app name 174 | - Select "Create as new" under Import setup 175 | - Click Export 176 | 177 | ![](MISC/IMG/ExportPackageProperties.png) 178 | - Place the exported package in the `\src` directory 179 | - Run `Migrate-Packages.bat` script 180 | 181 | 182 | # 👉 [Troubleshooting Guide](https://github.com/Zerg00s/FlowPowerAppsMigrator/wiki/How-to-deal-with-the-%22Make-sure-you-have-FULL-CONTROL-at-the-source-site%22-Issue) 183 | 184 | # Latest Updates 185 | 186 | 187 | ### 3.10.0 Version - 2024-01-18 188 | #### Changes 189 | - Removed migration of the column formatting JSON. This was causing the issues with the migrated lists. 190 | - Removing the migration of several out-of-the-box content types. 191 | 192 | 193 | ### 3.9.8 Version - 2023-09-25 194 | #### Changes 195 | - Added additional tips to the users who are getting the `0x80070005 (E_ACCESSDENIED)` error. 196 | 197 | ### 3.9.7 Version - 2023-09-22 198 | #### Changes 199 | - Addressed issue #66 [You cannot call a method on a null-valued expression](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/66) 200 | 201 | ### 3.9.6 Version - 2023-09-06 202 | #### Changes 203 | - Addressed issue #66 [You cannot call a method on a null-valued expression](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/66) 204 | 205 | ### 3.9.5 Version - 2023-08-30 206 | #### Changes 207 | - Removed the REST API call that was causing 403 error for some users. 208 | 209 | ### 3.9.4 Version - 2023-08-06 210 | #### Changes 211 | - The pnp:SiteFields node is now automatically removed from the Lists.xml PnP provisioning template if it's empty. An empty node was causing the "invalid template" errors. 212 | 213 | ### 3.9.3 Version - 2023-07-14 214 | #### Changes 215 | - Removing more fields causing the infamous `0x80070005 (E_ACCESSDENIED)` error. 216 | - Trimming trailing slashes in the site URLs 217 | 218 | #### Known issues 219 | - Migrated lists with custom content types end up with an extra content type that should be deleted manually after migration. 220 | - Migrated lists might need fields added to the content type or a form. In some cases, migrated lists show only the Title in the edit form. 221 | 222 | ### 3.9.2 Version - 2023-07-05 223 | #### Changes 224 | - Removing Site fields causing the infamous `0x80070005 (E_ACCESSDENIED)` error. 225 | 226 | #### Known issues 227 | - Migrated lists with custom content types end up with an extra content type that should be deleted manually after migration. 228 | - Migrated lists might need fields added to the content type or a form. In some cases, migrated lists show only the Title in the edit form. 229 | 230 | ### 3.9.1 Version - 2023-06-11 231 | #### Changes 232 | - fixed a bug reported by [spg-iwilson](https://github.com/spg-iwilson) 233 | 234 | #### Known issues 235 | - If the source and the target sites were created using different languages, then the app migrator will fail with the [Access is denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/34) error. 236 | - Migrated lists with custom content types end up with an extra content type that should be deleted manually after migration. 237 | - Migrated lists might need fields added to the content type or a form. In some cases, migrated lists show only the Title in the edit form. 238 | 239 | ### 3.9.0 Version - 2023-06-07 240 | 241 | #### Changes 242 | - Added an ability to run migrations using SharePoint-only App ID and App Secret. Use the `config\migrator-config.json` file to do it: 243 | 244 | ``` 245 | { 246 | "source-site-url": "", 247 | "target-site-url": "", 248 | "source-site-app-id":"", 249 | "source-site-app-secret":"", 250 | "target-site-app-id":"", 251 | "target-site-app-secret":"" 252 | } 253 | ``` 254 | 255 | #### Known issues 256 | - If the source and the target sites were created using different languages, then the app migrator will fail with the [Access is denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/34) error. 257 | - Migrated lists with custom content types end up with an extra content type that should be deleted manually after migration. 258 | - Migrated lists might need fields added to the content type or a form. In some cases, migrated lists show only the Title in the edit form. 259 | 260 | ### 3.8.6 Version - 2023-05-10 261 | 262 | #### Changes 263 | - Fixed the issue related to the Trace log causing the migratory to fail. 264 | 265 | ### 3.8.5 Version - 2023-02-20 266 | 267 | #### Changes 268 | - Users connected to the source and target sites are now displayed in the console for easier troubleshooting. 269 | 270 | ### 3.8.4 Version - 2023-02-03 271 | 272 | #### Changes 273 | - Fixed the issue caused by lists having multiple personal views. 274 | 275 | ### 3.8.3 Version - 2022-09-30 276 | 277 | #### Changes 278 | - Added a check for the `E_ACCESSDENIED` error. 279 | 280 | #### Known issues 281 | - If the source and the target sites were created using different languages, then the app migrator will fail with the [Access is denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/34) error. 282 | - Migrated lists with custom content types end up with an extra content type that should be deleted manually, after migration. 283 | - Migrated lists might need fields to be added to the content type or a form. In some cases, migrated lists show only Title in the edit form. 284 | 285 | ### 3.8.2 Version - 2022-09-28 286 | 287 | #### Changes 288 | - Added a check of the source and target site permissions. If the user does not have the required permissions, the app migrator will stop and display an error message. 289 | 290 | #### Known issues 291 | - Occasional error: [Access is denied (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/34). This error typically has nothing to do with permissions. It is hard to diagnose, but one of the fixes is to delete a target site and rerun the app migrator. 292 | - Migrated lists with custom content types end up with extra content types that should be deleted manually, after migration. 293 | - Migrated lists might need fields to be added to the content type or a form. 294 | 295 | 296 | ### 3.8.1 Version - 2022-09-04 297 | 298 | #### Bug fixes 299 | - Fixed an issue with lists not being migrated 300 | 301 | #### Known issues 302 | - Migrated lists with custom content types end up with extra content types that should be deleted manually. 303 | - Migrated lists might need fields to be added to the content type or a form. 304 | 305 | 306 | 307 | ### 3.8 Version - 2022-09-04 308 | 309 | #### New features 310 | - Added ability to Clear Credentials cache (helpful when your credentials pop-up opens and closes automatically, without prompting you to enter your credentials) 311 | 312 | #### Bug fixes 313 | - Fixed an issue with migrating between non-English SharePoint sites. 314 | 315 | #### Known issues 316 | - Migrated lists with custom content types end up with extra content types that should be deleted manually. 317 | - Migrated lists might need fields to be added to the content type or a form. 318 | 319 | 320 | ### 3.7 Version - 2022-09-01 321 | 322 | #### New features 323 | - SharePoint list forms customized with Power Apps are now migrated by this tool. Credits to [kvadratnymedved](https://github.com/kvadratnymedved) and [amariak](https://github.com/amariak) for providing a solution. 🙏 324 | 325 | #### Known issues 326 | - Migrated lists with custom content types end up with extra content types that should be deleted manually. 327 | - Migrated lists might need fields to be added to the content type or a form. 328 | - Flow & Apps Migrator might cache your user credentials and not prompt you for them again. In this case, you will need to follow the steps [described in this issue](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/25) 329 | 330 | 331 | ### 3.6 Version 332 | 333 | #### New features 334 | - Added an ability to migrate flows that refer to the List and Library views. This was done to address the issue [List Views not Migrated](https://github.com/Zerg00s/FlowPowerAppsMigrator/issues/22) submitted by [Juistin](https://github.com/C2C-Justin) 335 | 336 | #### Known issues 337 | - SharePoint list forms customized with Power Apps are no longer migrated by this tool. There is an issue I am still working on. 338 | 339 | ### 3.5 Version 340 | 341 | #### New features 342 | - Added an ability to migrate content types and columns. These will be automatically migrated if your lists have any custom content types. 343 | 344 | #### Known issues 345 | - SharePoint list forms customized with Power Apps are no longer migrated by this tool. There is an issue I am still working on. 346 | 347 | 348 | ### 3.4 Version 349 | 350 | - Fixed a major bug preventing export-importing for the lists and libraries. 351 | 352 | ### 3.3 Version 353 | 354 | - Made console output more clear. 355 | 356 | ### 3.1 Version 357 | 358 | - Fixed a bug that corrupted solution zip files during the conversion process. It made it impossible to import solutions. 359 | 360 | ### 3.0 Version - Major update 361 | 362 | New features added: 363 | 364 | - `Migrate-Packages.bat` script now migrates SharePoint lists and libraries that your Apps and Flow depend on. 365 | - Added `Prepare-Deployment-Package-for-Client.bat` script to prepare a deployment package to share with your Clients or Partners. Running this script will generate a package directory you can send to your Clients and Partners. Distribution of your apps and flows is now easier than ever. 366 | 367 | ### 2.1 Version 368 | 369 | New feature added: 370 | 371 | - added support for solution migration. Thanks to [Mark Doria](https://www.linkedin.com/in/mark-doria/) for helping with this feature. 372 | 373 | 374 | ## Support this project 375 | I like coffee and consume lots of it while coding. If you want to support me, you can click on the "buy me a coffee" button: 376 | 377 |
378 |

379 | Buy Me A Coffee 380 |

381 | -------------------------------------------------------------------------------- /RunAllScripts.ps1: -------------------------------------------------------------------------------- 1 | param ( 2 | [string]$Path 3 | ) 4 | # Created by Denis Molodtsov (@Zerg00s) in 2018 5 | 6 | $ErrorActionPreference = "Stop" 7 | 8 | $host.UI.RawUI.WindowTitle = "Flow & Power Apps Migrator" 9 | 10 | Write-host 11 | Write-host 12 | Write-Host " ______ _ _____ " -ForegroundColor Yellow 13 | Write-Host " | ____| | ___ | __ \ " -ForegroundColor Yellow 14 | Write-Host " | |__ | | _____ __ ( _ ) | |__) |____ _____ _ __ " -ForegroundColor Yellow 15 | Write-Host " | __| | |/ _ \ \ /\ / / / _ \/\ | ___/ _ \ \ /\ / / _ \ `'__| " -ForegroundColor Yellow 16 | Write-Host " | | | | (_) \ V V / | (_> < | | | (_) \ V V / __/ | " -ForegroundColor Yellow 17 | Write-Host " |_| |_|\___/ \_/\_/ \___/\/_|_| \___/ \_/\_/ \___|_| " -ForegroundColor Yellow 18 | Write-Host " /\ | \/ (_) | | " -ForegroundColor Cyan 19 | Write-Host " / \ _ __ _ __ ___ | \ / |_ __ _ _ __ __ _| |_ ___ _ __ " -ForegroundColor Cyan 20 | Write-Host " / /\ \ | `'_ \| `'_ \/ __| | |\/| | |/ _`` | `'__/ _`` | __/ _ \| `'__|" -ForegroundColor Cyan 21 | Write-Host " / ____ \| |_) | |_) \__ \ | | | | | (_| | | | (_| | || (_) | | " -ForegroundColor Cyan 22 | Write-Host " /_/ \_\ .__/| .__/|___/ |_| |_|_|\__, |_| \__,_|\__\___/|_| " -ForegroundColor Cyan 23 | Write-Host " | | | | __/ | " -ForegroundColor Cyan 24 | Write-Host " |_| |_| |___/ " -ForegroundColor Cyan 25 | Write-host 26 | Write-host "-----------------------------------------------------------------------------" 27 | Write-host 28 | 29 | 30 | 31 | Set-Location $Path 32 | . .\MISC\PS-Forms.ps1 33 | 34 | Get-ChildItem -Recurse | Unblock-File 35 | # Legacy PowerShell PnP Module is used because 36 | # the new one (PnP.PowerShell) requires Tenant Admin consent for the PnP Azure App Registration 37 | # and it's not possible to use it in the context of a non-admin user 38 | Import-Module (Get-ChildItem -Recurse -Filter "*.psd1").FullName -DisableNameChecking 39 | 40 | Set-PnPTraceLog -On -LogFile traceoutput.txt -Level Debug 41 | 42 | # Read migrator-config.json 43 | $MigratorConfig = Get-Content -Raw -Path "$Path\config\migrator-config.json" | ConvertFrom-Json 44 | 45 | $Migration = @{ 46 | SOURCE_SITE_URL = $MigratorConfig.'source-site-url' 47 | TARGET_SITE_URL = $MigratorConfig.'target-site-url' 48 | MIGRATE_LISTS = $true 49 | CLEAR_CREDENTIALS_CACHE = $false 50 | } 51 | 52 | $Migration = Get-FormItemProperties ` 53 | -item $Migration ` 54 | -dialogTitle "Enter source and target sites" ` 55 | -propertiesOrder @("SOURCE_SITE_URL", "TARGET_SITE_URL", "MIGRATE_LISTS", "CLEAR_CREDENTIALS_CACHE") 56 | 57 | $SOURCE_SITE_URL = $Migration.SOURCE_SITE_URL.TrimEnd('/') 58 | $TARGET_SITE_URL = $Migration.TARGET_SITE_URL.TrimEnd('/') 59 | $SOURCE_SITE_APP_ID = $MigratorConfig.'source-site-app-id' 60 | $SOURCE_SITE_APP_SECRET = $MigratorConfig.'source-site-app-secret' 61 | $TARGET_SITE_APP_ID = $MigratorConfig.'target-site-app-id' 62 | $TARGET_SITE_APP_SECRET = $MigratorConfig.'target-site-app-secret' 63 | 64 | $varsToCheck = @('SOURCE_SITE_APP_ID', 'SOURCE_SITE_APP_SECRET', 'TARGET_SITE_APP_ID', 'TARGET_SITE_APP_SECRET') 65 | $areAllEmpty = $true 66 | $areAllFilled = $true 67 | 68 | foreach ($var in $varsToCheck) { 69 | $value = Get-Variable -Name $var -ValueOnly 70 | if ([string]::IsNullOrEmpty($value)) { 71 | $areAllFilled = $false 72 | } else { 73 | $areAllEmpty = $false 74 | } 75 | } 76 | 77 | 78 | if ($areAllEmpty -or $areAllFilled) { 79 | Write-Host "\config\migrator-config.json file validation passed" -ForegroundColor Green 80 | } else { 81 | Write-Host "Validation failed: Please verify and ensure that either all properties are set or all variables are empty in \config\migrator-config.json" -ForegroundColor Red 82 | } 83 | 84 | if($areAllFilled){ 85 | $USE_APP_ONLY_AUTHENTICATION = $true 86 | } 87 | 88 | $Migration.MIGRATE_LISTS = $Migration.MIGRATE_LISTS -in ("true", "yes", "1") 89 | 90 | $MIGRATE_LISTS = $Migration.MIGRATE_LISTS 91 | 92 | $Migration.CLEAR_CREDENTIALS_CACHE = $Migration.CLEAR_CREDENTIALS_CACHE -in ("true", "yes", "1") 93 | 94 | $CLEAR_CREDENTIALS_CACHE = $Migration.CLEAR_CREDENTIALS_CACHE 95 | 96 | . .\GenerateInitialMapping.ps1 97 | if ($MIGRATE_LISTS) { 98 | . .\MISC\Move-Lists.ps1 -Path $Path -MigrationType Export -SourceSite $SOURCE_SITE_URL 99 | } 100 | 101 | Write-Host "[Attention] Look for a login popup in a separate window. Please, log in to the target site $TARGET_SITE_URL." -ForegroundColor Cyan 102 | if($USE_APP_ONLY_AUTHENTICATION){ 103 | Connect-PnPOnline -Url $TARGET_SITE_URL -ClientId $TARGET_SITE_APP_ID -ClientSecret $TARGET_SITE_APP_SECRET -WarningAction Ignore 104 | } 105 | elseIf($CLEAR_CREDENTIALS_CACHE){ 106 | Connect-PnPOnline -Url $TARGET_SITE_URL -SPOManagementShell -ClearTokenCache -WarningAction Ignore 107 | }else{ 108 | Connect-PnPOnline -Url $TARGET_SITE_URL -UseWebLogin -WarningAction Ignore 109 | } 110 | 111 | Write-Host 112 | Write-Host Connected to the target site -ForegroundColor Green 113 | Write-Host "`tSite: $TARGET_SITE_URL" -ForegroundColor Yellow 114 | # Write-Host "`tUser: $($Response.Title) ($($Response.Email))" -ForegroundColor Yellow 115 | 116 | 117 | if ($MIGRATE_LISTS) { 118 | Write-Host Applying PnP Template to $TARGET_SITE_URL -ForegroundColor Cyan 119 | . .\MISC\Move-Lists.ps1 -Path $Path -MigrationType Import -TargetSite $TARGET_SITE_URL 120 | } 121 | 122 | . .\CompleteResourceMapping.ps1 -DoNotReconnect 123 | . .\ConvertPackage.ps1 124 | -------------------------------------------------------------------------------- /config/.gitignore: -------------------------------------------------------------------------------- 1 | migrator-config-dev.json -------------------------------------------------------------------------------- /config/migrator-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "source-site-url": "", 3 | "target-site-url": "", 4 | "source-site-app-id":"", 5 | "source-site-app-secret":"", 6 | "target-site-app-id":"", 7 | "target-site-app-secret":"" 8 | } -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | --------------------------------------------------------------------------------