👨‍💻

Microsoft Graph API PowerShell で SPO からファイルをダウンロード

2023/05/18に公開

はじめに

Defender for Cloud Apps のアプリ ガバナンス機能の検証のため、MS Graph API 経由で SPO にアクセスしてファイルをダウンロードする必要がありました。Graph Explorer だと CORS でエラーになりダウンロードできなかったので、PowerShell でやっています。

ドキュメントがホントに分かりづらく、パラメータをどう拾ってくるか分からない状態だったので、一連の流れをメモしました。

ダウンロードまでの流れ

# サイト ID を取得
$siteId = Get-MgSite -Search "Contoso" | Select-Object -ExpandProperty Id

# ドライブ ID を取得
$driveId = Get-MgSiteDrive -SiteId $siteId | Select-Object -ExpandProperty Id

# パスを指定してダウンロードしたいファイルのアイテム ID を取得
# この場合の /General/test はサイト内の root 配下のフォルダ構成
Get-MgDriveItemChild -DriveId $driveId -DriveItemId root:/General/test:/

# $driveItemId に対象ファイルの ID を指定してダウンロード
$driveItemId = "xxxxxx"
Get-MgDriveItemContent -DriveId $driveId -DriveItemId $driveItemId -OutFile xxx.docx

実行イメージ

参考

https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.sites/get-mgsite?view=graph-powershell-1.0
https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.sites/get-mgsitedrive?view=graph-powershell-1.0

Microsoft (有志)

Discussion