Deploying SMS Packages


Deployment of an SMS Package involves placing the package into the SMS download folder on the scanner's host PC. Whether the SMS agent is running as a service or as an application, the SMS agent monitors the download folder for a deposited SMS Package. If a package exists, the SMS agent executes the actions specified in the SMS Package.

Customer Supplied Third Party File Distribution Tool

The SMS solution relies on the customer to provide a method to install the SMS agent on managed host PCs and to deliver SMS Packages to those host PCs. The typical method is using a 3rd party network tool such as IBM Director or HP OpenView to push the SMS software and packages to terminals that have scanners to be configured.

SMS Package Download Destination

The directory path for the SMS' download folder, which the SMS agent monitors for new packages, is shown below.

%ProgramFiles%\Zebra Technologies\Barcode Scanners\SMS\Download

Once an SMS Package is placed into the download folder, it is acted upon by the SMS agent. In this process, the SMS Package is automatically moved from the download folder to a work sub-folder. The new SMS Package replaces the previous content of the work sub-folder.

An SMS Package placed into the download folder takes priority and is acted on instead of any prior package that exists in the work folder. For example, if a package exists in the work folder and then another package is placed into the download folder, the work folder package will no longer be acted upon. Instead, the newly arrived download folder package replaces the work folder package and is loaded to the scanner.

NOTE Download only one SMS Package at a time to the download folder for processing. Downloading multiple packages simultaneously into the download folder will yield unexpected results.

Download Folder Structure

The Download folder structure for Windows consists of:

  • %ProgramFiles%\Zebra Technologies\Barcode Scanners\SMS\Download
  • %ProgramFiles%\Zebra Technologies\Barcode Scanners\SMS\Download\Work
  • %ProgramFiles%\Zebra Technologies\Barcode Scanners\SMS\Download\Temp
  • %ProgramFiles%\Zebra Technologies\Barcode Scanners\SMS\Download\Logs

The 123Scan Deployment Checklist

The 123Scan Deployment Checklist is a document detailing the activities involved in deploying an SMS Package. The document also lists key folder locations:

  • Where to access your SMS Package from the PC running 123Scan.
  • Where to push the SMS Package on your production PCs.

The Deployment Checklist can be accessed and printing from within 123Scan v5.0 on the SMS Wizard's name and notes window.

Configuration at the Point-Of-Use (POS)

Once the SMS agent running on a host PC detects a trigger event, it will perform the actions specified in the active package. For example, when the SMS agent is running in Service mode, the arrival of a package in the download folder causes the agent to process the new package, check the rule set conditions specified and then perform the appropriate actions. If the connection of a scanner device is defined as a trigger event, the SMS agent will check the rule set conditions specified in the active package and perform the actions associated with that connection event.

When the SMS agent runs in Application mode, the execution of the SMS agent is the trigger event. Upon execution, the agent will check for and process a new package. Then it checks the rule set conditions in the active package and performs the specified actions.

Scanner LEDs Indicating SMS Load Status

The SMS agent instructs the scanner to display a red blinking LED to indicate that an SMS Package is currently loading to the scanner.

Table 1 LED Indicators

LED State Description
LED Blinking Red Loading SMS Package to scanner.
Other LED states (when not controlled by an application) vary by product. For LED state details, refer to your product's Product Reference Guide available at:

Default SMS Agent Operation Mode

By default, the SMS is configured to start as a service when first installed on a production host PC.

To configure SMS to initially run in Application mode, first download an SMS Package with its SMS operation mode set to Run as Application. (This is programmable on the 123Scan Activation trigger Window) Then, launch the SMS agent using the script, Start SMS Agent.vbs (located in <%ProgramFiles%>\Zebra Technologies\Barcode Scanners\SMS). Alternatively, from a command line type the following: net start "Zebra SMS".

Querying Asset Tracking Information

The SMS solution enables the query of asset tracking information from Zebra scanners. The following is an example of asset information to query:

  • Model Number
  • Serial Number
  • Date of Manufacture
  • Firmware Version
  • Configuration File Name
  • Date of first Electronic Programming

Asset information can be queried in either real time or non-real time based on the SMS operation mode. For more details on SMS operation mode see SMS Operation Mode.

  • If the SMS operation mode is set to Service, asset information can be accessed real time using WMI.
  • If SMS operation mode is set to Application, asset information can be accessed non-real time from the log file and compiled through parsing. For more information on the SMS log file see Generate a log file and Sample Log File.

In this scenario a script can be written to parse the required information.

Querying Asset Information Real Time

SMS provides a conduit for an enterprise console application to query and report fleet wide asset tracking information using Windows WMI. Note that because of network security implications, WMI remote management is typically an IT/SysAdmin function that requires configuration and access rights to allow remote functionality depending on a customer's particular network environment.

The Zebra WMI namespace is Symbol_BarcodeScanner which allows WMI to access properties, methods and events for Zebra scanners. The SMS installation loads the WMI Provider Service for Zebra Scanners named ScnSrvc.

If multiple RSM-enabled scanners are connected to an SMS host PC, asset tracking information for all connected scanners can be reported back to the querying source (enterprise console application) over the standard WMI interface. For a list of parameter values that can be queried, download the Product Reference Guide for your scanner model at

Sample Application to Query Assets Using WMI

A basic application that demonstrates this capability is the Scanner WMI Test sample application provided with Zebra's Scanner SDK for Windows. Figure 1 shows this sample application's ability to display the asset information of a scanner connected to the same host PC on which the sample application is running. For access to the WMI sample application and its source code, download the Scanner SDK for Windows from The Scanner WMI test sample application is capable of accessing scanners on remote PCs if a systems administrator configured WMI for remote access.

Figure 1 Asset Tracking Information Displayed in the WMI Sample Application from the Scanner SDK

Sample WMI Visual Basic Script to Query Asset Tracking Information

The following Visual Basic script shows an example of a WMI script used to query the asset information of scanner devices in IBM HandHeld mode connected to a host PC running the SMS agent.

' FILENAME: ScannerInfo.vbs

On Error Resume Next

Const wbemFlagReturnImmediately = &h10 
Const wbemFlagForwardOnly = &h20

arrComputers = Array("")

For Each strComputer In arrComputers 
    WScript.Echo " Script Start: " & Time
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Set colScanners = objWMIService.ExecQuery("SELECT * FROM Symbol_BarcodeScanner", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)

    For Each objScanner in colScanners 
        Wscript.Echo "---------------------------------------------------" 
        WScript.Echo " Part Number  : " & objScanner.PartNumber 
        WScript.Echo " Serial Number: " & objScanner.SerialNumber 
        WScript.Echo " Firmware Ver : " & objScanner.FirmwareVersion 
        WScript.Echo " Date of Manuf: " & objScanner.DateofManufacture 
        Wscript.Echo "---------------------------------------------------" 

WScript.Echo " Script End: " & Time                                                            

Figure 2 Sample WMI Visual Basic Script Screen Output

Tracking SMS Operations

SMS enables a customer's management console to query the ActivityStatus flag of the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ZebraSMS registry key to determine if scanners are being controlled by the SMS

Figure 3 Zebra SMS Registry Key

The ActivityStatus value indicates whether SMS agent is busy currently executing any rules that cannot be interrupted.

ActivityStatus = 1 indicates that the SMS agent is busy executing some rules and cannot be interrupted at this point in time without compromising device state. Any new package dropped into the download folder is only acted upon after these critical rules finish execution.

ActivityStatus = 0 indicates that the SMS agent has completed rule execution and any package can be safely dropped into the download folder at this point in time and is immediately acted upon.

In addition, the SMS log file tracks all the actions performed on all connected scanners as specified in the SMS Package.