เพิ่ม / ลบ / เปลี่ยน License ใน Office 365

Mos Noppadol Rattanawisadrat
MSEDUTH
Published in
4 min readJul 8, 2021

บทความนี้จะพูดถึงการ assign license ให้ user สำหรับคนที่ไม่มี license หรือ เราต้องการจะเปลี่ยน license ของเขา

สารบัญ รวมทุกอย่างเกี่ยวกับ Admin

Bit.ly/AdminO365TH

วิธีสำหรับจำนวนคนไม่เยอะ

ให้เราไปที่หน้า Active User จากนั้น ติ๊กเลือกคนที่ต้องการจะเปลี่ยน จากนั้นกดเลือก Manage product licenses

จากนั้นระบบ จะให้เลือกว่า จะ แทนที่/เพิ่ม/เอาไลเซนออกให้หมด

ข้อจำกัด : ทำได้ครั้งละ 40 คน

วิธีสำหรับคนจำนวนมาก

สรุป Concept

  • เชื่อมต่อ PowerShell
  • เลือก License ว่าเราจะเอาอันไหนใส่ให้ใคร
  • เตรียม Excel
  • รันคำสั่ง PowerShell

เตรียม 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 ขึ้นมาให้กด

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

คำสั่งบรรทัดที่สาม — เช็คว่าเรามี License อะไรบ้าง

Get-MsolAccountSku

จะขึ้นมาว่า เรามี License อะไรบ้าง

จากรูป จะบอกว่าเรามีไลเซนอะไรบ้าง ก๊อบทิ้งไว้ เตรียมเอาไว้ใส่ใน Excel ว่า ใครได้ ไลเซนไหน

opsmoe:STANDARDWOFFPACK_FACULTY

opsmoe:STANDARDWOFFPACK_STUDENT

เลขตัวหน้าคือ ชื่อโรงเรียนเรา : ชื่อไลเซน

เวลาก๊อบไปใส่ Excel ให้ก๊อบ ตาม ที่เขียน 2 บรรทัดบนก่อนหน้าเลย

พักหน้านี้เอาไว้ก่อน เราไปเปิด Excel ดูรายชื่อกันก่อน

เตรียม Excel

ทีนี้ พอ User เยอะมากๆ เราคงไม่พิมพ์ email ของพวกเขาเอง คำแนะนำคือ ให้ไป export ออกจากระบบมาเป็น CSV(Excel) แล้ว filter คนที่เราต้องการ แล้วค่อยก๊อบ ไปใส่ File ใหม่ดีกว่า

เราก็ใช้ Filter ตามเกณที่เราเลือกเลย

Case 1 : เพิ่ม License ให้เขา

*ระวังเรื่อง License ทับกันเอง เช่น ถ้ามี Office 365 A1 อยู่ แล้วจะเติม M365 A3 ระบบจะไม่ยอมให้เพิ่ม ต้องใช้ ลบก่อนแล้วเพิ่ม ซึ่งก็คือ เคส 3

ผมได้ทำการ สร้างข้อมูลตัวอย่างเอาไว้ 2 Column

หากต้องการจะก๊อบ Code ไป ต้องตั้งหัวคอลัมเหมือนกันด้วยนะ

Import-Csv -Path “File import location” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -AddLicenses $_.License}

สิ่งที่ต้องแก้
“File import location” → ให้กด shift + คลิกขวา copy file path มาวางทับ

อันนี้คือที่ผมใช้จริง

อย่าลืมเซฟเป็น CSV file ด้วย

Import-Csv -Path “C:\Users\Microsoft\Downloads\User.csv” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -AddLicenses $_.License}

ผลลัพธ์

Case 2 : ลบ License

Import-Csv -Path “File import location” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -RemoveLicenses $_.License}

สิ่งที่ต้องแก้
“File import location” → ให้กด shift + คลิกขวา copy file path มาวางทับ

อันนี้คือที่ผมใช้จริง

Import-Csv -Path “C:\Users\Microsoft\Downloads\User.csv” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -RemoveLicenses $_.License}

ผลลัพธ์

Case 3 : ถ้าจะ Replace

ระบบ ไม่ได้มีคำสั่ง replace มาให้ จะใช้วิธี ลบครั้งนึง แล้วค่อยเพิ่ม อีกครั้งนึง จะทำด้วย 2 เคสแรก หรือ จะทำรวมก็ได้ แต่แบบเคส ทีละครั้ง ผิดพลาดน้อยกว่า

โดยรอบนี้เราต้องใช้ทั้งหมด 3 columns

คือ User, License, NewLicense

แล้วจะรู้ได้ไง ว่าไลเซน ปัจจุบันคืออะไร ?

จริงๆ มันใช้พวก script ได้ แต่ว่าจะซับซ้อนเกินไป ผม แนะนำว่า ตอน Export user ออกมา มันมีบอกอยู่แล้ว ว่าใครใช้อะไร จากนั้นเรากด Sort แล้ว ค่อยๆ เปลี่ยนเป็น format script ดีกว่า

Import-Csv -Path “File import location” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -RemoveLicenses $_.License -AddLicenses $_.NewLicense}

สิ่งที่ต้องแก้
“File import location” → ให้กด shift + คลิกขวา copy file path มาวางทับ

อันที่ผมใช้

Import-Csv -Path “C:\Users\Microsoft\Downloads\User.csv” | foreach {Set-MsolUserLicense -UserPrincipalName $_.User -RemoveLicenses $_.License -AddLicenses $_.NewLicense}

ผลลัพธ์

ลองเคส แบบผิดๆ ดูบ้าง

จากตัวอย่าง ผมตั้งใจ ทำผิดไว้ 2 จุด คือ

  • Allan ใน excel ผมเว้น New License ว่างๆเอาไว้
  • Brock เริ่มต้นด้วยไม่มี ไลเซน แต่ ใส่ใน Excel ว่ามี license

ผลที่เกิด

  • allan ไม่ถูกลบไลเซน เพราะ ไม่มีปลายทางให้เปลี่ยน
  • Brock ไม่ถูกเพิ่มไลเซน เพราะ ไลเซนเก่า ไม่ถูกต้อง

References

--

--

Mos Noppadol Rattanawisadrat
MSEDUTH

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