Kun Microsoft parantaa tietoturva-asentoaan kaikissa tuotteissa ja palveluissa, ohjelmointirajapinnan toimintoihin on tehty muutoksia , jotka voivat vaikuttaa asiakkaisiin, jotka ovat aiemmin luottaneet vain sovelluksiin perustuviin käyttöoikeuksiin luokan muistikirjojen ja luokan teamsin valmistelussa ohjelmointirajapintoja käyttämällä.

Huomautus: Useimmissa tapauksissa suosittelemme käyttämään School Data Sync(SDS) -palvelua, joka on maksuton palvelu, jonka avulla voidaan automatisoida opiskelijoiden tietojen tai hallintajärjestelmien käyttäjä- ja osallistujatietojen synkronointia Microsoft 365:n kanssa. SDS:n avulla voit hallita koulutusorganisaatiota, käyttäjiä, luokkia ja rooleja sekä synkronoida tiedot Microsoft Entra ID ja Microsoft 365:n kanssa, jotta voit käyttää Microsoft Teamsia, Intune educationia, Exchange Online, SharePoint Onlinea, Luokan OneNote-muistikirjoja ja ottaa käyttöön kolmannen osapuolen sovelluksia kertakirjautuminen integraatio.

Voit edelleen valmistella luokkia ja muistikirjoja mittakaavassa PowerShellin ja Microsoft Graphin avulla noudattamalla tuettuja menetelmiä. Tässä artikkelissa esitellään vaiheet ja annetaan linkkejä asianmukaisiin ohjeisiin.

Tärkeää: Jos työskentelet kolmannen osapuolen kumppanin kanssa luokkien laajamittaisessa valmistelussa, jaa tämä artikkeli heidän kanssaan ennen kuin ryhdyt toimenpiteisiin itse.

Uusien luokkien valmistelu

Vaihtoehto 1 (suositus): Teams PowerShellin käyttäminen

Varoitus: Ennen 21. elokuuta 2025 tämän dokumentaation aiemmassa versiossa suositeltiin valmistelua Teams PowerShellin kautta ennen vaadittua päivitystä. Nämä päivitykset ovat nyt valmiit, ja voit jatkaa tätä menetelmää tällä hetkellä. Kiitos kärsivällisyydestä.

Voit helposti valmistella uusia luokkia Teams PowerShellin avulla. Se sisältää kaikki tarvittavat määritykset luokkia ja muistikirjoja varten. Mukauta haluamasi näyttönimi seuraavassa komentosarjassa ja suorita se järjestelmänvalvojana.

Tärkeää: Seuraava komentosarja edellyttää, että käytät Microsoft Teams PowerShell -versiota 7.3.1 tai uudempaa versiota. 

Esimerkkikomentosarja

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

Vaihtoehto 2: Microsoft Graph PowerShellin käyttäminen

Jos sinulla ei ole Teams PowerShellin käyttöoikeutta, haluat ehkä tutustua valmisteluluokkiin mittakaavassa Microsoft Graphin avulla. Muokkaa seuraavan komentosarjan yläosassa olevia parametreja tarpeen mukaan ja suorita komentosarja järjestelmänvalvojana luokkien ja muistikirjojen valmistelemiseksi mittakaavassa:

Esimerkkikomentosarja

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

Vianmääritys: käyttöoikeuksien myöntäminen olemassa oleville luokkasivustoille

Huomautus: Tämä menetelmä edellyttää myös, että komentosarjan suorittava henkilö on sivuston järjestelmänvalvoja tässä kuvatulla tavalla. Alla olevassa komentosarjassa on vaihe, jolla tällä hetkellä kirjautuneena oleva käyttäjä lisätään sivuston järjestelmänvalvojaksi vianmääritystä edellyttävien sivustojen osalta.

Jos olet jo valmisillut luokkia ja havaitset virheitä tai käyttöoikeusongelmia luokan muistikirjassa tai Teams-tehtävissä, voit päivittää luokkien sivuston käyttöoikeudet seuraavalla komentosarjalla korvaamalla rawGroups-parametrin kyseisten luokkien ryhmätunnuksilla:

Esimerkkikomentosarja

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

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.