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                     : 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

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.

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                     : 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

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 Add-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
--                                   ---------------
71b3857d-2a23-416d-bd22-a471854ddada
fd2d57c7-22ad-42cd-961a-7340fb2eb6b4

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 053a6a7e-4a75-48bc-8324-d70f50ec0d91 -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 053a6a7e-4a75-48bc-8324-d70f50ec0d91

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 della gestione gruppi self-service controlla il comportamento nel solo riquadro di accesso App 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 microsoft Entra Global Amministrazione istrator. 

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

Writeback del gruppo in locale (anteprima)

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

I gruppi di Microsoft 365 vengono creati e gestiti nel cloud. La funzionalità di writeback consente di eseguire il writeback dei gruppi di Microsoft 365 come gruppi di distribuzione in una foresta Active Directory con Exchange installato. Gli utenti con cassette postali di Exchange locali possono quindi inviare e ricevere messaggi di posta elettronica da questi gruppi. La funzionalità di writeback del gruppo non supporta i gruppi di sicurezza o i gruppi di distribuzione di Microsoft Entra.

Per altre informazioni, vedere la documentazione relativa al servizio Microsoft Entra Connessione Sync.

Il writeback dei gruppi di Microsoft 365 è una funzionalità di anteprima pubblica di Microsoft Entra ID ed è disponibile con qualsiasi piano di licenza microsoft Entra ID a pagamento. Per altre informazioni sulle anteprime, vedere Condizioni di licenza universali per i servizi online.

Passaggi successivi

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