Chat now with support
Tchattez avec un ingénieur du support

KACE Systems Management Appliance 9.1 Common Documents - Administrator Guide

About the KACE Systems Management Appliance (SMA) Getting started
Configuring the appliance
Requirements and specifications Power-on the appliance and log in to the Administrator Console Access the Command Line Console Tracking configuration changes Configuring System-level and Admin-level General Settings Configure appliance date and time settings Enable Two-Factor Authentication for all users Verifying port settings, NTP service, and website access Configuring network and security settings Configuring Agent settings Configuring session timeout and auto-refresh settings Configuring locale settings Configuring the default theme Configure data sharing preferences About DIACAP compliance requirements Configuring Mobile Device Access Enable fast switching for organizations and linked appliances Linking Quest KACE appliances Configuring history settings
Setting up and using labels to manage groups of items Configuring user accounts, LDAP authentication, and SSO Using Replication Shares Managing credentials Configuring assets
About the Asset Management component Using the Asset Management Dashboard About managing assets Adding and customizing Asset Types and maintaining asset information Managing Software assets Managing physical and logical assets Maintaining and using manual asset information Managing locations Managing contracts Managing licenses Managing purchase records
Setting up License Compliance Managing License Compliance Setting up Service Desk Configure the Cache Lifetime for Service Desk widgets Creating and managing organizations Importing and exporting appliance resources
Managing inventory
Using the Inventory Dashboard Using Device Discovery Managing device inventory
About managing devices Features available for each device management method About inventory information Tracking changes to inventory settings Managing inventory information Finding and managing devices Provisioning the KACE SMA Agent Manually deploying the KACE SMA Agent Using Agentless management Adding devices manually in the Administrator Console or by using the API Forcing inventory updates Managing MIA devices Obtaining Dell warranty information
Managing applications on the Software page Managing Software Catalog inventory
About the Software Catalog Viewing Software Catalog information Adding applications to the Software Catalog Managing License assets for Software Catalog applications Associate Managed Installations with Cataloged Software Using software metering Using Application Control Update or reinstall the Software Catalog
Managing process, startup program, and service inventory Writing custom inventory rules
Deploying packages to managed devices
Distributing software and using Wake-on-LAN Broadcasting alerts to managed devices Running scripts on managed devices Managing Mac profiles Using Task Chains
Patching devices and maintaining security
About patch management Subscribing to and downloading patches Creating and managing patch schedules Managing patch inventory Managing Dell devices and updates Maintaining device and appliance security
Using reports and scheduling notifications Monitoring servers
Getting started with server monitoring Working with monitoring profiles Managing monitoring for devices Working with alerts
Using the Service Desk
Configuring Service Desk Using the Service Desk Dashboard Managing Service Desk tickets, processes, and reports
Overview of Service Desk ticket lifecycle Creating tickets from the Administrator Console and User Console Creating and managing tickets by email Viewing tickets and managing comments, work, and attachments Merging tickets Using the ticket escalation process Using Service Desk processes Using Ticket Rules Run Service Desk reports Archiving, restoring, and deleting tickets Managing ticket deletion
Managing Service Desk ticket queues About User Downloads and Knowledge Base articles Customizing Service Desk ticket settings Configuring SMTP email servers
Maintenance and troubleshooting
Maintaining the appliance Troubleshooting the KACE SMA
Appendixes Glossary About us Legal notices

Syntax for Custom Inventory rules

Syntax for Custom Inventory rules

Use the correct syntax for function names and arguments in Custom Inventory rules.

Conditional and Value Return rules use the following syntax:

For specific information on functions and their arguments see:

Function syntax

Enter the functionName followed by an opening parenthesis, enclose the arguments with a closing parenthesis. No spaces are allowed between the name of the function and the opening parenthesis.

Argument syntax

Enter argument syntax for all rules except command and regex (regular expression) as follows:

For example, the following syntaxes are the same:

Commas and parentheses as values in a rule

If comma, open parenthesis, or close parenthesis are to be used as values in a rule, they must be escaped as {{comma}}. {{op}}, and {{cp}}, respectively.

For example, if the user want to test against the registry value in which the value name is "test,value", the user would need to escape the comma in this case because registry value name is not the last argument in the Custom Inventory (CI) function.

If the user wants to test against the registry value where the value itself contains a comma, then there is no need to escape, because value is the last argument in the Custom Inventory function. The following Custom Inventory tests registy value HKLM\SOFTWARE\TestSoft\test1 and looks to see if the value is equal to 2,4.

If the Custom Inventory function contains only one parameter, it takes everything between the parentheses as the value for the argument. Commas in this case do not need to be escaped and will be part of the argument to the Custom Inventory function.

ShellCommandTextReturn(wmic MEMORYCHIP get BankLabel,Capacity,description,manufacturer)
An unmatched literal open parenthesis needs to be escaped as {{op}}. When the parser is tokenizing the arguments for the function, it counts the number of open and close parentheses to determine the end of the function and argument. Therefore, an unmatched literal open parenthesis would throw off the count, and cause the argument value to be parsed incorrectly. If a literal open parenthesis is needed as part of the argument value, it should be represented with {{op}}.

For example, if the user wants to echo the string "Hello ( World", then the CI should look like the following:

ShellCommandTextReturn(echo Hello {{op}} World)

While the parser is tokenizing the arguments for the function, it counts the number of open and close parentheses in order to determine the end of the function when it encounter the last matched close parentheses. However, if the argument value itself contains a close parenthesis that is not matched, the parenthesis tricks the parser to believe that is the end of the function and the argument value will be truncated prematurely.

If a literal close parentheses is needed as part of the argument value, it must be represented with {{cp}}.

For example, if the user wants to echo the string "Hello ) World", then the CI should look like the following:

ShellCommandTextReturn(echo Hello {{cp}} World)

Checking for conditions (conditional rules)

Checking for conditions (conditional rules)

You can write Custom Inventory rules that identify whether (true/false) an application is installed.

When using a conditional rule, if the rule returns true, the Display name (Title) of the custom application appears in the Software: Installed Programs section of the Device Detail page in the Inventory section.

The following sections describe the rules that test for conditions:

When the rule returns false, the application does not appear in the Installed Programs section in the device’s inventory details.

TIP: You can view a list of devices that have the item installed on the Inventory > Software > Custom_item: Detail page.

Conditional rule reference

The following table describes which data types can be used for comparison.

Table 23. Data types supported for comparison functions

 

Conditional rule

Data types supported for comparison functions

Equals, GreaterThan, LessThan

EnvironmentVariable

DATE, NUMBER, TEXT

FileInfo

DATE, NUMBER, TEXT

FilenamesMatchingRegex

NUMBER

FileVersion

TEXT

PlistValue

NUMBER, TEXT

ProductVersion

TEXT

RegistryValue

TEXT

The following table describes how comparisons are made.

Table 24. How comparisons are made

Data type

Considerations

DATE

NUMBER

For example, if the target value is 52a1, only 52 is evaluated.

TEXT

The following table lists available conditional rules with links to specific details on how to specify the arguments.

Table 25. Conditional rule reference

Syntax

Win

RHEL

OS X

Description

DirectoryExists (path)

X

X

X

Checks for a directory at the specified path on the device.

FileExists (path)

X

X

X

Checks for a file at the specified path on the device. Include the name of the file and extension in the path.

FileVersionEquals (path, version)

X

Verifies that the Version > File Version property of the file specified in the path matches the TEXT value you entered.

FileVersionLessThan (path, version)

X

Verifies that the Version > File Version property of the file you specified as the path is lower than the TEXT value you entered.

FileVersionGreaterThan (path, version)

X

Verifies that the Version > File Version property of the file you specified is higher than the TEXT value you entered.

ProductVersionEquals (path, version)

X

Verifies that the Version > Product Version property of the executable or installation file you specified matches the TEXT value you entered.

ProductVersionLessThan (path, version)

X

Verifies that the Version > Product Version property of the executable or installation file you specified is lower than the TEXT value you entered.

ProductVersionGreaterThan (path, version)

X

Verifies that the Version > Product Version property of the executable or installation file you specified is higher than the TEXT value you entered.

FileInfoGreaterThan (fullpath, attribute, type, value)

X

X

X

Verifies that the File Info property of the executable or installation file you specified is higher than the value you entered.

FileInfoLessThan (fullpath, attribute, type, value)

X

X

X

Verifies that the File Info property of the executable or installation file you specified is lower than the value you entered.

FileInfoEquals (fullpath, attribute, type, value)

X

X

X

Verifies that the attribute of the executable or installation file you specified matches the value you entered.

RegistryKeyExists (registryPath)

X

Verifies that a registry key exists.

RegistryValueEquals (registryPath, valueName, value)

X

Verifies that a registry entry exactly matches the value you specify. Value is compared as TEXT.

RegistryValueLessThan (registryPath, valueName, value)

X

Verifies that the registry entry is lower than the value you specify. Value is a TEXT.

RegistryValueGreaterThan (registryPath, valueName, value)

X

Verifies that the registry entry is higher than the value you specify. Value is a TEXT.

EnvironmentalVariableExists (var)

X

X

X

Verifies that an environment variable with the name you specify exists.

EnvironmentalVariableGreaterThan (var, type, value)

X

X

X

Verifies that the environment variable definition is higher than the value you specify.

All three types are valid, TEXT, DATE (in the full format mm/dd/yyyy hh:mm:ss), and NUMBER.

EnvironmentalVariableLessThan (var, type, value)

X

X

X

Verifies that the environment variable definition is lower than the value you specify.

All three types are valid, TEXT, DATE (in the full format mm/dd/yyyy hh:mm:ss), and NUMBER.

EnvironmentalVariableEquals (var, type, value)

X

X

X

Verifies that the environment variable definition exactly matches the value you specify.

All three types are valid, TEXT, DATE (in the full format mm/dd/yyyy hh:mm:ss), and NUMBER.

PlistValueExists (fullpath, entry)

X

Verifies that a named value exists in a PLIST file.

PlistValueGreaterThan (fullpath, entry, type, value)

X

Verifies that the named value is a NUMBER or TEXT higher than the value you specified.

PlistValueLessThan (fullpath, entry, type, value)

X

Verifies that the named value is a NUMBER or TEXT lower than the value you specified.

PlistValueEquals (fullpath, entry, type, value)

X

Verifies that the named value is a NUMBER or TEXT that exactly matches the value you specified.

For information on Equals, GreaterThan, and LessThan for FilenamesMatchingRegex, see Regular Expression Rule Reference.

Verifying whether a condition exists (Exists rules)

Rules whose name ends with Exists check for the presence of a file, directory, registry key, or other item. If the KACE SMA Agent locates the item on the device, the rule returns true, and the item appears in the device’s Inventory Details as an Installed Program.

Use any of the following Exists rules:

Example: Check for a directory (folder)

The following example tests whether the Windows directory exists on the device:

Example: Check for a file

Evaluating device settings (Equals rules)

Rules whose name ends with Equals compare the value set on the device to the value you specify in the rule. The rules return true if the values exactly match.

Rules that use arguments with set data types can only compare values of the same type.

Use any of the following Equals rules:

Example: Testing JAVA_HOME setting

To verify that the JAVA_HOME setting is C:\Program Files\Java\jdk1.6.0_02:

Example: Testing McAfee® Registry Entry setting

To check the setting use the same format as the date in the entry:

Example: Testing Internet Explorer version

To verify that the Internet Explorer is version 10.0.9200.17148:

Specifying the version as 10.0.9 would return false. The version argument in a Equals function must be precise. A partial number will fail when the full version is longer.

Example: Detecting Windows 7 Service Pack 1

Windows 7 Service Pack 1 appears in Add/Remove programs for devices that were originally on Windows 7 then upgraded to SP1 only. The default application inventory for this item does not reflect devices that are already on SP1 because they were originally imaged at the SP1 level.

When using the appliance to deploy Windows 7 Service Pack 1, create the following Custom Inventory rule for a custom application:

You can then exclude devices with this item installed to prevent the appliance from trying to deploy the SP2 to devices that are already at that level (that is, Windows 7 devices that have been upgraded, as well as devices originally imaged with SP1).

Comparing device values (Greater Than and Less Than rules)

Functions whose names end with GreaterThan and LessThan compare values as listed in Table 23.

Use any of the following Greater Than and Less Than rules:

FileVersionGreaterThan (path, version) and FileVersionLessThan (path, version)
ProductVersionGreaterThan (path, version) and ProductVersionLessThan (path, version)
FileInfoGreaterThan (fullpath, attribute, type, value) and FileInfoLessThan (fullpath, attribute, type, value)
RegistryValueGreaterThan (registryPath, valueName, value) and RegistryValueLessThan (registryPath, valueName, value)
EnvironmentalVariableGreaterThan (var, type, value) and EnvironmentalVariableLessThan (var, type, value)
PlistValueGreaterThan (fullpath, entry, type, value) and PlistValueLessThan (fullpath, entry, type, value)
FilenameMatchingRegexGreaterThan (fullpath, regex, value) and FilenameMatchingRegexLessThan (fullpath, regex, value)

Example: Testing whether the product version is higher than 10

To verify that the product version is higher than 10:

To verify that the production version is 10 (that is equal to 10) or higher, enter the following:

Example: Testing for a product version range

To test whether the product version is within a range, combine less than and greater than rules:

Testing for multiple conditions

You can join rules using AND operators or OR operators to test for multiple conditions.

Joining conditional rules produces the following results:

Checking for multiple true conditions (AND)

Use the AND operator to join conditional rules in the Custom Inventory Field when you want the item to be reported as an Installed Program only if all the rules are true.

In the Custom Inventory Field, join rules using the following syntax:


Function
(arguments...
) AND Function
(arguments
) AND ...

Separate the conditional statements from the operator with spaces.

Example: Checking for a registry key and comparing values

To check for a registry key and a registry entry value on a Windows device use AND to combine the rules as follows:

Checking for one true condition (OR)

When you join rules using the OR operator, if any of the rules in the Custom Inventory Field are true, the application appears in the Installed Program list of the device.

In the Custom Inventory Field, join the rules using the following syntax:


Function
(arguments
) OR Function
(arguments
) OR ...

Separate the function statements and operator using a space.

Example: Checking for either registry value

To check that a registry entry is one value or another:

TIP: To specify a range use RegistryValueGreaterThan and RegistryValueLessThan rules joined by the AND operator.

Getting values from a device (Custom Inventory Field)

Getting values from a device (Custom Inventory Field)

The rules that end with ValueReturn enable you to gather information from the device. You can use these rules to collect information that the KACE SMA Agent normally does not collect.

The returned values are set with the custom application display name (Title). This appears on the Device Detail page under Software in Installed Programs and Custom Inventory Fields.

Use the Custom Inventory Field values to manage installations and to distribute software as well as reports, View By filtering, Smart Label search criteria, or any other process that can be performed with an automatically detected setting.

This section covers the following topics:

Value Return rule reference

The following table shows all available value return rules that you can use to set a Custom Inventory Field :

Syntax

Win

RHEL

OS X

Description

RegistryValueReturn (registryPath, valueName, type)

X

Returns the value of a registry entry, and sets the datatype to the one you specified.

EnvironmentalVariableReturn (var, type) Specifying environment or user variables

X

X

X

Returns the value of an environment variable, and sets the datatype to the one you specified.

FileInfoReturn (path, attribute, type)

X

X

X

Returns the value of a file attribute, see valid types in Defining rule arguments.

ShellCommandTextReturn (command)

X

X

X

Returns the output of the command, and sets the datatype to TEXT.

ShellCommandDateReturn (command)

X

X

X

Returns the output of the command, and sets the datatype to DATE.

ShellCommandNumberReturn (command)

X

X

X

Returns the output of the command, and sets the datatype to NUMBER.

PlistValueReturn (fullpath, entry, type)

X

Returns the value of the PLIST key, and sets the datatype to TEXT, NUMBER, or DATE.

Getting File Information values

You can set the Custom Inventory Field to any of the Windows File Information attributes using the FileInfoReturn rule.

Example: Getting Windows Internet Explorer product version

The following example sets the Custom Inventory Field for the Internet Explorer Product Version as a NUMBER:

In the Custom Inventory Field, enter the following:

Getting registry key values

You can set the Custom Inventory Field to a registry key using the RegistryValueReturn rule. Where the registryPath (on left) is the path to the entry, the valueName (on right) is the key you want to return.The illustration shows Registry Editor, with a directory tree panel on the left, and name, type and data on the right.

Example: Getting the Internet Explorer ProductID key

To set the ProductID registry key as a Custom Inventory Field:

Getting command output

Command rules enable you to set the output of a command to a Custom Inventory Field. The command depends on the command interpreter and executable path on the device.

For example, on Windows devices you can write MS-DOS commands, but not Cygwin-style UNIX commands unless Cygwin is installed and available in the default path for all users.

Use any of the following rules to set the output of the command to a Custom Inventory Field:

Example: Getting uptime on a Mac OS X

To set the uptime as a Custom Inventory Field:

Getting PLIST values

PlistValueReturn rules enable you to set a Property List (PList) key as a Custom Inventory Field.

Example: Getting the system locale

To distribute applications using Managed Installations based on the native language, enter the following rule to get the device locale and then create a corresponding Smart Label that is applied to the device based on the language code reported by the KACE SMA Agent in the Custom Inventory Field:

Getting multiple values

Join ValueReturn rules using either the AND or OR operator. The rule shows the application as an Installed Program, if any of the values are not empty.

The joined values are all set in the same Custom Inventory Field separated by the operator and therefore are technically considered for the purposes of Search Criteria, filters, reports, and other appliance processes as TEXT.

ValueReturn rules joined by the:

In the Custom Inventory field, join rules using the following syntax:


Function(arguments...) AND Function(arguments) AND ...

Separate the conditional statements from the operator with spaces. Do not join AND and OR operators in the same rule.

Matching filenames to regular expressions

Matching filenames to regular expressions

Regular expressions match a character or the specified string to the filenames in the specified directory.

This section describes the regular expressions that match filenames in Conditional and Value Return rules using a regular expression.

Documents connexes