Ker Microsoft izboljšuje svojo varnostno držo v vseh izdelkih in storitvah, so se spremenile funkcije API-ja, ki lahko vplivajo na uporabnike, ki so se prej zanašali na dovoljenja samo za aplikacije za omogočanje uporabe zvezkov za predavanja in ekipe za predavanja z uporabo API-jev.
Opomba: V večini primerov priporočamo uporabo storitve sinhronizacije šolskih podatkov (SDS), brezplačne storitve, ki pomaga avtomatizirati postopek sinhronizacije podatkov uporabnika in seznama podatkov iz sistemov za upravljanje informacij o študentih ali sistemov za upravljanje s storitvijo Microsoft 365. SDS vam pomaga upravljati izobraževalno organizacijo, uporabnike, predavanja in vloge, sinhronizirati podatke s storitvijo Microsoft Entra ID in storitvijo Microsoft 365, tako da lahko uporabljate Microsoft Teams, Intune za izobraževanje, Exchange Online, SharePoint Online, OneNotove zvezke za predavanja in omogočite aplikacije drugih ponudnikov z integracijo storitve Enotna prijava.
S storitvijo PowerShell in Microsoft Graph lahko še vedno omogočite uporabo razredov in zvezkov v merilu tako, da sledite podprtim načinom. V tem članku so opisani koraki in povezave do ustrezne dokumentacije.
Pomembno: Če sodelujete s partnerjem drugega ponudnika pri omogočanju uporabe razredov na ravni velikosti, dajte ta članek v skupno rabo z njim, preden sami izvedete korake.
Omogočanje uporabe novih razredov
1. možnost (priporočeno): uporaba modula Teams PowerShell
Opozorilo: Pred 21. avgustom 2025 je starejša različica te dokumentacije priporočena omogočanje uporabe prek storitve Teams PowerShell, preden je bila opravljena zahtevana posodobitev. Te posodobitve so zdaj dokončane in trenutno lahko nadaljujete s tem pristopom. Hvala za potrpežljivost.
Z ogrodjem Teams PowerShell lahko preprosto nastavite nova predavanja, kar vključuje vse potrebne nastavitve za predavanja in zvezke. Preprosto prilagodite želeno prikazano ime v tem skriptu in ga zaženite kot skrbnik.
Vzorčni skript
# Using the Teams PowerShell SDK
Install-Module -MicrosoftTeams -Force -AllowClobber
New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class'
|
2. možnost: Uporaba modula Microsoft Graph PowerShell
Če nimate dostopa do orodja Teams PowerShell, boste morda želeli raziskati omogočanje uporabe razredov na lestvici z orodjem Microsoft Graph. Ustrezno uredite parametre na vrhu tega skripta in nato zaženite skript kot skrbnik, da boste lahko nastavili razrede in zvezke v merilu:
Vzorčni 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
|
Odpravljanje težav: dodeljevanje dovoljenj obstoječim mestom razreda
Opomba: Ta pristop bo zahteval tudi, da je oseba, ki izvaja skript, skrbnik mesta, kot je opisano tukaj. Spodnji skript vključuje korak za dodajanje trenutno prijavljenega uporabnika kot skrbnika mesta za mesta, ki jih je treba odpraviti.
Če ste že omogočali predavanja in spremljate napake ali težave z dovoljenji v zvezku za predavanja ali dodelitvami v aplikaciji Teams, lahko posodobite dovoljenja mesta za predavanja s tem skriptom in parameter rawGroups zamenjate z ID-ji skupin za razrede, na katere to vpliva:
Vzorčni 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"
}
|