Budući da Microsoft poboljšava svoje sigurnosno stanje u svim proizvodima i uslugama, došlo je do promjena u funkcionalnosti API-ja koje mogu utjecati na korisnike koji su se prije oslanjali na dozvole samo za aplikaciju za dodjelu resursa Bilježnicama za predmete i timovima predmeta pomoću API-ja.
Napomena
U većini slučajeva preporučujemo korištenje sinkronizacije školskih podataka (SDS), besplatnog servisa koji pomaže u automatizaciji postupka sinkronizacije podataka korisnika i popisa učenika iz informacijskih sustava ili sustava za upravljanje studentima sa sustavom Microsoft 365. SDS vam pomaže u upravljanju obrazovnom organizacijom, korisnicima, razredima i ulogama, sinkronizaciji vaših podataka s Microsoft Entra ID-om i sustavom Microsoft 365, tako da možete koristiti Microsoft Teams, Intune za obrazovanje, Exchange Online, SharePoint Online, bilježnice za predmete u programu OneNote i omogućiti aplikacije trećih strana s Jedinstvena prijava integracija.
I dalje možete dodjeljivati predmete i bilježnice na razini pomoću ljuske PowerShell i Microsoft Graph slijedeći podržane metode. U ovom se članku navode koraci i navode veze na relevantnu dokumentaciju.
Važno
Ako radite s partnerom treće strane na dodjeli resursa predmetima na razini tvrtke, podijelite ovaj članak s njima prije nego što sami poduzmete korake.
Dodjela novih predmeta
1. mogućnost (preporučeno): Korištenje komponente Teams PowerShell
Upozorenje
Prije 21. kolovoza 2025. prethodna verzija ove dokumentacije preporučivala je dodjelu resursa putem komponente Teams PowerShell prije potrebnog ažuriranja. Ta su ažuriranja sada dovršena i trenutno možete nastaviti s tim pristupom. Hvala vam na strpljenju.
Dodjela novih predmeta pomoću komponente PowerShell aplikacije Teams jednostavno je koja će uključivati sve potrebne postavke za predmete i bilježnice. Jednostavno prilagodite željeni zaslonski naziv u sljedećoj skripti i pokrenite ga kao administrator.
Važno
Sljedeća skripta zahtijeva da koristite verziju 7.3.1 ili noviju ljusku PowerShell za Microsoft Teams .
Ogledna skripta
| # Korištenje Teams PowerShell SDK-a Install-Module -MicrosoftTeams -Force -AllowClobber New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class' |
|---|
2. mogućnost: korištenje komponente Microsoft Graph PowerShell
Ako nemate pristup komponenti Teams PowerShell, možda ćete htjeti istražiti dodjelu razreda na razini pomoću platforme Microsoft Graph. Po potrebi uredite parametre na vrhu sljedeće skripte, a zatim pokrenite skriptu kao administrator da biste resurse dodjeljivali predmete i bilježnice na razini
Ogledna skripta
| # Korištenje API-ja značajke MS Graph Install-Module Microsoft.Graph -AllowClobber -Force # PARAMETERS $Name = "Test Class 20251208.3" $Description = "A Test Class" $Mail = $Name -replace '[^a-zA-Z0-9\s]|[ ]', '' # Zamijenite ovaj pseudonim e-pošte preferiranom metodom generiranja $OwnerId = "000-000-00000-000000-000" # Zamijenite ga GUID-om vlasnika # ------------ # Stvaranje nove grupe okruženja M365 $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" # Stvorite tim razreda u aplikaciji Teams iz grupe $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 |
|---|
Otklanjanje poteškoća: dodjeljivanje dozvola postojećim web-mjestima razreda
Napomena
U tom će se pristupu zahtijevati i da osoba koja pokreće skriptu bude administrator web-mjesta, kao što je opisano ovdje. Skripta u nastavku sadrži korak za dodavanje trenutno prijavljenog korisnika kao administratora web-mjesta za web-mjesta za koja je potrebno otklanjanje poteškoća.
Ako ste već dodijelili nastavu i uočavate pogreške ili probleme s dozvolama u Bilježnici za predmete ili zadacima u aplikaciji Teams, dozvole web-mjesta za svoje predmete možete ažurirati pomoću sljedeće skripte zamjenjujući parametar rawGroups s groupID-jevima zahvaćenih klasa:
Ogledna skripta
| #You će se morati povezati sa sustavom SharePoint, Exchange Online i servisom Graph sa sljedećim -Scopes Sites.FullControl.All, kao i prikupiti ID-ove grupe timova predmeta na koje se odnosi $rawGroups =@("b0a5905d-09ae-4605-8e12-94da93ecbe92","e0eec729-24ef-451e-b079-56d0baf4dfc9") # Pretvori u polje objekata s .groupid $groups = $rawGroups | ForEach-Object { Get-UnifiedGroup -Identity $_ } $step = 0 #get račun trenutno prijavljenog korisnika koji treba dodati kao administratora web-mjesta $CUA = (get-mgcontext).account foreach ($group u $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 na 5 minuta prije nego što tiggering tijekom stvaranja opće mape 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 u $groups) { #$step = $step + 1 $Site = Get-MgGroupSite -GroupId $group. ExternalDirectoryObjectId -SiteId "root" $SiteId = $Site.Id Write-Host "Obrada dozvola za $step od $($Groups.Count) klase" # Ovo su ID-jevi aplikacija za uobičajene Microsoftove EDU aplikacije $AppIds = @{ "8f348934-64be-4bb2-bc16-c54c96789f43"="Zadaci za obrazovanje"; "22d27567-b3f0-4dc2-9ec2-46ed368ba538"="Zadaci čitanja"; "2d4d3d8e-2be3-4bef-9f87-7875a61c29de"="OneNote"; "c9a559d2-7aab-4f13-a6ed-e7e9c52aec87"="Microsoft Forms"; " 13291f5a-59ac-4c59-b0fa-d1632e8f3292"="OneNote za EDU"; } # Primjena dozvola na web-mjesto grupe $AppIds.Keys | %{ $AppId = $_ $Name = $AppIds[$_] $Body = @" { "uloge": ["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 "Obrađene klase $($Groups.Count), uklanjanje sitecollectionadmin" $step = 0 foreach ($group u $groups) { $step = $step + 1 Set-SPOUser -Site $group. SharePointSiteUrl -LoginName $CUA -IsSiteCollectionAdmin $false Write-Host "SiteCollectionAdmin uklonjen je na $step web-mjesta klase $($Groups.Count)" } |
|---|