Как запустить команду PowerShell в приложении Windows Form?

В настоящее время я пытаюсь реализовать приведенную ниже команду ps в моем приложении C# forms.

Я использую командлет Quest Powershell

    Add-PSSnapin -Name Quest.ActiveRoles.ADManagement
    get-qadmemberof -identity 'ssc\rpimentel' | Where-Object {$_.Name -ne "Domain Users"} | Add-QADGroupmember -member 'ktest'

У меня есть команда powershell, но я не могу заставить работать приведенный ниже код. Команда не найдена Исключение выдается "Термин Get-QADMemberOf не распознается как имя командлета.

            PowerShell ps = PowerShell.Create();

            PSCommand cmd1 = new PSCommand();
            cmd1.AddCommand("Import-Module");
            cmd1.AddParameter("activedirectory");
            cmd1.AddCommand("Add-PSSnapin");
            cmd1.AddParameter("Name", "Quest.ActiveRoles.ADManagement");
            cmd1.AddCommand("Get-QADMemberOf");
            cmd1.AddParameter("identity", "rpimentel");
            cmd1.AddCommand("where-object");
            ScriptBlock filter = ScriptBlock.Create("$_.Name -ne 'Domain Users'");
            cmd1.AddParameter("FilterScript", filter);
            cmd1.AddCommand("Add-QADGroupmember");
            cmd1.AddParameter("Member", "ktest");

            ps.Commands = cmd1;
            ps.Invoke();

1 ответ

Решение

Согласно моему комментарию, возможно, попробуйте следующее:

        PowerShell ps = PowerShell.Create();

        PSCommand cmd1 = new PSCommand();
        cmd1.AddCommand("Import-Module");
        cmd1.AddParameter("activedirectory");
        ps.Commands = cmd1;
        ps.Invoke();

        cmd1.AddCommand("Add-PSSnapin");
        cmd1.AddParameter("Name", "Quest.ActiveRoles.ADManagement");
        ps.Commands = cmd1;
        ps.Invoke();

        cmd1.AddCommand("Get-QADMemberOf");
        cmd1.AddParameter("identity", "rpimentel");
        cmd1.AddCommand("where-object");
        ScriptBlock filter = ScriptBlock.Create("$_.Name -ne 'Domain Users'");
        cmd1.AddParameter("FilterScript", filter);
        cmd1.AddCommand("Add-QADGroupmember");
        cmd1.AddParameter("Member", "ktest");
        ps.Commands = cmd1;
        ps.Invoke();
Другие вопросы по тегам