Share via


그룹 관리를 위한 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                     : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    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를 참조하세요.

여기에 만료 정책이 적용되지 않은 모든 그룹을 끌어오는 방법을 보여 주는 예제가 있습니다.

Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id

이 예제는 이전 예제와 동일하지만 스크립트는 결과를 CSV로 내보냅니다.

Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id |Export-Csv -Path {path} -NoTypeInformation

이 마지막 예제에서는 Teams에 속한 그룹만 검색하는 방법을 보여줍니다.

Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z) and resourceProvisioningOptions/any(p:p eq 'Team')" | Format-List Id, expirationDateTime, resourceProvisioningOptions

그룹 만들기

디렉터리에 새 그룹을 만들려면 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                     : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    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에서 여전히 관리됩니다. 클라우드 그룹을 온-프레미스로 다시 동기화하는 요청에 응답하려면 이제 그룹에 대한 Active Directory 기능에 대한 프로비저닝을 사용할 수 있습니다.

Important

Microsoft Entra 커넥트 Sync의 그룹 쓰기 저장 v2 공개 미리 보기는 2024년 6월 30일 이후에 더 이상 사용할 수 없습니다. 이 기능은 이 날짜에 중단되며 커넥트 Sync에서 더 이상 지원되지 않아 클라우드 보안 그룹을 Active Directory에 프로비전할 수 없습니다.

Microsoft Entra Cloud Sync에서는 Active Directory에 클라우드 보안 그룹을 프로비전하는 데 쓰기 저장 v2 대신 사용할 수 있는 Active Directory에 대한 그룹 프로비저닝이라는 유사한 기능을 제공합니다. 클라우드 동기화에서 개발 중인 다른 새로운 기능과 함께 클라우드 동기화에서 이 기능을 향상시키기 위해 노력하고 있습니다.

커넥트 Sync에서 이 미리 보기 기능을 사용하는 고객은 구성을 커넥트 Sync에서 클라우드 동기화로 전환해야 합니다. 모든 하이브리드 동기화를 클라우드 동기화로 이동하도록 선택할 수 있습니다(요구 사항을 지원하는 경우). 클라우드 동기화를 나란히 실행하고 클라우드 보안 그룹 프로비저닝만 Active Directory로 클라우드 동기화로 이동할 수도 있습니다.

Microsoft 365 그룹을 Active Directory에 프로비전하는 고객의 경우 이 기능에 대해 그룹 쓰기 저장 v1을 계속 사용할 수 있습니다.

사용자 동기화 마법사를 사용하여 클라우드 동기화로만 이동하는 것을 평가할 수 있습니다.

다음 단계

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