Pe măsură ce Microsoft își îmbunătățește postura de securitate în toate produsele și serviciile, au existat modificări ale funcționalității API care pot afecta clienții care anterior se bazau pe permisiuni doar pentru aplicații pentru a asigura accesul la blocnotesurile școlare și la Echipele claselor utilizând API-uri.

Notă: În majoritatea cazurilor, vă recomandăm să utilizați Sincronizarea datelor școlare(SDS), un serviciu gratuit care vă ajută să automatizați procesul de sincronizare a datelor de utilizator și de listă din informațiile elevilor/studenților sau sistemele de gestionare cu Microsoft 365. SDS vă ajută să gestionați organizația educațională, utilizatorii, clasele și rolurile, sincronizând datele cu Microsoft Entra ID și Microsoft 365, astfel încât să puteți utiliza Microsoft Teams, Intune pentru educație, Exchange Online, SharePoint Online, blocnotesurile școlare OneNote și să activați aplicații de la terți cu Autentificare unică integrare.

Puteți asigura în continuare accesul la cursuri și blocnotesuri la scară, utilizând PowerShell și Microsoft Graph, urmând metodele acceptate. Acest articol prezintă pașii și oferă linkuri către documentația relevantă.

Important: Dacă lucrați cu un partener terț la asigurarea accesului la scară a cursurilor, vă rugăm să partajați acest articol cu el înainte de a lua măsuri pe cont propriu.

Asigurarea accesului la clase noi

Opțiunea 1 (recomandat): Utilizarea Teams PowerShell

Avertisment: Înainte de 21 august 2025, o versiune anterioară a acestei documentații recomanda asigurarea accesului prin Teams PowerShell înainte de actualizarea necesară. Aceste actualizări sunt acum finalizate și puteți continua cu această abordare în acest moment. Vă mulțumesc pentru răbdare.

Este simplu să furnizați noi clase utilizând Teams PowerShell, care va include toate configurările necesare pentru cursuri și blocnotesuri. Particularizați pur și simplu numele afișat dorit în scriptul următor și rulați-l ca administrator.

Important: Următorul script necesită să utilizați Microsoft Teams PowerShell versiunea 7.3.1 sau o versiune mai nouă. 

Exemplu de script

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

Opțiunea 2: utilizarea Microsoft Graph PowerShell

Dacă nu aveți acces la Teams PowerShell, se recomandă să explorați clasele de asigurare a accesului la scară, utilizând Microsoft Graph. Editați parametrii din partea de sus a scriptului următor după cum este necesar, apoi rulați scriptul ca administrator pentru a asigura accesul la cursuri și blocnotesuri la scară:

Exemplu de script

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

Depanare: acordarea de permisiuni site-urilor școlare existente

Notă: Această abordare va necesita, de asemenea, ca persoana care rulează scriptul să fie administrator de site, așa cum este descris aici. Scriptul de mai jos include un pas pentru a adăuga utilizatorul conectat în prezent ca administrator de site pentru site-urile care necesită depanare.

Dacă ați asigurat deja accesul la cursuri și observați erori sau probleme de permisiune cu Blocnotes școlar sau Atribuiri Teams, puteți actualiza permisiunile de site pentru clasele dumneavoastră utilizând următorul script, înlocuind parametrul rawGroups cu id-urile de grup ale claselor afectate:

Exemplu de script

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

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.