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

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.

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

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

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

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 panel de acceso Mis aplicaciones.

Para deshabilitar la creación de grupos por usuarios no administrativos:

  1. 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
    
  2. 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 (versión preliminar)

Hoy en día, se siguen administrando muchos grupos en Active Directory local. Para responder a las solicitudes para sincronizar los grupos en la nube de nuevo con los entornos locales, la característica de escritura diferida de grupos de Microsoft 365 para Microsoft Entra ID está ahora disponible en versión preliminar.

Los grupos de Microsoft 365 se crean y administran en la nube. La funcionalidad de escritura diferida le permite volver a escribir los grupos de Microsoft 365 como grupos de distribución en un bosque de Active Directory con Exchange instalado. Después, los usuarios con buzones de Exchange locales pueden enviar y recibir correos electrónicos de estos grupos. La característica de escritura diferida de grupos no admite grupos de distribución ni grupos de seguridad de Microsoft Entra.

Para más información, consulte la documentación del servicio de sincronización de Microsoft Entra Connect.

La escritura diferida de grupos de Microsoft 365 es una característica en versión preliminar pública de Microsoft Entra ID y está disponible con cualquier plan de licencia de Microsoft Entra ID de pago. Para obtener más información sobre las vistas previas, consulte Términos de la licencia universal para servicios en línea.

Pasos siguientes

Puede encontrar más documentación sobre PowerShell para Azure Active Directory en el artículo sobre los cmdlets de Microsoft Entra.