Utilities that will search for filename or extension on multiple servers

IT Guy
IT Guy used Ask the Experts™
A couple years ago I found a Windows utility that was able to search for a filename or filename extension on multiple servers (as long as the user doing the search was an administrator or domain administrator).

This utility would then list the exact path \\server\drive letter\folder path to the file.

I am now looking for utilities that are able to do this.

What utilities are able to do this?
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Business Consultant (Owner)
Most Valuable Expert 2012
Expert of the Year 2018
I am not sure what you might have used but Ultra Search from TreeSize (Jam Software) does this. It is free (still at this time so far as I know). I use this for large searches.
NVITEnd-user support
Windows Explorer can do that. Well, kind of... You'd have to search each server separately.


A free (or $15 for Pro Standard version) utility is FileSeek.

Note: I'm using the Pro Standard version. But, the free can do what you want.

To search multiple servers, separate each server path with a vertical bar character in the Path field.

It has various options to apply against the resultant search
FileSeek Example

Hi IT,
Does PowerShell works for you or you wanted to use Software instead ?
PMI ACP® Project Management

Prepare for the PMI Agile Certified Practitioner (PMI-ACP)® exam, which formally recognizes your knowledge of agile principles and your skill with agile techniques.

IT GuyNetwork Engineer


How can I use PowerShell to do this?

What are the exact PowerShell commands to do this?

Or do you have any PowerShell scripts you can share with me?
Distinguished Expert 2018
A freeware for it is Agent Ransack

The below sample script will find the file with the .BAK file extension for all Windows Server OS in the OU=Production Servers,OU=Servers,DC=Domain,DC=com OU:

Get-ADComputer -Filter {Enabled -eq $True -and OperatingSystem -like "*Windows Server*"} -SearchBase "OU=Production Servers,OU=Servers,DC=Domain,DC=com" |
    Where-Object {Test-Connection $_.Name -Count 1 -Quiet} | ForEach-Object {
    $Server = $_.DNSHostName
    "Processing $($Server)" | Write-Host
    Try {
        Get-WmiObject -Query "SELECT Name FROM Win32_LogicalDisk WHERE DriveType=3" -ComputerName $Server -ErrorAction Stop | ForEach-Object {
            "  - Drive $($_.Name)" | Write-Host
            Get-ChildItem "\\$($Server)\$($_.Name.Replace(':', '$'))" -Filter *.BAK -Recurse -ErrorAction SilentlyContinue |
                Select-Object -Property @{n = 'ComputerName'; e = {$Server}}, @{n = 'DirectoryName'; e = {$_.DirectoryName.Split('\', 4)[3].Replace('$', ':')}}, Name, Length, LastWriteTime
    Catch {
        "Unable to access $($Server): $($_.Exception.Message)" | Write-Error
} | Export-Csv -Path C:\RESULT\files.BAK.csv -NoTypeInformation

Open in new window

Result will be exported in C:\RESULT\files.BAK.csv file as .CSV which can be opened in Excel.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial