DeleteIpForwardEntry Доступ запрещен в Vista - PullRequest
0 голосов
/ 05 декабря 2010

Вызов DeleteIpForwardEntry () прекрасно работает в Windows XP и Windows 7. Однако в Windows Vista происходит сбой при использовании ERROR_ACCESS_DENIED.

В документации говорится, что «пользователю не хватает необходимых административных привилегий на локальном компьютере.или приложение не запускается в расширенной оболочке в качестве встроенного администратора (администратора RunAs). "

Ну, в моем случае пользователь является администратором на локальном компьютере, а приложение запускается при входе черезПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Run, поэтому я не могу сказать, чтобы он запускался в «улучшенной оболочке».

Есть ли способ решить эту проблему «Catch 22» в Vista?

1 Ответ

1 голос
/ 06 декабря 2010

Я не понимаю, почему это будет работать в Windows 7. Документы указывают, что ошибка будет такой же.

В Windows Vista и более поздних Функция DeleteIpForwardEntry может только быть вызванным пользователем, вошедшим в систему как член группы администраторов. Если DeleteIpForwardEntry вызывается пользователь, который не является членом Группа администраторов, функция вызов не удастся и ERROR_ACCESS_DENIED возвращается.

Кроме того, ваше сообщение указывает, что зарегистрированный пользователь является администратором. Возможно ли, что ваши тесты Windows 7 и Windows Vista предназначены для разных пользователей - в Windows 7 ваш тестовый пользователь является администратором, а на машине с Windows Vista тестовый пользователь - нет?

Нет способа обойти это, запустив приложение таким способом. Можете ли вы повторно реализовать это как службу Windows, работающую под учетной записью администратора, которая воздействует на события интерактивного входа в систему на компьютере, чтобы при необходимости манипулировать конфигурацией IP-адреса?

...