WS000001






こんばんはーヽ(´ー`)ノ
今日は仕事でちょっとハマってなんとかした事をメモっておきます。


なんかファイルが更新できないんだけど?

社内SEは、メインである組織内のITインフラの企画業務をする傍ら、
「システム何でも屋さん」業務をすることもしばしばあります。
そしてその問い合わせのほとんどが、
「なんか使えないんだけど?」
というもの・・・・

一本の電話が鳴ります。
「なんかファイルが更新できないんだけど?」

どこの組織も、部署単位だったり、プロジェクト単位だったり、ファイルサーバを持っているかと思います。
私たちの組織もWindowsファイル共有を利用したファイルサーバを各ユーザー部門に提供しています。

WS000001
「別のプログラムがこのフォルダーまたはファイルを開いているので、操作を完了できません。」

ファイルが更新できないのは、だいたいが「誰かが編集中だから」だと思うんです。
「周りにそのファイルを開いている人がいないか聞いてみて、閉じてもらってください」
ファイルロックを正規の手順でリリースしてやるのが正攻法だと思います。
私もこの手の問い合わせが来た場合はだいたいそう言います。

しかし今回は周りに聞いても心当たりがなく、困ってるらしい。
うーん。


ファイルを開いている人を特定する

周りに聞いてみても心当たりのある人がいない。
これは困った。

特定する方法はないのか?
こんな方法はどうでしょう?

①コマンドプロンプトを「管理者として」実行する。
クライアント、またはサーバにリモートデスクトップして、コマンドプロンプトを管理者として実行します。
WS000000

②openfilesコマンドを使用する。
開かれているファイルの情報を表示するwindowsコマンドツールの「openfiles」コマンドを利用します。
詳しくは下記のMicrosoft Technetをどうぞ
https://technet.microsoft.com/ja-jp/library/cc732490(v=ws.10).aspx

コマンド例はこんな感じでしょうか

openfiles /query /s ServerHostName >openfile.log
適当に「openfile.log」というログファイルに出力してみます。


③openfilesコマンドの結果を確認する。
コマンドが終了したら先ほど出力したログファイルを開いてみます。

WS000005
(ちょっとマスクが激しいですが・・・雰囲気が伝われば・・・)

アクセスカラムには、ログオンユーザ名が表示されます。
あとは対象ファイル名などで検索して、ヒットした行のログオンユーザ名などから実際に今ファイルを開いて編集中の人が特定できるかと思います。


ちなみに今回の私の件は、
特定した結果、その人はどうも開いたまま席を立ってどこか行っちゃってたようです。
ありがちですね。