Καθώς η Microsoft βελτιώνει την ασφάλειά της σε όλα τα προϊόντα και τις υπηρεσίες, έχουν γίνει αλλαγές στη λειτουργικότητα API που μπορεί να επηρεάσουν τους πελάτες που προηγουμένως βασίζονταν σε δικαιώματα μόνο εφαρμογών για την παροχή Σημειωματάριων τάξης και ομάδων τάξης με χρήση API.
Σημείωση
Στις περισσότερες περιπτώσεις, συνιστάται να χρησιμοποιείτε το School Data Sync(SDS), μια δωρεάν υπηρεσία που βοηθά στην αυτοματοποίηση της διαδικασίας συγχρονισμού δεδομένων χρηστών και καταλόγων από συστήματα πληροφοριών ή διαχείρισης μαθητών με το Microsoft 365. Το SDS σάς βοηθά να διαχειρίζεστε τον εκπαιδευτικό οργανισμό, τους χρήστες, τις τάξεις και τους ρόλους σας, συγχρονίζοντας τα δεδομένα σας με το Microsoft Entra ID και το Microsoft 365, ώστε να μπορείτε να χρησιμοποιείτε το Microsoft Teams, το Intune για εκπαιδευτικά ιδρύματα, το Exchange Online, το SharePoint Online, τα σημειωματάρια τάξης του OneNote και να ενεργοποιείτε εφαρμογές τρίτων με καθολική σύνδεση ενσωμάτωση.
Εξακολουθείτε να μπορείτε να παρέχετε τάξεις και σημειωματάρια σε κλίμακα χρησιμοποιώντας το PowerShell και το Microsoft Graph, ακολουθώντας τις υποστηριζόμενες μεθόδους. Αυτό το άρθρο περιγράφει τα βήματα και παρέχει συνδέσεις στη σχετική τεκμηρίωση.
Σημαντικό
Εάν εργάζεστε με έναν τρίτο συνεργάτη για την παροχή τάξεων σε μεγάλη κλίμακα, μοιραστείτε αυτό το άρθρο μαζί του προτού λάβετε μέτρα μόνοι σας.
Παροχή νέων τάξεων
Επιλογή 1 (προτείνεται): Χρήση του Teams PowerShell
Προειδοποίηση
Πριν από τις 21 Αυγούστου 2025, μια προηγούμενη έκδοση αυτής της τεκμηρίωσης συνέστησε την προμήθεια μέσω του Teams PowerShell πριν πραγματοποιηθούν οι απαιτούμενες ενημερώσεις. Αυτές οι ενημερώσεις έχουν πλέον ολοκληρωθεί και μπορείτε να συνεχίσετε με αυτήν την προσέγγιση αυτήν τη στιγμή. Σας ευχαριστούμε για την υπομονή σας.
Είναι απλό να παρέχετε νέες τάξεις χρησιμοποιώντας το Teams PowerShell, το οποίο θα περιλαμβάνει όλες τις απαραίτητες ρυθμίσεις για τάξεις και σημειωματάρια. Απλώς προσαρμόστε το επιθυμητό εμφανιζόμενο όνομα στην ακόλουθη δέσμη ενεργειών και εκτελέστε την ως διαχειριστής.
Σημαντικό
Η ακόλουθη δέσμη ενεργειών απαιτεί τη χρήση του Microsoft Teams PowerShell έκδοση 7.3.1 ή νεότερη.
Δείγμα δέσμης ενεργειών
# Using the Teams PowerShell SDK
Install-Module -MicrosoftTeams -Force -AllowClobber
New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class'
Επιλογή 2: Χρήση του Microsoft Graph PowerShell
Εάν δεν έχετε πρόσβαση στο Teams PowerShell, μπορεί να θέλετε να εξερευνήσετε την προμήθεια κλάσεων σε κλίμακα χρησιμοποιώντας το Microsoft Graph. Επεξεργαστείτε τις παραμέτρους στο επάνω μέρος της ακόλουθης δέσμης ενεργειών ανάλογα με την περίπτωση και, στη συνέχεια, εκτελέστε τη δέσμη ενεργειών ως διαχειριστής για να παρέχετε τάξεις και σημειωματάρια σε κλίμακα:
Δείγμα δέσμης ενεργειών
# Using the MS Graph API
Install-Module Microsoft.Graph -AllowClobber -Force
# PARAMETERS
$Name = "Test Class 20251208.3"
$Description = "A Test Class"
$Mail = $Name -replace '[^a-zA-Z0-9\s]|[ ]', '' # Replace this mail alias with a preferred generation method
$OwnerId = "000-000-00000-000000-000" # Replace this with the Owner's GUID
# ------------
# Create a new M365 Group
$CreateGroupBody = @"
{
"description": "$Name",
"displayName": "$Description",
"groupTypes": [
"Unified"
],
"mailEnabled": false,
"mailNickname": "$Mail",
"securityEnabled": false,
"members@odata.bind": [
"https://graph.microsoft.com/v1.0/users/$OwnerId"
],
"owners@odata.bind": [
"https://graph.microsoft.com/v1.0/users/$OwnerId"
],
"visibility": "HiddenMembership",
"creationOptions": [
"ExchangeProvisioningFlags:461",
"classAssignments"
],
"extension_fe2174665583431c953114ff7268b7b3_Education_ObjectType": "Section",
"resourceBehaviorOptions": [
"appRoleForSite:22d27567-b3f0-4dc2-9ec2-46ed368ba538:fullcontrol",
"appRoleForSite:c9a559d2-7aab-4f13-a6ed-e7e9c52aec87:fullcontrol",
"appRoleForSite:13291f5a-59ac-4c59-b0fa-d1632e8f3292:fullcontrol",
"appRoleForSite:2d4d3d8e-2be3-4bef-9f87-7875a61c29de:fullcontrol",
"appRoleForSite:8f348934-64be-4bb2-bc16-c54c96789f43:fullcontrol"
]
}
"@
$NewGroup = Invoke-MgGraphRequest -uri 'https://graph.microsoft.com/v1.0/groups/' -Body $CreateGroupBody -Method POST -ContentType "application/json"
# Create Teams Class Team from group
$CreateTeamBody = @{
"template@odata.bind" = "https://graph.microsoft.com/v1.0/teamsTemplates('educationClass')"
"group@odata.bind" = "https://graph.microsoft.com/v1.0/groups('$($NewGroup.Id)')"
}
New-MgTeam -BodyParameter $CreateTeamBody
Αντιμετώπιση προβλημάτων: εκχώρηση δικαιωμάτων σε υπάρχουσες τοποθεσίες τάξης
Σημείωση
Αυτή η προσέγγιση θα απαιτήσει επίσης το άτομο που εκτελεί τη δέσμη ενεργειών να είναι διαχειριστής τοποθεσίας, όπως περιγράφεται εδώ. Η παρακάτω δέσμη ενεργειών περιλαμβάνει ένα βήμα για να προσθέσετε τον τρέχοντα συνδεδεμένο χρήστη ως διαχειριστή τοποθεσίας για τις τοποθεσίες που απαιτούν αντιμετώπιση προβλημάτων.
Εάν έχετε ήδη παράσχει τάξεις και παρατηρείτε αποτυχίες ή προβλήματα δικαιωμάτων με το Σημειωματάριο τάξης ή τις αναθέσεις εργασιών του Teams, μπορείτε να ενημερώσετε τα δικαιώματα τοποθεσίας για τις τάξεις σας χρησιμοποιώντας την ακόλουθη δέσμη ενεργειών, αντικαθιστώντας την παράμετρο rawGroups με τα groupID των κλάσεων που επηρεάζονται:
Δείγμα δέσμης ενεργειών
#You will need to connect to SharePoint, Exchange Online, and Graph with the following -Scopes Sites.FullControl.All, as well as collect the groupIDs of Class Teams affected
$rawGroups =@("b0a5905d-09ae-4605-8e12-94da93ecbe92","e0eec729-24ef-451e-b079-56d0baf4dfc9")
# Convert to array of objects with .groupid
$groups = $rawGroups | ForEach-Object { Get-UnifiedGroup -Identity $_ }
$step = 0
#get the currently logged in user's account to add as a site admin
$CUA = (get-mgcontext).account
foreach ($group in $groups) {
$step = $step + 1
Set-SPOUser -Site $group.SharePointSiteUrl -LoginName $CUA -IsSiteCollectionAdmin $true
Write-Host "SiteCollectionAdmin added on $step of $($Groups.Count) Class Sites"
}
#Pause for 5 minutes before triggering the General Folder creation
Write-Host "Pausing for 5 Minutes before adding perms to allow SiteCollectionAdmin to propagate"
Start-Sleep -Seconds 300
Write-Host "Working on $($Groups.Count) Classes"
foreach ($group in $groups) {
#$step = $step + 1
$Site = Get-MgGroupSite -GroupId $group.ExternalDirectoryObjectId -SiteId "root"
$SiteId = $Site.Id
Write-Host "Processing permissions on $step of $($Groups.Count) Classes"
# These are the AppIds for common Microsoft EDU Apps
$AppIds = @{
"8f348934-64be-4bb2-bc16-c54c96789f43"="EDU Assignments";
"22d27567-b3f0-4dc2-9ec2-46ed368ba538"="Reading Assignments";
"2d4d3d8e-2be3-4bef-9f87-7875a61c29de"="OneNote";
"c9a559d2-7aab-4f13-a6ed-e7e9c52aec87"="Microsoft Forms";
"13291f5a-59ac-4c59-b0fa-d1632e8f3292"="EDU OneNote";
}
# Apply the permissions to the group site
$AppIds.Keys | %{
$AppId = $_
$Name = $AppIds[$_]
$Body = @"
{
"roles": ["fullcontrol"],
"grantedToIdentities": [{
"application": {
"id": "$AppId",
"displayName": "$Name"
}
}]
}
"@
Invoke-MgGraphRequest -Method POST -Uri "https://graph.microsoft.com/v1.0/sites/$SiteId/permissions" -Body $Body -ContentType "application/json"
}
}
Write-Host "Processed $($Groups.Count) Classes, removing sitecollectionadmin"
$step = 0
foreach ($group in $groups) {
$step = $step + 1
Set-SPOUser -Site $group.SharePointSiteUrl -LoginName $CUA -IsSiteCollectionAdmin $false
Write-Host "SiteCollectionAdmin removed on $step of $($Groups.Count) Class Sites"
}