Hantera grupper

I den här artikeln lär du dig hur du hanterar grupper i Microsoft Entra ID med hjälp av Microsoft Entra PowerShell. Exemplen omfattar att skapa och uppdatera grupper, lägga till användare och ägare, köra frågor mot ägarlösa och tomma grupper.

Förutsättningar

Skapa grupper

Om du vill skapa en grupp kontrollerar du att du har de behörigheter som krävs för att skapa en grupp.

Connect-Entra -Scopes 'Group.ReadWrite.All' 

Kör följande kommando för att skapa en ny grupp.

$groupParams = @{
    DisplayName = 'Contoso marketing'
    MailEnabled = $false
    SecurityEnabled = $true
    MailNickName = 'NotSet'
}
New-EntraGroup @groupParams
DisplayName  Id                                   MailNickname Description GroupTypes
-----------  --                                   ------------ ----------- ----------
Contoso marketing aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet                   {}

Det här kommandot skapar en ny grupp med namnet Contoso marketing.

Sök efter den skapade gruppen med hjälp av följande kommando.

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
DisplayName        Id                                   MailNickname     Description        GroupTypes
-----------        --                                   ------------     -----------        ----------
Contoso marketing       aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb NotSet       Contoso marketing EMEA        {}

Det här kommandot returnerar information om den nyligen skapade gruppen. Du kan också använda GroupId (GUID) för att söka, uppdatera eller ta bort gruppen.

Uppdatera gruppinformation

Uppdatera gruppbeskrivningen genom att köra följande kommando.

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Set-EntraGroup -Description 'Contoso marketing Global'

Bekräfta den uppdaterade beskrivningen genom att köra Get-EntraGroup igen.

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"  

Lägga till användare i en grupp

Lägg till en användare i gruppen genom att köra följande kommando. GroupId är grupp-ID och MemberId är användar-ID. Du kan hämta användar-ID:t från Microsoft Entra administrationscenter eller genom att köra kommandot Get-EntraUser.

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$user = Get-EntraUser -UserId 'SawyerM@contoso.com'
Add-EntraGroupMember -GroupId $group.Id -MemberId $user.Id

Om du vill hämta gruppmedlemmar använder du kommandot:

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupMember | Select-Object Id, DisplayName, '@odata.type' 
Id                                   DisplayName       @odata.type                     
------------------------------------ ----------------- -------------------------------
dddddddd-3333-4444-5555-eeeeeeeeeeee Sawyer Miller     #microsoft.graph.user
eeeeeeee-4444-5555-6666-ffffffffffff Alex Wilber       #microsoft.graph.user
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb My Application    #microsoft.graph.servicePrincipal
cccccccc-8888-9999-0000-dddddddddddd Contoso Group     #microsoft.graph.group

Lägga till användare som gruppägare

Lägg till en gruppägare i en grupp genom att köra följande kommando. GroupId är grupp-ID och OwnerId är användar-ID.

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
$owner = Get-EntraUser -UserId 'AdeleV@contoso.com'
Add-EntraGroupOwner -GroupId $group.Id -OwnerId $owner.Id

Använd kommandot för att bekräfta den uppdaterade gruppägaren:

$group = Get-EntraGroup -Filter "displayName eq 'Contoso marketing'"
Get-EntraGroup -GroupId $group.Id | Get-EntraGroupOwner | Select-Object Id, DisplayName, '@odata.type'
Id                                   DisplayName       @odata.type
------------------------------------ ----------------- ---------------------------
aaaaaaaa-6666-7777-8888-bbbbbbbbbbbb Adele Vance       #microsoft.graph.user

Sök efter grupper utan ägare eller tomma grupper

Kör följande kommando för att fråga grupper utan ägare.

$allGroups = Get-EntraGroup -All
$groupsWithoutOwners = foreach ($group in $allGroups) {
    $owners = Get-EntraGroupOwner -GroupId $group.Id
    if ($owners.Count -eq 0) {
        $group
    }
}
$groupsWithoutOwners | Format-Table DisplayName, Id, GroupTypes
DisplayName              Id                                   GroupTypes
-----------              --                                   ----------
Contoso marketing        aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group     eeeeeeee-4444-5555-6666-ffffffffffff {}

Kör följande kommando för att fråga grupper utan medlemmar (tomma grupper).

$allGroups = Get-EntraGroup -All
$groupsWithoutMembers = foreach ($group in $allGroups) {
    $members = Get-EntraGroupMember -GroupId $group.Id
    if ($members.Count -eq 0) {
        $group
    }
}
$groupsWithoutMembers | Format-Table DisplayName, Id, GroupTypes
DisplayName             Id                                   GroupTypes
-----------            --                                   ----------
Contoso marketing      aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb {}
HelpDesk admin group   eeeeeeee-4444-5555-6666-ffffffffffff {}

Rensa resurser

Om du vill ta bort gruppen använder du kommandot:

Get-EntraGroup -Filter "displayName eq 'Contoso marketing'" | Remove-EntraGroup