У каждого из наших заданий есть папка, созданная пакетным файлом, запускаемым нашей бухгалтерской программой во время ввода задания. В этой папке есть подпапка «Продажи изображений». Я хотел бы получать уведомления по электронной почте, когда файлы создаются в любой из папок «Продажи изображений» в любом задании. К счастью, мне не нужно возвращаться и менять каждую из 50000 или около того папок с фотографиями продаж, только недавно созданные папки. Возможно ли это в Windows 2003 R2 с использованием командной строки без стороннего программного обеспечения или без программного обеспечения с открытым исходным кодом?
Спасибо
Я не тестировал синтаксис, но, наверное, эти строки PowerShell должны работать:
$query = "Select * from __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Drive='C:' AND TargetInstance.Path='\\mypath\\'"
Register-WmiEvent -Query $ query -Action {send-mailmessage -to "me@mycomany.com" -from "server@mycomany.com" -subject "новый файл" -body "Новый файл создан" + ($ event.SourceEventArgs .NewEvent.TargetInstance | Выберите -Expand FileName, Extension, Name)}
Где mypath - это имя пути, и вам нужно будет ввести свои собственные адреса электронной почты. Возможно, вам также придется добавить параметр -smtpserver, если переменная предпочтения $ PSEmailServer не была установлена
Это создает временное событие wmi и потребителя, то есть он работает, пока открыта консоль. Если вам нужен постоянный поставщик, вы можете создать его с помощью mofcomp или использовать такой модуль, как мощные события чтобы было немного проще создать мероприятие. Постоянные события переживут перезагрузки и т. Д.