如何在窗口表单应用程序中运行PowerShell命令

本文关键字:运行 PowerShell 命令 应用程序 表单 窗口 | 更新日期: 2023-09-27 18:36:59

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

Im using 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命令

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

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