本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Get-SmbOpenFile」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、SMBサーバ上で開かれているファイルの情報を取得する「Get-SmbOpenFile」コマンドレットです。
Windowsのファイル共有は、「SMB(Server Message Block)」プロトコルを使用したネットワークファイルシステムです。その歴史は古く、「Microsoft One Drive」や「Microsoft Teams」といったファイルを共有できるクラウドサービス出現以前から、企業ITシステムを支えてきました。
One Driveでは「ファイルを同時に複数人で開いて、同時に編集する」という共同作業が当たり前にできますが、Windowsの共有フォルダでは1人がファイルを開くとファイルが「ロック」され、他の人はそのファイルを編集することができません(画面1)。
ファイルを編集するには、編集可能な状態でファイルを開いている人に、いったんファイルを閉じてもらうしかありません。
こうした状況で必要なのは、「誰が」「どこから」ファイルを開いているかを確認する手段であり、それを可能にするのがGet-SmbOpenFileコマンドレットです。
Get-SmbOpenFileコマンドレットでは、現在SMBサーバ上で開かれているファイルや、「誰が」「どこからアクセスしてきているか」などの詳細情報を取得することが可能です。
コマンドプロンプトであれば「net」コマンドの「file」オプションを付与しての実行になりますが、Get-SmbOpenFileコマンドレットであればより細かい情報を取得できます。
オプション | 意味 |
---|---|
-SessionId | 情報を取得したいオープンファイルのセッションIDを指定する。省略可能 |
-ClientComputerName | 情報を取得したいオープンファイルの使用者IPアドレスを指定する。省略可能 |
-ClientUserName | 情報を取得したいオープンファイルの使用者ユーザー名を指定する。省略可能 |
オプションを指定せずにGet-SmbOpenFileコマンドレットを実行すると、基本的なセッション情報を取得できます(画面2)。取得可能な情報は、「ファイルID」「セッションID」「ファイルパス」「相対パス」です。なお、Get-SmbOpenFileコマンドレットは、管理者権限で実行する必要があります。
Copyright © ITmedia, Inc. All Rights Reserved.