ファイルを開いているユーザを特定する・openfiles †コマンドプロンプトを管理者として実行し、openfilesコマンドを実行するとプロセスがどのファイルを開いているかを特定できます。 openfilesコマンドを実行してみる †openfilesコマンドは、管理者としてコマンドプロンプトを起動して使います。 Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\sakura>openfiles エラー: ログオンしているユーザーは管理者特権を持っていません。 C:\Users\sakura> 以下、管理者としてコマンドプロンプトを起動し、openfilesコマンドを実行したときの出力です。 Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Windows\system32>openfiles 情報: ローカルで開いたファイルを参照するには、システム グローバル フラグ 'maintain objects list' を有効にする必要があります。 詳細情報は、Openfiles /? を参照してください。 ローカルの共有ポイントをとおしてリモートで開いているファイル: --------------------------------------------- 情報: 開いている共有ファイルが見つかりませんでした。 C:\Windows\system32> maintain objects listを有効にする †上記でopenfilesを実行し以下のメッセージが表示されたら、maintain objects listを有効にしなければなりません。 情報: ローカルで開いたファイルを参照するには、システム グローバル フラグ 'maintain objects list' を有効にする必要があります。 詳細情報は、Openfiles /? を参照してください。 上記のメッセージに従い、openfiles /?を実行すると以下のメッセージが表示されました。 C:\Windows\system32>openfiles /? OPENFILES /parameter [引数] 説明: システム上の開いているファイルとフォルダーを管理者が 切断できるようにします。 パラメーターの一覧: /Disconnect 1 つ以上の開いているファイルを切断します。 /Query ローカルまたは共有フォルダーで開いているファイルを表示 します。 /Local ローカルで開いているファイルの表示を有効/無効にします。 /? このヘルプのメッセージを表示します。 例: OPENFILES /Disconnect /? OPENFILES /Query /? OPENFILES /Local /? 上記の例:に記されている構文を実行すると各オプションの説明を見ることができます。
上記の説明を確認すると、maintain objects listを有効にするには、以下のオプションを実行すれば有効になるのがわかります。 openfiles /local on maintain objects listを有効にしopenfilesコマンドを実行してみる †上記でmaintain objects listを有効にする方法を記しました。 openfiles /local on 上記のコマンドを実行したときの出力は以下の通りです。 C:\Windows\system32>openfiles /local on 成功: システム グローバル フラグ 'maintain objects list' は有効になりました。 システムを再起動すると、変更が有効になります。 再起動後、以下のようにopenfilesコマンドを実行するとmaintain objects listが有効になっているのが確認できます。 C:\Windows\system32>openfiles /local 情報: システム グローバル フラグ 'maintain objects list' は、現在有効です。 maintain objects listを無効にする場合は、以下の構文になります。 openfiles /local off openfilesコマンドを実行してみる †以下にopenfilesを使った例を記します。 openfilesコマンドをオプションなしで実行すると、以下の出力のように、プロセス名とそのプロセスが開いているファイル一覧が表示されます。 C:\Windows\system32>openfiles ローカルで開いているファイル: --------------------- ID プロセス名 開いているファイル (パス\実行可能ファイル) ===== ==================== ================================================== 12 taskhost.exe C:\Windows\System32 48 taskhost.exe C:\Windows\System32\ja-JP\taskhost.exe.mui 224 taskhost.exe C:\..1e18e3b_9.0.30729.6161_none_08e61857a83bc251 232 taskhost.exe C:\..1e18e3b_9.0.30729.6161_none_08e61857a83bc251 292 taskhost.exe C:\Windows\System32\ja-JP\MsCtfMonitor.dll.mui 536 taskhost.exe C:\Windows\System32\ja-JP\KernelBase.dll.mui 692 taskhost.exe C:\Windows\System32\ja-JP\msutb.dll.mui 732 taskhost.exe C:\Windows\System32\ja-JP\winmm.dll.mui 12 dwm.exe C:\Windows\System32 <省略> 詳細な情報を確認したい場合は、/query /V オプションをつかうと取得することができます。 openfiles /query /V 実際に実行した出力結果は以下の通りです。 C:\Windows\system32>openfiles /query /V ローカルで開いているファイル: --------------------- ID アクセス PID プロセス名 開いているファイル (パス\実行可能ファイル) ===== ============ ======== ==================== ================================================================================ 12 sakura 2624 taskhost.exe C:\Windows\System32 48 sakura 2624 taskhost.exe C:\Windows\System32\ja-JP\taskhost.exe.mui 224 sakura 2624 taskhost.exe C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251 232 sakura 2624 taskhost.exe C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251 292 sakura 2624 taskhost.exe C:\Windows\System32\ja-JP\MsCtfMonitor.dll.mui 536 sakura 2624 taskhost.exe C:\Windows\System32\ja-JP\KernelBase.dll.mui 692 sakura 2624 taskhost.exe C:\Windows\System32\ja-JP\msutb.dll.mui 732 sakura 2624 taskhost.exe C:\Windows\System32\ja-JP\winmm.dll.mui 12 sakura 2800 dwm.exe C:\Windows\System32 <省略> 上記コマンドを実行すると出力される内容が多いので、moreやファイルへ出力すると便利でしょう。 出力形式をcsvにすることなどもできます。 openfiles /query /FO csv 上記のオプションでopenfilesを実行するとcsv形式で出力されます。 C:\Windows\system32>openfiles /query /FO csv > \Users\sakura\Desktop\openfiles.csv 作成されたcsvファイルをExcelで開いたときのスクリーンショットです。 以下、Microsofft Word文章を開き、コマンドプロンプトを管理者として実行しopenfilesコマンドとfindstrコマンドを実行したときの出力になります。 C:\Windows\system32>openfiles | findstr /C:"Microsoft Word 文書.docx" 1216 WINWORD.EXE C:\Users\sakura\Desktop\Microsoft Word 文書.docx C:\Windows\system32>openfiles /query /V | findstr /C:"Microsoft Word 文書.docx" 1216 sakura 3204 WINWORD.EXE C:\Users\sakura\Desktop\Microsoft Word 文書.docx findstrコマンドの使用方法については、以下のリンクで記事を公開しています。 |