PowerShellスクリプトを使用して、サーバーの共有フォルダーにある開いているすべてのファイルを閉じようとしています。 1つのドライブ(F :)のファイルのみを閉じる次のスクリプトを見つけましたが、このサーバーには3つのドライブ(F:\、G:\、H :)があり、すべて閉じます。
_net files |
where { $_.Contains( "F:\" ) } |
foreach { $_.Split( ' ' )[0] } |
foreach { net file $_ /close }
_
不足しているドライブをこのスクリプトに追加する方法はありますか、またはドライブごとに同じスクリプトを個別に使用する必要がありますか?
{ $_.Contains( "F:\", "G:\", "H:\" ) }
を試しましたが、うまくいきませんでした
ご協力ありがとうございました!
使用しているコマンドは、ネイティブのPowerShellコマンドではありません。ただし、PowerShellには、SMB接続と共有を制御するための多くの関数が付属しています。
あなたが探しているのはこれかもしれません:
Get-SMBOpenFile | Close-SMBOpenFile -Force
これにより、ファイル共有を介して開かれたすべてのファイルが閉じます。 SMB接続(Get-SMBConnection)などを管理することもできます。Get-Command *smb*
を使用すると、すべてのSMB関連コマンドのリストを取得できます。