{"id":15203019,"url":"https://github.com/potatoqualitee/spreplicator","last_synced_at":"2025-10-29T00:30:33.258Z","repository":{"id":45513605,"uuid":"139916136","full_name":"potatoqualitee/SPReplicator","owner":"potatoqualitee","description":"♻ Replicates SharePoint Lists","archived":false,"fork":false,"pushed_at":"2021-09-24T10:51:43.000Z","size":18140,"stargazers_count":41,"open_issues_count":11,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-01T20:11:30.131Z","etag":null,"topics":["csv","powershell","replication","sharepoint","sqlserver"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/potatoqualitee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-06T01:02:24.000Z","updated_at":"2024-12-18T14:47:54.000Z","dependencies_parsed_at":"2022-07-18T08:13:15.090Z","dependency_job_id":null,"html_url":"https://github.com/potatoqualitee/SPReplicator","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potatoqualitee%2FSPReplicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potatoqualitee%2FSPReplicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potatoqualitee%2FSPReplicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/potatoqualitee%2FSPReplicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/potatoqualitee","download_url":"https://codeload.github.com/potatoqualitee/SPReplicator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238743913,"owners_count":19523201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","powershell","replication","sharepoint","sqlserver"],"created_at":"2024-09-28T04:22:03.643Z","updated_at":"2025-10-29T00:30:32.775Z","avatar_url":"https://github.com/potatoqualitee.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SPReplicator\n\n\u003cimg align=\"left\" src=https://user-images.githubusercontent.com/8278033/42554599-39b769a6-8481-11e8-8b6a-379f4a3e54e6.png alt=\"SPReplicator logo\"\u003eSPReplicator is a PowerShell module that helps replicate SharePoint list data. \n\nThis module uses the SharePoint Client Side Object Model (CSOM), the PnP.PowerShell module and all required libraries and dlls are included. Installing the SharePoint binaries is **not required** for the replication to work 👍 Thank you Microsoft for the redistributable nuget and PnP.PowerShell.\n\nSPReplicator works with both on-prem and SharePoint Online and is currently in beta. It also works on .NET Core, so it's cross-platform, and supports Windows, macOS and Linux.\n\nPlease report any issues to clemaire@gmail.com.\n\n## Installer\nSPReplicator is now in the PowerShell Gallery. Run the following from an administrative prompt to install SPReplicator for all users:\n```powershell\nInstall-Module SPReplicator\n```\n\nOr if you don't have administrative access or want to save it locally (just for yourself), run:\n```powershell\nInstall-Module SPReplicator -Scope CurrentUser\n```\n\nIf you're scheduling tasks via Task Schedule or SQL Server agent, installing the module with administrative privileges is best because it will ensure all users have access via Program Files.\n\n## Command Reference\n\nFor more details about commands, visit the [wiki](https://github.com/potatoqualitee/SPReplicator/wiki/Command-Reference) or use Get-Help.\n\n## Usage scenarios\n\nThis module can be used for replicating data in a number of ways.\n\n* Between air gapped (offline) servers that do not have direct access to each other\n* Directly from SharePoint site collection to SharePoint site collection\n* From SQL Server to SharePoint\n* From SharePoint to SQL Server\n* From CSV to SharePoint\n* From SharePoint to CSV\n* From On-prem to SharePoint Online and back\n\n## Usage examples\n\nSPReplicator has a number of commands that help you manage SharePoint lists. You can view, delete, and add records easily and there's even a command that makes it easy to see internal column names and datatypes.\n\n#### Export from SharePoint List\n\n```powershell\nExport-SPRListItem -Site https://intranet -List Employees -Path \\\\nas\\replicationdata\\Employees.csv\n```\n\n#### Establish a session to the SharePoint site\n\nYou can specify `-Site` and `-Credential` with every command. Or you can establish a connection and not worry about specifying the Site or Credentials in subsequent command executions.\n\nThere is no need to assign the output to a variable, as it creates a reusable global variable `$global:spsite`.\n\n```powershell\n# using your own account credentials\nConnect-SPRSite -Site https://intranet\n\n# specifying other credentials\nConnect-SPRSite -Site https://intranet -Credential ad\\otheruser\n\n# using your own account credentials and SP Online\nConnect-SPRSite -Site https://corp.sharepoint.com -Credential otheruser@corp.onmicrosoft.com\n\n# using MFA\nConnect-SPRSite -Site https://corp.sharepoint.com -AuthenticationMode WebLogin\n\n# using app login\nConnect-SPRSite -Site https://corp.sharepoint.com -AuthenticationMode AppOnly -Credential 1e36c5cc-5281-4235-a84f-c94dc2de8800\n\n```\n\n#### Import to SharePoint List\nNow that we've established a connection via `Connect-SPRSite`, we no longer need to specify the Site.\n\nWe can import data two ways, using `Import-SPRListItem` or `Add-SPRListItem`\n\n```powershell\n# Import from CSV\nImport-SPRListItem -List Employees -Path \\\\nas\\replicationdata\\Employees.csv\n\n# Import from SQL Server\nInvoke-DbaQuery -SqlInstance sql2017 -Query \"Select fname, lname where id \u003e 100\" | Add-SPRListItem -List emps\n\n# Import any PowerShell object, really. So long as it has the properly named columns.\nGet-ADUser -Filter * | Select SamAccountName, whateverelse | Add-SPRListItem -List ADList\n\n# Didn't have time to create a good SharePoint list? Use -AutoCreateList\nGet-ADUser -Filter * | Add-SPRListItem -List ADList -AutoCreateList\n\n```\n#### Find out more\n\nThis was just a subset of command examples. For more command examples, visit the [wiki](https://github.com/potatoqualitee/SPReplicator/wiki/Command-Reference) or use Get-Help.\n\n## Selected screenshots\n\n#### Connect to a site\n![image](https://user-images.githubusercontent.com/8278033/42564673-1ceca0a4-849d-11e8-8f6b-22c1a0aad1e1.png)\n\n#### Add a generic object to a list\n![image](https://user-images.githubusercontent.com/8278033/42570287-227a3c4a-84af-11e8-9e5a-4dc6e9f2f4af.png)\n\n#### Add SQL data to a list and auto create the list if it doesn't exist\n![image](https://user-images.githubusercontent.com/8278033/42570505-d060d8be-84af-11e8-948d-f97888611346.png)\n\n#### This is what it looks like!\n![image](https://user-images.githubusercontent.com/8278033/42570634-3f2478fa-84b0-11e8-8ab7-3c996d29021d.png)\n\n#### Get details about columns to help you format your input/output\n![image](https://user-images.githubusercontent.com/8278033/42567935-19fcb8ac-84a7-11e8-9b48-0da67dd2ce0f.png)\n\n#### Results of built-in logger (New-SPRLogList and `-LogToList`)\n\n![image](https://user-images.githubusercontent.com/8278033/43561352-63b655cc-95b2-11e8-93e0-90926df74d47.png)\n\n## Power BI\nA Power BI Template can be downloaded from [here](https://github.com/potatoqualitee/SPReplicator/blob/af341f5cab4099c6efccaca965921ee2a36e4c2d/SPReplicator/bin/SPReplicator.pbit).\n\n![image](https://user-images.githubusercontent.com/8278033/43371234-568d7622-9329-11e8-9100-df03d7a442bc.png)\n\n## Pester tested\n\nThis module comes with integration tests! If you'd like to see how I test the commands, check out [Integration.Tests.ps1](https://github.com/potatoqualitee/SPReplicator/blob/master/tests/Integration.Tests.ps1)\n\n![image](https://user-images.githubusercontent.com/8278033/43365014-39eee66c-92c1-11e8-91bf-9b6bf8d1032a.png)\n\n## Learn more\n\nTo find out more about any command, including additional examples, use `Get-Help`. \n\n```powershell\nGet-Help Get-SPRColumnDetail -Detailed\n```\n\n\u003c!--\n$global:a = @()\nforeach ($prop in $props.Name) {\n    try {\n        $server.Load($server.Web.$prop)\n    }\n    catch {\n        $global:a += $prop\n        continue\n    }\n}\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotatoqualitee%2Fspreplicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpotatoqualitee%2Fspreplicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotatoqualitee%2Fspreplicator/lists"}