
У нас есть устаревшее приложение VB6, которое автоматически отправляет отчеты по электронной почте. Оно запускается из запланированной задачи на сервере. Иногда пользователь запускает exe-файл — он находится в папке, которую мы не можем заблокировать, и он должен оставаться в этой папке по причинам, слишком сложным, чтобы вдаваться в них здесь. Есть ли способ запретить пользователям запускать exe-файл, но при этом разрешить ему работать из запланированной задачи? Я могу изменить исходный код exe-файла, так что это вариант, если кто-то поможет мне разобраться, как это сделать. Или если есть способ установить разрешения для exe-файла, чтобы только планировщик задач (или наша команда из 3 разработчиков) мог его запускать, это тоже сработает.
решение1
Здесь есть два варианта.
Изменение исходного кода
Изменение исходного кода возможно. Все, что вам нужно сделать, это убедиться, что программа требует параметр. Если его нет, ничего не происходит. Пользователь дважды щелкнет exe, который не отправляет параметр. Вы даже можете сделать всплывающее окно с сообщением: Эта программа должна быть запланирована, или что-то в этом роде.
Это можно сделать с помощьюGetCommandlineArgs.
Недостатком этого является то, что если по какой-то причине кто-то забудет секретный аргумент командной строки, в какой-то момент люди могут перестать его использовать (например, если вы уволитесь из компании, ИТ-обслуживание перейдет в другую компанию и т. д.)
Установка определенных прав доступа к файлу .exe
Другой вариант — просто установить разрешения на .exe-файл. Вы можете сделать так, чтобы только администраторы могли открывать файл, или запретить остальным. Запрет имеет приоритет над разрешениями разрешения, поэтому возможно, что вы также запрещаете свой административный доступ. Кроме того, пользователь с достаточными знаниями и правами может отменить это, а затем запустить исполняемый файл. Кроме того, если они скопируют исполняемый файл локально, они могут удалить права, а затем запустить программу.