net rpc file -S [サーバー名] -U [ユーザー名]
or
②
rpcclient -c "netfilenum" ncacn_np:[サーバー名] -U [ユーザー名]
===========================================================
通常このコマンドを実行した場合、
①に関しては一見きちんと表示されているように見えますが、ファイルを閉じるために必要な"File ID"が32bit値までしか表示されないため、それを超えた場合はオーバーフローします。
②に関してはそもそも表示されません。
このままではファイルを閉じることができませんがきちんと表示させる方法を発見しました。
これらのコマンドにはデバッグレベルを設定することができます。
そしてデバッグレベルを10にすることで正しい"File ID"を取得できることが分かりました。
それぞれ下記のように変更します。
===========================================================================================
①
net rpc file -S [サーバー名] -U [ユーザー名] -d 10
or
②
rpcclient -c "debug 10; netfilenum" ncacn_np:[サーバー名] -U [ユーザー名]
===========================================================================================
このように変更することでコマンドの出力結果の下部にあたる部分に正しい"File ID"が出力されます。
出力された"File ID"で、下記コマンドを実行しファイルを閉じることができます。
===========================================================================================
net rpc file close [File ID] -S [サーバー名] -U [ユーザー名]
===========================================================================================
終わりにサンプルを掲載します。
◆パスを指定して一括でFile IDを取得する
===========================================================================================
rpcclient ncacn_np:[サーバー名] -U [ユーザー名] -c "debug 10 ; netfileenum" -e -k | grep -B 4 -e '\\[共有名]\\[フォルダ名(パス)]' | awk '(/ +fid +/) {print $NF}' | sed -e 's/(\|)//g'
・出力結果
3327221392
3327219528
3326571864
3326572884
===========================================================================================