OneDrive×FSLogix併用時のプロファイル圧迫問題を解消してみた!

AVDのセッションホスト環境では、ユーザーの利便性を高めるために[OneDrive]と[FSLogix]を組み合わせて利用するケースがあると思います。
しかし、運用を続けているうちに「FSLogixのプロファイル容量が想定以上に増えている」「ディスクがすぐにいっぱいになる」といった課題に直面したことはないでしょうか。
その原因のひとつが、OneDriveとFSLogixの併用によって、同じファイルがOneDrive側と FSLogixプロファイル側の両方に保存されてしまうためです。
デスクトップ上に保存したファイルは、OneDriveにも、FSLogixにも保存されます。

今回は、この問題を解消してみたいと思います!

さっそく、構成を見てみましょう!

①ユーザーがセッションホストにサインイン
②ログオン スクリプト[OneDriveCleanUp_LogonScript.ps1]が実行される
③ログオン スクリプトで[OneDriveCleanUp_TaskSchedule.ps1]が実行され、ユーザーごとに30分間隔でファイルのオンライン化スクリプト[OneDriveCleanUp.ps1]を実行するタスク スケジューラが作成される。
④ローカルに保存されたファイルをオンライン化する事で、OneDriveのみに存在する状態にする。ローカルファイルが削減されるので、FSLogixのプロファイル領域が空きます。

このスクリプトを実行すると、①②の状態から、OneDriveのみの状態にします。

①常にローカルディスク上に保存されている状態
②OneDrive上とローカルディスク上に保存されている状態
※③を開くと、ダウンロードされ②になる。ファイルは自動で削除される事は無い。
③OneDrive上にのみ保存されている状態

[利用のための諸条件]
・OneDriveにサインインしている必要があります。
・使用中のファイルは対象外です。
・管理者権限は不要です。


それでは、やってみよう!!

3つのスクリプトはここからダウンロード

下記、2つのスクリプトをマスターイメージ内に保存しておくか、ファイルサーバー上に配置[OneDriveCleanUp_TaskSchedule.ps1] ←24行目に実行間隔を定義。デフォルト30分
[OneDriveCleanUp.ps1]

下記、ログオン スクリプトをセッションホストから実行できるファイルサーバーに配置[OneDriveCleanUp_LogonScript.ps1]

powershell.exe -NoProfile -ExecutionPolicy Bypass -File “C:\OneDriveCleanUp_TaskSchedule.ps1” -CleanupScriptPath “C:\OneDriveCleanUp.ps1″
※スクリプトの配置場所を指定してください。

以上で完了!


それでは、確認してみましょう!

【スクリプト実行前】
プロファイルの空き容量[60%]
ファイルは、ローカルディスクとOneDriveに保存されている状態

【スクリプト実行後】
プロファイルの空き容量[94%] ※ローカルディスクが解放され空き容量が増えている
ファイルは、OneDriveのみに保存されている状態

ユーザーごとにタスクスケジューラが作成されている
[C:\Windows\System32\Tasks]