OneDrive – Next Generation Sync Client Deployment guide
https://msdnshared.blob.core.windows.net/media/2016/05/0640_NinjaAwardTinyGold.pngGold Award Winner
Introduction
Recently Microsoft published an new sync client for OneDrive For Business. Let’s say: OneDrive Next Generation Sync Client : OneDrive NGSC.
In this wiki we will see what the new sync client can bring to your Enterprise deployment and how to take advantage of some options offered. The actual deploy guide is great but a little bit straight and forward to understand all the capabilities and wanted to share a simple step by step to start using (-testing) this client.
If not already made, please take a look to these articles:
- Meet the OneDrive for Business Next Generation Sync Client
- Get started with the OneDrive for Business Next Generation Sync Client in Windows
- Deploying the OneDrive for Business Next Generation Sync Client in an enterprise environment
- Administrative settings for the OneDrive for Business Next Generation Sync Client
- Transitioning from the existing OneDrive for Business client
OneDrive product is great to use, but when it comes to the corporate world, the limited functionally of the previous sync clients can prevent enterprise-scale deployment. So many questions were not answered before: How to control the OneDrive client? How deploy pre-configured settings to the end-users? How to differentiate "personal" and "professional" accounts? How to control bandwidth when deploying OneDrive to thousands of end-users? How monitor installation?
With the OneDrive NGSC, some of these questions can now be answered. At least partially. The product is still very young, but on the right track. Many features has been introduced with user feedback at https://onedrive.uservoice.com.
Improvements
- News features : Selective Sync, Add Account, MaxFileSize, ...
- Both Corporate and Personal account using the same client
- Allow deploying the client as a standalone product. (as per user basis)
- Allow pre-configuration of some policy through registry
- Allow controlling bandwidth consumption?
Differences between groove.exe and onedrive.exe
OneDrive has a big history with naming convention but for this document we will call the old client “Groove.exe” and the new client “OneDrive.exe”
In short:
- OneDrive for Business Next Generation Sync Client - syncs OneDrive for Business accounts that are part of Office 365. It's built on the sync client used by the OneDrive consumer service.
- OneDrive for Business sync client (Office or Standalone) - syncs OneDrive for Business on-premises accounts (accounts that aren't part of Office 365), plus SharePoint team sites and libraries.
- OneDrive - syncs your personal OneDrive consumer service. Essentially the same technology as the new OneDrive for Business sync client.
Basically saying, you will now have the Office OneDrive(groove.exe) and the OneDrive NGSC(onedrive.exe):
- %LocalAppdata%\Microsoft\OneDrive\OneDrive.exe
- C:\Program Files\Microsoft Office 15\root\office15\GROOVE.EXE"
Note: Support for SharePoint Online library is coming (?).
Sync capabilities | ||
groove.exe | onedrive.exe |
|
SharePoint Server - Library |
yes | no |
SharePoint Server - MySite |
yes | no |
SharePoint Online - Library |
yes | (soon?) |
SharePoint Online - OneDrive |
yes | yes |
OneDrive (Outlook.com) |
yes | yes |
Sync features |
||
- Max file Size |
2GB | 10GB |
- Selective sync | no | yes |
- Max file limit |
20 000 |
30 Mi (150 000 per folder) |
- IT Control |
very limited | more control |
The scenario: Windows 7 Domain joined
For this demonstration we've used this basic environment:
- Windows 7 - 64Bit computer, Domain joined
- Office 2013 - Click-to-Run - Last update
- Office 365 tenant
- Outlook.com personal account
- SharePoint Online (-my + libraries)
- SharePoint Server (on premises)
Note:
- Windows 10 computers will have the Onedrive.exe client installed by default
- Office 2016 Click-to-Run will install by side OneDriveSetup.exe : "C:\Program Files (x86)\Microsoft Office\root\Integration\OneDriveSetup.exe"
This scenario will look like this in the Explorer view. Cloudy isn't?
Step 1: Setup environment
- First, you need to download the OneDriveSetup pack here
In this package you will have:
DefaultToBusinessFRE.reg |
Registry Settings "Business as Default" |
EnableAddAccounts.reg | Registry Settings "Allow User to Add additional account |
OneDrive.adml | Policy : Language resource file (en-us) |
OneDrive.admx | Policy : Language neutral file |
OneDrive_MultiTenant.admx | Policy : Language neutral file (multi-tenant) |
For this example, we will only speak about the OneDrive.admx; not the MultiTenant.admx.
Warning: Only one of these policy definitions should be used. If used together, MMC Group policy will drop an error about declaring the same object twice.
INF : OneDrive Outlook.com
If you go to https://onedrive.live.com/about/en-us/download/ , you will get the new client with the following key set:
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Accounts\Personal] @="Main"
Adapt Policy settings
OneDriveSetup.exe comes with some administrative settings, more detailed information here.
- Open and edit the OneDrive.admx and adapt the following lines:
For this scenario, we will use these settings:
DefaultRootDir |
Set the default path to the local OneDrive Folder |
DefaultToBusinessFRE | Launch the welcome to OneDrive (business) |
DisableCustomRoot | Block users from changing the path location |
**
**Don’t forget to adapt these line of the .admx file:
- {INSERT YOUR CHOSEN PATH HERE} = "C:\OneDrive_DATA\
- Child folders(Per Business) will have %Path%\OneDrive - %DisplayName%"\ structure
Note: The Custom Path must exist or need to be created before.
- {INSERT YOUR TENANT'S GUID HERE} = "12345678-abcd-1234-abcd-123456789abc"
Note: See "Quickly Find the tenant GUID" below.
Setup group policy definition:
Group Policy Definition:
- Copy the Onedrive.adml to C:\Windows\PolicyDefinitions\en-US
- Copy the OneDrive.admx to C:\Windows\PolicyDefinitions\
Group Policy Settings
- Create at least one GPO containing one or more settings:
Note: As these settings are User Configuration, let the default “authenticated users” or add some User Security Group in the filtering. These settings will be deployed by registry item and need to be pushed before deploying the OneDrive NGSC client.
Quick Find: Tenant GUID
- Login into https://portal.office.com/ as an administrative user
- Show Source Page
- Search for this string : \ActiveDirectoryExtension\Directory\[TENANT GUID] like : 12345678-abcd-1234-abcd-123456789abc
Step 2: Deploy OneDriveSetup.exe
The installation will proceed into two steps when running OneDriveSetup.exe
- OneDriveSetup.exe /PerComputer
- Will be deployed under "C:\Program Files(X86)\Microsoft OneDrive\
- Need admin rights
- OneDriveSetup.exe /PerUser
- Will be run from ProgramData to %LocalAppdata%\Microsoft\OneDrive
- No admin rights
If you want to install and detect OneDrive.exe with SCCM See this blog post
For example, simply deploying the client silently (without starting OneDrive)
\\SERVER\SHARE\OneDrive_NGSC\OneDriveSetup.exe /Silent
After the OneDriveSetup has been run with a setup user, you can call the installation for a user without admin rights with :
C:\ProgramData\Microsoft OneDrive\setup\OneDriveSetup.exe /PerUser /ChildProcess
%LocalAppData%\Microsoft\OneDrive\OneDrive.exe
Step 3: Test settings
With the above settings, you should get the following:
- User cannot add personal account
- User cannot change default location
- The first run will go to the “business” login page
If your deployment of Office 365 is setup with Single-Sign-On or if the users credential for login.microsoftonline.com are remembered in credential manager, the end-user will only have to click a button to “sign-in” and start syncing their files.
**
**
Registry item
The previous GPO we made will push some settings:
As you can see, the "Business1" account with "ConfiguredTenandID" map to the \Tenants\GUID Key with our settings set in the ADMX file.
If you use the multi-tenants setup, each "BusinessX" should map to his corresponding \Tenants\GUID.
For example : Business1 to "C:\OneDrive_Data" and Business2 to "%UserProfile%".
First Sync Process
In an empty configuration, the above settings will produce the following screens to the end-users:
- Welcome Screen (DefaultToBusinessFRE)
- Choose "logged on account" or "Professional account"
- OneDrive folder (with DefaultRootDir and DisableCustomRoot)
- Selective Sync screen
Login "Personal" or "Professional"
- Here the difference between using the “DefaultToBusinessFRE” Configuration
Without the DefaultToBusinessFRE registry settings, the sign-in page will be the Outlook.com one (left).
Note: the second page (right) will be replaced by the AD FS login page if you’re in a Federated Setup.
Procmon trace:
Informative:
If you observe the OneDrive.exe client with procmon.exe you will see the following key called (in that order):
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\MainAccount
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\UserFolder
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\NamespaceRootId
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\ConfiguredTenantId
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\DisplayName
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\Business
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Business1\FirstRun
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\Accounts\Personal
HKEY_CURRENT_USER\Software\Microsoft\OneDrive\Software\Microsoft\OneDrive\CurrentVersionPath
Step 4: Advanced settings & ClientPolicy.ini
In the %localappdata%\Microsoft\OneDrive you will find for each account you configure two file:
- Global.ini
- ClientPolicy.ini
These files are automatically created when the user first link his OneDrive account (personal or corporate)**.
Note:** procmon.exe show OneDrive.exe is looking for a file named SPO.INI, so the SharePoint Libraries support is not that far away!
These files are created after a sync configuration. So we cannot directly push the ClientPolicy.ini at logon. These policies settings should be modify on the fly and the Onedrive.exe client need to be restarted. These files also contains specifics users settings, automatically grabbed on first sync or after each new synchronization made with the same "Business1/Personal" account.
If you look closer to the ClientPolicy.ini you will get more settings. Some of them can be useful in an enterprise deployment.
If these settings can be implemented with Group Policy rather than in a configuration file, this will be easier to manage! Here is hoping Microsoft will bring us some light on how to use it (as they are not new).
ClientPolicy.ini
Closer look at the file located under %LocalAppData%\Microsoft\OneDrive\Settings\ Account
(full file edited)
[PolicySettings]
PolicyDocumentPollIntervalSeconds = 26663
BackoffOnErrorsIntervalSeconds = 143
PolicyDocumentPrefetchIntervalSeconds = 5063
BackgroundPollShortIntervalSeconds = 93
BackgroundPollLongIntervalSeconds = 87863
UploadBatchMaxFolderCount = 50
UploadBatchMaxDocumentCount = 50
UploadBlockSizeKB = 8160
DownloadBlockSizeKB = 8160
MaxFileSizeBytes = 10737418240
Tier1MaxFileSizeBytes = 10737418240
Tier1FileInclusionList = |doc|docm|docx|dot|dotm|dotx|odc|odp|ods|odt|pot|potm|potx|pps|ppsm|ppsx|ppt|pptm|pptx|rtf|vdw|vdx|vsd|vsdm|vsdx|vssm|vssx|vst|vstm|vstx|vsw|vsx|vtx|xla|xlam|xlm|xls|xlsb|xlsm|xlsx|xlt|xltm|xltx|xlw|
MaxItemsInOneFolder = 150000
LowVisibilityFileExclusionList = ~$*|._*|*.laccdb|*.tmp|*.tpm|thumbs.db|EhThumbs.db|Desktop.ini|.DS_Store|Icon
|.lock
HighVisibilityFileExclusionList = *#*|*%*|*.| *|* |*.files|*_files|*-Dateien|*_fichiers|*_bestanden|*_file|*_archivos|*-filer|*_tiedostot|*_pliki|*_soubory|*_elemei|*_ficheiros|*_arquivos|*_dosyalar|*_datoteke|*_fitxers|*_failid|*_fails|*_bylos|*_fajlovi|*_fitxategiak|*_vti_*|~|~site|~sitecollection|~masterurl|~templatepageurl
FilenameExclusionList =
CoAuthSupportedFileExtensionsList = |doc|docm|docx|odt|odp|pps|ppsm|ppsx|ppt|pptm|pptx|vsd|vsdx|ods|xls|xlsb|xlsm|xlsx|
CoAuthMinimumProtocolVersions = unknown|0|0|23|33|Z;winword.exe|16|0|43|44|D;winwordd.exe|16|0|43|44|D;excel.exe|16|0|43|44|D;exceld.exe|16|0|43|44|D;powerpnt.exe|16|0|43|44|D;powerpntd.exe|16|0|43|44|D;visio.exe|16|0|43|44|D;visiod.exe|16|0|43|44|D;excelim.exe|16|0|23|33|U;pptim.exe|16|0|23|33|U;wordim.exe|16|0|23|33|U;
CloudSizeLimitForFullSyncInKB = 0
IsCloudSizeCheckNeededForFullSync = false
PathEncoding = UrlEncode
OfficeProgID = Office.LocalSyncClient
OfficeRegKey = HKEY_CURRENT_USER\Software\Microsoft\Office\15.0
OfficeExcludeList = |
MaxClientMBTransferredPerDay = 131072
MaxClientRequestsPerDay = 500000
NumberOfConcurrentUploads = 1
AllowUserOverrideOfConcurrentUploads = false
RootFolderName =
SkyApiURL =
SyncHeartbeatEnabled = true
SyncHeartbeatInterval = 60
SyncVerificationEnabled = true
SyncVerificationInterval = 720
SyncProgressInterval = 60
NumberOfConcurrentStorageRequests = 6
LoggingMaxLogFileSizeMB = 1
MaxLogFilesToKeep = 80
LogUploadUri = https://storage.live.com/clientlogs
MaxLogUploadRetries = 3
LoggingMinTimeBetweenLogUploadsInSeconds = 10
PathChangeSubscriptionScenarioName = PathChange
LogUploadTimeboundDurationDays = 30
SelfHealingBackOffPeriodInSeconds = 604800
ClientNotificationCoalesceSeconds = 120
UploadBatchMaxFileCommitCount = 10
DeferredDownloadRetrySeconds = 600
LogUploadRetryTimeSeconds = 600
IdlePhase1MaxDurationSeconds = 300
IdlePhase2MaxDurationSeconds = 3600
IdlePhase3MaxDurationSeconds = 4294967295
Office15MinVersion = 15.0.0.0
Office16MinVersion = 16.0.0.0
BlockSharedFolderSync = false
HashAlgorithm = XORHash
MaxUrlLength = 260
AllowWnsSubscriptions = true
FullSyncMaxItemCount = 500
IncrementalSyncMaxItemCount = 50
SyncVerificationMaxItemCount = 503
PeriodicRetryIntervalSeconds = 30
PeriodicRetryMaxIntervalSeconds = 300
MaxInlineUploadSizeKB = 0
Tested successfully: MaxFileSizeBytes; Tier1MaxFileSizeBytes ; MaxClientMBTransferredPerDay ; MaxClientRequestsPerDay
ClientPolicy: Usage and Samples
The clientpolicy.ini file remains untouched for tenant settings. However, some cool features can be used at minor cost. The Onedrive.exe process should be restarted to read the new configuration file.
Restrict file extension
On security purpose or to avoid involuntary data import:
- Exclude a file extension from syncing:
- HighVisibilityFileExclusionList = |*.tstfile| *.myapp|
Exclude file name:
- FilenameExclusionList = |password.txt|*pass.word|...
(The resolution message is not really corresponding.)
Max Transfer per day
We can imagine control basically the total transferred MB per day per client:
- (Default) : MaxClientMBTransferredPerDay = 131072
- (Sample) : MaxClientMBTransferredPerDay = 10240
After the limit, user will receive an error message: Please try again tomorrow.
Debugging log tool:
The new OneDrive NGSC client come with a built-in log collector:
- %LocalAppdata%\Microsoft\OneDrive\version%\CollectOneDriveLogs.bat
Actual Limitations
You should read & follow this before implementing the new client! See this link: https://support.microsoft.com/en-us/kb/3125202
Other Resources:
- http://blogs.technet.com/b/chitpro-en/archive/2015/11/25/onedrive-for-business-next-generation-sync-client-update-et-links.aspx
- How to deploy OneDrive next generation sync client with SCCM
- https://blog.onedrive.com/meet-the-new-onedrive-for-business/%20
- API : https://dev.onedrive.com/%20
- Groove.exe limitations : https://support.microsoft.com/en-us/kb/2933738
- Onedrive.exe limitations : https://support.microsoft.com/en-us/kb/3125202
- Hans Brender's blog : https://hansbrender.wordpress.com/new-generation-sync-client-engl/