1

以下のようにプログラムでユーザーを追加しようとしていますが、保存時にアクセス拒否メッセージが表示されます。私は 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();
}

何か案は?管理者のユーザー名とパスワードを入力しようとしましたが、それでも同じエラーが発生します。

コンソール アプリは次のように実行されます。

 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);

コードの設定方法の大まかな図を次に示します。

  • コンソール アプリのテスト ハーネスがデバッグ モードで実行されます。
  • ユーザーを確認し、存在しない場合は、上記のように作成してみます。ここでエラーが発生します。
4

1 に答える 1

1

管理者としてログインしている場合でも、コンソールを管理者として実行する必要があります。管理者としてコンソールを起動する方法は次のとおりです: http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/

次に、コンソール アプリを見つけて実行します。

幸運を!

-マイケル

于 2011-07-14T21:23:26.863 に答える