我目前正在尝试在我的 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/