Assessing and Testing Servicing in Windows Embedded Standard 7
Serviceability is an important aspect of any embedded device. It ensures that the device is running with the latest software which, in turn, improves the user experience. One of the many advantages to Windows Embedded Standard 7 over previous embedded editions is that it now follows the same serviceability principles as Microsoft Windows 7 and can use Windows Update, the same update mechanism as for desktop computers. There are issues unique to embedded devices, though, such as limited disk space and restricted network connectivity, or security concerns, that can influence how you service your device.
Changes to servicing for Standard 7 come with several advantages when compared to previous embedded editions of Windows, such as the following:
Windows Update is a proven mechanism for servicing.
Sharing the servicing code base with Windows 7 means that any issues discovered with servicing are more likely to be discovered and corrected quickly.
Using packaging and distribution mechanisms similar to those used by Windows 7 greatly reduces the chance for delays in providing security updates to Standard 7 devices.
When considering the advantages provided by the changes described above, you should also consider some aspects of servicing that could affect your embedded device.
Disk space or network connectivity restrictions
Unlike desktop computers, which can have gigabytes of free space, embedded devices can have very limited storage space. Many embedded devices are typically not connected to the Internet, while most home and office computers are.
An automatically applied update could require a restart, which might not be desirable or even feasible for certain classes of embedded devices.
Embedded devices in high-risk scenarios (medical devices, for example) might need to be tested with an update before returning it to service.
There are situations, such as low disk space, low memory, and power failure, when installation of an update is unsuccessful. In nearly all situations, though, the servicing features of the operating system manage updates so that they’re either installed successfully or not at all. Once the trouble area has been corrected, the update can be reinstalled.
The overall size of the operating system
While it's obvious that including more packages in your image results in a larger operating system footprint, what might be easy to overlook is that it also increases the likelihood that updates will be required. This, in turn, can cause the installation to grow even more quickly over time as progressively more updates are released. Given some of the other constraints described above, even a few additional packages can have a servicing impact far greater than the utility their presence provides.
To take an extreme case as an example, suppose an organization wanted to include several packages on an installation that would provide the technician who serviced the device with access to additional diagnostic tools. These "extra" packages would also be subject to security updates and the attendant restarts, testing, and so on. It would make for a simpler servicing scenario if the technician simply included those packages in a configuration set and then applied them to the embedded device as needed, removing them later.
Embedded Enabling Features
Embedded Enabling Features pose a unique challenge for servicing embedded devices using Windows Update. Although unique to Standard 7, Embedded Enabling Features have dependencies on many core Windows 7 components. Any updates to those components by the Windows team result in additional testing by the Standard 7 team, to ensure further changes are not required, before being released to Windows Update for Standard 7. This additional testing can potentially delay approving a Windows 7 update for servicing on embedded devices.
It’s also important to note that updates cannot be applied when the File-Based Write Filter (FBWF) or Enhanced Write Filter (EWF) are running on a device as they prevent writing to the protected volume(s). Updating a device using these Embedded Enabling Features requires stopping the Embedded Enabling Feature, restarting the device, applying the update and restarting the device if the update requires it, restarting the Embedded Enabling Feature, and then restarting the device yet again.
In addition to any issues specific to their design and implementation, custom applications can raise concerns about servicing embedded devices. Your answers to the following questions might impact your application design, as well as the embedded devices on which it is installed:
How will an update to your application be distributed to the devices with it installed? Are you assuming the devices have network access or will a technician have to visit some or all of them in order to apply your update?
Will installing an update to your application require a reboot or other downtime for the device?
Is storage space already a concern on the device? If so, what effect might an update to your application have on it?
Does your application have user-configurable settings? How are those settings maintained on the devices where the application is installed? Will an update to your application have an effect on those user settings or how they are stored?
Is it important that all devices where your application is installed be synchronized to the same release of the application?
In order to use Windows Update with your embedded device, you must include the Windows Update Standalone Installer package and its dependencies in your Standard 7 image. (The optional Windows Update User Interface package includes the Windows Update item in Control Panel.)
One of the pages during Windows Welcome is used to specify which types of updates should be installed from Windows Update, or whether to even use Windows Update. (A choice made during Windows Welcome can be changed later by choosing the Windows Update item in Control Panel if that package was included in your image.)
The following two options install updates using Windows Update:
Choosing Use recommended settings installs both important and recommended updates.
Choosing Install important updates only installs only those updates that are published as important updates.
Note: Security updates are marked as Important. For Standard 7, only security updates are published on Windows Update.
In order to test Windows Update with your embedded device, the Standard 7 team has published two sample updates to Windows Update. Neither Test Update 1 (marked as Important) nor Test Update 2 (an optional update) actually make changes to your embedded device and are merely intended for testing embedded devices using Windows Update.
Servicing embedded devices with Package Scanner
For embedded devices that are not connected to the internet or that require updates to be tested before being returned to service, automatic updates from Windows Update are not an option. In part, for scenarios such as these, the Standard 7 team created the Package Scanner command-line tool.
Package Scanner can be used to do the following:
List Installed Packages. Use the
/Get-Packagescommand to return a list of any Standard 7 packages installed over the lifetime of your device, including updates. For more information about the
/Get-Packagescommand, see List Installed Packages Using Package Scanner.
Find Applicable Updates. Use the
/Find-Updatescommand to scan a folder of updated packages and determine which updates are applicable for your device. For more information about the
/Find-Updatescommand, see Find Applicable Updates Using Package Scanner.
Remove Superseded Packages. Use the
/Find-Scavengecommand to find and remove older versions of packages that have been superseded by updates, freeing up valuable storage space. For more information about the
/Find-Scavengecommand, see Remove Superseded Packages Using Package Scanner.
Note: Removing a superseded package means that you will no longer be able to uninstall the update that superseded it and revert to the earlier version.
For a device without network access, you can use the CopyPkgScn command-line tool to create a folder and subdirectory structure containing all of the correct binaries required to run Package Scanner. For more information about the CopyPkgScn tool, see CopyPkgScn Command-Line Options.
Ensuring your distribution share has the latest updates is as important as applying those updates to your embedded devices. With Windows Embedded Developer Update, you now have an easy and reliable way to find and install Microsoft updates for your development tools and distribution shares for Standard 7. Windows Embedded Developer Update is a free, downloadable application that automatically checks your development environment to ensure that you have the most current product updates. You can get Windows Embedded Developer Update from the Microsoft Download Center.
For more information, see Download from Microsoft Download Center.
By considering some of the issues associated with servicing using Windows Update, you can make better decisions about how and when you apply updates to your embedded device. You have also learned about the test updates provided by the Standard 7 team, and how to service a disconnected device using Package Scanner.