Как отключить сетевое соединение от .NET без прав администратора? - PullRequest
4 голосов
/ 03 апреля 2010

Я могу быть SOL в этом вопросе, но я подумал, что я дам его для возможных решений.

Я пишу службу контроля доступа к компьютеру, чтобы помочь мне контролировать использование компьютера детьми. Запланируйте открытый источник, когда он у меня будет работать. Он написан на VB.Net и должен работать на XP через 7.

Я сталкиваюсь со всевозможными проблемами безопасности и доступа к рабочему столу в Windows 7. Служба должна запускаться от имени администратора, чтобы выполнить команду NetSh для отключения сети. Но я не могу взаимодействовать с рабочим столом из службы, поэтому я обращаюсь к интерфейсу пользователя для обработки других вещей, но я все еще не могу определить из службы, заблокирован ли рабочий стол. Argghh!

Я мог бы заставить все это работать из скрытого приложения Windows Form, если бы я мог просто лизнуть одну часть, которая требует прав администратора: отключение сети.

Бесполезно, если ребенок входит в систему и отклоняет всплывающее окно, спрашивающее, должна ли программа работать от имени администратора, и он говорит нет. Также Windows 7 не запустит программу, установленную для запуска с правами администратора, используя
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Кто-нибудь знает, как заставить это работать? Или есть нестандартное решение?

1 Ответ

2 голосов
/ 03 апреля 2010

Хотелось бы предоставить некоторые ссылки, но я сейчас не справляюсь со своим гугл-фу ... но я почти уверен, что UAC не относится к сервисам. Если вы реализуете свою программу в качестве приложения-службы Windows вместо (скрытого) приложения Windows Form и настроите его на запуск для учетных записей ваших детей, а не для вашей, это должно работать.

UPDATE

Нашел это в Google, вообще не играл с ним. Хотя выглядит звучит ... в основном, CreateProcessAsUser для запуска приложения форм из приложения-службы, работающего от имени администратора.

...