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. 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 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 viene modificata 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
La proprietà Description verrà quindi modificata nel nuovo valore "Amministratori dispositivi di 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. È necessario specificare l'ObjectID del gruppo in uso. Il -DirectoryObjectId è l'ObjectID dell'utente che si vuole aggiungere come membro del 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 verificare l'appartenenza a contatti, gruppi o principi del 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 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:
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
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 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 vogliamo aggiungere un proprietario. Il -DirectoryObjectId è l'ObjectID dell'utente o del principale del 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 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.
- abuse
- amministratore
- amministratore
- hostmaster
- majordomo
- postmaster
- root
- sicuro
- 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 ulteriori informazioni sulla documentazione di Microsoft Entra ID PowerShell, vedere Cmdlets di Microsoft Entra.