1

Тема: VBScript: слежение за содержимым каталога

Автор идеи - Alexbootch.
Пример скрипта, который отслеживает удаление файлов с указанным расширением в указанном каталоге:

strDrive = "C:"
strDir = "\\Temp\\"
strExt = "png"
strComputer = "."
'===================================================================
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMv2") 
Set objEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceDeletionEvent WITHIN 5 WHERE " & _
    "TargetInstance ISA 'CIM_DataFile'" & _
    " AND TargetInstance.Extension = '" & strExt & "'" & _
    " AND TargetInstance.Drive = '" & strDrive & "'" & _
    " AND TargetInstance.Path = '" & strDir & "'")

Do While(True)
    Set objReceivedEvent = objEvents.NextEvent
    WScript.Echo Now & " " & objReceivedEvent.TargetInstance.Name
Loop

Фильтр по расширению можно убрать из WMI-запроса и отслеживать таким образом все файлы. Кроме того, можно отслеживать модификацию и создание файлов, используя классы __InstanceCreationEvent и __InstanceModificationEvent полностью аналогично.
Примечание: отслеживание вложенных каталогов в данном случае проблематично, т.к. оператор LIKE со свойством Path в WMI-запросе, похоже, корректно не работает. Если у вас есть идеи, создайте новую тему в разделе Разработка скриптов со ссылкой на тему, которую вы сейчас читаете.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.