6.35 Requirements

The Requirements panel lets you define specific requirements that a device must meet for the action to be enforced on it.

You define requirements through the use of filters. A filter is a condition that must be met by a device in order for the bundle to be applied. For example, you can add a filter to specify that the device must have exactly 512 MB of RAM in order for the bundle to be applied, and you can add another filter to specify that the hard drive be at least 20 GB in size.

As you construct filters, you need to know the conditions you can use and how to organize the filters to achieve the desired results. Refer to the following sections for details.

6.35.1 Filter Conditions

You can choose from any of the following conditions when creating a filter. Place your mouse pointer over fields that require input to display a tooltip containing example usage.

Architecture: Determines the architecture of Windows running on the device. The condition you use to set the requirement includes a property, an operator, and a property value. The possible operators are equals (=) and does not equal (<>). For example, if you set the condition to architecture = 32, the device’s Windows operating system must be 32-bit to meet the requirement.

Associated On: Determines the number of users or devices to which the bundle is assigned. The possible operators are equals (=) and does not equal (<>). The possible values are Users and Devices. For example, if you set the condition to =100 users, the total number of users must be 100 to meet the requirement.

Bundle Installed: Determines if a specific bundle is installed. After specifying the bundle, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the specified bundle must already be installed to meet the requirement. If you select No, the bundle must not be installed.

Connected: Determines if the device is connected to the network. The two conditions you can use to set the requirement are Yes and No. If you select Yes, the device must be connected to the network to meet the requirement. If you select No, it must not be connected.

Connection Speed: Determines the speed of the device’s connection to the network. The condition you use to set the requirement includes an operator and a value. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible values are bits per second (bps), kilobits per second (Kbps), megabits per second (Mbps), and gigabits per second (Gbps). For example, if you set the condition to >= 100 Mbps, the connection speed must be greater than or equal to 100 megabits per second to meet the requirement.

Disk Space Free: Determines the amount of free disk space on the device. The condition you use to set the requirement includes a disk designation, an operator, and a value. The disk designation can be a local drive map (for example, c: or d:). The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible values are bytes (Bytes), kilobytes (KB), megabytes (MB), and gigabytes (GB). For example, if you set the condition to c: >= 80 MB, the free disk space must be greater than or equal to 80 megabytes to meet the requirement.

Disk Space Total: Determines the amount of total disk space on the device. The condition you use to set the requirement includes a disk designation, an operator, and a value. The disk designation can be a local drive map (for example, c: or d:). The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible values are bytes (Bytes), kilobytes (KB), megabytes (MB), and gigabytes (GB). For example, if you set the condition to c: >= 40 GB, the total disk space must be greater than or equal to 40 gigabytes to meet the requirement.

Disk Space Used: Determines the amount of used disk space on the device. The condition you use to set the requirement includes a disk designation, an operator, and a value. The disk designation can be a local drive map (for example, c: or d:). The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible values are bytes (Bytes), kilobytes (KB), megabytes (MB), and gigabytes (GB). For example, if you set the condition to c: <= 10 GB, the used disk space must be less than or equal to 10 gigabytes to meet the requirement.

Environment Variable Exists: Determines if a specific environment variable exists on the device. After specifying the environment variable, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the environment variable must exist on the device to meet the requirement. If you select No, it must not exist.

Environment Variable Value: Determines if an environment variable value exists on the device. The condition you use to set the requirement includes the environment variable, an operator, and a variable value. The environment variable can be any operating system supported environment variable. The possible operators are equal to, not equal to, contains, and does not contain. The possible variable values are determined by the environment variable. For example, if you set the condition to Path contains c:\windows\system32, the Path environment variable must contain the c:\windows\system32 path to meet the requirement.

File Date: Determines the date of a file. The condition you use to set the requirement includes the filename, an operator, and a date. The filename can be any filename supported by the operating system. The possible operators are on, after, on or after, before, and on or before. The possible dates are any valid dates. For example, if you set the condition to app1.msi on or after 6/15/07, the app1.msi file must be dated 6/15/2007 or later to meet the requirement.

File Exists: Determines if a file exists. After specifying the filename, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the specified file must exist to meet the requirement. If you select No, the file must not exist.

File Size: Determines the size of a file. The condition you use to set the requirement includes the filename, an operator, and a size. The filename can be any file name supported by the operating system. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible sizes are designated in bytes (Bytes), kilobytes (KB), megabytes (MB), and gigabytes (GB). For example, if you set the condition to doc1.pdf <= 3 MB, the doc1.pdf file must be less than or equal to 3 megabytes to meet the requirement.

File Version: Determines the version of a file. The condition you use to set the requirement includes the filename, an operator, and a version. The filename can be any file name supported by the operating system. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=).

Be aware that file version numbers contain four components: Major, Minor, Revision, and Build. For example, the file version for calc.exe might be 5.1.2600.0. Each component is treated independently. For this reason, the system requirements that you set might not provide your expected results. If you do not specify all four components, wildcards are assumed.

For example, if you set the condition to calc.exe <= 5, you are specifying only the first component of the version number (Major). As a result, versions 5.0.5, 5.1, and 5.1.1.1 also meet the condition.

However, because each component is independent, if you set the condition to calc.exe <= 5.1, the calc.exe file must be less than or equal to version 5.1 to meet the requirement.

IP Segment: Determines the device’s IP address. After specifying the IP segment name, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the device’s IP address must match the IP segment. If you select No, the IP address must not match the IP segment.

Linux Distribution: Determines the platform on which you want to distribute the bundles or the external services. The condition you use to set the requirement includes an operator and a property value. The possible properties are server type or desktop type, version, and architecture. The possible operators are equals (=) and does not equal (<>). For example, if you set the property value to SUSE Linux Enterprise Desktop 11 - i586, the distribution will be only on SLED 11 - i586 devices.

Linux Kernel Version: Determines the version of the Linux kernel. The condition you use to set the requirement includes an operator, and a version. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). For example, if you set the condition as Linux Kernel Version > 2.6, the requirement is met only on Linux devices that have a kernel version greater than 2.6.

Linux Service Pack: Determines the Linux service pack level running on the device. The condition you use to set the requirement includes a property and an operator, and a property value. The possible properties are service pack, server type, and version. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). For example, if you set the condition as Linux Service Pack = SLES 10 SP1, the requirement is met only on devices that are installed with SLES 10 SP1.

Logged on to Primary Workstation: Determines whether the user is logged on to his or her primary workstation. The two conditions you can use to set the requirement are Yes and No. If you select Yes, the user must be logged on to his or her primary workstation to meet the requirement. If you select No, if no user is logged on to the workstation, the requirement is not met. However, if a user other than the primary user is logged on to the workstation, the requirement is met.

Memory: Determines the amount of memory on the device. The condition you use to set the requirement includes an operator and a memory amount. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The memory amounts are designated in megabytes (MB) and gigabytes (GB). For example, if you set the condition to >= 2 GB, the device must have at least 2 gigabytes of memory to meet the requirement.

Novell Client Installed: Determines if the device is using the Novell Client for its network connection. The two conditions you can use to set the requirement are Yes and No. If you select Yes, the device must be using the Novell Client to meet the requirement. If you select No, it must not be using the Novell Client.

Operating System - Windows: Determines the service pack level, server type, and version of Windows running on the device. The condition you use to set the requirement includes a property, an operator, and a property value. The possible properties are service pack, server type, and version. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The property values vary depending on the property. For example, if you set the condition to version = Windows XP Versions, the device’s Windows version must be XP to meet the requirement.

NOTE:Be aware that operating system version numbers contain four components: Major, Minor, Revision, and Build. For example, the Windows 2000 SP4 release’s number might be 5.0.2159.262144. Each component is treated independently. For this reason, the system requirements that you set might not provide your expected results.

For example, if you specify Operating System - Windows in the first field, Version in the second field, > in the third field, and 5.0 -Windows 2000 Versions in the last field, you are specifying only the first two components of the version number: Major (Windows) and Minor (5.0). As a result, for the requirement evaluated to true, the OS will have to be at least 5.1 (Windows XP). Windows 2003 is version 5.2, so specifying > 5.2 will also evaluate to true.

However, because each component is independent, if you specify the version > 5.0, Windows 2000 SP4 evaluates to false because the actual version number might be 5.0.2159.262144. You can type 5.0.0 to make the requirement evaluate as true because the actual revision component is greater than 0.

When you select the OS version from the drop-down, the Major and Minor components are populated. The Revision and Build components must be typed in manually.

Primary User Is Logged In: Determines if the device’s primary user is logged in. The two conditions you can use to set the requirement are Yes and No. If you select Yes, the primary user must be logged in to meet the requirement. If you select No, the user must not be logged in.

Processor Family: Determines the device’s processor type. The condition you use to set the requirement includes an operator and a processor family. The possible operators are equals (=) and does not equal (<>). The possible processor families are Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, Pentium M, WinChip, Duron, BrandID, Celeron, and Celeron M. For example, if you set the condition to <> Celeron, the device’s processor can be any processor family other than Celeron to meet the requirement.

Processor Speed: Determines the device’s processor speed. The condition you use to set the requirement includes an operator and a processor speed. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible processor speeds are hertz (Hz), kilohertz (KHz), megahertz (MHz), and gigahertz (GHz). For example, if you set the condition to >= 2 GHz, the device’s speed must be at least 2 gigahertz meet the requirement.

Registry Key Exists: Determines if a registry key exists. After specifying the key name, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the specified key must exist to meet the requirement. If you select No, the key must not exist.

Registry Key Value: Determines if a registry key value meets a defined condition. The condition you use to set the requirement includes the key name, the value name, an operator, a value type, and a value data. The key and value names must identify the key value you want to check. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=). The possible value types are Integer Type and String Type. The possible value data is determined by the key, value name, and value type.

If the value type is String Type, ZCM compares only those values in the registry if the actual type in the registry is REG_STRING or REG_EXPANDED_STRING.

If the value type is Integer, ZCM compares only those values in the registry if the actual type in the registry is REG_DWORD.

Leave the key value field blank to use the default value. The default value of a registry key has no name and is displayed in regedit as (Default).

Registry Key and Value Exists: Determines if a registry key and value exist. After specifying the key name and value, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the specified key and value must exist to meet the requirement. If you select No, the key and value must not exist.

Service Exists: Determines if a service exists. After specifying the service name, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the service must exist to meet the requirement. If you select No, the service must not exist.

Specified Devices: Determines if the device is one of the specified devices. After specifying the devices, the two conditions you can use to set the requirement are Yes and No. If you select Yes, the device must be included in the specified devices list to meet the requirement (an inclusion list). If you select No, the device must not be included in the list (an exclusion list).

Version of RPM: Determines the version of the RPM name provided if installed. For example, if you add a system requirement, Version of RPM cups > 1.0, then the requirement evaluates to true, if cups rpm is installed and the version of the installed cups rpm is greater than 1.0. If cups rpm is not installed, the requirement is evaluated to be false. The possible operators are equals (=), does not equal (<>), is greater than (>), is greater than or equal to (>=), is less than (<), and is less than or equal to (<=).

6.35.2 Filter Logic

You can use one or more filters to determine whether the bundle should be distributed to a device. A device must match the entire filter list (as determined by the logical operators that are explained below) for the bundle to be applied to the device.

There is no technical limit to the number of filters you can use, but there are practical limits, such as:

  • Designing a filter structure that is easy to understand

  • Organizing the filters so that you do not create conflicting filters

Filters, Filter Sets, and Logical Operators

You can add filters individually or in sets. Logical operators, either AND or OR, are used to combine each filter and filter set. By default, filters are combined using OR (as determined by the Combine Filters Using field) and filter sets are combined using AND. You can change the default and use AND to combined filters, in which case filter sets are automatically combined using OR. In other words, the logical operator that is to combine individual filters (within in a set) must be the opposite of the operator that is used between filter sets.

You can easily view how these logical operators work. Click both the Add Filter and Add Filter Set options a few times each to create a few filter sets, then switch between AND and OR in the Combine Filters Using field and observe how the operators change.

As you construct filters and filter sets, you can think in terms of algebraic notation parentheticals, where filters are contained within parentheses, and sets are separated into a series of parenthetical groups. Logical operators (AND and OR) separate the filters within the parentheses, and the operators are used to separate the parentheticals.

For example, “(u AND v AND w) OR (x AND y AND z)” means “match either uvw or xyz.” In the filter list, this looks like:

u AND
v AND
w
OR
x AND
y AND
z

Nested Filters and Filter Sets

Filters and filter sets cannot be nested. You can only enter them in series, and the first filter or filter set to match the device is used. Therefore, the order in which they are listed does not matter. You are simply looking for a match to cause the bundle to be applied to the device.

6.35.3 Fail the action if these requirements fail

If you check this box, the selected action will be marked as failed if the system requirements fail. As a result you cannot bypass the action that fails and move to the next action for completing the bundle execution.

NOTE:However you can bypass the action that fails and move to the next action, only if you have selected the check box in the Continue on Failure column.