本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Close-SmbOpenFile」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、「SMB(Server Message Block)」サーバ上で開かれているファイルを強制的に閉じる「Close-SmbOpenFile」コマンドレットです。
ネットワーク経由でのファイル共有は非常に便利です。しかし、権限さえあれば誰でもファイルを開いて編集できるため、自分が必要なときに他の人にファイルを開かれていて編集できない、といった場面に遭遇することもあるでしょう(画面1)。
本連載第75回で紹介した「Get-SmbOpenFile」は、誰がどこからアクセスしてきているかなどの詳細情報を取得するコマンドレットですが、今回紹介する「Close-SmbOpenFile」は、開かれているファイルを強制的に閉じるコマンドレットになります。
コマンドプロンプトであれば「net file
オプション | 意味 |
---|---|
-FileId | 閉じたいファイルのIDを指定する。省略可能 |
-SessionId | 閉じたいファイルを使用しているSMBセッションの「セッションID」を指定する。省略可能 |
-ClientComputerName | 閉じたいファイルを使用しているセッションを確立している「IPアドレス」を指定する。省略可能 |
-ClientUserName | 閉じたいファイルを使用しているセッションを確立している「ユーザー名」を指定する。省略可能 |
オプションを指定せずにClose-SmbOpenFileコマンドレットを実行すると、現在開かれている全てのファイルを閉じます(画面2)。ファイルを閉じる際には、閉じて問題ないかどうかの確認プロンプトが表示されるので、個別に応答する場合は[Y]キーで、全てを閉じて問題ない場合は[A]キーで応答します。なお、Close-SmbOpenFileコマンドレットは、管理者権限で実行する必要があります。
Close-SmbOpenFile
画面1のダイアログボックスで「ほかの人がファイルの使用を終了したときに通知を受け取る」を選択していた場合は、ファイルを強制的に閉じることで解放されるので、以下のような通知が届いて編集可能になります(画面3)。
Close-SmbOpenFileコマンドレットの実行時に、確認プロンプトが不要である場合やスクリプトで本コマンドレットを使用する場合は、「-Force」オプションを指定することで、確認プロンプトを返すことなくファイルを閉じることができます(画面4)。
Close-SmbOpenFile -Force
特定のセッションが開いているファイルだけを閉じたい場合は、「-SessionId」オプションを利用して「セッションID」を指定します(画面5)。セッションIDはGet-SMBOpenFileコマンドレットで取得可能です。
Close-SmbOpenFile -SessionId "755914244109" -Force
特定のファイルだけを閉じたい場合は、「-FileId」オプションを利用して「ファイルID」を指定します(画面6)。ファイルIDはGet-SMBOpenFileコマンドレットで取得可能です。
Close-SmbOpenFile -FileId "755914247997" -Force
Close-SmbOpenFileコマンドレットはGet-SmbOpenFileコマンドレットと組み合わせることで、特定の拡張子を持つファイルだけを閉じることが可能です。
使い方は、Get-SmbOpenFileコマンドレットで特定の拡張子を持つファイルを抽出し、パイプ(|)でClose-SMBOpenFileコマンドレットにつなぎます(画面7)。
Get-SmbOpenFile | Where-Object -Property ShareRelativePath -Match "\.PPTX" | Close-SmbOpenFile -Force
Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.