การเปลี่ยนชื่อ Email Office 365 จำนวนมาก ด้วย PowerShell
บทความนี้จะพูดถึงการเปลี่ยนอีเมล จาก 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
- พิมพ์คำสั่งอัพเดท
เข้า 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
เปลี่ยนเป็นอะไร