Microsoft 365 / PowerShell / Microsoft Graph
Created 2024-06-27
Last Modified 2024-10-20
Microsoft Graph PowerShell은 관리자와 개발자가 Microsoft Graph API를 PowerShell cmdlet을 사용하여 상호 작용할 수 있게 해주는 모듈입니다. 이 모듈은 Azure Active Directory(Azure AD), SharePoint, Teams 등과 같은 Microsoft 365 서비스와 관련된 자동화 작업을 간소화합니다.
차례
실행 정책 확인
- 현재 실행 정책을 확인합니다.
Get-ExecutionPolicy
- 만약 Restricted라고 나오면 아래와 같이 명령하여 RemoteSigned로 바꿉니다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
모듈 설치 및 연결
모듈 설치
- Microsoft Graph 모듈을 설치합니다.
Install-Module Microsoft.Graph -Scope CurrentUser
연결
- Microsoft Graph에 연결합니다. 아무런 옵션이 없으면 권한은 User.Read입니다.
Connect-MgGraph
- 작업에 필요한 적절한 권한을 부여할 수 있습니다. 다음과 같이 하면 모든 사용자의 프로필 정보를 읽고 모든 그룹을 읽고 업데이트할 수 있는 권한을 부여합니다.
Connect-MgGraph -Scopes "User.Read.All", "Group.ReadWrite.All"
- 자주 사용되는 권한은 다음과 같습니다.
사용자 관련 권한
User.Read : 사용자가 로그인한 사용자에 대한 기본 프로필 정보를 읽습니다.
User.ReadBasic.All : 모든 사용자의 기본 프로필 정보를 읽습니다.
User.Read.All : 모든 사용자의 전체 프로필 정보를 읽습니다.
User.ReadWrite : 로그인한 사용자의 프로필을 읽고 업데이트합니다.
User.ReadWrite.All : 모든 사용자의 프로필을 읽고 업데이트합니다.
그룹 관련 권한
Group.Read.All : 모든 그룹의 기본 정보(예: 이름, 설명)를 읽습니다.
Group.ReadWrite.All : 모든 그룹의 기본 정보를 읽고 업데이트합니다.
GroupMember.Read.All : 모든 그룹의 멤버 정보를 읽습니다.
GroupMember.ReadWrite.All : 모든 그룹의 멤버 정보를 읽고 업데이트합니다. - 전체 권한 목록은 다음 링크에 있습니다.
https://learn.microsoft.com/ko-kr/graph/permissions-reference
연결 끊기
- 연결을 끊고 싶다면 다음과 같이 명령합니다.
Disconnect-MgGraph
사용자 관리
사용자 조회
- 모든 사용자의 DisplayName, Id, Mail, UserPrincipalName을 출력합니다.
Get-MgUser -All
- 사용자 abc@manualfactory.net의 모든 속성을 출력합니다.
Get-MgUser -UserId abc@manualfactory.net | Select *
사용자 생성
- 성 : 가
이름 : 가나
표시 이름 : 가 가나
사용자 이름 : gnga@manualfactory.net
비밀번호 : xxxxxxxx
$PasswordProfile = @{ Password = 'xxxxxxxx' } New-MgUser -Surname '가' -GivenName '가나' -DisplayName '가 가나' -UserPrincipalName 'gnga@manualfactory.net' -MailNickName 'gnga' -PasswordProfile $PasswordProfile -AccountEnabled
사용자 삭제
라이선스 관리
- 보유한 라이선스를 출력합니다.
Get-MgSubscribedSku -All | Select *
- 특정 사용자에게 할당된 라이선스를 출력합니다.
Get-MgUserLicenseDetail -UserId abc@manualfactory.net
- 특정 사용자에게서 라이선스를 제거합니다. SkuId는 라이선스 정보에서 확인합니다.
Set-MgUserLicense -UserId abc@manualfactory.net -RemoveLicenses @{ SkuId = "xxxx" }
기타
Get-MgUser 에러
Get-MgUser 명령 시 다음과 같은 에러가 뜬다면
Get-MgUser : 'Get-MgUser' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다.
Microsoft.Graph.Users를 설치합니다.
Install-Module Microsoft.Graph.Users -Scope CurrentUser