Chat now with support
Chat with Support

KACE Systems Management Appliance 7.1 - Administrator Guide

About the KACE Systems Management Appliance (K1000) 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 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 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 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
Setting up License Compliance Managing License Compliance Setting up Service Desk Creating and managing organizations Importing and exporting appliance resources
Managing inventory
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 K1000 Agent Manually deploying the K1000 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 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
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 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 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 K1000
Appendixes Glossary About us Legal notices

Create Custom Inventory rules

Create Custom Inventory rules

You can create custom applications, and Custom Inventory rules for those applications, so that information about the applications is gathered from managed devices.

1.
Go to the Software Detail page:
a.
Log in to the K1000 Administrator Console, http://K1000_hostname/admin. Or, if the Show organization menu in admin header option is enabled in the appliance General Settings, select an organization in the drop-down list in the top-right corner of the page next to the login information.
b.
On the left navigation bar, click Inventory, then click Software.
c.
Select Choose Action > New.
2.
Provide general information: Name, Version, Publisher.

Option

Description

Assign To Label

(Optional) The label associated with the item.

Notes

Any additional information you want to provide.

Supported Operating Systems

The operating systems on which the application runs. Applications are deployed only to devices with the selected operating systems.

Custom Inventory Rule

(Optional) The custom inventory rules to apply to the application. Custom inventory rules enable you to detect applications and other items on a device and capture details for reporting.

For example, the appliance first verifies whether an application is present on a device before deploying that application. In some instances, however, installed programs do not register in Add/Remove Programs or in standard areas of the registry. In such cases, the appliance might not be able to detect the presence of the application without additional information from the administrator. Therefore, the appliance might repeat the installation each time the device connects. Custom Inventory rules can prevent this repetition.

The following rule verifies that the version of the Network Associates VirusScan installed on a device is newer than a given version before deploying it:

4.
Next to Upload and Associate File, click Choose File to locate a file, then click Open or Choose.
5.
To prevent the file from being copied to Replication Shares, select Don’t Replicate Associated File. This setting is useful for large files that you do not want users to install from Replication Shares, such as software suites.
6.
Optional: Select a Category and Threat Level for the software.
7.
Click Save.

How Custom Inventory rules are implemented

How Custom Inventory rules are implemented

The K1000 Agent receives new Custom Inventory rules during the first device inventory after the rules are created. During that first inventory, the Agent runs the new rules and reports the findings to the appliance.

The Agent runs all rules as well as any other processes scheduled for that session. Therefore, after a device is inventoried, it could take several minutes to run all the rules and other processes before the Agent reports the results.

After the Agent reports the results, the device’s detail page shows the results under Software in Installed Programs and Custom Inventory Fields.

NOTE: The applications with Value Return rules that set a Custom Inventory Field also appear as Installed Programs.

If results are not what you expect, verify that the device has been inventoried recently. The inventory time is shown in the Last Inventory field of the device detail page.

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 K1000 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 XP Service Pack 2

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

When using the appliance to deploy Windows XP Service Pack 2, 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, SP1 devices that have been upgraded, as well as devices originally imaged with SP2).

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.
Related Documents