🙊

Sharepointドキュメントライブラリ内のファイルを一括で秘密度ラベル付与 (暗号化)できるか

に公開

はじめに

この記事で紹介した方法について、SPO上のファイルはできるの?と思ったので試してみた
https://zenn.dev/nyomomo/articles/f436102caaa8e9

※あくまでやってみた記事であるため、問題やリスクがないか?についてはMicrosoftサポートに問い合わせるなどの対応をお願いします

検証方法1:失敗

特にエクスプローラーなどの設定はせず、ラベル早くコマンドの -path をSharepointサイトURLにしてみる

結果:エラーとなる。

公式ドキュメントの記載

ドキュメントの記載より、SharepointパスはSharepoint server(Onlineではない)のみ指定ができるようです。

ラベルと保護情報を取得するファイルへのローカル パス、ネットワーク パス、または SharePoint Server URL を指定します。

SharePoint パスでは、次のものがサポートされています。

SharePoint サーバー 2022
SharePoint Server 2019
SharePoint Server 2016
SharePoint Server 2013
例えば次が挙げられます。

C:\Folder
C:\Folder\Filename
\Server\Folder
http://sharepoint.contoso.com/Shared Documents/Folder
パス値を引用符で囲むと、パスにスペースを含めることができます。

https://learn.microsoft.com/ja-jp/powershell/module/purviewinformationprotection/set-filelabel?view=azureipps#-path

検証方法2 :成功 Onedriveと同期したあと実施する

Onedriveと同期する


Onedriveにサインインする

次へ

画面指示に従いいくつか「次へ」を押す
この画面になったら完了

エクスプローラーにSharepointサイトが追加される
このパスを控えておく

コマンド実行

ファイルを付与するコマンドを実行する。

 Get-FileStatus -Path "C:\Users\XXX(ユーザ名)\(テナント名)\(サイト名)Powershell暗号化テストサイト - ドキュメント" |
Where-Object {$_.IsLabeled -eq $False} |
Set-FileLabel -LabelId ラベルID(差し替えてください)  

結果

コマンド結果
成功した。

コマンド実行中に、Onedriveにダウンロードしています・・と言う旨のポップアップが表示されたので、
ローカルにダウンロードしてからラベル付与しているイメージになるのだと思われます。
そのため、大量のファイルについて実行するには、実施するPCの容量確認が必要そうです。
また、SharepointとOnedriveを同期するファイルの上限は30万ファイルと記載がある。これを超える数のドキュメントがSharepoint側にある場合は時間がかかるよう。

300,000 を超えるファイルがある場合、同期に時間がかかる場合があります。

https://support.microsoft.com/ja-jp/office/onedrive-と-sharepoint-の制限事項と制約事項-64883a5d-228e-48f5-b3d2-eb39e07630fa#synctoomany

エクスプローラー
エクスプローラーでは、アイコンに鍵マークがついており、暗号化されていることが確認できます。

なお、アイコンに鍵マークがつかないOfficeファイルに関しても、ファイルを開くと、ラベルが付与されていることが確認できます。
なぜかエクスプローラーからデスクトップアプリで開くとエラーになってしまいましたが…。(デスクトップアプリのこのテナントのアカウントでサインインしてないため??と推測。。)

sharepointサイト
Sharepointサイトでは、
Officeファイルは秘密度ラベルが付与されていることが確認できます。
Officeファイル以外はpファイル形式になっており暗号化ありのラベルがかかっていることが確認できます。

Officeファイル

Officeファイル以外
例えばTXTファイルをアプリで開くとすると、Purview Information クライアントが開かれ、下記のように暗号化されていることが確認できる。

おわりに

SPOのファイルをコマンドで一括ラベル付与したい場合は、エクスプローラーと、Onedriveを同期してから実施する。

参考 SharepointとOnedriveの同期を解除する方法

Onedriveのデスクトップアプリを開く

設定>アカウント

SPOサイト>同期の停止

参考

自動化する方法
https://learn.microsoft.com/ja-jp/powershell/azure/aip/setup-information-protection-client-powershell?view=azureipps#how-to-label-files-non-interactively-for-azure-information-protection

コマンドリファレンス
https://learn.microsoft.com/ja-jp/powershell/module/purviewinformationprotection/set-filelabel?view=azureipps

今後の検討

予めOnedrive(Sharepoint)上のデータをローカルで動くようにしておいた方がスムーズな気がする。。
コマンドでやるなら↓かなと思っている
https://learn.microsoft.com/ja-jp/sharepoint/files-on-demand-windows

Discussion