Dok Microsoft poboljšava bezbednost u svim proizvodima i uslugama, došlo je do promena u funkcionalnosti API-ja koje mogu da utiču na klijente koji su se prethodno oslanjali na dozvole samo za aplikaciju kako bi obezbedili beležnice za razred i timove razreda pomoću API-ja.

Napomena: U većini slučajeva, preporučujemo da koristite sinhronizovanje školskih podataka (SDS), besplatnu uslugu koja pomaže u automatizovanju procesa sinhronizacije podataka korisnika i spiska podataka iz sistema za informacije o studentima ili upravljanja sa uslugom Microsoft 365. SDS vam pomaže da upravljate obrazovnom organizacijom, korisnicima, razredima i ulogama, sinhronizujete podatke sa uslugama Microsoft Entra ID i Microsoft 365, tako da možete da koristite Microsoft Teams, Intune za obrazovanje, Exchange Online, SharePoint Online, OneNote beležnice za razred i omogućite aplikacije nezavisnih proizvođača uz Jedinstveno prijavljivanje Integraciju.

I dalje možete da pripremate klase i beležnice koristeći PowerShell i Microsoft Graph tako što ćete pratiti podržane metode. Ovaj članak navodi korake i pruža veze ka relevantoj dokumentaciji.

Važno: Ako radite sa nezavisnim partnerom prilikom obezbeđivanja časova, podelite ovaj članak sa njima pre nego što sami izvršite korake.

Obezbeđivanje novih klasa

Opcija 1 (preporučuje se): Korišćenje programa Teams PowerShell

Upozorenje: Pre 21. avgusta 2025. prethodna verzija ove dokumentacije preporučila je obezbeđivanje putem usluge Teams PowerShell pre nego što je bilo potrebno ažuriranje. Ove ispravke su sada dovršene i možete da nastavite sa ovim pristupom u ovom trenutku. Hvala vam na strpljenju.

Jednostavno je pripremiti nove razrede pomoću usluge Teams PowerShell, što će obuhvatiti sva neophodna podešavanja za razrede i beležnice. Jednostavno prilagodite željeno ime za prikaz u sledećoj skripti i pokrenite ga kao administrator.

Važno: Sledeća skripta zahteva da koristite Microsoft Teams PowerShell verziju 7.3.1 ili noviju. 

Uzorak skripte

# Using the Teams PowerShell SDK
Install-Module -MicrosoftTeams -Force -AllowClobber
New-Team -DisplayName 'Test Class 20251208.4' -Template 'EDU_Class'

Opcija 2: Korišćenje programa Microsoft Graph PowerShell

Ako nemate pristup programu Teams PowerShell, možda ćete želeti da istražite pripremu časova za dodelu privilegija koristeći Microsoft Graph. Uredite parametre na vrhu sledeće skripte po potrebi, a zatim pokrenite skriptu kao administrator da biste obezbedili klase i beležnice na nivou:

Uzorak skripte

# 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​​​​​​​

Rešavanje problema: dodeljivanje dozvola postojećim lokacijama razreda

Napomena: Ovaj pristup takođe zahteva da osoba koja pokreće skriptu bude administrator lokacije, kao što je opisano ovde. Dolenavedena skripta sadrži korak za dodavanje trenutno prijavljenog korisnika kao administratora lokacije za sajtove koji zahtevaju rešavanje problema.

Ako ste već obezbedili razrede i posmatrate greške ili probleme sa dozvolama u beležnici za razred ili zadacima u usluzi Teams, možete da ažurirate dozvole lokacije za razred koristeći sledeću skriptu i tako zamenite rawGroups parametar groupID-ovima ugroženih razreda:

Uzorak skripte

#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"
}

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.