Here's a script (you can run with LINQPad) that will list all the file triggers on your server. To address your last point, it sorts them by the file spec ignoring the drive, so hopefully that will get duplicates sorted near enough to spot when you scan the list.
'if the adTempus server is on a different computer, replace . with the name
'for example,
'Dim ServerName as String = "remoteservername"
Dim ServerName As String = "."
Dim foundTriggers As New List(Of JobTriggerInfo)
Sub Main
Using session = Scheduler.Connect(ServerName, LoginAuthenticationType.Windows, "", "")
Dim context=session.ReadOnlyDataContext
'find all the file triggers and make a list
Dim jobs=context.GetJobs("*")
For Each job In jobs
ProcessJob(job)
Next
'sort them by file spec, ignoring drive
foundTriggers.Sort(New JobTriggerInfoComparer())
'write out the sorted list
For Each trigger In foundTriggers
Console.WriteLine(trigger.JobName & Microsoft.VisualBasic.ControlChars.Tab & trigger.Drive & Microsoft.VisualBasic.ControlChars.Tab & trigger.FileSpecificationWithoutDrive )
Next
End Using
End Sub
Sub ProcessJob(job As Job)
For Each trigger In job.Triggers
If trigger.ClassID=ClassID.FileTrigger Then
Dim fileTrigger=CType(trigger,FileTrigger)
For Each target In fileTrigger.Files
foundTriggers.Add(New JobTriggerInfo(job.FullyQualifiedName,target.FileSpecification))
Next
End If
Next
End Sub
Class JobTriggerInfo
Public JobName As String
Public FileSpecification As String
Public FileSpecificationWithoutDrive As String
Public Drive As String
Public Sub New(name As String, spec As String)
JobName = name
FileSpecification = spec
Dim match = System.Text.RegularExpressions.Regex.Match(spec, "([a-z]:|\\\\[^\\]+\\[^\\]+)\\(.+)", RegexOptions.IgnoreCase)
If match.Success Then
Drive=match.Groups(1).Value
FileSpecificationWithoutDrive = match.Groups(2).Value
Else
Drive=""
FileSpecificationWithoutDrive = FileSpecification
End If
End Sub
End Class
'sort JobTriggerInfo by file spec, ignoring drive
Class JobTriggerInfoComparer
Implements IComparer(Of JobTriggerInfo)
Public Function Compare(x As JobTriggerInfo,y As JobTriggerInfo) As Integer Implements IComparer(Of JobTriggerInfo).Compare
Dim result = String.Compare(x.FileSpecificationWithoutDrive, y.FileSpecificationWithoutDrive,True)
If result <> 0 Then
Return result
End If
result = String.Compare(x.Drive, y.Drive, True)
If result <> 0 Then
Return result
End If
Return String.Compare(x.JobName,y.JobName,True)
End Function
End Class