{"componentChunkName":"component---src-templates-articles-index-jsx","path":"/articles/powershell-sync-folders/","result":{"data":{"props":{"adsense":true,"adsenseMobile":null,"byLine":"","canonical":"https://staging.business.com/articles/powershell-sync-folders/","content":"<p>Although there is software that will sync files and folders for you, even paid software can be limiting. A good PowerShell script can help.</p>\n<p><picture class=\"aligncenter full\">Copying files from one folder to another is pretty easy. Simply drag them over across your window or use a simple command line like </picture><strong>Copy-Item -Path C:Folder* -Destination SERVER2c$Folder2</strong><picture class=\"aligncenter full\">. But what if you want to ensure a complete replica of a folder rather than just copying some files from one folder to another? This is when you'll need to sync the two folders. Essentially, syncing </picture><em>is</em><picture class=\"aligncenter full\"> just copying files but it's smarter. Syncing involves reading the entire contents of a folder, reading the other contents of a folder, calculating the difference and then making a decision on which files to copy which way.</picture><br><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/d0a1651ee4741518b4583/1200_-900- 1200w, /images/content/5b6/d0a1651ee4741518b4583/668_-501- 668w, /images/content/5b6/d0a1651ee4741518b4583/320_-240- 320w\" sizes=\"668px, 100%\"></source></picture></p>\r\n<p>There are a few ways to handle syncing. You can purchase software or even download free software, which will probably work well, but sometimes it might limit you in what you can achieve. This is why using a PowerShell script to accomplish syncing is the best option. By using PowerShell, you're not boxed in by off the shelf software. You can generally implement any feature you like as long as you have enough experience and time. This is what we're going to be covering today.</p>\r\n<h2>Syncing files with PowerShell</h2>\r\n<p>First, as with everything in scripting, there are numerous ways to make this happen. Some methods have features like automatic triggers, file hashing and other advanced features but these methods would take much too long to go over in a short article. If you're an advanced PowerShell scripter I recommend checking out Steven Murawski's work on the <a href=\"http://stevenmurawski.com/powershell/2009/11/using-the-sync-framework-from-powershell\" target=\"_blank\">Sync framework</a>.</p>\r\n<p>For today, we'll just be covering the basics. We'll be manually kicking off the script rather than using automatic triggers and we'll be using basic PowerShell commands -- no complicated .NET objects to speak of. However, we'll still come out with a useful way you can sync files from one folder to another.</p>\r\n<p>The first thing we'll need to do is define the locations of each folder.</p>\r\n<blockquote>$Folder1Path = 'C:Folder1'<br> $Folder2Path = 'C:Folder2'<br><br>\n</blockquote>\r\n<p>For demonstration purposes, we created these two folders and have placed 101 identical text files into each folder.</p>\r\n<p><picture class=\"aligncenter small\"><source srcset=\"/images/content/5b6/d0a521039ebf5508b4579/460_-109- 460w, /images/content/5b6/d0a521039ebf5508b4579/255_-60- 255w, /images/content/5b6/d0a521039ebf5508b4579/127_-30- 127w\" sizes=\"(min-width: 870px) 255px, (min-width: 400px) 100vw, 100%\"></source><img src=\"/images/content/5b6/d0a521039ebf5508b4579/219-52-\" alt=\"\" width=\"219\" height=\"52\" data-content-img-id=\"5b6d0a521039ebf5508b4579\"></picture></p>\r\n<p>Next, we'll have to discover everything in each of these folders. This will give us two collections to compare.</p>\r\n<blockquote>$Folder1Files = Get-ChildItem -Path $Folder1Path<br> $Folder2Files = Get-ChildItem -Path $Folder2Path</blockquote>\r\n<p>Now, we'll need to compare them. A great PowerShell cmdlet to do this is <strong>Compare-Object</strong>. Compare-Object allows you to specify two different collections. It will then look at each one and output which items are in the <strong>difference collection</strong> and which items in the <strong>reference collection</strong> are different.</p>\r\n<blockquote>\r\n<p>Compare-Object -ReferenceObject $Folder1Files -DifferenceObject $Folder2Files</p>\r\n</blockquote>\r\n<p>If each collection is the same, it will output nothing. Since both of our folders are in sync at the moment, this is what we see. However, what happens when we add a file to one of the folders?</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/d0a9551ee4753518b4581/1200_-519- 1200w, /images/content/5b6/d0a9551ee4753518b4581/668_-289- 668w, /images/content/5b6/d0a9551ee4753518b4581/320_-138- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/d0a9551ee4753518b4581/684-296-\" alt=\"\" width=\"684\" height=\"296\" data-content-img-id=\"5b6d0a9551ee4753518b4581\"></picture></p>\r\n<p>In the example, we created a dummy file in $Folder1 and now you can see the folders are out of sync. Compare-Object shows that <strong>newfile1234.xml</strong> is in $Folder1 but not in $Folder2. We now need to copy whatever files Compare-Object finds to the folder that doesn't contain the file. To do this, we'll have to create a script like the following.</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/d0ab91039ebc3508b4587/1200_-616- 1200w, /images/content/5b6/d0ab91039ebc3508b4587/668_-343- 668w, /images/content/5b6/d0ab91039ebc3508b4587/320_-164- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/d0ab91039ebc3508b4587/858-441-\" alt=\"\" width=\"858\" height=\"441\" data-content-img-id=\"5b6d0ab91039ebc3508b4587\"></picture></p>\r\n<p>You'll see that we're getting the output of Compare-Object that contains all the different files. We're then reading each of those files into <strong>foreach loop</strong> and checking to see which sides needs to copy from and to. You'll see that this works well but we're not done.</p>\r\n<h2>Removing files with PowerShell</h2>\r\n<p>What about file removals? Let's say a file is removed from one of the folders and you'd like to remove the file in the other folder rather than copy the new one over?</p>\r\n<p>In this example, we removed a file from $Folder2 and you can see that Compare-Object can tell this. Now we'd like to remove that same file from $Folder1.</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/d0ad792a3a4064d8b4580/1200_-235- 1200w, /images/content/5b6/d0ad792a3a4064d8b4580/668_-131- 668w, /images/content/5b6/d0ad792a3a4064d8b4580/320_-62- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/d0ad792a3a4064d8b4580/687-135-\" alt=\"\" width=\"687\" height=\"135\" data-content-img-id=\"5b6d0ad792a3a4064d8b4580\"></picture></p>\r\n<p>To do that, we simply have to remove all the files that Compare-Object finds.</p>\r\n<p><picture class=\"aligncenter full\"><source srcset=\"/images/content/5b6/d0aef51ee4741518b4585/1200_-322- 1200w, /images/content/5b6/d0aef51ee4741518b4585/668_-179- 668w, /images/content/5b6/d0aef51ee4741518b4585/320_-85- 320w\" sizes=\"668px, 100%\"></source><img src=\"/images/content/5b6/d0aef51ee4741518b4585/857-230-\" alt=\"\" width=\"857\" height=\"230\" data-content-img-id=\"5b6d0aef51ee4741518b4585\"></picture></p>\r\n<p>You'll see that the file is gone. Using this kind of approach with PowerShell will allow you to keep both folders in sync.</p>\r\n<p>However, we haven't accounted for the complexities of removing and copying at the same time and subfolders as well. If you'd like more in-depth information about syncing folders, we recommend checking out Steven Murawski's blog post mentioned earlier or <a href=\"http://herringsfishbait.com/2015/01/23/powershell-synchronizing-a-folder/\" target=\"_blank\">this blog post</a>. Both offer much more advanced approaches to syncing folders with PowerShell.</p>\n","docType":"article","guid":"articles_825097e5dc8d7dc68ae7a91fb58b49fa","lastModified":"2018-09-06T09:00:00.000Z","published":"2018-09-06T09:00:00.000Z","structuredData":null,"subtitle":"There is software that will sync files and folders for you, and PowerShell can help.","template":"v1","title":"How To Sync Folders With PowerShell","type":"article","author":{"avatar":null,"bio":"Adam Bertram is a 20-year veteran of IT and experienced online business professional. He's an entrepreneur, IT influencer, Microsoft MVP, blogger, trainer and content marketing writer for multiple technology companies. Adam is also the founder of the popular IT career development platform TechSnips. Catch up on Adam's articles at adamtheautomator.com, connect on LinkedIn, or follow him on Twitter at @adbertram or the TechSnips Twitter account at @techsnips_io.","name":"Adam Bertram","image":null,"slug":null,"social":{"facebook":"","linkedin":"https://www.linkedin.com/in/adambertram/","twitter":"https://twitter.com/adbertram","website":"https://www.adamtheautomator.com/"},"status":"enabled","title":null,"type":"Contributing Writer","user":{"imagePath":"https://staging.business.com/images/undefined","profile":{"company":"eGain Communications","jobTitle":"Product Management Analyst","website":""}}},"breadcrumbs":null,"channels":{"primary":{"name":"Technology","slug":"technology"},"sub":{"name":"Technology Solutions","slug":"technology-solutions"}},"meta":{"robots":"index, follow","description":"Although there is software that will sync files and folders for you, even paid software can be limiting. A good PowerShell script can help.","title":"Sync Files And Folders With PowerShell - business.com"},"parsedContent":{"toc":[{"id":"syncing-files-with-powershell","title":"Syncing files with PowerShell"},{"id":"removing-files-with-powershell","title":"Removing files with PowerShell"}],"json":[{"component":"p","children":["Although there is software that will sync files and folders for you, even paid software can be limiting. A good PowerShell script can help."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":["Copying files from one folder to another is pretty easy. Simply drag them over across your window or use a simple command line like "]},{"component":"strong","children":["Copy-Item -Path C:Folder* -Destination SERVER2c$Folder2"]},{"component":"picture","props":{"className":"aligncenter full"},"children":[". But what if you want to ensure a complete replica of a folder rather than just copying some files from one folder to another? This is when you'll need to sync the two folders. Essentially, syncing "]},{"component":"em","children":["is"]},{"component":"picture","props":{"className":"aligncenter full"},"children":[" just copying files but it's smarter. Syncing involves reading the entire contents of a folder, reading the other contents of a folder, calculating the difference and then making a decision on which files to copy which way."]},{"component":"br"},{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0a1651ee4741518b4583/1200_-900- 1200w, /images/content/5b6/d0a1651ee4741518b4583/668_-501- 668w, /images/content/5b6/d0a1651ee4741518b4583/320_-240- 320w","sizes":"668px, 100%"}}]}]},{"component":"p","children":["There are a few ways to handle syncing. You can purchase software or even download free software, which will probably work well, but sometimes it might limit you in what you can achieve. This is why using a PowerShell script to accomplish syncing is the best option. By using PowerShell, you're not boxed in by off the shelf software. You can generally implement any feature you like as long as you have enough experience and time. This is what we're going to be covering today."]},{"component":"h2","props":{"id":"syncing-files-with-powershell"},"children":["Syncing files with PowerShell"]},{"component":"p","children":["First, as with everything in scripting, there are numerous ways to make this happen. Some methods have features like automatic triggers, file hashing and other advanced features but these methods would take much too long to go over in a short article. If you're an advanced PowerShell scripter I recommend checking out Steven Murawski's work on the ",{"component":"a","props":{"href":"http://stevenmurawski.com/powershell/2009/11/using-the-sync-framework-from-powershell","target":"_blank"},"children":["Sync framework"]},"."]},{"component":"p","children":["For today, we'll just be covering the basics. We'll be manually kicking off the script rather than using automatic triggers and we'll be using basic PowerShell commands -- no complicated .NET objects to speak of. However, we'll still come out with a useful way you can sync files from one folder to another."]},{"component":"p","children":["The first thing we'll need to do is define the locations of each folder."]},{"component":"blockquote","children":["$Folder1Path = 'C:Folder1'",{"component":"br"}," $Folder2Path = 'C:Folder2'",{"component":"br"},{"component":"br"}]},{"component":"p","children":["For demonstration purposes, we created these two folders and have placed 101 identical text files into each folder."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter small"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0a521039ebf5508b4579/460_-109- 460w, /images/content/5b6/d0a521039ebf5508b4579/255_-60- 255w, /images/content/5b6/d0a521039ebf5508b4579/127_-30- 127w","sizes":"(min-width: 870px) 255px, (min-width: 400px) 100vw, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/d0a521039ebf5508b4579/219-52-","alt":"","width":"219","height":"52","data-content-img-id":"5b6d0a521039ebf5508b4579"}}]}]},{"component":"p","children":["Next, we'll have to discover everything in each of these folders. This will give us two collections to compare."]},{"component":"blockquote","children":["$Folder1Files = Get-ChildItem -Path $Folder1Path",{"component":"br"}," $Folder2Files = Get-ChildItem -Path $Folder2Path"]},{"component":"p","children":["Now, we'll need to compare them. A great PowerShell cmdlet to do this is ",{"component":"strong","children":["Compare-Object"]},". Compare-Object allows you to specify two different collections. It will then look at each one and output which items are in the ",{"component":"strong","children":["difference collection"]}," and which items in the ",{"component":"strong","children":["reference collection"]}," are different."]},{"component":"blockquote","children":[{"component":"p","children":["Compare-Object -ReferenceObject $Folder1Files -DifferenceObject $Folder2Files"]}]},{"component":"p","children":["If each collection is the same, it will output nothing. Since both of our folders are in sync at the moment, this is what we see. However, what happens when we add a file to one of the folders?"]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0a9551ee4753518b4581/1200_-519- 1200w, /images/content/5b6/d0a9551ee4753518b4581/668_-289- 668w, /images/content/5b6/d0a9551ee4753518b4581/320_-138- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/d0a9551ee4753518b4581/684-296-","alt":"","width":"684","height":"296","data-content-img-id":"5b6d0a9551ee4753518b4581"}}]}]},{"component":"p","children":["In the example, we created a dummy file in $Folder1 and now you can see the folders are out of sync. Compare-Object shows that ",{"component":"strong","children":["newfile1234.xml"]}," is in $Folder1 but not in $Folder2. We now need to copy whatever files Compare-Object finds to the folder that doesn't contain the file. To do this, we'll have to create a script like the following."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0ab91039ebc3508b4587/1200_-616- 1200w, /images/content/5b6/d0ab91039ebc3508b4587/668_-343- 668w, /images/content/5b6/d0ab91039ebc3508b4587/320_-164- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/d0ab91039ebc3508b4587/858-441-","alt":"","width":"858","height":"441","data-content-img-id":"5b6d0ab91039ebc3508b4587"}}]}]},{"component":"p","children":["You'll see that we're getting the output of Compare-Object that contains all the different files. We're then reading each of those files into ",{"component":"strong","children":["foreach loop"]}," and checking to see which sides needs to copy from and to. You'll see that this works well but we're not done."]},{"component":"h2","props":{"id":"removing-files-with-powershell"},"children":["Removing files with PowerShell"]},{"component":"p","children":["What about file removals? Let's say a file is removed from one of the folders and you'd like to remove the file in the other folder rather than copy the new one over?"]},{"component":"p","children":["In this example, we removed a file from $Folder2 and you can see that Compare-Object can tell this. Now we'd like to remove that same file from $Folder1."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0ad792a3a4064d8b4580/1200_-235- 1200w, /images/content/5b6/d0ad792a3a4064d8b4580/668_-131- 668w, /images/content/5b6/d0ad792a3a4064d8b4580/320_-62- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/d0ad792a3a4064d8b4580/687-135-","alt":"","width":"687","height":"135","data-content-img-id":"5b6d0ad792a3a4064d8b4580"}}]}]},{"component":"p","children":["To do that, we simply have to remove all the files that Compare-Object finds."]},{"component":"p","children":[{"component":"picture","props":{"className":"aligncenter full"},"children":[{"component":"source","props":{"srcSet":"/images/content/5b6/d0aef51ee4741518b4585/1200_-322- 1200w, /images/content/5b6/d0aef51ee4741518b4585/668_-179- 668w, /images/content/5b6/d0aef51ee4741518b4585/320_-85- 320w","sizes":"668px, 100%"}},{"component":"img","props":{"src":"/images/content/5b6/d0aef51ee4741518b4585/857-230-","alt":"","width":"857","height":"230","data-content-img-id":"5b6d0aef51ee4741518b4585"}}]}]},{"component":"p","children":["You'll see that the file is gone. Using this kind of approach with PowerShell will allow you to keep both folders in sync."]},{"component":"p","children":["However, we haven't accounted for the complexities of removing and copying at the same time and subfolders as well. If you'd like more in-depth information about syncing folders, we recommend checking out Steven Murawski's blog post mentioned earlier or ",{"component":"a","props":{"href":"http://herringsfishbait.com/2015/01/23/powershell-synchronizing-a-folder/","target":"_blank"},"children":["this blog post"]},". Both offer much more advanced approaches to syncing folders with PowerShell."]}]},"resource":null,"sponsorship":null,"thumbnail":{"path":"https://staging.business.com/images/content/5cf/f157d9c658a99338b4568/1500-0-","caption":"kikujungboy/Shutterstock","isBlurred":false},"bestPicks":null},"related":{"relatedArticles":[{"title":"PowerShell: Everything You Need to Know","canonical":"https://www.business.com/articles/powershell-everything-you-need-to-know/","slug":"powershell-everything-you-need-to-know","thumbnail":"https://www.business.com/images/content/5b8/998581039eb8f738b457b/1500-0-","dek":"What you need to know to unlock Microsoft PowerShell's full capabilities.","lastModified":"2018-09-05T17:00:00Z","published":"2018-09-05T17:00:00Z","sponsored":false},{"title":"Essential PowerShell Cmdlets For Managing Active Directory","canonical":"https://www.business.com/articles/powershell-active-directory-cmdlets/","slug":"powershell-active-directory-cmdlets","thumbnail":"https://www.business.com/images/content/5cf/90cab7b4374ab068b456f/1500-0-","dek":"Administering Active Directory is one of the most critical roles in any Windows network.","lastModified":"2018-09-04T08:00:00Z","published":"2018-09-04T08:00:00Z","sponsored":false},{"title":"Essential PowerShell Cmdlets For Auditing And Maintaining Storage","canonical":"https://www.business.com/articles/powershell-for-storage/","slug":"powershell-for-storage","thumbnail":"https://www.business.com/images/content/5d0/18e065a215ea2498b4588/1500-0-","dek":"PowerShell v5 offers some new features for managing storage.","lastModified":"2018-09-04T11:00:00Z","published":"2018-09-04T11:00:00Z","sponsored":false},{"title":"Your Guide to Creating a Small Business Marketing Plan","canonical":"https://www.business.com/articles/sample-marketing-plan-outline-and-template/","slug":"sample-marketing-plan-outline-and-template","thumbnail":"https://www.business.com/images/content/5f3/3e1765a215eb62d8b4567/1500-0-","dek":"Follow these templates and guidelines to get started on creating your business's marketing plan.","lastModified":"2020-08-12T12:28:00Z","published":"2018-03-02T13:00:00Z","sponsored":false},{"title":"Using Lean Strategies to Achieve Team Synergy and Efficiency","canonical":"https://www.business.com/articles/lean-strategies-team-efficiency/","slug":"lean-strategies-team-efficiency","thumbnail":"https://www.business.com/images/content/5be/480e49c658a51108b458c/1500-0-","dek":"Learn more about lean manufacturing strategies and how to implement them in your business.","lastModified":"2018-11-08T08:00:00Z","published":"2018-11-08T08:00:00Z","sponsored":false},{"title":"From COVID-19 to Hurricane Season: Disaster Preparedness for Small Business","canonical":"https://www.business.com/articles/business-disaster-prep/","slug":"business-disaster-prep","thumbnail":"https://www.business.com/images/content/5e7/a495e5a215eb11d8b4569/1500-0-","dek":"Natural disasters – whether a hurricane, tornado or outbreak like COVID-19 – can have a disastrous effect on small businesses, but they don't have to. Here's how to weather a disaster successfully.","lastModified":"2020-03-25T15:19:00Z","published":"2018-09-26T07:00:00Z","sponsored":false},{"title":"Use PowerShell to Make WSUS Suck Less","canonical":"https://www.business.com/articles/powershell-windows-software-update-services/","slug":"powershell-windows-software-update-services","thumbnail":"https://www.business.com/images/content/5b8/eca2d92a3a4ee5a8b4574/1500-0-","dek":"Windows Software Update Services can use PowerShell to work with servers and Windows.","lastModified":"2018-09-04T10:00:00Z","published":"2018-09-04T10:00:00Z","sponsored":false},{"title":"Microsoft Azure vs. Amazon Web Services: Cloud Comparison","canonical":"https://www.business.com/articles/azure-vs-aws-cloud-comparison/","slug":"azure-vs-aws-cloud-comparison","thumbnail":"https://www.business.com/images/content/5cf/ff3445a215ed86a8b459d/1500-0-","dek":"Which one is right for your business?","lastModified":"2018-05-25T07:00:00Z","published":"2018-05-25T07:00:00Z","sponsored":false},{"title":"How and When to Create and Use PowerShell Modules","canonical":"https://www.business.com/articles/powershell-modules/","slug":"powershell-modules","thumbnail":"https://www.business.com/images/content/5cf/a71415a215e501f8b457a/1500-0-","dek":"Step-by-step instructions on creating and using modules.","lastModified":"2018-09-05T08:00:00Z","published":"2018-09-05T08:00:00Z","sponsored":false},{"title":"How to Make Money in Retirement: A Guide to Turning a Hobby into a Side Business","canonical":"https://www.business.com/articles/how-make-money-retirement-hobby/","slug":"how-make-money-retirement-hobby","thumbnail":"https://www.business.com/images/content/5ba/902e01039eb26648b4572/1500-0-","dek":"Many retirees turn side interests into income. Learn how to make money in retirement.","lastModified":"2018-09-24T15:03:00Z","published":"2018-09-24T15:03:00Z","sponsored":false},{"title":"How to Hire for Your Business","canonical":"https://www.business.com/articles/how-to-staff-business/","slug":"how-to-staff-business","thumbnail":"https://www.business.com/images/content/5ea/9c8bb9c658aee018b456c/1500-0-","dek":"Sterling Staffing Solutions CEO Stephen Carter shares his tips on staffing your business.","lastModified":"2020-07-31T15:00:00Z","published":"2018-08-16T12:00:00Z","sponsored":false},{"title":"Understanding Functions in PowerShell","canonical":"https://www.business.com/articles/functions-in-powershell/","slug":"functions-in-powershell","thumbnail":"https://www.business.com/images/content/5d0/272227b4374087d8b4568/1500-0-","dek":"Instead of copying and pasting the same code over and over again, create a PowerShell func","lastModified":"2018-09-04T09:00:00Z","published":"2018-09-04T09:00:00Z","sponsored":false}],"relatedReviews":[{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5df908cc5a215e8c4a8b4568/conferencecall_Antonio_Diaz_Getty.jpg","canonical":"https://staging.business.com/categories/best-conference-call-services/","title":"The Best Conference Call Services of 2021","dek":"Which conference call service is right for your business in 2021? We review the top-rated services.","slug":"best-conference-call-services","lastModified":"2021-03-17T18:17:00Z"},{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5df3d8695a215e58428b4570/POS_GETTY_DERO2084.jpg","canonical":"https://staging.business.com/categories/best-pos-systems/","title":"The Best POS Systems of 2021","dek":"Before you choose a POS system, check out our reviews of the best picks for 2021. ","slug":"best-pos-systems","lastModified":"2021-03-17T17:33:00Z"},{"doc_type":"category","thumbnail":"https://staging.business.com/images/rz/5e00d4787b43745d6a8b456e/Laptop_undrey_getty.jpg","canonical":"https://staging.business.com/categories/employee-monitoring-software/","title":"The Best Employee Monitoring Software of 2021","dek":"We've narrowed down the best employee monitoring software for businesses. Check out our best picks and reviews.","slug":"employee-monitoring-software","lastModified":"2021-03-05T15:40:00Z"}],"relatedSponsoredArticles":null}},"pageContext":{"displayModified":"2018-09-06T09:00:00.000Z","template":"v1","title":"How To Sync Folders With PowerShell","meta":{"robots":"index, follow"},"docType":"articles","slug":"powershell-sync-folders","canonical":"https://staging.business.com/articles/powershell-sync-folders/","skipTOC":false}},"staticQueryHashes":[]}