2011年9月9日金曜日

◆FileのTemporary属性をクリアする

エクスプローラーでファイルを検索していてなぜかヒットしないファイルが有ることに気がついた。

例えば、以下のような状態で検索ボックスに「Audi.jpg」と入れてもヒットしないのだ。
image

結果、
image

最初はWindowsの検索機能の不具合か、検索設定が何かしらあるのかと色々と調べたが、どうもファイル自体に問題があるような感じ。

プロパティを見ると、セキュリティブロックがかかっていた。
image

なんだ、これかと思ったのだが、こいつを解除しても状況は変わらず・・・。

しかし、ブロックされていたということはインターネットからダウンロードしたりメール添付されて着たファイルと思われる。
やはり何か特別な状態に成っている可能性大。
ファイル属性を他のファイルと比較してみると「Temporary」という属性が付けられている。
image

どうやらこいつが犯人っぽい。
このTemporary属性が付いているとファイルサーバーのレプリケートの対象などからも外れるらしい。
いったい誰がこんな属性を付けたのかと思えばなんとサードパーティではなくOUTLOOK君。
相変わらず「いけてない」

まぁ、文句を言っても仕方が無いのでこのTemporary属性を削除してみる。
Archive等の属性であればSet-ItemPropertyとかで設定できるっぽいのだが、
13.ファイルの属性を設定する < ファイル操作 Tips メニュー < PowerShell Tips < HIRO's.NET
Temporary属性はこいつでは設定できないようだ。
以下のようにフラグを直接操作してあげる必要がありそう。

001
002

$tFile = Get-Item w:\test\Audi.jpg 
$tFile.attributes = ($tFile.attributes -band 0xFEFF)

フラグの詳細は以下を参照。

ファイルを纏めて操作するときはこんな感じで。

001
002
003
004
005

Get-childitem w:\test -recurse | 
%{if (($_.attributes -band 0x100) -eq 0x100
) {
        
$_.attributes = ($_.attributes -band 0xFEFF)
      }
 }

0 件のコメント:

コメントを投稿