Sion
Sion
M365 운영 업무를 담당하고 있습니다. 배우고 경험한 것들을 조금씩 기록해나갑니다.

[Office] M365 라이선스 및 앱 일괄 할당/회수

[Office] M365 라이선스 및 앱 일괄 할당/회수

본 포스팅에서는, 여러 사용자의 M365 라이선스 및 앱을 일괄적으로 할당하거나 회수하는 방법에 대해 소개하도록 하겠습니다.
상세 내용은 다음 MS 문서를 참고해주세요.

관리센터

“Microsoft 365 관리센터” 를 통해, 수기로 라이선스 및 앱의 할당/회수가 가능합니다.
([사용자] > [활성 사용자] > 사용자 검색 > [라이선스 및 앱])

다만 일일히 사용자를 검색하고 바꿔주어야 하기 때문에, 꽤나 번거로운 작업이며 시간이 많이 소요됩니다.

Powershell

Powershell 명령어를 통해 일괄적으로 작업이 가능합니다.

1
2
3
4
5
Connect-Graph -Scopes User.ReadWrite.All, Organization.Read.All

# 사용자 리스트(UPN)
$user = @(
)

MgGraph 모듈에 연결한 후, 사용자 리스트를 배열에 저장합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 특정 사용자에게 할당된 라이선스 리스트 확인
$lic = Get-MgUserLicenseDetail -UserId "leesion@lotte.net"

# 특정 라이선스 안에 포함된 앱 리스트 확인
$app = Get-MgSubscribedSku -All | Where SkuPartNumber -eq 'ENTERPRISEPACK' | Select -ExpandProperty ServicePlans

# 추가할 라이선스 리스트
$addLicenses = @(
    @{
        #SkuID = $lic.SkuID
        #DisabledPlans = $app.ServicePlanID
        
        SkuId = "6fd2c87f-b296-42f0-b197-1e91e994b900"
        DisabledPlans = @(
        "a82fbf69-b4d7-49f4-83a6-915b2cf354f4",
        "b76fb638-6ba6-402a-b9f9-83d28acb3d86"
        )
    }
)

추가/삭제할 라이선스 및 앱 리스트 정보를 가져옵니다.
본 가이드에서는, ENTERPRISEPACK(Office 365 E3)에서 일부 앱(Viva)을 제외한 나머지 앱을 할당하는 것을 예시로 작성하였습니다.

명령어를 통해 라이선스 및 앱 정보를 가져온 뒤,
라이선스의 SkuID와 앱의 ServicePlanID 값을 가져와 $addLicenses 해시 테이블 리스트에 넣어주면 됩니다.

1
2
3
foreach($u in $user) {
    Set-MgUserLicense -UserId $u -AddLicenses $addLicenses -RemoveLicenses @()
}

Set-MgUserLicense 명령어로 라이선스를 일괄적으로 할당합니다.
일괄적으로 회수하려면, RemoveLicenses 옵션에 인자를 주면 됩니다.