Как я могу предотвратить создание папки с помощью службы Windows? - PullRequest
2 голосов
/ 19 февраля 2010

У меня есть пользователи и процессы на веб-сервере.Я ищу написать службу Windows, которая способна перехватывать вызовы для создания папок в определенном подкаталоге.Я нашел несколько источников для реактивного определения того, что папка была создана, но я хочу создать службу Windows, которая будет активно перехватывать и предотвращать любые неприемлемые вызовы для создания папки.

Позвольте мне предварительно-пустые "почему" -еры.Не спрашивайте почему.Достаточно сказать, что меня попросили сделать это, и я пытаюсь найти самый простой способ выполнения задачи в автоматическом режиме.Я уже определил, как это сделать, если я позволю папке создать, а затем просто следуйте указаниям моей службы Windows и удалите ее (и ее содержимое) по факту.Мне бы очень хотелось, чтобы мероприятие можно было прослушать и опередить.

Ответы [ 4 ]

4 голосов
/ 19 февраля 2010

К сожалению, я не знаю достаточно близко о как , чтобы помочь вам, но я совершенно уверен, что вам нужно либо написать, либо получить Драйвер фильтра файловой системы , который может связаться с вашей службой Windows, чтобы сообщить, что кто-то попытался создать каталог / файл, чтобы ваша служба могла принять за него решение. Таким образом, когда кто-то / что-то пытается создать запрещенный файл или папку, ему может быть возвращено сообщение «Отказано в доступе» или другая ошибка Win32 по вашему выбору.

Если бы вы пошли по пути использования драйвера, я бы предположил, что все же было бы лучше сделать тяжелую работу для принятия решения о создании / модификации в службе, то есть вне Режим ядра.

0 голосов
/ 19 февраля 2010

Использовать FileSystemWatcher .

0 голосов
/ 19 февраля 2010

Как ваши пользователи создают новые папки? Есть ли заданный способ (IE: щелчок правой кнопкой мыши, New> Folder) или они делают это, однако позволяет пользовательский интерфейс Explorer? Я спрашиваю, потому что идея состоит в том, чтобы создать надстройку для функции щелчка правой кнопкой мыши (похожую на WinRar), которая предназначена для создания новой папки с указанными вами параметрами.

Это будет работать, только если все они будут использовать один и тот же метод для создания новой папки. Для этого не требуется служба Windows.

0 голосов
/ 19 февраля 2010

Не уверен, что вы найдете точку перехвата «предварительно создать файл».На вашем месте я бы отодвинулся назад и просто заблокировал настройки безопасности вашей папки.Если это действительно одна папка, и вы работаете в Windows, вы можете настроить безопасность, чтобы запретить всем создавать папки в этом каталоге.Просто убедитесь, что это то, что вы хотите сделать.

Тогда ОС сделает это, даже если вы вообще не будете писать код.

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

...