Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 尝试添加Windows用户帐户时拒绝访问_C# 4.0_Userprincipal - Fatal编程技术网

C# 4.0 尝试添加Windows用户帐户时拒绝访问

C# 4.0 尝试添加Windows用户帐户时拒绝访问,c#-4.0,userprincipal,C# 4.0,Userprincipal,我试图以编程方式添加一个如下所示的用户,但在保存时收到一条拒绝访问的消息。我在Windows 7上本地运行,代码驻留在控制台应用程序中 /// <summary> /// /// </summary> /// <param name="userName"></param> /// <param name="password"></param> /// <param name="description"><

我试图以编程方式添加一个如下所示的用户,但在保存时收到一条拒绝访问的消息。我在Windows 7上本地运行,代码驻留在控制台应用程序中

/// <summary>
/// 
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <param name="description"></param>
public static void CreateUser(string userName, string password, string description)
{
    PrincipalContext pc = new PrincipalContext(ContextType.Machine, null);
    System.DirectoryServices.AccountManagement.UserPrincipal u = new UserPrincipal(pc);
    u.SetPassword(password);
    u.Name = userName;
    u.Description = description;
    u.UserCannotChangePassword = true;
    u.PasswordNeverExpires = true;
    u.Save();

    GroupPrincipal gp = GroupPrincipal.FindByIdentity(pc, "Users");
    gp.Members.Add(u);
    gp.Save();
}
下面是代码设置方式的大致视图:

  • 控制台应用程序测试线束在调试模式下执行
  • 我检查一个用户,如果他们不存在……然后我尝试创建它,如上图所示。这就是错误发生的地方

即使您以管理员身份登录,也需要以管理员身份运行控制台。以下是如何以管理员身份启动控制台:

然后找到你的控制台应用程序并运行它

祝你好运


-Michael

即使您以管理员身份登录,也需要以管理员身份运行控制台。以下是如何以管理员身份启动控制台:

然后找到你的控制台应用程序并运行它

祝你好运


-Michael

您是否在管理员模式下运行整个应用程序?您在哪里提供管理员用户名和密码?u.SetPassword和u.Name是您正在创建的用户的密码和名称,但与有权创建新用户的应用程序无关。您似乎仍然没有以管理员身份运行。您是否尝试过以管理员身份从命令行运行应用程序?(如果您不确定如何操作,这可能会有所帮助:)您是否在管理员模式下运行整个应用程序?您在哪里提供了管理员用户名和密码?u.SetPassword和u.Name是您正在创建的用户的密码和名称,但与有权创建新用户的应用程序无关。您似乎仍然没有以管理员身份运行。您是否尝试过以管理员身份从命令行运行应用程序?(如果您不确定如何操作,这可能会有所帮助:)
 ProcessStartInfo startInfo = new ProcessStartInfo();
                    startInfo.UserName = userName;
                    startInfo.Password = securePassword;
                    startInfo.LoadUserProfile = true;
                    startInfo.UseShellExecute = false;
                    startInfo.FileName = batchPath;
                    startInfo.Arguments = operationLogID.ToString();
                    Process.Start(startInfo);