2010-12-05 85 views
0

L'appel de DeleteIpForwardEntry() fonctionne parfaitement sous Windows XP et Windows 7. Sur Windows Vista, cependant, il échoue avec ERROR_ACCESS_DENIED. La documentation indique que "l'utilisateur n'a pas les privilèges administratifs requis sur l'ordinateur local ou l'application n'est pas exécutée dans un shell amélioré en tant qu'administrateur intégré (administrateur RunAs)". Eh bien, dans mon cas, l'utilisateur est l'administrateur sur l'ordinateur local et l'application est exécutée à l'ouverture de session via SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run, donc je ne peux pas lui dire de fonctionner dans un "shell amélioré" ".DeleteIpForwardEntry Accès refusé sur Vista

Existe-t-il un moyen de résoudre cette situation "Catch 22" dans Vista?

Répondre

1

Je ne comprends pas pourquoi cela fonctionnerait sur Windows 7. Les docs indiquent que l'échec sera le même.

Sous Windows Vista et versions ultérieures, la fonction de DeleteIpForwardEntry ne peut être appelé par un utilisateur connecté en tant que membre du groupe Administrateurs. Si DeleteIpForwardEntry est appelée par un utilisateur qui n'est pas membre du groupe Administrateurs , l'appel de la fonction échoue et ERROR_ACCESS_DENIED est renvoyé.

En outre, votre message indique que l'utilisateur connecté est un administrateur. Est-il possible que vos tests Windows 7 et Windows Vista soient pour différents utilisateurs - sur Windows 7, votre utilisateur de test est un administrateur, sur Windows Vista, l'utilisateur de test ne l'est pas?

Il n'y a aucun moyen de contourner cette exécution de l'application de cette façon. Pouvez-vous le ré-implémenter en tant que service Windows s'exécutant dans un compte administrateur, qui agit sur les événements de connexion interactive sur la machine pour manipuler la configuration IP selon les besoins?

+0

Steve, merci et +1 pour votre réponse. Je dois vérifier votre question sur les utilisateurs, mais je suis presque sûr que dans Vista et 7 ils sont simplement les administrateurs par défaut créés par le programme d'installation ("Power Users" dans XP ...). En ce qui concerne la ré-implémentation en tant que service Windows, j'ai pensé à cette option, mais cela demandera certainement beaucoup plus de travail de ma part. –

+0

C'est déroutant, parce que le comportement devrait être le même, à première vue. Gardez les dernières informations mises à jour ici, n'importe où. –

+0

oui le comportement devrait être le même mais, si je ne me trompe pas, Windows 7 * est * différent de Vista dans la gestion UAC. Ma compréhension est que ce qui a apporté à Windows 7 la renommée et les louanges de ceux qui ont critiqué Vista. Peut-être qu'il me manque quelque chose sur ce front. –