2010-08-20 4 views
0

netusergetinfo renvoie le code d'erreur 2221 pour un utilisateur valide. Quelle est la raison? C'est à cause de certains paramètres de sécurité sur le répertoire actif mais je ne suis pas au courant.netusergetinfo return 2221

+0

Pouvez-vous fournir plus de contexte? – Oded

+0

hmm ... nous avons besoin de beaucoup plus d'informations. – s84

+0

Je dois valider l'existence d'un utilisateur de répertoire actif. Pour rechercher un utilisateur, j'utilise cette fonction, netusergetinfo. Cette fonction fonctionne sur ma configuration locale, mais elle renvoie l'erreur 2221 dans un répertoire de production actif. Je soupçonne cela en raison de certains paramètres de répertoire actif, mais je ne peux pas comprendre que – Ravi

Répondre

2

Vous avez probablement le même problème que décrit ici Get current user's last logon.

Une raison possible est que vous n'utilisez pas le format UNICODE pour le nom d'utilisateur.

Un autre problème est si vous essayez de demander le nom de utilisateur de domaine. Dans ce cas, vous devriez pas utiliser un formulaire

nStatus = NetUserGetInfo (NULL, L"Domain\\TestUser", dwLevel, (LPBYTE *) & pBuf); 

mais utiliser comme premier paramètre le nom d'un contrôleur de domaine d'un domaine qui a confiance au domaine « Domaine ». Vous pouvez utiliser DsGetDcName ou NetGetAnyDCName ou NetGetDCName pour obtenir ce nom.

Pour répondre correctement à votre question, vous devez publier le code source correspondant et décrire brièvement votre environnement de domaine et le rôle de l'ordinateur et de l'utilisateur actuel sous lequel les processus en cours s'exécutent.