그룹 관리를 위한 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
그룹 구성원 자격 관리
맴버 추가
그룹에 새 멤버를 추가하려면 New-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
-- ---------------
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 Service)의 기본 동작은 SSGM(셀프 서비스 그룹 관리)도 사용 가능으로 설정되어 있는지에 관계없이 관리자가 아닌 사용자가 그룹을 만들 수 있도록 허용하는 것입니다. SSGM 설정은 내 그룹 포털에서만 동작을 제어합니다.
관리자가 아닌 사용자의 그룹 만들기를 사용하지 않도록 설정하려면
관리자가 아닌 사용자가 그룹을 만들 수 있는지 확인합니다.
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
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 Cmdlet에서 더 많은 Azure Active Directory PowerShell 설명서를 찾을 수 있습니다.