เพิ่ม / ลบ / เปลี่ยน License ใน Office 365
บทความนี้จะพูดถึงการ assign license ให้ user สำหรับคนที่ไม่มี license หรือ เราต้องการจะเปลี่ยน license ของเขา
สารบัญ รวมทุกอย่างเกี่ยวกับ Admin
วิธีสำหรับจำนวนคนไม่เยอะ
ให้เราไปที่หน้า 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 ไม่ถูกเพิ่มไลเซน เพราะ ไลเซนเก่า ไม่ถูกต้อง