0

PowerShell と C# での作業に System.Management.Automation を使用しており、Remove-ADUser コマンドを使用したいのですが、エラーが発生します: Here my Code.

public bool RemoveADUser(string sAMAccountName) { 

            Security key = new Security();

            try
            {
                ADPASSWORD = key.PasswordDecrypt("vnPYuGoPSvrSjDC+/5lUTQ==");
                //ADPASSWORD = "vnPYuGoPSvrSjDC+/5lUTQ==";

                SecureString SECUREADADMINPASSWORD = new SecureString();

                foreach (char x in sAMAccountName)
                {
                    SECUREADADMINPASSWORD.AppendChar(x);
                }

                SecureString pw = new SecureString();

                foreach (char x in ADPASSWORD)
                {
                    pw.AppendChar(x);
                }

                InitialSessionState initial = InitialSessionState.CreateDefault();
                Environment.SetEnvironmentVariable("ADPS_LoadDefaultDrive", "0");
                initial.ImportPSModule(new string[] { "ActiveDirectory" });

                PSCredential crend = new PSCredential(ADNAME, pw);

                using (Runspace runspace = RunspaceFactory.CreateRunspace(initial))
                {
                    runspace.Open();
                    using (Pipeline p = runspace.CreatePipeline())
                    {
                        Command command = new Command("Remove-ADUser");
                        command.Parameters.Add("Identity", sAMAccountName);
                        command.Parameters.Add("Credential", crend);

                        p.Commands.Add(command);

                        p.Invoke();

                        return true;

                    }
                }
            }
            catch (Exception)
            {

                return false;
            }
            finally
            {

            }
        }

コードは p.Invoke(); に移動します。しかし、次のメッセージが表示されます。

ドイツ語で:

Fehler in einem Befehl mit einer Eingabeaufforderung. Vom Hostprogramm oder Befehlstyp wird keine Benutzerinteraktion unterstützt. Für den Versuch, die Bestätigung anzufordern, wurde vom Host folgende Meldung verwendet: Möchten Sie diese Aktion wirklich ausführen?

英語で:

コマンド プロンプトのコマンドでエラーが発生しました。ホスト プログラムまたはコマンド タイプは、サポートされているユーザー操作ではありません。実験では、確認を要求するために、使用したホストから次のメッセージが送信されました。このアクションを実行しますか?

4

1 に答える 1

1

このコマンドを呼び出す方法に問題があるため、コマンドで詳細情報の入力を求めるプロンプトが表示されますが、C# エンジンの "ホスト" は、PowerShell エンジンがユーザーに詳細情報の入力を求めることができるようにするために必要なインターフェイスを実装していません。パスワードを渡しているようですが、このコマンドのドキュメントには次のように書かれています。

このパラメーターにユーザー名を指定すると、コマンドレットはパスワードの入力を求めます。

PSCredential に問題があるのではないでしょうか?

于 2013-10-10T14:24:42.620 に答える