Erstellen Sie ein neues Gruppenobjekt , wenn es nicht vorhanden ist, oder aktualisieren Sie die Eigenschaften eines vorhandenen Gruppenobjekts .
Sie können die folgenden Gruppentypen erstellen oder aktualisieren:
Microsoft 365-Gruppe (einheitliche Gruppe)
Sicherheitsgruppe
Standardmäßig gibt dieser Vorgang nur eine Teilmenge der Eigenschaften für jede Gruppe zurück. Eine Liste der Eigenschaften, die standardmäßig zurückgegeben werden, finden Sie im Abschnitt Eigenschaften der Gruppenressource . Um Eigenschaften abzurufen, die nicht standardmäßig zurückgegeben werden, führen Sie eine GET-Operation aus, und geben Sie die Eigenschaften in einer $select OData-Abfrageoption an.
Hinweis: Um ein Team zu erstellen, erstellen Sie zuerst eine Gruppe, und fügen Sie ihr dann ein Team hinzu. Weitere Informationen finden Sie unter Erstellen eines Teams.
Berechtigungen
Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
Berechtigungstyp
Berechtigungen mit den geringsten Berechtigungen
Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto)
Group.ReadWrite.All
Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto)
Nicht unterstützt
Nicht unterstützt
Anwendung
Group.ReadWrite.All
Directory.ReadWrite.All
Damit eine App mit der Group.Create-Berechtigung eine Gruppe mit Besitzern oder Mitgliedern erstellen kann, muss sie über die Berechtigungen zum Lesen des Objekttyps verfügen, den sie als Gruppenbesitzer oder -mitglied zuweisen möchte. Deshalb:
Die App kann sich selbst als Besitzer oder Mitglied der Gruppe zuweisen.
Um die Gruppe mit Benutzern als Besitzer oder Mitglieder zu erstellen, muss die App mindestens über die Berechtigung User.Read.All verfügen.
Um die Gruppe mit anderen Dienstprinzipalen als Besitzer oder Mitglieder zu erstellen, muss die App mindestens über die Berechtigung Application.Read.All verfügen.
Um die Gruppe mit Benutzern oder Dienstprinzipalen als Besitzer oder Mitgliedern zu erstellen, muss die App mindestens über die Berechtigung Directory.Read.All verfügen.
create-if-missing. Erforderlich für upsert-Verhalten, andernfalls wird die Anforderung als Aktualisierungsvorgang behandelt.
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung des Gruppenobjekts an.
In der folgenden Tabelle sind die Eigenschaften aufgeführt, die beim Erstellen der Gruppe erforderlich sind. Geben Sie bei Bedarf andere beschreibbare Eigenschaften für Ihre Gruppe an, wenn sie erstellt oder aktualisiert werden.
Eigenschaft
Typ
Beschreibung
displayName
String
Der Name der Gruppe, der im Adressbuch angezeigt wird. Die maximale Länge beträgt 256 Zeichen. Erforderlich.
mailEnabled
Boolesch
Für E-Mail-aktivierte Gruppen auf true setzen. Erforderlich.
mailNickname
String
Der E-Mail-Alias für die Gruppe, eindeutig für Microsoft 365-Gruppen in der Organisation. Die maximale Länge beträgt 64 Zeichen. Diese Eigenschaft darf nur Zeichen im ASCII-Zeichensatz 0 bis 127 mit Ausnahme der folgenden enthalten: @ () \ [] " ; : <> , SPACE. Erforderlich.
securityEnabled
Boolean
true für sicherheitsaktivierte Gruppen festlegen, einschließlich Microsoft 365-Gruppen. Erforderlich.
Hinweis: Gruppen, die mit dem Microsoft Entra Admin Center oder dem Azure-Portal erstellt wurden, ist securityEnabled anfangs immer auf truefestgelegt.
Wichtig
Wenn Sie eine Gruppe mit der Anwendungsberechtigung Group.Create erstellen, ohne Besitzer anzugeben, wird die Gruppe anonym erstellt und kann nicht geändert werden. Fügen Sie der Gruppe beim Erstellen Besitzer hinzu, um Besitzer anzugeben, die die Gruppe ändern können.
Beim programmgesteuerten Erstellen einer Microsoft 365-Gruppe mit Nur-App-Kontext und ohne Angabe von Besitzern wird die Gruppe anonym erstellt. Dies kann dazu führen, dass die zugehörige SharePoint Online-Website nicht automatisch erstellt wird und weitere manuelle Aktionen nötig sind.
Ein Benutzer ohne Administratorrechte kann sich nicht selbst zur Sammlung der Gruppenbesitzer hinzufügen. Weitere Informationen finden Sie unter dem zugehörigen bekannten Problem.
Die folgenden Eigenschaften können in der ersten POST-Anforderung nicht festgelegt werden und müssen in einer nachfolgenden PATCH-Anforderung festgelegt werden: allowExternalSenders, autoSubscribeNewMembers, hideFromAddressLists, hideFromOutlookClients, isSubscribedByMail, unseenCount.
Da die Ressource groupextensions unterstützt, können Sie beim Erstellen der Gruppe benutzerdefinierte Eigenschaften mit Ihren eigenen Daten hinzufügen.
groupTypes-Optionen
Verwenden Sie, wie dargestellt, die Eigenschaft groupTypes zum Steuern des Typs der Gruppe und ihrer Mitgliedschaft.
Typ der Gruppe
Zugeordnete Mitgliedschaft
Dynamische Mitgliedschaft
Microsoft 365 (auch einheitliche Gruppe genannt)
["Unified"]
["Unified","DynamicMembership"]
Dynamisch
[] (null)
["DynamicMembership"]
Antwort
Wenn kein Objekt mit dem uniqueName vorhanden ist, gibt diese Methode einen 201 Created Antwortcode und ein neues Gruppenobjekt im Antworttext zurück.
Wenn kein Objekt mit uniqueName vorhanden ist und der Prefer: create-if-missing Header nicht angegeben ist, gibt diese Methode einen 404 Not Found Fehlercode zurück.
Wenn bereits ein Objekt mit dem uniqueName vorhanden ist, aktualisiert diese Methode das Gruppenobjekt und gibt einen 204 No Content Antwortcode zurück.
Beispiele
Beispiel 1: Erstellen einer Microsoft 365-Gruppe, wenn sie nicht vorhanden ist
Im folgenden Beispiel wird eine Microsoft 365-Gruppe erstellt, da keine Gruppe mit dem angegebenen uniqueName-Wert vorhanden ist. Da die Besitzer nicht angegeben wurden, wird der anrufende Benutzer automatisch als Besitzer der Gruppe hinzugefügt.
PATCH https://graph.microsoft.com/v1.0/groups(uniqueName='uniqueName')
Content-type: application/json
Prefer: create-if-missing
{
"description": "Self help community for golf",
"displayName": "Golf Assist",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "golfassist",
"securityEnabled": false
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Self help community for golf",
DisplayName = "Golf Assist",
GroupTypes = new List<string>
{
"Unified",
},
MailEnabled = true,
MailNickname = "golfassist",
SecurityEnabled = false,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.GroupsWithUniqueName("{uniqueName}").PatchAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Prefer", "create-if-missing");
});
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Self help community for golf");
group.setDisplayName("Golf Assist");
LinkedList<String> groupTypes = new LinkedList<String>();
groupTypes.add("Unified");
group.setGroupTypes(groupTypes);
group.setMailEnabled(true);
group.setMailNickname("golfassist");
group.setSecurityEnabled(false);
Group result = graphClient.groupsWithUniqueName("{uniqueName}").patch(group, requestConfiguration -> {
requestConfiguration.headers.add("Prefer", "create-if-missing");
});
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.groups(unique_name='{unique_name}').groups_with_unique_name_request_builder import GroupsWithUniqueNameRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Group(
description = "Self help community for golf",
display_name = "Golf Assist",
group_types = [
"Unified",
],
mail_enabled = True,
mail_nickname = "golfassist",
security_enabled = False,
)
request_configuration = RequestConfiguration()
request_configuration.headers.add("Prefer", "create-if-missing")
result = await graph_client.groups_with_unique_name("{uniqueName}").patch(request_body, request_configuration = request_configuration)
Das folgende Beispiel zeigt die Antwort. Der Wert der Eigenschaft preferredDataLocation-Eigenschaft wird vom bevorzugten Datenspeicherort des Gruppenerstellers geerbt.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Beispiel 2: Erstellen einer Sicherheitsgruppe mit einem Besitzer und Mitgliedern, falls diese nicht vorhanden ist
Im folgenden Beispiel wird eine Sicherheitsgruppe mit einem Besitzer und mitgliedern erstellt, da keine Gruppe mit dem angegebenen uniqueName-Wert vorhanden ist. Bitte beachten Sie, dass maximal 20 Beziehungen, beispielsweise Besitzer und Mitglieder, als Teil im Rahmen der Gruppenerstellung hinzugefügt werden können. Anschließend können Sie mehrere zusätzliche Member hinzufügen, indem Sie die Add-Member-API oder JSON-Batchverarbeitung verwenden.
Ein Benutzer ohne Administratorrechte kann sich nicht selbst zur Sammlung der Gruppenbesitzer hinzufügen. Weitere Informationen finden Sie unter dem zugehörigen bekannten Problem.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Group with designated owner and members",
DisplayName = "Operations group",
GroupTypes = new List<string>
{
},
MailEnabled = false,
MailNickname = "operations2019",
SecurityEnabled = true,
AdditionalData = new Dictionary<string, object>
{
{
"owners@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2",
}
},
{
"members@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc",
"https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14",
}
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.GroupsWithUniqueName("{uniqueName}").PatchAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Group with designated owner and members");
group.setDisplayName("Operations group");
LinkedList<String> groupTypes = new LinkedList<String>();
group.setGroupTypes(groupTypes);
group.setMailEnabled(false);
group.setMailNickname("operations2019");
group.setSecurityEnabled(true);
HashMap<String, Object> additionalData = new HashMap<String, Object>();
LinkedList<String> ownersOdataBind = new LinkedList<String>();
ownersOdataBind.add("https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2");
additionalData.put("owners@odata.bind", ownersOdataBind);
LinkedList<String> membersOdataBind = new LinkedList<String>();
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc");
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14");
additionalData.put("members@odata.bind", membersOdataBind);
group.setAdditionalData(additionalData);
Group result = graphClient.groupsWithUniqueName("{uniqueName}").patch(group);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Group(
description = "Group with designated owner and members",
display_name = "Operations group",
group_types = [
],
mail_enabled = False,
mail_nickname = "operations2019",
security_enabled = True,
additional_data = {
"owners@odata_bind" : [
"https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2",
],
"members@odata_bind" : [
"https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc",
"https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14",
],
}
)
result = await graph_client.groups_with_unique_name("{uniqueName}").patch(request_body)
Es folgt ein Beispiel für eine erfolgreiche Antwort. Es enthält nur Standardeigenschaften. Sie können anschließend die owners- oder members-Navigationseigenschaft der Gruppe abrufen, um den Besitzer oder die Mitglieder zu überprüfen. Der Wert der Eigenschaft preferredDataLocation-Eigenschaft wird vom bevorzugten Datenspeicherort des Gruppenerstellers geerbt.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
Beispiel 3: Aktualisieren einer vorhandenen Gruppe
In diesem Beispiel ist die angegebene Gruppe bereits vorhanden, sodass der Vorgang als Update behandelt wird.
Ein Benutzer ohne Administratorrechte kann sich nicht selbst zur Sammlung der Gruppenbesitzer hinzufügen. Weitere Informationen finden Sie unter dem zugehörigen bekannten Problem.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Group assignable to a role",
DisplayName = "Role assignable group",
GroupTypes = new List<string>
{
"Unified",
},
IsAssignableToRole = true,
MailEnabled = true,
SecurityEnabled = true,
MailNickname = "contosohelpdeskadministrators",
AdditionalData = new Dictionary<string, object>
{
{
"owners@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/99e44b05-c10b-4e95-a523-e2732bbaba1e",
}
},
{
"members@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0",
"https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e",
}
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Group assignable to a role");
group.setDisplayName("Role assignable group");
LinkedList<String> groupTypes = new LinkedList<String>();
groupTypes.add("Unified");
group.setGroupTypes(groupTypes);
group.setIsAssignableToRole(true);
group.setMailEnabled(true);
group.setSecurityEnabled(true);
group.setMailNickname("contosohelpdeskadministrators");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
LinkedList<String> ownersOdataBind = new LinkedList<String>();
ownersOdataBind.add("https://graph.microsoft.com/v1.0/users/99e44b05-c10b-4e95-a523-e2732bbaba1e");
additionalData.put("owners@odata.bind", ownersOdataBind);
LinkedList<String> membersOdataBind = new LinkedList<String>();
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0");
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e");
additionalData.put("members@odata.bind", membersOdataBind);
group.setAdditionalData(additionalData);
Group result = graphClient.groups().post(group);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Group(
description = "Group assignable to a role",
display_name = "Role assignable group",
group_types = [
"Unified",
],
is_assignable_to_role = True,
mail_enabled = True,
security_enabled = True,
mail_nickname = "contosohelpdeskadministrators",
additional_data = {
"owners@odata_bind" : [
"https://graph.microsoft.com/v1.0/users/99e44b05-c10b-4e95-a523-e2732bbaba1e",
],
"members@odata_bind" : [
"https://graph.microsoft.com/v1.0/users/6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0",
"https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e",
],
}
)
result = await graph_client.groups.post(request_body)
Das folgende Beispiel zeigt die Antwort. Der Wert der Eigenschaft preferredDataLocation-Eigenschaft wird vom bevorzugten Datenspeicherort des Gruppenerstellers geerbt.