0

私はC#を初めて使用し、以下のコードに示すように、ローカルコンピューターでユーザーを無効または有効にしようとしています。exeを作成し、ユーザーに有効または無効にするユーザー名の入力を求めています。

ここで、引数をコマンドプロンプトに渡し、ユーザーを無効または有効にします。例:>cmd.exeJohnDisable。

c#を使用してコマンドプロンプトに引数を渡し、以下の同じコードを使用してユーザーを有効または無効にするにはどうすればよいですか?

class EnableDisableUsers
    {
        static void Main(string[] args)
        {
                Console.WriteLine("Enter user account to be enabled or disabled");
                string user = Console.ReadLine();
                Console.WriteLine("Enter E to enable or D to disable the user account");
                string enableStr = Console.ReadLine();
                bool enable;

            if (enableStr.Equals("E") || enableStr.Equals("e"))
            {


                PrincipalContext ctx = new PrincipalContext(ContextType.Machine);

                // find a user
                UserPrincipal username = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, user);

                if (user != null)
                {
                    try
                    {
                        //Enable User
                        username.Enabled = true;
                        username.Save();
                        Console.WriteLine(user + " Enabled");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Operation failed - Username is not valid", e.Message);
                    }
                }
                Console.ReadLine();
            }
            else if (enableStr.Equals("D") || enableStr.Equals("d"))
            {


                PrincipalContext ctx = new PrincipalContext(ContextType.Machine);

                // find a user
                UserPrincipal username = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, user);

                if (user != null)
                {
                    try
                    {
                        //Disable User
                        username.Enabled = false;
                        username.Save();
                        Console.WriteLine(user + " Disabled");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Operation failed - Username is not valid", e.Message);
                    }
                }
                Console.ReadLine();
            }
        }
    }
4

6 に答える 6

1
ProcessStartInfo processStartInfo = new ProcessStartInfo();
processStartInfo.Arguments = "/c ping " + machine;
processStartInfo.FileName = "cmd.exe";
Process process = new Process();
process.StartInfo = processStartInfo;
process.Start();

コンソールで ping コマンドを使用した例を次に示します。強制的にGUIを開かないようにするなど、他のオプションを追加できます。

于 2012-07-18T13:49:37.050 に答える
0

Environment.CommandLineコマンドライン引数または Environment.GetCommandLineArgs()メソッドを読み取るために使用でき ます。

 String[] arguments = Environment.GetCommandLineArgs();
于 2012-07-18T13:50:21.423 に答える
0

ただ見てください

string[] args

コマンドライン引数は文字列配列内にあります。

于 2012-07-18T13:50:59.973 に答える
0

プログラムに送信された引数は、args

static void Main(string[] args) 
于 2012-07-18T13:51:28.313 に答える
0

使用する:

 switch (args[x])
 {
      .... 

  }

例えば

 switch (args[x])
 {
  #region --loop
  case "--loop":               
      x = -1;
      break;
 #endregion

 #region --test-net
     case "--test-net":
          Task isAlive = Task.Factory.StartNew(() =>
          {
              bool alive = tlib.CheckForInternetConnection();
              if (!alive)
              {
                  while (!alive)
                  {
                      Console.WriteLine("No connectivity found.");
                      System.Threading.Thread.Sleep(9000);
                      alive = tlib.CheckForInternetConnection();
                  }
              }
              else
              {
                   //TODO: Add alive code here 
              }
          });
          isAlive.Wait();
          break;

          #endregion
}

これにより、prog.exe --test-net と言って、その特定のコードを実行できます。

- 編集 -

複数の引数を使用すると、コマンドをつなぎ合わせることができます。この例では

prog.exe --test-net --loop 

必要な数の引数を持つことができます。引数に人間の入力を使用する場合は、いつでも引数の量を制御し、args[x+1] を取得して、無効/有効にする人の名前を取得できます。

これは、case ステートメントに --enable と --disable の 2 つのケースがあることを前提としています。次に、次のようにプログラムを呼び出すことができます。

prog.exe --enable John
于 2012-07-18T13:53:04.670 に答える
0

これはあなたのメインにありますか?その場合は、string[] args からコマンド ライン引数を参照します。

static void Main(string[] args)

ここでいくつかの例を見ることができます: http://msdn.microsoft.com/en-us/library/aa288457(v=vs.71).aspx

于 2012-07-18T13:54:01.913 に答える