ค้นหาเว็บไซต์

สร้างรายงานการใช้งานไซต์ SharePoint Online โดยใช้ Graph API และ PowerShell


ความต้องการ: สร้างรายงานการใช้งานสำหรับไซต์ SharePoint Online

จะสร้างรายงานการใช้งานสำหรับไซต์ SharePoint Online ทั้งหมดในผู้เช่าได้อย่างไร

ถ้าคุณเป็นผู้ดูแลระบบ SharePoint คุณอาจพบว่าการสร้างรายงานเกี่ยวกับวิธีที่ผู้ใช้ของคุณใช้ไซต์และเนื้อหามีประโยชน์ Microsoft ช่วยให้คุณสร้างรายงานการใช้งานที่มีสถิติต่างๆ เช่น ไฟล์ทั้งหมด พื้นที่เก็บข้อมูลที่ใช้ มุมมองหน้า ฯลฯ ได้อย่างง่ายดาย โพสต์ในบล็อกนี้จะแสดงวิธีสร้างรายงานการใช้งานสำหรับไซต์ SharePoint Online ทั้งหมดในผู้เช่าของคุณ รายงานเหล่านี้สามารถใช้เพื่อช่วยคุณติดตามและตรวจสอบกิจกรรมของผู้ใช้บนไซต์ SharePoint ของคุณ

จากพอร์ทัลผู้ดูแลระบบ Microsoft 365 คุณสามารถส่งออกข้อมูลการใช้งานในรูปแบบ CSV ได้ เมื่อต้องการรับรายงานการใช้งานและกิจกรรมสำหรับไซต์ SharePoint Online ทั้งหมด ให้ทำตามขั้นตอนเหล่านี้:

  1. ไปที่ศูนย์การจัดการ Microsoft 365 ที่ https://admin.microsoft.com/
  2. คลิกที่รายงาน >> การใช้งานในการนำทางด้านซ้าย
  3. เลือกรายงานที่ต้องการ เช่น. การใช้งานไซต์ SharePoint

รายงานการใช้งานไซต์ SharePoint จะพร้อมใช้งานในช่วง 7 วัน, 30 วัน, 90 วัน และ 180 วันที่ผ่านมา คุณยังสามารถส่งออกข้อมูลรายงานเป็นไฟล์ CSV ได้โดยเลือกลิงก์ส่งออก

จะสร้างรายงานการใช้งานโดยใช้กราฟ API และ PowerShell ได้อย่างไร

Microsoft Graph API เป็นบริการสื่อสารที่เชื่อมต่อและจัดการข้อมูลระหว่างบริการ Azure และ Microsoft 365 หากต้องการเรียกใช้เมธอด Microsoft Graph API เราจำเป็นต้องมีแอป ทำตามขั้นตอนเหล่านี้เพื่อเพิ่มแอปใหม่

ขั้นตอนที่ 1: สร้างการลงทะเบียนแอปใหม่ใน Azure AD

หากต้องการใช้ Microsoft Graph API คุณต้องลงทะเบียนแอปพลิเคชันก่อน

  1. เข้าสู่ระบบ Azure Active Directory ที่ https://portal.azure.com >> เปิด “Azure Active Directory” >> คลิกที่ “การลงทะเบียนแอป” จากการนำทางด้านซ้าย
  2. คลิกที่ “การลงทะเบียนใหม่” >> ระบุชื่อแอปพลิเคชันของคุณ เลือก “ใครสามารถใช้แอปพลิเคชันนี้หรือเข้าถึง API นี้ได้บ้าง” คลิกที่ปุ่ม “ลงทะเบียน” ที่ด้านล่างเพื่อเพิ่มแอปใหม่

ขั้นตอนที่ 2: ให้สิทธิ์แก่แอป

เมื่อสร้างแอปแล้ว ขั้นตอนต่อไปคือการให้สิทธิ์ที่จำเป็นในการอ่านรายงานการใช้งาน

  1. จากหน้าการลงทะเบียนแอป ให้เปิดแอปที่คุณเพิ่งสร้างขึ้น >> คลิกที่ "สิทธิ์ API"
  2. คลิกที่ “เพิ่มสิทธิ์” >> เลือก “Microsoft Graph” >> เลือก “สิทธิ์ของแอปพลิเคชัน” >> ใต้รายงาน เลือก “รายงานอ่านทั้งหมด”>> คลิกที่ “เพิ่มสิทธิ์”

คุณอาจต้องเลือกการอนุญาตที่แตกต่างกันขึ้นอยู่กับสิ่งที่คุณต้องการเข้าถึง Microsoft Graph API สามารถสืบค้นรายละเอียดเกือบทั้งหมดจาก Azure AD หรือบริการ Office 365 อื่นๆ

ความยินยอมในการสมัคร

การอนุญาตแอปพลิเคชันต้องได้รับความยินยอมจากผู้ดูแลระบบในผู้เช่าก่อนจึงจะสามารถใช้งานได้ สร้าง URL คำยินยอมดังต่อไปนี้:

  • เลือก “รายงานอ่านทั้งหมด” และคลิกที่ปุ่ม “ให้สิทธิ์ผู้ดูแลระบบยินยอมสำหรับ <ผู้เช่าของคุณ>” หนึ่งครั้ง

ขั้นตอนที่ 3: เพิ่มความลับของลูกค้า

ในขั้นตอนสุดท้าย เราจำเป็นต้องมีรหัสลับไคลเอ็นต์ที่เชื่อมโยงกับแอป

  1. จากหน้าแอป คลิกลิงก์ "ใบรับรองและความลับ" ในการนำทางด้านซ้าย คลิกที่ปุ่ม "ความลับของลูกค้าใหม่" เลือกระยะเวลาที่ถูกต้องสำหรับแอปและสร้างรหัสลับไคลเอ็นต์

วิธี PowerShell to Call Graph API เพื่อรับรายงานการใช้งาน

เมื่อเราเตรียมแอปให้พร้อมแล้ว ให้คัดลอกและวางรหัสลูกค้า ข้อมูลลับ และพารามิเตอร์อื่นๆ ลงในสคริปต์นี้แล้วดำเนินการ มาสร้างรายงานการใช้งานสำหรับไซต์ SharePoint Online ของคุณโดยใช้ Graph API และ PowerShell:


#Function to Call Graph API
Function Get-UsageReport {
param (
    [parameter(Mandatory = $true)] [string]$ClientID,
    [parameter(Mandatory = $true)] [string]$ClientSecret,
    [parameter(Mandatory = $true)] [string]$TenantName, 
    [parameter(Mandatory=$true)] [string]$GraphUrl
)
    Try {
        #Graph API URLs
        $LoginUrl = "https://login.microsoft.com"
        $ResourceUrl = "https://graph.microsoft.com"
 
        #Compose REST request
        $Body = @{ grant_type = "client_credentials"; resource = $ResourceUrl; client_id = $ClientID; client_secret = $ClientSecret }
        $OAuth = Invoke-RestMethod -Method Post -Uri $LoginUrl/$TenantName/oauth2/token?api-version=1.0 -Body $Body
 
        #Perform REST call
        $HeaderParams = @{ 'Authorization' = "$($OAuth.token_type) $($OAuth.access_token)" }
        $Result = (Invoke-WebRequest -UseBasicParsing -Headers $HeaderParams -Uri $GraphUrl)

        #Format Microsoft Graph Output
        (($Result).RawContent -Split "\?\?\?")[1] | ConvertFrom-Csv
    }    
    Catch {
        Write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
    }
}

#Parameters
$ClientID = "98ax2c6d2-264c-424e-b911-c33x547de5211"
$ClientSecret = "T1ZP3-a_NIoA4cej2xky.2xaDcF..6E5"
$TenantName = "crescentintranet.onmicrosoft.com"
$GraphUrl = "https://graph.microsoft.com/v1.0/reports/getSharePointSiteUsageDetail(period='D30')"

#Call the function to get usage data
$UsageData = Get-UsageReport -ClientID $ClientID -ClientSecret $ClientSecret -TenantName $TenantName -GraphUrl $GraphUrl
$UsageData
$UsageData | Export-Csv "C:\Temp\siteusage.csv" -NoTypeInformation

สคริปต์ PowerShell นี้สร้างรายงาน CSV เป็น:

การอ้างอิง Microsoft Graph REST API https://docs.microsoft.com/en-us/graph/api/resources/sharepoint-activity-reports?view=graph-rest-1.0

บทความที่เกี่ยวข้อง