Condividi tramite


Cmdlet di Microsoft Entra versione 2 per la gestione dei gruppi

Informazioni generali

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. Usare il comando seguente:

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

Il cmdlet richiede le credenziali da usare per accedere alla directory. In questo esempio, karen@drumkit.onmicrosoft.com viene usato per accedere alla directory di dimostrazione. 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 Get-MgGroup cmdlet .

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 -GroupId parametro per recuperare un gruppo specifico per il quale si specifica il valore 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 -Filter parametro . 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 New-MgGroup cmdlet . Questo cmdlet crea un nuovo gruppo di sicurezza denominato "DemoGroup":

$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 Update-MgGroup cmdlet . In questo esempio viene modificata la proprietà DisplayName del gruppo "Amministratori di Intune". Per prima cosa, trovare il gruppo usando il Get-MgGroup cmdlet e filtrare 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

Modificare quindi la proprietà Description impostando il nuovo valore "Intune Device Administrators":

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

Ora, se si trova di nuovo il gruppo, la proprietà Description viene aggiornata in modo da 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 Remove-MgGroup cmdlet come segue:

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

Gestire l'appartenenza a gruppi

È possibile aggiungere, recuperare e rimuovere membri del gruppo e verificare le appartenenze.

Aggiungere membri

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

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

Il -GroupId parametro è ObjectID del gruppo. -DirectoryObjectId è l'ObjectID dell'utente da aggiungere come membro del gruppo.

Acquisire membri

Per ottenere i membri esistenti di un gruppo, usare il cmdlet , come nell'esempio Get-MgGroupMember seguente:

    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 Remove-MgGroupMemberByRef cmdlet , 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 Select-MgGroupIdsUserIsMemberOf cmdlet . 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", quindi è prima necessario 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-MgGroupIdsGroupIsMemberOfo Select-MgGroupIdsServicePrincipalIsMemberOf.

Disabilitare la creazione di gruppi da parte degli utenti

È possibile impedire agli utenti standard di creare gruppi di sicurezza. Il comportamento predefinito in Microsoft Online Directory Services (MSODS) consiste nell'consentire agli utenti standard di creare gruppi, indipendentemente dal fatto che sia abilitata anche la gestione self-service dei gruppi (SSGM). L'impostazione SSGM controlla il comportamento solo nel portale Gruppi personali.

Per disabilitare la creazione di gruppi per gli utenti standard:

  1. Verificare che gli utenti standard 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 standard 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 New-MgGroupOwner cmdlet :

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

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

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

    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

Se si vuole rimuovere un proprietario da un gruppo, usare il Remove-MgGroupOwnerByRef cmdlet :

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

Alias riservati

Quando si crea un gruppo, gli utenti specificano un mailNickname o un alias utilizzato dal sistema come parte dell'indirizzo di posta elettronica del gruppo. La creazione di gruppi con uno degli alias di posta elettronica con privilegi elevati elencati è limitata agli amministratori globali di Microsoft Entra. 

  • abuso
  • amministratore
  • amministratore
  • responsabile del dominio
  • maggiordomo
  • capo ufficio postale
  • radice
  • sicuro
  • sicurezza
  • ssl-admin
  • amministratore del sito

Writeback del gruppo in sede

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 del writeback di gruppo v2 in Microsoft Entra Connect Sync è deprecata e non è più supportata.

È possibile usare Microsoft Entra Cloud Sync per effettuare il provisioning di gruppi di sicurezza cloud in Servizi di dominio Active Directory locali.

Se si usa group writeback v2 in Microsoft Entra Connect Sync, è consigliabile spostare il client di sincronizzazione in Microsoft Entra Cloud Sync. Per verificare se si è idonei a passare a Microsoft Entra Cloud Sync, usare la procedura guidata di sincronizzazione utente.

Se non è possibile usare Microsoft Cloud Sync come consigliato dalla procedura guidata, è possibile eseguire Microsoft Entra Cloud Sync side-by-side con Microsoft Entra Connect Sync. In tal caso, è possibile eseguire Microsoft Entra Cloud Sync solo per effettuare il provisioning dei gruppi di sicurezza cloud in Active Directory Domain Services locale.

Se si effettua il provisioning dei gruppi di Microsoft 365 nei Servizi di dominio Active Directory, è possibile continuare a usare Group Writeback v1.

Passaggi successivi

Per ulteriori informazioni sulla documentazione di Microsoft Entra ID PowerShell, vedere Cmdlets di Microsoft Entra.