Advanced Windows PowerShell Scripting Video Training

Advanced Windows PowerShell Scripting Video Training
Advanced Windows PowerShell Scripting Video Training

Thursday, December 11, 2014

How to Search Multiple Servers for a Specific File

I took a question off of PowerShell.com where an IT Pro needed to search multiple servers for a specific file.  What I did was gave it the capacity to search multiple drives attached to each server for that specific file. 

A few things to remember.  I am assuming:

1. You are able to access the drives of all remote clients with the credentials that you are logged in as.

2. PowerShell remoting is enabled on all client machines.  I did not include error handling for a client that is offline or does note have remoting turned on.

3. The file specified is all TXT files.  on line 16, change *.txt to match what you are looking for.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# List the names of all servers to contact.

$Names = "LON-DC1", "LON-EX1"

 

ForEach ($N in $Names)

{

    # Use PowerShell remoting to search each server.

    Invoke-Command -ComputerName $N -ScriptBlock {

 

        $Drive = Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Name

 

        ForEach ($D in $Drive)

        {

            # Incase an floppy of  DVD drive is accessed, just ignore it.

            Try{

                Get-ChildItem -Path $D":" -Recurse -Name "*.txt" -ErrorAction SilentlyContinue |

                Select-Object -Property  @{N="FullPath";E={$_}},

                @{N="ComputerName";E={$ComputerName}}

            }

            Catch {}

        }

    }

}

 

No comments: