그룹 관리를 위한 Microsoft Entra 버전 2 cmdlet

이 문서에서는 Microsoft Entra의 일부인 Microsoft Entra ID에서 PowerShell을 사용하여 그룹을 관리하는 방법의 예제를 포함합니다. 또한 Microsoft Graph PowerShell 모듈을 사용하여 설정하는 방법을 설명합니다. 먼저 Microsoft Graph PowerShell 모듈을 다운로드해야 합니다.

Microsoft Graph PowerShell 모듈 설치

MgGroup PowerShell 모듈을 설치하려면 다음 명령을 사용합니다.

    PS C:\Windows\system32> Install-module Microsoft.Graph

모듈을 사용할 수 있는지 확인하려면 다음 명령을 사용합니다.

PS C:\Windows\system32> Get-Module -Name "*graph*"

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     1.27.0                Microsoft.Graph.Authentication      {Add-MgEnvironment, Connect-MgGraph, Disconnect-MgGraph, Get-MgContext…}
Script     1.27.0                Microsoft.Graph.Groups              {Add-MgGroupDriveListContentTypeCopy, Add-MgGroupDriveListContentTypeCopyF…

이제 모듈에서 cmdlet 사용을 시작할 수 있습니다. Microsoft Graph 모듈의 cmdlet에 대한 전체 설명은 Microsoft Graph PowerShell에 대한 온라인 참조 설명서를 참조하세요.

디렉터리에 연결

Microsoft Graph PowerShell cmdlet을 사용하여 그룹 관리를 시작하기 전에 PowerShell 세션을 관리하려는 디렉터리에 연결해야 합니다. 다음 명령을 사용합니다.

    PS C:\Windows\system32> Connect-MgGraph -Scopes "Group.ReadWrite.All"

이 cmdlet은 디렉터리에 액세스하는 데 사용할 자격 증명을 묻습니다. 이 예제에서는 karen@drumkit.onmicrosoft.com을 사용하여 데모 디렉터리에 액세스합니다. 이 cmdlet은 세션이 디렉터리에 정상적으로 연결되었음을 표시하기 위한 확인을 반환합니다.

    Welcome To Microsoft Graph!

이제 MgGraph cmdlet을 사용하여 디렉터리에서 그룹 관리를 시작할 수 있습니다.

그룹 검색

디렉터리에서 기존 그룹을 검색하려면 Get-MgGroups cmdlet을 사용합니다.

디렉터리의 모든 그룹을 검색하려면 매개 변수 없이 다음 cmdlet을 사용합니다.

    PS C:\Windows\system32> Get-MgGroup -All

이 cmdlet은 연결된 디렉터리의 모든 그룹을 반환합니다.

-GroupId 매개 변수를 사용하여 그룹의 objectID를 지정하는 특정 그룹을 검색할 수 있습니다.

    PS C:\Windows\system32> Get-MgGroup -GroupId 5e3eba05-6c2b-4555-9909-c08e997aab18 | fl

이제 이 cmdlet은 해당 objectID가 사용자가 입력한 매개 변수의 값과 일치하는 그룹을 반환합니다.

AcceptedSenders               :
AllowExternalSenders          :
AppRoleAssignments            :
AssignedLabels                :
AssignedLicenses              :
AutoSubscribeNewMembers       :
Calendar                      : Microsoft.Graph.PowerShell.Models.MicrosoftGraphCalendar
CalendarView                  :
Classification                :
Conversations                 :
CreatedDateTime               : 14-07-2023 14:25:49
CreatedOnBehalfOf             : Microsoft.Graph.PowerShell.Models.MicrosoftGraphDirectoryObject
DeletedDateTime               :
Description                   : Sales and Marketing
DisplayName                   : Sales and Marketing
Id                            : f76cbbb8-0581-4e01-a0d4-133d3ce9197f
IsArchived                    :
IsAssignableToRole            :
IsSubscribedByMail            :
LicenseProcessingState        : Microsoft.Graph.PowerShell.Models.MicrosoftGraphLicenseProcessingState
Mail                          : SalesAndMarketing@M365x64647001.onmicrosoft.com
MailEnabled                   : True
MailNickname                  : SalesAndMarketing
RejectedSenders               :
RenewedDateTime               : 14-07-2023 14:25:49
SecurityEnabled               : True

-filter 매개 변수를 사용하여 특정 그룹을 검색할 수 있습니다. 이 매개 변수는 다음 예제와 같이 ODATA 필터 절을 사용하고 필터와 일치하는 모든 그룹을 반환합니다.

    PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"


    DeletionTimeStamp            :
    ObjectId                     : 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df
    ObjectType                   : Group
    Description                  : Intune Administrators
    DirSyncEnabled               :
    DisplayName                  : Intune Administrators
    LastDirSyncTime              :
    Mail                         :
    MailEnabled                  : False
    MailNickName                 : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
    OnPremisesSecurityIdentifier :
    ProvisioningErrors           : {}
    ProxyAddresses               : {}
    SecurityEnabled              : True

참고 항목

MgGroup PowerShell cmdlet에서는 OData 쿼리 표준을 구현합니다. 자세한 내용은 OData 엔드포인트를 사용하는 OData 시스템 쿼리 옵션$filter를 참조하세요.

그룹 만들기

디렉터리에 새 그룹을 만들려면 New-MgGroup cmdlet을 사용합니다. 이 cmdlet을 "Marketing"이라는 새 보안 그룹을 만듭니다.

$param = @{
 description="My Demo Group"
 displayName="DemoGroup"
 mailEnabled=$false
 securityEnabled=$true
 mailNickname="Demo"
}

New-MgGroup @param

그룹 업데이트하기

기존 그룹을 업데이트하려면 Update-MgGroup cmdlet을 사용합니다. 이 예제에서는 그룹 “Intune Administrators”의 DisplayName 속성을 변경합니다. 먼저 Get-MgGroup cmdlet을 사용하여 그룹을 찾고 DisplayName 특성을 사용하여 필터링합니다.

    PS C:\Windows\system32> Get-MgGroup -Filter "DisplayName eq 'Intune Administrators'"


    DeletionTimeStamp            :
    ObjectId                     : 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df
    ObjectType                   : Group
    Description                  : Intune Administrators
    DirSyncEnabled               :
    DisplayName                  : Intune Administrators
    LastDirSyncTime              :
    Mail                         :
    MailEnabled                  : False
    MailNickName                 : 4dd067a0-6515-4f23-968a-cc2ffc2eff5c
    OnPremisesSecurityIdentifier :
    ProvisioningErrors           : {}
    ProxyAddresses               : {}
    SecurityEnabled              : True

다음으로 Description 속성을 새 값인 “Intune 디바이스 관리자”로 변경합니다.

    PS C:\Windows\system32> Update-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b -Description "Demo Group Updated"

이제 해당 그룹을 다시 찾으면 새 값을 반영하도록 Description 속성이 업데이트된 것을 볼 수 있습니다.

    PS C:\Windows\system32> Get-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b | select displayname, description

    DisplayName Description
    ----------- -----------
    DemoGroup   Demo Group Updated

그룹 삭제하기

디렉터리에서 그룹을 삭제하려면 다음과 같이 Remove-MgGroup cmdlet을 사용합니다.

    PS C:\Windows\system32> Remove-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b

그룹 구성원 자격 관리

맴버 추가

그룹에 새 구성원을 추가하려면 Add-MgGroupMember cmdlet을 사용합니다. 이 명령을 수행하면 이전 예제에서 사용한 Intune 관리자 그룹에 구성원이 추가됩니다.

    PS C:\Windows\system32> New-MgGroupMember -GroupId f76cbbb8-0581-4e01-a0d4-133d3ce9197f -DirectoryObjectId a88762b7-ce17-40e9-b417-0add1848eb68

-GroupId 매개 변수는 구성원을 추가하려는 그룹의 ObjectID이며, -DirectoryObjectId는 그룹에 구성원으로 추가하려는 사용자의 ObjectID입니다.

구성원 가져오기

그룹의 기존 구성원을 가져오려면 다음 예제와 같이 Get-MgGroupMember cmdlet을 사용합니다.

    PS C:\Windows\system32> Get-MgGroupMember -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

Id                                   DeletedDateTime
--                                   ---------------
71b3857d-2a23-416d-bd22-a471854ddada
fd2d57c7-22ad-42cd-961a-7340fb2eb6b4

멤버 제거

이전에 추가한 그룹에 구성원을 제거하려면 다음과 같이 Remove-MgGroupMember cmdlet을 사용합니다.

    PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 053a6a7e-4a75-48bc-8324-d70f50ec0d91 -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

구성원 확인

사용자의 그룹 구성원 자격을 확인하려면 Select-MgGroupIdsUserIsMemberOf cmdlet을 사용합니다. 이 cmdlet은 구성원 자격을 확인할 사용자의 ObjectId와 구성원 자격을 확인하려는 그룹의 목록을 해당 매개 변수로 사용합니다. 그룹 목록은 "Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck" 형식의 복잡한 변수 형태로 제공되므로 먼저 해당 형식의 변수를 만들어야 합니다.

Get-MgUserMemberOf -UserId 053a6a7e-4a75-48bc-8324-d70f50ec0d91

Id                                   DisplayName Description GroupTypes AccessType
--                                   ----------- ----------- ---------- ----------
5dc16449-3420-4ad5-9634-49cd04eceba0 demogroup   demogroup    {Unified}

반환되는 값은 이 사용자가 구성원인 그룹의 목록입니다. 또한 Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf 또는 Select-MgGroupIdsServicePrincipalIsMemberOf를 사용하여 지정된 그룹 목록에 대해 연락처, 그룹 또는 서비스 주체 구성원 자격을 확인할 수도 있습니다.

사용자의 그룹 만들기를 사용하지 않도록 설정

관리자가 아닌 사용자가 보안 그룹을 만들지 못하도록 할 수 있습니다. MSODS(Microsoft Online Directory Service)의 기본 동작은 SSGM(셀프 서비스 그룹 관리)도 사용 가능으로 설정되어 있는지에 관계없이 관리자가 아닌 사용자가 그룹을 만들 수 있도록 허용하는 것입니다. SSGM 설정은 내 앱 액세스 패널에서만 동작을 제어합니다.

관리자가 아닌 사용자의 그룹 만들기를 사용하지 않도록 설정하려면

  1. 관리자가 아닌 사용자가 그룹을 만들 수 있는지 확인합니다.

    PS C:\> Get-MgBetaDirectorySetting | select -ExpandProperty values
    
     Name                            Value
     ----                            -----
     NewUnifiedGroupWritebackDefault true
     EnableMIPLabels                 false
     CustomBlockedWordsList
     EnableMSStandardBlockedWords    false
     ClassificationDescriptions
     DefaultClassification
     PrefixSuffixNamingRequirement
     AllowGuestsToBeGroupOwner       false
     AllowGuestsToAccessGroups       true
     GuestUsageGuidelinesUrl
     GroupCreationAllowedGroupId
     AllowToAddGuests                true
     UsageGuidelinesUrl
     ClassificationList
     EnableGroupCreation             true
    
  2. EnableGroupCreation : True가 반환되면 관리자가 아닌 사용자가 그룹을 만들 수 있는 것입니다. 이 기능을 사용하지 않도록 설정하려면

     Install-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
     Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
     $params = @{
     TemplateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
     Values = @(		
     	@{
     		Name = "EnableGroupCreation"
     		Value = "false"
     	}		
     )
     }
     Connect-MgGraph -Scopes "Directory.ReadWrite.All"
     New-MgBetaDirectorySetting -BodyParameter $params
    
    

그룹 소유자 관리

그룹에 소유자를 추가하려면 New-MgGroupOwner cmdlet을 사용합니다.

    PS C:\Windows\system32> New-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867

-GroupId 매개 변수는 소유자를 추가하려는 그룹의 ObjectID이며, -DirectoryObjectId는 소유자로 추가하려는 사용자 또는 서비스 주체의 ObjectID입니다.

그룹의 소유자를 검색하려면 Get-MgGroupOwner cmdlet을 사용합니다.

    PS C:\Windows\system32> Get-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497

이 cmdlet은 지정된 그룹에 대한 소유자(사용자 및 서비스 주체) 목록을 반환합니다.

    Id                                       DeletedDateTime
    --                                       ---------------
    8ee754e0-743e-4231-ace4-c28d20cf2841
    85b1df54-e5c0-4cfd-a20b-8bc1a2ca7865
    4451b332-2294-4dcf-a214-6cc805016c50

그룹에서 소유자를 제거하려면 Remove-MgGroupOwnerByRef cmdlet을 사용합니다.

    PS C:\Windows\system32> Remove-MgGroupOwnerByRef -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867

예약된 별칭

그룹을 만들 때 특정 엔드포인트는 최종 사용자가 mailNickname 또는 별칭이 그룹의 전자 메일 주소의 일부로 사용되도록 지정할 수 있게 합니다. 다음과 같은 높은 권한이 있는 전자 메일 별칭이 있는 그룹은 Microsoft Entra 전역 관리자만 만들 수 있습니다. 

  • abuse
  • 관리자
  • administrator
  • hostmaster
  • majordomo
  • postmaster
  • root
  • secure
  • security
  • ssl-admin
  • webmaster

온-프레미스로의 그룹 쓰기 저장(미리 보기)

오늘날 대부분의 그룹은 온-프레미스 Active Directory에서 여전히 관리됩니다. 클라우드 그룹을 온-프레미스로 다시 동기화하라는 요청에 응답하기 위해 Microsoft Entra ID에 대한 Microsoft 365 그룹 쓰기 저장 기능을 미리 볼 수 있습니다.

Microsoft 365 그룹은 클라우드에서 만들어지고 관리됩니다. 쓰기 저장 기능을 사용하면 Exchange가 설치된 Active Directory 포리스트에 Microsoft 365 그룹을 메일 그룹으로 쓰기 저장할 수 있습니다. 그러면 온-프레미스 Exchange 사서함이 있는 사용자가 이러한 그룹에서 메일을 보내고 받을 수 있습니다. 그룹 쓰기 저장 기능은 Microsoft Entra 보안 그룹 또는 배포 그룹을 지원하지 않습니다.

자세한 내용은 Microsoft Entra Connect 동기화 서비스에 대한 설명서를 참조하세요.

Microsoft 365 그룹 쓰기 저장은 Microsoft Entra ID의 공개 미리 보기 기능이며 유료 Microsoft Entra ID 라이선스 플랜에서 사용할 수 있습니다. 미리 보기에 관한 자세한 내용은 온라인 서비스에 대한 유니버설 사용 조건을 참조하세요.

다음 단계

Microsoft Entra Cmdlet에서 더 많은 Azure Active Directory PowerShell 설명서를 찾을 수 있습니다.