Outlookのキャッシュファイルを自動削除

OutlookをExchange環境でする場合、
キャッシュモードでの使用が推奨されています。

キャッシュモードが有効だと、Exchangeメールボックスの容量に応じて
クライアントローカルにキャッシュファイルが保存されるのですが
複数人で使用するクライアントですとHDDを圧迫しかねません。

グループポリシーのスタートアップスクリプトに組み込むことで
一定日数が経過したキャッシュファイルを削除してくれるスクリプトを書いてみました。

# 変数定義
$OST_Path01 = "C:\Users\";
$OST_Path02 = "\AppData\Local\Microsoft\Outlook\";
$File_Extension = "*.ost";
$Number_Of_Days = 30;

# メイン
$Folder_List = Get-ChildItem -Path $OST_Path01;

foreach($tmp01 in @(Get-ChildItem -Path $OST_Path01)){
    $File_Path = $OST_Path01 + $tmp01.Name + $OST_Path02;

    if(Test-Path -Path $File_Path){
        foreach($tmp02 in @(Get-ChildItem -Path $File_Path -Recurse -Force -Include $File_Extension)){
            $Item_Property = Get-ItemProperty -Path $tmp02.FullName;
            if(((Get-Date) - $Item_Property.LastWriteTime).days -gt $Number_Of_Days){
                Write-EventLog -LogName Application -Source Application -EventID 999 -EntryType Information -Message "PowerShell Script Run.";
                Remove-Item -Path $tmp02.FullName -Force;
            }
        }
    }
}

スクリプトではデフォルトパスを想定し、30日以上更新がないOSTファイル(キャッシュファイル)を
自動的に削除します。この際、削除されたことがわかりにくいのでアプリケーションログに書き込んでいます。
Windowsのユーザープロファイルも含め、使用するには環境に応じたカスタマイズが必要かもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です