我正在尝试学习如何从 C# 调用 PowerShell cmdlet 以获取 Active Directory OU 的内容。我正在使用 PowerShell 类来执行此操作。我可以让它用于基本用途,但是现在我想执行这个 PS 命令:
Get-ADComputer -SearchBase 'OU="Unfiled Computers",OU="Admnet Computers",dc=domain,dc=controller,dc=edu' -Filter '*'
当我尝试使用 C# 中的 PowerShell 类构建它时,我总是得到异常
A positional parameter cannot be found that accepts argument 'OU=Unfiled Computers'.
这是我在 C# 中使用的代码
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ADComputer");
ps.AddParameter("-SearchBase");
ps.AddArgument("OU=Unfiled Computers");
ps.AddArgument("OU=Admnet Computers");
ps.AddArgument("dc=domain");
ps.AddArgument("dc=controller");
ps.AddArgument("dc=edu");
ps.AddParameter("-Filter");
ps.AddArgument("'*'");
foreach(PSObject result in ps.Invoke())
{
System.Console.WriteLine(result);
}
是否可以像这样在 C# 中执行此命令?