以前関わったプロジェクトで、バッチ処理で移動ユーザープロファイルを
削除するという処理について困ったことがいくつかあったので、書きたいと思います。
まず、移動ユーザープロファイルが何なのかと説明すると、
通常、パソコンにログインすると、パソコン内にログインアカウント毎にローカルプロファイル
というものが作成されます。
ローカルプロファイルには、マイドキュメント、デスクトップ、お気に入り、クッキー、
各種アプリケーションの設定などが保存されます。
移動ユーザープロファイルの場合は、その情報をネットワーク上の共有フォルダに保存します。
移動ユーザープロファイルには、特殊な権限がつけられログイン者のみが読み取り変更できる
ようになります。
この移動ユーザープロファイルを削除するには、ユーザープロファイルが保存されている
フォルダの所有者になる必要があります。
今回作成したプログラムでは、takeownというコマンドを使用して所有権を取得します。
※takeownコマンドはWindows Server 2003から標準で組み込まれています。
Windows XPでは使用できません。
ただし、これだけでは削除できないケースが発生しました。
ユーザーが自分のデスクトップ上に読み取り専用の属性を設定している場合です。
ディレクトリやファイルの削除にはRMDIRコマンドを使用したので、
通常のフォルダは削除できますが、読み取り専用のフォルダやファイルを削除できるような
オプションが無かったのです。
そのため、フォルダを再帰的に下位フォルダ、ファイルまでチェックして属性を削除してから
全てのフォルダ、ファイルが削除できるようになりました。
Windows Vistaで移動ユーザープロファイルを使用すると、
指定したフォルダ名の後に「.V2」という文字が追加されるようです。
削除するフォルダを指定する際は、クライアントOSの事も念頭において考えなければいけません。