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 {} } } }
|
Comments