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ă Integrarea.
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
| # Utilizarea Teams PowerShell SDK Install-Module -MicrosoftTeams -Force -AllowClobber New-Team -DisplayName "Test Class 20251208.4" - Șablon "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
| # Utilizarea API-ului 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]|[ ]', '' # Înlocuiți acest alias de e-mail cu o metodă de generare preferată $OwnerId = "000-000-00000-0000-000" # Înlocuiți-l cu GUID-ul proprietarului # ------------ # Creați un nou grup M365 $CreateGroupBody = @" { "descriere": "$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" ], "vizibilitate": "HiddenMembership", "creationOptions": [ "ExchangeProvisioningFlags:461", "classAssignments" ], "extension_fe2174665583431c953114ff7268b7b3_Education_ObjectType": "Secțiune", "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 va trebui să se conecteze la SharePoint, Exchange Online, și Graph cu următoarele site-uri -Scopes.FullControl.All și colectează id-urile de grup ale Echipelor clase afectate $rawGroups =@("b0a5905d-09ae-4605-8e12-94da93ecbe92","e0eec729-24ef-451e-b079-56d # Conversie la matrice de obiecte cu .groupid $groups = $rawGroups | ForEach-Object { Get-UnifiedGroup -Identity $_ } $step = 0 #get contul de utilizator conectat în prezent pentru a-l adăuga ca administrator de site $CUA = (get-mgcontext).account foreach ($group în $groups) { $step = $step + 1 Set-SPOUser -Site $group. SharePointSiteUrl -LoginName $CUA -IsSiteCollectionAdmin $true Write-Host "SiteCollectionAdmin adăugat la $step de site-uri școlare $($Groups.Count) " } #Pause timp de 5 minute înainte de a eșalona crearea folderelor generale Write-Host "Pauză timp de 5 minute înainte de a adăuga perms la permiteți siteCollectionAdmin să se propage" Start-Sleep -Secunde 300 Write-Host "Se lucrează la clasele $($Groups.Count) " ($group în $groups) { #$step = $step + 1 $Site = Get-MgGroupSite -GroupId $group. ExternalDirectoryObjectId -SiteId "root" $SiteId = $Site.Id Write-Host "Se procesează permisiunile pe $step din clasele $($Groups.Count) # Acestea sunt id-urile de aplicație pentru Microsoft E comun AplicațiiDU $AppIds = @{ "8f348934-64be-4bb2-bc16-c54c96789f43"="Atribuiri EDU"; "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"; } # Aplicați permisiunile la site-ul de grup $AppIds.Keys | %{ $AppId = $_ $Name = $AppIds[$_] $Body = @" { "roluri": ["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, se elimină sitecollectionadmin" $step = 0 ($group din $groups) { $step = $step + 1 Set-SPOUser -$group de site. SharePointSiteUrl -LoginName $CUA -IsSiteCollectionAdmin $false Write-Host "SiteCollectionAdmin eliminat pe $step de site-uri școlare $($Groups.Count) " } |
|---|