What’s in a name?

SkyDrive Pro might be the worst named of all of the products to come out of Microsoft in a while. I sometimes think about the meetings that must happen in Redmond, Developers on one side of the room and Marketing on the other.

Marketing: “Yeah it’s just like SkyDrive where you can store all your files but more corporate because it links to SharePoint”
Development: “Huh? But it doesn’t have anything to do with SkyDrive”
Marketing: “Yeah but SharePoint is moving to the cloud and SkyDrive is in the cloud so it’s the same isn’t it?”
Development: “Whatever dude, call it what you want, you will anyway”

That conversation and the obvious retreat of technology reality to marketing dream left most of us with the following confusing array of icons and names in Explorer, Task Manager and the Tray.

 

Whats worse is the “SkyDrive” menu bar in SharePoint 2013 is not SkyDrive either, nor is it SkyDrive Pro, but instead it’s a link to a personal SharePoint document library. Something tells me we are half way along a not completely formed roadmap.

Bad naming (and icons) notwithstanding, SkyDrive Pro is not SkyDrive and it’s more than SharePoint Workspace. Under the hood SkyDrive Pro is, just as SharePoint Workspace 2010 was, a synchronization product called Groove (Marketing team again?). Try right clicking on SkyDrive Pro in the Task Manager and click Properties.

Groove is a synchronization technology that uses the Sync Framework under the hood. The Sync Framework is a generic library for implementing synchronization of disparate data sources, and is appearing under the hood in many applications, including SQL Azure Data Sync.

There is one very important improvement in SkyDrive Pro over SharePoint Workspace 2010, and that is the way it stores files locally on your machine. Where SharePoint Workspace 2010 persisted files in large encrypted blobs that could only be accessed through the SharePoint Workspace user interface, SkyDrive Pro lays the files down on your disk just as they appear in your SharePoint document library. You are then free to interact with those files just as you would other files on disk. SkyDrive Pro will sync the changes between SharePoint and local file system as required in the background.

Which got me to thinking, could we convince SkyDrive Pro to sync two SharePoint lists with each other by syncing them with folders that themselves are synced? Turns out you can, with some work.

Preparation

First set up two SharePoint document libraries. They can be in the same site, different sites, online of on-prem and even different versions of SharePoint. In one create a DocumentA and the other create Document1. Now use the Sync button in the top right corner to sync the libraries to local folders on your machine.

Once these are syncing with SkyDrive Pro you’ll end up with files in two folders (SkyDrive Pro won’t let you sync to the exact same folder so it will add a number on the end to avoid the clash.).

What we need to do is Sync those two directories with each other.

SyncToy

SyncToy (I blame this name on the Development team) is a product that again uses the Sync Framework under the hood but is focussed on keeping file systems in sync. It can be used through the GUI or scripted to regularly sync 2 folders. Now use SyncToy to set up a sync between your two folders.

And optionally set up a regular scheduled task to run the sync with the following command.

“C:\Program Files\SyncToy 2.1\synctoycmd” -R
Add or remove files from one SharePoint library, after the schedule task runs, the changes are reflected in your other SharePoint library. What we’ve done is set up a 3-way sync between SharePoint libraries and local directories

That’s pretty powerful but there’s a couple of problems with it. First the sync is only as regular as the synctoycmd
scheduled task. Second, SyncToy adds a couple of files your directories to maintain state that are hidden in the file system but show up in SharePoint

Symbolic Link

NTFS supports a symbolic link between folders which will make the same files appear under multiple folder locations. If we use a link then there’s no need to sync files locally using SyncToy. The difficulty in setting this up is SkyDrive Pro is holding onto these folders and is remarkably resilient to being shut down even temporarily so we can set up the link. But it can be done.

There’s probably a couple of ways to do this. Here’s my attempt (on Windows 8)

Copy the following into a link.bat file on your desktop (replace with the names of the directories you need to sync)

rmdir /S /Q “C:\Users\Peter\SharePoint\Kloud Team Site – Documents 1”
mklink /D /J “C:\Users\Peter\SharePoint\Kloud Team Site – Documents 1” “C:\Users\Peter\SharePoint\Kloud Team Site – Documents”

Click Start and type msconfig and choose “Safe boot- Minimal”.

And Restart as requested

This will launch Windows without all the services running in the background and means you’re free to play with the SkyDrive Pro folders.

Run the link.bat file and reboot again but this time using “Normal startup”. When Windows comes back up, right click on SkyDrive Pro icon in the task bar and “Open your SkyDrive Pro folder” (Don’t worry about the red cross, I think this is because the “Link” explorer icon and SkyDrive icon don’t work together)

Now any changes made in either SharePoint library are constantly being synced to the other.

Sync Services

While it’s a bit of work to set up, the effect is quite powerful. What we’ve set up is a local sync agent for two SharePoint sites. It could be used as a backup service or keeping development and test environments in sync, or bringing remote data closer to the user. That’s a service that some software companies sell expensive replication products for and it’s a service that would make a great PAYG service like Data Sync Service for SQL Azure.

Now there is one product absent from the new 2013 suite of SharePoint products, a new version of Groove Server. This technology can be used as just this sort of a synchronization agent between multiple parties. As the challenges of dealing with remote cloud based services like SharePoint Online becomes more prevalent, I expect it’ll turn up again in other clothes.

Maybe SkyDrive Pro Sync Service? (Over to you Marketing team?)

Category:
Office 365, SharePoint
Tags:
, , ,

Join the conversation! 9 Comments

  1. Hi Peter, I’m just giving Office 365 Small Business trial a go and I have to agree that it’s a bit all over the place, especially with the whole SkyDrive/SkyDrive Pro distinction.

    I actually came across this article looking for a way to symlink external folders on my local HDD to be synced using SkyDrive Pro, which doesn’t seem to be working for me. I’m curious what you mean about SkyDrive ‘holding on to the folders’?

    I’ve tried creating the symlinks normally and in safe mode… In both cases I can create them without any issues, but SkyDrive doesn’t seem to want to index and upload the files in the symlinked folder.

    Any insight would be appreciated.

    • Can you post your mklink command

      Remember to make this work we are literally removing the folder that SkyDrive Pro created and sneaking in a symbolic link folder instead. That’s why you need to find a way to stop SkyDrive Pro because we need to delete the folder it created which it wont let you do (understandably) while it is running.

  2. Hi Peter, Currently I am migrating 6TB of Data to SharePoint Online. Users will be using the SkyDrive Pro Sync client to sync between computer and SharePoint Online doc library. I have a couple of questions here:

    1. Can the users do Selective Sync. Means, if in a Doc library, I have Doc-1 and Doc-2, will I be able to Sync only Doc-1 and not Doc-2??
    2. I will be pushing the SkyDrive Pro Sync client application to all the user computers across the organization through ADDS. I do not want the users to put the Library URL in the Sync client. Can I automate this process? This might not make much sense considering the practicality, but I need to know if it is possible in any way.

    Thanks,
    Bikram

    • Wow 6TB is quite a challenge.
      SkyDrive Pro is sadly lacking in ability to Sync only parts of a folder structure. Ideally you’d be able to opt out of certain folders or files but its no possible.

      I haven’t seen an easy way to preset SkyDrive Pro folder sync. I had a quick look in the registry and file system but nothing obvious turned up.
      Remember the product is Groove so you need to look around here C:\Users\username\AppData\Local\Microsoft\Office\Groove for config settings

  3. Hi, quick question: Would you know if it is possible to sync a document library using SkyDrive Pro if the site is running in 2010 mode in SharePoint 2013.

    The ribbon do show the “sync to sharepoint workspace” button…

    Thanks

    • Hmm, from memory SharePoint 2010 had a “SharePoint Workspace” button on the document ribbon which invoked SkyDrive Pro sync on a machine with Office 2013 installed. But I can be sure that the button is there on 2013 in 2010 mode. Best option is to right click on your SkyDrive Pro icon and use “Sync a Library” and enter the URL there

  4. I’m looking to synchronize two copies of a local area network shared folder structure on a server running SBS2011. There’s the local share on the server, and a synced replica at a remote site. There’s no actual server at the remote site, just a few PCs and maybe a NAS box. Total storage maybe 500GB.

    In theory, one could use SyncToy to do direct synchronization between the two locations through a VPN and direct file access.

    Because the server runs SBS2011, it has SharePoint. Would it make sense to involve it? I’m dubious because I’m thinking it would be a waste to store all that data twice, and these files are large graphic files that need to be accessed very quickly, so Sharepoint may not be a good place for primary storage. Not sure SharePoint would be a good fit for that.

    Is this making any sense?

    — Ken

    • Hmm, interesting question.
      Firstly the cost of storing the data twice is probably worth it since your automatically getting redundancy so you can use cheaper (non RAID storage) in the head office.
      Which tool to use depends on two things, the size of the files and the direction of replication.
      SharePoint/One Drive Pro is good for two way replication (updates at the branch office) but not so good for large files >100MB
      If you only need one way replication (copy down to branch office) consider Branch Cache which will share files across your branch office machines.
      If you need 2 way and large files then something simple like synctoy will do the trick or your possibly in the marker for Windows Server 2012 new technology DFSR which Im soon to blog about.

Comments are closed.