cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Daniel_B
Lansweeper Alumni
This script allows to perform a network file search on a specific hard-drives (optionally limited to a certain folder including subfolders). The result will be written into a text file. If the hard-disk of target computers isn't too big, it should take less than 10 minutes to get all results.

PLEASE NOTE: This script uses a standard DOS file search command. However, it might strongly influence the performance of target computers. This depends on the parameters you are using and other circumstances which we have no influence on.

Following parameters can be given to the script in step 3:
/drive: (i.e. /drive:d ) - drive to search on (default will be c)
/type: (i.e. /type:exe ) - file type to search for (without this parameter, it lists all files)
/path: (i.e. /path:"\Program Files (x86)\" ) - folder to search in (incl. subfolders)
/target: (i.e. /target:"C:\LS\filesearch_output.txt" ) - output file target
/bare: (i.e. /bare:true ) - output file in bare list format without details

Create a new file on your package share under folder Scripts, name it "filesearch_dos.vbs" and fill it in an editor with the following code:

Option Explicit
Const ForWriting = 2
Const ForAppending = 8
Dim objFSO 'File System Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objTS 'Text Stream Object
Dim objWS 'WScript object
Dim Drive 'Parameter: drive to search in
Dim Filetype 'Parameter: file type to search for
Dim objFile 'file found
Dim query 'WMI query string
Dim searchstring 'files to search for
Dim path 'Parameter: path of files to be searched
Dim target 'Parameter: file location of output file
Dim targetfolder 'Folder of the output file
Dim arg 'script arguments
Dim drivesinfo 'search info string drives
Dim typesinfo 'search info string filetypes
Dim info 'search info text
Dim i 'counter
Dim starttime 'start time for duration

'Read script arguments
if wscript.arguments.Named.count > 0 then
if WScript.Arguments.Named("drive") <> "" Then
Drive = WScript.Arguments.Named("drive")
End If

if WScript.Arguments.Named("type") <> "" Then
Filetype = WScript.Arguments.Named("type")
End If

if WScript.Arguments.Named("path") <> "" Then
path = WScript.Arguments.Named("path")
If Left(path,1) <> "\" Then path = "\" & path
End If

if WScript.Arguments.Named("target") <> "" Then
target = WScript.Arguments.Named("target")
End If

End if

'Build search query
If Len(Drive) > 0 Then
searchstring = Drive & ":"
Else
searchstring = "c:"
End if
If Len(path) > 0 Then
searchstring = searchstring & path
if Right(searchstring,1) <> "\" then searchstring = searchstring & "\"
Else
searchstring = searchstring & "\"
End if
If Len(Filetype) > 0 Then
searchstring = searchstring & "*." & Filetype
Else
searchstring = searchstring & "*.*"
End if

'Define scan result target location and open file
If Not Len(target)>0 Then target = "C:\temp\LSfilesearch.txt"
targetfolder = Mid(target,1,InStrRev(target,"\"))
If Not objFSO.FolderExists(targetfolder) Then objFSO.CreateFolder(targetfolder)
Set objTS = objFSO.OpenTextFile(target, ForWriting, True)

'write file search parameters into result file
starttime = Now()
info = "Starting file search on drive "
If Len(drive)>0 Then info = info & drive & ":" else info = info & "c:"
If Len(Filetype)>0 Then info = info & " for file type " & Filetype
If Len(path)>0 then info = info & " under path """ & path & """"
objTS.WriteLine(info & vbCrLf & "---")
objTS.Close()

'Execute search
query = """%comspec%"" /e:4096 /s /c dir /s "
if LCase(WScript.Arguments.Named("bare")) = "true" Then query = query & "/b"
query = query & "/o """ & searchstring & """ >> " & target
Set objWS = CreateObject("Wscript.Shell")
objWS.Run query, 0, True

Set objTS = objFSO.OpenTextFile(target, ForAppending, False)
objTS.WriteLine("---" & vbCrLf & "Search completed in " & _
Datediff("s",starttime,now()) & " seconds")
objTS.Close()
WScript.Quit 0
11 REPLIES 11
leblanc_daniel_
Engaged Sweeper III
Where do we put this file and how to apply on Lansweeper server??

Dan
leblanc.daniel.4@hydro.qc.ca wrote:
Where do we put this file and how to apply on Lansweeper server??

Dan

The search results are written to a file. There is no built-in functionality for adding this information to the Lansweeper database, if this is what you're asking. You would have to add tables and write database scripts for this, which we cannot provide instructions or support for. Any changes you make to the database may cause issues and/or be overwritten during updates.