다음을 통해 공유


그룹 관리를 위한 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 관리자" 그룹의 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

그룹 구성원 자격 관리

맴버 추가

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

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

-GroupId 매개 변수는 ObjectID 그룹입니다. 사용 중인 그룹의 ObjectID를 지정해야 합니다. -DirectoryObjectId 그룹 멤버로 추가하려는 사용자의 ObjectID입니다.

구성원 가져오기

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

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

Id                                   DeletedDateTime
--                                   ---------------
aaaaaaaa-bbbb-cccc-1111-222222222222
bbbbbbbb-cccc-dddd-2222-333333333333

멤버 제거

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

    PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4

구성원 확인

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

Get-MgUserMemberOf -UserId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee

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

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

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

표준 사용자가 보안 그룹을 만들지 못하도록 방지할 수 있습니다. MSODS(Microsoft Online Directory Services)의 기본 동작은 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 클라우드 동기화를 사용하는 Microsoft Entra ID에 대한 그룹 쓰기 저장 기능을 사용할 수 있습니다.

Important

Microsoft Entra Connect 동기화의 그룹 쓰기 저장 v2 공개 미리 보기는 2024년 6월 30일 이후 더 이상 사용할 수 없습니다. 이 기능은 이 날짜에 중단되며, Connect 동기화에서 Active Directory에 클라우드 보안 그룹을 프로비전하는 기능이 더 이상 지원되지 않습니다. 이 기능은 중단 날짜 이후에도 계속 작동됩니다. 그러나 이 날짜 이후에는 더 이상 지원을 받을 수 없으며 언제든지 통지 없이 작동이 중단될 수 있습니다.

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

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

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

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

다음 단계

Microsoft Entra Cmdlets에서 Microsoft Entra ID PowerShell 설명서를 더 많이 찾을 수 있습니다.