The following script illustrates the use of $srcObj.
A creating task (creating step of a sync workflow as applied to Synchronization Service) causes Synchronization Service to create user identity information from a delimited text file to Active Directory using the following creating rule: the "co" attribute in all created users must be set to the name of country where the user lives. The script-based creating rule calculates the "co" attribute value basing on the user's city (the "City" attribute in the connected data source).
The following script implements the described scenario:
# --- Retrieve the City attribute of the user object in connected data source.
$userCity = $srcObj["City"]
# --- Determine the user's country
switch ($UserCity)
{
"New York" {$country = "United States"; break}
"Paris" {$country = "France"; break}
"Tokyo" {$country = "Japan"; break}
default {$country = "Unknown"}
}
# --- Return the user country. The script-based creating rule
# --- assigns this value to the "co" attribute in the created user object.
$country
# End of the script
Appendix B: Using a PowerShell script to
transform passwords
You can use a Windows PowerShell script in a password sync rule to transform passwords. This section provides some reference materials on how to write a Windows PowerShell script for password transformation.
To synchronize passwords between the source Active Directory domain and the target connected data system, Synchronization Service uses the password sync rules you configure. In a password rule settings, you can type a PowerShell script that transforms source Active Directory user passwords into object passwords for the target connected system. For example, you can use such a script if you want the object passwords in the source and target connected systems to be different.
When developing a PowerShell script to transform passwords, you can employ the $srcPwd built-in associative array (hash table) that allows the scripts to access the source object password. The $srcPwd returns a string that contains the object password.
To clarify the use of $srcPwd, consider a scenario where the target object password in the target connected data system must include only 8 first characters of the source object password in the source Active Directory domain.
The following scripts implements the described scenario:
if($srcPwd.length -gt 8)
{
$srcPwd.substring(0,8)
}
else
{
$srcPwd
}
# End of the script