【 Get-SmbOpenFile 】コマンドレット――SMBサーバ上で開かれているファイルに関する情報を取得するWindows PowerShell基本Tips(75)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-SmbOpenFile」コマンドレットを解説します。

» 2023年07月07日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、SMBサーバ上で開かれているファイルの情報を取得する「Get-SmbOpenFile」コマンドレットです。

Get-SmbOpenFileコマンドレットとは?

 Windowsのファイル共有は、「SMB(Server Message Block)」プロトコルを使用したネットワークファイルシステムです。その歴史は古く、「Microsoft One Drive」や「Microsoft Teams」といったファイルを共有できるクラウドサービス出現以前から、企業ITシステムを支えてきました。

 One Driveでは「ファイルを同時に複数人で開いて、同時に編集する」という共同作業が当たり前にできますが、Windowsの共有フォルダでは1人がファイルを開くとファイルが「ロック」され、他の人はそのファイルを編集することができません(画面1)。

ALT 画面1 Windowsの共有フォルダでは、同時にファイルを開くと一方には「使用中のファイル」と表示されて編集できない

 ファイルを編集するには、編集可能な状態でファイルを開いている人に、いったんファイルを閉じてもらうしかありません。

 こうした状況で必要なのは、「誰が」「どこから」ファイルを開いているかを確認する手段であり、それを可能にするのがGet-SmbOpenFileコマンドレットです。

 Get-SmbOpenFileコマンドレットでは、現在SMBサーバ上で開かれているファイルや、「誰が」「どこからアクセスしてきているか」などの詳細情報を取得することが可能です。

 コマンドプロンプトであれば「net」コマンドの「file」オプションを付与しての実行になりますが、Get-SmbOpenFileコマンドレットであればより細かい情報を取得できます。

Get-SmbOpenFileコマンドレットの書式

Get-SmbOpenFile [オプション]


Get-SmbOpenFileコマンドレットの主なオプション

オプション 意味
-SessionId 情報を取得したいオープンファイルのセッションIDを指定する。省略可能
-ClientComputerName 情報を取得したいオープンファイルの使用者IPアドレスを指定する。省略可能
-ClientUserName 情報を取得したいオープンファイルの使用者ユーザー名を指定する。省略可能


開かれているファイルの情報を取得する

 オプションを指定せずにGet-SmbOpenFileコマンドレットを実行すると、基本的なセッション情報を取得できます(画面2)。取得可能な情報は、「ファイルID」「セッションID」「ファイルパス」「相対パス」です。なお、Get-SmbOpenFileコマンドレットは、管理者権限で実行する必要があります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。