Join-FIMConfig

Joins two lists of ExportObject instances by using join criteria.

Syntax

Join-FIMConfig
    [-Confirm]
    [-DefaultJoin <String>]
    [-Join <Hashtable>]
    [-Source <ExportObject[]>]
    [-Target <ExportObject[]>]
    [-WhatIf]

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.

Examples

Example 1: Join all resources by Display name

$Matches =  Join-FIMConfig  -Source $Pilot -Target $Production -DefaultJoin "DisplayName"

This command joins all resources by DisplayName.

Note that $Pilot and $Production are different collections.

Example 2: Join all resources by properties

$Join = @{"Person" = "EmployeeID DisplayName"; "Group" = "Email DisplayName"} $Matches =  Join-FIMConfig  -Source $Pilot -Target $Production -Join $Join -DefaultJoin "DisplayName"

This command 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.

Optional Parameters

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-DefaultJoin
Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Join
Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Source
Type:ExportObject[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Target
Type:ExportObject[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Inputs

None

This cmdlet takes no input.

Outputs

MatchObject[]

A list of MatchObject instances. Each MatchObject contains the full representation of the FIM object from each the source and target FIM services.