この項のスクリプトを使用して、1つのアイデンティティ・ドメインのユーザーを別のアイデンティティ・ドメインにクローニングします。これらのスクリプトを実行するには、ソース環境とターゲット環境のアイデンティティ・ドメイン管理者の役割とサービス管理者の役割が必要です。
Windows
この項のスクリプトをコピーすることにより、replicateusers.batおよびreplicateusers.ps1を作成します。
このスクリプトをコピーすることにより、replicateusers.ps1を作成します:
# Replicate users script
param(
[string]$epmusersource,
[string]$epmpwdsource,
[string]$epmurlsource,
[string]$epmidentitydomainsource,
[string]$epmusertarget,
[string]$epmpwdtarget,
[string]$epmurltarget,
[string]$epmidentitydomaintarget,
[string]$proxyserverusername,
[string]$proxyserverpassword,
[string]$proxyserverdomain,
[string]$userpassword,
[string]$resetpassword,
[string]$emailtoaddress
)
$roleassignmentreport="roleassignmentreport.csv"
$usersreport="users.csv"
echo "Replicate users script started"
# delete existing reports
$roleassignmentreportexists=Test-Path $roleassignmentreport
if ($roleassignmentreportexists) {
rm $roleassignmentreport 2>&1 | out-null
}
$usersreportexists=Test-Path $usersreport
if ($usersreportexists) {
rm $usersreport 2>&1 | out-null
}
# epmautomate login Source App as an IDM Admin
echo "Logging into source application at ${epmurlsource}"
epmautomate login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${epmidentitydomainsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
echo "Creating role assignment report: ${roleassignmentreport}"
epmautomate roleAssignmentReport ${roleassignmentreport}
if (${emailtoaddress} -match "@") {
epmautomate.bat sendMail $emailtoaddress "Role assignment report" Body="Role assignment report is attached." Attachments=$roleassignmentreport}
echo "Downloading role assignment report"
epmautomate downloadfile ${roleassignmentreport}
epmautomate deletefile ${roleassignmentreport}
epmautomate logout
# Create users report
Get-Content ${roleassignmentreport} | ForEach-Object {
$user=$_.split(',')[0]
$firstname=$_.split(',')[1]
$lastname=$_.split(',')[2]
$email=$_.split(',')[3]
if ($firstname -eq "First Name") {
return
} else {
echo "${firstname},${lastname},${email},${user}" >> ${usersreport}
}
}
Get-Content -Path "${usersreport}" | Sort-Object -Unique > "${usersreport}.tmp"
mv -Force "${usersreport}.tmp" "${usersreport}"
$userheader="First Name,Last Name,Email,User Login"
"${userheader}`r`n" + (Get-Content $usersreport -Raw) | Set-Content $usersreport
# epmautomate login Target App as an IDM Admin
echo "Logging into target application at ${epmurltarget}"
epmautomate login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${epmidentitydomaintarget} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
epmautomate deletefile ${usersreport} | Out-Null
echo "Uploading file ${usersreport}"
epmautomate uploadfile ${usersreport}
echo "Adding users"
epmautomate addUsers ${usersreport} userPassword=${userpassword} resetPassword=${resetpassword}
epmautomate deletefile ${usersreport}
epmautomate logout
rm deletefile*.log | Out-Null
echo "Replicate users script completed"
replicateusers.batを作成します:
@ECHO OFF
SET thisdir=%~dp0
SET scriptpath=%thisdir%replicateusers.ps1
SET paramRequiredMessage=Syntax: replicateusers.bat "USER_PASSWORD"
REM USER DEFINED VARIABLES
REM -----------------------
set epmusersource="<EPM USER FOR SOURCE ENVIRONMENT>"
set epmpwdsource="<EPM PASSWORD FOR SOURCE ENVIRONMENT>"
set epmurlsource="<EPM URL FOR SOURCE ENVIRONMENT>"
set epmidentitydomainsource="<EPM IDENTITY DOMAIN FOR SOURCE ENVIRONMENT>"
set epmusertarget="<EPM USER FOR TARGET ENVIRONMENT>"
set epmpwdtarget="<EPM PASSWORD FOR TARGET ENVIRONMENT>"
set epmurltarget="<EPM URL FOR TARGET ENVIRONMENT>"
set epmidentitydomaintarget="<EPM IDENTITY DOMAIN FOR TARGET ENVIRONMENT>"
set proxyserverusername="<PROXY SERVER USER NAME>"
set proxyserverpassword="<PROXY SERVER PASSWORD>"
set proxyserverdomain="<PROXY SERVER DOMAIN>"
set resetpassword=false
set emailtoaddress="<EMAIL_TO_ADDRESS>"
REM -----------------------
if "%~1" == "" (
echo USER_PASSWORD is missing. This is used to set the default password for the replicated users.
echo %paramRequiredMessage%
exit /b 1
)
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%scriptpath%' -epmusersource '%epmusersource%' -epmpwdsource '%epmpwdsource%' -epmurlsource '%epmurlsource%' -epmidentitydomainsource '%epmidentitydomainsource%' -epmusertarget '%epmusertarget%' -epmpwdtarget '%epmpwdtarget%' -epmurltarget '%epmurltarget%' -epmidentitydomaintarget '%epmidentitydomaintarget%' -proxyserverusername '%proxyserverusername%' -proxyserverpassword '%proxyserverpassword%' -proxyserverdomain '%proxyserverdomain%' -userpassword '%~1' -resetpassword '%resetpassword%' -emailtoaddress '%emailtoaddress%'"
replicateusers.batを更新します。指定する必要がある値は、次の表を参照してください。
| パラメータ | 説明 |
|---|---|
epmusersource |
ソース環境のアイデンティティ・ドメイン管理者とサービス管理者の役割を持つユーザーのユーザー名。
例: Windows: Linux/UNIX: |
epmpwdsource |
ユーザーのパスワードまたは暗号化されたパスワード・ファイルの絶対パス。
例: Windows: Linux/UNIX: |
epmurlsource |
ユーザーのコピー元の環境のURL。
例: Windows: Linux/UNIX: |
epmidentitydomainsource |
ソース環境で使用されるアイデンティティ・ドメインの名前。
例: Windows: Linux/UNIX: |
epmusertarget |
ターゲット環境のアイデンティティ・ドメイン管理者とサービス管理者の役割を持つユーザーのユーザー名。
例: Windows: Linux/UNIX: |
epmpwdtarget |
ユーザーのパスワードまたは暗号化されたパスワード・ファイルの絶対パス。
例: Windows: Linux/UNIX: |
epmurltarget |
ユーザーを作成する環境のURL。
例: Windows: Linux/UNIX: |
epmidentitydomaintarget |
ターゲット環境で使用されるアイデンティティ・ドメインの名前。
例: Windows: Linux/UNIX: |
proxyserverusername |
インターネットへのアクセスを制御するプロキシ・サーバーとの安全なセッションを認証するユーザー名。使用しない場合は、このプロパティをすべて削除してください。
例: Windows: Linux/UNIX: |
proxyserverpassword |
プロキシ・サーバーに対してユーザーを認証するパスワード。使用しない場合は、このプロパティをすべて削除してください。
例: Windows: Linux/UNIX: |
proxyserverdomain |
プロキシ・サーバーに定義されているドメインの名前。使用しない場合は、このプロパティをすべて削除してください。
例: Windows: Linux/UNIX: |
emailtoaddress |
オプションで、役割の割当レポートが送信される電子メール・アドレス。この値が指定されている場合のみ、レポートが電子メールで送信されます。
例: |
Linux/UNIX
replicateusers.shを作成します。
#!/bin/sh
userpassword="$1"
# USER DEFINED VARIABLES
#-----------------------
javahome="<JAVA HOME>"
epmautomatescript="<EPM AUTOMATE SCRIPT LOCATION>"
epmusersource="<EPM USER FOR SOURCE ENVIRONMENT>"
epmpwdsource="<EPM PASSWORD FOR SOURCE ENVIRONMENT>"
epmurlsource="<EPM URL FOR SOURCE ENVIRONMENT>"
epmidentitydomainsource="<EPM IDENTITY DOMAIN FOR SOURCE ENVIRONMENT>"
epmusertarget="<EPM USER FOR TARGET ENVIRONMENT>"
epmpwdtarget="<EPM PASSWORD FOR TARGET ENVIRONMENT>"
epmurltarget="<EPM URL FOR TARGET ENVIRONMENT>"
epmidentitydomaintarget="<EPM IDENTITY DOMAIN FOR TARGET ENVIRONMENT>"
proxyserverusername="<PROXY SERVER USER NAME>"
proxyserverpassword="<PROXY SERVER PASSWORD>"
proxyserverdomain="<PROXY SERVER DOMAIN>"
resetpassword="false"
emailtoaddress="<EMAIL TO ADDRESS>"
#-----------------------
roleassignmentreport="roleassignmentreport.csv"
usersreport="users.csv"
paramrequiredmessage='Syntax: replicateusers.sh "USER_PASSWORD"'
export JAVA_HOME=${javahome}
if [ "${userpassword}" == "" ]
then
echo "USER_PASSWORD is missing. This is used to set the default password for the replicated users."
echo "${paramrequiredmessage}"
exit
fi
echo "Replicate users script started"
# epmautomate login Source App as an IDM Admin
echo "Logging into source application at ${epmurlsource}"
${epmautomatescript} login ${epmusersource} ${epmpwdsource} ${epmurlsource} ${epmidentitydomainsource} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
echo "Creating role assignment report: ${roleassignmentreport}"
${epmautomatescript} roleAssignmentReport ${roleassignmentreport}
if [[ "${emailtoaddress}" == *"@"* ]]
then
${epmautomatescript} sendMail $emailtoaddress "Role assignment report" Body="Role assignment report is attached." Attachments=$roleassignmentreport
fi
echo "Downloading role assignment report"
${epmautomatescript} downloadfile ${roleassignmentreport}
${epmautomatescript} deletefile ${roleassignmentreport}
${epmautomatescript} logout
awk -F, '{print $2","$3","$4","$1}' ${roleassignmentreport} | (read -r; printf "%s\n" "$REPLY"; sort -u) > ${usersreport}
# epmautomate login Target App as an IDM Admin
echo "Logging into target application at ${epmurltarget}"
${epmautomatescript} login ${epmusertarget} ${epmpwdtarget} ${epmurltarget} ${epmidentitydomaintarget} ${proxyserverusername} ${proxyserverpassword} ${proxyserverdomain}
${epmautomatescript} deletefile ${usersreport} > /dev/null 2>&1
echo "Uploading file ${usersreport}"
${epmautomatescript} uploadfile ${usersreport}
echo "Adding users"
${epmautomatescript} addUsers ${usersreport} userPassword=${userpassword} resetPassword=${resetpassword}
${epmautomatescript} deletefile ${usersreport}
${epmautomatescript} logout
rm deletefile*.log > /dev/null 2>&1
echo "Replicate users script completed"
replicateusers.shを更新します。指定する必要がある値の詳細は、前の表を参照してください。さらに、次のプロパティの値を指定する必要があります:
javahome: Javaがインストールされているディレクトリへの絶対パス。epmautomatescript: epmautomatescript.shの場所。例: epmautomatescript="/home/user1/epmautomate/bin/epmautomate.sh"