Je n'ai pas essayé cette technique récemment, donc je ne suis pas sûr cela fonctionne toujours, mais à un moment c'était définitivement le cas, et je suppose que c'est probablement le cas.
Appel NetUserChangePassword
pour que le compte de l'utilisateur sur chacun des ordinateurs cibles, mais le faire à partir d'un compte qui ne pas ont le droit de modifier le mot de passe que les utilisateurs (par exemple, un autre compte utilisateur normal). Lorsque vous appelez cela, vous devez passer (entre autres choses) l'ancien mot de passe de l'utilisateur. Puisque vous l'appelez d'un compte qui n'est pas autorisé à changer le mot de passe de cet utilisateur, cet appel échouera toujours.
Ce qui vous intéresse est le code d'erreur en cas d'échec. Si ce que vous avez transmis comme ancien mot de passe est reconnu par le système (c'est-à-dire que le mot de passe correspondant au compte est correct), l'appel échoue avec ERROR_ACCESS_DENIED
. Si le mot de passe que vous transmettez est incorrect (c'est-à-dire non reconnu pour ce compte), il échouera avec ERROR_INVALID_PASSWORD
.
Pour être pédant: Les mots de passe ne sont pas réellement synchronisés. C'est juste que le contrôleur de domaine est demandé quand quelqu'un tente de se connecter au système. –
Ils sont synchronisés d'une certaine manière. Vous pouvez toujours vous connecter à un poste de travail même s'il n'y a pas de connexion réseau, à condition que vous soyez connecté avec succès une fois connecté. Lire: ordinateurs portables. – Cogwheel