본문 바로가기
기술자료 (KB)/Active Directory (AD)

Powershell mail 속성 값 추출 및 등록

by 이완주 2020. 6. 15.

[문의사항]

ADMT (Active Directory Migration Tool)로 계정 동기화를 하면 다른 값은 다 넘어가는데 메일 값은 넘어가지 않는 것을 확인

 

아래 값을 일괄 적으로 마이그레이션 할 수 있는 방법은?

 

[문의답변]

메일 주소는 Exchange에서 사서함을 만들게 되면 자동으로 값이 등록되게 됩니다.

Exchange Online의 경우는 해당 값이 등록되지 않습니다.

기존 AD에서 아래와 같이 명령어로 사용자 및 그룹에 메일의 값이 있는 사용자를 일괄 추출합니다.

 

- 기존 도메인

아래 명령어로 c:\temp\usermail.csv 파일로 추출 가능

Get-ADUser -Properties mail -Filter {mail -like '*'} | select SamAccountName, mail `

| Export-Csv c:\temp\usermail.csv -NoTypeInformation -Encoding UTF8

 

추출 결과

서버에서 csv 파일을 쉽게 확인하는 명령어

Import-Csv -Path "C:\temp\usermail.csv" | Out-GridView 

아래 명령어로 c:\temp\groupmail.csv 파일로 추출 가능

Get-ADGroup -Properties mail -Filter {mail -like '*'} | select SamAccountName, mail | `

Export-Csv c:\temp\groupmail.csv -NoTypeInformation -Encoding UTF8

 

- 신규 도메인 

추출된 사용자 및 그룹 정보의 csv 파일을 신규 AD환경에 아래와 같이 일괄 적용하면 됩니다.

사용자 일괄 등록

Import-Csv "c:\temp\usermail.csv" | ForEach-Object `

{

    Set-ADGroup $_.SamAccountName -Replace @{mail=$_.mail}

}

 

그룹 일괄 등록

Import-Csv "c:\temp\groupmail.csv" | ForEach-Object `

{

    Set-ADGroup $_.SamAccountName -Replace @{mail=$_.mail}

}

 

- Office 365 동기화

내부 AD에 계정을 만들어 Azure AD Connecter로 계정 동기화 할 경우

메일 주소를 미리 넣어 놓으면 Office 365 Exchange Online 라이선스를 활성화하게 되면 메일 사서함이 만들어지며 기존에 넣어 놓은 메일 값이 적용됨을 확인할 수 있음.

 

 

댓글