Windows Creating and Opening Files

最近PowerShellを使ってスクリプトを書いたのですが、Windowsのファイルオープン仕様でまんまとトラップにはまりました。UNIXの人間だからはまったのか...

Windowsでは、ファイルをオープンする際、アクセスモードと共有モードの指定ができるようです。
監視系のソフトが以下のモードで常時ファイルをオープンしているとします。(多分)

アクセスモード 共有モード
READ WRITE/READ/DELETE

共有モードがWRITE/READ/DELETE全てOKだからファイルをクリアするのに、Clear-Contentコマンドでも問題ないだろうと思っていました。
が、、、
Clear-contentのコマンドが異常終了。。

Clear-contentコマンドのモードを確認すると以下のとおり、共有モードがWRITEなんですね。
つまりREADでオープンしているプロセスがいるので、WRITEだけ許可するのはおかしいだろということですね。結局Out-fileコマンドでクリアすることにしました。

PSコマンド アクセスモード 共有モード
Clear-Content WRITE/READ WRITE
Out-file WRITE/READ READ

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363874%28v=vs.85%29.aspx
Windowsは難しい〜。っていうかClear-ContentでREADを許可しない仕様はどうなのって気がします。

2014年入ってからまだいいことないな〜。年男なのに。。