Запуск Службы При Изменении Файла Или Папки

Я хочу знать, есть ли возможность вызвать службу при изменении папки или файла.

Я нашел SC triggerinfo, но я не знаю, Могу ли я использовать его для этого.

8
задан duDE
21.04.2023 2:28 Количество просмотров материала 3485
Распечатать страницу

1 ответ

Да, это возможно несколькими способами, например С Power Shell Script:

есть несколько стратегий, которые можно использовать для мониторинга файловой системы в PowerShell:

  • создать новую систему.ИО.FileSystemWatcher объект, и установить соответствующие настройки:

    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = $searchPath
    $watcher.IncludeSubdirectories = $true
    $watcher.EnableRaisingEvents = $true
    

    .Path-это путь, который будет отслеживаться .IncludeSubdirectories рассказывает filesystemwatcher для отслеживания всех поддиректориях .Path

  • Теперь нам нужно определить некоторые события, которые будут срабатывать, когда $watcher обнаружит изменение файловой системы, я собираюсь определить событие для измененных, созданных, удаленных и переименованных:

$changed = Register-ObjectEvent $watcher "Changed" -Action {
   write-host "Changed: $($eventArgs.FullPath)"
}
$created = Register-ObjectEvent $watcher "Created" -Action {
   write-host "Created: $($eventArgs.FullPath)"
}
$deleted = Register-ObjectEvent $watcher "Deleted" -Action {
   write-host "Deleted: $($eventArgs.FullPath)"
}
$renamed = Register-ObjectEvent $watcher "Renamed" -Action {
   write-host "Renamed: $($eventArgs.FullPath)"
}
  • В каждом событии вы можете определить код для того, что вы хотите, чтобы произошло, когда событие срабатывает. В этом примере я просто непосредственно выводю тип действия и полный путь измененного объекта на файловая система.

  • это в значительной степени. Эти события будут сохраняться до закрытия текущего сеанса PowerShell или отмены регистрации событий вручную. Вы можете отменить регистрацию событий с помощью команды Unregister-Event:

    Unregister-Event $changed.Id
    Unregister-Event $created.Id
    Unregister-Event $deleted.Id
    Unregister-Event $renamed.Id
    
1
отвечен duDE 2023-04-22 10:16

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх