Keďže spoločnosť Microsoft vylepšuje svoj bezpečnostný postoj vo všetkých produktoch a službách, došlo k zmenám funkcií rozhrania API, ktoré môžu mať vplyv na zákazníkov, ktorí sa predtým spoliehali na povolenia len pre aplikácie na poskytovanie poznámkových blokov pre učebné predmety a triednych tímov pomocou rozhraní API.
Poznámka: Vo väčšine prípadov odporúčame používať bezplatnú službu School Data Sync(SDS), ktorá pomáha automatizovať proces synchronizácie údajov používateľov a zoznamov zo systémov Informácie o študentoch alebo Management Systems so službou Microsoft 365. SDS vám pomáha spravovať vzdelávaciu organizáciu, používateľov, triedy a roly, synchronizovať údaje s Microsoft Entra ID a službou Microsoft 365, aby ste mohli používať Microsoft Teams, Intune for Education, Exchange Online, SharePoint Online, onenotové poznámkové bloky pre učebné predmety a povoliť aplikácie tretích strán s Jediné prihlásenie integrácia.
Triedy a poznámkové bloky môžete stále zriadiť v mierke pomocou prostredí PowerShell a Microsoft Graph pomocou podporovaných metód. V tomto článku sú uvedené kroky a prepojenia na príslušnú dokumentáciu.
Dôležité: Ak pracujete s partnerom tretej strany na poskytovaní tried na úrovni, zdieľajte s nimi tento článok skôr, ako podniknete kroky sami.
Poskytovanie nových tried
Možnosť 1 (odporúča sa): Používanie prostredia Teams PowerShell
Upozornenie: Pred 21. augustom 2025 predchádzajúca verzia tejto dokumentácie odporúčala poskytovanie prostredníctvom prostredia Teams PowerShell pred vykonaním požadovanej aktualizácie. Tieto aktualizácie sú teraz dokončené a v súčasnosti môžete pokračovať týmto prístupom. Ďakujeme za trpezlivosť.
Nové triedy môžete jednoducho zriadiť pomocou prostredia Teams PowerShell, ktoré bude obsahovať všetky potrebné nastavenia pre triedy a poznámkové bloky. Stačí prispôsobiť požadované zobrazované meno v nasledujúcom skripte a spustiť ho ako správca.
Vzorový skript
# Using the Teams PowerShell SDK
Install-Module -MicrosoftTeams -Force -AllowClobber
New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class'
|
2. možnosť: Používanie prostredia Microsoft Graph PowerShell
Ak nemáte prístup k službe Teams PowerShell, možno budete chcieť preskúmať triedy zriaďovania v mierke pomocou Microsoft Graphu. Upravte parametre v hornej časti nasledujúceho skriptu podľa potreby a potom spustite skript ako správca na poskytovanie tried a poznámkových blokov v mierke:
Vzorový skript
# 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
|
Riešenie problémov: udelenie povolení existujúcim lokalitám triedy
Poznámka: Tento prístup bude tiež vyžadovať, aby osoba, ktorá spúšťa skript, bola správcom lokality, ako je popísané tu. Nižšie uvedený skript obsahuje krok na pridanie aktuálne prihláseného používateľa ako správcu lokality pre lokality, ktoré vyžadujú riešenie problémov.
Ak už máte zriadené triedy a pozorujete zlyhania alebo problémy s povoleniami v poznámkovom bloku pre učebné predmety alebo priradeniach v aplikácii Teams, môžete aktualizovať povolenia lokality pre svoje triedy pomocou nasledujúceho skriptu a nahradiť parameter rawGroups identifikáciami skupín dotknutých tried:
Vzorový skript
#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 tiggering 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"
}
|