Open Directory Mobile Account Home Sync Conflict Settings

rjeffers
New Contributor

We are using Open Directory for our network users, and we are planning to change them to syncing mobile accounts rather than pure network accounts.

We would like this change to be as seamless to our users as possible, so we would like to see if there is a way to automatically set the settings for home sync conflicts. We would like to select the option to "Keep the most recent modification date" and also check the checkboxes that say to resolve all future conflicts this way as well.

Our goal is to set this setting without the user seeing this popup.

We are using a Casper configuration profile to set the Mobility settings that create the mobile account.

Thank you for any assistance you can provide.

775181aed6244c4690d0d3df362b4e23

1 ACCEPTED SOLUTION

davidacland
Honored Contributor II

I haven't used it recently but you will need to track down what plist is storing the value of the bottom checkbox in your screenshot and look at creating a custom config profile to deploy the setting.

View solution in original post

14 REPLIES 14

davidacland
Honored Contributor II

I haven't used it recently but you will need to track down what plist is storing the value of the bottom checkbox in your screenshot and look at creating a custom config profile to deploy the setting.

calumhunter
Valued Contributor

Wow i didn't know mobile home sync was still a thing, thought apple nixed that years ago?

For sure do not go down that path! It's horrible, buggy and will make your life hell.

Use local account home folders and have the users access their files on network shares

rjeffers
New Contributor

davidacland,

Thank you for your help. That should resolve my issue, although I'm not sure how to figure out which plist file it is using.

calumhunter,

Apple doesn't seem to recommend this type of setup anymore, but it still seems to be the best option for our environment. We have mostly shared-use laptops and desktops in our schools, so the idea of users being able to log in from any computer and have their desktop there would work best. Would local account home folders with network shares still be your recommendation for a shared-use environment?

bollman
Contributor II

I will tell you this: do not do Apple synced home folders. It is a nightmare, and I've got the experience to show.
We used Synced Home Folders for the first 4 years of our casper based mac service at Lund University. In the end we just had to move away from it since it is absolutely impossible to trust.
The conflicts are conflicting (bad pun) and not always correct.
If you have large "files" (like the iPhoto Library) the sync will take more or less forever and result in duplicates, errors, conflicts and all sorts of really bad problems.
The sync may fail miserably and not tell you or the user anything. We found computers with no errors but no sync.
The sync may bring back old files anytime and create confusing states.
With larger home folders, it's excruciating slow.
If users don't sync for a while it may actually take forever to get back in sync.
I could make this list 10 times longer, but the bottom line is: the ulcer is avoidable...

We ended up moving to Unison which is amazing compared to the Apple crud.

rjeffers
New Contributor

bollman,

Thanks for the advice about how big of a headache synced home folders can be. The reason that I think it might work for us is that we only have K-8 students and they are not working with very large files. The majority of their saved work is done with Office applications, so the file sizes shouldn't be too big. We are currently using pure network accounts, which is causing all kinds of crashing problems with Office applications(I'm told because Office constantly writes to a .TemporaryItems folder). The transition to synced mobile accounts should help with the Office crashing issue, but we definitely don't want to introduce all kinds of new syncing issues. We will try to consider other options as we continue to find out about them.

bollman
Contributor II

One of the main headaches of Apples FileSync is that if you have a MS Office file open when the periodical sync runs, you WILL get a failure. The files are open in a way FileSync cannot handle so you will get a confusing message saying the sync failed on that file, and it will come back every time the sync runs.
Also, if you have files on the desktop and then move those files to a folder, FileSync might very well bring those files back to the desktop unless a full sync has been done before you move files.
You will also have to be very diligent with the exclusion list, there are tons of files you'll have to add to that list or it will throw errors until your users (even if they are K-8) will throw the computers at you.
If you need more guidance on Unison as an alternative, I'll be happy to help.
You can read up on Unison here:
https://www.cis.upenn.edu/~bcpierce/unison/

bollman
Contributor II

Also, if you really want to use Apples FileSync, I still have our exclusion lists and plists and what not ready for deployment with the JSS for you.

bollman
Contributor II

Hopefully, none will ever use this, but for reference, here are the settings we used:
670d12071e9f4872aa720e01f947f6d0

bollman
Contributor II

Managed Home Sync Exclusions - system

 <array>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Applications</string>
        </dict>
                <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Wine Files</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>regexPath</string>
            <key>value</key>
            <string>~/(?i)(Documents/)?Private?</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>is</string>
            <key>value</key>
            <string>InstallESD.dmg</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>is</string>
            <key>value</key>
            <string>.DS_Store</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Dropbox</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.dropbox</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.FileSync</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Documents/Parallels</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Documents/Virtual Machines.localized</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Documents/Virtual Machines</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>Autosave</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.Trashes</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.Trash</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Movies</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Music</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Pictures</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>Microsoft anv</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Documents/Microsoft User Data</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>.bash_history</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>.bash_profile</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.ssh</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/VirtualBox VMs</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Google Drive</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>partialPath</string>
            <key>value</key>
            <string>~/Box</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/SkyDrive</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/VirtualBox VMs</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>endsWith</string>
            <key>value</key>
            <string>.idlk</string>
        </dict>
    </array>

Managed Preference Sync Exclusions - system

<array>
        <dict>
            <key>comparison</key>
            <string>is</string>
            <key>value</key>
            <string>.DS_Store</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/iLifeAssetManagement</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/Google/Drive</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/Dropbox</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/AddressBook/Sources</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Preferences/SDMHelpData</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>Office 2011 Identities</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>startsWith</string>
            <key>value</key>
            <string>Mac-</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>startsWith</string>
            <key>value</key>
            <string>EWS-</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>startsWith</string>
            <key>value</key>
            <string>AosIMAP-</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>startsWith</string>
            <key>value</key>
            <string>Exchange-</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>startsWith</string>
            <key>value</key>
            <string>IMAP-</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/iTunes/iPhone Software Updates</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Safari/HistoryIndex.sk</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Safari/Icons.db</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/PubSub/Feeds</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/PubSub/Downloads</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>partialPath</string>
            <key>value</key>
            <string>~/Library/PubSub/Database</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Printers</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Preferences/Macromedia/Flash Player</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Mail/Envelope Index</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Mail/AvailableFeeds</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Logs</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Calendars/Calendar Cache</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Caches</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/MobileSync</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/SyncServices</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Containers</string>
                </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>.lock</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Saved Application State</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Mail/V2/MailData</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Applications Support/Spotify</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Spelling</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>contains</string>
            <key>value</key>
            <string>.exchange</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Mobile Documents</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/Ableton</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Developer</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.Trashes</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/.Trash</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/iDVD</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/Evernote</string>
        </dict>
        <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/Steam</string>
        </dict>
                <dict>
            <key>comparison</key>
            <string>fullPath</string>
            <key>value</key>
            <string>~/Library/Application Support/CrossOver</string>
        </dict>
    </array>

Managed Home Sync Items - system

<array>
    <dict>
        <key>path</key>
        <string>~</string>
    </dict>
</array>

Managed Preference Sync Items - system

    <array>
        <dict>
            <key>path</key>
            <string>~/Documents/Microsoft User Data</string>
        </dict>
        <dict>
            <key>contains</key>
            <string>~/Documents/Microsoft anv</string>
        </dict>
        <dict>
            <key>path</key>
            <string>~/Library</string>
        </dict>
    </array>

Some of this stuff is localized for Swedish, but I'm sure you can tell ;)

bollman
Contributor II

Hm, that wasn't pretty, but I bet you can use it anyways, just add a CR/LF after each closed tag.

rjeffers
New Contributor

Thanks again for all your help, bollman!

calumhunter
Valued Contributor

@bollman you can use the script tag (Looks like >_ in the toolbar) to preserve formatting

Managed Home Sync Items - system
<array> 
    <dict> 
        <key>path</key> 
        <string>~</string>
     </dict>
</array>

bollman
Contributor II

Thanks @calumhunter I should have known that :-/

jaypee
New Contributor II

@bollman I've been investigating Unison as a Home Sync replacement as I just started a new position where it's still being used. Would you still be willing to talk about your implementation?