*This post originally appeared on the AppSense blog prior to the rebrand in January 2017, when AppSense, LANDESK, Shavlik, Wavelink, and HEAT Software merged under the new name Ivanti.

Blog_Banners_main-page[1]

Today I’d like to talk about a couple of new, powerful features introduced in the DataNow 3.5 Windows client that offers administrative control over what data is allowed to sync (exclusions) and what data is excluded from being populated automatically in a user’s cache by default in automatic map points (electives).

Exclusions- Why would you want to exclude data from being synced? A common use case of DataNow is to provide users with seamless offline access to their data from multiple platforms, and to ensure that any locally created data is automatically synced with the copy on the organization’s file servers. One way of doing this is to redirect the Windows user profile folders into the local DataNow cache.

This is great from the user’s perspective, since they can continue working in a familiar way with their Desktop/Document folders, but inevitably there will be some content that either the administrator will not want to sync back to the server (a user’s music or film library for example) or is backed up via another method (Outlook OST files for example). Some other file types, like in-use database files just don’t support being replicated by any file level sync product.

Earlier versions of DataNow 3.5 supported path/extension based exclusions for uploading files/folders.

DataNow 3.5 introduces advanced bi-directional client-side conditional exclusions based on regular expressions with new criteria that can be evaluated by type, age, size and path.

Let’s look at how it works.

DataNow 3.5 Exclusion Registry Keys

DataNow exclusions are controlled via four, new registry keys:

HKCU\Software\AppSense\DataNow\FilePolicy\Exclusions

HKCU\Software\AppSense\DataNow\FilePolicy\ExclusionOverrides

HKCU\Software\AppSense\DataNow\DeltaPolicy\Exclusions

HKCU\Software\AppSense\DataNow\DeltaPolicy\ExclusionOverrides

FilePolicy is concerned with file sync exclusions (and electives covered later in this post)

DeltaPolicy allows you to control which file types are excluded from ‘delta sync’ where we only sync portions of the file that changed.

We can build exclusion expressions based on combinations of:

  • File & Folder Paths
  • File Extension
  • File Age
  • File Size

By default, DataNow excludes certain temporary files from syncing to and from the server. For reference these are:

  • Files with the extension tmp, lnk, partial, crdownload, part and download
  • Office backup files starting with ~$
  • Excel temporary files
  • Open Office temporary files
  • The Recycle Bin

When any custom exclusion is defined in the registry, the implicit default exclusions are ignored (allowing for customization of this list if required). I’d recommend re-adding these with the following expression:

 (Ext In [tmp lnk partial crdownload part download]) OR (Name == /~\\$.*/) OR (Name == /[0-9A-F]{8,8}/) OR (Name == /\\.~lock.*#?/) OR (Name == /.*~/) OR (Path == /\\$Recycle.Bin$/)

This expression is added as a registry string value with an arbitrary name under the

HKCU\Software\AppSense\DataNow\FilePolicy\Exclusions

blogexclusions

Example- To demonstrate the power of the new rule based exclusion expressions, take the following example, where you want to configure DataNow so that it will only sync files that are younger than 1 year AND under 100MB but NOT Word or excel files (these can sync regardless of size / age).

First configure the exclusion:

Registry Key: HKCU\Software\AppSense\DataNow\FilePolicy\Exclusions

Value Type: REG_SZ

Value Name: (arbitrary)

Value Data: Age > 1Y And Size > 100Mb"

This puts a blanket, bi-directional sync exclusion on files matching both of the above criteria (you could use the OR statement if you wanted to block either).

You can use the Exclusion Overrides key to add exceptions to all configured rules (these are evaluated last).

Registry Key: HKCU\Software\AppSense\DataNow\FilePolicy\ExclusionOverrides

Value Type: REG_SZ

Value Name: (arbitrary)

Value Data: Ext In [doc docx xls xlsx]

Files not modified in over a year will not be uploaded to the server. Files not modified in over a year present on the server, but not present locally, will not appear in listings.

Important note- One of the key challenges faced when applying exclusions to existing data, is how to address the relationship between the server and client side data once the exclusion is applied. We handle it as follows.

By default, if an exclusion is applied that matches in-sync data, we will ignore the exclusion for that data and continue to sync changes, invoked locally or out-of-band. If new content is created that matches the exclusion filter, then the exclusion will be applied.

If it is desired to override this behaviour and prevent any further sync activities with defined exclusions, there is a mechanism provided to allow this via the ‘insync’ property. This returns ‘true’ or ‘false’ depending on the sync state of the file, which is tracked in the local ADS metadata.

Great, so how do I do this?

The easiest way is to use an exclusion override that duplicates the exclusion rule and additionally adds the ‘insync’ flag and a ‘not’ statement.

E.g. if you had an existing exclusion defined to exclude .ISO files and .EXE files and wanted this exclusion to apply to existing data, you could add the following exclusion override:

Registry Key: HKCU\Software\AppSense\DataNow\FilePolicy\ExclusionOverrides

Value Type: REG_SZ

Value Name: (arbitrary)

Value Data: insync and not Ext In [exe iso]

Electives- To set the scene, in DataNow we have ‘automatic’ and ‘manual’ sync policies admins can apply to map points.

In the case of automatic map points, all content not matching an exclusion filter is synced between the map point and the local DataNow cache on the endpoint. Manual map points are not quite as straight forward. In this case, all locally created content syncs to the server and is ‘in-sync’ from that point forwards.

Server-side content is represented locally by a ‘ghost’ file which doesn’t consume any local disk space, but allows the user to see and interact with the file in the same location. This is only downloaded to the user cache on the first access by the user or their application.

Users always have flexibility and control over what content is stored in their local DataNow cache via the Explorer right-click menu option. Here they can opt to sync or unsync at any folder level in the map point hierarchy. This will in the case of selecting ‘sync’ subscribe to all content and sub-content, or in the case of ‘unsync’ revert local content to ‘ghost’ files.

So where do electives fit in?- Electives are synonymous with ‘Automatic’ map points, and offer a way to administratively override content from being synced down to a user endpoint by default on an automatic map point. The primary use-case envisaged is conservation of disk space on the endpoint and on-boarding bandwidth consumption by making file types the user is not expected to use download-on-demand.

Electives are defined in a similar way to exclusions, and we offer the same degree of granularity.

DataNow 3.5 Exclusion Registry Keys:

HKCU\Software\AppSense\DataNow\FilePolicy\Electives

HKCU\Software\AppSense\DataNow\FilePolicy\ElectiveOverrides

As per exclusions, we can build elective expressions based on combinations of:

  • File & Folder Paths
  • File Extension
  • File Age
  • File Size

Here’s an example of setting an Elective policy you could apply to an endpoint so that an automatic map point will download everything to an endpoint except for .ISO or .EXE files that are over 500MB and older than a year, unless they’re in a specific folder (\ImportantISOs) in which case they will be downloaded automatically:

Registry Key: HKCU\Software\AppSense\DataNow\FilePolicy\Electives

Value Type: REG_SZ

Value Name: (arbitrary)

Value Data: Ext In [iso exe] And Size > 500Mb And Age > 1Y

Here we’ve created a blanket elective rule to apply to all files with an extension of .iso or .exe

Registry Key: HKCU\Software\AppSense\DataNow\FilePolicy\ElectiveOverrides

Value Type: REG_SZ

Value Name: (arbitrary)

Value Data: Path == /ImportantISOs\\.*\..*/

I hope this blog provides some insight into these powerful, new features and how they can be used to sync the right data, keeping your end users happy and productive.