เนื่องจาก Microsoft ปรับปรุงท่าทางด้านความปลอดภัยของผลิตภัณฑ์และบริการ ทั้งหมด มีการเปลี่ยนแปลงฟังก์ชัน API ที่อาจส่งผลกระทบต่อลูกค้าที่พึ่งพาสิทธิ์เฉพาะแอปก่อนหน้านี้เพื่อเตรียมใช้งานสมุดบันทึกสําหรับชั้นเรียนและทีมชั้นเรียนโดยใช้ API

หมายเหตุ: ในกรณีส่วนใหญ่ เราขอแนะนําให้ใช้การซิงค์ข้อมูลโรงเรียน(SDS) ซึ่งเป็นบริการฟรีที่ช่วยในการซิงโครไนซ์ข้อมูลผู้ใช้และบัญชีรายชื่อจากข้อมูลนักเรียนหรือระบบการจัดการกับ Microsoft 365 โดยอัตโนมัติ SDS ช่วยให้คุณจัดการองค์กร ผู้ใช้ ชั้นเรียน และบทบาททางการศึกษาการซิงค์ข้อมูลของคุณกับ Microsoft Entra ID และ Microsoft 365 เพื่อให้คุณสามารถใช้ Microsoft Teams, Intune for Education, Exchange Online, SharePoint Online, สมุดบันทึกสําหรับชั้นเรียนของ OneNote และเปิดใช้งานแอปของบริษัทภายนอกด้วย ลงชื่อเข้าระบบครั้งเดียว บูรณาการ

คุณยังคงสามารถเตรียมใช้งานชั้นเรียนและสมุดบันทึกได้ตามขนาดโดยใช้ PowerShell และ Microsoft Graph โดยทําตามวิธีการที่ได้รับการสนับสนุน บทความนี้สรุปขั้นตอนและให้ลิงก์ไปยังเอกสารที่เกี่ยวข้อง

สิ่งสำคัญ: ถ้าคุณกําลังทํางานกับคู่ค้าบริษัทภายนอกในการเตรียมใช้งานชั้นเรียนในระดับต่างๆ โปรดแชร์บทความนี้กับพวกเขาก่อนที่จะดําเนินการด้วยตนเอง

การเตรียมใช้งานชั้นเรียนใหม่

ตัวเลือกที่ 1 (แนะนํา): การใช้ Teams PowerShell

คำเตือน: ก่อนวันที่ 21 สิงหาคม 2025 เอกสารประกอบที่แนะนําก่อนหน้านี้ผ่าน Teams PowerShell ก่อนที่จะทําการอัปเดตที่จําเป็น ขณะนี้การอัปเดตเหล่านี้เสร็จสมบูรณ์แล้ว และ คุณสามารถดําเนินการต่อด้วยวิธีนี้ได้ในขณะนี้ ขอบคุณที่อดทนรอ

การเตรียมใช้งานชั้นเรียนใหม่โดยใช้ Teams PowerShell เป็นเรื่องง่าย ซึ่งจะรวมการตั้งค่าที่จําเป็นทั้งหมดสําหรับชั้นเรียนและสมุดบันทึก เพียงกําหนดชื่อที่แสดงที่ต้องการในสคริปต์ต่อไปนี้และเรียกใช้ในฐานะผู้ดูแลระบบ

สิ่งสำคัญ: สคริปต์ต่อไปนี้กําหนดให้คุณใช้ Microsoft Teams PowerShell เวอร์ชัน 7.3.1 หรือใหม่กว่า 

ตัวอย่างสคริปต์

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

ตัวเลือกที่ 2: การใช้ Microsoft Graph PowerShell

ถ้าคุณไม่สามารถเข้าถึง Teams PowerShell คุณอาจต้องการสํารวจชั้นเรียนการเตรียมใช้งานในระดับที่ปรับขนาดโดยใช้ Microsoft Graph แก้ไขพารามิเตอร์ที่ด้านบนของสคริปต์ต่อไปนี้ตามความเหมาะสม แล้วเรียกใช้สคริปต์ในฐานะผู้ดูแลระบบเพื่อเตรียมใช้งานชั้นเรียนและสมุดบันทึกในระดับ:

ตัวอย่างสคริปต์

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

แก้ไขปัญหา: การให้สิทธิ์กับไซต์สําหรับชั้นเรียนที่มีอยู่

หมายเหตุ: วิธีนี้จะต้องให้บุคคลที่เรียกใช้สคริปต์เป็นผู้ดูแลไซต์ตามที่อธิบายไว้ที่นี่ สคริปต์ด้านล่างมีขั้นตอนในการเพิ่มผู้ใช้ที่เข้าสู่ระบบในปัจจุบันเป็นผู้ดูแลไซต์สําหรับไซต์ที่ต้องการการแก้ไขปัญหา

ถ้าคุณเตรียมใช้งานชั้นเรียนแล้ว และพบปัญหาความล้มเหลวหรือสิทธิ์ในงานที่มอบหมายในสมุดบันทึกสําหรับชั้นเรียนหรืองานที่มอบหมายของ Teams คุณสามารถอัปเดตสิทธิ์ของไซต์สําหรับชั้นเรียนของคุณโดยใช้สคริปต์ต่อไปนี้ โดยแทนที่พารามิเตอร์ rawGroups ด้วยรหัสกลุ่มของชั้นเรียนที่ได้รับผลกระทบ:

ตัวอย่างสคริปต์

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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ