Tips for deploying Shadow copies for Shared Folders

Shadow copies for shared folders (in short, SCSF) requires two steps in deployment:
1) Enabling shadow copy creation at the file server side. With this, you ensure that files exposed in your shares on this server will have previous versions.
2) Ensuring that the clients have access to previous versions of files shared by the above file server. If you have Windows XP SP2 you have nothing to install. If you have Windows XP RTM, SP1, or Windows 2000 then you have to install a small MSI package - the Previous Versions client.

In this post I will present some tips that might be useful in these steps enumerated above:

1) On the first step (scheduling shadow copy creation) you have several options. The simplest option is just pressing the "Enable" button in the "Shadow Copies" tab on the volume on which you want to turn on this feature.

Alternatively, if you want a pure command-line solution, you can also use the SCHTASKS.EXE to create the schedules directly from the command-line. Do do that, you simply have to specify the command-line to create the shadow copy in the newly created task. Here is an example of scheduling a shadow copy daily creation on the C:\ drive:

schtasks /create /sc daily /ru system /tn ABC /tr "C:\WINDOWS\system32\vssadmin.exe Create Shadow /AutoRetry=5 /For=C:"

Please note, however, that in a cluster, SCHTASKS won't work properly in clusters. This is because you actually need a scheduled task clustered resource, and schtasks will only create a local scheduled task which will not failovr with the associated volume. For now, I would like to say that you need to use the "Shadow Copy" tab if you manage SCSF in clusters.

You also can use the VSSADMIN command to configure various parameters like the maxium shadow storage, etc. Additionally, you have the same functionality through a set of WMI classes: Win32_ShadowCopy etc. These classes can be used from a VB Script - I presented some examples in a previous post.

2) On the second step (making shadow copies available to clients) you have several options. First, you need to ensure that the Previous Versions client binaries are installed on the client machine. Technically, this client is a shell extension (TWEXT.DLL) implementing the "Previous Versions" tab that you see in the shared file property page, if everything is configured correctly.

If you have Windows XP SP2, you have nothing to do. This shell extension is already part of SP2. If you have XP SP1 or RTM, or even Windows 2000 SP3 or later, then you have to manually install this client in order to see the Previous Versions tab. Here is a link to the latest MSI package containing the client binaries.

Note that if you have a Windows 2000 client, you have to install the client on both the client and the server. Otherwise you won't see the Previous Versions tab in your client. The reason is that the SRV component disables access to Windows 2000 clients by default. This access can be manually enabled through a registry key (documented here). Installing the MSI simply creates this registry key, which enables SRV to serve Windows 2000 clients.

Finally, I would like to mention that you can restore files not only through the Previous Versions tab, but also from the command line, using the VOLREST.EXE utility. This tool is included in Windows Server 2003 Resource Kit.