EdgeSync
EdgeSync is designed as an alternative to the internal Microsoft synchronization systems for sharing Edge favorites.
This application works by keeping a "Remote" copy of the favorites in a text-based XML file that all PCs can share. You can store this file practically anywhere… a network location, in the "cloud", on a USB flash drive, etc. For example:
"%USERPROFILE%\OneDrive\Documents\EdgeSync.xml".
The synchronization process is not automatic… you must run this application periodically to keep the list of favorites synchronized. (Although you could add this application as a scheduled task).
Note: This synchronization tool does not alter the sort order of the favorites.
Background
Take a look at this related article How Edge Synchronization Works for more details on how this features is supposed to work.
The internal Microsoft technique requires that each user be logged in via a "Microsoft Account", so that means that it is unavailable for those who use a local account. Corporate users could use "Enterprise State Roaming" for this purpose, but that requires the latest version of Active Directory.
Yes, you could use a domain account, but only if that account is also linked to a Microsoft Account. However, forcing every employee to have a Microsoft Account would probably not be practical. Also, in a secure environment, you may not have the ability to use any off-premises storage services.
Another scenario would be that you want to share favorites between two different accounts. For example, from your domain work account and your home MSA account, or from your home MSA account and your spouse/kid's MSA account.
So, that's the reason behind this application... it allows you to do synchronization between any accounts while keeping everything "on-premises" without incurring any additional costs.
It's probably not a good idea to use two different synchronization systems simultaneously. So, to use this application, you must first disable the "Sync your content" feature of Edge. From Edge, click on the "more" icon (the 3 little dots), then "Settings", then use the slide switch for "Sync" to turn it off. Note: This is not the same location as all of the other sync settings
EdgeManage
Note! EdgeSync is not designed for use as a one-time synchronization tool.
EdgeSync is a full-time replacement for the existing Edge built-in synchronization system. However, if you intend to keep using the built-in sync system and just want to do a one-time manual synchronization of your favorites, then you should use EdgeManage instead. With EdgeManage, you can do an HTML export on the "main" PC, and then on each of the other PCs, you'd clear all favorites and do an HTML import. This will manually force the list of favorites to be the same.
Release Notes
Version 2.1.11 - 19 Dec 2018
-
This is feature update with a minor bug fix:
- Prompt the user to kill the Edge process
- Does not convert the command line arguments to lower case
Version 2.1.10 - 20 Aug 2018
-
This is a minor bug fix:
- Better detection of Edge synchronization system
- Improvements to the command-line version
Version 2.1.9 - 17 Jul 2018
-
This is a minor bug fix and a new feature:
- Better detection of background vs minimized processes
- Added a Collapse All menu item
Version 2.1.8 - 28 Jun 2018
-
This is a minor update for database changes:
- Now compatible with Windows build 17704
Version 2.1.7 - 4 Jun 2018
-
This is a minor update with new features:
- Deals with Edge background tasks
Version 2.1.6 - 28 May 2018
-
This is a minor update for database changes:
- Now compatible with Windows build 17677
Version 2.1.5 - 25 May 2018
-
This is a minor bug fix release:
- Fixed a rare bug when dealing with deleted entries
- Added a new /SuperSilent command line option
Version 2.1.4 - 5 Jan 2018
-
This is a minor update with new features:
- Now compatible with Windows build 17063
Version 2.1.0 - 6 Aug 2017
-
This is a bug fix with new features:
- Added an undeleted category
- Added support for build 16215
- Many small fixes related to synchronization
Version 2.0.0 - 24 Apr 2017
-
This is a new release:
- Now compatible with Windows 10 Creators Update
- Additional protection against mismatched database versions
Version 1.2.0 - 28 Nov 2016
-
This is a bug fix release:
- Fixed a bug with the CopyToLocal feature
- Added a refresh after changing the Remote Data Source
Version 1.1.0 - 3 Oct 2016
-
This is a minor maintenance release with a new feature:
- New "/silent" command-line argument
- Now compatible with Windows 10 build 14936
Version 1.0.0 - 6 Jul 2016
-
This is the "RTM" release. Changes from the betas include:
- More robust duplicate URL detection
- Selecting a node now displays its URL
- Now updates the cached versions of the Favorites Bar in the registry
- More efficient database routines
- Fix potential "Illegal duplicate key" bug
Public Domain
This application and its source code are placed in the "public domain". That means it's completely free, with no restrictions on its use. There is no license, so you can do anything you want with it, to include making money from it. You are also free to tinker with it, modify it, add new features, etc.
Libraries
This application makes extensive use of the following libraries:
User's Guide
EdgeSync opens up with a view of the "local" data on the left and the Remote Sync Data on the right. This provides an opportunity to graphically view the proposed changes before saving them.
Note: The list on each side appears in sorted order, but the actual sort order is not changed
Changes are color coded:
- Purple - Fixed internal naming duplicates
- Blue - Reconciled differences between duplicates on each "side"
- Red - Deleted items
- Green - Added items
- Yellow - Modified items
- Brown - Undeleted items
File Menu
- Reload Data - Reloads both data sources
- Save Changes - Saves changes according to the sync mode
- Exit - Exits the application
Mode Menu
- To Local Only - changes will be made to the local PC, but not to the Remote Sync Data source
- To Remote Only - changes will be made to the Remote Sync Data source, but not to the local PC
- Bi-Directional - changes will be made to both the local and the remote (this is the default)
Note: Changes here are not saved as the default settings
Settings Menu
- Change default settings - launch the following form to make changes to the default settings. These settings will be remembered the next time the application is run.
- Remote Sync Data Location - The location of the XML file that contains the "master" copy of the favorites. Note: Environmental variables are allowed
- Sync Mode - One of the synchronization mode choices
- Fix Internal Duplicate Names - Should the application rename items to remove duplicate names? (highly recommended)
View Menu
- Expand All - Expand all of the nodes on both trees
- Collapse All - Collapse all of the nodes on both trees
Utilities Menu
- Copy Remote To Local - Completely replace the Local data with the data in the Remote
- Copy Local To Remote - Completely replace the Remote data with the data in the Local
This is a good way to "prime the pump" when you first start the application and don't yet have a valid Remote Sync Data source. Copying is not really a "synchronization mode"... all entries on source are copied to the destination.
The copy function occurs immediately after confirmation...it does not wait until you hit the "Save Changes" menu
Help Menu
- EdgeSync Help - A very modest help page
- On-line User's Guide - This web page!
- About - The "vanity plate"
- Check for updates - This will allow you to check if there is an update available. If so, you will be prompted to install the newer version
Setup
The first time you run the application, it will prompt you to select a location for the Remote Sync Data file. Then, if the file doesn't exist, it will prompt to you copy the existing local favorites as a "seed" for the contents of the Remote Sync Data.
Technical Details
Sync Modes
There are 3 synchronization "modes":
- To Local - changes will be made to the local PC, but not to the Remote Sync Data source
- To Remote - changes will be made to the Remote Sync Data source, but not to the local PC
- Bi-Directional - changes will be made to both the local and the remote (this is the default)
Windows or Command Line
When run as a Windows Form application, you are provided an opportunity to review the changes that will be made to each "side" before saving.
This application can also be run as a command-line tool for use in a domain environment where it can be placed in a login or logout script. When used this way, the application must have either two or three arguments as shown:
EdgeSync.exe /Silent /SomeAction /Remote:SomePath
The choices for actions include:
- /ToLocal - the "To Local" sync mode
- /ToRemote - the "To Remote" sync mode
- /BiDirectional - the "BiDirectional" sync mode
- /CopyToLocal - always copy the Remote to the Local (not really a "synchronization mode")
Other options:
- /Silent - do not display anything unless there is an error
- /SuperSilent - do not display anything at all
examples:
EdgeSync.exe /BiDirectional /Remote:%USERPROFILE%\OneDrive\Documents\EdgeSync.xml EdgeSync.exe /ToLocal /Remote:"%USERPROFILE%\OneDrive\Shared Documents\EdgeSync.xml"
EdgeManage
The "sister" application EdgeManage can be used to view, manage, sort the favorites that exist in the Remote Sync Data file. To perform this task from EdgeManage, use the "File->Load From Remote Sync Data file" menu
How to run
Since you must periodically run EdgeSync on each device to keep favorites in sync, you can:
- Manually run the application whenever you detect outdated favorites
- Put a shortcut to EdgeSync in the startup folder ( An easy way to find this folder is to type "shell:startup" at the Cortana/Search bar ).
- Install EdgeSync on a network share and use a Group Policy Object (GPO) to place a shortcut in either the login or logoff script
- Create a scheduled task to periodically run the application
When used in startup folder or GPO, make sure to add two arguments (as shown above) to make the application automatically run in a command prompt without requiring user input
Consider a scenario where you have 3 PCs and you want all of the favorites to be exactly the same.
- Start with a "master" PC (the PC that has the "best" version of the favorites)
- Optionally use EdgeManage to clean up, reorganize, and sort the favorites
- Use EdgeSync's "Utilities->Copy Local to Remote" (this will create the "seed" for the Remote Sync Data source)
- Perform a one-time "prep" on each of the other PCs by using EdgeSync's "Utilities->Copy Remote to Local" (now they are all the same)
- To keep them synchronized, add a shortcut to EdgeSync in the Startup folder on all PCs. As shown above, use the /BiDirectional argument (Note: This runs in a command prompt with no user intervention)
So, now each time a favorite is added, deleted, or modified on any of the PCs, those changes will be synchronized to the other PCs upon next login.
Other Related Projects
Take a look at these related projects:
View other projects by Emmet Gray at http://www.emmet-gray.com
Downloads/Links
- SetupEdgeSync.msi - Download the Windows installer file
- EdgeSyncProgramFiles.zip - (optional) Here are the program files if you want to try it out without installing anything
- EdgeSyncSrc.zip - (optional) Download the C# Source code for this application