การเปลี่ยนชื่อ Email Office 365 จำนวนมาก ด้วย PowerShell

Mos Noppadol Rattanawisadrat
MSEDUTH
Published in
3 min readJun 12, 2021

บทความนี้จะพูดถึงการเปลี่ยนอีเมล จาก abc@abc.com เป็น 123@abc.com อะไรทำนองนี้กัน

bit.ly/AdminO365TH หน้ารวมบทความแอดมิน

Usecase

  • ต้องการเปลี่ยนชื่ออีเมล เนื่องจากเหตุผลต่างๆ เช่น กำหนดรูปแบบใหม่ หรือ แก้ไขบางคน หรือ ใดๆ ก็ตาม

เช่น จาก noppadol@abc.ac.th อยากเปลี่ยนเป็น รหัสแทนชื่อ เช่น 12345@abc.ac.th หรือ อยากจะเติมรหัสนำหน้าชื่อ เช่น 12345.noppadol@abc.ac.th ก็ทำได้

  • ต้องการเปลี่ยน ชื่อโดเมนข้างหลัง เช่น จาก 12345@student.abc.ac.th เป็น 12345@alumni.abc.ac.th

สรุป Concept

  • เข้า PowerShell แล้ว login ด้วยเมล Admin office 365
  • ใส่รายชื่อ Email ของคนที่จะเปลี่ยน พร้อมชื่ออีเมลใหม่ ลง Csv
  • พิมพ์คำสั่งอัพเดท

Reference

เข้า PowerShell

เริ่มที่เปิด Windows PowerShell แบบ Run as Administrator [ จะมีหน้าต่าง pop up ขึ้นมาให้กด Yes ]

ต้องเปิดแบบ Run as Administrator ด้วยนะครับสำคัญมาก

หน้าตาหน้ากลัวมาก แต่อย่างเพิ่งตกใจนะครับ เราจะค่อยๆไปด้วยกัน

คำสั่ง บรรทัดแรก — ติดตั้ง Module MSOnline

Install-Module MSOnline

(ใครเคยลงแล้ว จากการทำครั้งก่อนๆ ก็ไม่ต้องละ ข้ามไป connect เลย)

Y

Yes ไปเลยฮะ

มันก็จะ Install ตัว MSOnline ให้

ติดตั้งเสร็จแล้วพร้อมใช้งาน

คำสั่งบรรทัดที่สอง — เชื่อมต่อกับ Connect

Connect-MsolService

แล้วมันจะมีหน้า Login ขึ้นมาให้กด

เชื่อมต่อเป็นที่เรียบร้อยแล้ว

เตรียม excel ( CSV )

ไฟล์ CSV ที่ผมใช้ ใส่มา 2 column คือ อันเก่า กับ อันใหม่

ถ้าอยากได้ ข้อมูลเก่า User เอาเป็นไฟล์ตั้งหลัก ให้ไป Export ออกมา

ตอนเซฟก็อย่าลืม เซฟเป็น CSV ส่วนชื่อจะตั้งเป็นอะไรก็ได้

จากนั้นก็ไป Copy file location มาเก็บไว้ก่อน

กด Shift ค้างไว้ที่ไฟล์ แล้วกด Copy as path ได้เลย

เตรียมคำสั่ง

โดยคำสั่งที่ผมใช้คือ

Import-Csv -Path “C:\Users\Microsoft\Downloads\users.csv” | foreach {Set-MsolUserPrincipalName -UserPrincipalName $_.UserPrincipalName -NewUserPrincipalName $_.NewUserPrincipalName }

ก็จะเป็นอันเสร็จเรียบร้อย

ถ้าจะเปลี่ยนโดเมน ข้างหลัง ก็ทำเหมือนกันเลย แต่ต้องมั่นใจว่า เรามีชื่อโดเมนนั้นในระบบนะ

จากตอนแรก

เปลี่ยน เป็นที่เรียบร้อย

อธิบายคำสั่ง

Import-Csv -Path “C:\Users\Microsoft\Downloads\todelete.csv”

คือ เอาไฟล์จากไหน

| foreach {}

เปิดลูป ให้ทำคำสั่งทั้งหมดใน {}

Set-MsolUserPrincipalName

คำสั่งเปลี่ยน Username

-UserPrincipalName $_.UserPrincipalName

จะเปลี่ยนอันไหน

NewUserPrincipalName $_.NewUserPrincipalName

เปลี่ยนเป็นอะไร

--

--

Mos Noppadol Rattanawisadrat
MSEDUTH

A guy who passionate on Technology, Psychology, Science and business thing