измените это в своем коде для объявления notifyfilter:
$watcher.NotifyFilter = [System.IO.NotifyFilters]::LastWrite
Но это не решает проблему, прочитайте это:
Из раздела «Устранение неполадок компонентов FileSystemWatcher» документации VS.NET ...
Несколько созданных событий, сгенерированных для одного действия
В некоторых ситуациях вы можете заметить, что одно событие создания генерирует несколько событий Created, которые обрабатываются вашим компонентом. Например, если вы используете компонент FileSystemWatcher для мониторинга создания новых файлов в каталоге, а затем протестируете его с помощью Блокнота для создания файла, вы можете увидеть два сгенерированных события, сгенерированных, даже если был создан только один файл. Это потому, что Блокнот выполняет несколько действий файловой системы в процессе записи. Блокнот записывает на диск пакетами, которые создают содержимое файла, а затем атрибуты файла. Другие приложения могут работать таким же образом. Поскольку FileSystemWatcher отслеживает действия операционной системы, все события, запускаемые этими приложениями, будут обнаружены.
Примечание. Блокнот также может вызывать другие интересные события. Например, если вы используете ChangeEventFilter, чтобы указать, что вы хотите отслеживать только изменения атрибутов, а затем записываете файл в каталоге, который вы просматриваете с помощью Блокнота, вы вызовете событие. Это связано с тем, что Notepad обновляет атрибут Archived для файла во время этой операции.