Cmdlet di Microsoft Entra versione 2 per la gestione dei gruppi

Questo articolo contiene esempi di come usare PowerShell per gestire i gruppi in Microsoft Entra ID, parte di Microsoft Entra. Descrive anche come configurare il modulo PowerShell di Microsoft Graph. Prima di tutto, è necessario scaricare il modulo di Microsoft Graph PowerShell.

Installare il modulo Di PowerShell di Microsoft Graph

Per installare il modulo PowerShell MgGroup, usare i comandi seguenti:

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

Per verificare che il modulo sia pronto per l'uso, usare il comando seguente:

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…

A questo punto è possibile iniziare a usare i cmdlet nel modulo. Per una descrizione completa dei cmdlet nel modulo Microsoft Graph, vedere la documentazione di riferimento online per Microsoft Graph PowerShell.

Connettersi alla directory

Prima di iniziare a gestire i gruppi usando i cmdlet di PowerShell di Microsoft Graph, è necessario connettere la sessione di PowerShell alla directory che si vuole gestire. Utilizza il seguente comando:

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

Il cmdlet richiede le credenziali da usare per accedere alla directory. In questo esempio viene usato karen@drumkit.onmicrosoft.com per accedere alla directory dimostrativa. Il cmdlet restituisce un messaggio di conferma per indicare che la sessione è stata connessa correttamente alla directory:

    Welcome To Microsoft Graph!

È ora possibile iniziare a usare i cmdlet MgGraph per gestire i gruppi nella directory.

Recuperare gruppi

Per recuperare i gruppi esistenti dalla directory, usare il cmdlet Get-MgGroups.

Per recuperare tutti i gruppi nella directory, usare il cmdlet senza parametri:

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

Il cmdlet restituisce tutti i gruppi nella directory connessa.

È possibile usare il parametro -GroupId per recuperare un gruppo specifico per il quale si specifica l'OBJECTID del gruppo:

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

Il cmdlet restituisce ora il gruppo il cui objectID corrisponde al valore del parametro immesso:

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

È possibile cercare un gruppo specifico usando il parametro -filter. Questo parametro accetta una clausola di filtro ODATA e restituisce tutti i gruppi che corrispondono al filtro, come nell'esempio seguente:

    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

Nota

I cmdlet di PowerShell mgGroup implementano lo standard di query OData. Per altre informazioni, vedere $filter in Opzioni query di sistema OData usando l'endpoint OData.

Di seguito è riportato un esempio che illustra come eseguire il pull di tutti i gruppi che non hanno un criterio di scadenza applicato

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

Questo esempio equivale a quello precedente, ma lo script esporta anche i risultati in 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

Questo ultimo esempio illustra come recuperare solo i gruppi che appartengono a 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

Crea gruppi

Per creare un nuovo gruppo nella directory, usare il cmdlet New-MgGroup. Questo cmdlet crea un nuovo gruppo di sicurezza denominato "Marketing":

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

New-MgGroup @param

Aggiornare gruppi

Per aggiornare un gruppo esistente, usare il cmdlet Update-MgGroup. In questo esempio stiamo cambiando la proprietà DisplayName del gruppo "Amministratori di Intune". Prima di tutto, si trova il gruppo usando il cmdlet Get-MgGroup e si filtra usando l'attributo 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

Quindi si cambia la proprietà Description nel nuovo valore "Amministratori di dispositivi Intune":

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

Ora, se si trova di nuovo il gruppo, si noterà che la proprietà Description viene aggiornata per riflettere il nuovo valore:

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

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

Eliminare gruppi

Per eliminare i gruppi dalla directory, usare il cmdlet Remove-MgGroup come indicato di seguito:

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

Gestire l'appartenenza a gruppi

Aggiungere membri

Per aggiungere nuovi membri a un gruppo, usare il cmdlet New-MgGroupMember. Questo comando aggiunge un membro al gruppo degli amministratori di Intune che abbiamo usato nell'esempio precedente:

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

Il parametro -GroupId è l'ObjectID del gruppo a cui si vuole aggiungere un membro e -DirectoryObjectId è l'ObjectID dell'utente che si vuole aggiungere come membro al gruppo.

Ottenere membri

Per ottenere i membri esistenti di un gruppo, usare il cmdlet Get-MgGroupMember, come in questo esempio:

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

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

Rimuovere membri

Per rimuovere il membro aggiunto in precedenza al gruppo, usare il cmdlet Remove-MgGroupMember, come illustrato di seguito:

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

Verificare membri

Per verificare le appartenenze ai gruppi di un utente, usare il cmdlet Select-MgGroupIdsUserIsMemberOf. Questo cmdlet accetta come parametri il valore ObjectId dell'utente di cui controllare l'appartenenza al gruppo e l'elenco dei gruppi da controllare. L'elenco dei gruppi deve essere fornito sotto forma di variabile complessa di tipo "Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck", pertanto è necessario innanzitutto creare una variabile con tale tipo:

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

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

Il valore restituito è un elenco dei gruppi di cui l'utente è membro. È anche possibile applicare questo metodo per controllare l'appartenenza a Contatti, Gruppi o entità servizio per un determinato elenco di gruppi, usando Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf o Select-MgGroupIdsServicePrincipalIsMemberOf

Disabilitare la creazione di gruppi da parte degli utenti

È possibile impedire agli utenti non amministratori la creazione di gruppi di sicurezza. Il comportamento predefinito in Microsoft Online Directory Services (MSODS) consente agli utenti non amministratori di creare gruppi, indipendentemente dal fatto che la gestione gruppi self-service sia abilitata o meno. L'impostazione SSGM controlla il comportamento solo nel portale Gruppi personali.

Per disabilitare la creazione di gruppi da parte degli utenti non amministratori:

  1. Verificare che gli utenti non amministratori siano autorizzati a creare gruppi:

    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. Se restituisce EnableGroupCreation : True, gli utenti non amministratori possono creare gruppi. Per disabilitare questa funzionalità:

     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
    
    

Gestire i proprietari di gruppi

Per aggiungere proprietari a un gruppo, usare il cmdlet New-MgGroupOwner:

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

Il parametro -GroupId è l'ObjectID del gruppo a cui si vuole aggiungere un proprietario e -DirectoryObjectId è l'ObjectID dell'utente o dell'entità servizio da aggiungere come proprietario.

Per recuperare i proprietari di un gruppo, usare il cmdlet Get-MgGroupOwner:

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

Il cmdlet restituisce l'elenco dei proprietari (utenti e entità servizio) per il gruppo specificato:

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

Per rimuovere un proprietario da un gruppo, usare il cmdlet Remove-MgGroupOwnerByRef:

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

Alias riservati

Quando viene creato un gruppo, alcuni endpoint consentono all'utente finale di specificare un attributo mailNickname o un alias da usare come parte dell'indirizzo e-mail del gruppo. I gruppi con gli alias di posta elettronica con privilegi elevati seguenti possono essere creati solo da un amministratore globale di Microsoft Entra. 

  • abuse
  • amministratore
  • amministratore
  • hostmaster
  • majordomo
  • postmaster
  • root
  • secure
  • security
  • ssl-admin
  • webmaster

Writeback del gruppo in locale

Attualmente, molti gruppi sono ancora gestiti in Active Directory locale. Per rispondere alle richieste di sincronizzazione dei gruppi cloud in locale, è ora disponibile la funzionalità di writeback dei gruppi per Microsoft Entra ID tramite la sincronizzazione cloud Di Microsoft Entra.

Importante

L'anteprima pubblica del writeback dei gruppi v2 in Microsoft Entra Connect Sync non sarà più disponibile dopo il 30 giugno 2024. Questa funzionalità verrà sospesa in tale data e non sarà più supportata in Connect Sync per effettuare il provisioning dei gruppi di sicurezza cloud in Active Directory. La funzionalità continuerà a essere utilizzabile oltre la data di interruzione; tuttavia, dopo tale data non riceverà più supporto e potrebbe smettere di funzionare in qualsiasi momento senza preavviso.

È disponibile una funzionalità simile in Microsoft Entra Cloud Sync denominata Provisioning dei gruppi in Active Directory che è possibile usare al posto del writeback dei gruppi v2 per il provisioning di gruppi di sicurezza cloud in Active Directory. Microsoft sta lavorando per migliorare questa funzionalità in Cloud Sync insieme ad altre nuove funzionalità che verranno sviluppate in Cloud Sync.

I clienti che usano questa funzionalità di anteprima in Connect Sync dovranno cambiare la configurazione da Connect Sync to Cloud Sync. È possibile scegliere di spostare tutta la sincronizzazione ibrida in Cloud Sync (se soddisfa specifiche esigenze). È anche possibile eseguire Cloud Sync in modalità affiancata e spostarvi solo il provisioning di gruppi di sicurezza in Active Directory.

I clienti che effettuano il provisioning di gruppi di Microsoft 365 in Active Directory possono continuare a usare il writeback dei gruppi v1 per questa funzionalità.

È possibile valutare lo spostamento esclusivo in Cloud Sync usando la procedura guidata di sincronizzazione utenti.

Passaggi successivi

Per altre informazioni, vedere Azure Active Directory PowerShell cmdlets (Cmdlet di Microsoft Entra).