Comment modifier le mot de passe d'un compte d'utilisateur local à distance à l'aide de VB.NET/C#? J'ai regardé la classe DirectoryEntry et je sais comment ajouter des utilisateurs à un groupe mais je n'arrive pas à comprendre comment changer un mot de passe (local).Modifier le mot de passe utilisateur Windows à distance à l'aide de .NET
Répondre
utilisant .net 3.5:
PrincipalContext context = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(context, "user");
L'utilisateur peut changer son propre mot de passe:
user.ChangePassword("old", "new");
Ou, si vous exécutez en tant qu'administrateur AD, vous pouvez le réinitialiser:
user.SetPassword("1234567");
Oui,
Cela pourrait ork avec .net 3.5 et supérieur, mais il nécessite le service serveur (c.-à-d. partage de fichiers) être activé et en cours d'exécution. Et si ce n'est pas ???
Je voudrais simplement préférer le bon vieux, beau, préfet et garanti la syntaxe ADSI droit du cœur d'un ensemble VB.Net (qui fonctionne comme un charme BTW) ... Exemple:
Dim uName as string = "trgtUser"
Dim uPass as string = "newPass"
Dim user = GetObject("WinNT://./" & uName & ",user")
user.SetPassword(uPass)
Ce est tout ce qu'il y a à définir des mots de passe sur la machine locale !!
have fun;)
et il ne nécessite pas System.DirectoryServices. – MK4L
Cool. Je dois essayer ça. –
Je pense que l'OP veut changer les mots de passe pour les utilisateurs non-domaine sur une machine distante. –
Dans ce cas, je crois que 'ContextType.Machine' devrait fonctionner. Pas tout à fait sûr, jamais traité avec les utilisateurs locaux. Merci. – Kobi
Oui, je cherche un moyen de modifier les utilisateurs locaux (c'est-à-dire non-domaine). Je vais essayer ContextType.Machine, mais comment vais-je dire quelle machine à utiliser? –