treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

BunBackupを使って.pstファイルだけ個別にバックアップをやってみる

依頼があって.pstファイルの手動バックアップを取得する仕組みを作ることになったので、その実施内容をご報告です。

経緯

Windows環境でユーザプロファイルのバックアップをBunBackupを使って自動で取得している環境がありましたが、エラーが出てOutlookが起動しないという問合せがあって対処を実施することになりました。

エラー内容は(画像は取れなかったのですが)、

「Microsoft Outlook を起動できません。 Outlook ウィンドウを開けません。 このフォルダーのセットを開けません。 ファイル %USERPROFILE%\Documents\Outlook ファイル\Outlook.pst は使用中なのでアクセスできません。このファイルを使用している他のアプリケーションを終了して、再度実行してください。コンピューターの再起動が必要となる可能性もあります。」

と表示されます。

Outlookがプログラムの開始時に読み込む.pstファイルが別のプロセスでロック(使用中の状態)となっているため、Outlookが.pstを読み込めない状態の時に発生するエラーメッセージとなります。

ただ、PC起動直後でOutlookしかユーザは起動しようとしていない状態でこのエラーが発生したため、これはなんだ?という感じになりました。

対象となる環境のバージョンはMicrosoft365のOutlook(classic)です。PSTが置かれているフォルダはローカルのドキュメントフォルダでありOneDriveではありません。

原因はバックアップ(BunBackup)

PC起動⇒ユーザサインイン、ここでバックグランドでBunBackupを起動してサイレントでユーザプロファイルのバックアップをタスクスケジューラに設定して実行していたのですが、(長期間メールデータを溜め込んでいることによる)Outlook.pstファイルの容量が肥大化してしまったことで、バックアップに時間が掛かるようになってしまっていました。

そのため、このバックアップジョブの実行中にはOutlook.pstファイルがロックされてしまい、Outlookを起動するときに.pstファイルを読み込めない状況になって、前述のエラーメッセージが発生する要因となっていました。

.pstファイルの容量が大きいと自動バックアップというのはユーザの使用時とバックアップジョブの実行でタイミングが合わないことが多くなったという環境の変化が要因となっているようです。

.pstファイルはユーザが手動でバックアップを取得する、という方法で構わないので、簡易に実行可能なようにしてもらいたい、ということから、.pstファイルバックアップをバッチファイル経由でBunBackupを起動してワンクリックで実行できるようにしてみました。

今回はその記録となります。

※前提条件として、BunBackupがインストールされている環境で、BunBackupによってユーザプロファイルのバックアップが正常に取得出来ている状態、が今回の対象の環境です。

BunBackupのジョブを調整

BunBackupのジョブから「.pst」ファイルを除外します。

自動バックアップに使っているジョブから、「.pst」ファイルだけを除外する設定にすることで、除外されたファイルはバックアップの対象から外れるようになります。(これによって大容量の.pstファイルはバックアップ時にスルーされるためロックされないようになりました。)

ただ、これでは.pstファイルがバックアップされなくなりますので、次の対策でユーザが手動でバックアップを取得するための簡易な手順を用意することにしました。

※注:BunBackupには標準機能でこういったバックアップに対処するオプションである「バックアップ元でロックされているファイルをコピー(Volume Shadow Copy Service)」が用意(「バックアップ詳細設定画面の「その他」にある)されています。今回環境依存でこのオプションを使っていませんが、本来はこのオプションでロックファイルのコピーができるようにするほうが正しいと思います。今回はこれを選択することができなかったというだけの話です。

手動実行用のバッチを準備する

.pstファイルのコピーをBunBackupの力で実行するという方法で今回バックアップを実施するのですが、手動実行にするためコマンドラインをバッチファイル化してユーザがダブルクリックする(ユーザはダブルクリックするだけ)にしました。

どうせバッチファイル化するのであれば、以前作成したOutlook環境のバックアップ<https://blog.treedown.net/entry/2016/01/06/010000>も同時に実施して.pstファイルとセットでバックアップすればいいんじゃないかと考え、バッチファイルに加えてみることにしました。
※Outlook環境のバックアップ<https://blog.treedown.net/entry/2016/01/06/010000>は、ファイル名"Outlook_regkey_Profile_O2016.bat"という名前でバッチファイルと同じフォルダにいれてある前提です。

以下のバッチは"%USERPROFILE%\Documents\AppFiles\"フォルダに必要なものがすべて保管されている前提でのバッチファイルとなります。

--------------------------------------------------------------
OutlookBackup.bat
--------------------------------------------------------------
@echo off
rem デスクトップに配置する手動コピーのコマンドラインバッチ
CALL "%USERPROFILE%\Documents\AppFiles\Outlook_regkey_Profile_O2016.bat"
"%USERPROFILE%\Documents\AppFiles\BunBackup600\BunBackup.exe" /Backup:"%USERPROFILE%\Documents\AppFiles\BunBackup600\config\OutlookBackup.lbk" /APPDATAFOLDER
--------------------------------------------------------------

"%USERPROFILE%\Documents\AppFiles\BunBackup600\"フォルダの中身は、BunBackupのポータブル版を保存しています。

そして、BunBackupではOutlookフォルダだけをバックアップするジョブを作っておきます。

このジョブ「OutlookBackup.lbk」を手動で実行するバッチファイルが前述の「OutlookBackup.bat」というわけです。

PCユーザ用

PCユーザ用に、このバッチファイルをショートカットにして、BunBackupのアイコンでも割り当てておきましょう。

ユーザに伝えたのは「このショートカットをダブルクリックしてくれれば、今使っているOutlookのバックアップが実行される(画面にメッセージが出るのでエラーが出たら連絡、エラーなく終了すればデータバックアップはできている)という主旨の説明をして対処完了となりました。