Join-FIMConfig

Join-FIMConfig

Joins two lists of ExportObject instances by using join criteria.

Syntax

Join-FIMConfig [-source] <ExportObject[]> [-target] <ExportObject[]> [-join <Hashtable>] [-defaultJoin <Hashtable>] [-previousJoin <MatchObject[]>] [<CommonParameters>]

Detailed Description

The Join-FIMConfig cmdlet accepts two lists of ExportObject instances and joins them into MatchObject instances.

The cmdlet performs the join by using criteria specified as arguments to the cmdlet. The join criteria are specific attributes to compare by using case-sensitive matching.

You may specify individual join criteria for each resource type. For example, you may join on EmployeeID for Person and MailNickname for Groups.

You can also use multiple attributes as join criteria. For example, you can join ConstantSpecifier resources on both the DisplayName and Value.

No default join criteria are provided. To ensure that this tool joins on attributes or collections of attributes that are unique in your organization, you must specify the join criteria.

For migrating resources to an empty environment, it is often convenient to use ObjectID as the default join criteria.

To preserve joins or to join resources manually, you can provide MatchObject instances in the previous join parameter. These MatchObject instances are used prior to join criteria in matching resources.

For more information about the Microsoft® Forefront Identity Manager (FIM) 2010 Windows PowerShell™ cmdlet set see Forefront Identity Manager Configuration with Windows PowerShell.

Parameters

--Source <ExportObject[]>

Specifies the list of ExportObject instances from the source system. The following example shows how you can set this parameter.

-source $exports

Attributes

Name Value

Required?

false

Accept Wildcard Characters?

false

Accept Pipeline Input?

false

Position?

named

--Target <ExportObject[]>

Specifies the list of ExportObject instances from the target system.

The following example shows how you can set this parameter.

-target $exports

Attributes

Name Value

Required?

false

Accept Wildcard Characters?

false

Accept Pipeline Input?

false

Position?

named

--Join <Hashtable>

Specifies the hash table with object types mapped to attributes to use as join criteria. The following example shows how you can set this parameter.

-join @{

# === Schema configuration ===

# This is based on the system names of attributes and objects

# Notice that BindingDescription is joined using its reference attributes.

ObjectTypeDescription = "Name";

AttributeTypeDescription = "Name";

BindingDescription = "BoundObjectType BoundAttributeType";

} $object_map

Attributes

Name Value

Required?

false

Accept Wildcard Characters?

false

Accept Pipeline Input?

false

Position?

named

--DefaultJoin <Hashtable>

Specifies the attribute to use as join criteria for resource types not specified in the join parameter. Omitting this parameter requires that all object types have defined join criteria in the join parameter. There is no default value for this parameter. The following example shows how you can set this parameter.

-defaultJoin “DisplayName”

Attributes

Name Value

Required?

false

Accept Wildcard Characters?

false

Accept Pipeline Input?

false

Position?

named

-CommonParameter

This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, and OutVariable. For more information, see about_CommonParameters.

-CommonParameters

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters.

Input and Return Types

The input type is the type of the objects that you can pipe to the cmdlet. The return type is the type of the objects that the cmdlet emits.

Examples

EXAMPLE 1

$matches = Join-FIMConfig -source $pilot -target $production -defaultJoin "DisplayName"

This example joins all resources by DisplayName.

Note that $pilot and $production are different collections.

EXAMPLE 2

Command prompt:

 
          $join = @{“Person” = “EmployeeID DisplayName”; “Group” = “Email DisplayName”} 
          $matches = Join-FIMConfig -source $pilot -target $production -join $join -defaultJoin "DisplayName" 
        

This example joins Person resources by EmployeeID, Group resources by Email and DisplayName (because DisplayName is not often unique), and everything else by display name.

Notice that you can join specific object types by multiple attributes. In this example, Group is joined by using Email and DisplayName. Also notice that explicit joins for object types specified in join take precedence over defaultJoin. We recommend that you use EmployeeID or similar attributes for Person resources because DisplayName often is not sufficiently unique.

See Also

Reference

Export-FIMConfig
Compare-FIMConfig
Import-FIMConfig
ConvertFrom-FIMResource
ConvertTo-FIMResource