c# - 如何在 Windows 窗体应用程序中运行 PowerShell 命令?

标签 c# powershell visual-studio-2012 active-directory runspace

我目前正在尝试在我的 C# 表单应用程序中实现以下 ps 命令。

我正在使用 Quest Powershell cmdlet

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

我的 powershell 命令可以工作,但我无法让下面的代码工作。找不到命令引发异常“术语 Get-QADMemberOf 未被识别为 cmdlet 的名称。

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

最佳答案

根据我的评论,也许可以尝试以下操作:

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

关于c# - 如何在 Windows 窗体应用程序中运行 PowerShell 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19601043/

相关文章:

c# - 将 TinyIoC 与 MonoTouch + Storyboard一起使用 - 在哪里构建?

c# - 当放置在弹出窗口中时,第一次单击不会触发按钮单击事件

c# - 事件发生时唤醒一个线程

powershell - 获取 ARM 设置的存储帐户类型

c++ - 在 Visual C++ 2012 中使用其他库

c# - 使用嵌入式资源打开 Excel 工作簿文件

powershell - 接受位置绑定(bind)参数作为参数的函数,但也来自管道

powershell - Coldfusion 变量导入 powershell

visual-studio-2012 - "Microsoft Test Manager cannot install test agent on these machines"创建新的实验室中心环境时

.net - 仅通过复制 Bin 目录来部署控制台应用程序