Skip to content

Synchronisation Rules

Synchronisation rules define how data flows between connected systems and the metaverse. They control attribute mappings, scoping criteria, and object matching logic. The cmdlets on this page cover the full lifecycle of synchronisation rule configuration.


Synchronisation Rule CRUD

Create, retrieve, update, and delete synchronisation rules.


Get-JIMSyncRule

Retrieves one or more synchronisation rules. When called without parameters, returns all synchronisation rules. Use the parameter sets to filter by ID, connected system ID, or connected system name.

Syntax

# List all sync rules (default)
Get-JIMSyncRule [-Name <string>]

# By sync rule ID
Get-JIMSyncRule -Id <int>

# By connected system ID
Get-JIMSyncRule -ConnectedSystemId <int> [-Name <string>]

# By connected system name
Get-JIMSyncRule -ConnectedSystemName <string> [-Name <string>]

Parameters

Name Type Required Default Description
Id int Yes (ById set) The ID of a specific synchronisation rule to retrieve
ConnectedSystemId int No Filter synchronisation rules by connected system ID. Accepts pipeline input.
ConnectedSystemName string No Filter synchronisation rules by connected system name. Must be an exact match.
Name string No Filter synchronisation rules by name. Supports wildcards (e.g., "Inbound*").

Output

Returns one or more synchronisation rule objects containing the rule configuration, direction, projection/provisioning settings, and enabled state.

Examples

List all synchronisation rules
Get-JIMSyncRule
Get a specific synchronisation rule by ID
Get-JIMSyncRule -Id 5
Filter by name
Get-JIMSyncRule -Name "Inbound*"
Get synchronisation rules for a connected system
Get-JIMSyncRule -ConnectedSystemName "Active Directory"
Pipeline from connected system ID
$cs = Get-JIMConnectedSystem -Name "HR System"
Get-JIMSyncRule -ConnectedSystemId $cs.Id

New-JIMSyncRule

Creates a new synchronisation rule for a connected system. The rule defines how objects flow between the connected system and the metaverse.

Syntax

# By connected system ID (default)
New-JIMSyncRule -Name <string> -ConnectedSystemId <int>
    -ConnectedSystemObjectTypeId <int> -MetaverseObjectTypeId <int>
    -Direction <string> [-ProjectToMetaverse] [-ProvisionToConnectedSystem]
    [-Enabled <bool>] [-PassThru]

# By connected system name
New-JIMSyncRule -Name <string> -ConnectedSystemName <string>
    -ConnectedSystemObjectTypeId <int> -MetaverseObjectTypeId <int>
    -Direction <string> [-ProjectToMetaverse] [-ProvisionToConnectedSystem]
    [-Enabled <bool>] [-PassThru]

Parameters

Name Type Required Default Description
Name string Yes (Position 0) Display name for the synchronisation rule
ConnectedSystemId int Yes (ById set) The ID of the connected system this rule belongs to
ConnectedSystemName string Yes (ByName set) The name of the connected system this rule belongs to
ConnectedSystemObjectTypeId int Yes The object type ID on the connected system side
MetaverseObjectTypeId int Yes The object type ID on the metaverse side
Direction string Yes Data flow direction. Valid values: Import, Export
ProjectToMetaverse switch No $false When set, import rules will project new metaverse objects. Only applicable when Direction is Import.
ProvisionToConnectedSystem switch No $false When set, export rules will provision new connected system objects. Only applicable when Direction is Export.
Enabled bool No $true Whether the synchronisation rule is active
PassThru switch No $false Returns the created synchronisation rule object

Output

With -PassThru, returns the created synchronisation rule object. Without it, returns nothing.

ShouldProcess impact level: Medium.

Examples

Create an import synchronisation rule with projection
New-JIMSyncRule -Name "AD User Import" `
    -ConnectedSystemId 1 `
    -ConnectedSystemObjectTypeId 3 `
    -MetaverseObjectTypeId 1 `
    -Direction Import `
    -ProjectToMetaverse `
    -PassThru
Create an export synchronisation rule by connected system name
New-JIMSyncRule -Name "AD User Export" `
    -ConnectedSystemName "Active Directory" `
    -ConnectedSystemObjectTypeId 3 `
    -MetaverseObjectTypeId 1 `
    -Direction Export `
    -ProvisionToConnectedSystem
Create a disabled synchronisation rule
New-JIMSyncRule -Name "HR Import (Draft)" `
    -ConnectedSystemId 2 `
    -ConnectedSystemObjectTypeId 5 `
    -MetaverseObjectTypeId 1 `
    -Direction Import `
    -Enabled $false

Set-JIMSyncRule

Modifies an existing synchronisation rule. Supports renaming, toggling enabled state, and changing projection/provisioning settings.

Syntax

# By ID (default)
Set-JIMSyncRule -Id <int> [-Name <string>] [-ProjectToMetaverse <bool>]
    [-ProvisionToConnectedSystem <bool>] [-PassThru]

# Enable shortcut
Set-JIMSyncRule -Id <int> -Enable [-PassThru]

# Disable shortcut
Set-JIMSyncRule -Id <int> -Disable [-PassThru]

# By input object
Set-JIMSyncRule -InputObject <PSCustomObject> [-Name <string>]
    [-ProjectToMetaverse <bool>] [-ProvisionToConnectedSystem <bool>]
    [-PassThru]

Parameters

Name Type Required Default Description
Id int Yes (ById, Enable, Disable sets) The ID of the synchronisation rule to modify. Accepts pipeline input.
InputObject PSCustomObject Yes (ByInputObject set) A synchronisation rule object from Get-JIMSyncRule. Accepts pipeline input.
Name string No New display name for the synchronisation rule
Enable switch Yes (Enable set) Enables the synchronisation rule
Disable switch Yes (Disable set) Disables the synchronisation rule
ProjectToMetaverse bool No Controls whether the rule projects new metaverse objects
ProvisionToConnectedSystem bool No Controls whether the rule provisions new connected system objects
PassThru switch No $false Returns the updated synchronisation rule object

Output

With -PassThru, returns the updated synchronisation rule object. Without it, returns nothing.

ShouldProcess impact level: Medium.

Examples

Rename a synchronisation rule
Set-JIMSyncRule -Id 5 -Name "AD User Import (Production)"
Enable a synchronisation rule
Set-JIMSyncRule -Id 5 -Enable
Disable a synchronisation rule
Set-JIMSyncRule -Id 5 -Disable
Pipeline: disable all synchronisation rules for a connected system
Get-JIMSyncRule -ConnectedSystemName "HR System" | Set-JIMSyncRule -Disable
Enable projection on an existing import rule
Set-JIMSyncRule -Id 5 -ProjectToMetaverse $true -PassThru

Remove-JIMSyncRule

Deletes a synchronisation rule and all associated configuration, including attribute mappings, scoping criteria, and matching rules.

Syntax

# By ID (default)
Remove-JIMSyncRule -Id <int> [-Force] [-PassThru]

# By input object
Remove-JIMSyncRule -InputObject <PSCustomObject> [-Force] [-PassThru]

Parameters

Name Type Required Default Description
Id int Yes (ById set) The ID of the synchronisation rule to delete. Accepts pipeline input.
InputObject PSCustomObject Yes (ByInputObject set) A synchronisation rule object from Get-JIMSyncRule. Accepts pipeline input.
Force switch No $false Suppresses the confirmation prompt
PassThru switch No $false Returns the deleted synchronisation rule object before removal

Output

With -PassThru, returns the synchronisation rule object that was deleted. Without it, returns nothing.

ShouldProcess impact level: High. Prompts for confirmation unless -Force is specified.

Examples

Delete a synchronisation rule with confirmation
Remove-JIMSyncRule -Id 5
Force delete without confirmation
Remove-JIMSyncRule -Id 5 -Force
Pipeline: remove all disabled synchronisation rules for a connected system
Get-JIMSyncRule -ConnectedSystemName "Legacy HR" |
    Where-Object { -not $_.Enabled } |
    Remove-JIMSyncRule -Force

Attribute Mappings

Configure how attributes flow between connected system objects and metaverse objects within a synchronisation rule. Mappings can use direct attribute-to-attribute flows or expression-based transformations.


Get-JIMSyncRuleMapping

Retrieves attribute flow mappings for a synchronisation rule. Returns all mappings for the rule, or a specific mapping by ID.

Syntax

# All mappings for a sync rule
Get-JIMSyncRuleMapping -SyncRuleId <int>

# Specific mapping
Get-JIMSyncRuleMapping -SyncRuleId <int> -MappingId <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input. Alias: Id.
MappingId int No The ID of a specific mapping to retrieve

Output

Returns one or more mapping objects representing attribute flow rules. Each mapping includes the source attribute(s) or expression, the target attribute, and the flow direction.

Examples

List all mappings for a synchronisation rule
Get-JIMSyncRuleMapping -SyncRuleId 5
Get a specific mapping
Get-JIMSyncRuleMapping -SyncRuleId 5 -MappingId 12
Pipeline from Get-JIMSyncRule
Get-JIMSyncRule -Id 5 | Get-JIMSyncRuleMapping

New-JIMSyncRuleMapping

Creates a new attribute flow mapping on a synchronisation rule. Mappings can be direct attribute flows (one or more source attributes to a target) or expression-based transformations.

Syntax

# Import: direct attribute flow (CS -> MV)
New-JIMSyncRuleMapping -SyncRuleId <int>
    -SourceConnectedSystemAttributeId <int[]>
    -TargetMetaverseAttributeId <int>

# Import: expression-based flow (CS -> MV)
New-JIMSyncRuleMapping -SyncRuleId <int>
    -Expression <string>
    -TargetMetaverseAttributeId <int>

# Export: direct attribute flow (MV -> CS)
New-JIMSyncRuleMapping -SyncRuleId <int>
    -SourceMetaverseAttributeId <int[]>
    -TargetConnectedSystemAttributeId <int>

# Export: expression-based flow (MV -> CS)
New-JIMSyncRuleMapping -SyncRuleId <int>
    -Expression <string>
    -TargetConnectedSystemAttributeId <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input. Alias: Id.
TargetMetaverseAttributeId int Yes (Import sets) The metaverse attribute to write to (import direction)
TargetConnectedSystemAttributeId int Yes (Export sets) The connected system attribute to write to (export direction)
SourceConnectedSystemAttributeId int[] Yes (ImportAttribute set) One or more connected system attribute IDs to read from
SourceMetaverseAttributeId int[] Yes (ExportAttribute set) One or more metaverse attribute IDs to read from
Expression string Yes (ImportExpression, ExportExpression sets) A DynamicExpresso expression. Use mv["Name"] for metaverse attributes and cs["Name"] for connected system attributes.

Output

Returns the created mapping object.

ShouldProcess impact level: Medium.

Notes

  • When multiple source attributes are provided, they are automatically ordered by position (0, 1, 2, and so on).
  • Expressions use DynamicExpresso syntax with mv["AttributeName"] and cs["AttributeName"] accessors.

Examples

Direct import: map CS 'givenName' to MV 'firstName'
New-JIMSyncRuleMapping -SyncRuleId 5 `
    -SourceConnectedSystemAttributeId 10 `
    -TargetMetaverseAttributeId 3
Expression import: concatenate CS attributes into MV 'displayName'
New-JIMSyncRuleMapping -SyncRuleId 5 `
    -Expression 'cs["givenName"] + " " + cs["sn"]' `
    -TargetMetaverseAttributeId 7
Direct export: map MV 'email' to CS 'mail'
New-JIMSyncRuleMapping -SyncRuleId 8 `
    -SourceMetaverseAttributeId 15 `
    -TargetConnectedSystemAttributeId 22
Multiple source attributes for import
New-JIMSyncRuleMapping -SyncRuleId 5 `
    -SourceConnectedSystemAttributeId 10, 11 `
    -TargetMetaverseAttributeId 7

Remove-JIMSyncRuleMapping

Deletes an attribute flow mapping from a synchronisation rule.

Syntax

# By IDs
Remove-JIMSyncRuleMapping -SyncRuleId <int> -MappingId <int> [-Force]

# By input object
Remove-JIMSyncRuleMapping -SyncRuleId <int> -InputObject <PSCustomObject> [-Force]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
MappingId int Yes (by ID) The ID of the mapping to delete. Accepts pipeline input. Alias: Id.
InputObject PSCustomObject Yes (by object) A mapping object from Get-JIMSyncRuleMapping. Accepts pipeline input.
Force switch No $false Suppresses the confirmation prompt

Output

None.

ShouldProcess impact level: High. Prompts for confirmation unless -Force is specified.

Examples

Delete a specific mapping
Remove-JIMSyncRuleMapping -SyncRuleId 5 -MappingId 12
Force delete without confirmation
Remove-JIMSyncRuleMapping -SyncRuleId 5 -MappingId 12 -Force
Pipeline: remove all mappings for a synchronisation rule
Get-JIMSyncRuleMapping -SyncRuleId 5 |
    Remove-JIMSyncRuleMapping -SyncRuleId 5 -Force

Scoping Criteria

Scoping criteria control which objects a synchronisation rule processes. Criteria are organised into groups that evaluate as All (AND) or Any (OR), and groups can be nested for complex logic.


Get-JIMScopingCriteria

Retrieves scoping criteria groups and their nested criteria for a synchronisation rule.

Syntax

# All groups for a sync rule
Get-JIMScopingCriteria -SyncRuleId <int>

# Specific group
Get-JIMScopingCriteria -SyncRuleId <int> -GroupId <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input. Alias: Id.
GroupId int No The ID of a specific scoping criteria group to retrieve

Output

Returns one or more scoping criteria group objects. Each group contains its type (All or Any), position, and nested criteria or child groups.

Examples

List all scoping criteria for a synchronisation rule
Get-JIMScopingCriteria -SyncRuleId 5
Get a specific group
Get-JIMScopingCriteria -SyncRuleId 5 -GroupId 2
Pipeline from Get-JIMSyncRule
Get-JIMSyncRule -Id 5 | Get-JIMScopingCriteria

New-JIMScopingCriteriaGroup

Creates a new scoping criteria group on a synchronisation rule. Groups evaluate their contents using either All (AND) or Any (OR) logic. Groups can be nested within other groups to build complex scoping expressions.

Syntax

New-JIMScopingCriteriaGroup -SyncRuleId <int>
    [-ParentGroupId <int>] [-Type <string>] [-Position <int>] [-PassThru]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input.
ParentGroupId int No The ID of a parent group to nest this group within
Type string No All Evaluation logic for the group. Valid values: All (AND), Any (OR).
Position int No 0 Display order position within the parent context
PassThru switch No $false Returns the created group object

Output

With -PassThru, returns the created scoping criteria group object. Without it, returns nothing.

ShouldProcess impact level: Medium.

Examples

Create a top-level AND group
New-JIMScopingCriteriaGroup -SyncRuleId 5 -Type All -PassThru
Create a nested OR group inside an existing group
New-JIMScopingCriteriaGroup -SyncRuleId 5 -ParentGroupId 2 -Type Any
Create an AND group at a specific position
New-JIMScopingCriteriaGroup -SyncRuleId 5 -Type All -Position 1

Set-JIMScopingCriteriaGroup

Modifies an existing scoping criteria group; for example, changing the evaluation type or position.

Syntax

Set-JIMScopingCriteriaGroup -SyncRuleId <int> -GroupId <int>
    [-Type <string>] [-Position <int>] [-PassThru]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input.
GroupId int Yes The ID of the group to modify. Accepts pipeline input. Alias: Id.
Type string No Evaluation logic. Valid values: All (AND), Any (OR).
Position int No Display order position
PassThru switch No $false Returns the updated group object

Output

With -PassThru, returns the updated scoping criteria group object. Without it, returns nothing.

ShouldProcess impact level: Medium.

Examples

Change a group from AND to OR
Set-JIMScopingCriteriaGroup -SyncRuleId 5 -GroupId 2 -Type Any
Reorder a group
Set-JIMScopingCriteriaGroup -SyncRuleId 5 -GroupId 2 -Position 3

Remove-JIMScopingCriteriaGroup

Deletes a scoping criteria group and all of its nested criteria and child groups.

Syntax

Remove-JIMScopingCriteriaGroup -SyncRuleId <int> -GroupId <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input.
GroupId int Yes The ID of the group to delete. Accepts pipeline input. Alias: Id.

Output

None.

ShouldProcess impact level: High. Prompts for confirmation.

Notes

  • Deleting a group also deletes all nested criteria and child groups within it. This operation is not reversible.

Examples

Delete a scoping criteria group
Remove-JIMScopingCriteriaGroup -SyncRuleId 5 -GroupId 2

New-JIMScopingCriterion

Adds an individual scoping criterion to a group. Each criterion compares an attribute value against a specified constant. Import rules use connected system attributes; export rules use metaverse attributes.

Syntax

# By metaverse attribute ID
New-JIMScopingCriterion -SyncRuleId <int> -GroupId <int>
    -MetaverseAttributeId <int> -ComparisonType <string>
    [-StringValue <string>] [-IntValue <int>] [-DateTimeValue <datetime>]
    [-BoolValue <bool>] [-GuidValue <guid>] [-PassThru]

# By metaverse attribute name
New-JIMScopingCriterion -SyncRuleId <int> -GroupId <int>
    -MetaverseAttributeName <string> -ComparisonType <string>
    [-StringValue <string>] [-IntValue <int>] [-DateTimeValue <datetime>]
    [-BoolValue <bool>] [-GuidValue <guid>] [-PassThru]

# By connected system attribute ID
New-JIMScopingCriterion -SyncRuleId <int> -GroupId <int>
    -ConnectedSystemAttributeId <int> -ComparisonType <string>
    [-StringValue <string>] [-IntValue <int>] [-DateTimeValue <datetime>]
    [-BoolValue <bool>] [-GuidValue <guid>] [-PassThru]

# By connected system attribute name
New-JIMScopingCriterion -SyncRuleId <int> -GroupId <int>
    -ConnectedSystemAttributeName <string> -ComparisonType <string>
    [-StringValue <string>] [-IntValue <int>] [-DateTimeValue <datetime>]
    [-BoolValue <bool>] [-GuidValue <guid>] [-PassThru]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
GroupId int Yes The ID of the scoping criteria group to add this criterion to
MetaverseAttributeId int Yes (ByMvId set) The metaverse attribute ID to evaluate (export rules only)
MetaverseAttributeName string Yes (ByMvName set) The metaverse attribute name to evaluate; auto-resolves to ID (export rules only)
ConnectedSystemAttributeId int Yes (ByCsId set) The connected system attribute ID to evaluate (import rules only)
ConnectedSystemAttributeName string Yes (ByCsName set) The connected system attribute name to evaluate; auto-resolves to ID (import rules only)
ComparisonType string Yes The comparison operator. Valid values: Equals, NotEquals, StartsWith, NotStartsWith, EndsWith, NotEndsWith, Contains, NotContains, LessThan, LessThanOrEquals, GreaterThan, GreaterThanOrEquals.
StringValue string No String value to compare against
IntValue int No Integer value to compare against
DateTimeValue datetime No Date/time value to compare against (ISO 8601 format)
BoolValue bool No Boolean value to compare against
GuidValue guid No GUID value to compare against
PassThru switch No $false Returns the created criterion object

Output

With -PassThru, returns the created scoping criterion object. Without it, returns nothing.

ShouldProcess impact level: Medium.

Notes

  • Export rules only support metaverse attributes. Import rules only support connected system attributes.
  • Exactly one comparison value parameter should be provided; the correct parameter depends on the attribute's data type.

Examples

Import scope: only process users where objectClass equals 'user'
New-JIMScopingCriterion -SyncRuleId 5 -GroupId 2 `
    -ConnectedSystemAttributeName "objectClass" `
    -ComparisonType Equals `
    -StringValue "user"
Import scope: employee ID greater than 1000
New-JIMScopingCriterion -SyncRuleId 5 -GroupId 2 `
    -ConnectedSystemAttributeId 14 `
    -ComparisonType GreaterThan `
    -IntValue 1000
Export scope: only export active metaverse persons
New-JIMScopingCriterion -SyncRuleId 8 -GroupId 3 `
    -MetaverseAttributeName "accountEnabled" `
    -ComparisonType Equals `
    -BoolValue $true
Import scope: department starts with 'Engineering'
New-JIMScopingCriterion -SyncRuleId 5 -GroupId 2 `
    -ConnectedSystemAttributeName "department" `
    -ComparisonType StartsWith `
    -StringValue "Engineering"
Export scope: modified after a specific date
New-JIMScopingCriterion -SyncRuleId 8 -GroupId 3 `
    -MetaverseAttributeId 20 `
    -ComparisonType GreaterThanOrEquals `
    -DateTimeValue "2025-01-01T00:00:00Z"

Remove-JIMScopingCriterion

Deletes a single scoping criterion from a group.

Syntax

Remove-JIMScopingCriterion -SyncRuleId <int> -GroupId <int> -CriterionId <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
GroupId int Yes The ID of the scoping criteria group
CriterionId int Yes The ID of the criterion to delete. Alias: Id.

Output

None.

ShouldProcess impact level: High. Prompts for confirmation.

Examples

Delete a scoping criterion
Remove-JIMScopingCriterion -SyncRuleId 5 -GroupId 2 -CriterionId 7

Object Matching Rules

Matching rules determine how JIM links connected system objects to metaverse objects during synchronisation. JIM supports two matching modes:

  • Per-object-type (simple): matching rules are defined at the connected system level and apply to all synchronisation rules for a given object type. This is the default mode.
  • Per-sync-rule (advanced): each synchronisation rule has its own independent matching rules, allowing different synchronisation rules to use different join criteria.

Use Switch-JIMMatchingMode to change between modes. The current mode determines which set of cmdlets to use.


Switch-JIMMatchingMode

Switches a connected system between per-object-type (simple) and per-sync-rule (advanced) matching modes. Existing matching rules are migrated automatically during the switch.

Syntax

Switch-JIMMatchingMode -ConnectedSystemId <int> -Mode <string> [-PassThru]

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes The ID of the connected system. Accepts pipeline input.
Mode string Yes Target matching mode. Valid values: ConnectedSystem (simple, per-object-type), SyncRule (advanced, per-sync-rule).
PassThru switch No $false Returns the updated connected system object

Output

With -PassThru, returns the connected system object reflecting the new mode. Without it, returns nothing.

ShouldProcess impact level: High. Prompts for confirmation.

Notes

  • ConnectedSystem mode defines matching rules at the object type level; all synchronisation rules for that object type share the same matching configuration.
  • SyncRule mode defines matching rules on each synchronisation rule independently, providing fine-grained control.
  • When switching modes, existing rules are migrated automatically. Review the migrated rules after switching to confirm they are correct.

Examples

Switch to advanced per-sync-rule matching
Switch-JIMMatchingMode -ConnectedSystemId 1 -Mode SyncRule
Switch back to simple per-object-type matching
Switch-JIMMatchingMode -ConnectedSystemId 1 -Mode ConnectedSystem

Per-Object-Type Matching Rules

These cmdlets manage matching rules in simple (per-object-type) mode, where rules are defined at the connected system level.

Get-JIMMatchingRule

Retrieves matching rules for a connected system.

Syntax

# By object type
Get-JIMMatchingRule -ConnectedSystemId <int> -ObjectTypeId <int>

# By rule ID
Get-JIMMatchingRule -ConnectedSystemId <int> -Id <int>

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes The ID of the connected system. Accepts pipeline input.
ObjectTypeId int Yes (ByObjectType set) The object type ID to retrieve matching rules for
Id int Yes (ById set) The ID of a specific matching rule to retrieve

Output

Returns one or more matching rule objects containing source/target attribute mappings, order, and case sensitivity settings.

Examples

List matching rules for a connected system object type
Get-JIMMatchingRule -ConnectedSystemId 1 -ObjectTypeId 3
Get a specific matching rule
Get-JIMMatchingRule -ConnectedSystemId 1 -Id 5

New-JIMMatchingRule

Creates a new matching rule for a connected system object type. Rules can match on a connected system attribute or a metaverse attribute as the source.

Syntax

# Source: connected system attribute
New-JIMMatchingRule -ConnectedSystemId <int> -ObjectTypeId <int>
    -MetaverseObjectTypeId <int> -SourceAttributeId <int>
    -TargetMetaverseAttributeId <int> [-Order <int>]
    [-CaseSensitive <bool>] [-PassThru]

# Source: metaverse attribute
New-JIMMatchingRule -ConnectedSystemId <int> -ObjectTypeId <int>
    -MetaverseObjectTypeId <int> -SourceMetaverseAttributeId <int>
    -TargetMetaverseAttributeId <int> [-Order <int>]
    [-CaseSensitive <bool>] [-PassThru]

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes The ID of the connected system
ObjectTypeId int Yes The connected system object type ID
MetaverseObjectTypeId int Yes The metaverse object type ID to match against
SourceAttributeId int Yes (CSAttribute set) The connected system attribute ID to use as the match source
SourceMetaverseAttributeId int Yes (MVAttribute set) The metaverse attribute ID to use as the match source
TargetMetaverseAttributeId int Yes The metaverse attribute ID to match against
Order int No Evaluation order; lower numbers are evaluated first
CaseSensitive bool No $false Whether the match comparison is case-sensitive
PassThru switch No $false Returns the created matching rule object

Examples

Match CS employeeId to MV employeeId
New-JIMMatchingRule -ConnectedSystemId 1 -ObjectTypeId 3 `
    -MetaverseObjectTypeId 1 `
    -SourceAttributeId 10 `
    -TargetMetaverseAttributeId 5 `
    -PassThru
Case-sensitive match on email
New-JIMMatchingRule -ConnectedSystemId 1 -ObjectTypeId 3 `
    -MetaverseObjectTypeId 1 `
    -SourceAttributeId 12 `
    -TargetMetaverseAttributeId 8 `
    -CaseSensitive $true

Set-JIMMatchingRule

Modifies an existing per-object-type matching rule. Setting a source attribute replaces all existing source attributes on the rule.

Syntax

Set-JIMMatchingRule -ConnectedSystemId <int> -Id <int>
    [-Order <int>] [-MetaverseObjectTypeId <int>]
    [-TargetMetaverseAttributeId <int>] [-SourceAttributeId <int>]
    [-SourceMetaverseAttributeId <int>] [-CaseSensitive <bool>] [-PassThru]

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes The ID of the connected system
Id int Yes The ID of the matching rule to modify
Order int No New evaluation order
MetaverseObjectTypeId int No New metaverse object type ID
TargetMetaverseAttributeId int No New target metaverse attribute ID
SourceAttributeId int No New connected system source attribute ID
SourceMetaverseAttributeId int No New metaverse source attribute ID
CaseSensitive bool No Whether the match comparison is case-sensitive
PassThru switch No $false Returns the updated matching rule object

Notes

  • Setting SourceAttributeId or SourceMetaverseAttributeId replaces all existing source attributes on the rule.

Examples

Change the evaluation order
Set-JIMMatchingRule -ConnectedSystemId 1 -Id 5 -Order 2
Enable case-sensitive matching
Set-JIMMatchingRule -ConnectedSystemId 1 -Id 5 -CaseSensitive $true

Remove-JIMMatchingRule

Deletes a per-object-type matching rule.

Syntax

Remove-JIMMatchingRule -ConnectedSystemId <int> -Id <int> [-Force]

Parameters

Name Type Required Default Description
ConnectedSystemId int Yes The ID of the connected system
Id int Yes The ID of the matching rule to delete
Force switch No $false Suppresses the confirmation prompt

Output

None.

ShouldProcess impact level: High. Prompts for confirmation unless -Force is specified.

Examples

Delete a matching rule
Remove-JIMMatchingRule -ConnectedSystemId 1 -Id 5
Force delete without confirmation
Remove-JIMMatchingRule -ConnectedSystemId 1 -Id 5 -Force

Per-Sync-Rule Matching Rules

These cmdlets manage matching rules in advanced (per-sync-rule) mode, where each synchronisation rule defines its own matching configuration independently.

Get-JIMSyncRuleMatchingRule

Retrieves matching rules for a specific synchronisation rule.

Syntax

# All matching rules for a sync rule
Get-JIMSyncRuleMatchingRule -SyncRuleId <int>

# Specific matching rule
Get-JIMSyncRuleMatchingRule -SyncRuleId <int> -Id <int>

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule. Accepts pipeline input.
Id int No The ID of a specific matching rule to retrieve

Output

Returns one or more matching rule objects.

Examples

List matching rules for a synchronisation rule
Get-JIMSyncRuleMatchingRule -SyncRuleId 5
Get a specific matching rule
Get-JIMSyncRuleMatchingRule -SyncRuleId 5 -Id 3

New-JIMSyncRuleMatchingRule

Creates a new matching rule on a specific synchronisation rule. The metaverse object type is derived automatically from the synchronisation rule configuration.

Syntax

# Source: connected system attribute
New-JIMSyncRuleMatchingRule -SyncRuleId <int>
    -SourceAttributeId <int> -TargetMetaverseAttributeId <int>
    [-Order <int>] [-CaseSensitive <bool>] [-PassThru]

# Source: metaverse attribute
New-JIMSyncRuleMatchingRule -SyncRuleId <int>
    -SourceMetaverseAttributeId <int> -TargetMetaverseAttributeId <int>
    [-Order <int>] [-CaseSensitive <bool>] [-PassThru]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
SourceAttributeId int Yes (CSAttribute set) The connected system attribute ID to use as the match source
SourceMetaverseAttributeId int Yes (MVAttribute set) The metaverse attribute ID to use as the match source
TargetMetaverseAttributeId int Yes The metaverse attribute ID to match against
Order int No Evaluation order; lower numbers are evaluated first
CaseSensitive bool No $false Whether the match comparison is case-sensitive
PassThru switch No $false Returns the created matching rule object

Notes

  • The metaverse object type is derived from the synchronisation rule, so you do not need to specify it explicitly.

Examples

Match CS employeeId to MV employeeId on a synchronisation rule
New-JIMSyncRuleMatchingRule -SyncRuleId 5 `
    -SourceAttributeId 10 `
    -TargetMetaverseAttributeId 5 `
    -PassThru
Case-sensitive email match
New-JIMSyncRuleMatchingRule -SyncRuleId 5 `
    -SourceAttributeId 12 `
    -TargetMetaverseAttributeId 8 `
    -CaseSensitive $true

Set-JIMSyncRuleMatchingRule

Modifies an existing per-sync-rule matching rule.

Syntax

Set-JIMSyncRuleMatchingRule -SyncRuleId <int> -Id <int>
    [-Order <int>] [-TargetMetaverseAttributeId <int>]
    [-SourceAttributeId <int>] [-SourceMetaverseAttributeId <int>]
    [-CaseSensitive <bool>] [-PassThru]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
Id int Yes The ID of the matching rule to modify
Order int No New evaluation order
TargetMetaverseAttributeId int No New target metaverse attribute ID
SourceAttributeId int No New connected system source attribute ID
SourceMetaverseAttributeId int No New metaverse source attribute ID
CaseSensitive bool No Whether the match comparison is case-sensitive
PassThru switch No $false Returns the updated matching rule object

Examples

Change evaluation order
Set-JIMSyncRuleMatchingRule -SyncRuleId 5 -Id 3 -Order 1
Update target attribute and enable case sensitivity
Set-JIMSyncRuleMatchingRule -SyncRuleId 5 -Id 3 `
    -TargetMetaverseAttributeId 9 `
    -CaseSensitive $true

Remove-JIMSyncRuleMatchingRule

Deletes a per-sync-rule matching rule.

Syntax

Remove-JIMSyncRuleMatchingRule -SyncRuleId <int> -Id <int> [-Force]

Parameters

Name Type Required Default Description
SyncRuleId int Yes The ID of the synchronisation rule
Id int Yes The ID of the matching rule to delete
Force switch No $false Suppresses the confirmation prompt

Output

None.

ShouldProcess impact level: High. Prompts for confirmation unless -Force is specified.

Examples

Delete a synchronisation rule matching rule
Remove-JIMSyncRuleMatchingRule -SyncRuleId 5 -Id 3
Force delete without confirmation
Remove-JIMSyncRuleMatchingRule -SyncRuleId 5 -Id 3 -Force

See also