Skip to main content
Matrix42 Self-Service Help Center

Matrix42 Workflow Studio: Empirum Activities

Overview

These workflow activities use Matrix42 Empirum SDK version 1.1. SDK 1.1 requires the Empirum API version 16.1.1. If you are running an older Empirum version (e.g., 16.0.3), please use SDK 1.0.

An SDK client must be able to communicate with the Empirum API over the configured port (e.g., port 9200). A client is any 64-bit Windows operating system that supports Windows PowerShell 3.0 or higher.

General

Any workflow that uses Empirum activities has to start with the Empirum Connection activity and end with the Empirum Disconnection activity. The Empirum Connection activity establishes a connection to the Empirum Interface Hosting Service (API). This connection is used in all other Empirum activities as an input parameter. Thus, its value is stored into the Session variable. The Session variable is an object which contains attributes and collections that can be used for searching objects on the Empirum server. Attributes and collections of the Session variable are:

  • ApiVersion - Version of Empirum-API.
  • Computers - List of computers.
  • Groups - List of configuration groups and assignment groups.
  • Packages - List of packages.
  • ObjectTypes - List of available object types.
  • PackageTypes - List of available package types.

Empirum Connection

The activity establishes a connection to the Empirum Interface Hosting Service (API). This connection is used in all other Empirum activities as an input parameter and therefore is stored for further use.

Repository category: Empirum

Properties

Name In/Out Required Description
CertificateThumbprint In No Thumbprint of the certificate that is used for connecting to the Matrix42 Empirum server over HTTPS.
EmpirumLocationID In No ID of an Empirum location. It should be specified if there are two and more active Empirum locations on the server.
EncryptedPassword In No SQL or Windows user AES256 encrypted password.
IsSecured In No Boolean value that defines whether an encrypted or clear text password is used.
Password In Yes SQL or Windows user password.
Port In Yes Port number of the Empirum API.
Protocol In Yes Protocol for connecting to the Matrix42 Empirum server.
Server In Yes Name or IP address of the Empirum server where the Empirum API is running.
User In Yes SQL or Windows user.
DisplayName - No Understandable name of the activity.
Session Out Yes Connection object to the Empirum server.

If you wish to connect to the Empirum API over HTTPS, you should install a corresponding certificate and use it to configure the Empirum Connection activity:

  • First create a self-signed certificate on the Empirum server and use it in the Empirum API service. Make sure that the name of the certificate contains the full server name.
  • On the Matrix42 Workspace Management server, use the MMC.exe to get access to the certificates snap-in.
  • Import the Empirum certificate in the Personal and Trusted Root Certification Authorities certificate stores for both current user and local machine.
  • Run the Powershell ISE editor as Administrator and execute the following command to get the thumbprint of the certificate:
Get-ChildItem -Path Cert:\CurrentUser\My
  • Use the thumbprint value in the CertificateThumbprint property.
  • Create an AES encrypted password for the user account that will be used to connect to Matrix42 Empirum.
  • Enter the encrypted password in the EncryptedPassword property.

For additional information regarding establishing an encrypted HTTPS connection with the Empirum API, refer to the Matrix42 Empirum SDK guide.

Empirum Disconnection

Closes the opened connection to the Empirum Interface Hosting Service (API), thus it is no longer usable.

Any workflow that has opened a connection to the Empirum API (has initialized the Session variable) has to close this connection at a later time by using the Empirum Disconnection activity.

Repository category: Empirum

Properties

Name In/Out Required Description
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Invoke Package Reinstallation

Reinstalls an assigned software package.

Repository category: Empirum

Properties

Name In/Out Required Description
Cancel In No Boolean value that defines whether to cancel the reinstallation.
Computer In No Target computer object.
Group In Yes Target group object.
Package In Yes Target package object.
Pull In No Boolean value that defines whether to use the task activation type 'PULL via DDS/DDC'.
Push In No Boolean value that defines whether to use the task activation type 'PUSH via SwDepot'.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Set Distribution Commands

Activity sets distribution options for a Software/SoftwareClass package or group. If the Package property is not used, the distribution options are set to group.

Repository category: Empirum

Properties

Name In/Out Required Description
Cache In No Boolean value. Sets the 'Cache locally' option. The packages will only be deleted from the local cache (the oldest packages first), when no more disk space is available.
Force In No Boolean value. Sets the 'Always enforce' option. The package will always be updated, even if it is already installed on the computer.
Group In Yes Target group object.
Hide In No Boolean value. Sets the 'Hide' option. This makes sense for packages that should not be postponed by the user.
IgnoreMtf In No Boolean value. Sets the 'Ignore Installation Time Frame' option. Software packages will be installed outside of the regular maintenance time frame.
Install In No Boolean value. Sets the 'Install' option. The package will be installed if it does not already exist on the computer.
Package In No Target package object.
Revoke In No Value of the Nullable<Int32> type. Sets the 'User can postpone' option and quantity of times users can postpone the software package installation/uninstallation. If no counter is set, users can postpone unlimited times.
Uninstall In No Boolean value. Sets the 'Uninstall' option. The package will be uninstalled if it already exists on the computer.
Update In No Boolean value. Sets the 'Update' option. The package will be updated if an older version is installed on the computer.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Computers

Activate Computer

Activates a computer globally (default) or locally.

Repository category: Empirum

Properties

Name In/Out Required Description
Activate OS In No Boolean value. Sets the 'Create Operating System configuration (OS.ini)' option. If the activated computer has been assigned operating system templates, an OS.ini can be created.
Activate PXE In No Boolean value. Sets the 'Activate PXE (Reinstall Computer)' option. The computer starts with the PXE-Bootimage at the next restart automatically.
Computer In Yes Target computer object.
Global Activation Scope In No Boolean value that defines whether the scope is global or local. Default value is global (if True).
Group In No Target group object. Works only in combination with Scope = Local.
Wol In No String value that starts switched-off computers over the LAN. Valid values either 'RUNNOW' or Datetime string in format 'dd.MM.yyyy HH:mm:ss'. Works only in combination with Scope = Local.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Create Computer

Creates a computer in the Empirum database.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer Name In Yes String value. Computer name.
Domain Member In No Boolean value that defines whether the computer belongs to a domain.
Domain Name In Yes String value. The fully qualified domain name without the host name.
MAC In Yes String value. The MAC addresses are made up of 48 bits. They are represented as 6 hexadecimal numbers (example: 00-30-67-34-00-1A).
DisplayName - No Understandable name of the activity.
Computer Out No Output variable for the created computer.
Session In Yes Connection object to the Empirum server.

Deactivate Computer

Deactivates a computer globally (default) or locally.

Repository category: Empirum

Properties

Name In/Out Required Description
Activate OS In No Boolean value. Sets the 'Create Operating System configuration (OS.ini)' option. The operating system configuration will be deleted.
Activate PXE In No Boolean value. Sets the 'Activate PXE (Reinstall Computer)' option. Deactivates the PXE boot image.
Computer In Yes Target computer object.
Global Activation Scope In No Boolean value that defines whether the scope is global or local.
Group In No Target group object. Works only in combination with Scope = Local.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Delete Computer

Activity removes a computer from the database completely.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Computer object which should be removed completely from the database.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Find Computers

Finds all computers whose names start with the specified keyword.

Repository category: Empirum

Properties

Name In/Out Required Description
Domain In Yes String value. Name of the domain.
Host Keyword In Yes String value. Keyword by which the computers are filtered. Only computers whose names start with the specified keyword are retrieved. Explicit wildcards are not supported here.
DisplayName - No Understandable name of the activity.
Computers Out Yes Output variable with enumeration of the found computers.
Session In Yes Connection object to the Empirum server.

At least either Host Keyword or Domain needs to be provided as a search value.

Examples

The workflow example below demonstrates how to connect to Empirum Server and find computers by search criteria. The example workflow contains the Empirum ConnectionEmpirum Disconnection and Find Computersactivities. The Empirum Connection and Empirum Disconnection activities are included in all examples because they are required in all cases.

ADM_EmpirumWF_Find_Computers.png

Get Computer

Retrieves an Empirum computer object.

Repository category: Empirum

Properties

Name In/Out Required Description
Domain In Yes String value. The fully qualified domain name without the host name.
Host In Yes String value. Computer name.
MAC In Yes String value. The MAC addresses are made up of 48 bits. They are represented as 6 hexadecimal numbers (example: 00-30-67-34-00-1A).
DisplayName - No Understandable name of the activity.
Computer Out Yes Output variable with the Empirum computer object.
Session In Yes Connection object to the Empirum server.

At least either MAC Address or Host and Domain need to be provided as a search value. MAC Address has priority for searching.

Get Computer Properties

Gets properties of a computer. A property can be a computer property value, variable value or a custom field value.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Target computer object.
Variables In Yes Properties that should be retrieved.
DisplayName - No Understandable name of the activity.
Properties Out Yes Output variables with property values.
Session In Yes Connection object to the Empirum server.

Variables is a IEnumerable<String> collection of strings which are the names of properties.

Properties is a IDictionary<String, String> collection of key/value pairs.

Get Computer Property

Gets one property of a computer. A property can be a computer property value, variable value or a custom field value.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Target computer object.
Variable In Yes Property that should be retrieved.
DisplayName - No Understandable name of the activity.
Property Out Yes Output variable with the property value.
Session In Yes Connection object to the Empirum server.

Get Group Computers

Activity gets all computers which are member of a configuration or assignment group.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Target group object.
DisplayName - No Understandable name of the activity.
Computers Out Yes Output variable with enumeration of the found computers.
Session In Yes Connection object to the Empirum server.

Set Computer Properties

Activity sets values for computer properties. The notation for variables and properties is case insensitive.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Target computer object.
Properties In Yes Properties and their values to be set.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Properties is a IDictionary<String, String> collection of key/value pairs.

Set Computer Property

Activity sets a value for a computer property. The notation for variables and properties is case insensitive.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Target computer object.
Empty In No Boolean value that defines whether to delete the value of the property.
Name In Yes String value. Name of the property.
Reset In No Boolean value that defines whether to reset the value to the default or an inherited value. This parameter only applies to variables.
Value In Yes String value. The value of the property.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Sample Workflow for Computer Activities

The workflow example below demonstrates how to connect to Empirum Server, create 3 computers on Empirum Server and make different actions with them.

The sample workflow does the following:

  1. Creates a connection to Empirum Server.
  2. Finds a computer by host name "EMPAthos". If the computer does not exist, then creates it.
  3. Finds a computer by host name "EMPPorthos". If the computer does not exist, then creates it.
  4. Finds a computer by host name "EMPAramis". If the computer does not exist, then creates it.
  5. Finds computers by host name which starts from “Emp”.
  6. Changes property "SELFPROVISIONING_DOMAIN" for each of the computers.
  7. Gets computer by host name “Athos” and domain “Argon”.
  8. Includes the chosen computer into a collection.
  9. Uses the Assign activity in order to find a group by group name “EduGroup”. If the group does not exist, then creates it.
  10. Assigns the computer "Athos" to the group "EduGroup".
  11. Activates the computer.
  12. Deactivates the computer.
  13. Removes the computer “Athos”.
  14. Closes connection to Empirum Server.

ADM_EmpirumWF_Sample_1.png

If you create a variable that should contain a collection for adding items, you need to use a variable of type ICollection<> instead of IEnumerable<>IEnumerable<> is an output variable type for activities that find or get items, such as the Find Computers activity. For example, if you want to add 1 package to 1 group, then you need to create 2 collections containing 1 package and 1 group and use the Assign Packages to Groups activity.

Groups

Create Group

Creates a new assignment or configuration group.

Repository category: Empirum

Properties

Name In/Out Required Description
Name In Yes String value. Name of the new group.
Parent In Yes Empirum group object where the new group will be created.
Type In Yes Empirum group type: ConfigurationGroupAssignmentGroup, etc.
DisplayName - No Understandable name of the activity.
Group Out No Output variable for the created group.
Session In Yes Connection object to the Empirum server.

Group types are:

  • All = -1
  • ConfigurationGroup = 0
  • AssignmentGroup = 1
  • WorkplaceManagementGroup = 2

Get Group

Retrieves an Empirum group object.

Repository category: Empirum

Properties

Name In/Out Required Description
Group Id In Yes String value. Unique ID of a group within the Empirum server.
Path In No String value. Path where the group should be searched for.
DisplayName - No Understandable name of the activity.
Group Out Yes Output variable with the Empirum group object.
Session In Yes Connection object to the Empirum server

Get Group Properties

Gets properties of a group. A property can be a computer property value, variable value or a custom field value.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Target group object.
Variables In Yes Properties that should be retrieved.
DisplayName - No Understandable name of the activity.
Properties Out Yes Output variables with property values.
Session In Yes Connection object to the Empirum server.

Set Group Properties

Activity sets values for group properties. The notation for variables and properties is case insensitive.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Target group object.
Properties In Yes Properties and their values to be set.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Get Group Property

Gets one property of a group. A property can be a computer property value, variable value or a custom field value.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Target group object.
Variable In Yes Property that should be retrieved.
DisplayName - No Understandable name of the activity.
Property Out Yes Output variable with the property value.
Session In Yes Connection object to the Empirum server.

Set Group Property

Activity sets a value for a group property. The notation for variables and properties is case insensitive.

Repository category: Empirum

Properties

Name In/Out Required Description
Empty In No Boolean value that defines whether to delete the value of the property.
Force In No Boolean value that defines whether to force the inheritance to subordinated groups. This parameter only applies to variables on a group level.
Group In Yes Target group object.
Name In Yes String value. Name of the property.
Reset In No Boolean value that defines whether to reset the value to the default or an inherited value. This parameter only applies to variables.
Value In Yes String value. The value of the property.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Get Computer Groups

Retrieves all groups where the specified computer is a member.

Repository category: Empirum

Properties

Name In/Out Required Description
Computer In Yes Empirum computer object whose group membership should be retrieved. If this property is Null, the activity will return all Empirum groups in the Groups variable.
Include Indirect In Yes Boolean value. If True, the activity will retrieve all groups in the hierarchy. If False, the activity will retrieve only the direct parent group of the computer.
DisplayName - No Understandable name of the activity.
Groups Out Yes Output variable with enumeration of the found groups.
Session In Yes Connection object to the Empirum server.

Activate Group

Activates a group globally or locally.

Repository category: Empirum

Properties

Name In/Out Required Description
Activate OS In No Boolean value. Sets the 'Create Operating System configuration (OS.ini)' option. If the activated computers have been assigned operating system templates, an OS.ini can be created.
Activate PXE In No Boolean value. Sets the 'Activate PXE (Reinstall Computer)' option. The computers start with the PXE-Bootimage at the next restart automatically.
Global Activation Scope In No Boolean value that defines whether the scope is global or local. Local (default) includes all computers in the specified group and Global applies to every group where the computer is assigned.
Group In Yes Target group object.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Deactivate Group

Deactivates a group globally or locally.

Repository category: Empirum

Properties

Name In/Out Required Description
Activate OS In No Boolean value. Sets the 'Create Operating System configuration (OS.ini)' option. The operating system configuration will be deleted.
Activate PXE In No Boolean value. Sets the 'Activate PXE (Reinstall Computer)' option. Deactivates the PXE boot image.
Global Activation Scope In No Boolean value that defines whether the scope is global or local. Local (default) includes all computers in the specified group and Global applies to every group where the computer is assigned.
Group In Yes Target group object.
DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Delete Group

Activity removes an assignment or configuration group.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Group object which should be removed.
>DisplayName - No Understandable name of the activity.
Session In Yes Connection object to the Empirum server.

Examples: A sample workflow is provided below.

Sample Workflow for Group Activities

The workflow example below demonstrates how to connect to Empirum Server, create two computers and two groups on Empirum Server and run different actions with them.

The sample workflow does the following:

If you want to move computers from group(s) to other group(s), first unassign computers from the group(s) they are assigned to and then assign them to the other group(s). Otherwise, an exception will appear during workflow execution.

  1. Creates a connection to Empirum Server.
  2. Assigns the "FindGroup1" activity and then finds a group by name “GroupExp1”. If the group does not exist, then creates it.
  3. Assigns the "FindGroup2" activity and then finds a group by name “GroupExp2”. If the group does not exist, then creates it.
  4. Finds a computer by host name "CompExpName1". If the computer does not exist, then creates it.
  5. Gets a computer by host name "CompExpName2". If the computer does not exist, then creates it.
  6. Includes the computers into a collection.
  7. Assigns the computers from the collection into the "GroupExp1" group.
  8. Unassigns the computers from "GroupExp1" (uses two "unassign" activities).
  9. Assigns the computers to "GroupExp2".
  10. Deactivates "GroupExp1".
  11. Activates "GroupExp1".
  12. Deletes "GroupExp1".
  13. Closes the connection to Empirum Server.

ADM_EmpirumWF_Sample_2_1.png

ADM_EmpirumWF_Sample_2_2.png

ADM_EmpirumWF_Sample_2_3.png

Packages

Find Packages

Finds packages which are members of a group and can apply several filters.

Repository category: Empirum

Properties

Name In/Out Required Description
Group Filter In No Empirum group object where the packages are searched for.
Name Keyword In Yes String value. Keyword by which the packages are filtered. Only packages whose names start with the specified keyword are retrieved.
Package Type Filter In No String value. Filters results by the package type (e.g., Software, SoftwareClass, OsTemplate, PxeBootImage, AgentTemplate, PatchManagementGroup).
Vendor Keyword In No String value. Only packages where the vendor names start with the specified keyword are retrieved.
Version Keyword In No String value. Only packages where the versions start with the specified keyword are retrieved.
DisplayName - No Understandable name of the activity.
Packages Out Yes Output variable with enumeration of the found packages.
Session In Yes Connection object to the Empirum server.

Get Package

Retrieves an Empirum package object.

Repository category: Empirum

Properties

Name In/Out Required Description
Package Id In Yes String value with the identifier of the package that should be retrieved.
DisplayName - No Understandable name of the activity.
Package Out Yes Output variable with the Empirum package object.
Session In Yes Connection object to the Empirum server.

Get Group Packages

Finds all packages in a group.

Repository category: Empirum

Properties

Name In/Out Required Description
Group In Yes Empirum group object where the packages are searched for.
DisplayName - No Understandable name of the activity.
Packages Out Yes Output variable with enumeration of the found packages.
Session In Yes Connection object to the Empirum server.

Get Package State

Gets the installation status of a software package.

Repository category: Empirum

Properties

Name In/Out Required Description
Package In Yes Target package object.
TargetObject In Yes Target computer or group object where the package is installed.
DisplayName - No Understandable name of the activity.
State Out Yes Output variable with the installation status. Possible states are Finished (green), Unknown (yellow), Failed (red).
Session In Yes Connection object to the Empirum server.

Targeting

Assign Computer to Groups

Adds one computer to the configuration and/or assignment group(s).

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Computer

In

Yes

Target computer object.

Groups

In

Yes

Enumeration of groups to which the computer should be assigned.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Assign Computers to Group

Adds several computers to one configuration or assignment group.

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Computers

In

Yes

Enumeration of computer objects.

Group

In

Yes

Empirum group object to which the computers should be assigned.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Examples: To view a sample workflow, please follow this link.

Assign Packages to Groups

Installs one or several package(s) to one or several group(s) (configuration and assignment groups).

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Groups

In

Yes

Enumeration of groups to which the package(s) should be installed.

Packages

In

Yes

Enumeration of packages (e.g. Software, SoftwareClass, OSTemplate, PxeBootImage, AgentTemplate, PatchManagementGroup) which should be installed to the group(s).

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Examples: To view a sample workflow, please follow this link.

Unassign Computer from Group

Removes a computer from an assignment or configuration group.

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Computer

In

Yes

Computer object which should be removed from the assignment or configuration group.

Group

In

Yes

Target group object.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Examples: To view a sample workflow, please follow this link.

Unassign Computer from Groups

Removes a computer from several assignment and/or configuration groups.

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Computer

In

Yes

Computer object which should be removed from assignment and/or configuration groups.

Groups

In

Yes

Enumeration of target group objects.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Unassign Package from Group

Removes a package from an assignment or configuration group.

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Group

In

Yes

Target group object.

Package

In

Yes

Package object which should be removed from the group. Supported package types are Software, SoftwareClass, OSTemplate, PxeBootImage, AgentTemplate, PatchManagementGroup.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Unassign Package from Groups

Removes a package from several assignments and/or configuration groups.

Repository category: Empirum

Properties

Name

In/Out

Required

Description

Groups

In

Yes

Target group objects.

Package

In

Yes

Package object which should be removed from the groups. Supported package types are Software, SoftwareClass, OSTemplate, PxeBootImage, AgentTemplate, PatchManagementGroup.

DisplayName

-

No

Understandable name of the activity.

Session

In

Yes

Connection object to the Empirum server.

Sample Workflow for Package and Assign/Unassign Activities

The workflow example below demonstrates how to connect to Empirum Server, find packages and assign them to a group on the Empirum server. The “GroupExp1” group and the"TestLab" package were preliminarily created on the Empirum Server using administration console.

The sample workflow does the following:

  1. Creates a connection to Empirum Server.
  2. Gets an Empirum group by group name “GroupExp1”.
  3. Finds a package whose name starts from "TestLab".
  4. Adds the package to a collection and adds the group to another collection.
  5. Assigns the collection of packages to the collection of groups by using the Assign Packages to Groups activity.
  6. Closes the connection to Empirum Server.

ADM_EmpirumWF_Sample_3.png

You can download Sample Empirum Workflows.zip.