Я не понимаю, почему это будет работать в Windows 7. Документы указывают, что ошибка будет такой же.
В Windows Vista и более поздних
Функция DeleteIpForwardEntry может только
быть вызванным пользователем, вошедшим в систему как
член группы администраторов. Если
DeleteIpForwardEntry вызывается
пользователь, который не является членом
Группа администраторов, функция
вызов не удастся и ERROR_ACCESS_DENIED
возвращается.
Кроме того, ваше сообщение указывает, что зарегистрированный пользователь является администратором. Возможно ли, что ваши тесты Windows 7 и Windows Vista предназначены для разных пользователей - в Windows 7 ваш тестовый пользователь является администратором, а на машине с Windows Vista тестовый пользователь - нет?
Нет способа обойти это, запустив приложение таким способом. Можете ли вы повторно реализовать это как службу Windows, работающую под учетной записью администратора, которая воздействует на события интерактивного входа в систему на компьютере, чтобы при необходимости манипулировать конфигурацией IP-адреса?