How to View and Close Open Files in Windows Server SMB Share?

Windows file server directors typically have to power shut the shared recordsdata which can be open concurrently by a number of customers. This normally occurs if the desktop software program doesn’t work as anticipated, the person logs off incorrectly, or when the person opened a file and forgot to shut it (went dwelling, on trip, and so on.). In all these instances, the file on the shared  community folder remains to be open (and locked)  and can’t be modified by different customers. Other customers can see such a message when making an attempt to open a locked file (relying on the appliance used): The doc filename is locked for modifying by one other person. To open a read-only copy of his doc, click on…

In this text we’ll present you ways to get the listing of open recordsdata on a Windows file server, discover out which person locked a file on a shared folder, and how to shut (reset) file classes to unlock open recordsdata.

View Open Files on a Shared Network Folder on Windows Server

You can get the listing of recordsdata opened by customers on Windows file server utilizing the built-in Computer Management (compmgmt.msc) graphic snap-in.

Open the Computer Management console in your file server (or join to the server remotely from the administration console operating in your laptop) and go to System Tools -> Shared Folders -> Open recordsdata. A listing of open recordsdata on present SMB server is displayed on the fitting aspect of the window. The listing comprises the native path to the file, the identify of the person account that opens the file, the variety of locks and the mode in which the file is opened (Read or Write+Read).

List of Open Files on Windows Server 2012 R2 shared folders

You can get the identical listing of open recordsdata utilizing the built-in openfiles.exe console instrument. For instance, utilizing the next command you will get the Session ID, username and full native path to the open file:

openfiles /Query /fo csv |extra

Openfiles cli tool to manage open files

When a person remotely accesses a folder or file in a shared community folder on the server, a brand new SMB session is created. You can handle open recordsdata utilizing these session IDs.

You can show a listing of open recordsdata on a distant server. For instance, you want to listing all open recordsdata in shared folders on the lon-fs01 host:

openfiles /Query /s lon-fs01 /fo csv

The openfiles command additionally permits you to view the listing of regionally opened recordsdata. To use it, allow the “Maintain Objects List” possibility utilizing the command: openfiles /native on, and reboot your server. After that, the openfiles command will show recordsdata opened by native processes (it is strongly recommended to use this mode just for debugging functions, since it will possibly negatively have an effect on server efficiency).

How to Find Out Who is Locking a File in a Shared Folder?

To determine the person who opened (locked) the filename.docx file on the shared community folder on the distant server lon-fs01, run this command:

openfiles /Query /s lon-fs01 /fo csv | discover /i "filename.docx"

The /i secret’s used to carry out case-insensitive file search.

You can specify solely part of the file identify. For instance, you want to discover out  who opened an XLSX file containing “sale_report” in its identify. Use the next pipe:

openfiles /Query /s lon-fs01 /fo csv | discover /i "sale_report"| discover /i "xlsx"

Of course you could find this file in the Computer Management GUI, but it surely’s much less handy (this console doesn’t present search characteristic).

How to Forcibly Close an Open File on a SMB Share?

To shut an open file, discover it in the listing of recordsdata in Open File part and choose Close Open File in the context menu.

close open file using computer managment console GUI

If there are a whole lot of open recordsdata in your file server, it gained’t be simple to discover the particular file in the console. It is extra handy to use the Openfiles command line instrument. As we now have already instructed, it returns the session ID of the open file. Using this session ID you may power shut the file by resetting the SMB connection.

First, you want to discover the session ID of the open file:

openfiles /Query /s lon-fs01 /fo csv | discover /i "farm"| discover /i ".xlsx"

Disconnect the person from file utilizing the obtained SMB session ID:

openfiles /Disconnect /s lon-fs01 /ID 617909089

Openfiles - Disconnect user by session id

You can forcefully reset all classes and unlock all recordsdata opened by a particular person:

openfiles /disconnect /s lon-fs01/u corpmjenny /id *

Note. Forcibly closing a file opened by a consumer on an SMB server might consequence in the lack of unsaved information. Therefore, use the openfiles /disconnect command or the Close-SMBOpenFile cmdlet (mentioned beneath) very cautious.

Get-SMBOpenFile: Find and Close Open File Handlers Using PowerShell

New cmdlets to handle shares and recordsdata on an SMB server appeared in PowerShell model for Windows Server 2012/Windows eight. These cmdlets can be utilized to remotely shut community connections to an open file.

You can get a listing of open recordsdata utilizing the Get-SMBOpenFile cmdlet. Close-SmbOpenFile is used to shut/reset the connection to a distant file.

To show a listing of open recordsdata on the Windows SMB server, run the command:


The command returns the file ID, session ID and full file identify(path).
You can show a listing of open recordsdata with person and laptop names (IP addresses):

Get-SmbOpenFile|choose ConsumerUserName,ConsumerComputerTitle,Path,SessionID

You can listing all recordsdata opened by a particular person:

Get-SMBOpenFile –ConsumerUserName "corpmjenny"|choose ConsumerComputerTitle,Path

or from a particular laptop/server:

Get-SMBOpenFile –ConsumerComputerTitle| choose ConsumerUserName,Path

You can show a listing of open recordsdata by sample. For instance, to listing all :

Get-SmbOpenFile | Where-Object

or open recordsdata with a particular identify:

Get-SmbOpenFile | Where-Object

The Close-SmbOpenFile cmdlet is used to shut the open file handler. You can shut the file by ID:

Close-SmbOpenFile -FileId 4123426323239

But it’s normally extra handy to shut the file by identify:

Get-SmbOpenFile | the place | Close-SmbOpenFile -Force

With the Out-GridView cmdlet, you can also make a easy GUI kind for locating and closing open recordsdata. The following script will listing open recordsdata. You ought to use the built-in filters in the Out-GridView desk to discover open recordsdata for which you need to reset the SMB classes. Then you want to choose the required recordsdata and click on OK. As a consequence, the chosen recordsdata might be forcibly closed.

Get-SmbOpenFile|choose ConsumerUserName,ConsumerComputerTitle,Path,SessionID| Out-GridView -PassThru –title “Select Open Files”|Close-SmbOpenFile -Confirm:$false -Verbose

How to Close Open Files on Remote Computer Using PowerShell?

The Get-SMBOpenFile and Close-SmbOpenFile cmdlets can be utilized to remotely discover and shut open (locked) recordsdata. First, you want to join to a distant Windows SMB server through a CIM session:

$sessn = New-CIMSession –Computername lon-fs01

You can even join to a distant server to run PorwerShell instructions utilizing the PSRemoting cmdlets: Enter-PSSession or Invoke-Command.

The following command will discover the SMB session for the open file pubs.docx and shut the file session.

Get-SMBOpenFile -CIMSession $sessn | the place | Close-SMBOpenFile -CIMSession $sessn

Confirm closing of the file by urgent Y. As a consequence, you’ve got unlocked the file. Now different customers can open it.

PowerShell Get-SMBOpenFile - Close-SMBOpenFile

To take away the affirmation of power closing a file on a SMB server, use the -Force key.

With PowerShell, you may shut SMB classes and unlock all recordsdata particular person has opened (a person went dwelling and didn’t launch the open recordsdata). For instance, to reset all file classes of the person mjenny, run this command:

Get-SMBOpenFile -CIMSession $sessn | the place |Close-SMBOpenFile -CIMSession $sessn

Check Also

How to Use Native SSH Client in Windows 10?

The built-in SSH shopper appeared in Windows 10 and Windows Server 2019. Ssh.exe can be …

Leave a Reply

Your email address will not be published. Required fields are marked *