cmdlets de Microsoft Entra versión 2 para la administración de grupos
En este artículo se incluyen ejemplos de cómo usar PowerShell para administrar grupos en Microsoft Entra ID, parte de Microsoft Entra. También se indica cómo configurar con el módulo de PowerShell de Microsoft Graph. En primer lugar, debe descargar el módulo de PowerShell de Microsoft Graph.
Instale el módulo de PowerShell de Microsoft Graph
Para instalar el módulo de PowerShell de MgGroup, use los siguientes comandos:
PS C:\Windows\system32> Install-module Microsoft.Graph
Para comprobar que el módulo esté listo para usar, ejecute el siguiente comando:
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…
Ahora puede empezar a usar los cmdlets del módulo. Para obtener una descripción completa de los cmdlets del módulo de Microsoft Graph, consulte la documentación de referencia en línea para PowerShell de Microsoft Graph.
Conexión al directorio
Antes de empezar a administrar los grupos mediante los cmdlets de PowerShell de Microsoft Graph, debe conectar la sesión de PowerShell al directorio que desea administrar. Use el comando siguiente:
PS C:\Windows\system32> Connect-MgGraph -Scopes "Group.ReadWrite.All"
El cmdlet le pide las credenciales que quiere utilizar para tener acceso al directorio. En este ejemplo, vamos a utilizar karen@drumkit.onmicrosoft.com para tener acceso al directorio de demostración. El cmdlet devuelve una confirmación para mostrar que la sesión se ha conectado correctamente al directorio:
Welcome To Microsoft Graph!
Ahora puede empezar a usar los cmdlets de MgGraph para administrar grupos en el directorio.
Recuperación de los grupos
Para recuperar grupos existentes del directorio, utilice el cmdlet Get-MgGroups.
Para recuperar todos los grupos del directorio, ejecute el cmdlet sin parámetros:
PS C:\Windows\system32> Get-MgGroup -All
El cmdlet devuelve todos los grupos del directorio conectado.
Puede usar el parámetro -GroupId para recuperar un grupo específico para el que especifica el id. de objeto del grupo:
PS C:\Windows\system32> Get-MgGroup -GroupId 5e3eba05-6c2b-4555-9909-c08e997aab18 | fl
El cmdlet devuelve ahora el grupo cuyo id. de objeto coincide con el valor del parámetro especificado:
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
Puede buscar un grupo específico mediante el parámetro - filter. Este parámetro toma una cláusula de filtro ODATA y devuelve todos los grupos que coinciden con él, como en el ejemplo siguiente:
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:
Los cmdlets de PowerShell de MgGroup implementan el estándar de consulta de OData. Para obtener más información, consulte $filter en Opciones de la consulta del sistema OData mediante el punto de conexión de OData.
Aquí tiene un ejemplo en el que se muestra cómo extraer todos los grupos que no tienen aplicada una directiva de expiración.
Connect-MgGraph -Scopes 'Group.Read.All'
Get-MgGroup -ConsistencyLevel eventual -Count groupCount -Filter "NOT (expirationDateTime+ge+1900-01-01T00:00:00Z)" | Format-List Id
Este ejemplo hace lo mismo que el anterior, pero el script también exporta los resultados a un archivo .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
En este último ejemplo se muestra cómo recuperar solo los grupos que pertenecen a equipos.
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
Creación de grupos
Para crear un nuevo grupo en el directorio, use el cmdlet New-MgGroup. Este cmdlet crea un nuevo grupo de seguridad llamado "Marketing":
$param = @{
description="My Demo Group"
displayName="DemoGroup"
mailEnabled=$false
securityEnabled=$true
mailNickname="Demo"
}
New-MgGroup @param
Actualización de grupos
Para actualizar un grupo existente, utilice el cmdlet Update-MgGroup. En este ejemplo, vamos a cambiar la propiedad DisplayName del grupo "Administradores de Intune". En primer lugar, buscaremos el grupo mediante el cmdlet Get-MgGroup y aplicaremos un filtro usando el atributo 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
Después, vamos a cambiar la propiedad Description del nuevo valor de "Administradores de dispositivos de Intune":
PS C:\Windows\system32> Update-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b -Description "Demo Group Updated"
Ahora, si encontramos el grupo nuevo, veremos que la propiedad Description se actualiza para reflejar el nuevo valor:
PS C:\Windows\system32> Get-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b | select displayname, description
DisplayName Description
----------- -----------
DemoGroup Demo Group Updated
Eliminación de grupos
Para eliminar grupos del directorio, use el cmdlet Remove-MgGroup de la siguiente manera:
PS C:\Windows\system32> Remove-MgGroup -GroupId 958d212c-14b0-43d0-a052-d0c2bb555b8b
Administración de pertenencia al grupo
Adición de miembros
Para agregar nuevos miembros a un grupo, utilice el cmdlet New-MgGroupMember. Este comando agrega un miembro al grupo de administradores de Intune que utilizamos en el ejemplo anterior:
PS C:\Windows\system32> New-MgGroupMember -GroupId f76cbbb8-0581-4e01-a0d4-133d3ce9197f -DirectoryObjectId a88762b7-ce17-40e9-b417-0add1848eb68
El parámetro -GroupId es el id. de objeto del grupo al que desea agregar un miembro y -DirectoryObjectId es el id. de objeto del usuario que desea agregar como miembro al grupo.
Obtención de miembros
Para obtener los miembros existentes de un grupo, use el cmdlet Get-MgGroupMember, como en este ejemplo:
PS C:\Windows\system32> Get-MgGroupMember -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
Id DeletedDateTime
-- ---------------
aaaaaaaa-bbbb-cccc-1111-222222222222
bbbbbbbb-cccc-dddd-2222-333333333333
Quitar miembros
Para quitar al miembro que agregamos anteriormente al grupo, use el cmdlet Remove-MgGroupMember, como se muestra aquí:
PS C:\Windows\system32> Remove-MgGroupMemberByRef -DirectoryObjectId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee -GroupId 2c52c779-8587-48c5-9d4a-c474f2a66cf4
Comprobación de miembros
Para comprobar si un usuario pertenece a un grupo, use el cmdlet Select-MgGroupIdsUserIsMemberOf. Este cmdlet toma como parámetros el id. de objeto del usuario que se comprueba si pertenece a uno o varios grupos, así como una lista de grupos para realizar dicha comprobación. La lista de grupos debe proporcionarse como una variable compleja del tipo Microsoft.Open.AzureAD.Model.GroupIdsForMembershipCheck, así que, antes, debemos creamos una variable con ese tipo:
Get-MgUserMemberOf -UserId 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
Id DisplayName Description GroupTypes AccessType
-- ----------- ----------- ---------- ----------
5dc16449-3420-4ad5-9634-49cd04eceba0 demogroup demogroup {Unified}
El valor devuelto es una lista con los grupos de los que es miembro este usuario. También puede aplicar este método para comprobar si determinados contactos, grupos o entidades de seguridad pertenecen a los grupos de una lista concreta. Para ello, utilice Select-MgGroupIdsContactIsMemberOf, Select-MgGroupIdsGroupIsMemberOf o Select-MgGroupIdsServicePrincipalIsMemberOf
Deshabilitación de la creación de grupos por los usuarios
Puede impedir que los usuarios no administradores creen grupos de seguridad. El comportamiento predeterminado en Microsoft Online Directory Services (MSODS) es permitir que los usuarios no administrativos creen grupos, esté o no habilitada la administración de grupos en autoservicio (SSGM). La configuración de SSGM controla el comportamiento solo en el portal Mis grupos.
Para deshabilitar la creación de grupos por usuarios no administrativos:
Compruebe que los usuarios no administradores pueden crear grupos:
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
Si devuelve
EnableGroupCreation : True
, los usuarios no administrativos pueden crear grupos. Para deshabilitar esta característica: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
Administración de propietarios de grupos
Para agregar propietarios a un grupo, utilice el cmdlet New-MgGroupOwner:
PS C:\Windows\system32> New-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
El parámetro -GroupId es el identificador de objeto del grupo al que queremos agregar un propietario y -DirectoryObjectId es el identificador de objeto del usuario o la entidad de servicio que queremos agregar como propietario.
Para recuperar los propietarios de un grupo, utilice el cmdlet Get-MgGroupOwner:
PS C:\Windows\system32> Get-MgGroupOwner -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497
El cmdlet devuelve la lista de propietarios (usuarios y entidades de servicio) del grupo especificado:
Id DeletedDateTime
-- ---------------
8ee754e0-743e-4231-ace4-c28d20cf2841
85b1df54-e5c0-4cfd-a20b-8bc1a2ca7865
4451b332-2294-4dcf-a214-6cc805016c50
Si desea quitar un propietario de un grupo, utilice el cmdlet Remove-MgGroupOwnerByRef:
PS C:\Windows\system32> Remove-MgGroupOwnerByRef -GroupId 0e48dc96-3bff-4fe1-8939-4cd680163497 -DirectoryObjectId 92a0dad0-7c9e-472f-b2a3-0fe2c9a02867
Alias reservados
Cuando se crea un grupo, algunos de los puntos de conexión permiten al usuario final especificar un mailNickname o alias que se usarán como parte de la dirección de correo electrónico del grupo. Los grupos con los siguientes alias de correo electrónico con privilegios elevados solo puede crearlos un administrador global de Microsoft Entra.
- abuse
- admin
- administrator
- hostmaster
- majordomo
- postmaster
- root
- secure
- security
- ssl-admin
- webmaster
Escritura diferida de grupos en entornos locales
Hoy en día, se siguen administrando muchos grupos en Active Directory local. Para responder a las solicitudes para sincronizar grupos en la nube de nuevo con el entorno local, la característica de escritura diferida de grupos para Microsoft Entra ID mediante la sincronización en la nube de Microsoft Entra ya está disponible.
Importante
La versión preliminar pública de Escritura diferida de grupos V2 en Sincronización de Microsoft Entra Connect ya no estará disponible después del 30 de junio de 2024. Esta característica se interrumpirá en esta fecha y ya no se admitirá en Sincronización Connect para aprovisionar grupos de seguridad en la nube en Active Directory. La característica seguirá funcionando más allá de la fecha de interrupción; sin embargo, ya no recibirá soporte técnico después de esta fecha y puede dejar de funcionar en cualquier momento sin previo aviso.
Ofrecemos una funcionalidad similar en Microsoft Entra Cloud Sync denominada Aprovisionamiento de grupos en Active Directory que puedes usar en lugar de Escritura diferida de grupos v2 para aprovisionar grupos de seguridad en la nube en Active Directory. Estamos trabajando para mejorar esta funcionalidad en Cloud Sync junto con otras nuevas características que estamos desarrollando en Cloud Sync.
Los clientes que usan esta característica en vista previa (GB) en Connect Sync deben cambiar su configuración de Connect Sync a Cloud Sync. Puedes optar por mover toda la sincronización híbrida a Cloud Sync (si es compatible con tus necesidades). También puedes ejecutar Sincronización en la nube en paralelo y mover solo el aprovisionamiento de grupos de seguridad en la nube en Active Directory a Sincronización en la nube.
Para los clientes que aprovisionan grupos de Microsoft 365 en Active Directory, puedes seguir usando Escritura diferida de grupos v1 para esta funcionalidad.
Puede evaluar el traslado exclusivo a Cloud Sync mediante el asistente de sincronización de usuario.
Pasos siguientes
Puede encontrar más documentación sobre PowerShell para Azure Active Directory en el artículo sobre los cmdlets de Microsoft Entra.