이 섹션의 스크립트를 사용하여 ID 도메인의 사용자를 다른 ID 도메인에 복제할 수 있습니다. 이 스크립트를 실행하는 사용자에게 소스 및 타겟 환경에서 ID 도메인 관리자 및 서비스 관리자 역할이 있어야 합니다.
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 |
소스 환경에서 ID 도메인 관리자 및 서비스 관리자 역할을 가진 사용자의 사용자 이름입니다.
예: Windows: Linux/UNIX: |
epmpwdsource |
사용자 비밀번호 또는 암호화된 비밀번호 파일의 절대 경로입니다.
예: Windows: Linux/UNIX: |
epmurlsource |
복사할 사용자가 있는 환경의 URL입니다.
예: Windows: Linux/UNIX: |
epmidentitydomainsource |
소스 환경에서 사용하는 ID 도메인의 이름입니다.
예: Windows: Linux/UNIX: |
epmusertarget |
타겟 환경에서 ID 도메인 관리자 및 서비스 관리자 역할을 가진 사용자의 사용자 이름입니다.
예: Windows: Linux/UNIX: |
epmpwdtarget |
사용자 비밀번호 또는 암호화된 비밀번호 파일의 절대 경로입니다.
예: Windows: Linux/UNIX: |
epmurltarget |
사용자를 생성할 환경의 URL입니다.
예: Windows: Linux/UNIX: |
epmidentitydomaintarget |
타겟 환경에서 사용하는 ID 도메인의 이름입니다.
예: 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"
)입니다.