【发布时间】:2018-05-30 10:00:20
【问题描述】:
我想以编程方式将新的本地用户添加到计算机。我找到了代码here。
但我希望用户无需密码即可登录。我看到有一个选项 UserPrincipal.PasswordNotRequired=true 但如果我不使用 SetPassword() 它会抛出一个异常:
密码不符合密码政策要求...
是否可以创建一个没有密码的新用户?
编辑:当前代码,成功添加新用户,但我必须提供一些密码。它是来自提供的链接的完整副本:
PrincipalContext oPrincipalContext = GetPrincipalContext();
UserPrincipal oUserPrincipal = new UserPrincipal(oPrincipalContext);
oUserPrincipal.Name = sUserName;
oUserPrincipal.SetPassword(sPassword);
oUserPrincipal.DisplayName = windowsUsername.Text;
oUserPrincipal.PasswordNeverExpires = true;
oUserPrincipal.PasswordNotRequired = true;
oUserPrincipal.Save();
GroupPrincipal usersGroup = GroupPrincipal.FindByIdentity(oPrincipalContext, "Users");
usersGroup.Members.Add(oUserPrincipal);
usersGroup.Save();
【问题讨论】:
-
您可以设置组账号,使远程PC上的用户密码和本地PC上的用户密码相同,远程连接时无需密码。您需要在本地和远程 PC 上设置相同的组帐户。还必须将用户添加到组中。
-
你能展示一个更完整的代码版本吗
-
嗨,谢谢。情况是,我没有任何远程 PC。我只想运行一个程序来创建没有密码的新用户帐户。我需要它来自动配置一些计算机。
-
您尝试添加用户的计算机是否也是域的一部分?
-
我是这么认为的,因为上下文(域)是
PrincipalContext(ContextType.Machine);所以基本上是本地机器。
标签: c# .net windows userprincipal