Note: The article below refers to System Center 2012 Configuration Manager RTM with no service pack applied. For information about managing embedded devices with write filters using Configuration Manager with Service Pack 1 or later, refer to this article instead.
This blog will introduce the prerequisites for installing the System Center 2012 Configuration Manager client on Windows Embedded Devices, provides a sample script that you can use with Configuration Manager to automatically disable and enable the Windows Embedded Write Filter and the step by step guidance on how to deploy software or software update to writer filter enabled Windows Embedded Devices with System Center 2012 Configuration Manager.
For System Center Configuration Manager 2007, we have the following documents related on how to manage Windows Embedded write filters:
Most of the content still applies for System Center 2012 Configuration Manager. However, we found there is some content which needs to be updated:
Configure the following exclusions if you want to use File-Based Write Filter (FBWF) to persist the state of the System Center 2012 Configuration Manager client between device restarts.
Configure the following registry exclusions using the Embedded Designer as you create your image:
Configure the following exclusions if you are using task sequences to manage the Configuration Manager client.
Configure the following file exceptions using File-Based Write Filter after installing the System Center 2012 Configuration Manager client:
Configure the following exceptions if you are using task sequences to service the Configuration Manager client.
For detailed information about building images and configuring write filters, see the Windows Embedded documentation.
Download the sample script from here: http://technet.microsoft.com/en-us/library/bb932156.aspx
If you want to use the script on a computer running Windows Embedded Standard 7 (WES 7) with Enhanced Write Filter (EWF), edit the script as follows:
Find the following line in the script:
if (bIsEWFInstalled) AND (InStr(strLine, "Device Name")) Then
Change “Device Name” to “Volume Name” as shown in the following example:
if (bIsEWFInstalled) AND (InStr(strLine, "Volume Name ")) Then
Note: This edit is needed because the location of the ewfmgr.exe command output is changed between WES 2009 and WES 7. The following code shows the Ewfmgr.exe command output location for WES 2009 and WES 7.
Ewfmgr.exe command output on WES 2009.
Ewfmgr.exe command output on WES 7
To use the script and perform software distribution and software updates management using System Center 2012 Configuration Manager on Windows Embedded devices that use the Enhanced Write Filter (EWF) or File-Based Write Filter (FBWF) write filter, you must take the following steps:
Use the following procedures to create a software distribution package and programs containing the sample script and to create and deploy the task sequence to install the script on Windows Embedded devices in your organization.
Use one of the following procedures to create a program for the software distribution package.
The task sequence will run on the targeted computers. When the task sequence runs it will, disable the write filter, install the required software or updates, and then enable the write filter after the installation is complete.
For a File-based write filter (FBWF), you need to do some additional steps besides the script and task sequence:
When using the FBWF, there is a script that is required to run on the local system at shutdown. This script needs to commit the SMSTSVolumeID file that is generated by a task sequence initiated Configuration Manager restart to the FBWF. If the task sequence runs the Write Filter Disable command and this file is not committed prior to the restart, the task sequence will not continue after the computer restarts. To enable this script, it should be added to the Local Group Policy as a Shutdown script.
Use the following procedure to set the Shutdown script.
Set WshShell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
strCommand = "C:\Windows\System32\fbwfmgr.exe"
strDir = "C:\"
Set colDir = FSO.GetFolder(strDir)
For Each objItem In colDir.Files
If LCase(left(Cstr(objItem.Name), 10)) = "_smstsvolu" Then
smsvolID = objItem.Name
strCommitCommand = strCommand & " /commit C: \" & smsvolID
If NOT smsvolID = "" Then
Set oExec = WshShell.Exec(strCommitCommand)
'Wait for the previous command to complete.
Do While oExec.Status = 0
This posting is provided "AS IS" with no warranties and confers no rights.
<p>this seems to be the case in 2007 R3 as well. Perfect post though.</p>
<p>also, if your going to use the technet script to enable/disable the write filters in a SCCM task sequence and you want the SCCM program to handle the reboot as per this blog, you have to pull out/comment out the reboot function, or line that calls the reboot function when enabling the write filter.</p>
<p>The reboot function is called on line 280 of the script.</p>
<p>How will this work with Sp1?</p>