Automatically uploading files from File Server to SharePoint using the File Classification Infrastructure (FCI)

Windows Server 2008 R2 introduced a new File Classification Infrastructure that enables assigning metadata to files and applying file management tasks based on the file metadata (Windows Server 2008 R2 File Classification Infrastructure – Managing data based on business value)


In the past few months, we had a lot of questions from customers on how FCI ( can help with scenarios such as:

·         Migration from File Servers to SharePoint

·         Moving specific files to SharePoint for advanced data management capabilities such as retention …

To help address these scenarios, we have recently published the FCI SharePoint Upload PowerShell script (Upload script on TechNet) that can be used in conjunction with the FCI file management tasks (Customizing File Management Tasks) to upload files to SharePoint (Both SharePoint 2007 and SharePoint 2010 Beta)

Note: you need to enable PowerShell script execution for the script to work


A few points to note about the FCI SharePoint Upload PowerShell script

·         When uploading a file to SharePoint, you can choose whether to leave a link on the file server, delete the file or just leave a copy of the file

·         The script supports transferring FCI metadata to SharePoint for all file formats as long as the same properties (columns) with a matching name (case sensitive) and type are defined on the SharePoint site

·         Files uploaded to SharePoint will get assigned the access rights of the SharePoint library they are uploaded to


An important aspect of the integration with FCI is that it allows you to target which files should be uploaded to the SharePoint site and which should remain on the file server. You can target files based on their creation date, last modified date, extension and of course classification properties.

Targeting which files to upload is a good practice (that will probably save you a lot of time) – for example: for a specific project you probably want to upload only the up to date information and avoid cluttering the SharePoint site.


The example below shows a simple upload scenarios. There are additional scenarios and capabilities that SharePoint 2010 lights up and will be discussed in future blogs

Example: Automatic upload of files into a SharePoint library

Let’s take an example where we would like to upload all files pertaining to the Apollo project from a collection of file shares to a SharePoint document library called “Project Apollo” and leave a links so that users can reach the uploaded files when they browse to the file server.

For this example, we will assume the files that we want to upload are tagged as “Project=Apollo” but this is optional, you could also choose to just upload all files

Some more details before we lay down the steps:

·         File server shares are in: d:projects

·         Address of the SharePoint site is http://contoso

·         Document library on that site called “Project Apollo”.

·         User “contosojohndoe”, with a password of “up@load”, has the rights to contribute to the site. (this is the user that the script will use when uploading the files)


Using the FCI snap-in (Customizing File Management Tasks)

1.       In the right pane, click on “File Management Tasks”.

2.       Click on “Create File Management Task…”

This will bring up the “Create File Management Task” dialog.

3.       In the “General” tab, fill in the fields in the dialog as follows:

a.       Task name example: “SharePoint Upload example”

b.      Scope example: “d:projects”

4.       In the “Action” tab select “Type: Custom”

5.       Fill in the rest of the fields as follows:

a.       Executable: “C:WindowsSystem32WindowsPowerShellv1.0powershell.exe”

b.      Arguments: -noninteractive -file c:scriptsFciSharePointUpload.ps1 -file “[Source File Path]” -url “http://contoso” -libPath “Project Apollo” –sourceAction url -user contosojohndoe -password up@load

c.       Run the command as: Local System

6.       In the “Condition” Tab add a condition such as “Project   Equal  Apollo”

7.       In the “Schedule” tab add a schedule on which you would like to perform the operation

Once you configured the task, you can also choose to “Run task now” and observer the results