Поэтому я хочу отключать или включать службу в зависимости от того, какой пользователь входит в систему, поскольку эта служба должна быть активна только для определенного пользователя, а в противном случае она поглощает ненужные системные ресурсы.
Самый простой способ — создать пакетный файл для каждого пользователя (это локальная система, поэтому не так много пользователей) и запускать этот пакетный файл, когда пользователь входит в систему с помощью net stop/start или sc config. Проблема с этим подходом в том, что эти команды требуют повышенных привилегий, а у одного из пользователей их нет.
Есть ли другой способ сделать это или есть обходной путь, позволяющий временно предоставить повышенные права пакетному файлу?
Спасибо.
решение1
Чтобы обойти проблему повышенных привилегий, можно использовать запланированное задание.
Для каждого конечного пользователя:
- Запустите Планировщик заданий и создайте новую задачу (выберите «Создать задачу» справа)
- На вкладке «Общие» настройте запуск задачи в вашей учетной записи (администратора), независимо от того, вошли ли вы в систему или нет, и с наивысшими привилегиями.
- На вкладке «Триггеры» добавьте триггер «При входе в систему» и настройте учетную запись конечного пользователя.
- На вкладке Действия добавьте действие «Запустить программу» и укажите командную строку, которую вы хотите запустить («NET STOP имя-службы» или «NET START имя-службы»).
- Сохраните новую запланированную задачу.
Когда один из ваших конечных пользователей входит в систему, планировщик задач запустит NET START/STOP в вашей учетной записи администратора, запуская или останавливая службу, не требуя повышенных привилегий при входе в систему.
Несколько вопросов к вам: Что произойдет, если оба конечных пользователя войдут в систему? Вы получите правильный результат при всех последовательностях входа (т. е. пользователь A, затем B и пользователь B, затем A)? Не забудьте также рассмотреть последовательности выхода из системы...
решение2
Службы действуют одинаково во всех учетных записях пользователей... поэтому отключение с помощью пакетного файла повлияет на другого пользователя (например, администратора)... учетную запись... поэтому создавать еще одну учетную запись бесполезно :(... попробуйте просто создать 2 пакетных файла. Один для остановки, другой для запуска... я удивлен, что Windows не может иметь разное использование служб для разных пользователей. и потребностей... я разочарован...