Microsoft 365 / PowerShell / Microsoft Graph

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

 

같은 카테고리의 다른 글
아웃룩 / 할 일을 Microsoft To-Do와 동기화하는 방법

아웃룩 / 할 일을 Microsoft To-Do와 동기화하는 방법

캘린더 소프트웨어는 저와 잘 맞지 않아요. 주로 사용하는 것은 할 일 관리 소프트웨어에요. 대충의 일정만 정해두고, 하나씩 체크해나가는 거죠. 할 일 관리를 구글 캘린더에서 했는데, 불편한 게 있어요. 모바일과 동기화해서 쓰는 게 좀 불편해요. 구글 캘린더 앱 자체에서는 할 일을 관리할 수 없어서 이런저런 꼼수를 써야 해요. 그래서 모바일과 PC에서 동시에 ...

엑셀 / 특정 문자 앞, 특정 문자 뒤 텍스트 추출하는 방법

엑셀 / 특정 문자 앞, 특정 문자 뒤 텍스트 추출하는 방법

특정 문자 앞 텍스트 추출하는 방법 LEFT는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 문자 수만큼 문자를 반환하는 함수이다. FIND는 특정 문자의 시작 위치를 반환하는 함수이다. 이 두 함수를 이용하면 특정 문자의 앞의 텍스트를 추출할 수 있다. 예를 들어 B2 셀에 있는 abc@manualfactory.net에서 @ 앞 부분을 추출하고 싶다면 다음과 같이 한다. =LEFT(B2,FIND("@",B2)-1) FIND("@",B2)는 4를 반환하므로 1을 ...

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

개요 RANK, RANK.EQ, RANK.AVG는 순위를 구하는 함수이다. RANK는 EXCEL 2007 이전 버전을 위한 함수이고, RANK.EQ와 RANK.AVG는 최신 버전을 위한 함수이다. RANK.EQ와 RANK.AVG는 같은 순위를 어떻게 처리하는지가 다르다. 구문 RANK(number,ref,) RANK.EQ(number,ref,) RANK.AVG(number,ref,) number : 필수 요소로, 순위를 구하려는 수 ref : 필수 요소로, 순위의 기준이 되는 수의 집합. 수 이외의 값은 무시된다. order : 선택 요소로, 입력하지 않거나 0으로 정하면 큰 수가 ...

Microsoft 365 / Loop / 소개

Microsoft 365 / Loop / 소개

Microsoft 365 Loop는 현대의 작업 환경에서 팀 협업을 극대화하기 위해 설계된 새로운 협업 플랫폼입니다. Loop는 동적인 콘텐츠와 실시간 협업 기능을 제공하여 팀원들이 프로젝트와 아이디어를 효과적으로 공유하고 관리할 수 있도록 도와줍니다. 아래는 Microsoft 365 Loop의 주요 기능과 장점입니다. 주요 기능 Loop 구성 요소 Loop 구성 요소는 실시간으로 업데이트되는 모듈식 콘텐츠 블록으로, 문서, 회의 노트, ...

엑셀 / 함수 / ISBLANK / 빈 셀인지 확인하는 함수

엑셀 / 함수 / ISBLANK / 빈 셀인지 확인하는 함수

개요 ISBLANK는 셀이 비어있는지 확인하는 함수입니다. 셀이 비어있다면 TRUE, 셀이 비어있지 않다면 FALSE를 반환합니다. 예제 1 예를 들어 ISBLANK(A2) 는 A2 셀이 비어있다면 TRUE, 비어있지 않다면 FALSE를 반환합니다. IF 함수와 결합하여 비어있을 때와 비었지 않을 때 서로 다른 작업을 할 수 있습니다. 예를 들어 IF(ISBLANK(A2),"B","NB") 는 A2 셀이 비어있다면 B를, 비어있지 않다면 NB를 출력합니다. 예제 2 수량과 단가를 곱하여 금액을 ...

Microsoft 365 / Exchanage 관리 센터 / 메모

메일 흐름 / 메시지 추적 조직 또는 특정 사용자의 메일 수발신 내역을 볼 수 있습니다. 사용자가 메일을 보내고, 보낸 편지함에서 삭제하고 지운 편지함에서 지워도, 메시지 추적에서 보냈다는 것을 알 수 있습니다.    

엑셀 / VBA / 매크로 만들고 실행하기

엑셀 / VBA / 매크로 만들고 실행하기

간단한 예제로, VBA로 매크로를 만들고 실행하는 과정을 살펴보겠습니다.(개발 도구 메뉴가 없는 경우 옵션 변경으로 추가할 수 있습니다.) 을 클릭합니다.(단축키는 Alt+F11입니다.) 다음과 같은 에디터 창이 나오는데... 을 클릭합니다. 코드를 넣을 수 있는 창이 나오는데... 다음 코드를 입력합니다. Sub SayHello() Sheet1.Range("A1").Value = "HELLO" End ...

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

개요 TEXTJOIN은 여러 문자열을 합하여 하나의 문자열로 만드는 함수입니다. CONCAT과 비슷하나, 구분 기호와 빈 셀 처리에 대한 설정이 가능합니다. 구문 TEXTJOIN(delimiter, ignore_empty, text1, , …) delimiter : 문자열 사이에 들어갈 구분 기호입니다. ignore_empty : 빈 셀을 무시할지 정합니다. TRUE면 무시하고, FALSE면 무시하지 않습니다. text1 : 연결할 텍스트 항목입니다. text2 : 연결할 추가 텍스트 항목입니다. 예제 예제 1 구분 기호 없이, 빈 ...

워드 / 서식만 복사해서 붙여넣기

워드 / 서식만 복사해서 붙여넣기

서식은 스타일로 만드는 것이 좋습니다. 그래야 적용하기도 편하고 수정하기도 편합니다. 하지만 짧고 간단한 문서라면 스타일을 사용하는 것보다 개별적으로 모양을 만드는 것이 편할 수 있습니다. 그렇게 만든 어떤 문단의 모양을 다른 문단에 적용시키려면 어떻게 할까요? 워드에는 서식만 복사해서 붙여넣는 기능이 있어서 쉽게 처리할 수 있습니다. 서식만 복사해서 붙여넣기 복사하려는 서식이 있는 곳에 커서를 위치시키고 마우스 ...

아웃룩 / 받은 편지함 중요 기타 필터 해제하는 방법

아웃룩 / 받은 편지함 중요 기타 필터 해제하는 방법

아웃룩에서 수신한 메일은 받은 편지함에 모입니다. 규칙을 정해서 특정 폴더로 이동하도록 하지 않으면 받은 편지함에 쌓이죠. 받은 편지함에 있는 메일을 보여주는 형식은 두 가지가 있는데, 하나는 모든 메일을 보여주는 것이고, 다른 하나는 중요와 기타로 나누어서 보여주는 것입니다. 아웃룩을 설치했을 때 기본 설정이 중요와 기타로 구분해서 보여주는 것이라면, 보여야 할 메일이 보이지 않아서 ...