"Microsoft" pagerėja visų produktų ir paslaugų saugos laikysena, todėl pasikeitė API funkcijos, kurios gali turėti įtakos klientams, kurie anksčiau naudojo tik programų teises, kad galėtų konfigūruoti mokomuosius bloknotus ir "Class Teams" naudodami API.
Pastaba: Daugeliu atvejų rekomenduojame naudoti mokyklos duomenų sinchronizavimą(SDS) – nemokamą paslaugą, padedančią automatizuoti vartotojų sinchronizavimo ir sąrašo duomenis iš studentų informacijos arba valdymo sistemų su "Microsoft 365". SDS padeda valdyti švietimo organizaciją, vartotojus, klases ir vaidmenis, sinchronizuoti duomenis su Microsoft Entra ID ir "Microsoft 365", kad galėtumėte naudoti "Microsoft Teams", Intune švietimo įstaigoms, Exchange Online, "SharePoint Online", "OneNote" mokomuosius bloknotus ir įgalinti trečiųjų šalių programas naudodami Bendroji autentifikacija integracija.
Naudodami "PowerShell" ir "Microsoft Graph" vis tiek galėsite konfigūruoti klases ir bloknotus masteliu, naudodami palaikomus metodus. Šiame straipsnyje nurodomi veiksmai ir pateikiami saitai į susijusius dokumentus.
Svarbu: Jei su trečiosios šalies partneriu dirbate klasės parengimo lygiu, pasidalykite šiuo straipsniu prieš imdamiesi veiksmų patys.
Naujų klasių parengimas
1 parinktis (rekomenduojama): "Teams PowerShell" naudojimas
Įspėjimas: Iki 2025 m. rugpjūčio 21 d. ankstesnė šios dokumentacijos versija rekomendavo parengimą naudojant "Teams PowerShell" prieš atliekant būtiną naujinimą. Šie naujinimai jau baigti ir šiuo metu galite toliau taikyti šį metodą. Dėkojame už kantrybę.
Paprasta parengti naujas klases naudojant "Teams PowerShell", kuri apims visą reikalingą klasių ir bloknotų sąranką. Tiesiog tinkinkite norimą rodomą vardą naudodami šį scenarijų ir paleiskite jį administratoriaus teisėmis.
Scenarijaus pavyzdys
# Using the Teams PowerShell SDK
Install-Module -MicrosoftTeams -Force -AllowClobber
New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class'
|
2 parinktis: "Microsoft Graph PowerShell" naudojimas
Jei neturite prieigos prie "Teams PowerShell", galbūt norėsite peržiūrėti parengimo klases pagal mastelį naudodami "Microsoft Graph". Atitinkamai redaguokite parametrus šio scenarijaus viršuje, tada paleiskite scenarijų administratoriaus teisėmis, kad būtų galima parengti klases ir bloknotus:
Scenarijaus pavyzdys
# 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
|
Trikčių šalinimas: teisių suteikimas esamoms klasės svetainėms
Pastaba: Šis būdas taip pat reikalauja, kad scenarijų vykdantis asmuo būtų svetainės administratorius, kaip aprašyta čia. Toliau pateiktame scenarijuje yra veiksmas, kaip įtraukti šiuo metu prisijungusį vartotoją kaip svetainių, kurioms reikia pašalinti triktis, administratorių.
Jei jau esate sukūrę klasių ir stebite nesėkmes arba teisių problemas, susijusias su mokomuoju bloknotu arba "Teams" priskyrimais, galite atnaujinti savo klasių svetainės teises naudodami šį scenarijų, pakeisdami rawGroups parametrą paveiktų klasių grupės ID:
Scenarijaus pavyzdys
#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"
}
|